www.mooseframework.org
CappedWeakInclinedPlaneStressUpdate.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 #ifndef CAPPEDWEAKINCLINEDPLANESTRESSUPDATE_H
8 #define CAPPEDWEAKINCLINEDPLANESTRESSUPDATE_H
9 
11 
13 
14 template <>
16 
29 {
30 public:
31  CappedWeakInclinedPlaneStressUpdate(const InputParameters & parameters);
32 
36  bool requiresIsotropicTensor() override { return false; }
37 
38 protected:
39  virtual void initQpStatefulProperties() override;
40 
42  RealVectorValue _n_input;
43 
45  MaterialProperty<RealVectorValue> & _n;
46 
48  const MaterialProperty<RealVectorValue> & _n_old;
49 
51  RealTensorValue _rot_n_to_z;
52 
54  RealTensorValue _rot_z_to_n;
55 
57  RankTwoTensor _rotated_trial;
58 
60  RankFourTensor _rotated_Eijkl;
61 
62  virtual void initializeReturnProcess() override;
63  virtual void finalizeReturnProcess(const RankTwoTensor & rotation_increment) override;
64 
65  virtual void preReturnMap(Real p_trial,
66  Real q_trial,
67  const RankTwoTensor & stress_trial,
68  const std::vector<Real> & intnl_old,
69  const std::vector<Real> & yf,
70  const RankFourTensor & Eijkl) override;
71 
72  virtual void computePQ(const RankTwoTensor & stress, Real & p, Real & q) const override;
73 
74  virtual void setEppEqq(const RankFourTensor & Eijkl, Real & Epp, Real & Eqq) const override;
75 
76  virtual void setStressAfterReturn(const RankTwoTensor & stress_trial,
77  Real p_ok,
78  Real q_ok,
79  Real gaE,
80  const std::vector<Real> & intnl,
81  const yieldAndFlow & smoothed_q,
82  const RankFourTensor & Eijkl,
83  RankTwoTensor & stress) const override;
84 
85  virtual void consistentTangentOperator(const RankTwoTensor & stress_trial,
86  Real p_trial,
87  Real q_trial,
88  const RankTwoTensor & stress,
89  Real p,
90  Real q,
91  Real gaE,
92  const yieldAndFlow & smoothed_q,
93  const RankFourTensor & Eijkl,
94  bool compute_full_tangent_operator,
95  RankFourTensor & cto) const override;
96 
97  virtual RankTwoTensor dpdstress(const RankTwoTensor & stress) const override;
98 
99  virtual RankTwoTensor dqdstress(const RankTwoTensor & stress) const override;
100 
101  virtual RankFourTensor d2qdstress2(const RankTwoTensor & stress) const override;
102 };
103 
104 #endif // CAPPEDWEAKINCLINEDPLANESTRESSUPDATE_H
bool requiresIsotropicTensor() override
Does the model require the elasticity tensor to be isotropic?
RealTensorValue _rot_n_to_z
Rotation matrix that rotates _n to "z".
RealVectorValue _n_input
User-input value of the normal vector to the weak plane.
virtual void computePQ(const RankTwoTensor &stress, Real &p, Real &q) const override
Computes p and q, given stress.
RankFourTensor _rotated_Eijkl
Elasticity tensor rotated to the frame where _n points along "z".
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.
RankTwoTensor _rotated_trial
Trial stress rotated to the frame where _n points along "z".
CappedWeakInclinedPlaneStressUpdate(const InputParameters &parameters)
Struct designed to hold info about a single yield function and its derivatives, as well as the flow d...
virtual RankFourTensor d2qdstress2(const RankTwoTensor &stress) const override
d2(q)/d(stress)/d(stress) Derived classes must override this
RealTensorValue _rot_z_to_n
Rotation matrix that rotates "z" to _n.
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.
virtual void initializeReturnProcess() override
Derived classes may use this to perform calculations before any return-map process is performed...
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...
CappedWeakInclinedPlaneStressUpdate performs the return-map algorithm and associated stress updates f...
virtual RankTwoTensor dpdstress(const RankTwoTensor &stress) const override
d(p)/d(stress) Derived classes must override this
virtual void finalizeReturnProcess(const RankTwoTensor &rotation_increment) override
Derived classes may use this to perform calculations after the return-map process has completed succe...
virtual RankTwoTensor dqdstress(const RankTwoTensor &stress) const override
d(q)/d(stress) Derived classes must override this
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.
InputParameters validParams< CappedWeakInclinedPlaneStressUpdate >()
const MaterialProperty< RealVectorValue > & _n_old
Old value of the normal.
CappedWeakPlaneStressUpdate performs the return-map algorithm and associated stress updates for plast...
MaterialProperty< RealVectorValue > & _n
Current value of the normal.