From: John P. <jwp...@gm...> - 2009-04-03 14:15:52
|
On Fri, Apr 3, 2009 at 8:45 AM, Nasser Mohieddin Abukhdeir <nas...@mc...> 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 |