OgdenElastic
Three-term Ogden hyperelasticity, written on the principal stretches, with a bulk-modulus penalty on volume change. The runtime type is:
OgdenElastic
The dictionary layout common to all laws is described in the material models page.
User Guide
What it computes
At each integration point, from F and J = det(F), the left Cauchy-Green tensor is decomposed into its eigenvalues b_i and eigenvectors n_i:
b = F & F.T()
lambda_i = max(sqrt(b_i), VSMALL)
p_i = mu1*lambda_i^alpha1 + mu2*lambda_i^alpha2 + mu3*lambda_i^alpha3
s = sum_i p_i*n_i*n_i
sigmaHyd = 0.5*K*(J^2 - 1)
sigma = (dev(s) + sigmaHyd*I + symm(F & sigma0 & F.T()))/J
The stretches are the full principal stretches, not isochoric ones, and s is formed in the eigenvectors of b, the principal directions of the current configuration, so the stress rotates with a superposed rotation. sigma0 is an optional initial stress (see State variables), pushed forward with F.
The law is finite-strain only; a linear geometry solid model stops with an error. It holds no history.
Model options
| Entry | Required | Default | Description |
|---|---|---|---|
rho | yes | - | Density, [1 -3 0 0 0 0 0] |
mu1 | yes | - | First modulus, [1 -1 -2 0 0 0 0] |
mu2 | yes | - | Second modulus, [1 -1 -2 0 0 0 0] |
mu3 | yes | - | Third modulus, [1 -1 -2 0 0 0 0] |
alpha1 | yes | - | First exponent, dimensionless |
alpha2 | yes | - | Second exponent, dimensionless |
alpha3 | yes | - | Third exponent, dimensionless |
K | yes | - | Bulk modulus, [1 -1 -2 0 0 0 0] |
The entries are read as dimensioned scalars, but their dimensions and values are not checked, and there is no check on J. The parameters are printed at construction. The top-level planeStress entry is not used by this law: there is no plane-stress reduction.
Tangents and volumetric split
- Scalar tangent:
(4/3)*mu + K, and(4/3)*mufor thescalarDeviatoricrequest, wheremu = 0.5*(mu1*alpha1 + mu2*alpha2 + mu3*alpha3)is the small-strain shear modulus. - Fourth-order tangent:
fourthOrderFiniteDifferenceonly. Asking for the analyticalfourthOrdertangent is a fatal error. - Volumetric split: no. The energy is not written on an isochoric measure, so the law cannot separate its isochoric stress from its volumetric response. A mixed displacement-pressure formulation refuses it, naming the material, and
solvePressureEqnis refused at start-up.
State variables
| Name | Type | Role | Description |
|---|---|---|---|
sigma0 | symmTensor | prescribed | Initial stress, default zero |
sigma0 is read from a volSymmTensorField named sigma0 in the current time directory, or in 0, or from a field of that name registered by another model; otherwise it is zero. It is the user's input rather than history, so the law writes no restart files and no state fields.
Example
The equivalent Ogden parameters given, commented out, in the cylinderCrush hyperelasticity tutorial:
planeStress no;
mechanical
(
rubber
{
type OgdenElastic;
rho rho [1 -3 0 0 0 0 0] 1000;
K K [1 -1 -2 0 0 0 0] 1.410e+9;
mu1 mu1 [1 -1 -2 0 0 0 0] 0.746e+6;
mu2 mu2 [1 -1 -2 0 0 0 0] -0.306e+6;
mu3 mu3 [1 -1 -2 0 0 0 0] 6.609e-5;
alpha1 alpha1 [0 0 0 0 0 0 0] 1.748;
alpha2 alpha2 [0 0 0 0 0 0 0] -1.656;
alpha3 alpha3 [0 0 0 0 0 0 0] 7.671;
}
);
The tutorial itself runs MooneyRivlinElastic with solvePressureEqn yes, which this law does not accept.
Differences from the legacy law
solvePressureEqnandpressureSmoothingScaleFactorare now refused: the law has no volumetric split, so the solid model cannot smooth its hydrostatic stress. The legacy law smoothed it itself.regionNameis no longer read.- The law is evaluated at whatever integration points the solid model uses; the legacy law was cell-centred only, and its face form aborted.
- The legacy fallback to a Hookean stress when the solid model enforced linearity is gone.
- A fourth-order tangent is available by finite differences.
- The stress is assembled along the eigenvectors of
b. The legacy law used those ofC, the reference directions, so under a stretch with a finite rotation its stress was rotated back by the rotation. - The scalar tangent uses the small-strain shear modulus
0.5*(mu1*alpha1 + mu2*alpha2 + mu3*alpha3); the legacy law usedmu1 + mu2 + mu3. The tangent only steers the iterations, so converged answers do not change. sigma0is still optional and still pushed forward withF; it is now read as a prescribed state field rather than by the base class.
Tutorials
No tutorial selects this law. The cylinderCrush and rubberSealing hyperelasticity tutorials keep Ogden parameters as a commented alternative; rubberSealing notes that the law supports neither plane stress nor the mixed formulation.