https://mooseframework.inl.gov
DamageBase.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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 
24 template <bool is_ad>
25 class DamageBaseTempl : public Material
26 {
27 public:
29 
31 
35  virtual void updateDamage();
36 
41  virtual void updateStressForDamage(GenericRankTwoTensor<is_ad> & stress_new) = 0;
42 
48  virtual void updateJacobianMultForDamage(RankFourTensor & jacobian_mult) = 0;
49 
50  virtual void computeUndamagedOldStress(RankTwoTensor & stress_old) = 0;
55  virtual Real computeTimeStepLimit();
56 
62  virtual void finiteStrainRotation(const GenericRankTwoTensor<is_ad> & rotation_increment);
63 
65  void setQp(unsigned int qp);
66 
68  void resetQpProperties() final {}
69  void resetProperties() final {}
71 
72 protected:
74  const std::string _base_name;
75 };
76 
virtual void updateDamage()
Update the internal variable(s) that evolve the damage.
Definition: DamageBase.C:48
virtual void updateJacobianMultForDamage(RankFourTensor &jacobian_mult)=0
Update the material constitutive matrix.
DamageBaseTempl< false > DamageBase
Definition: DamageBase.h:77
virtual void computeUndamagedOldStress(RankTwoTensor &stress_old)=0
DamageBaseTempl< true > ADDamageBase
Definition: DamageBase.h:78
void setQp(unsigned int qp)
Sets the value of the member variable _qp for use in inheriting classes.
Definition: DamageBase.C:41
virtual void updateStressForDamage(GenericRankTwoTensor< is_ad > &stress_new)=0
Update the current stress tensor for effects of damage.
static InputParameters validParams()
Definition: DamageBase.C:14
DamageBase is a base class for damage models, which modify the stress tensor computed by another mode...
Definition: DamageBase.h:25
const std::string _base_name
Base name optionally used as prefix to material tensor names.
Definition: DamageBase.h:74
void resetQpProperties() final
Retained as empty methods to avoid a warning from Material.C in framework. These methods are unused i...
Definition: DamageBase.h:68
virtual void finiteStrainRotation(const GenericRankTwoTensor< is_ad > &rotation_increment)
Perform any necessary rotation of internal variables for finite strain.
Definition: DamageBase.C:61
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
DamageBaseTempl(const InputParameters &parameters)
Definition: DamageBase.C:33
const InputParameters & parameters() const
void resetProperties() final
Definition: DamageBase.h:69
virtual Real computeTimeStepLimit()
Compute the limiting value of the time step for this material.
Definition: DamageBase.C:54
Moose::GenericType< RankTwoTensor, is_ad > GenericRankTwoTensor