www.mooseframework.org
ComputeStressBase.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 
10 #include "ComputeStressBase.h"
12 #include "Function.h"
13 
15 
16 InputParameters
18 {
19  InputParameters params = Material::validParams();
20  params.addParam<std::string>("base_name",
21  "Optional parameter that allows the user to define "
22  "multiple mechanics material systems on the same "
23  "block, i.e. for multiple phases");
24  params.suppressParameter<bool>("use_displaced_mesh");
25  return params;
26 }
27 
28 ComputeStressBase::ComputeStressBase(const InputParameters & parameters)
29  : DerivativeMaterialInterface<Material>(parameters),
30  _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""),
31  _mechanical_strain(getMaterialPropertyByName<RankTwoTensor>(_base_name + "mechanical_strain")),
32  _stress(declareProperty<RankTwoTensor>(_base_name + "stress")),
33  _elastic_strain(declareProperty<RankTwoTensor>(_base_name + "elastic_strain")),
34  _extra_stress(getDefaultMaterialProperty<RankTwoTensor>(_base_name + "extra_stress")),
35  _Jacobian_mult(declareProperty<RankFourTensor>(_base_name + "Jacobian_mult"))
36 {
37 
38  if (getParam<bool>("use_displaced_mesh"))
39  mooseError("The stress calculator needs to run on the undisplaced mesh.");
40 }
41 
42 void
44 {
45  _elastic_strain[_qp].zero();
46  _stress[_qp].zero();
47 }
48 
49 void
51 {
53 
54  // Add in extra stress
55  _stress[_qp] += _extra_stress[_qp];
56 }
ComputeStressBase::_stress
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
Definition: ComputeStressBase.h:50
defineLegacyParams
defineLegacyParams(ComputeStressBase)
ComputeStressBase::_extra_stress
const MaterialProperty< RankTwoTensor > & _extra_stress
Extra stress tensor.
Definition: ComputeStressBase.h:55
ComputeStressBase::computeQpStress
virtual void computeQpStress()=0
Compute the stress and store it in the _stress material property for the current quadrature point.
ComputeStressBase
ComputeStressBase is the base class for stress tensors.
Definition: ComputeStressBase.h:26
ComputeStressBase::validParams
static InputParameters validParams()
Definition: ComputeStressBase.C:17
ComputeStressBase::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: ComputeStressBase.C:43
ComputeStressBase::computeQpProperties
virtual void computeQpProperties() override
Definition: ComputeStressBase.C:50
validParams
InputParameters validParams()
ComputeStressBase::_elastic_strain
MaterialProperty< RankTwoTensor > & _elastic_strain
Elastic strain material property.
Definition: ComputeStressBase.h:52
RankFourTensorTempl< Real >
ComputeStressBase.h
RankTwoTensorTempl< Real >
ComputeStressBase::ComputeStressBase
ComputeStressBase(const InputParameters &parameters)
Definition: ComputeStressBase.C:28
ComputeElasticityTensorBase.h