www.mooseframework.org
ComputeStrainIncrementBasedStress.C
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 
11 
13 
15 
16 InputParameters
18 {
19  InputParameters params = ComputeStressBase::validParams();
20  params.addClassDescription("Compute stress after subtracting inelastic strain increments");
21  params.addParam<std::vector<MaterialPropertyName>>("inelastic_strain_names",
22  "Names of inelastic strain properties");
23 
24  return params;
25 }
26 
28  const InputParameters & parameters)
29  : ComputeStressBase(parameters),
30  _elasticity_tensor_name(_base_name + "elasticity_tensor"),
31  _elasticity_tensor(getMaterialPropertyByName<RankFourTensor>(_elasticity_tensor_name)),
32  _stress_old(getMaterialPropertyOld<RankTwoTensor>(_base_name + "stress")),
33  _mechanical_strain(getMaterialPropertyByName<RankTwoTensor>(_base_name + "mechanical_strain")),
34  _mechanical_strain_old(
35  getMaterialPropertyOldByName<RankTwoTensor>(_base_name + "mechanical_strain")),
36  _inelastic_strain_names(getParam<std::vector<MaterialPropertyName>>("inelastic_strain_names"))
37 {
39 
41  {
44 
45  for (unsigned int i = 0; i < _num_inelastic_strain_models; ++i)
46  {
47  _inelastic_strains[i] = &getMaterialProperty<RankTwoTensor>(_inelastic_strain_names[i]);
49  &getMaterialPropertyOld<RankTwoTensor>(_inelastic_strain_names[i]);
50  }
51  }
52 }
53 
54 void
56 {
57  RankTwoTensor elastic_strain_increment = (_mechanical_strain[_qp] - _mechanical_strain_old[_qp]);
58 
59  for (unsigned int i = 0; i < _num_inelastic_strain_models; ++i)
60  elastic_strain_increment -= (*_inelastic_strains[i])[_qp] - (*_inelastic_strains_old[i])[_qp];
61 
62  _stress[_qp] = _stress_old[_qp] + _elasticity_tensor[_qp] * elastic_strain_increment;
63 
65 }
66 
67 void
69 {
71 }
ComputeStrainIncrementBasedStress::_inelastic_strains
std::vector< const MaterialProperty< RankTwoTensor > * > _inelastic_strains
Vectors of current and old states of the inelastic strain material properties.
Definition: ComputeStrainIncrementBasedStress.h:44
ComputeStrainIncrementBasedStress::computeQpJacobian
virtual void computeQpJacobian()
Definition: ComputeStrainIncrementBasedStress.C:68
ComputeStressBase::_stress
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
Definition: ComputeStressBase.h:50
ComputeStrainIncrementBasedStress
ComputeStrainIncrementBasedStress computes stress considering list of inelastic strain increments.
Definition: ComputeStrainIncrementBasedStress.h:22
ComputeStressBase::_Jacobian_mult
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
Definition: ComputeStressBase.h:61
ComputeStrainIncrementBasedStress::_num_inelastic_strain_models
unsigned int _num_inelastic_strain_models
Number of inelastic models.
Definition: ComputeStrainIncrementBasedStress.h:51
ComputeStrainIncrementBasedStress::_inelastic_strain_names
std::vector< MaterialPropertyName > _inelastic_strain_names
Names of the inelastic strain material properties for all inelastic models.
Definition: ComputeStrainIncrementBasedStress.h:49
ComputeStressBase
ComputeStressBase is the base class for stress tensors.
Definition: ComputeStressBase.h:26
ComputeStrainIncrementBasedStress::validParams
static InputParameters validParams()
Definition: ComputeStrainIncrementBasedStress.C:17
ComputeStrainIncrementBasedStress::_inelastic_strains_old
std::vector< const MaterialProperty< RankTwoTensor > * > _inelastic_strains_old
Definition: ComputeStrainIncrementBasedStress.h:45
ComputeStressBase::validParams
static InputParameters validParams()
Definition: ComputeStressBase.C:17
ComputeStrainIncrementBasedStress::_mechanical_strain_old
const MaterialProperty< RankTwoTensor > & _mechanical_strain_old
Definition: ComputeStrainIncrementBasedStress.h:41
ComputeStrainIncrementBasedStress::ComputeStrainIncrementBasedStress
ComputeStrainIncrementBasedStress(const InputParameters &parameters)
Definition: ComputeStrainIncrementBasedStress.C:27
defineLegacyParams
defineLegacyParams(ComputeStrainIncrementBasedStress)
ComputeStrainIncrementBasedStress.h
ComputeStrainIncrementBasedStress::computeQpStress
virtual void computeQpStress()
Compute the stress and store it in the _stress material property for the current quadrature point.
Definition: ComputeStrainIncrementBasedStress.C:55
ComputeStrainIncrementBasedStress::_stress_old
const MaterialProperty< RankTwoTensor > & _stress_old
Old state of the stress tensor material property.
Definition: ComputeStrainIncrementBasedStress.h:38
RankFourTensorTempl
Definition: ACGrGrElasticDrivingForce.h:20
registerMooseObject
registerMooseObject("TensorMechanicsApp", ComputeStrainIncrementBasedStress)
ComputeStrainIncrementBasedStress::_elasticity_tensor
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
Definition: ComputeStrainIncrementBasedStress.h:36
RankTwoTensorTempl< Real >
ComputeStrainIncrementBasedStress::_mechanical_strain
const MaterialProperty< RankTwoTensor > & _mechanical_strain
Current and old states of the mechanical strain material property.
Definition: ComputeStrainIncrementBasedStress.h:40