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 25 of file LinearIsotropicMaterial.h.

Constructor & Destructor Documentation

◆ LinearIsotropicMaterial()

LinearIsotropicMaterial::LinearIsotropicMaterial ( const InputParameters &  parameters)

Definition at line 33 of file LinearIsotropicMaterial.C.

34  : SolidMechanicsMaterial(parameters),
35  _youngs_modulus(getParam<Real>("youngs_modulus")),
36  _poissons_ratio(getParam<Real>("poissons_ratio")),
37  _t_ref(getParam<Real>("t_ref")),
38  _alpha(getParam<Real>("thermal_expansion")),
40 {
42  iso_elasticity_tensor->setYoungsModulus(_youngs_modulus);
43  iso_elasticity_tensor->setPoissonsRatio(_poissons_ratio);
44 
45  _local_elasticity_tensor = iso_elasticity_tensor;
46 
47  _pi = 3.14159;
48  _tol = 1.0e-5;
49 }
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::~LinearIsotropicMaterial ( )
virtual

Definition at line 51 of file LinearIsotropicMaterial.C.

51 { delete _local_elasticity_tensor; }
SymmElasticityTensor * _local_elasticity_tensor

Member Function Documentation

◆ computeAlpha()

Real LinearIsotropicMaterial::computeAlpha ( )
protectedvirtual

Definition at line 143 of file LinearIsotropicMaterial.C.

Referenced by computeProperties().

144 {
145  return _alpha;
146 }

◆ computeProperties()

void LinearIsotropicMaterial::computeProperties ( )
protectedvirtual

Definition at line 54 of file LinearIsotropicMaterial.C.

55 {
56  for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
57  {
58  Real alpha = computeAlpha();
59 
61 
63 
64  SymmTensor strn(_grad_disp_x[_qp](0),
65  _grad_disp_y[_qp](1),
66  _grad_disp_z[_qp](2),
67  0.5 * (_grad_disp_x[_qp](1) + _grad_disp_y[_qp](0)),
68  0.5 * (_grad_disp_y[_qp](2) + _grad_disp_z[_qp](1)),
69  0.5 * (_grad_disp_z[_qp](0) + _grad_disp_x[_qp](2)));
70 
71  // Add in Isotropic Thermal Strain
72  if (_has_temp)
73  {
74  Real isotropic_strain = alpha * (_temp[_qp] - _t_ref);
75 
76  strn.addDiag(-isotropic_strain);
77 
79  _d_strain_dT.addDiag(-alpha);
80  }
81 
82  SymmTensor strain(strn);
83 
84  computeStress(strain, _stress[_qp]);
85  }
86 }
const VariableValue & _temp
const VariableGradient & _grad_disp_y
const VariableGradient & _grad_disp_x
MaterialProperty< SymmElasticityTensor > & _elasticity_tensor
void zero()
Definition: SymmTensor.h:276
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:282
SymmElasticityTensor * _local_elasticity_tensor
virtual void computeStress(const SymmTensor &strain, SymmTensor &stress)

◆ computeStrain()

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 117 of file LinearIsotropicMaterial.C.

Referenced by computeStress().

118 {
119 
120  // Multiplier that zeros out stiffness
121  // Real h = (1.0 - _c[_qp]*_c[_qp]);
122  /*Real vl = -0.05 + _c[_qp]*1.1;
123  if (vl < 0.0)
124  vl = 0.0;
125  if (vl > 1.0)
126  vl = 1.0;*/
127 
128  Real h = (1.0 + std::cos(_pi * _c[_qp])) / 2.0;
129  if (h < _tol)
130  h = _tol;
131 
132  elastic_strain = total_strain;
133  // Jacobian multiplier of the stress
135 
137  // d_stress_dT *= _dt;
138  d_stress_dT *= h;
139  _d_stress_dT[_qp] = d_stress_dT;
140 }
const VariableValue & _c
MaterialProperty< SymmElasticityTensor > & _Jacobian_mult
SymmElasticityTensor * _local_elasticity_tensor
MaterialProperty< SymmTensor > & _d_stress_dT

◆ computeStress()

void LinearIsotropicMaterial::computeStress ( const SymmTensor strain,
SymmTensor stress 
)
protectedvirtual

Definition at line 89 of file LinearIsotropicMaterial.C.

Referenced by computeProperties().

90 {
91  // Add in any extra strain components
92  SymmTensor elastic_strain;
93 
94  computeStrain(strain, elastic_strain);
95 
96  // Multiplier that zeros out stiffness
97  // Real h = (1.0 - _c[_qp]*_c[_qp]);
98  /*Real vl = -0.05 + _c[_qp]*1.1;
99  if (vl < 0.0)
100  vl = 0.0;
101  if (vl > 1.0)
102  vl = 1.0;*/
103 
104  Real h = (1.0 + std::cos(_pi * _c[_qp])) / 2.0;
105  if (h < _tol)
106  h = _tol;
107 
108  // Save that off as the elastic strain
109  _elastic_strain[_qp] = elastic_strain;
110 
111  // Create column vector
112  // C * e
113  stress = (*_local_elasticity_tensor) * h * elastic_strain;
114 }
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.

