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

#include <ADComputeShellStress.h>

Inheritance diagram for ADComputeShellStress< compute_stage >:
[legend]

Public Member Functions

 ADComputeShellStress (const InputParameters &parameters)
 

Protected Member Functions

virtual void initQpStatefulProperties () override
 
virtual void computeQpProperties () override
 

Protected Attributes

std::vector< const ADMaterialProperty(RankTwoTensor) * > _strain_increment
 Material property for strain increment. More...
 
std::vector< ADMaterialProperty(RankTwoTensor) * > _stress
 Material property for current stress. More...
 
std::vector< const MaterialProperty< RankTwoTensor > * > _stress_old
 Material property for old stress. More...
 
std::vector< const ADMaterialProperty(RankFourTensor) * > _elasticity_tensor
 Material property for elasticity tensor. More...
 
std::vector< Point > _t_points
 Quadrature points along thickness. More...
 
std::vector< const MaterialProperty< RankTwoTensor > * > _rotation_matrix
 Rotation matrix material property. More...
 
std::vector< MaterialProperty< RankTwoTensor > * > _global_stress
 Global stress tensor material property. More...
 
RankTwoTensor _unrotated_stress
 Real value of stress in the local coordinate system. More...
 
 usingMaterialMembers
 

Detailed Description

template<ComputeStage compute_stage>
class ADComputeShellStress< compute_stage >

Definition at line 19 of file ADComputeShellStress.h.

Constructor & Destructor Documentation

◆ ADComputeShellStress()

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

Definition at line 32 of file ADComputeShellStress.C.

33  : ADMaterial<compute_stage>(parameters)
34 {
35  // get number of quadrature points along thickness based on order
36  std::unique_ptr<QGauss> t_qrule = libmesh_make_unique<QGauss>(
37  1, Utility::string_to_enum<Order>(getParam<std::string>("through_thickness_order")));
38  _t_points = t_qrule->get_points();
39  _elasticity_tensor.resize(_t_points.size());
40  _stress.resize(_t_points.size());
41  _stress_old.resize(_t_points.size());
42  _strain_increment.resize(_t_points.size());
43  _rotation_matrix.resize(_t_points.size());
44  _global_stress.resize(_t_points.size());
45  for (unsigned int t = 0; t < _t_points.size(); ++t)
46  {
48  &getADMaterialProperty<RankFourTensor>("elasticity_tensor_t_points_" + std::to_string(t));
49  _stress[t] = &declareADProperty<RankTwoTensor>("stress_t_points_" + std::to_string(t));
50  _stress_old[t] =
51  &getMaterialPropertyOldByName<RankTwoTensor>("stress_t_points_" + std::to_string(t));
53  &getADMaterialProperty<RankTwoTensor>("strain_increment_t_points_" + std::to_string(t));
54  // rotation matrix and stress for output purposes only
55  _rotation_matrix[t] =
56  &getMaterialProperty<RankTwoTensor>("rotation_t_points_" + std::to_string(t));
57  _global_stress[t] =
58  &declareProperty<RankTwoTensor>("global_stress_t_points_" + std::to_string(t));
59  }
60 }

Member Function Documentation

◆ computeQpProperties()

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

Definition at line 73 of file ADComputeShellStress.C.

74 {
75  for (unsigned int i = 0; i < _t_points.size(); ++i)
76  {
77  (*_stress[i])[_qp] =
78  (*_stress_old[i])[_qp] + (*_elasticity_tensor[i])[_qp] * (*_strain_increment[i])[_qp];
79 
80  for (unsigned int ii = 0; ii < 3; ++ii)
81  for (unsigned int jj = 0; jj < 3; ++jj)
82  _unrotated_stress(ii, jj) = MetaPhysicL::raw_value((*_stress[i])[_qp](ii, jj));
83  (*_global_stress[i])[_qp] =
84  (*_rotation_matrix[i])[_qp].transpose() * _unrotated_stress * (*_rotation_matrix[i])[_qp];
85  }
86 }

◆ initQpStatefulProperties()

template<ComputeStage compute_stage>
void ADComputeShellStress< compute_stage >::initQpStatefulProperties ( )
overrideprotectedvirtual

Definition at line 64 of file ADComputeShellStress.C.

65 {
66  // initialize stress tensor to zero
67  for (unsigned int i = 0; i < _t_points.size(); ++i)
68  (*_stress[i])[_qp].zero();
69 }

Member Data Documentation

◆ _elasticity_tensor

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

Material property for elasticity tensor.

Definition at line 56 of file ADComputeShellStress.h.

Referenced by ADComputeShellStress< compute_stage >::ADComputeShellStress().

◆ _global_stress

template<ComputeStage compute_stage>
std::vector<MaterialProperty<RankTwoTensor> *> ADComputeShellStress< compute_stage >::_global_stress
protected

Global stress tensor material property.

Definition at line 65 of file ADComputeShellStress.h.

Referenced by ADComputeShellStress< compute_stage >::ADComputeShellStress().

◆ _rotation_matrix

template<ComputeStage compute_stage>
std::vector<const MaterialProperty<RankTwoTensor> *> ADComputeShellStress< compute_stage >::_rotation_matrix
protected

Rotation matrix material property.

Definition at line 62 of file ADComputeShellStress.h.

Referenced by ADComputeShellStress< compute_stage >::ADComputeShellStress().

◆ _strain_increment

template<ComputeStage compute_stage>
std::vector<const ADMaterialProperty(RankTwoTensor) *> ADComputeShellStress< compute_stage >::_strain_increment
protected

Material property for strain increment.

Definition at line 47 of file ADComputeShellStress.h.

Referenced by ADComputeShellStress< compute_stage >::ADComputeShellStress().

◆ _stress

template<ComputeStage compute_stage>
std::vector<ADMaterialProperty(RankTwoTensor) *> ADComputeShellStress< compute_stage >::_stress
protected

Material property for current stress.

Definition at line 50 of file ADComputeShellStress.h.

Referenced by ADComputeShellStress< compute_stage >::ADComputeShellStress().

◆ _stress_old

template<ComputeStage compute_stage>
std::vector<const MaterialProperty<RankTwoTensor> *> ADComputeShellStress< compute_stage >::_stress_old
protected

Material property for old stress.

Definition at line 53 of file ADComputeShellStress.h.

Referenced by ADComputeShellStress< compute_stage >::ADComputeShellStress().

◆ _t_points

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

Quadrature points along thickness.

Definition at line 59 of file ADComputeShellStress.h.

Referenced by ADComputeShellStress< compute_stage >::ADComputeShellStress().

◆ _unrotated_stress

template<ComputeStage compute_stage>
RankTwoTensor ADComputeShellStress< compute_stage >::_unrotated_stress
protected

Real value of stress in the local coordinate system.

Definition at line 68 of file ADComputeShellStress.h.

◆ usingMaterialMembers

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

Definition at line 70 of file ADComputeShellStress.h.


The documentation for this class was generated from the following files:
ADComputeShellStress::_t_points
std::vector< Point > _t_points
Quadrature points along thickness.
Definition: ADComputeShellStress.h:59
ADComputeShellStress::_rotation_matrix
std::vector< const MaterialProperty< RankTwoTensor > * > _rotation_matrix
Rotation matrix material property.
Definition: ADComputeShellStress.h:62
ADComputeShellStress::_strain_increment
std::vector< const ADMaterialProperty(RankTwoTensor) * > _strain_increment
Material property for strain increment.
Definition: ADComputeShellStress.h:47
ADComputeShellStress::_unrotated_stress
RankTwoTensor _unrotated_stress
Real value of stress in the local coordinate system.
Definition: ADComputeShellStress.h:68
ADComputeShellStress::_stress_old
std::vector< const MaterialProperty< RankTwoTensor > * > _stress_old
Material property for old stress.
Definition: ADComputeShellStress.h:53
ADComputeShellStress::_stress
std::vector< ADMaterialProperty(RankTwoTensor) * > _stress
Material property for current stress.
Definition: ADComputeShellStress.h:50
ADComputeShellStress::_elasticity_tensor
std::vector< const ADMaterialProperty(RankFourTensor) * > _elasticity_tensor
Material property for elasticity tensor.
Definition: ADComputeShellStress.h:56
ADComputeShellStress::_global_stress
std::vector< MaterialProperty< RankTwoTensor > * > _global_stress
Global stress tensor material property.
Definition: ADComputeShellStress.h:65