Material Models
Type Hierarchy
Sentinel.AbstractMaterialModel Type
AbstractMaterialModelAbstract supertype for all MRE material constitutive models. Concrete subtypes drive dispatch for element integration, adjoint gradient computation, and optimization routines.
sourceSentinel.IsotropicIncompressible Type
IsotropicIncompressible <: AbstractMaterialModelRayleigh-damped viscoelastic isotropic incompressible material. Corresponds to Fortran mtrlmodel = 1.
Material properties (numprop = 1):
- prop 1: complex shear modulus G* = G_r + i·G_i [Pa]
Uses a mixed pressure-displacement formulation with elemental pressures.
sourceSentinel.IsotropicCompressible Type
IsotropicCompressible <: AbstractMaterialModelRayleigh-damped isotropic compressible viscoelastic material. Corresponds to Fortran mtrlmodel = 3.
Material properties (numprop = 2):
prop 1: complex shear modulus G* [Pa]
prop 2: complex bulk modulus K* Pa
Supports both hex27 and tet4 elements.
sourceSentinel.Orthotropic Type
Orthotropic <: AbstractMaterialModelRayleigh-damped orthotropic viscoelastic material. Corresponds to Fortran mtrlmodel = 2.
Material properties (numprop = 2):
prop 1: complex shear modulus in plane 1
prop 2: complex shear modulus in plane 2
Requires fiber direction field for principal axis definition.
sourceSentinel.Poroelastic Type
Poroelastic <: AbstractMaterialModelPoroelastic material with fluid pressure as an additional nodal DOF. Corresponds to Fortran mtrlmodel = 4.
Material properties:
Solid frame elastic properties
Fluid viscosity η
Permeability κ
Porosity φ
DOF layout: [u_x(1..nn), u_y(1..nn), u_z(1..nn), p(1..nn)] Fixed extra properties: ρ_p (solid density), ρ_a (added mass), ρ_f (fluid density)
sourceSentinel.TransverseIsotropicV1 Type
TransverseIsotropicV1 <: AbstractMaterialModelTransverse isotropic viscoelastic material, formulation 1. Corresponds to Fortran mtrlmodel = 5.
Material properties (numprop = 2):
prop 1: complex shear modulus in the isotropic plane G_TI*
prop 2: complex anisotropy ratio
Requires fiber direction field (DTI-derived) for symmetry axis. Uses same assembly kernel as TransverseIsotropicV2 and GeneralizedAnisotropic.
Sentinel.TransverseIsotropicV2 Type
TransverseIsotropicV2 <: AbstractMaterialModelTransverse isotropic viscoelastic material, formulation 2. Corresponds to Fortran mtrlmodel = 6.
Alternate parameterization of transverse isotropy. Uses same assembly kernel as TransverseIsotropicV1 and GeneralizedAnisotropic.
Sentinel.GeneralizedAnisotropic Type
GeneralizedAnisotropic <: AbstractMaterialModelGeneralized anisotropic viscoelastic material. Corresponds to Fortran mtrlmodel = 7.
Uses same assembly kernel (genanisoforwardassemble) as models 5 and 6.
Sentinel.material_model Function
material_model(model::Int) -> AbstractMaterialModelConvert the Fortran integer model flag to the corresponding Julia type singleton.
Examples
julia> material_model(1)
IsotropicIncompressible()
julia> material_model(4)
Poroelastic()Material Data
Sentinel.Material Type
MaterialComplete material description for a single zone, including all properties, error tracking, and multi-mesh parameterization. Corresponds to the Fortran material derived type.
Fields
model: integer model identifier (1–7), or usematerial_model(model)for dispatchnumprop: number of material propertiesnreg: number of regularization termsnummeas: number of measurement points for error analysisprop: vector ofSingleProperty, lengthnumpropnummtrlmesh: number of material meshes (for multi-resolution parameterization)meshind:(2, numprop, nummtrlmeshstructs)— mesh index for real/imag per propertyres8:(nummtrlmesh, 3)— resolution of each material mesh [dx, dy, dz]nodval: nodal material property values for tet mesh,(nn, numprop)complexpsource: pressure source for poroelastic model,(np, numdispsets)complexrhop,rhoa,rhof: poroelastic density parameters (model=4 only)toterrinit,totalerror,disperror,toterrprev: error tracking scalarsnumerrupdate: iteration counter for error updatescalcvar: flag — compute property estimate varianceserrinit: flag — whethertoterrinithas been initializedregerror: per-regularization-term error, lengthnreg
Sentinel.SingleProperty Type
SinglePropertyStores the values of one scalar material property across all parameter nodes/elements. Corresponds to the Fortran singleproperty derived type.
Fields
basis: parameterization basis —1= nodal,2= elementalnvpp: number of values per point (e.g., 3 for power-law: θ₀_r, α_r, ω₀_r)scalar: 4-element scaling vector[s_r, s_i, α_r, α_i]for power-law normalizationnpr: number of parameter points for the real partnpi: number of parameter points for the imaginary partrvalue: real property values, size(npr, nvpp)— stored as normalized valuesivalue: imaginary property values, size(npi, nvpp)— stored as normalized valuesrvariance: variance of real estimates, size(npr, nvpp)ivariance: variance of imaginary estimates, size(npi, nvpp)rupdate: flags indicating updated real parameter points, lengthnpriupdate: flags indicating updated imaginary parameter points, lengthnpircount: update counts for real parameter points, lengthnpricount: update counts for imaginary parameter points, lengthnpirgp: number of Gauss points affected by each real property value, lengthnprigp: number of Gauss points affected by each imaginary property value, lengthnpirmesh: index of the material mesh that real property is defined on (1-based)imesh: index of the material mesh that imaginary property is defined on (1-based)
Notes
The scalar vector enables dimensionless parameterization:
scalar[1]scales real values: μ_r = scalar[1] * rvalue[j, k]scalar[2]scales imag values: μ_i = scalar[2] * ivalue[j, k]scalar[3],scalar[4]are α scalings for power-law frequency dependence
For non-power-law (standard) properties, nvpp = 1 and only one set of values exists. For power-law properties, nvpp = 3 with values [θ₀, α, ω₀] per point.