www.mooseframework.org
ComputeDamageStress.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 "ComputeDamageStress.h"
11 #include "DamageBase.h"
12 
13 registerMooseObject("TensorMechanicsApp", ComputeDamageStress);
14 
16 
17 InputParameters
19 {
20  InputParameters params = ComputeFiniteStrainElasticStress::validParams();
21  params.addClassDescription(
22  "Compute stress for damaged elastic materials in conjunction with a damage model.");
23  params.addRequiredParam<MaterialName>("damage_model", "Name of the damage model");
24  return params;
25 }
26 
27 ComputeDamageStress::ComputeDamageStress(const InputParameters & parameters)
29  _matl_timestep_limit(declareProperty<Real>("matl_timestep_limit")),
30  _damage_model(nullptr)
31 {
32 }
33 
34 void
36 {
37  MaterialName damage_model_name = getParam<MaterialName>("damage_model");
38  DamageBase * dmb = dynamic_cast<DamageBase *>(&getMaterialByName(damage_model_name));
39  if (dmb)
40  _damage_model = dmb;
41  else
42  paramError("damage_model",
43  "Damage Model " + damage_model_name + " is not compatible with ComputeDamageStress");
44 }
45 
46 void
48 {
50 
51  _damage_model->setQp(_qp);
56 
58 }
ComputeDamageStress::_damage_model
DamageBase * _damage_model
Pointer to the damage model.
Definition: ComputeDamageStress.h:40
ComputeFiniteStrainElasticStress
ComputeFiniteStrainElasticStress computes the stress following elasticity theory for finite strains.
Definition: ComputeFiniteStrainElasticStress.h:24
ComputeStressBase::_stress
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
Definition: ComputeStressBase.h:50
ComputeDamageStress::computeQpStress
virtual void computeQpStress() override
Compute the stress and store it in the _stress material property for the current quadrature point.
Definition: ComputeDamageStress.C:47
ComputeDamageStress::ComputeDamageStress
ComputeDamageStress(const InputParameters &parameters)
Definition: ComputeDamageStress.C:27
DamageBase::computeTimeStepLimit
virtual Real computeTimeStepLimit()
Compute the limiting value of the time step for this material.
Definition: DamageBase.C:51
ComputeStressBase::_Jacobian_mult
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
Definition: ComputeStressBase.h:61
ComputeFiniteStrainElasticStress::_rotation_increment
const MaterialProperty< RankTwoTensor > & _rotation_increment
Rotation increment material property.
Definition: ComputeFiniteStrainElasticStress.h:43
ComputeDamageStress
ComputeDamageStress computes the stress for a damaged elasticity material.
Definition: ComputeDamageStress.h:24
ComputeDamageStress::validParams
static InputParameters validParams()
Definition: ComputeDamageStress.C:18
DamageBase::updateStressForDamage
virtual void updateStressForDamage(RankTwoTensor &stress_new)=0
Update the current stress tensor for effects of damage.
ComputeDamageStress::initialSetup
void initialSetup() override
Definition: ComputeDamageStress.C:35
ComputeDamageStress.h
DamageBase
DamageBase is a base class for damage models, which modify the stress tensor computed by another mode...
Definition: DamageBase.h:28
defineLegacyParams
defineLegacyParams(ComputeDamageStress)
DamageBase.h
DamageBase::updateJacobianMultForDamage
virtual void updateJacobianMultForDamage(RankFourTensor &jacobian_mult)=0
Update the material constitutive matrix.
ComputeDamageStress::_matl_timestep_limit
MaterialProperty< Real > & _matl_timestep_limit
Property that stores the time step limit.
Definition: ComputeDamageStress.h:37
registerMooseObject
registerMooseObject("TensorMechanicsApp", ComputeDamageStress)
ComputeFiniteStrainElasticStress::computeQpStress
virtual void computeQpStress() override
Compute the stress and store it in the _stress material property for the current quadrature point.
Definition: ComputeFiniteStrainElasticStress.C:47
ComputeFiniteStrainElasticStress::validParams
static InputParameters validParams()
Definition: ComputeFiniteStrainElasticStress.C:17
DamageBase::updateDamage
virtual void updateDamage()
Update the internal variable(s) that evolve the damage.
Definition: DamageBase.C:46
DamageBase::finiteStrainRotation
virtual void finiteStrainRotation(const RankTwoTensor &rotation_increment)
Perform any necessary rotation of internal variables for finite strain.
Definition: DamageBase.C:57
DamageBase::setQp
void setQp(unsigned int qp)
Sets the value of the member variable _qp for use in inheriting classes.
Definition: DamageBase.C:40