12#ifndef MFEM_ELASTICITY_MAT_LIN_ELAST_HPP
13#define MFEM_ELASTICITY_MAT_LIN_ELAST_HPP
67 return lambda * (i == j) * (k == l) +
68 mu * ((i == l) * (j == k) + (i == k) * (j == l));
MFEM_HOST_DEVICE constexpr isotropic_tensor< real_t, m, m > IsotropicIdentity()
MFEM_HOST_DEVICE constexpr auto make_tensor(lambda_type f) -> tensor< decltype(f())>
Creates a tensor of requested dimension by subsequent calls to a functor Can be thought of as analogo...
tensor< mfem::real_t, dim, dim, dim, dim > MFEM_HOST_DEVICE gradient(tensor< mfem::real_t, dim, dim >) const
Compute the gradient.
tensor< mfem::real_t, dim, dim > MFEM_HOST_DEVICE stress(const tensor< mfem::real_t, dim, dim > &dudx) const
Compute the stress response.
tensor< mfem::real_t, dim, dim > MFEM_HOST_DEVICE action_of_gradient(const tensor< mfem::real_t, dim, dim > &, const tensor< mfem::real_t, dim, dim > &ddudx) const
Apply the gradient of the stress.
mfem::real_t lambda
First Lame parameter.
mfem::real_t mu
Second Lame parameter.
Implementation of the tensor class.