I added DirichletBoundary to adaptivity_ex2, but I found I couldn't get
correct Fe at time 1 (i.e, system.time = 0+dt). I am not sure it is a limit
of libmesh, or my understanding is wrong.
adaptivity_ex2 is a transient problem. "the initial condition will be taken
as the exact solution at time 0, as will the Dirichlet boundary conditions
at time t." The outline of the code is:
1. system.time = 0;
2. Create a DirichletBoundary object and add it to equation_system;
3. equation_systems.init (); // Init solution and Dirichlet constrains
at time 0
4.
5. for each time step {
6. system.time += dt;
7. *system.old_local_solution = *system.current_local_solution;
8. for each refinement step {
9. Ke += ...
10. Fe += ...system.old_solution()... // Need solution computed at
time 0
11. heterogenously_constrain_element_matrix_and_vector; // Uses
constraints computed at time 0, but should use constraints computed at time
1
12. Add Ke, Fe to global matrix and vector;
13. Solve the system;
14. equation_systems.reinit ();
15. }
16. }
Suppose the code runs straight from line 1 to line 11, at line 11, what we
use are wrong constraints computed at time 0. Actually, we should use
constraints
of time 1, which are not computed yet.
I tried to rearrange the code, but I found I could not make it, since I
could not use solution of time 0 and constraints of time 1 at line 10 and
11 at the same time.
Any thoughts?
--Junchao Zhang
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users