13#include "libmesh/quadrature.h"
14#include "libmesh/utility.h"
15#include "libmesh/enum_quadrature_type.h"
16#include "libmesh/fe_type.h"
17#include "libmesh/string_to_enum.h"
18#include "libmesh/quadrature_gauss.h"
28 "poissons_ratio >= -1.0 & poissons_ratio < 0.5",
29 "Poisson's ratio for the material.");
31 "youngs_modulus",
"youngs_modulus > 0.0",
"Young's modulus of the material.");
33 "Quadrature order in out of plane direction");
40 _poissons_ratio(getParam<Real>(
"poissons_ratio")),
41 _youngs_modulus(getParam<Real>(
"youngs_modulus"))
57 std::unique_ptr<libMesh::QGauss> t_qrule = std::make_unique<libMesh::QGauss>(
58 1, Utility::string_to_enum<Order>(getParam<std::string>(
"through_thickness_order")));
62 for (
unsigned int t = 0; t <
_t_points.size(); ++t)
65 &declareADProperty<RankFourTensor>(
"elasticity_tensor_t_points_" + std::to_string(t));
66 _ge[t] = &getADMaterialProperty<RankTwoTensor>(
"ge_t_points_" + std::to_string(t));
73 for (
unsigned int t = 0; t <
_t_points.size(); ++t)
77 for (
unsigned int i = 0; i < 3; ++i)
78 for (
unsigned int j = 0; j < 3; ++j)
79 for (
unsigned int k = 0; k < 3; ++k)
80 for (
unsigned int l = 0; l < 3; ++l)
81 for (
unsigned int m = 0; m < 3; ++m)
82 for (
unsigned int n = 0; n < 3; ++n)
83 for (
unsigned int o = 0; o < 3; ++o)
84 for (
unsigned int p = 0;
p < 3; ++
p)
registerMooseObject("SolidMechanicsApp", ADComputeIsotropicElasticityTensorShell)
virtual void computeQpProperties() override
Real _poissons_ratio
Lame' paramters.
static InputParameters validParams()
std::vector< const ADMaterialProperty< RankTwoTensor > * > _ge
Material property for ge matrix.
ADComputeIsotropicElasticityTensorShell(const InputParameters ¶meters)
std::vector< Point > _t_points
Quadrature points along thickness.
RankFourTensor _Cijkl
Individual elasticity tensor.
std::vector< ADMaterialProperty< RankFourTensor > * > _elasticity_tensor
Material property elasticity tensor.
static InputParameters validParams()
void fillSymmetricIsotropicEandNu(const T &E, const T &nu)