IC::Expression

src/IC/Expression.H

Initialize a field using a mathematical expression. Expressions are imported as strings and are compiled real-time using the AMReX Parser.

Works for single or multiple-component fields. Use the regionN (N=0,1,2, etc. up to number of components) to pass expression. For example:

ic.region0 = "sin(x*y*z)"
ic.region1 = "3.0*(x > 0.5 and y > 0.5)"

for a two-component field. It is up to you to make sure your expressions are parsed correctly; otherwise you will get undefined behavior.

Constants You can add constants to your expressions using the constant directive. For instance, in the following code

psi.ic.type=expression
psi.ic.expression.constant.eps = 0.05
psi.ic.expression.constant.R   = 0.25
psi.ic.expression.region0 = "0.5 + 0.5*tanh((x^2 + y^2 - R)/eps)"

the constants eps and R are defined by the user and then used in the subsequent expression. The variables can have any name made up of characters that is not reserved. However, if multiple ICs are used, they must be defined each time for each IC.

coord
cartesian polar conditional

coordinate system to use

Names by executable 12 executables, 79 uses
alamo-2d-coverage-g++
alpha.ic.expression.coord crack.ic0.expression.coord elastic.rhs.expression.coord elastic.velocity.ic.expression.coord ic.expression.coord ic.phi.coord ic.temp.coord laser.ic.expression.coord mechanics.rhs.expression.coord mechanics.velocity.ic.expression.coord pf.eta.ic.expression.coord phi.ic.expression.coord rhs.expression.coord temp.ic.expression.coord velocity.ic.expression.coord
alamo-3d-coverage-g++
alpha.ic.expression.coord crack.ic0.expression.coord elastic.rhs.expression.coord elastic.velocity.ic.expression.coord ic.expression.coord ic.phi.coord ic.temp.coord laser.ic.expression.coord mechanics.rhs.expression.coord mechanics.velocity.ic.expression.coord pf.eta.ic.expression.coord phi.ic.expression.coord rhs.expression.coord temp.ic.expression.coord velocity.ic.expression.coord
fracture-2d-coverage-g++
crack.ic0.expression.coord rhs.expression.coord velocity.ic.expression.coord
fracture-3d-coverage-g++
crack.ic0.expression.coord rhs.expression.coord velocity.ic.expression.coord
hydro-2d-coverage-g++
density.ic.expression.coord eta.ic.expression.coord m0.ic.expression.coord pressure.ic.expression.coord q.ic.expression.coord solid.density.ic.expression.coord solid.energy.ic.expression.coord solid.momentum.ic.expression.coord u0.ic.expression.coord velocity.ic.expression.coord
mechanics-2d-coverage-g++
rhs.expression.coord velocity.ic.expression.coord
mechanics-3d-coverage-g++
rhs.expression.coord velocity.ic.expression.coord
sfi-2d-coverage-g++
allencahn.alpha.ic.expression.coord dendrite.ic.phi.coord dendrite.ic.temp.coord flame.elastic.rhs.expression.coord flame.elastic.velocity.ic.expression.coord flame.laser.ic.expression.coord flame.pf.eta.ic.expression.coord flame.phi.ic.expression.coord flame.temp.ic.expression.coord hydro.density.ic.expression.coord hydro.eta.ic.expression.coord hydro.m0.ic.expression.coord hydro.pressure.ic.expression.coord hydro.q.ic.expression.coord hydro.solid.density.ic.expression.coord hydro.solid.energy.ic.expression.coord hydro.solid.momentum.ic.expression.coord hydro.u0.ic.expression.coord hydro.velocity.ic.expression.coord
thermoelastic-2d-coverage-g++
el.rhs.expression.coord el.velocity.ic.expression.coord hc.ic.expression.coord
thermoelastic-3d-coverage-g++
el.rhs.expression.coord el.velocity.ic.expression.coord hc.ic.expression.coord
topop-2d-coverage-g++
rhs.expression.coord velocity.ic.expression.coord
topop-3d-coverage-g++
rhs.expression.coord velocity.ic.expression.coord
unit
default conditional

Units of the value that is returned by the expression

Names by executable 12 executables, 79 uses
alamo-2d-coverage-g++
alpha.ic.expression.unit crack.ic0.expression.unit elastic.rhs.expression.unit elastic.velocity.ic.expression.unit ic.expression.unit ic.phi.unit ic.temp.unit laser.ic.expression.unit mechanics.rhs.expression.unit mechanics.velocity.ic.expression.unit pf.eta.ic.expression.unit phi.ic.expression.unit rhs.expression.unit temp.ic.expression.unit velocity.ic.expression.unit
alamo-3d-coverage-g++
alpha.ic.expression.unit crack.ic0.expression.unit elastic.rhs.expression.unit elastic.velocity.ic.expression.unit ic.expression.unit ic.phi.unit ic.temp.unit laser.ic.expression.unit mechanics.rhs.expression.unit mechanics.velocity.ic.expression.unit pf.eta.ic.expression.unit phi.ic.expression.unit rhs.expression.unit temp.ic.expression.unit velocity.ic.expression.unit
fracture-2d-coverage-g++
crack.ic0.expression.unit rhs.expression.unit velocity.ic.expression.unit
fracture-3d-coverage-g++
crack.ic0.expression.unit rhs.expression.unit velocity.ic.expression.unit
hydro-2d-coverage-g++
density.ic.expression.unit eta.ic.expression.unit m0.ic.expression.unit pressure.ic.expression.unit q.ic.expression.unit solid.density.ic.expression.unit solid.energy.ic.expression.unit solid.momentum.ic.expression.unit u0.ic.expression.unit velocity.ic.expression.unit
mechanics-2d-coverage-g++
rhs.expression.unit velocity.ic.expression.unit
mechanics-3d-coverage-g++
rhs.expression.unit velocity.ic.expression.unit
sfi-2d-coverage-g++
allencahn.alpha.ic.expression.unit dendrite.ic.phi.unit dendrite.ic.temp.unit flame.elastic.rhs.expression.unit flame.elastic.velocity.ic.expression.unit flame.laser.ic.expression.unit flame.pf.eta.ic.expression.unit flame.phi.ic.expression.unit flame.temp.ic.expression.unit hydro.density.ic.expression.unit hydro.eta.ic.expression.unit hydro.m0.ic.expression.unit hydro.pressure.ic.expression.unit hydro.q.ic.expression.unit hydro.solid.density.ic.expression.unit hydro.solid.energy.ic.expression.unit hydro.solid.momentum.ic.expression.unit hydro.u0.ic.expression.unit hydro.velocity.ic.expression.unit
thermoelastic-2d-coverage-g++
el.rhs.expression.unit el.velocity.ic.expression.unit hc.ic.expression.unit
thermoelastic-3d-coverage-g++
el.rhs.expression.unit el.velocity.ic.expression.unit hc.ic.expression.unit
topop-2d-coverage-g++
rhs.expression.unit velocity.ic.expression.unit
topop-3d-coverage-g++
rhs.expression.unit velocity.ic.expression.unit
region
repeatable conditional

Mathematical expression in terms of x,y,z,t (if coord=cartesian) or r,theta,z,t (if coord=polar) and any defined constants.

Names by executable 12 executables, 79 uses
alamo-2d-coverage-g++
alpha.ic.expression.region crack.ic0.expression.region elastic.rhs.expression.region elastic.velocity.ic.expression.region ic.expression.region ic.phi.region ic.temp.region laser.ic.expression.region mechanics.rhs.expression.region mechanics.velocity.ic.expression.region pf.eta.ic.expression.region phi.ic.expression.region rhs.expression.region temp.ic.expression.region velocity.ic.expression.region
alamo-3d-coverage-g++
alpha.ic.expression.region crack.ic0.expression.region elastic.rhs.expression.region elastic.velocity.ic.expression.region ic.expression.region ic.phi.region ic.temp.region laser.ic.expression.region mechanics.rhs.expression.region mechanics.velocity.ic.expression.region pf.eta.ic.expression.region phi.ic.expression.region rhs.expression.region temp.ic.expression.region velocity.ic.expression.region
fracture-2d-coverage-g++
crack.ic0.expression.region rhs.expression.region velocity.ic.expression.region
fracture-3d-coverage-g++
crack.ic0.expression.region rhs.expression.region velocity.ic.expression.region
hydro-2d-coverage-g++
density.ic.expression.region eta.ic.expression.region m0.ic.expression.region pressure.ic.expression.region q.ic.expression.region solid.density.ic.expression.region solid.energy.ic.expression.region solid.momentum.ic.expression.region u0.ic.expression.region velocity.ic.expression.region
mechanics-2d-coverage-g++
rhs.expression.region velocity.ic.expression.region
mechanics-3d-coverage-g++
rhs.expression.region velocity.ic.expression.region
sfi-2d-coverage-g++
allencahn.alpha.ic.expression.region dendrite.ic.phi.region dendrite.ic.temp.region flame.elastic.rhs.expression.region flame.elastic.velocity.ic.expression.region flame.laser.ic.expression.region flame.pf.eta.ic.expression.region flame.phi.ic.expression.region flame.temp.ic.expression.region hydro.density.ic.expression.region hydro.eta.ic.expression.region hydro.m0.ic.expression.region hydro.pressure.ic.expression.region hydro.q.ic.expression.region hydro.solid.density.ic.expression.region hydro.solid.energy.ic.expression.region hydro.solid.momentum.ic.expression.region hydro.u0.ic.expression.region hydro.velocity.ic.expression.region
thermoelastic-2d-coverage-g++
el.rhs.expression.region el.velocity.ic.expression.region hc.ic.expression.region
thermoelastic-3d-coverage-g++
el.rhs.expression.region el.velocity.ic.expression.region hc.ic.expression.region
topop-2d-coverage-g++
rhs.expression.region velocity.ic.expression.region
topop-3d-coverage-g++
rhs.expression.region velocity.ic.expression.region