Section 18.2 of Chapter 18: Hyperelastic Materials

Hyperelastic materials, Mooney-Rivlin material model for nearly incompressible materials, Part II

A Total Lagrangian Q4 formulation for a nearly incompressible Mooney-Rivlin material in plane stress.

Plane stressQ4HyperelasticTotal Lagrangian

01

Formulation and hypotheses

StrainLarge
DisplacementLarge
MaterialNonlinear elastic, isotropic
Stress statePlane stress

Hyperelastic materials may undergo large recoverable elastic strains. Elastomers such as rubber, many polymers, and several biological tissues belong to this category. [2], [3]

For an ideal hyperelastic material, the response is history-independent: the stress state at a material point is determined by the current deformation, rather than by the deformation history used to reach it. [3]

The elastic behavior is described by the strain-energy density WW, expressed per unit volume of the initial configuration. The Total Lagrangian formulation introduced in Section 18.1 is retained. Its constitutive pair consists of the Green-Lagrange strain tensor E\boldsymbol{E} and the second Piola-Kirchhoff stress tensor S\boldsymbol{S}:

S=WE\boxed{\boldsymbol{S}=\frac{\partial W}{\partial\boldsymbol{E}}}

The nearly incompressible Mooney-Rivlin energy is:

W=A10(Iˉ13)+A01(Iˉ23)+K2(J1)2W=A_{10}(\bar I_1-3)+A_{01}(\bar I_2-3)+\frac{K}{2}(J-1)^2

02

Plane-stress condition and invariants

For a plane-stress state, the Green-Lagrange strain and second Piola-Kirchhoff stress tensors have the forms:

E=[ExExy0ExyEy000Ez],S=[SxSxy0SxySy0000]\boldsymbol{E}=\begin{bmatrix}E_x&E_{xy}&0\\E_{xy}&E_y&0\\0&0&E_z\end{bmatrix},\qquad \boldsymbol{S}=\begin{bmatrix}S_x&S_{xy}&0\\S_{xy}&S_y&0\\0&0&0\end{bmatrix}
Sz=0S_z=0

The out-of-plane strain EzE_z, however, is generally non-zero. The right Cauchy-Green tensor is:

C=2E+I3=[CxCxy0CxyCy000Cz]=[2Ex+12Exy02Exy2Ey+10002Ez+1]\boldsymbol{C}=2\boldsymbol{E}+\boldsymbol{I}_3=\begin{bmatrix}C_x&C_{xy}&0\\C_{xy}&C_y&0\\0&0&C_z\end{bmatrix}=\begin{bmatrix}2E_x+1&2E_{xy}&0\\2E_{xy}&2E_y+1&0\\0&0&2E_z+1\end{bmatrix}

Using the component notation above, the invariants are:

I1=2Ex+2Ey+2Ez+3I2=4Ex+4Ey+4Ez+4ExEy+4EyEz+4EzEx4Exy2+3I3=2Ex+2Ey+2Ez+4ExEy+4EyEz+4EzEx4Exy28EzExy2+8ExEyEz+1\begin{aligned} I_1={}&2E_x+2E_y+2E_z+3\\ I_2={}&4E_x+4E_y+4E_z+4E_xE_y+4E_yE_z+4E_zE_x-4E_{xy}^{2}+3\\ I_3={}&2E_x+2E_y+2E_z+4E_xE_y+4E_yE_z+4E_zE_x-4E_{xy}^{2}\\ &-8E_zE_{xy}^{2}+8E_xE_yE_z+1 \end{aligned}

03

Out-of-plane strain from the incompressibility approximation

For the plane-stress state, the out-of-plane stress is zero, Sz=0S_z=0, whereas the out-of-plane strain EzE_z is generally non-zero. For an exact plane-stress solution, EzE_z should be determined from the condition Sz=0S_z=0 using the complete hyperelastic constitutive relation.

In the present nearly incompressible formulation, a simpler approximation is adopted. Since Poisson's ratio is very close to 0.50.5, the volume change is expected to be very small; therefore:

J1J\approx1

In the calculations, the condition imposed is:

J=1\boxed{J=1}

This condition is an approximation justified by the nearly incompressible material and is not a general consequence of plane stress. Since:

J=detF,I3=detC=det(FTF)=J2J=\det\boldsymbol{F},\qquad I_3=\det\boldsymbol{C}=\det(\boldsymbol{F}^{T}\boldsymbol{F})=J^2

the imposed approximation gives:

I3=detC=1I_3=\det\boldsymbol{C}=1

The three-dimensional deformation gradient is:

F=I3+u=I3+[u,xu,yu,zv,xv,yv,zw,xw,yw,z]\boldsymbol{F}=\boldsymbol{I}_3+\nabla\boldsymbol{u}=\boldsymbol{I}_3+\begin{bmatrix}u_{,x}&u_{,y}&u_{,z}\\v_{,x}&v_{,y}&v_{,z}\\w_{,x}&w_{,y}&w_{,z}\end{bmatrix}

For the two-dimensional plane-stress kinematics, w,x=w,y=u,z=v,z=0w_{,x}=w_{,y}=u_{,z}=v_{,z}=0, while the thickness stretch remains unknown. Hence:

F=[1+u,xu,y0v,x1+v,y000F33]\boldsymbol{F}=\begin{bmatrix}1+u_{,x}&u_{,y}&0\\v_{,x}&1+v_{,y}&0\\0&0&F_{33}\end{bmatrix}

Because E=12(FTFI3)\boldsymbol{E}=\tfrac12(\boldsymbol{F}^{T}\boldsymbol{F}-\boldsymbol{I}_3), the unknown out-of-plane component satisfies Ez=(F3321)/2E_z=(F_{33}^{2}-1)/2. The condition detC=1\det\boldsymbol{C}=1 gives:

Cz=1CxCyCxy2C_z=\frac{1}{C_xC_y-C_{xy}^{2}}

Therefore:

Ez=12(Cz1)=12[1(1+2Ex)(1+2Ey)(2Exy)21]\boxed{E_z=\frac12(C_z-1)=\frac12\left[\frac{1}{(1+2E_x)(1+2E_y)-(2E_{xy})^2}-1\right]}

Since I3=1I_3=1 is imposed, its first and second derivatives vanish in this formulation:

I3E=06×1,2I3E2=06×6\frac{\partial I_3}{\partial\boldsymbol{E}}=\boldsymbol{0}_{6\times1},\qquad \frac{\partial^2I_3}{\partial\boldsymbol{E}^2}=\boldsymbol{0}_{6\times6}

04

Symbolic derivatives and MoonRiv_stress

Because CzC_z is expressed in terms of the in-plane components through the incompressibility condition J=1J=1, the analytical expressions of the first and second derivatives of I1I_1 and I2I_2 become cumbersome. The MATLAB Symbolic Math Toolbox is therefore used to evaluate these derivatives automatically. The resulting expressions are then transferred to the MoonRiv_stress subprogram.

The symbolic program first defines CzC_z from the incompressibility constraint, constructs the right Cauchy-Green tensor C\boldsymbol{C}, evaluates I1I_1 and I2I_2, and finally differentiates them with respect to CxC_x, CyC_y, and CxyC_{xy}. The derivatives with respect to the Green-Lagrange strains are then obtained using Cij/Eij=2\partial C_{ij}/\partial E_{ij}=2.

symbolic_derivatives.m
clear
clc
syms Cxx Cyy Czz Cxy real
Czz=1/(Cxx*Cyy-Cxy^2);
C=[Cxx Cxy 0; Cxy Cyy 0; 0 0 Czz];

I1=trace(C)
I2=1/2*(trace(C)^2-trace(C^2)); I2=expand(I2)

I1E=[diff(I1,Cxx); diff(I1,Cyy); 0; diff(I1,Cxy); 0; 0]*2
I2E=[diff(I2,Cxx); diff(I2,Cyy); 0; diff(I2,Cxy); 0; 0]*2

zr=zeros(6,1);
I1EE=[diff(I1E,Cxx) diff(I1E,Cyy) zr diff(I1E,Cxy) zr zr]*2
I2EE=[diff(I2E,Cxx) diff(I2E,Cyy) zr diff(I2E,Cxy) zr zr]*2

The MATLAB programs used in this section are very similar to those of Section 18.1. The main change is the replacement of the MoonRiv_strain subprogram by MoonRiv_stress. In the plane-stress formulation, the out-of-plane strain EzE_z is first obtained from the incompressibility approximation J=1J=1. This makes CzC_z a function of the in-plane strain components, and therefore the derivatives of the invariants I1I_1 and I2I_2 differ from those used in the plane-strain case. The subprogram MoonRiv_stress contains these new first- and second-derivative expressions and uses them to compute the second Piola-Kirchhoff stresses and the constitutive tangent matrix.

Apart from this constitutive modification, the finite-element structure of the program remains essentially unchanged.

05

MATLAB implementation and convergence

The Total Lagrangian Q4 assembly follows the same sequence used in Sections 12.2 and 18.1. The Green-Lagrange strains are evaluated at every Gauss point, the constitutive response is obtained from MoonRiv_stress, and the element internal-force vector and tangent stiffness matrix are assembled into the corresponding global positions.

Because the material is hyperelastic, the stresses are calculated directly from the current deformation through the strain-energy density function; no stress-history update is required.

stiff.m — constitutive calculation
% Green-Lagrange strains:
ex =ux+ux^2/2+vx^2/2;
ey =vy+uy^2/2+vy^2/2;
exy=uy+vx+ux*uy+vx*vy;

% constitutive calculation:
MoonRiv_stress

% store stresses:
sigmt(ig,:,istep+1)=[sx sy sz sxy];

% store strains:
strnt(ig,:,istep+1)=[ex,ey,ez,exy];

In the present plane-stress approximation, the out-of-plane strain is determined by imposing J=1J=1. Consequently, the volumetric contribution to the strain-energy density vanishes within the imposed approximation, while the response is governed mainly by the distortional part. The large difference between volumetric and distortional stiffness that caused the slow convergence in the plane-strain formulation of Section 18.1 is therefore greatly reduced, and the Newton iteration converges much more rapidly. This conclusion applies specifically to the present J=1J=1 approximation and should not be interpreted as a general property of every plane-stress hyperelastic formulation.

For a nearly incompressible material, with Poisson's ratio very close to 0.5, the approximation J=1J=1 was adopted in the formulation presented above. This leads to a particularly simple plane-stress treatment and requires only minor modifications of the program presented in Section 18.1. A rigorous enforcement of the plane-stress condition, together with a comparison of the numerical results and the corresponding MATLAB programs, is presented in the following addendum.

06

Numerical example

A perforated plate is analyzed in plane stress. The mesh has 767 nodes and 685 isoparametric Q4 elements. The plate thickness is 1 mm1\ \mathrm{mm}, and the total applied force is F=160 NF=160\ \mathrm{N}.

For the present numerical example, the volumetric parameter K=133.33 MPaK=133.33\ \mathrm{MPa} corresponds to E=4 MPaE=4\ {\rm MPa} and ν=0.495\nu=0.495 through the small-strain bulk-modulus relation. The Mooney-Rivlin constants A10=0.48 MPaA_{10}=0.48\ {\rm MPa} and A01=0.11 MPaA_{01}=0.11\ {\rm MPa} define the distortional response.

ANSYS uses the incompressibility parameter dd instead of the bulk modulus KK for this material definition. With the volumetric energy convention used here:

d=2K=0.015 MPa1d=\frac{2}{K}=0.015\ {\rm MPa}^{-1}

The ANSYS finite-strain hyperelastic reference model uses the same geometry, mesh, loading, and material constants. [1]

Perforated plate with loading, boundary conditions, dimensions, and Q4 mesh
Figure 1. Perforated plate, loading, boundary conditions, dimensions, and Q4 finite-element mesh.

07

Displacement comparison

The vertical displacement of the central node on the loaded side is plotted against the applied force. The MATLAB and ANSYS curves are in very good agreement.

Force versus vertical displacement curves from MATLAB and ANSYS
Figure 2. Force versus vertical displacement of the central node on the loaded side.

At the final load, the maximum downward displacements are vmax=199.4048 mmv_{\max}=199.4048\ {\rm mm} in MATLAB and approximately vmax=202.9 mmv_{\max}=202.9\ {\rm mm} in ANSYS.

The displacement maps below are shown on the deformed configuration. The two distributions are nearly identical.

Figure 3a. MATLAB vertical displacement vv.
Figure 3b. ANSYS vertical displacement vv.

08

Green-Lagrange and Hencky strains

The main MATLAB program stores the Green-Lagrange strain. For comparison with the logarithmic output from ANSYS, the Hencky strain is evaluated in a separate postprocessing program:

EH=lnU,U=FTF=C\boldsymbol{E}_{H}=\ln\boldsymbol{U},\qquad \boldsymbol{U}=\sqrt{\boldsymbol{F}^{T}\boldsymbol{F}}=\sqrt{\boldsymbol{C}}

ANSYS reports Hencky strains in the global coordinate frame. [1] The following maps compare the vertical component: MATLAB Green-Lagrange strain, MATLAB Hencky strain, and ANSYS Hencky strain. The maps are presented on the undeformed configuration, consistently with the Total Lagrangian description adopted in the present formulation.

Figure 4a. MATLAB Green-Lagrange strain EyE_y: min 0.118930.11893, max 8.57968.5796.
Figure 4b. MATLAB Hencky strain εH,y\varepsilon_{H,y}: min 0.0454510.045451, max 1.44831.4483.
Figure 4c. ANSYS Hencky strain εH,y\varepsilon_{H,y}: min 0.128310.12831, max 1.470471.47047.

09

PK2 and Cauchy stresses

The constitutive calculation provides the second Piola-Kirchhoff stress S\boldsymbol{S}. ANSYS reports Cauchy stresses in the global coordinate frame. [1] The usual transformation is:

σ=1JFSFT\boxed{\boldsymbol{\sigma}=\frac1J\boldsymbol{F}\boldsymbol{S}\boldsymbol{F}^{T}}

In the present nearly incompressible plane-stress approximation, J=1J=1 is imposed when determining the out-of-plane strain. Therefore, the transformation reduces here to:

σ=FSFT\boxed{\boldsymbol{\sigma}=\boldsymbol{F}\boldsymbol{S}\boldsymbol{F}^{T}}

The maps below compare the vertical second Piola-Kirchhoff stress calculated in MATLAB with the MATLAB and ANSYS Cauchy stresses. All components are referred to the global coordinate frame.

Figure 5a. MATLAB second Piola-Kirchhoff stress SyS_y: min 0.24795 MPa-0.24795\ {\rm MPa}, max 1.0006 MPa1.0006\ {\rm MPa}.
Figure 5b. MATLAB Cauchy stress σy\sigma_y: min 0.2070 MPa-0.2070\ {\rm MPa}, max 18.1774 MPa18.1774\ {\rm MPa}.
Figure 5c. ANSYS Cauchy stress σy\sigma_y: min 0.2033 MPa-0.2033\ {\rm MPa}, max 17.627 MPa17.627\ {\rm MPa}.

10

Out-of-plane Hencky strain

The final comparison concerns the out-of-plane Hencky strain. In MATLAB it is evaluated from the thickness component of the right Cauchy-Green tensor:

εH,z=lnλz=12lnCz\varepsilon_{H,z}=\ln\lambda_z=\frac12\ln C_z

The corrected MATLAB postprocessing gives εH,zmin=0.74128\varepsilon_{H,z}^{\min}=-0.74128 and εH,zmax=0.19894\varepsilon_{H,z}^{\max}=0.19894. The corresponding ANSYS map spans approximately 0.62597-0.62597 to 0.197120.19712. The tensile maximum is close, while the most compressive local value shows a larger difference.

Figure 6a. MATLAB out-of-plane Hencky strain εH,z\varepsilon_{H,z}.
Figure 6b. ANSYS out-of-plane Hencky strain εH,z\varepsilon_{H,z}.

ADDENDUM

Addendum — Exact enforcement of the plane-stress condition

by Chiara

01. Exact plane stress versus the J=1J=1 approximation

The formulation developed above uses the approximation J=1J=1, which is especially attractive for a nearly incompressible material. Exact plane stress, however, is defined by the vanishing out-of-plane stress:

Sz=0\boxed{S_z=0}

When the transverse shear stresses are absent, this condition is equivalent to σz=0\sigma_z=0. It is important to distinguish the two conditions:

J=1andSz=0\boxed{J=1\qquad\text{and}\qquad S_z=0}

The first condition represents exact incompressibility, whereas the second represents exact plane stress. A plane-stress state does not, by itself, imply J=1J=1.

02. Local Newton solution for the out-of-plane strain

In the exact formulation, the out-of-plane Green–Lagrange strain is determined at each Gauss point as the local unknown that satisfies:

Sz(Ex,Ey,Exy,Ez)=0\boxed{S_z(E_x,E_y,E_{xy},E_z)=0}

