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 
26 {
27 public:
29 
31 
35  bool requiresIsotropicTensor() override { return false; }
36 
37 protected:
38  virtual void initQpStatefulProperties() override;
39 
42 
45 
48 
51 
54 
57 
60 
61  virtual void initializeReturnProcess() override;
62  virtual void finalizeReturnProcess(const RankTwoTensor & rotation_increment) override;
63 
64  virtual void preReturnMap(Real p_trial,
65  Real q_trial,
66  const RankTwoTensor & stress_trial,
67  const std::vector<Real> & intnl_old,
68  const std::vector<Real> & yf,
69  const RankFourTensor & Eijkl) override;
70 
71  virtual void computePQ(const RankTwoTensor & stress, Real & p, Real & q) const override;
72 
73  virtual void setEppEqq(const RankFourTensor & Eijkl, Real & Epp, Real & Eqq) const override;
74 
75  virtual void setStressAfterReturn(const RankTwoTensor & stress_trial,
76  Real p_ok,
77  Real q_ok,
78  Real gaE,
79  const std::vector<Real> & intnl,
80  const yieldAndFlow & smoothed_q,
81  const RankFourTensor & Eijkl,
82  RankTwoTensor & stress) const override;
83 
84  virtual void consistentTangentOperator(const RankTwoTensor & stress_trial,
85  Real p_trial,
86  Real q_trial,
87  const RankTwoTensor & stress,
88  Real p,
89  Real q,
90  Real gaE,
91  const yieldAndFlow & smoothed_q,
92  const RankFourTensor & Eijkl,
93  bool compute_full_tangent_operator,
94  RankFourTensor & cto) const override;
95 
96  virtual RankTwoTensor dpdstress(const RankTwoTensor & stress) const override;
97 
98  virtual RankTwoTensor dqdstress(const RankTwoTensor & stress) const override;
99 
100  virtual RankFourTensor d2qdstress2(const RankTwoTensor & stress) const override;
101 };
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 RankFourTensor d2qdstress2(const RankTwoTensor &stress) const override
d2(q)/d(stress)/d(stress) Derived classes must override this
RankFourTensor _rotated_Eijkl
Elasticity tensor rotated to the frame where _n points along "z".
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 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.
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.
RealTensorValue _rot_z_to_n
Rotation matrix that rotates "z" to _n.
TensorValue< Real > RealTensorValue
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 dqdstress(const RankTwoTensor &stress) const override
d(q)/d(stress) Derived classes must override this
virtual void computePQ(const RankTwoTensor &stress, Real &p, Real &q) const override
Computes p and q, given stress.
virtual void finalizeReturnProcess(const RankTwoTensor &rotation_increment) override
Derived classes may use this to perform calculations after the return-map process has completed succe...
const InputParameters & parameters() const
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.
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.
virtual RankTwoTensor dpdstress(const RankTwoTensor &stress) const override
d(p)/d(stress) Derived classes must override this