www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
LinearIsotropicMaterial Class Reference

LinearIsotropic material for use in simple applications that don't need material properties. More...

#include <LinearIsotropicMaterial.h>

Inheritance diagram for LinearIsotropicMaterial:
[legend]

Public Member Functions

 LinearIsotropicMaterial (const InputParameters &parameters)
 
virtual ~LinearIsotropicMaterial ()
 

Protected Member Functions

virtual void computeProperties ()
 
virtual void computeStress (const SymmTensor &strain, SymmTensor &stress)
 
virtual void computeStrain (const SymmTensor &total_strain, SymmTensor &elastic_strain)
 Will always be passed to full symmetric strain tensor. More...
 
virtual Real computeAlpha ()
 
virtual void initQpStatefulProperties () override
 
template<typename T >
MaterialProperty< T > & createProperty (const std::string &prop_name)
 
template<typename T >
const MaterialProperty< T > & getPropertyOld (const std::string &prop_name)
 

Protected Attributes

Real _youngs_modulus
 
Real _poissons_ratio
 
Real _t_ref
 
Real _alpha
 
SymmElasticityTensor_local_elasticity_tensor
 
Real _pi
 
Real _tol
 
const std::string _appended_property_name
 
const VariableGradient & _grad_disp_x
 
const VariableGradient & _grad_disp_y
 
const VariableGradient & _grad_disp_z
 
bool _has_temp
 
const VariableValue & _temp
 
bool _has_c
 
const VariableValue & _c
 
std::vector< VolumetricModel * > _volumetric_models
 
MaterialProperty< SymmTensor > & _stress
 
MaterialProperty< SymmElasticityTensor > & _elasticity_tensor
 
MaterialProperty< SymmElasticityTensor > & _Jacobian_mult
 
SymmTensor _d_strain_dT
 
MaterialProperty< SymmTensor > & _d_stress_dT
 
MaterialProperty< SymmTensor > & _elastic_strain
 

Detailed Description

LinearIsotropic material for use in simple applications that don't need material properties.

Definition at line 22 of file LinearIsotropicMaterial.h.

Constructor & Destructor Documentation

LinearIsotropicMaterial::LinearIsotropicMaterial ( const InputParameters &  parameters)

Definition at line 29 of file LinearIsotropicMaterial.C.

30  : SolidMechanicsMaterial(parameters),
31  _youngs_modulus(getParam<Real>("youngs_modulus")),
32  _poissons_ratio(getParam<Real>("poissons_ratio")),
33  _t_ref(getParam<Real>("t_ref")),
34  _alpha(getParam<Real>("thermal_expansion")),
36 {
38  iso_elasticity_tensor->setYoungsModulus(_youngs_modulus);
39  iso_elasticity_tensor->setPoissonsRatio(_poissons_ratio);
40 
41  _local_elasticity_tensor = iso_elasticity_tensor;
42 
43  _pi = 3.14159;
44  _tol = 1.0e-5;
45 }
SolidMechanicsMaterial(const InputParameters &parameters)
void setYoungsModulus(const Real E)
Set the Young&#39;s Modulus.
SymmElasticityTensor * _local_elasticity_tensor
Defines an Isotropic Elasticity Tensor.
void setPoissonsRatio(const Real nu)
Set Poissons Ratio.
LinearIsotropicMaterial::~LinearIsotropicMaterial ( )
virtual

Definition at line 47 of file LinearIsotropicMaterial.C.

47 { delete _local_elasticity_tensor; }
SymmElasticityTensor * _local_elasticity_tensor

Member Function Documentation

Real LinearIsotropicMaterial::computeAlpha ( )
protectedvirtual

Definition at line 139 of file LinearIsotropicMaterial.C.

Referenced by computeProperties().

140 {
141  return _alpha;
142 }
void LinearIsotropicMaterial::computeProperties ( )
protectedvirtual

Definition at line 50 of file LinearIsotropicMaterial.C.

