Application reference¶
Each source file apps/app_*.cc produces an executable with the app_ prefix
removed. Debug targets append _debug. Applications read an explicit
parameter-file path; when a file supports dimension dispatch, the dimension
and space dimension entries select the template instantiation.
Executable |
Entry point and problem |
Dimensions or composition |
Dependencies and input |
|---|---|---|---|
|
|
3D tissue with two rooted 1D-in-3D vessel trees |
MPI, deal.II Gmsh API, VTK and simplex support; |
|
|
|
MPI; |
|
|
|
MPI; |
|
|
|
MPI; |
|
|
|
MPI; |
|
|
|
MPI; |
|
|
|
MPI and deal.II SUNDIALS; |
|
|
|
MPI and deal.II VTK; |
|
|
Fixed 3D bulk plus 1D-in-3D representative |
MPI; |
|
|
|
MPI; |
|
|
Fixed 2D bulk plus 1D-in-2D embedded field |
MPI; |
|
|
Fixed 1D-in-3D pressure lift coupled to 3D elasticity |
MPI; |
|
|
|
MPI; |
|
|
Root |
MPI; |
|
|
Fixed 1D-in-3D |
MPI, deal.II SUNDIALS, and MetricFlowX; |
|
|
Fixed 1D-in-3D flow and 3D wall |
MPI, deal.II SUNDIALS, and MetricFlowX; |
|
|
|
MPI; uses |
|
|
|
MPI; |
|
|
|
MPI; |
|
|
|
MPI and Trilinos; frequency-domain amplitudes and phases |
|
|
|
MPI and Trilinos; |
|
|
3D tissue; command-line coupling controls |
MPI, OpenMP, and |
|
|
3D tissue; five positional arguments |
MPI, OpenMP, and |
MetricFlowX executables are excluded from the build unless both MetricFlowX
and deal.II SUNDIALS are available. The two lib1dsolver executables are
built from their source files, but their functional code is enabled only when
ENABLE_COUPLED_PROBLEMS is on and the library passes the dependency and RTTI link check.
All other executables are part of the normal application target set. The
running applications guide explains the
parameter-file command format.
When Coral is installed, equivalent graph examples are installed under
share/immersx/coral/examples. See the Coral backend guide
for plugin selection, graph execution, and conditional coupled workflows.
Every mesh must contain a single physical reference-cell type. Select either triangles/tetrahedra or quadrilaterals/hexahedra for each mesh; mixed meshes are rejected. Simplex applications use the fully distributed backend and refine before distribution. The simplex examples below use one solve cycle; legacy convergence tables and post-distribution adaptive refinement remain available for hypercube meshes. See weak-term integration supports for reference-cell selection in Fields, weak terms, and constraints.
For elasticity_freq, select fullydistributed under
Immersed Problem/Grid generation/Triangulation type when importing triangles
or tetrahedra. FE degree selects FE_SimplexP on these meshes. Keep one
refinement cycle; initial refinement happens before distribution. The generated
gtests/parameters/elasticity_freq_simplex.prm provides a tetrahedral example
with a nonzero affine displacement at a nonzero frequency.
For elasticity, import triangles or tetrahedra with fullydistributed under
Immersed Problem/Grid generation. FE degree selects the corresponding
simplex displacement element. Strong and weak Dirichlet conditions use the
same reference-cell mapping as assembly and output. Use one refinement cycle;
initial refinement is performed before distribution. Parsed convergence tables
are available on hypercube meshes. The generated
gtests/parameters/elasticity_simplex.prm is a forced quadratic example.
elasticity_explicit also accepts uniform simplex meshes with
Immersed Problem/Grid generation/Triangulation type = fullydistributed.
Set FE degree = 1: higher-degree simplex elements have zero or negative
row-sum nodal masses and are rejected. The existing restriction against hanging
nodes also applies. The generated
gtests/parameters/elasticity_explicit_simplex.prm advances a freely translating
body with nonzero forcing.
For laplacian, select fullydistributed under
Immersed Problem/Domain/Triangulation type when importing simplex meshes.
The assembled solver selects simplex elements from FE degree. Set the
number of refinement cycles to one and use Domain/Initial refinement for
refinement before distribution. Parsed convergence tables and the experimental
compile-time matrix-free path require hypercube meshes. The generated
gtests/parameters/laplacian_simplex.prm solves a forced quadratic problem.
For navier_stokes, import uniform triangle or tetrahedron meshes using
Navier-Stokes/Domain/Triangulation type = fullydistributed. The velocity
and pressure degrees select simplex Taylor-Hood elements; the pressure degree
must remain smaller than the velocity degree. The native solver and IDA
application path use the same reference-cell mapping and quadrature.
gtests/parameters/navier_stokes_simplex.prm maintains a nonzero Poiseuille
velocity with constant body force on a tetrahedral mesh.
For reduced_poisson, select fullydistributed under
Reduced Poisson/Grid generation/Triangulation type and import a uniform
simplex mesh. FE degree selects simplex bulk elements. Set one refinement
cycle; initial refinement and local co-refinement take place before
partitioning. The generated reduced_poisson_simplex_line_3d.prm and
reduced_poisson_simplex_point_3d.prm under gtests/parameters provide
quadratic checks with a Schur solver and nonzero Dirichlet data.
For lifted_poisson, select a fully distributed background and set
Background space/Finite element = FE_SimplexP<3>(2) for quadratic tetrahedra.
The representative line retains its one-dimensional element. Error diagnostics
use the bulk mapping and reference-cell quadrature. The generated
gtests/parameters/lifted_poisson_simplex.prm checks a nonzero quadratic
solution and a zero multiplier.
lifted_elasticity selects vector simplex elements when Displacement space/Finite element
is auto and its fully distributed Domain contains triangles or tetrahedra.
Set FE degree normally. Strong and weak Dirichlet terms use the same mapping.
The legacy convergence table is omitted for simplex meshes; numerical tests
check the displacement and residual directly.
coupled_poisson accepts a fully distributed triangular Poisson/Domain.
Its embedded line and multiplier remain one-dimensional. The generated
coupled_poisson_simplex.prm uses quadratic physical fields with nonzero
boundary data; the continuity multiplier is zero for its exact solution.
coupled_poisson_elasticity accepts tetrahedra in Elastic static/Domain.
The pressure line and its lifted surface use the existing coupling parameters.
The generated coupled_poisson_elasticity_simplex.prm places the axial line
inside a tetrahedral cube; tests check the exact line pressure and balance
its traction against the elastic stiffness action.
For fiber_reinforced_elastodynamics, import triangles or tetrahedra into the
fully distributed Matrix Elastodynamics/Domain. The line fiber and velocity
multiplier retain their one-dimensional elements. The generated
fiber_reinforced_simplex_2d.prm and fiber_reinforced_simplex_3d.prm exercise
forced rigid translation; tests check both fixed steps and IDA against their
respective displacement and velocity solutions.
fiber_reinforced_elasticity_freq accepts simplex matrices and reinforcement
meshes, including triangular sheets in 3D and full-dimensional triangles or
tetrahedra. Automatic multiplier elements follow the reinforcement reference
cell. Both independent and shared formulations use the physical volume
measure. The generated fiber_harmonic_simplex_22.prm, _23.prm, and _33.prm
check a complex forced translation with damping.
The standalone metric_flow_x mesh consists of line segments. These are the
one-dimensional simplex reference cell, so its existing vessel mesh and
finite-element settings already apply. Its integration test checks the cell
family and advances a nonzero inflow through IDA. Triangle and tetrahedron
selection belongs to the solid Domain in metric_flow_x_elastodynamics.
For metric_flow_x_elastodynamics, select fullydistributed and a tetrahedral
mesh under Elastodynamics/Domain. Keep enough unconstrained solid DoFs for
the vessel-wall multiplier. The generated
gtests/parameters/metric_flow_x_rcr_simplex_coupled.prm uses quadratic solid
elements around two vessels with RCR outlets. CTest runs both default and
immersed vessel ownership and checks accepted times and all three output
collections in serial and MPI.
The tissue component used by coupled_elasticity and pseudocoupling1D is
available without lib1dsolver. Select a fully distributed tetrahedral mesh
under Immersed Problem/Grid generation and refine before distribution.
VesselElasticityProblem::run_timestep0() prepares it; update displacement
data and call run_timestep() for each tissue solve. Pointwise data use the
overload taking one sample count per vessel. Gather inclusion pressures on
all ranks before calling split_pressure_over_inclusions on rank zero.
That interpolation performs no MPI operations.
The generated gtests/parameters/coupled_elasticity_simplex.prm exercises this
interface. The external 1D drivers still require a complete library compatible
with the compiler and dependencies. Linux OpenMP test builds compile their
full driver bodies independently of the library link check.
For pseudocoupling1D, vesselwise displacement data use the flat-vector
overload of update_inclusions_data. The generated
gtests/parameters/pseudocoupling_simplex.prm checks two successive tissue
solves with changed data and their displacement, multiplier, and pressure
response in serial and MPI.