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 "Material.h"
13 #include "ADRankTwoTensorForward.h"
15 
16 #define usingComputeStrainBaseMembers \
17  usingMaterialMembers; \
18  using ADComputeStrainBaseTempl<R2>::_ndisp; \
19  using ADComputeStrainBaseTempl<R2>::_disp; \
20  using ADComputeStrainBaseTempl<R2>::_grad_disp; \
21  using ADComputeStrainBaseTempl<R2>::_base_name; \
22  using ADComputeStrainBaseTempl<R2>::_mechanical_strain; \
23  using ADComputeStrainBaseTempl<R2>::_total_strain; \
24  using ADComputeStrainBaseTempl<R2>::_eigenstrain_names; \
25  using ADComputeStrainBaseTempl<R2>::_eigenstrains; \
26  using ADComputeStrainBaseTempl<R2>::_global_strain; \
27  using ADComputeStrainBaseTempl<R2>::_volumetric_locking_correction; \
28  using ADComputeStrainBaseTempl<R2>::_current_elem_volume
29 
33 template <typename R2>
35 {
36 public:
38 
40 
41  void initialSetup() override;
42 
43 protected:
44  virtual void initQpStatefulProperties() override;
45  virtual void displacementIntegrityCheck();
46 
48  const unsigned int _ndisp;
49 
51  std::vector<const ADVariableValue *> _disp;
52 
54  std::vector<const ADVariableGradient *> _grad_disp;
55 
57  const std::string _base_name;
58 
61 
62  std::vector<MaterialPropertyName> _eigenstrain_names;
63  std::vector<const ADMaterialProperty<R2> *> _eigenstrains;
64 
66 
69 };
70 
const unsigned int _ndisp
Coupled displacement variables.
ADComputeStrainBaseTempl< RankTwoTensor > ADComputeStrainBase
virtual void initQpStatefulProperties() override
ADComputeStrainBase is the base class for strain tensors.
std::vector< const ADVariableGradient * > _grad_disp
Gradient of displacements.
static InputParameters validParams()
std::vector< const ADMaterialProperty< R2 > * > _eigenstrains
ADMaterialProperty< R2 > & _mechanical_strain
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
ADComputeStrainBaseTempl(const InputParameters &parameters)
const std::string _base_name
Base name of the material system.
const InputParameters & parameters() const
std::vector< const ADVariableValue * > _disp
Displacement variables.
virtual void displacementIntegrityCheck()
const ADMaterialProperty< R2 > *const _global_strain
std::vector< MaterialPropertyName > _eigenstrain_names
ADMaterialProperty< R2 > & _total_strain