51 {
52  for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
53  {
54  Real alpha = computeAlpha();
55 
57 
59 
60  SymmTensor strn(_grad_disp_x[_qp](0),
61  _grad_disp_y[_qp](1),
62  _grad_disp_z[_qp](2),
63  0.5 * (_grad_disp_x[_qp](1) + _grad_disp_y[_qp](0)),
64  0.5 * (_grad_disp_y[_qp](2) + _grad_disp_z[_qp](1)),
65  0.5 * (_grad_disp_z[_qp](0) + _grad_disp_x[_qp](2)));
66 
67  // Add in Isotropic Thermal Strain
68  if (_has_temp)
69  {
70  Real isotropic_strain = alpha * (_temp[_qp] - _t_ref);
71 
72  strn.addDiag(-isotropic_strain);
73 
75  _d_strain_dT.addDiag(-alpha);
76  }
77 
78  SymmTensor strain(strn);
79 
80  computeStress(strain, _stress[_qp]);
81  }
82 }
const VariableValue & _temp
const VariableGradient & _grad_disp_y
const VariableGradient & _grad_disp_x
MaterialProperty< SymmElasticityTensor > & _elasticity_tensor
void zero()
Definition: SymmTensor.h:273
void calculate(unsigned int qp)
Public function that will be called whenever the values for this matrix need to be filled in...
MaterialProperty< SymmTensor > & _stress
const VariableGradient & _grad_disp_z
void addDiag(Real value)
Definition: SymmTensor.h:279
SymmElasticityTensor * _local_elasticity_tensor
virtual void computeStress(const SymmTensor &strain, SymmTensor &stress)
void LinearIsotropicMaterial::computeStrain ( const SymmTensor total_strain,
SymmTensor elastic_strain 
)
protectedvirtual

Will always be passed to full symmetric strain tensor.

What should come out is a modified strain tensor.

Definition at line 113 of file LinearIsotropicMaterial.C.

Referenced by computeStress().

114 {
115 
116  // Multiplier that zeros out stiffness
117  // Real h = (1.0 - _c[_qp]*_c[_qp]);
118  /*Real vl = -0.05 + _c[_qp]*1.1;
119  if (vl < 0.0)
120  vl = 0.0;
121  if (vl > 1.0)
122  vl = 1.0;*/
123 
124  Real h = (1.0 + std::cos(_pi * _c[_qp])) / 2.0;
125  if (h < _tol)
126  h = _tol;
127 
128  elastic_strain = total_strain;
129  // Jacobian multiplier of the stress
131 
133  // d_stress_dT *= _dt;
134  d_stress_dT *= h;
135  _d_stress_dT[_qp] = d_stress_dT;
136 }
const VariableValue & _c
MaterialProperty< SymmElasticityTensor > & _Jacobian_mult
SymmElasticityTensor * _local_elasticity_tensor
MaterialProperty< SymmTensor > & _d_stress_dT
void LinearIsotropicMaterial::computeStress ( const SymmTensor strain,
SymmTensor stress 
)
protectedvirtual

Definition at line 85 of file LinearIsotropicMaterial.C.

Referenced by computeProperties().

86 {
87  // Add in any extra strain components
88  SymmTensor elastic_strain;
89 
90  computeStrain(strain, elastic_strain);
91 
92  // Multiplier that zeros out stiffness
93  // Real h = (1.0 - _c[_qp]*_c[_qp]);
94  /*Real vl = -0.05 + _c[_qp]*1.1;
95  if (vl < 0.0)
96  vl = 0.0;
97  if (vl > 1.0)
98  vl = 1.0;*/
99 
100  Real h = (1.0 + std::cos(_pi * _c[_qp])) / 2.0;
101  if (h < _tol)
102  h = _tol;
103 
104  // Save that off as the elastic strain
105  _elastic_strain[_qp] = elastic_strain;
106 
107  // Create column vector
108  // C * e
109  stress = (*_local_elasticity_tensor) * h * elastic_strain;
110 }
const VariableValue & _c
MaterialProperty< SymmTensor > & _elastic_strain
virtual void computeStrain(const SymmTensor &total_strain, SymmTensor &elastic_strain)
Will always be passed to full symmetric strain tensor.
template<typename T >
MaterialProperty<T>& SolidMechanicsMaterial::createProperty ( const std::string &  prop_name)
inlineprotectedinherited

