www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ADComputeIsotropicElasticityTensorShell< compute_stage > Class Template Reference

#include <ADComputeIsotropicElasticityTensorShell.h>

Inheritance diagram for ADComputeIsotropicElasticityTensorShell< compute_stage >:
[legend]

Public Member Functions

 ADComputeIsotropicElasticityTensorShell (const InputParameters &parameters)
 

Protected Member Functions

virtual void computeQpProperties () override
 

Protected Attributes

Real _poissons_ratio
 Lame' paramters. More...
 
Real _shear_modulus
 
Real _youngs_modulus
 
RankFourTensor _Cijkl
 Individual elasticity tensor. More...
 
std::vector< Point > _t_points
 Quadrature points along thickness. More...
 
std::vector< ADMaterialProperty(RankFourTensor) * > _elasticity_tensor
 Material property elasticity tensor. More...
 
std::vector< const ADMaterialProperty(RankTwoTensor) * > _ge
 Material property for ge matrix. More...
 
 usingMaterialMembers
 

Detailed Description

template<ComputeStage compute_stage>
class ADComputeIsotropicElasticityTensorShell< compute_stage >

Definition at line 18 of file ADComputeIsotropicElasticityTensorShell.h.

Constructor & Destructor Documentation

◆ ADComputeIsotropicElasticityTensorShell()

template<ComputeStage compute_stage>
ADComputeIsotropicElasticityTensorShell< compute_stage >::ADComputeIsotropicElasticityTensorShell ( const InputParameters &  parameters)

Definition at line 36 of file ADComputeIsotropicElasticityTensorShell.C.

38  : ADMaterial<compute_stage>(parameters),
39  _poissons_ratio(getParam<Real>("poissons_ratio")),
40  _youngs_modulus(getParam<Real>("youngs_modulus"))
41 {
42  _Cijkl.fillSymmetricIsotropicEandNu(_youngs_modulus, _poissons_ratio);
43 
44  // correction for plane stress
45  _Cijkl(0, 0, 0, 0) = _youngs_modulus / (1.0 - _poissons_ratio * _poissons_ratio);
46  _Cijkl(1, 1, 1, 1) = _Cijkl(0, 0, 0, 0);
47  _Cijkl(0, 0, 1, 1) = _Cijkl(0, 0, 0, 0) * _poissons_ratio;
48  _Cijkl(1, 1, 0, 0) = _Cijkl(0, 0, 1, 1);
49  _Cijkl(0, 0, 2, 2) = 0.0;
50  _Cijkl(1, 1, 2, 2) = 0.0;
51  _Cijkl(2, 2, 2, 2) = 0.0;
52  _Cijkl(2, 2, 0, 0) = 0.0;
53  _Cijkl(2, 2, 1, 1) = 0.0;
54 
55  // get number of quadrature points along thickness based on order
56  std::unique_ptr<QGauss> t_qrule = libmesh_make_unique<QGauss>(
57  1, Utility::string_to_enum<Order>(getParam<std::string>("through_thickness_order")));
58  _t_points = t_qrule->get_points();
59  _elasticity_tensor.resize(_t_points.size());
60  _ge.resize(_t_points.size());
61  for (unsigned int t = 0; t < _t_points.size(); ++t)
62  {
64  &declareADProperty<RankFourTensor>("elasticity_tensor_t_points_" + std::to_string(t));
65  _ge[t] = &getADMaterialProperty<RankTwoTensor>("ge_t_points_" + std::to_string(t));
66  }
67 }

Member Function Documentation

◆ computeQpProperties()

template<ComputeStage compute_stage>
void ADComputeIsotropicElasticityTensorShell< compute_stage >::computeQpProperties ( )
overrideprotectedvirtual

Definition at line 71 of file ADComputeIsotropicElasticityTensorShell.C.

72 {
73  for (unsigned int t = 0; t < _t_points.size(); ++t)
74  {
75  (*_elasticity_tensor[t])[_qp].zero();
76  // compute contravariant elasticity tensor
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)
85  (*_elasticity_tensor[t])[_qp](i, j, k, l) +=
86  (*_ge[t])[_qp](i, m) * (*_ge[t])[_qp](j, n) * (*_ge[t])[_qp](k, o) *
87  (*_ge[t])[_qp](l, p) * _Cijkl(m, n, o, p);
88  }
89 }

Member Data Documentation

◆ _Cijkl

template<ComputeStage compute_stage>
RankFourTensor ADComputeIsotropicElasticityTensorShell< compute_stage >::_Cijkl
protected

◆ _elasticity_tensor

template<ComputeStage compute_stage>
std::vector<ADMaterialProperty(RankFourTensor) *> ADComputeIsotropicElasticityTensorShell< compute_stage >::_elasticity_tensor
protected

◆ _ge

template<ComputeStage compute_stage>
std::vector<const ADMaterialProperty(RankTwoTensor) *> ADComputeIsotropicElasticityTensorShell< compute_stage >::_ge
protected

◆ _poissons_ratio

template<ComputeStage compute_stage>
Real ADComputeIsotropicElasticityTensorShell< compute_stage >::_poissons_ratio
protected

◆ _shear_modulus

template<ComputeStage compute_stage>
Real ADComputeIsotropicElasticityTensorShell< compute_stage >::_shear_modulus
protected

Definition at line 38 of file ADComputeIsotropicElasticityTensorShell.h.

◆ _t_points

template<ComputeStage compute_stage>
std::vector<Point> ADComputeIsotropicElasticityTensorShell< compute_stage >::_t_points
protected

◆ _youngs_modulus

template<ComputeStage compute_stage>
Real ADComputeIsotropicElasticityTensorShell< compute_stage >::_youngs_modulus
protected

◆ usingMaterialMembers

template<ComputeStage compute_stage>
ADComputeIsotropicElasticityTensorShell< compute_stage >::usingMaterialMembers
protected

Definition at line 53 of file ADComputeIsotropicElasticityTensorShell.h.


The documentation for this class was generated from the following files:
ADComputeIsotropicElasticityTensorShell::_youngs_modulus
Real _youngs_modulus
Definition: ADComputeIsotropicElasticityTensorShell.h:39
ADComputeIsotropicElasticityTensorShell::_Cijkl
RankFourTensor _Cijkl
Individual elasticity tensor.
Definition: ADComputeIsotropicElasticityTensorShell.h:42
ADComputeIsotropicElasticityTensorShell::_elasticity_tensor
std::vector< ADMaterialProperty(RankFourTensor) * > _elasticity_tensor
Material property elasticity tensor.
Definition: ADComputeIsotropicElasticityTensorShell.h:48
ADComputeIsotropicElasticityTensorShell::_ge
std::vector< const ADMaterialProperty(RankTwoTensor) * > _ge
Material property for ge matrix.
Definition: ADComputeIsotropicElasticityTensorShell.h:51
ADComputeIsotropicElasticityTensorShell::_t_points
std::vector< Point > _t_points
Quadrature points along thickness.
Definition: ADComputeIsotropicElasticityTensorShell.h:45
ADComputeIsotropicElasticityTensorShell::_poissons_ratio
Real _poissons_ratio
Lame' paramters.
Definition: ADComputeIsotropicElasticityTensorShell.h:37