www.mooseframework.org
ComputeEigenstrainBase.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 #ifndef COMPUTEEIGENSTRAINBASE_H
8 #define COMPUTEEIGENSTRAINBASE_H
9 
10 #include "Material.h"
11 
12 class RankTwoTensor;
13 
17 class ComputeEigenstrainBase : public Material
18 {
19 public:
20  ComputeEigenstrainBase(const InputParameters & parameters);
21 
22 protected:
23  virtual void initQpStatefulProperties();
24  virtual void computeQpProperties();
25 
27  virtual void computeQpEigenstrain() = 0;
28 
30  std::string _base_name;
31 
33  std::string _eigenstrain_name;
34 
37 
39  MaterialProperty<RankTwoTensor> & _eigenstrain;
40 
42  const MaterialProperty<RankTwoTensor> * _eigenstrain_old;
43 
49  Real computeVolumetricStrainComponent(const Real volumetric_strain) const;
50 
52  bool & _step_zero;
53 };
54 
55 #endif // COMPUTEEIGENSTRAINBASE_H
virtual void computeQpEigenstrain()=0
Compute the eigenstrain and store in _eigenstrain.
std::string _eigenstrain_name
Material property name for the eigenstrain tensor.
virtual void initQpStatefulProperties()
std::string _base_name
Base name prepended to material property name.
MaterialProperty< RankTwoTensor > & _eigenstrain
Stores the current total eigenstrain.
Real computeVolumetricStrainComponent(const Real volumetric_strain) const
Helper function for models that compute the eigenstrain based on a volumetric strain.
ComputeEigenstrainBase(const InputParameters &parameters)
bool _incremental_form
Whether the eigenstrain model should compute the total or incremental eigenstrain.
bool & _step_zero
Restartable data to check for the zeroth and first time steps for thermal calculations.
ComputeEigenstrainBase is the base class for eigenstrain tensors.
const MaterialProperty< RankTwoTensor > * _eigenstrain_old
Stores the total eigenstrain in the previous step (only for incremental form)