Tutorial 04: transient two-way manufactured solution¶
The transient state uses
with d, u, and lambda defined by the same exact nonlinear wall map as in
Tutorial 03. The exact flow velocity is selected from continuity:
Consequently A_t + (AU)_s = 0 exactly and both endpoint velocities vanish.
At t=0, all perturbation and multiplier fields are zero while the area state
is the metadata value A0. The solid source is rho_s u_tt - div sigma(u*)
and the flow source is derived from the native momentum residual; neither is a
discrete residual cancellation.
Run the input after configuring the project:
build-metric-flow-x-debug/metric_flow_x_elastodynamics_debug \
build-metric-flow-x-debug/tutorials/metric_flow_x_elastodynamics/04_transient_mms.prm
The input sets a nonzero final time (0.1) and one time step. The executable
therefore performs an actual IDA step for the transient manufactured state;
the spatial stationary-exact case is kept separate in Tutorial 03.
The registered gate metric_flow_x_elastodynamics_mms_verification checks the
analytical formulas, independent exact-gradient finite differences, assembled
discrete virtual work, two-way residual/sign composition, the full coupled
Jacobian by finite differences, and a small actual transient IDA solve. It is a
verification baseline. Tutorial 04 is transient; the stationary spatial case
is a separate driver case. The driver also contains opt-in temporal and
combined diagnostics. Run
them with:
cd build-metric-flow-x-debug/gtests
IMMERSX_RUN_MMS_STUDIES=1 mpirun -np 2 ./metric_flow_x_elastodynamics_mms_verification_debug \
--gtest_filter='OneVesselMMSDriver.MPI_ActualFourLevelTemporalStudy:OneVesselMMSDriver.MPI_ActualFourLevelCombinedStudy'
Both studies print physical error tables and write CSV files below
build-metric-flow-x-debug/test_output/metric-flow-x-elastodynamics-mms/.
Their rates are diagnostic only. The full-system linear solver does not
complete on the finest coupled levels.