v0.16.0
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
HMHNeohookean.cpp File Reference

Abaqus-compatible compressible Neo-Hookean material in principal stretches. More...

#include <Lie.hpp>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <iomanip>
#include <limits>
#include <sstream>
#include <vector>

Go to the source code of this file.

Classes

struct  EshelbianPlasticity::HMHNeohookean
 
struct  EshelbianPlasticity::HMHNeohookean::PrincipalState
 
struct  EshelbianPlasticity::HMHNeohookean::OpJacobian
 
struct  EshelbianPlasticity::HMHNeohookean::OpSpatialPhysical
 
struct  EshelbianPlasticity::HMHNeohookean::OpSpatialPhysicalExternalStrain
 
struct  EshelbianPlasticity::HMHNeohookean::OpSpatialPhysical_du_du
 
struct  EshelbianPlasticity::HMHNeohookean::CalculateStretchFromStress< T_Biota, T_Stretch >
 Recover the stretch tensor from a prescribed Biot stress. More...
 
struct  EshelbianPlasticity::HMHNeohookean::OpCalculateStretchFromStress
 
struct  EshelbianPlasticity::HMHNeohookean::BlockData
 

Namespaces

namespace  EshelbianPlasticity
 

Functions

void EshelbianPlasticity::tetcircumcenter_tp (double a[3], double b[3], double c[3], double d[3], double circumcenter[3], double *xi, double *eta, double *zeta)
 
MoFEMErrorCode EshelbianPlasticity::testHMHNeohookeanStretchGradient ()
 

Detailed Description

Abaqus-compatible compressible Neo-Hookean material in principal stretches.

Date
2024-08-31

Constitutive synopsis

The deformation gradient is split as F = R U, where R is a rigid rotation and U is the symmetric positive-definite stretch tensor. If lambda_a are the eigenvalues (principal stretches) of U, this implementation evaluates

W(U) = c10 (J^{-2/3} tr(U^2) - 3) + K/2 (J - 1)^2, J = det(U), mu_0 = 2 c10, D_1 = 2/K.

The internal scalar variable is the natural Hencky stretch h_a=log(lambda_a), so lambda_a=exp(h_a).

This is the same reduced-polynomial N=1 potential used by mofem/src/materials/impl/MatNeohookean.cpp. Require c10 > 0 and K > 0. The energy is objective, so rigid rotations do not change it: zero rotational modes in a full F-based Hessian are expected and are not a loss of stretch stability.

Definition in file HMHNeohookean.cpp.