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