www.mooseframework.org
ADComputeEigenstrainBase.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 usingComputeEigenstrainBaseMembers \
15  usingMaterialMembers; \
16  using ADComputeEigenstrainBase<compute_stage>::_eigenstrain; \
17  using ADComputeEigenstrainBase<compute_stage>::_eigenstrain_name
18 
19 // Forward Declarations
20 template <ComputeStage>
22 
23 template <typename>
25 
28 
30 
34 template <ComputeStage compute_stage>
35 class ADComputeEigenstrainBase : public ADMaterial<compute_stage>
36 {
37 public:
38  static InputParameters validParams();
39 
40  ADComputeEigenstrainBase(const InputParameters & parameters);
41 
42 protected:
43  virtual void initQpStatefulProperties() override;
44  virtual void computeQpProperties() override;
45 
47  virtual void computeQpEigenstrain() = 0;
48 
50  const std::string _base_name;
51 
53  std::string _eigenstrain_name;
54 
56  ADMaterialProperty(RankTwoTensor) & _eigenstrain;
57 
66  ADReal computeVolumetricStrainComponent(const ADReal volumetric_strain) const;
67 
69  bool & _step_zero;
70 
72 };
ADComputeEigenstrainBase
ADComputeEigenstrainBase is the base class for eigenstrain tensors.
Definition: ADComputeEigenstrainBase.h:21
ADComputeEigenstrainBase::_step_zero
bool & _step_zero
Restartable data to check for the zeroth and first time steps for thermal calculations.
Definition: ADComputeEigenstrainBase.h:69
ADComputeEigenstrainBase::computeVolumetricStrainComponent
ADReal computeVolumetricStrainComponent(const ADReal volumetric_strain) const
Helper function for models that compute the eigenstrain based on a volumetric strain.
Definition: ADComputeEigenstrainBase.C:73
RankTwoTensor
RankTwoTensorTempl< Real > RankTwoTensor
Definition: ADComputeEigenstrainBase.h:24
DualRankTwoTensor
RankTwoTensorTempl< DualReal > DualRankTwoTensor
Definition: ADComputeEigenstrainBase.h:27
ADComputeEigenstrainBase::usingMaterialMembers
usingMaterialMembers
Definition: ADComputeEigenstrainBase.h:71
ADComputeEigenstrainBase::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: ADComputeEigenstrainBase.C:50
declareADValidParams
declareADValidParams(ADComputeEigenstrainBase)
ADComputeEigenstrainBase::_eigenstrain_name
std::string _eigenstrain_name
Material property name for the eigenstrain tensor.
Definition: ADComputeEigenstrainBase.h:53
ADComputeEigenstrainBase::validParams
static InputParameters validParams()
Definition: ADComputeEigenstrainBase.C:18
ADComputeEigenstrainBase::computeQpEigenstrain
virtual void computeQpEigenstrain()=0
Compute the eigenstrain and store in _eigenstrain.
ADComputeEigenstrainBase::ADComputeEigenstrainBase
ADComputeEigenstrainBase(const InputParameters &parameters)
Definition: ADComputeEigenstrainBase.C:38
RankTwoTensorTempl
Definition: ACGrGrElasticDrivingForce.h:17
ADComputeEigenstrainBase::_base_name
const std::string _base_name
Base name prepended to material property name.
Definition: ADComputeEigenstrainBase.h:50
ADComputeEigenstrainBase::ADMaterialProperty
ADMaterialProperty(RankTwoTensor) &_eigenstrain
Stores the current total eigenstrain.
ADComputeEigenstrainBase::computeQpProperties
virtual void computeQpProperties() override
Definition: ADComputeEigenstrainBase.C:59