12 #ifndef MFEM_ELASTICITY_MAT_LIN_ELAST_HPP
13 #define MFEM_ELASTICITY_MAT_LIN_ELAST_HPP
18 using mfem::internal::tensor;
33 tensor<double, dim, dim>
34 MFEM_HOST_DEVICE
stress(
const tensor<double, dim, dim> &dudx)
const
36 constexpr
auto I = mfem::internal::IsotropicIdentity<dim>();
45 tensor<double, dim, dim> MFEM_HOST_DEVICE
47 const tensor<double, dim, dim> &ddudx)
const
61 tensor<double, dim, dim, dim, dim>
62 MFEM_HOST_DEVICE
gradient(tensor<double, dim, dim> )
const
64 return mfem::internal::make_tensor<dim, dim, dim, dim>([&](
int i,
int j,
int k,
67 return lambda * (i == j) * (k == l) +
68 mu * ((i == l) * (j == k) + (i == k) * (j == l));
double mu
Second Lame parameter.
tensor< double, dim, dim > MFEM_HOST_DEVICE action_of_gradient(const tensor< double, dim, dim > &, const tensor< double, dim, dim > &ddudx) const
Apply the gradient of the stress.
tensor< double, dim, dim > MFEM_HOST_DEVICE stress(const tensor< double, dim, dim > &dudx) const
Compute the stress response.
double lambda
First Lame parameter.
Implementation of the tensor class.
tensor< double, dim, dim, dim, dim > MFEM_HOST_DEVICE gradient(tensor< double, dim, dim >) const
Compute the gradient.