15 #include "libmesh/quadrature.h" 31 _nrots(coupledComponents(
"Cosserat_rotations")),
32 _wc(coupledValues(
"Cosserat_rotations")),
33 _grad_wc(coupledGradients(
"Cosserat_rotations"))
36 mooseError(
"ComputeCosseratSmallStrain: This Material is only defined for 3-dimensional " 37 "simulations so 3 Cosserat rotation variables are needed");
47 for (
unsigned i = 0; i < LIBMESH_DIM; ++i)
48 for (
unsigned j = 0;
j < LIBMESH_DIM; ++
j)
49 for (
unsigned k = 0;
k < LIBMESH_DIM; ++
k)
int eps(unsigned int i, unsigned int j)
ComputeCosseratSmallStrain(const InputParameters ¶meters)
const unsigned int _nrots
the number of Cosserat rotation variables supplied by the user (must be 3 in current implementation) ...
ComputeCosseratSmallStrain defines Cossserat strain tensor, assuming small strains.
const std::vector< const VariableGradient * > _grad_wc
Grad(Cosserat rotation)
static InputParameters validParams()
static RankTwoTensorTempl initializeFromRows(const libMesh::TypeVector< Real > &row0, const libMesh::TypeVector< Real > &row1, const libMesh::TypeVector< Real > &row2)
MaterialProperty< RankTwoTensor > & _mechanical_strain
MaterialProperty< RankTwoTensor > & _curvature
the Cosserat curvature strain: curvature_ij = nabla_j CosseratRotation_i
virtual void computeQpProperties() override
static InputParameters validParams()
const std::vector< const VariableValue * > _wc
The Cosserat rotations.
void mooseError(Args &&... args) const
ComputeStrainBase is the base class for strain tensors.
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
MaterialProperty< RankTwoTensor > & _total_strain
static const std::string k
std::vector< const MaterialProperty< RankTwoTensor > * > _eigenstrains
registerMooseObject("SolidMechanicsApp", ComputeCosseratSmallStrain)
std::vector< const VariableGradient * > _grad_disp
Gradient of displacements.