https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
24template <bool is_ad>
26{
27public:
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
72protected:
74 const std::string _base_name;
75};
76
DamageBaseTempl< true > ADDamageBase
Definition DamageBase.h:78
DamageBaseTempl< false > DamageBase
Definition DamageBase.h:77
Moose::GenericType< RankTwoTensor, is_ad > GenericRankTwoTensor
DamageBase is a base class for damage models, which modify the stress tensor computed by another mode...
Definition DamageBase.h:26
const std::string _base_name
Base name optionally used as prefix to material tensor names.
Definition DamageBase.h:74
virtual Real computeTimeStepLimit()
Compute the limiting value of the time step for this material.
Definition DamageBase.C:54
virtual void updateJacobianMultForDamage(RankFourTensor &jacobian_mult)=0
Update the material constitutive matrix.
void setQp(unsigned int qp)
Sets the value of the member variable _qp for use in inheriting classes.
Definition DamageBase.C:41
static InputParameters validParams()
Definition DamageBase.C:14
virtual void finiteStrainRotation(const GenericRankTwoTensor< is_ad > &rotation_increment)
Perform any necessary rotation of internal variables for finite strain.
Definition DamageBase.C:61
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 updateStressForDamage(GenericRankTwoTensor< is_ad > &stress_new)=0
Update the current stress tensor for effects of damage.
void resetProperties() final
Definition DamageBase.h:69
virtual void updateDamage()
Update the internal variable(s) that evolve the damage.
Definition DamageBase.C:48
virtual void computeUndamagedOldStress(RankTwoTensor &stress_old)=0
const InputParameters & parameters() const