MFEM
v4.5.1
Finite element discretization library
|
Neo-Hookean material. More...
#include <neohookean.hpp>
Public Member Functions | |
template<typename T > | |
MFEM_HOST_DEVICE tensor< T, dim, dim > | stress (const tensor< T, dim, dim > &dudx) const |
Compute the stress response. More... | |
MFEM_HOST_DEVICE tensor < double, dim, dim, dim, dim > | gradient (tensor< double, dim, dim > dudx) const |
Compute the gradient. More... | |
MFEM_HOST_DEVICE tensor < double, dim, dim > | action_of_gradient (const tensor< double, dim, dim > &dudx, const tensor< double, dim, dim > &ddudx) const |
Apply the gradient of the stress. More... | |
MFEM_HOST_DEVICE tensor < double, dim, dim > | action_of_gradient_dual (const tensor< double, dim, dim > &dudx, const tensor< double, dim, dim > &ddudx) const |
MFEM_HOST_DEVICE tensor < double, dim, dim > | action_of_gradient_enzyme_fwd (const tensor< double, dim, dim > &dudx, const tensor< double, dim, dim > &ddudx) const |
MFEM_HOST_DEVICE tensor < double, dim, dim > | action_of_gradient_enzyme_rev (const tensor< double, dim, dim > &dudx, const tensor< double, dim, dim > &ddudx) const |
MFEM_HOST_DEVICE tensor < double, dim, dim > | action_of_gradient_finite_diff (const tensor< double, dim, dim > &dudx, const tensor< double, dim, dim > &ddudx) const |
MFEM_HOST_DEVICE tensor < double, dim, dim > | action_of_gradient_symbolic (const tensor< double, dim, dim > &du_dx, const tensor< double, dim, dim > &ddu_dx) const |
Static Public Member Functions | |
static MFEM_HOST_DEVICE void | stress_wrapper (NeoHookeanMaterial< dim, gradient_type > *self, tensor< double, dim, dim > &dudx, tensor< double, dim, dim > &sigma) |
A method to wrap the stress calculation into a static function. More... | |
Public Attributes | |
double | D1 = 100.0 |
double | C1 = 50.0 |
Neo-Hookean material.
Defines a Neo-Hookean material response. It satisfies the material_type interface for ElasticityOperator::SetMaterial. This material type allows choosing the method of derivative calculation in action_of_gradient
. Choices include methods derived by hand using symbolic calculation and a variety of automatically computed gradient applications, like
dim | |
gradient_type |
Definition at line 40 of file neohookean.hpp.
|
inline |
Apply the gradient of the stress.
[in] | dudx | |
[in] | ddudx |
Definition at line 120 of file neohookean.hpp.
|
inline |
Definition at line 151 of file neohookean.hpp.
|
inline |
Definition at line 164 of file neohookean.hpp.
|
inline |
Definition at line 176 of file neohookean.hpp.
|
inline |
Definition at line 199 of file neohookean.hpp.
|
inline |
Definition at line 209 of file neohookean.hpp.
|
inline |
Compute the gradient.
This method is used in the ElasticityDiagonalPreconditioner type to compute the gradient matrix entries of the current quadrature point, instead of the action.
[in] | dudx |
Definition at line 91 of file neohookean.hpp.
|
inline |
Compute the stress response.
[in] | dudx | derivative of the displacement |
Definition at line 52 of file neohookean.hpp.
|
inlinestatic |
A method to wrap the stress calculation into a static function.
This is necessary for Enzyme to access the class pointer (self).
[in] | self | |
[in] | dudx | |
[in] | sigma |
Definition at line 73 of file neohookean.hpp.
double NeoHookeanMaterial< dim, gradient_type >::C1 = 50.0 |
Definition at line 230 of file neohookean.hpp.
double NeoHookeanMaterial< dim, gradient_type >::D1 = 100.0 |
Definition at line 229 of file neohookean.hpp.