◆ createProperty()

template<typename T >
MaterialProperty<T>& SolidMechanicsMaterial::createProperty ( const std::string &  prop_name)
inlineprotectedinherited

Definition at line 59 of file SolidMechanicsMaterial.h.

60  {
61  std::string name(prop_name + _appended_property_name);
62  return declareProperty<T>(name);
63  }
const std::string name
Definition: Setup.h:22
const std::string _appended_property_name

◆ getPropertyOld()

template<typename T >
const MaterialProperty<T>& SolidMechanicsMaterial::getPropertyOld ( const std::string &  prop_name)
inlineprotectedinherited

Definition at line 66 of file SolidMechanicsMaterial.h.

67  {
68  std::string name(prop_name + _appended_property_name);
69  return getMaterialPropertyOld<T>(name);
70  }
const std::string name
Definition: Setup.h:22
const std::string _appended_property_name

◆ initQpStatefulProperties()

void SolidMechanicsMaterial::initQpStatefulProperties ( )
overrideprotectedvirtualinherited

Definition at line 32 of file SolidMechanicsMaterial.C.

33 {
34 }

Member Data Documentation

◆ _alpha

Real LinearIsotropicMaterial::_alpha
protected

Definition at line 49 of file LinearIsotropicMaterial.h.

Referenced by computeAlpha().

◆ _appended_property_name

const std::string SolidMechanicsMaterial::_appended_property_name
protectedinherited

◆ _c

const VariableValue& SolidMechanicsMaterial::_c
protectedinherited

Definition at line 42 of file SolidMechanicsMaterial.h.

Referenced by computeStrain(), and computeStress().

◆ _d_strain_dT

SymmTensor SolidMechanicsMaterial::_d_strain_dT
protectedinherited

Definition at line 51 of file SolidMechanicsMaterial.h.

Referenced by computeProperties(), and computeStrain().

◆ _d_stress_dT

MaterialProperty<SymmTensor>& SolidMechanicsMaterial::_d_stress_dT
protectedinherited

Definition at line 54 of file SolidMechanicsMaterial.h.

Referenced by computeStrain().

◆ _elastic_strain

MaterialProperty<SymmTensor>& SolidMechanicsMaterial::_elastic_strain
protectedinherited

◆ _elasticity_tensor

MaterialProperty<SymmElasticityTensor>& SolidMechanicsMaterial::_elasticity_tensor
protectedinherited

◆ _grad_disp_x

const VariableGradient& SolidMechanicsMaterial::_grad_disp_x
protectedinherited

◆ _grad_disp_y

const VariableGradient& SolidMechanicsMaterial::_grad_disp_y
protectedinherited

◆ _grad_disp_z

const VariableGradient& SolidMechanicsMaterial::_grad_disp_z
protectedinherited

◆ _has_c

bool SolidMechanicsMaterial::_has_c
protectedinherited

Definition at line 41 of file SolidMechanicsMaterial.h.

◆ _has_temp

bool SolidMechanicsMaterial::_has_temp
protectedinherited

Definition at line 38 of file SolidMechanicsMaterial.h.

Referenced by computeProperties().

◆ _Jacobian_mult

MaterialProperty<SymmElasticityTensor>& SolidMechanicsMaterial::_Jacobian_mult
protectedinherited

◆ _local_elasticity_tensor

SymmElasticityTensor* LinearIsotropicMaterial::_local_elasticity_tensor
protected

◆ _pi

Real LinearIsotropicMaterial::_pi
protected

Definition at line 53 of file LinearIsotropicMaterial.h.

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

◆ _poissons_ratio

Real LinearIsotropicMaterial::_poissons_ratio
protected

Definition at line 46 of file LinearIsotropicMaterial.h.

Referenced by LinearIsotropicMaterial().

◆ _stress

MaterialProperty<SymmTensor>& SolidMechanicsMaterial::_stress
protectedinherited

◆ _t_ref

Real LinearIsotropicMaterial::_t_ref
protected

Definition at line 48 of file LinearIsotropicMaterial.h.

Referenced by computeProperties().

◆ _temp

const VariableValue& SolidMechanicsMaterial::_temp
protectedinherited

Definition at line 39 of file SolidMechanicsMaterial.h.

Referenced by computeProperties().

◆ _tol

Real LinearIsotropicMaterial::_tol
protected

Definition at line 54 of file LinearIsotropicMaterial.h.

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

◆ _volumetric_models

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

Definition at line 44 of file SolidMechanicsMaterial.h.

◆ _youngs_modulus

Real LinearIsotropicMaterial::_youngs_modulus
protected

Definition at line 45 of file LinearIsotropicMaterial.h.

Referenced by LinearIsotropicMaterial().


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