www.mooseframework.org
CappedMohrCoulombCosseratStressUpdate.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 CAPPEDMOHRCOULOMBCOSSERATSTRESSUPDATE_H
8 #define CAPPEDMOHRCOULOMBCOSSERATSTRESSUPDATE_H
9 
11 
13 
14 template <>
16 
27 {
28 public:
29  CappedMohrCoulombCosseratStressUpdate(const InputParameters & parameters);
30 
37  bool requiresIsotropicTensor() override { return false; }
38 
39 protected:
41  const Real _host_young;
42 
44  const Real _host_poisson;
45 
47  const Real _host_E0011;
48 
50  const Real _host_E0000;
51 
52  virtual void setStressAfterReturnV(const RankTwoTensor & stress_trial,
53  const std::vector<Real> & stress_params,
54  Real gaE,
55  const std::vector<Real> & intnl,
56  const yieldAndFlow & smoothed_q,
57  const RankFourTensor & Eijkl,
58  RankTwoTensor & stress) const override;
59 
60  virtual void preReturnMapV(const std::vector<Real> & trial_stress_params,
61  const RankTwoTensor & stress_trial,
62  const std::vector<Real> & intnl_old,
63  const std::vector<Real> & yf,
64  const RankFourTensor & Eijkl) override;
65 
66  void setEffectiveElasticity(const RankFourTensor & Eijkl) override;
67 
68  virtual void consistentTangentOperatorV(const RankTwoTensor & stress_trial,
69  const std::vector<Real> & trial_stress_params,
70  const RankTwoTensor & stress,
71  const std::vector<Real> & stress_params,
72  Real gaE,
73  const yieldAndFlow & smoothed_q,
74  const RankFourTensor & Eijkl,
75  bool compute_full_tangent_operator,
76  const std::vector<std::vector<Real>> & dvar_dtrial,
77  RankFourTensor & cto) override;
78 };
79 
80 #endif // CAPPEDMOHRCOULOMBCOSSERATSTRESSUPDATE_H
const Real _host_E0011
E0011 = Lame lambda modulus of the host material.
CappedMohrCoulombStressUpdate implements rate-independent nonassociative Mohr-Coulomb plus tensile pl...
void setEffectiveElasticity(const RankFourTensor &Eijkl) override
Sets _Eij and _En and _Cij.
virtual void setStressAfterReturnV(const RankTwoTensor &stress_trial, const std::vector< Real > &stress_params, Real gaE, const std::vector< Real > &intnl, const yieldAndFlow &smoothed_q, const RankFourTensor &Eijkl, RankTwoTensor &stress) const override
Sets stress from the admissible parameters.
Struct designed to hold info about a single yield function and its derivatives, as well as the flow d...
CappedMohrCoulombCosseratStressUpdate(const InputParameters &parameters)
virtual void consistentTangentOperatorV(const RankTwoTensor &stress_trial, const std::vector< Real > &trial_stress_params, const RankTwoTensor &stress, const std::vector< Real > &stress_params, Real gaE, const yieldAndFlow &smoothed_q, const RankFourTensor &Eijkl, bool compute_full_tangent_operator, const std::vector< std::vector< Real >> &dvar_dtrial, RankFourTensor &cto) override
Calculates the consistent tangent operator.
virtual void preReturnMapV(const std::vector< Real > &trial_stress_params, 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...
const Real _host_poisson
Poisson&#39;s of the host material.
CappedMohrCoulombCosseratStressUpdate implements rate-independent nonassociative Mohr-Coulomb plus te...
bool requiresIsotropicTensor() override
The full elasticity tensor may be anisotropic, and usually is in the case of layered Cosserat...
const Real _host_E0000
E0000 = Lame lambda + 2 * shear modulus of the host material.
const Real _host_young
Young&#39;s modulus of the host material.
InputParameters validParams< CappedMohrCoulombCosseratStressUpdate >()