www.mooseframework.org
ConstitutiveModel.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 CONSTITUTIVEMODEL_H
8 #define CONSTITUTIVEMODEL_H
9 
10 #include "Material.h"
11 
12 #include "SymmElasticityTensor.h"
13 #include "SymmTensor.h"
14 
18 class ConstitutiveModel : public Material
19 {
20 public:
21  ConstitutiveModel(const InputParameters & parameters);
22 
23  virtual ~ConstitutiveModel() {}
24 
26  void setQp(unsigned int qp);
27 
28  virtual void computeStress(const Elem & /*current_elem*/,
29  const SymmElasticityTensor & elasticityTensor,
30  const SymmTensor & stress_old,
31  SymmTensor & strain_increment,
32  SymmTensor & stress_new);
33 
34  virtual bool modifyStrainIncrement(const Elem & /*elem*/,
35  SymmTensor & strain_increment,
36  SymmTensor & d_strain_dT)
37  {
38  return applyThermalStrain(strain_increment, d_strain_dT);
39  }
40  virtual bool updateElasticityTensor(SymmElasticityTensor & /*elasticityTensor*/) { return false; }
41 
42  virtual bool applyThermalStrain(SymmTensor & strain_increment, SymmTensor & d_strain_dT);
43 
44 protected:
45  const bool _has_temp;
46  const VariableValue & _temperature;
47  const VariableValue & _temperature_old;
48  const Real _alpha;
49  Function * _alpha_function;
53  Real _ref_temp;
54 
56  bool & _step_zero_cm;
57  bool & _step_one_cm;
59 
60 private:
61  using Material::computeProperties;
62 };
63 
64 template <>
65 InputParameters validParams<ConstitutiveModel>();
66 
67 #endif // CONSTITUTIVEMODEL_H
This class defines a basic set of capabilities any elasticity tensor should have. ...
const VariableValue & _temperature
ConstitutiveModel(const InputParameters &parameters)
virtual ~ConstitutiveModel()
Function * _alpha_function
bool & _step_zero_cm
Restartable data to check for the zeroth and first time steps.
virtual bool updateElasticityTensor(SymmElasticityTensor &)
virtual void computeStress(const Elem &, const SymmElasticityTensor &elasticityTensor, const SymmTensor &stress_old, SymmTensor &strain_increment, SymmTensor &stress_new)
InputParameters validParams< ConstitutiveModel >()
virtual bool modifyStrainIncrement(const Elem &, SymmTensor &strain_increment, SymmTensor &d_strain_dT)
void setQp(unsigned int qp)
Sets the value of the variable _qp for inheriting classes.
const VariableValue & _temperature_old
virtual bool applyThermalStrain(SymmTensor &strain_increment, SymmTensor &d_strain_dT)