www.mooseframework.org
CappedWeakInclinedPlaneStressUpdate.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 
13 
15 
16 template <>
18 
31 {
32 public:
33  static InputParameters validParams();
34 
35  CappedWeakInclinedPlaneStressUpdate(const InputParameters & parameters);
36 
40  bool requiresIsotropicTensor() override { return false; }
41 
42 protected:
43  virtual void initQpStatefulProperties() override;
44 
46  RealVectorValue _n_input;
47 
49  MaterialProperty<RealVectorValue> & _n;
50 
52  const MaterialProperty<RealVectorValue> & _n_old;
53 
55  RealTensorValue _rot_n_to_z;
56 
58  RealTensorValue _rot_z_to_n;
59 
62 
65 
66  virtual void initializeReturnProcess() override;
67  virtual void finalizeReturnProcess(const RankTwoTensor & rotation_increment) override;
68 
69  virtual void preReturnMap(Real p_trial,
70  Real q_trial,
71  const RankTwoTensor & stress_trial,
72  const std::vector<Real> & intnl_old,
73  const std::vector<Real> & yf,
74  const RankFourTensor & Eijkl) override;
75 
76  virtual void computePQ(const RankTwoTensor & stress, Real & p, Real & q) const override;
77 
78  virtual void setEppEqq(const RankFourTensor & Eijkl, Real & Epp, Real & Eqq) const override;
79 
80  virtual void setStressAfterReturn(const RankTwoTensor & stress_trial,
81  Real p_ok,
82  Real q_ok,
83  Real gaE,
84  const std::vector<Real> & intnl,
85  const yieldAndFlow & smoothed_q,
86  const RankFourTensor & Eijkl,
87  RankTwoTensor & stress) const override;
88 
89  virtual void consistentTangentOperator(const RankTwoTensor & stress_trial,
90  Real p_trial,
91  Real q_trial,
92  const RankTwoTensor & stress,
93  Real p,
94  Real q,
95  Real gaE,
96  const yieldAndFlow & smoothed_q,
97  const RankFourTensor & Eijkl,
98  bool compute_full_tangent_operator,
99  RankFourTensor & cto) const override;
100 
101  virtual RankTwoTensor dpdstress(const RankTwoTensor & stress) const override;
102 
103  virtual RankTwoTensor dqdstress(const RankTwoTensor & stress) const override;
104 
105  virtual RankFourTensor d2qdstress2(const RankTwoTensor & stress) const override;
106 };
CappedWeakInclinedPlaneStressUpdate::_n_input
RealVectorValue _n_input
User-input value of the normal vector to the weak plane.
Definition: CappedWeakInclinedPlaneStressUpdate.h:46
CappedWeakInclinedPlaneStressUpdate
CappedWeakInclinedPlaneStressUpdate performs the return-map algorithm and associated stress updates f...
Definition: CappedWeakInclinedPlaneStressUpdate.h:30
CappedWeakInclinedPlaneStressUpdate::_n_old
const MaterialProperty< RealVectorValue > & _n_old
Old value of the normal.
Definition: CappedWeakInclinedPlaneStressUpdate.h:52
CappedWeakInclinedPlaneStressUpdate::_rotated_Eijkl
RankFourTensor _rotated_Eijkl
Elasticity tensor rotated to the frame where _n points along "z".
Definition: CappedWeakInclinedPlaneStressUpdate.h:64
CappedWeakInclinedPlaneStressUpdate::_n
MaterialProperty< RealVectorValue > & _n
Current value of the normal.
Definition: CappedWeakInclinedPlaneStressUpdate.h:49
MultiParameterPlasticityStressUpdate::yieldAndFlow
Struct designed to hold info about a single yield function and its derivatives, as well as the flow d...
Definition: MultiParameterPlasticityStressUpdate.h:214
CappedWeakInclinedPlaneStressUpdate::setStressAfterReturn
virtual void setStressAfterReturn(const RankTwoTensor &stress_trial, Real p_ok, Real q_ok, Real gaE, const std::vector< Real > &intnl, const yieldAndFlow &smoothed_q, const RankFourTensor &Eijkl, RankTwoTensor &stress) const override
Sets stress from the admissible parameters.
Definition: CappedWeakInclinedPlaneStressUpdate.C:123
CappedWeakInclinedPlaneStressUpdate::_rotated_trial
RankTwoTensor _rotated_trial
Trial stress rotated to the frame where _n points along "z".
Definition: CappedWeakInclinedPlaneStressUpdate.h:61
validParams< CappedWeakInclinedPlaneStressUpdate >
InputParameters validParams< CappedWeakInclinedPlaneStressUpdate >()
CappedWeakInclinedPlaneStressUpdate::_rot_n_to_z
RealTensorValue _rot_n_to_z
Rotation matrix that rotates _n to "z".
Definition: CappedWeakInclinedPlaneStressUpdate.h:55
CappedWeakInclinedPlaneStressUpdate::d2qdstress2
virtual RankFourTensor d2qdstress2(const RankTwoTensor &stress) const override
d2(q)/d(stress)/d(stress) Derived classes must override this
Definition: CappedWeakInclinedPlaneStressUpdate.C:197
CappedWeakInclinedPlaneStressUpdate::CappedWeakInclinedPlaneStressUpdate
CappedWeakInclinedPlaneStressUpdate(const InputParameters &parameters)
Definition: CappedWeakInclinedPlaneStressUpdate.C:27
CappedWeakInclinedPlaneStressUpdate::_rot_z_to_n
RealTensorValue _rot_z_to_n
Rotation matrix that rotates "z" to _n.
Definition: CappedWeakInclinedPlaneStressUpdate.h:58
CappedWeakInclinedPlaneStressUpdate::preReturnMap
virtual void preReturnMap(Real p_trial, Real q_trial, const RankTwoTensor &stress_trial, const std::vector< Real > &intnl_old, const std::vector< Real > &yf, const RankFourTensor &Eijkl) override
Derived classes may employ this function to record stuff or do other computations prior to the return...
Definition: CappedWeakInclinedPlaneStressUpdate.C:79
CappedWeakInclinedPlaneStressUpdate::consistentTangentOperator
virtual void consistentTangentOperator(const RankTwoTensor &stress_trial, Real p_trial, Real q_trial, const RankTwoTensor &stress, Real p, Real q, Real gaE, const yieldAndFlow &smoothed_q, const RankFourTensor &Eijkl, bool compute_full_tangent_operator, RankFourTensor &cto) const override
Calculates the consistent tangent operator.
Definition: CappedWeakInclinedPlaneStressUpdate.C:152
CappedWeakInclinedPlaneStressUpdate::dqdstress
virtual RankTwoTensor dqdstress(const RankTwoTensor &stress) const override
d(q)/d(stress) Derived classes must override this
Definition: CappedWeakInclinedPlaneStressUpdate.C:187
CappedWeakInclinedPlaneStressUpdate::initializeReturnProcess
virtual void initializeReturnProcess() override
Derived classes may use this to perform calculations before any return-map process is performed,...
Definition: CappedWeakInclinedPlaneStressUpdate.C:68
CappedWeakInclinedPlaneStressUpdate::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: CappedWeakInclinedPlaneStressUpdate.C:48
CappedWeakInclinedPlaneStressUpdate::computePQ
virtual void computePQ(const RankTwoTensor &stress, Real &p, Real &q) const override
Computes p and q, given stress.
Definition: CappedWeakInclinedPlaneStressUpdate.C:103
CappedWeakInclinedPlaneStressUpdate::validParams
static InputParameters validParams()
Definition: CappedWeakInclinedPlaneStressUpdate.C:19
RankFourTensorTempl< Real >
CappedWeakInclinedPlaneStressUpdate::finalizeReturnProcess
virtual void finalizeReturnProcess(const RankTwoTensor &rotation_increment) override
Derived classes may use this to perform calculations after the return-map process has completed succe...
Definition: CappedWeakInclinedPlaneStressUpdate.C:55
CappedWeakPlaneStressUpdate.h
CappedWeakPlaneStressUpdate
CappedWeakPlaneStressUpdate performs the return-map algorithm and associated stress updates for plast...
Definition: CappedWeakPlaneStressUpdate.h:31
RankTwoTensorTempl< Real >
CappedWeakInclinedPlaneStressUpdate::requiresIsotropicTensor
bool requiresIsotropicTensor() override
Does the model require the elasticity tensor to be isotropic?
Definition: CappedWeakInclinedPlaneStressUpdate.h:40
CappedWeakInclinedPlaneStressUpdate::setEppEqq
virtual void setEppEqq(const RankFourTensor &Eijkl, Real &Epp, Real &Eqq) const override
Set Epp and Eqq based on the elasticity tensor Derived classes must override this.
Definition: CappedWeakInclinedPlaneStressUpdate.C:114
CappedWeakInclinedPlaneStressUpdate::dpdstress
virtual RankTwoTensor dpdstress(const RankTwoTensor &stress) const override
d(p)/d(stress) Derived classes must override this
Definition: CappedWeakInclinedPlaneStressUpdate.C:178