v0.16.3
Loading...
Searching...
No Matches
Classes | Public Types | Static Public Member Functions | List of all members
EshelbianPlasticity::NeoHookeanLogarithmicMaterial Struct Reference

#include "users_modules/eshelbian_plasticity/src/NeoHookeanLogarithmicMaterial.hpp"

Classes

struct  InverseState
 
struct  Parameters
 
struct  VolumeState
 

Public Types

using Coordinates = FTensor::Tensor1< double, 5 >
 
using SymmetricTensor = FTensor::Tensor2_symmetric< double, 3 >
 
using Tangent = FTensor::Tensor2< double, 5, 5 >
 

Static Public Member Functions

static MoFEMErrorCode validateParameters (const Parameters &parameters)
 Check finite, strictly positive C10, K and representable mu = 2*C10.
 
static SymmetricTensor getTensor (const Coordinates &t_coordinates, double theta=0.)
 Reconstruct H = D + theta*I/3 from the fixed five-coordinate basis.
 
static Coordinates getCoordinates (const SymmetricTensor &t_tensor)
 Project a symmetric tensor onto the fixed trace-free basis.
 
static MoFEMErrorCode evaluateDeviator (const Parameters &parameters, const Coordinates &t_deviator, double &energy, Coordinates *stress_ptr=nullptr, Tangent *hessian_ptr=nullptr)
 Evaluate f(D), optionally its five-component gradient and Hessian.
 
static MoFEMErrorCode evaluateVolume (const Parameters &parameters, double theta, VolumeState &state)
 Evaluate g(J) = K*(J-1)^2/2 and its logarithmic-volume derivatives.
 
static MoFEMErrorCode evaluateInverse (const Parameters &parameters, const Coordinates &t_stress, InverseState &state)
 Recover Dm(Td), its compliance and conjugate energy; no state is cached.
 
static MoFEMErrorCode evaluateFenchelGap (const Parameters &parameters, const Coordinates &t_deviator, const Coordinates &t_stress, const InverseState &inverse, double &gap, double *energy_ptr=nullptr)
 

Detailed Description

Stateless material evaluations, independent of mesh fields and solvers.

The five coordinates use (11-22)/sqrt(2), (11+22-2*33)/sqrt(6), sqrt(2)*12, sqrt(2)*13 and sqrt(2)*23. Their Euclidean pairing is the Frobenius pairing of symmetric trace-free tensors.

Call validateParameters after reading or changing material parameters and before evaluating a state. Kernels recheck this precondition only in debug builds; trial-state validity and numerical representability are always checked.

Definition at line 22 of file NeoHookeanLogarithmicMaterial.hpp.

Member Typedef Documentation

◆ Coordinates

Definition at line 23 of file NeoHookeanLogarithmicMaterial.hpp.

◆ SymmetricTensor

Definition at line 24 of file NeoHookeanLogarithmicMaterial.hpp.

◆ Tangent

Definition at line 25 of file NeoHookeanLogarithmicMaterial.hpp.

Member Function Documentation

◆ evaluateDeviator()

static MoFEMErrorCode EshelbianPlasticity::NeoHookeanLogarithmicMaterial::evaluateDeviator ( const Parameters parameters,
const Coordinates t_deviator,
double energy,
Coordinates stress_ptr = nullptr,
Tangent hessian_ptr = nullptr 
)
static

Evaluate f(D), optionally its five-component gradient and Hessian.

◆ evaluateFenchelGap()

static MoFEMErrorCode EshelbianPlasticity::NeoHookeanLogarithmicMaterial::evaluateFenchelGap ( const Parameters parameters,
const Coordinates t_deviator,
const Coordinates t_stress,
const InverseState inverse,
double gap,
double energy_ptr = nullptr 
)
static

Evaluate f(D) + f*(Td) - Td:D, optionally returning the computed f(D). The supplied inverse must correspond to the same Td.

◆ evaluateInverse()

static MoFEMErrorCode EshelbianPlasticity::NeoHookeanLogarithmicMaterial::evaluateInverse ( const Parameters parameters,
const Coordinates t_stress,
InverseState state 
)
static

Recover Dm(Td), its compliance and conjugate energy; no state is cached.

◆ evaluateVolume()

static MoFEMErrorCode EshelbianPlasticity::NeoHookeanLogarithmicMaterial::evaluateVolume ( const Parameters parameters,
double  theta,
VolumeState state 
)
static

Evaluate g(J) = K*(J-1)^2/2 and its logarithmic-volume derivatives.

◆ getCoordinates()

static Coordinates EshelbianPlasticity::NeoHookeanLogarithmicMaterial::getCoordinates ( const SymmetricTensor t_tensor)
static

Project a symmetric tensor onto the fixed trace-free basis.

◆ getTensor()

static SymmetricTensor EshelbianPlasticity::NeoHookeanLogarithmicMaterial::getTensor ( const Coordinates t_coordinates,
double  theta = 0. 
)
static

Reconstruct H = D + theta*I/3 from the fixed five-coordinate basis.

◆ validateParameters()

static MoFEMErrorCode EshelbianPlasticity::NeoHookeanLogarithmicMaterial::validateParameters ( const Parameters parameters)
static

Check finite, strictly positive C10, K and representable mu = 2*C10.


The documentation for this struct was generated from the following file: