www.mooseframework.org
ADComputeStrainBase.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "ADMaterial.h"
13 
14 #define usingComputeStrainBaseMembers \
15  usingMaterialMembers; \
16  using ADComputeStrainBase<compute_stage>::_ndisp; \
17  using ADComputeStrainBase<compute_stage>::_disp; \
18  using ADComputeStrainBase<compute_stage>::_grad_disp; \
19  using ADComputeStrainBase<compute_stage>::_base_name; \
20  using ADComputeStrainBase<compute_stage>::_mechanical_strain; \
21  using ADComputeStrainBase<compute_stage>::_global_strain; \
22  using ADComputeStrainBase<compute_stage>::_volumetric_locking_correction; \
23  using ADComputeStrainBase<compute_stage>::_current_elem_volume; \
24  using ADComputeStrainBase<compute_stage>::_eigenstrain_names; \
25  using ADComputeStrainBase<compute_stage>::_eigenstrains; \
26  using ADComputeStrainBase<compute_stage>::_total_strain
27 
28 // Forward Declarations
29 template <ComputeStage>
31 template <typename>
35 
37 
41 template <ComputeStage compute_stage>
42 class ADComputeStrainBase : public ADMaterial<compute_stage>
43 {
44 public:
45  static InputParameters validParams();
46 
47  ADComputeStrainBase(const InputParameters & parameters);
48 
49  void initialSetup() override;
50 
51 protected:
52  virtual void initQpStatefulProperties() override;
53  virtual void displacementIntegrityCheck();
54 
56  const unsigned int _ndisp;
57  std::vector<const ADVariableValue *> _disp;
58  std::vector<const ADVariableGradient *> _grad_disp;
59 
60  const std::string _base_name;
61 
62  ADMaterialProperty(RankTwoTensor) & _mechanical_strain;
63  ADMaterialProperty(RankTwoTensor) & _total_strain;
64 
65  std::vector<MaterialPropertyName> _eigenstrain_names;
67 
68  const ADMaterialProperty(RankTwoTensor) * _global_strain;
69 
71  const Real & _current_elem_volume;
72 
74 };
ADComputeStrainBase::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: ADComputeStrainBase.C:104
ADComputeStrainBase::initialSetup
void initialSetup() override
Definition: ADComputeStrainBase.C:73
declareADValidParams
declareADValidParams(ADComputeStrainBase)
ADComputeStrainBase::_base_name
const std::string _base_name
Definition: ADComputeStrainBase.h:60
ADComputeStrainBase::_current_elem_volume
const Real & _current_elem_volume
Definition: ADComputeStrainBase.h:71
RankTwoTensor
RankTwoTensorTempl< Real > RankTwoTensor
Definition: ADComputeStrainBase.h:32
ADComputeStrainBase::_eigenstrains
std::vector< const ADMaterialProperty(RankTwoTensor) * > _eigenstrains
Definition: ADComputeStrainBase.h:66
ADComputeStrainBase::_disp
std::vector< const ADVariableValue * > _disp
Definition: ADComputeStrainBase.h:57
ADComputeStrainBase::ADMaterialProperty
ADMaterialProperty(RankTwoTensor) &_mechanical_strain
ADComputeStrainBase::usingMaterialMembers
usingMaterialMembers
Definition: ADComputeStrainBase.h:73
ADComputeStrainBase::_grad_disp
std::vector< const ADVariableGradient * > _grad_disp
Definition: ADComputeStrainBase.h:58
ADComputeStrainBase::_eigenstrain_names
std::vector< MaterialPropertyName > _eigenstrain_names
Definition: ADComputeStrainBase.h:65
DualRankTwoTensor
RankTwoTensorTempl< DualReal > DualRankTwoTensor
Definition: ADComputeStrainBase.h:34
ADComputeStrainBase
ADADComputeStrainBase is the base class for strain tensors.
Definition: ADComputeStrainBase.h:30
ADComputeStrainBase::displacementIntegrityCheck
virtual void displacementIntegrityCheck()
Definition: ADComputeStrainBase.C:93
RankTwoTensorTempl
Definition: ACGrGrElasticDrivingForce.h:17
ADComputeStrainBase::ADComputeStrainBase
ADComputeStrainBase(const InputParameters &parameters)
Definition: ADComputeStrainBase.C:41
ADComputeStrainBase::validParams
static InputParameters validParams()
Definition: ADComputeStrainBase.C:19
ADComputeStrainBase::_ndisp
const unsigned int _ndisp
Coupled displacement variables.
Definition: ADComputeStrainBase.h:56
ADComputeStrainBase::_volumetric_locking_correction
const bool _volumetric_locking_correction
Definition: ADComputeStrainBase.h:70