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
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to