NeoHookean constitutive behavior. More...
#include <Material.h>
Classes | |
struct | NeoHookenTmpVec |
Holds temporary vectors used by getConstitutiveResponse Instead of allocating new arrays on the stack, we reuse the same memory in the hope of better cache efficiency There is on instance of this struct per thread. More... | |
Public Member Functions | |
NeoHookean (double LambdaInput, double MuInput, double rhoInput=0) | |
virtual | ~NeoHookean () |
NeoHookean (const NeoHookean &NewMat) | |
virtual NeoHookean * | clone () const |
bool | getConstitutiveResponse (const std::vector< double > &strain, std::vector< double > &stress, std::vector< double > &tangents, const ConstRespMode &mode) const |
Returns the constitutive response of the material. | |
const std::string | getMaterialName () const |
returns a string with the name of the material | |
double | getSoundSpeed (void) const |
Private Attributes | |
double | Lambda |
double | Mu |
Static Private Attributes | |
static GaloisRuntime::PerCPU < NeoHookenTmpVec > | perCPUtmpVec |
Per thread storage for NeoHookenTmpVec. |
NeoHookean constitutive behavior.
NeoHookean::NeoHookean | ( | double | LambdaInput, | |
double | MuInput, | |||
double | rhoInput = 0 | |||
) | [inline] |
virtual NeoHookean::~NeoHookean | ( | ) | [inline, virtual] |
NeoHookean::NeoHookean | ( | const NeoHookean & | NewMat | ) | [inline] |
virtual NeoHookean* NeoHookean::clone | ( | ) | const [inline, virtual] |
Implements SimpleMaterial.
bool NeoHookean::getConstitutiveResponse | ( | const std::vector< double > & | strain, | |
std::vector< double > & | stress, | |||
std::vector< double > & | tangents, | |||
const ConstRespMode & | mode | |||
) | const [virtual] |
Returns the constitutive response of the material.
Given the local strain, it returns the local stress, and if requested, the constitutive tangents.
More precisely:
The strain is assumed to be a 3x3 second-order tensor .
The stress is assumed to be a 3x3 second-order tensor .
The constitutive tangents are a 3x3x3x3 fourth-order tensor
strain | strain tensor, input | |
stress | array where the stress tensor is returned | |
tangents | array where the constitutive tangents are returned. If not provided, not computed. | |
mode | tells whether to compute tangents vector or skip it |
If cannot compute the constitutive relation for some reason, for example a negative determinant in the strain, it returns false. If successful, returns true.
Implements SimpleMaterial.
const std::string NeoHookean::getMaterialName | ( | ) | const [inline, virtual] |
returns a string with the name of the material
Implements SimpleMaterial.
double NeoHookean::getSoundSpeed | ( | void | ) | const [inline, virtual] |
Implements SimpleMaterial.
double NeoHookean::Lambda [private] |
double NeoHookean::Mu [private] |
GaloisRuntime::PerCPU< NeoHookean::NeoHookenTmpVec > NeoHookean::perCPUtmpVec [static, private] |
Per thread storage for NeoHookenTmpVec.