Go to the documentation of this file.
11 #include "ColumnMajorMatrix.h"
16 #include "libmesh/quadrature.h"
25 params.addRequiredParam<Real>(
"youngs_modulus",
"Young's Modulus");
26 params.addRequiredParam<Real>(
"poissons_ratio",
"Poisson's Ratio");
27 params.addParam<Real>(
28 "t_ref", 0.0,
"The reference temperature at which this material has zero strain.");
29 params.addParam<Real>(
"thermal_expansion", 0.0,
"The thermal expansion coefficient.");
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")),
39 _local_elasticity_tensor(NULL)
56 for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
74 Real isotropic_strain = alpha * (
_temp[_qp] -
_t_ref);
76 strn.
addDiag(-isotropic_strain);
104 Real h = (1.0 + std::cos(
_pi *
_c[_qp])) / 2.0;
113 stress = (*_local_elasticity_tensor) * h * elastic_strain;
128 Real h = (1.0 + std::cos(
_pi *
_c[_qp])) / 2.0;
132 elastic_strain = total_strain;
void calculate(unsigned int qp)
Public function that will be called whenever the values for this matrix need to be filled in.
registerMooseObject("SolidMechanicsApp", LinearIsotropicMaterial)
MaterialProperty< SymmElasticityTensor > & _Jacobian_mult
Defines an Isotropic Elasticity Tensor.
SymmElasticityTensor * _local_elasticity_tensor
MaterialProperty< SymmTensor > & _d_stress_dT
virtual void computeStrain(const SymmTensor &total_strain, SymmTensor &elastic_strain)
Will always be passed to full symmetric strain tensor.
MaterialProperty< SymmElasticityTensor > & _elasticity_tensor
virtual Real computeAlpha()
InputParameters validParams< SolidMechanicsMaterial >()
MaterialProperty< SymmTensor > & _elastic_strain
MaterialProperty< SymmTensor > & _stress
const VariableGradient & _grad_disp_y
SolidMechanics material for use in simple applications that don't need material properties.
void setYoungsModulus(const Real E)
Set the Young's Modulus.
LinearIsotropicMaterial(const InputParameters ¶meters)
const VariableGradient & _grad_disp_z
LinearIsotropic material for use in simple applications that don't need material properties.
virtual void computeStress(const SymmTensor &strain, SymmTensor &stress)
void setPoissonsRatio(const Real nu)
Set Poissons Ratio.
virtual void computeProperties()
const VariableValue & _temp
const VariableGradient & _grad_disp_x
virtual ~LinearIsotropicMaterial()
InputParameters validParams< LinearIsotropicMaterial >()