www.mooseframework.org
CappedMohrCoulombCosseratStressUpdate.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 
24 {
25 public:
27 
29 
36  bool requiresIsotropicTensor() override { return false; }
37 
38 protected:
41 
44 
47 
50 
51  virtual void setStressAfterReturnV(const RankTwoTensor & stress_trial,
52  const std::vector<Real> & stress_params,
53  Real gaE,
54  const std::vector<Real> & intnl,
55  const yieldAndFlow & smoothed_q,
56  const RankFourTensor & Eijkl,
57  RankTwoTensor & stress) const override;
58 
59  virtual void preReturnMapV(const std::vector<Real> & trial_stress_params,
60  const RankTwoTensor & stress_trial,
61  const std::vector<Real> & intnl_old,
62  const std::vector<Real> & yf,
63  const RankFourTensor & Eijkl) override;
64 
65  void setEffectiveElasticity(const RankFourTensor & Eijkl) override;
66 
67  virtual void consistentTangentOperatorV(const RankTwoTensor & stress_trial,
68  const std::vector<Real> & trial_stress_params,
69  const RankTwoTensor & stress,
70  const std::vector<Real> & stress_params,
71  Real gaE,
72  const yieldAndFlow & smoothed_q,
73  const RankFourTensor & Eijkl,
74  bool compute_full_tangent_operator,
75  const std::vector<std::vector<Real>> & dvar_dtrial,
76  RankFourTensor & cto) override;
77 };
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.
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...
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.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
bool requiresIsotropicTensor() override
The full elasticity tensor may be anisotropic, and usually is in the case of layered Cosserat...
const InputParameters & parameters() const
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.