A local Newton iteration is used:

Ez(k+1)=Ez(k)Sz(k)Dzz(k),Dzz=SzEz\boxed{E_z^{(k+1)}=E_z^{(k)}-\frac{S_z^{(k)}}{D_{zz}^{(k)}}},\qquad D_{zz}=\frac{\partial S_z}{\partial E_z}

The quantity EzE_z is a local constitutive variable. It is not an additional nodal degree of freedom, so the global finite-element system retains the same size.

The incompressibility relation provides an excellent initial estimate for this local iteration. With:

C=[CxCxy0CxyCy000Cz]\boldsymbol{C}=\begin{bmatrix}C_x&C_{xy}&0\\C_{xy}&C_y&0\\0&0&C_z\end{bmatrix}

the local volume ratio satisfies:

J2=Cz(CxCyCxy2)J^2=C_z(C_xC_y-C_{xy}^2)

Setting J=1J=1 only for the initial estimate gives:

Cz(0)=1CxCyCxy2C_z^{(0)}=\frac{1}{C_xC_y-C_{xy}^2}
Ez(0)=12[1CxCyCxy21]\boxed{E_z^{(0)}=\frac12\left[\frac{1}{C_xC_y-C_{xy}^2}-1\right]}

For a nearly incompressible material, this estimate is already close to the exact solution and makes the local constitutive iteration efficient and robust.

The local MATLAB sequence is:

stiff.m — local Newton iteration
ia=[1 2 4];

Cxx=2*ex+1; Cyy=2*ey+1; Cxy=exy;
ez=(1/(Cxx*Cyy-Cxy^2)-1)/2;

tolz=1e-10;
iterzmax=25;

for iterz=1:iterzmax
    MoonRiv_exact_stress
    if abs(sz)<tolz, break, end
    ez=ez-sz/D(3,3);
end

Here, sz is SzS_z, D(3,3) is DzzD_{zz}, and the initial value of ez follows from J=1J=1. The converged value is the local solution that satisfies Sz=0S_z=0.

03. Consistent plane-stress tangent

The constitutive calculation remains three-dimensional throughout the local Newton iteration. The stresses Sx,Sy,Sz,SxyS_x,S_y,S_z,S_{xy} and the complete three-dimensional tangent D\boldsymbol{D} are reevaluated until Sz=0S_z=0 is satisfied.

δS=DδE\boxed{\delta\boldsymbol{S}=\boldsymbol{D}\,\delta\boldsymbol{E}}

By separating the in-plane components from the transverse one, the constitutive relation may be written in block form as

{δSaδSz}=[DaaDazDzaDzz]{δEaδEz}.\left\{\begin{array}{c}\delta\boldsymbol{S}_a\\\delta S_z\end{array}\right\}=\begin{bmatrix}\boldsymbol{D}_{aa}&\boldsymbol{D}_{az}\\\boldsymbol{D}_{za}&D_{zz}\end{bmatrix}\left\{\begin{array}{c}\delta\boldsymbol{E}_a\\\delta E_z\end{array}\right\}.

Using engineering-component vectors written as columns:

Ea={ExEyExy},Sa={SxSySxy}\boldsymbol{E}_a=\left\{\begin{array}{c}E_x\\E_y\\E_{xy}\end{array}\right\},\qquad \boldsymbol{S}_a=\left\{\begin{array}{c}S_x\\S_y\\S_{xy}\end{array}\right\}

where aa denotes the set of active in-plane components. The incremental constitutive equations can be partitioned as:

{δSaδSz}=[DaaDazDzaDzz]{δEaδEz}\boxed{\left\{\begin{array}{c}\delta\boldsymbol{S}_a\\\delta S_z\end{array}\right\}=\begin{bmatrix}\boldsymbol{D}_{aa}&\boldsymbol{D}_{az}\\\boldsymbol{D}_{za}&D_{zz}\end{bmatrix}\left\{\begin{array}{c}\delta\boldsymbol{E}_a\\\delta E_z\end{array}\right\}}
Daa=SaEa,Daz=SaEz\boldsymbol{D}_{aa}=\frac{\partial\boldsymbol{S}_a}{\partial\boldsymbol{E}_a},\qquad \boldsymbol{D}_{az}=\frac{\partial\boldsymbol{S}_a}{\partial E_z}
Dza=SzEa,Dzz=SzEz\boldsymbol{D}_{za}=\frac{\partial S_z}{\partial\boldsymbol{E}_a},\qquad D_{zz}=\frac{\partial S_z}{\partial E_z}

