Hi,
I have adapted the navier_system.C example to solve the Euler equations. I
have tested it for a sample problem (flow through a channel without
disturbances, so that the solution should remain the same for all time steps)
without AMR, and things seem to work fine. So, if I initialize the solution
vector to U0, it stays at U0 (with some changes down to machine epsilon during
the solves). Note that the dU term for call to mass_residual is expected to be
0 (or small epsilons) at all times.
However, when I turn on AMR by setting the max_adaptivesteps to 1, the code
crashes. Upon looking into this further, I realized that the call to
mass_residual has the elem_solution (implying dU) is actually set to -U0. I
looked into euler_solver.C and it seems like solution is set to
old_elem_solution - theta_solution. For some reason, old_elem_solution (which
should be U0, and was U0 without AMR) is now zero. Printing out the
old_elem_solution prints a zero vector.
So, somewhere between the first solution of the equations, followed by
refinement, and then the next solution, the old_nonlinear_sol seems to being
zeroed out. I have not made any changes to libMesh, and feel like have not make
any modifications to the time for loop in the example.
Interestingly enough, changing the value of max_adaptivesteps to 1 in the
navier_system example does not create any problems.
I am still trying to figure out the source of this problem, but am curious
if someone may have any quick guesses.
Thanks,
Manav
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users