www.mooseframework.org
DamageBase.h
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 #pragma once
11 
12 #include "Material.h"
13 #include "RankFourTensor.h"
14 #include "RankTwoTensor.h"
15 
16 // Forward declaration
17 class DamageBase;
18 
19 template <>
20 InputParameters validParams<DamageBase>();
21 
28 class DamageBase : public Material
29 {
30 public:
31  static InputParameters validParams();
32 
33  DamageBase(const InputParameters & parameters);
34 
38  virtual void updateDamage();
39 
44  virtual void updateStressForDamage(RankTwoTensor & stress_new) = 0;
45 
51  virtual void updateJacobianMultForDamage(RankFourTensor & jacobian_mult) = 0;
52 
53  virtual void computeUndamagedOldStress(RankTwoTensor & stress_old) = 0;
58  virtual Real computeTimeStepLimit();
59 
65  virtual void finiteStrainRotation(const RankTwoTensor & rotation_increment);
66 
68  void setQp(unsigned int qp);
69 
71  void resetQpProperties() final {}
72  void resetProperties() final {}
74 
75 protected:
77  const std::string _base_name;
78 };
DamageBase::computeTimeStepLimit
virtual Real computeTimeStepLimit()
Compute the limiting value of the time step for this material.
Definition: DamageBase.C:51
validParams< DamageBase >
InputParameters validParams< DamageBase >()
DamageBase::validParams
static InputParameters validParams()
Definition: DamageBase.C:15
DamageBase::updateStressForDamage
virtual void updateStressForDamage(RankTwoTensor &stress_new)=0
Update the current stress tensor for effects of damage.
DamageBase::_base_name
const std::string _base_name
Base name optionally used as prefix to material tensor names.
Definition: DamageBase.h:77
DamageBase::DamageBase
DamageBase(const InputParameters &parameters)
Definition: DamageBase.C:33
DamageBase
DamageBase is a base class for damage models, which modify the stress tensor computed by another mode...
Definition: DamageBase.h:28
DamageBase::computeUndamagedOldStress
virtual void computeUndamagedOldStress(RankTwoTensor &stress_old)=0
DamageBase::updateJacobianMultForDamage
virtual void updateJacobianMultForDamage(RankFourTensor &jacobian_mult)=0
Update the material constitutive matrix.
DamageBase::resetQpProperties
void resetQpProperties() final
Retained as empty methods to avoid a warning from Material.C in framework. These methods are unused i...
Definition: DamageBase.h:71
RankFourTensorTempl< Real >
RankTwoTensorTempl< Real >
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
DamageBase::resetProperties
void resetProperties() final
Definition: DamageBase.h:72