www.mooseframework.org
ADStressUpdateBase.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 "ADMaterial.h"
13 
14 #define usingStressUpdateBaseMembers \
15  usingMaterialMembers; \
16  using ADStressUpdateBase<compute_stage>::updateState; \
17  using ADStressUpdateBase<compute_stage>::setQp; \
18  using ADStressUpdateBase<compute_stage>::propagateQpStatefulProperties; \
19  using ADStressUpdateBase<compute_stage>::requiresIsotropicTensor; \
20  using ADStressUpdateBase<compute_stage>::computeTimeStepLimit; \
21  using ADStressUpdateBase<compute_stage>::_base_name
22 
23 // Forward declarations
24 template <ComputeStage>
25 class ADStressUpdateBase;
26 template <typename>
30 template <typename>
34 class InputParameters;
35 
37 
50 template <ComputeStage compute_stage>
51 class ADStressUpdateBase : public ADMaterial<compute_stage>
52 {
53 public:
54  static InputParameters validParams();
55 
56  ADStressUpdateBase(const InputParameters & parameters);
57 
78  virtual void updateState(ADRankTwoTensor & strain_increment,
79  ADRankTwoTensor & inelastic_strain_increment,
80  const ADRankTwoTensor & rotation_increment,
81  ADRankTwoTensor & stress_new,
82  const RankTwoTensor & stress_old,
83  const ADRankFourTensor & elasticity_tensor,
84  const RankTwoTensor & elastic_strain_old) = 0;
85 
87  void setQp(unsigned int qp);
88 
93  virtual void propagateQpStatefulProperties();
94 
98  virtual bool requiresIsotropicTensor() = 0;
99 
100  virtual Real computeTimeStepLimit();
101 
103  void resetQpProperties() final {}
104  void resetProperties() final {}
106 
107 protected:
109  const std::string _base_name;
110 
112 };
DualRankTwoTensor
RankTwoTensorTempl< DualReal > DualRankTwoTensor
Definition: ADStressUpdateBase.h:29
ADStressUpdateBase::resetProperties
void resetProperties() final
Definition: ADStressUpdateBase.h:104
DualRankFourTensor
RankFourTensorTempl< DualReal > DualRankFourTensor
Definition: ADStressUpdateBase.h:33
ADStressUpdateBase::updateState
virtual void updateState(ADRankTwoTensor &strain_increment, ADRankTwoTensor &inelastic_strain_increment, const ADRankTwoTensor &rotation_increment, ADRankTwoTensor &stress_new, const RankTwoTensor &stress_old, const ADRankFourTensor &elasticity_tensor, const RankTwoTensor &elastic_strain_old)=0
Given a strain increment that results in a trial stress, perform some procedure (such as an iterative...
ADStressUpdateBase::setQp
void setQp(unsigned int qp)
Sets the value of the global variable _qp for inheriting classes.
Definition: ADStressUpdateBase.C:47
RankTwoTensor
RankTwoTensorTempl< Real > RankTwoTensor
Definition: ADStressUpdateBase.h:27
ADStressUpdateBase::propagateQpStatefulProperties
virtual void propagateQpStatefulProperties()
If updateState is not called during a timestep, this will be.
Definition: ADStressUpdateBase.C:54
ADStressUpdateBase
ADStressUpdateBase is a material that is not called by MOOSE because of the compute=false flag set in...
Definition: ADComputeMultipleInelasticStress.h:28
ADStressUpdateBase::resetQpProperties
void resetQpProperties() final
Retained as empty methods to avoid a warning from Material.C in framework. These methods are unused i...
Definition: ADStressUpdateBase.h:103
ADStressUpdateBase::ADStressUpdateBase
ADStressUpdateBase(const InputParameters &parameters)
Definition: ADStressUpdateBase.C:39
declareADValidParams
declareADValidParams(ADStressUpdateBase)
ADStressUpdateBase::computeTimeStepLimit
virtual Real computeTimeStepLimit()
Definition: ADStressUpdateBase.C:62
ADStressUpdateBase::requiresIsotropicTensor
virtual bool requiresIsotropicTensor()=0
Does the model require the elasticity tensor to be isotropic?
RankFourTensor
RankFourTensorTempl< Real > RankFourTensor
Definition: ADStressUpdateBase.h:31
RankFourTensorTempl
Definition: ACGrGrElasticDrivingForce.h:20
ADStressUpdateBase::usingMaterialMembers
usingMaterialMembers
Definition: ADStressUpdateBase.h:111
ADStressUpdateBase::_base_name
const std::string _base_name
Name used as a prefix for all material properties related to the stress update model.
Definition: ADStressUpdateBase.h:109
RankTwoTensorTempl
Definition: ACGrGrElasticDrivingForce.h:17
ADStressUpdateBase::validParams
static InputParameters validParams()
Definition: ADStressUpdateBase.C:19