Definition at line 56 of file SolidMechanicsMaterial.h.

57  {
58  std::string name(prop_name + _appended_property_name);
59  return declareProperty<T>(name);
60  }
const std::string _appended_property_name
template<typename T >
const MaterialProperty<T>& SolidMechanicsMaterial::getPropertyOld ( const std::string &  prop_name)
inlineprotectedinherited

Definition at line 63 of file SolidMechanicsMaterial.h.

64  {
65  std::string name(prop_name + _appended_property_name);
66  return getMaterialPropertyOld<T>(name);
67  }
const std::string _appended_property_name
void SolidMechanicsMaterial::initQpStatefulProperties ( )
overrideprotectedvirtualinherited

Definition at line 30 of file SolidMechanicsMaterial.C.

31 {
32 }

Member Data Documentation

Real LinearIsotropicMaterial::_alpha
protected

Definition at line 46 of file LinearIsotropicMaterial.h.

Referenced by computeAlpha().

const std::string SolidMechanicsMaterial::_appended_property_name
protectedinherited

Definition at line 30 of file SolidMechanicsMaterial.h.

const VariableValue& SolidMechanicsMaterial::_c
protectedinherited

Definition at line 39 of file SolidMechanicsMaterial.h.

Referenced by computeStrain(), and computeStress().

SymmTensor SolidMechanicsMaterial::_d_strain_dT
protectedinherited

Definition at line 48 of file SolidMechanicsMaterial.h.

Referenced by computeProperties(), and computeStrain().

MaterialProperty<SymmTensor>& SolidMechanicsMaterial::_d_stress_dT
protectedinherited

Definition at line 51 of file SolidMechanicsMaterial.h.

Referenced by computeStrain().

MaterialProperty<SymmTensor>& SolidMechanicsMaterial::_elastic_strain
protectedinherited
MaterialProperty<SymmElasticityTensor>& SolidMechanicsMaterial::_elasticity_tensor
protectedinherited
const VariableGradient& SolidMechanicsMaterial::_grad_disp_x
protectedinherited
const VariableGradient& SolidMechanicsMaterial::_grad_disp_y
protectedinherited
const VariableGradient& SolidMechanicsMaterial::_grad_disp_z
protectedinherited
bool SolidMechanicsMaterial::_has_c
protectedinherited

Definition at line 38 of file SolidMechanicsMaterial.h.

bool SolidMechanicsMaterial::_has_temp
protectedinherited

Definition at line 35 of file SolidMechanicsMaterial.h.

Referenced by computeProperties().

MaterialProperty<SymmElasticityTensor>& SolidMechanicsMaterial::_Jacobian_mult
protectedinherited
SymmElasticityTensor* LinearIsotropicMaterial::_local_elasticity_tensor
protected
Real LinearIsotropicMaterial::_pi
protected

Definition at line 50 of file LinearIsotropicMaterial.h.

Referenced by computeStrain(), computeStress(), and LinearIsotropicMaterial().

Real LinearIsotropicMaterial::_poissons_ratio
protected

Definition at line 43 of file LinearIsotropicMaterial.h.

Referenced by LinearIsotropicMaterial().

MaterialProperty<SymmTensor>& SolidMechanicsMaterial::_stress
protectedinherited
Real LinearIsotropicMaterial::_t_ref
protected

Definition at line 45 of file LinearIsotropicMaterial.h.

Referenced by computeProperties().

const VariableValue& SolidMechanicsMaterial::_temp
protectedinherited

Definition at line 36 of file SolidMechanicsMaterial.h.

Referenced by computeProperties().

Real LinearIsotropicMaterial::_tol
protected

Definition at line 51 of file LinearIsotropicMaterial.h.

Referenced by computeStrain(), computeStress(), and LinearIsotropicMaterial().

std::vector<VolumetricModel *> SolidMechanicsMaterial::_volumetric_models
protectedinherited

Definition at line 41 of file SolidMechanicsMaterial.h.

Real LinearIsotropicMaterial::_youngs_modulus
protected

Definition at line 42 of file LinearIsotropicMaterial.h.

Referenced by LinearIsotropicMaterial().


The documentation for this class was generated from the following files: