Re: [Libmesh-users] Access to time derivatives From: John Peterson - 2009-04-03 14:15:52 On Fri, Apr 3, 2009 at 8:45 AM, Nasser Mohieddin Abukhdeir wrote: > Hi: >    I have a PDE system that has a dissipation term which involves time > derivatives of all of the variables involves, for example, if q1/q2/q3 > are my variables and q1t/q2t/q3t are their partial derivatives in time, > each PDE has a term: > > q1*q1t+q2*q2t+q3*q3t > > Is there existing functionality to get access to these time derivatives > using FEMSystem/AdaptiveTimeSolver similar to the interior_value > function? Else would something have to be implemented in one of the > instantiations of AdaptiveTimeSolver? You've got a nonlinear mass matrix, so you'll need to make implementations of YourSystem::mass_residual(), where YourSystem is derived from FEMSystem. If you want to do a theta method, the tricky bit is you'll probably want to discretize the term as q3(\theta) * (q3^{n+1} - q3^n)/ Dt which means you'll have to set DiffSystem::use_fixed_solution = true, set the DiffContext::fixed_solution_derivative to theta (I think) and use the FEMContext::fixed_interior_value functions in your mass_residual() function. Roy could probably explain it better, and maybe he has an example using all the fixed_* stuff? -- John

 [Libmesh-users] Access to time derivatives From: Nasser Mohieddin Abukhdeir - 2009-04-03 13:45:19 Hi: I have a PDE system that has a dissipation term which involves time derivatives of all of the variables involves, for example, if q1/q2/q3 are my variables and q1t/q2t/q3t are their partial derivatives in time, each PDE has a term: q1*q1t+q2*q2t+q3*q3t Is there existing functionality to get access to these time derivatives using FEMSystem/AdaptiveTimeSolver similar to the interior_value function? Else would something have to be implemented in one of the instantiations of AdaptiveTimeSolver? -- Nasser Mohieddin Abukhdeir Graduate Student (Materials Modeling Research Group) McGill University - Department of Chemical Engineering http://webpages.mcgill.ca/students/nabukh/web/ http://mmrg.chemeng.mcgill.ca/
 Re: [Libmesh-users] Access to time derivatives From: John Peterson - 2009-04-03 14:15:52 On Fri, Apr 3, 2009 at 8:45 AM, Nasser Mohieddin Abukhdeir wrote: > Hi: >    I have a PDE system that has a dissipation term which involves time > derivatives of all of the variables involves, for example, if q1/q2/q3 > are my variables and q1t/q2t/q3t are their partial derivatives in time, > each PDE has a term: > > q1*q1t+q2*q2t+q3*q3t > > Is there existing functionality to get access to these time derivatives > using FEMSystem/AdaptiveTimeSolver similar to the interior_value > function? Else would something have to be implemented in one of the > instantiations of AdaptiveTimeSolver? You've got a nonlinear mass matrix, so you'll need to make implementations of YourSystem::mass_residual(), where YourSystem is derived from FEMSystem. If you want to do a theta method, the tricky bit is you'll probably want to discretize the term as q3(\theta) * (q3^{n+1} - q3^n)/ Dt which means you'll have to set DiffSystem::use_fixed_solution = true, set the DiffContext::fixed_solution_derivative to theta (I think) and use the FEMContext::fixed_interior_value functions in your mass_residual() function. Roy could probably explain it better, and maybe he has an example using all the fixed_* stuff? -- John