Exact plane stress requires δSz=0\delta S_z=0. Therefore:

δEz=Dzz1DzaδEa\boxed{\delta E_z=-D_{zz}^{-1}\boldsymbol{D}_{za}\,\delta\boldsymbol{E}_a}

and the consistent condensed plane-stress tangent becomes:

Dps=DaaDazDzz1Dza\boxed{\boldsymbol{D}_{\rm ps}=\boldsymbol{D}_{aa}-\boldsymbol{D}_{az}D_{zz}^{-1}\boldsymbol{D}_{za}}

The effect of EzE_z is therefore condensed into the in-plane response, not neglected, and no additional global degree of freedom is introduced.

04. Modification of stiff

The separate MATLAB package retains the simplified formulation and permits selection of the desired treatment:

main.m — plane-stress option
iplane=2;    % 1 - J=1 approximation
             % 2 - exact plane stress, Sz=0

With iplane=1, the program uses the simplified J=1J=1 formulation. With iplane=2, it solves the local equation Sz=0S_z=0 and forms the condensed tangent. The complete constitutive part displayed on the site is:

stiff.m — constitutive calculation
% constitutive calculation:
ia=[1 2 4];

if iplane==1

    MoonRiv_stress
    Dps=D(ia,ia);

elseif iplane==2

    Cxx=2*ex+1; Cyy=2*ey+1; Cxy=exy;
    ez=(1/(Cxx*Cyy-Cxy^2)-1)/2;

    tolz=1e-10;
    iterzmax=25;

    for iterz=1:iterzmax
        MoonRiv_exact_stress
        if abs(sz)<tolz, break, end
        ez=ez-sz/D(3,3);
    end

    Dps=D(ia,ia)-D(ia,3)*(D(3,3)\D(3,ia));

    Jt=Jt+sqrt(I3);

end

05. Mean volume ratio

For iplane=2, the program accumulates the local volume ratio at all four Gauss points of every element. At the end of the analysis it reports:

main.m — mean volume ratio
if iplane==2, disp(['J_mean = ',num2str(Jt/4/nel)]), end
Jmean=Jt4nel\boxed{J_{\rm mean}=\frac{J_t}{4n_{el}}}
Jmean=1.0119\boxed{J_{\rm mean}=1.0119}

No corresponding value is displayed for iplane=1, because that formulation imposes J=1J=1 directly.

06. Numerical comparison

For the perforated-plate example, the simplified and exact formulations give the following final results:

FormulationConditionvmax (mm)v_{\max}\ ({\rm mm})JmeanJ_{\rm mean}
SimplifiedJ=1J=1199.40-199.4011 imposed
Exact plane stressSz=0S_z=0202.90-202.901.01191.0119

The displacement difference is approximately 3.50 mm3.50\ {\rm mm}, or 1.75%1.75\%. The exact formulation gives Jmean=1.0119J_{\rm mean}=1.0119, corresponding to an average volumetric departure of about 1.19%1.19\%. Thus, the simplified condition gives a close structural response for this nearly incompressible example, while the exact formulation reveals the small but non-zero volume change required to satisfy Sz=0S_z=0.

07. Final distinction

The distinction can be summarized as:

J=1simplified nearly incompressible plane stressSz=0exact plane stress.\boxed{\begin{array}{ccc}J=1&\Longrightarrow&\text{simplified nearly incompressible plane stress}\\[2mm]S_z=0&\Longrightarrow&\text{exact plane stress}.\end{array}}

The comparison also illustrates why the J=1J=1 approximation is so attractive in a nearly incompressible material: it captures the structural response with good accuracy while avoiding the local nonlinear solution required by the exact plane-stress condition.

11

Programs and references

The Q4 analysis programs, Hencky-strain postprocessor, Cauchy-stress postprocessor, and ANSYS macro used for this example can be downloaded below.

References

  1. [1]Ansys Inc., ANSYS Mechanical APDL Theory Reference, Release 2026 R1, 2026.
  2. [2]Hyperelastic material, Wikipedia.
  3. [3]N.-H. Kim, Introduction to Non-Linear Finite Element Analysis, Springer, 2015.