joergbuchwald / ogs6py

Python-API for the OpenGeoSys (http://www.opengeosys.org) software.
BSD 3-Clause "New" or "Revised" License
16 stars 23 forks source link

Parsing the output of staggered schemes #29

Closed dominik-kern closed 2 years ago

dominik-kern commented 2 years ago

Staggered schemes output informations about the coupling iterations

info: [time] Solving process #0 took 0.00184468 s in time step #1  coupling iteration #1
info: ------- Checking convergence criterion for coupled solution of process #0 -------
info: Convergence criterion: |dx|=6.4339e+06, |x|=1.2489e+07, |dx|/|x|=5.1517e-01

The convergence information (dx, x, dx/x) should be accessible for all processes (0=H, 1=M in HM simulations), each coupling iteration and each time step.

Note that the coupling convergence is checked after finishing the Newton-iterations for each process. After the Newton iterations for H converged, the coupling iterations are checked for the convergence in H. Similarly, after the Newton iterations for M converged, the coupling iterations are checked for the convergence in M.

Note also, that the coupling iterations compare the current result with the previous coupling iteration, i.e. after the first coupling iteration there is no check, since there is no previous result to compare with (this may be important for the context).

dominik-kern commented 2 years ago

Example output output.log

As output are desired, the same infos as for the separate processes (H, M) as for the monolithic (HM): time_step/number time_step/t time_step/dt
time_step/cpu_time
time_step/output_time
time_step/iteration_proc0/number
time_step/iteration_proc0/assembly_time time_step/iteration_proc0/dirichlet_bc_time time_step/iteration_proc0/linear_solver_time
time_step/iteration_proc0/cpu_time
time_step/iteration_proc0/component_convergence/number
time_step/iteration_proc0/component_convergence/dx
time_step/iteration_proc0/component_convergence/x
time_step/iteration_proc0/component_convergence/dx_relative

And for the coupling iterations: time_step/coupling_iteration/number time_step/coupling_iteration/process_id time_step/coupling_iteration/component_convergence/number
time_step/coupling_iteration/component_convergence/dx
time_step/coupling_iteration/component_convergence/x
time_step/coupling_iteration/component_convergence/dx_relative