Mathematical Reference
This page provides the complete mathematical formulations used in Sentinel.jl, including the governing equations, all seven material model element kernels, the inverse problem, regularization functionals, and optimizer update rules.
General Framework
Governing Equation
Sentinel solves the frequency-domain viscoelastic wave equation. Given harmonic excitation at angular frequency
where
Mixed Finite Element Formulation
For incompressible and nearly-incompressible models (Models 1, 2, 5, 6, 7), a mixed
This gives 81 displacement DOFs (27 nodes
Element Stiffness Block Structure
The element stiffness matrix has the
where
Complex Symmetry
All stiffness matrices are complex symmetric:
Model 1: Isotropic Incompressible
Parameters: complex shear modulus
Constitutive law:
Displacement-Displacement Block
Diagonal terms (
Off-diagonal terms (
with cyclic permutations for other component pairs.
Displacement-Pressure Block
Pressure-Pressure Block
Model 2: Orthotropic
Parameters: 3 Young's moduli
Compliance Matrix
The
Derived Poisson Ratios
Derived Stiffness Coefficients
Define the compliance sub-terms:
The
Pressure Coupling
Compliance-weighted pressure terms:
with analogous terms for
Model 3: Isotropic Compressible
Parameters: complex shear modulus
No pressure DOFs — element stiffness is
Lame Parameters
Stiffness Matrix
Diagonal (
Off-diagonal (
Model 4: Poroelastic (Tet4)
Parameters: solid shear
Uses linear tetrahedral (Tet4) elements with 4 displacement nodes (12 DOFs) and 4 nodal pressure DOFs, giving a
Biot Coupling Coefficient
where
Non-Symmetry
Warning
The poroelastic element matrix is NOT symmetric:
Analytical Integration
Tet4 uses analytical integration (no Gauss quadrature) based on the constant-gradient property of linear tetrahedra:
where
General Anisotropic Framework (Models 2, 5, 6, 7)
Models 2, 5, 6, and 7 all use the general
Expanding the
| Block | Formula |
|---|---|
Each integral includes the inertial mass term
Model 5: Transverse Isotropic V1
Parameters: isotropic shear
Local Stiffness (Fiber-Aligned Frame)
The global stiffness is obtained via Bond rotation:
Model 6: Transverse Isotropic V2
Parameters: shear
Local Stiffness (Fiber-Aligned Frame)
Model 7: Generalized Anisotropic
Parameters: 2 Young's moduli
Based on the Itzkov-Askel incompressible transversely isotropic formulation.
Local Stiffness (Fiber-Aligned Frame)
Define
Note
Model 7 uses a pure Lagrange multiplier for incompressibility:
Bond Rotation
For fiber-aligned models (5, 6, 7), the local stiffness
Rotation Matrix
Given fiber direction
where
Bond Matrix
The
The global stiffness is then:
Inverse Problem
Objective Function
The inverse problem minimizes the misfit between calculated and measured displacements:
where
Adjoint Method
The gradient is computed efficiently via the adjoint method. The adjoint displacement
where
Gradient Computation
The gradient of the data-misfit term with respect to material parameter
where the sum runs over elements
The parameter
Regularization Functionals
Tikhonov
Standard L2 penalty on deviation from reference:
Gradient:
Hessian diagonal:
Total Variation
Smoothed TV functional on the material mesh:
where
Gradient:
Soft Prior
Region-based discrete Laplacian penalty:
where
Gradient:
Exterior Constraint
Barrier penalty for out-of-domain parameters:
Gradient: Only nonzero for parameters violating bounds:
Hessian Modifiers
Joachimowicz: Scales diagonal Hessian by average value, error, and weight:
where
Marquardt: Normalized Levenberg-Marquardt damping. First normalize the Hessian:
Then add damping
Post-Processing Regularizations
Van Houten: Clips power-law exponents to
Spatial Filter: Applies Gaussian smoothing with kernel widths
Bounds (McGarry): Enforces Poisson ratio bounds
Optimizer Update Rules
Conjugate Gradient (Polak-Ribiere+)
Search direction:
with the Polak-Ribiere+ update:
The
Gauss-Newton
Uses a diagonal Hessian approximation:
where
L-BFGS
Limited-memory BFGS quasi-Newton method using the two-loop recursion. Maintains
Initial Hessian scaling:
The search direction is computed via the standard two-loop recursion with
Line Search
All optimizers use Armijo backtracking line search. Given sufficient decrease parameter