www.mooseframework.org
SolidMechanicsMaterial.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 SOLIDMECHANICSMATERIAL_H
8 #define SOLIDMECHANICSMATERIAL_H
9 
10 #include "Material.h"
11 #include "SymmElasticityTensor.h"
12 
13 // Forward Declarations
15 class VolumetricModel;
16 
17 template <>
18 InputParameters validParams<SolidMechanicsMaterial>();
19 
23 class SolidMechanicsMaterial : public Material
24 {
25 public:
26  SolidMechanicsMaterial(const InputParameters & parameters);
27 
28 protected:
29  virtual void initQpStatefulProperties() override;
30  const std::string _appended_property_name;
31  const VariableGradient & _grad_disp_x;
32  const VariableGradient & _grad_disp_y;
33  const VariableGradient & _grad_disp_z;
34 
35  bool _has_temp;
36  const VariableValue & _temp;
37 
38  bool _has_c;
39  const VariableValue & _c;
40 
41  std::vector<VolumetricModel *> _volumetric_models;
42 
43  MaterialProperty<SymmTensor> & _stress;
44  MaterialProperty<SymmElasticityTensor> & _elasticity_tensor;
45  MaterialProperty<SymmElasticityTensor> & _Jacobian_mult;
46 
47  // Accumulate derivatives of strain tensors with respect to Temperature into this
49 
50  // The derivative of the stress with respect to Temperature
51  MaterialProperty<SymmTensor> & _d_stress_dT;
52 
53  MaterialProperty<SymmTensor> & _elastic_strain;
54 
55  template <typename T>
56  MaterialProperty<T> & createProperty(const std::string & prop_name)
57  {
58  std::string name(prop_name + _appended_property_name);
59  return declareProperty<T>(name);
60  }
61 
62  template <typename T>
63  const MaterialProperty<T> & getPropertyOld(const std::string & prop_name)
64  {
65  std::string name(prop_name + _appended_property_name);
66  return getMaterialPropertyOld<T>(name);
67  }
68 };
69 
70 #endif // SOLIDMECHANICSMATERIAL_H
const VariableValue & _c
SolidMechanics material for use in simple applications that don&#39;t need material properties.
std::vector< VolumetricModel * > _volumetric_models
MaterialProperty< SymmTensor > & _elastic_strain
const VariableValue & _temp
const VariableGradient & _grad_disp_y
const VariableGradient & _grad_disp_x
MaterialProperty< SymmElasticityTensor > & _elasticity_tensor
InputParameters validParams< SolidMechanicsMaterial >()
const MaterialProperty< T > & getPropertyOld(const std::string &prop_name)
SolidMechanicsMaterial(const InputParameters &parameters)
const std::string _appended_property_name
MaterialProperty< T > & createProperty(const std::string &prop_name)
MaterialProperty< SymmTensor > & _stress
virtual void initQpStatefulProperties() override
const VariableGradient & _grad_disp_z
MaterialProperty< SymmElasticityTensor > & _Jacobian_mult
MaterialProperty< SymmTensor > & _d_stress_dT