Class StaggeredCoupling
This MR introduces a class, 'StaggeredCoupling', to NumLib
to realize the flexible coupling. The new class is designed to manage the solution of coupled equations using the staggered method. In the class, the solution of each coupled process is treated as a coupling node. The graph of the coupling node looks like
x ... x o o
/ \ / \
/ \ / \
x ... x x ... x
where x represents a coupling node, and o represents a dummy root
coupling node.
With the coupling nodes, the order of processes in a coupling can be freely changed via the appearance order of the process names in the <local_coupling_processes> tag, regardless of the existing fixed process IDs. For example, the new benchmark has a coupling tree as
o
/ \
/ \
p T
which means the hydraulic process is computed first in the staggered coupling regardless its order by process ID is higher than that of the thermal process.
Note: the coupling tolerances of the thermal phase field benchmarks, beam3d, are decreased for the current source code change.
-
Feature description was added to the changelog -
Tests covering your feature were added? -
Any new feature or behavior change was documented?