www.mooseframework.org
ADComputeIncrementalStrainBase.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 "ADComputeStrainBase.h"
13 
14 #define usingComputeIncrementalStrainBaseMembers \
15  usingComputeStrainBaseMembers; \
16  using ADComputeIncrementalStrainBase<compute_stage>::_grad_disp_old; \
17  using ADComputeIncrementalStrainBase<compute_stage>::_strain_rate; \
18  using ADComputeIncrementalStrainBase<compute_stage>::_strain_increment; \
19  using ADComputeIncrementalStrainBase<compute_stage>::_rotation_increment; \
20  using ADComputeIncrementalStrainBase<compute_stage>::_mechanical_strain_old; \
21  using ADComputeIncrementalStrainBase<compute_stage>::_total_strain_old; \
22  using ADComputeIncrementalStrainBase<compute_stage>::_eigenstrains_old; \
23  using ADComputeIncrementalStrainBase<compute_stage>::subtractEigenstrainIncrementFromStrain
24 
25 template <ComputeStage>
27 
29 
34 template <ComputeStage compute_stage>
35 class ADComputeIncrementalStrainBase : public ADComputeStrainBase<compute_stage>
36 {
37 public:
38  ADComputeIncrementalStrainBase(const InputParameters & parameters);
39 
40  void initialSetup() override;
41 
42 protected:
43  virtual void initQpStatefulProperties() override;
44 
45  void subtractEigenstrainIncrementFromStrain(ADRankTwoTensor & strain);
46 
47  std::vector<const VariableGradient *> _grad_disp_old;
48 
49  ADMaterialProperty(RankTwoTensor) & _strain_rate;
50  ADMaterialProperty(RankTwoTensor) & _strain_increment;
51  ADMaterialProperty(RankTwoTensor) & _rotation_increment;
52 
53  const MaterialProperty<RankTwoTensor> & _mechanical_strain_old;
54  const MaterialProperty<RankTwoTensor> & _total_strain_old;
55 
56  std::vector<const MaterialProperty<RankTwoTensor> *> _eigenstrains_old;
57 
59 };
60 
declareADValidParams(ADComputeIncrementalStrainBase)
void subtractEigenstrainIncrementFromStrain(ADRankTwoTensor &strain)
const MaterialProperty< RankTwoTensor > & _mechanical_strain_old
ADMaterialProperty(RankTwoTensor) &_strain_rate
std::vector< const MaterialProperty< RankTwoTensor > * > _eigenstrains_old
ADADComputeStrainBase is the base class for strain tensors.
std::vector< const VariableGradient * > _grad_disp_old
const MaterialProperty< RankTwoTensor > & _total_strain_old
ADComputeIncrementalStrainBase is the base class for strain tensors using incremental formulations...
ADComputeIncrementalStrainBase(const InputParameters &parameters)