https://mooseframework.inl.gov
Loading...
Searching...
No Matches
CappedWeakInclinedPlaneStressUpdate.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
13
26{
27public:
29
31
35 bool requiresIsotropicTensor() override { return false; }
36
37protected:
38 virtual void initQpStatefulProperties() override;
39
41 RealVectorValue _n_input;
42
45
48
50 RealTensorValue _rot_n_to_z;
51
53 RealTensorValue _rot_z_to_n;
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};
const Real p
CappedWeakInclinedPlaneStressUpdate performs the return-map algorithm and associated stress updates f...
virtual RankFourTensor d2qdstress2(const RankTwoTensor &stress) const override
d2(q)/d(stress)/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.
RankFourTensor _rotated_Eijkl
Elasticity tensor rotated to the frame where _n points along "z".
virtual RankTwoTensor dqdstress(const RankTwoTensor &stress) const override
d(q)/d(stress) 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 finalizeReturnProcess(const RankTwoTensor &rotation_increment) override
Derived classes may use this to perform calculations after the return-map process has completed succe...
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.
const MaterialProperty< RealVectorValue > & _n_old
Old value of the normal.
virtual RankTwoTensor dpdstress(const RankTwoTensor &stress) const override
d(p)/d(stress) Derived classes must override this
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.
bool requiresIsotropicTensor() override
Does the model require the elasticity tensor to be isotropic?
MaterialProperty< RealVectorValue > & _n
Current value of the normal.
RealVectorValue _n_input
User-input value of the normal vector to the weak plane.
RealTensorValue _rot_n_to_z
Rotation matrix that rotates _n to "z".
RealTensorValue _rot_z_to_n
Rotation matrix that rotates "z" to _n.
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...
RankTwoTensor _rotated_trial
Trial stress rotated to the frame where _n points along "z".
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.
CappedWeakPlaneStressUpdate performs the return-map algorithm and associated stress updates for plast...
const InputParameters & parameters() const
Struct designed to hold info about a single yield function and its derivatives, as well as the flow d...