Input File Reference
Every ExaGOOP simulation requires two input files: a plain-text input
parameter file (the *.inp file read by AMReX’s ParmParse)
and a particle file containing the initial material point data. Both are
typically generated by the PreProcess scripts in each test directory; this
page documents every supported parameter so that you can construct or modify
them by hand.
Note
Parameters marked required have no default and will cause ExaGOOP to abort if absent. Parameters marked optional have defaults listed in the Default column.
Running the solver
./ExaGOOP<dim>d.<suffix>.ex inputs.inp
# or with MPI:
mpirun -n 4 ./ExaGOOP<dim>d.<suffix>.ex inputs.inp
Particle File Format
ExaGOOP accepts particle files in ASCII (plain text) or HDF5 format. The
format is auto-detected from the file extension: .dat or .inp files
are treated as ASCII; .h5 files as HDF5.
ASCII format
The file begins with two header lines followed by a comment line listing the column names, then one data row per material point:
dim: <N>
number_of_material_points: <M>
# phase x [y] [z] vx [vy] [vz] radius density <cm_cols> [T spheat thermcond heatsrc]
0 0.25 0.0 0.0 0.0 0.0 0.0 0.125 1000.0 ...
Column order depends on dimensionality and the constitutive model:
Column |
Type |
Description |
|---|---|---|
|
int |
Material phase index (0 for standard deformable material) |
|
real |
Initial position coordinates (m). |
|
real |
Initial velocity components (m/s). |
|
real |
Particle radius used for neighbour searches (m). Typically set to half the inter-particle spacing. |
|
real |
Material density \(\rho_0\) (kg/m³). |
|
real |
Young’s modulus (Pa) and Poisson’s ratio (–). Present when |
|
real |
Bulk modulus (Pa), pressure ratio \(\Gamma\) (–), dynamic viscosity (Pa·s). Present when |
|
real |
Initial temperature (K). Present only when compiled with |
|
real |
Specific heat capacity \(c_p\) (J/(kg·K)). Present only with |
|
real |
Thermal conductivity \(k\) (W/(m·K)). Present only with |
|
real |
Volumetric internal heat source \(\dot{q}\) (W/m³). Present only with |
HDF5 format
The HDF5 file stores the same columns as individual 1-D datasets under the
root group, plus scalar attributes dim and number_of_material_points.
Dataset names are identical to the ASCII column names above.
Input Parameter File
Parameters are grouped into namespaces. Each line has the form:
namespace.parameter_name = value
Lines beginning with # are comments.
mpm. namespace — Domain and Grid
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
real[] |
required |
Lower corner of the computational domain (m). Three values always; unused dimensions set to 0. |
|
real[] |
required |
Upper corner of the computational domain (m). |
|
int[] |
required |
Number of background grid cells per direction. Unused dimensions set to 0. |
|
int |
8 |
Maximum AMReX box size. Must be greater than 1. |
|
int[] |
required |
Periodicity flag per direction: |
mpm. namespace — Time Control
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
real |
required |
Simulation end time (s). |
|
int |
required |
Maximum number of time steps. The run stops at whichever limit is reached first. |
|
int |
0 |
If |
|
real |
— |
Fixed time step size (s). Required when |
|
real |
0.1 |
CFL number for adaptive time stepping. Ignored when |
|
real |
1e-12 |
Minimum allowable adaptive time step (s). ExaGOOP aborts if the step falls below this. |
|
real |
1.0 |
Maximum allowable adaptive time step (s). |
mpm. namespace — Physics
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
real[] |
|
Gravitational acceleration vector (m/s²). |
|
real |
0.95 |
PIC/FLIP blending factor. |
|
int |
1 |
Shape function order: |
|
string |
|
Stress update scheme: |
|
int |
0 |
If |
|
real |
1e-8 |
Grid nodes whose lumped mass falls below this threshold are excluded from the nodal velocity update. |
|
real |
0.0 |
Uniform applied strain rate (1/s). Applied to the entire domain. |
|
real |
|
Duration over which the applied strain rate is active (s). |
|
int |
0 |
If |
|
real[] |
— |
Lower corner of the force slab (m). Required when |
|
real[] |
— |
Upper corner of the force slab (m). Required when |
|
real[] |
— |
Force per unit volume applied within the slab (N/m³). Required when |
mpm. namespace — Material Points
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
string |
|
Path to the particle input file. Used when |
|
int |
10 |
Redistribute particles across MPI ranks every N time steps. |
|
int |
0 |
If |
When use_autogen = 1, the following parameters define the particle block:
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
real[] |
required |
Lower corner of the autogen particle block (m). |
|
real[] |
required |
Upper corner of the autogen particle block (m). |
|
real[] |
required |
Initial velocity for all autogen particles (m/s). |
|
int[] |
— |
Particles per cell per direction, e.g. |
|
int |
1 |
If |
|
int |
1 |
Constitutive model ID: |
|
real |
1000.0 |
Density of autogen particles (kg/m³). |
|
real |
1e9 |
Young’s modulus for elastic model (Pa). |
|
real |
0.1 |
Poisson’s ratio for elastic model (–). |
|
real |
0.0 |
Bulk modulus for fluid model (Pa). |
|
real |
1.4 |
Pressure ratio \(\Gamma\) for the fluid equation of state (–). |
|
real |
0.001 |
Dynamic viscosity for fluid model (Pa·s). |
|
real |
0.0 |
Initial temperature of autogen particles (K). |
|
real |
1.0 |
Specific heat capacity (J/(kg·K)). |
|
real |
1.0 |
Thermal conductivity (W/(m·K)). |
|
real |
0.0 |
Volumetric internal heat source (W/m³). |
mpm. namespace — Output
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
real |
|
Interval between solution snapshots (s). |
|
real |
|
Interval between screen (terminal) output lines (s). |
|
string |
|
Directory/file prefix for particle output plotfiles ( |
|
string |
|
Directory/file prefix for nodal grid output plotfiles ( |
|
string |
|
Directory/file prefix for density output plotfiles. |
|
string |
|
Directory/file prefix for checkpoint files used to restart a run. |
|
string |
|
Directory/file prefix for ASCII material point output files. |
|
string |
|
Directory for diagnostic output files. |
|
int |
6 |
Number of zero-padded digits in output file step indices. |
|
int |
0 |
If |
mpm. namespace — Diagnostics
Diagnostics are activated by setting mpm.print_diagnostics = 1.
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
int |
0 |
Master switch: set to |
|
int |
0 |
If |
|
int |
0 |
If |
|
int |
0 |
If |
|
int |
0 |
If |
|
real |
|
Interval between diagnostic output writes (s). |
mpm. namespace — Level-Set Output
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
int |
0 |
If |
|
real |
1.0 |
Smoothing factor applied to the level-set signed-distance field. |
|
int |
1 |
Refinement ratio for the level-set grid relative to the background grid. |
mpm. namespace — Momentum Boundary Conditions
Momentum BCs are specified per face. Valid face identifiers are xlo,
xhi, ylo, yhi, zlo, zhi.
mpm.bc_<face>_mom = <type>
Valid <type> values:
Value |
Behaviour |
|---|---|
|
Slip wall (default): zero normal velocity, unconstrained tangential velocity. |
|
No-slip wall: all velocity components set to zero (or the prescribed wall velocity). |
|
Partial-slip wall: tangential velocity damped by friction coefficient |
|
Outflow: material points exiting through this face are removed. |
|
Periodic. Must be matched with the opposite face and |
Additional sub-parameters for mpm.bc_<face>_mom:
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
real[] |
|
Prescribed constant wall velocity (m/s) for |
|
real |
0.0 |
Friction coefficient for |
|
string |
— |
Path to the shared library implementing a UDF velocity profile. Both |
|
string |
— |
Name of the C-linkage function exported by the UDF shared library. See UDF Moving Wall Boundary Conditions for the required function signature. |
mpm. namespace — Temperature Boundary Conditions (USE_TEMP only)
Temperature BCs follow the same per-face pattern as momentum BCs.
mpm.bc_<face>_temp = <type>
Valid <type> values:
Value |
Behaviour |
|---|---|
|
Adiabatic (default): zero heat flux through the face. |
|
Fixed wall temperature. Requires |
|
Prescribed heat flux. Requires |
|
Newton cooling law: \(q = h (T_\text{wall} - T_\infty)\). Requires |
|
Periodic (must be paired with |
Additional sub-parameters for mpm.bc_<face>_temp:
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
real |
0.0 |
Wall temperature for |
|
real |
0.0 |
Prescribed heat flux for |
|
real |
0.0 |
Convective heat transfer coefficient for |
|
real |
0.0 |
Ambient temperature for |
|
string |
— |
Path to a UDF shared library for a custom temperature profile. |
|
string |
— |
Function name in the UDF temperature shared library. |
amr. namespace — Restart
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
string |
|
Path to a checkpoint directory to restart the simulation from. Leave empty for a fresh start. |
eb2. namespace — Embedded Boundaries (USE_EB only)
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
string[] |
— |
Space-separated list of body names. Each name becomes the ParmParse namespace for that body’s parameters. If omitted, ExaGOOP falls back to legacy single-body mode reading from the |
Per-body namespace <body_name>. (USE_EB only)
Replace <body_name> with the name listed in eb2.body_names.
Common parameters (all geometry types):
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
string |
required |
Shape type: |
|
int |
1 |
Level-set grid refinement ratio relative to the background grid. Higher values improve surface accuracy. |
|
string |
|
Momentum BC on the body surface: |
|
real |
0.0 |
Friction coefficient for |
|
real[] |
|
Constant wall velocity imposed on the body surface (m/s). |
|
string |
|
Temperature BC on the body surface: |
|
real |
0.0 |
Isothermal wall temperature (K). |
|
real |
0.0 |
Heat flux through the body surface (W/m²). |
|
real |
0.0 |
Convective heat transfer coefficient (W/(m²·K)). |
|
real |
0.0 |
Ambient temperature for convective BC (K). |
Sphere (geom_type = sphere):
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
real |
required |
Sphere radius (m). |
|
real[] |
required |
Centre coordinates (m). |
|
bool |
|
If |
Plane (geom_type = plane):
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
real[] |
required |
A point on the plane (m). |
|
real[] |
required |
Outward normal vector pointing into the fluid domain. |
|
bool |
|
Orientation flag. See |
Cylinder (geom_type = cylinder):
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
real |
required |
Cylinder radius (m). |
|
real[] |
required |
Axis centre coordinates (m). |
|
real |
1.0 |
Cylinder height along the axis direction (m). |
|
int |
2 |
Axis direction: |
|
bool |
|
Orientation flag. |
Box (geom_type = box):
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
real[] |
required |
Lower corner of the box (m). |
|
real[] |
required |
Upper corner of the box (m). |
|
bool |
|
Orientation flag. |
STL geometry (geom_type = stl):
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
string |
required |
Path to an STL surface mesh file describing the body geometry. |
UDF implicit function (geom_type = udf_cpp):
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
string |
required |
Path to a shared library exporting a signed-distance function for the body surface. |
Wedge hopper (geom_type = wedge_hopper, 3-D only):
Parameters are read from the wedge_hopper. namespace rather than the body namespace:
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
real |
required |
Width of the hopper exit opening (m). |
|
real |
required |
Width of the hopper bin above the funnel (m). |
|
real |
required |
Height of the converging funnel section (m). |
|
real |
domain centre |
Vertical position of the hopper centre (m). |
Minimal Working Example
The following input file runs a 1-D elastic bar vibration with 30 cells, no gravity, and fixed boundary conditions at both ends:
#------------------------------
# Domain
#------------------------------
mpm.prob_lo = 0.0 0.0 0.0
mpm.prob_hi = 30.0 0.0 0.0
mpm.ncells = 30 0 0
mpm.max_grid_size = 16
mpm.is_it_periodic = 0
#------------------------------
# Time control
#------------------------------
mpm.final_time = 50.0
mpm.max_steps = 5000000
mpm.CFL = 0.1
#------------------------------
# Material points
#------------------------------
mpm.particle_file = mpm_particles.dat
#------------------------------
# Output
#------------------------------
mpm.write_output_time = 0.5
mpm.screen_output_time = 0.001
mpm.prefix_particlefilename = "results/plt"
mpm.prefix_gridfilename = "results/nplt"
#------------------------------
# Numerics
#------------------------------
mpm.order_scheme = 1
mpm.alpha_pic_flip = 1.0
mpm.stress_update_scheme = MUSL
mpm.gravity = 0.0 0.0 0.0
#------------------------------
# Boundary conditions
#------------------------------
mpm.bc_xlo_mom = noslip
mpm.bc_xhi_mom = noslip