neoHookeanElastic
Compressible neo-Hookean hyperelasticity, with the volumetric-isochoric split of Simo and Hughes (1998). The runtime type is:
neoHookeanElastic
It is the usual choice for large-strain rubber-like materials in solids4foam, and the elastic part of neoHookeanElasticMisesPlastic. The dictionary layout common to all laws is described in the material models page.
User Guide
What it computes
At each integration point, from the deformation gradient F and J = det(F) supplied by the solid model:
bEbar = J^(-2/3)*symm(F & F.T())
sigmaHyd = 0.5*K*(J^2 - 1)
sigma = (mu/J)*dev(bEbar) + (sigmaHyd/J)*I
which is the Cauchy stress of the stored energy
Psi = 0.5*mu*(tr(bEbar) - 3) + U(J), U(J) = 0.25*K*(J^2 - 1 - 2*ln(J))
The law is finite-strain only. A linear geometry solid model stops with an error, since the law has no small-strain evaluation; use linearElastic there. A point with J <= sqrt(SMALL) is a fatal error. The law holds no history.
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] |
solvePressureEqn | no | no | Hydrostatic smoothing, see below |
pressureSmoothingScaleFactor | no | 100 | Scale of that smoothing |
Exactly one of the pairs E/nu and mu/K must be given; both, or neither, is a fatal error. Their dimensions are checked. 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. nu must satisfy -1 < nu < 0.5, or equal 0.5 (below). Under planeStress yes nu = 0.5 is accepted and gives a finite bulk modulus.
Fully incompressible material
With nu 0.5 (to within SMALL) and planeStress no the law is fully incompressible: K is held at GREAT and the law reports itself as incompressible. The framework then refuses, naming the material, any evaluation that returns the total stress or a tangent that includes the bulk stiffness. Only a mixed displacement-pressure formulation, which replaces the volumetric response with a solved pressure, can use it.
Tangents and volumetric split
- Scalar tangent:
(4/3)*mu + K; the deviatoric scalar tangent is(4/3)*mu. - Fourth-order tangent:
fourthOrderFiniteDifferenceonly. Asking for the analyticalfourthOrdertangent is a fatal error. - Volumetric split: yes. The energy is written on
bEbar, so the isochoric stress is(mu/J)*dev(bEbar)and the volumetric response isdU/dJ = sigmaHyd/J. The isochoric stress is invariant under a superposed dilation.
The split lets the law be used with a mixed formulation, such as coupledPressureDisplacementSolid or nonLinearGeometryTotalLagrangianTotalDisplacement with solvePressure true, where the solved pressure replaces dU/dJ. The pressure equation of the latter assumes the U(J) above, which this law satisfies. The mixed formulation is chosen by the solid model, not by this dictionary.
Hydrostatic stress smoothing
solvePressureEqn yes in the law's entry asks the solid model to replace the explicit hydrostatic stress J*dU/dJ = 0.5*K*(J^2 - 1) with a smoothed field, sigmaHyd, which is written at each write time. The smoothing diffusivity is pressureSmoothingScaleFactor times the interpolate of impK/DEqnA. It is done by the solid model, not the law, and is available only:
- with
nonLinearGeometryUpdatedLagrangian,nonLinearGeometryTotalLagrangianTotalDisplacementorlinearGeometryTotalDisplacement; - with the
implicitSegregatedsolution algorithm; - for a single material, and not together with
solvePressure.
Any other combination is refused at start-up.
State variables
None. The law writes no restart files and no state fields.
Example
From the blockPunch tutorial, with the moduli given as mu and K:
planeStress no;
mechanical
(
steel
{
type neoHookeanElastic;
rho rho [1 -3 0 0 0 0 0] 1000;
mu mu [1 -1 -2 0 0 0 0] 92.5;
K K [1 -1 -2 0 0 0 0] 462.416666667;
}
);
The rubberSealing tutorial gives E and nu instead, with planeStress yes, solvePressureEqn yes and pressureSmoothingScaleFactor 1e4.
Differences from the legacy law
pressureDisplacement,pressureDisplacementCoeff,alternatePressureDefinition,tangentEpsandregionNameare no longer read. They are not reported as errors, so remove them from migrated cases.- The pressure-displacement mode is gone. The stress is always built on
bEbar; a mixed formulation now asks the law for its isochoric stress and volumetric response separately, and never reads apfield. The legacy mode used the fullbin the deviatoric stress andmuas the implicit stiffness. nu 0.5now makes the material incompressible directly, where the legacy law setKtoGREATonly in pressure-displacement mode.nuis validated.- The hydrostatic smoothing is done by the solid model rather than the law, and is refused where it is not supported rather than ignored.
- A fourth-order tangent is available by finite differences (
fourthOrderFiniteDifference); the legacy law built a face-based numerical tangent that neededtangentEps. Fis not stored by the law; the solid model owns the kinematics.
Tutorials
- blockPunch
- cantileverVibration
- compressedSpheres
- cooksMembrane
- manufacturedSolution, in
hyperelasticity, which verifies the law's stress against a manufactured solution - rubberSealing
- shallowIroning
- twistingHemisphere, with two materials
- cylindricalPressureVessel, in the three
caseOptions/pressureDisplacementvariants, which usenu 0.5withcoupledPressureDisplacementSolid - plateHole, in both
caseOptions/pressureDisplacementvariants - fillingElasticContainer
- flexibleDamBreak
References
- J.C. Simo and T.J.R. Hughes, Computational Inelasticity, Springer, 1998, 10.1007/b98904.