From: jurak <jurak@ma...>  20081208 19:30:25

Roy Stogner wrote: > > > On Mon, 8 Dec 2008, jurak wrote: > >> I am using DifferentiableSystem class for some time now, together with >> EulerSolver class. Recently EulerSolver::element_residual() function >> was changed and now it calls _system.mass_residual() only once, instead >> of two >> times, as in 0.6.2 version. >> >> This has a sideeffect that EulerSolver can now solve only equations >> linear in time >> derivative, that is, of the form >> dx/dt = F(x), >> while before one could also solve >> d/dt M(x) = F(x), >> with nonlinear M. The reason is that now the function forms residual >> R = dt F(x_theta) + M(x_old  x) >> while before it would form: >> R = dt F(x_theta) + M(x_old)  M(x). >> >> Is there any reason for this change except optimization? > > Yes; it was necessary to get correct results on movingmesh problems > where the size of an element might change between x_old and x. > >> I would like to be able to treat nonlinearity in time derivative >> term. > > You might have to turn on and use the "elem_fixed_solution" which we > put in for use in stabilized formulations. That'll be equal to the > theta_solution in an EulerSolver run. >  > Roy > I think that I understand. By using "elem_fixed_solution" I get "x_theta = theta*x+(1theta)*x_old", and from "elem_solution" I get " x_old  x". Then one can recover "x_old" and "x" and "mass_residual()" function calculates M(x_old)  M(x). Right? Mladen  <http://web.math.hr/%7Ejurak>; 