StVenantKirchhoffElastic
St. Venant-Kirchhoff hyperelasticity: the second Piola-Kirchhoff stress is a linear function of the Green-Lagrange strain. The runtime type is:
StVenantKirchhoffElastic
It is the simplest finite-strain extension of Hooke's law. It captures large rotations exactly but is only suited to small or moderate strains. 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):
E = 0.5*(symm(F.T() & F) - I)
S = 2*mu*E + lambda*tr(E)*I
sigma = symm(F & S & F.T())/J
which is the Cauchy stress of Psi = mu*(E && E) + 0.5*lambda*tr(E)^2.
The law is finite-strain only; a linear geometry solid model stops with an error, and linearElastic should be used there. It holds no history.
Psi is quadratic in the Green strain, so it does not penalise Japproaching zero, and the law has no check on J. Do not use it for largevolumetric compression; prefer neoHookeanElastic.
Model options
| Entry | Required | Default | Description |
|---|---|---|---|
rho | yes | - | Density, [1 -3 0 0 0 0 0] |
E | with nu | - | Young's modulus, [1 -1 -2 0 0 0 0] |
nu | with E | - | Poisson's ratio, dimensionless |
mu | with K | - | Shear modulus, [1 -1 -2 0 0 0 0] |
K | with mu | - | Bulk modulus, [1 -1 -2 0 0 0 0] |
Exactly one of the pairs E/nu and mu/K must be given; both, or neither, is a fatal error. Their dimensions are checked, and nu must satisfy -1 < nu < 0.5. A mu/K pair is converted to E and nu with the 3-D relations, and then
mu = E/(2*(1 + nu))
lambda = E*nu/((1 + nu)*(1 - 2*nu)) planeStress no
lambda = E*nu/((1 + nu)*(1 - nu)) planeStress yes
K = lambda + (2/3)*mu
so under planeStress yes the bulk modulus used is the plane-stress one, not a K given in the dictionary.
Tangents and volumetric split
- Scalar tangent:
2*mu + lambda; the deviatoric scalar tangent is(4/3)*mu. - Fourth-order tangent:
fourthOrderFiniteDifferenceonly. Asking for the analyticalfourthOrdertangent is a fatal error. - Volumetric split: no. The energy is written on the full Green strain, 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
None. The law writes no restart files and no state fields.
Example
From the beamInCrossFlow fluid-solid interaction tutorial (constant/solid/mechanicalProperties):
planeStress no;
mechanical
(
rubber
{
type StVenantKirchhoffElastic;
rho rho [1 -3 0 0 0 0 0] 1000;
E E [1 -1 -2 0 0 0 0] 1e4;
nu nu [0 0 0 0 0 0 0] 0.4;
}
);
Differences from the legacy law
solvePressureEqnis now a fatal error. The legacy law accepted it andpressureSmoothingScaleFactor, but never used them.regionNameis no longer read.nuis now validated.- The legacy fallback to a Hookean stress when the solid model enforced linearity is gone.
- A fourth-order tangent is available by finite differences.
Tutorials
- rigidRotation:
rotatingBlock,rotatingCylinderandrotatingSphere - beamInCrossFlow
- cavityFlexibleBottom
- HronTurek: the Turek-Hron FSI1, FSI2 and FSI3 benchmarks
The 3dTube tutorial keeps the law as a commented alternative to linearElastic.