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 
15 
16 template <>
18 
29 {
30 public:
31  static InputParameters validParams();
32 
33  CappedMohrCoulombCosseratStressUpdate(const InputParameters & parameters);
34 
41  bool requiresIsotropicTensor() override { return false; }
42 
43 protected:
45  const Real _host_young;
46 
48  const Real _host_poisson;
49 
51  const Real _host_E0011;
52 
54  const Real _host_E0000;
55 
56  virtual void setStressAfterReturnV(const RankTwoTensor & stress_trial,
57  const std::vector<Real> & stress_params,
58  Real gaE,
59  const std::vector<Real> & intnl,
60  const yieldAndFlow & smoothed_q,
61  const RankFourTensor & Eijkl,
62  RankTwoTensor & stress) const override;
63 
64  virtual void preReturnMapV(const std::vector<Real> & trial_stress_params,
65  const RankTwoTensor & stress_trial,
66  const std::vector<Real> & intnl_old,
67  const std::vector<Real> & yf,
68  const RankFourTensor & Eijkl) override;
69 
70  void setEffectiveElasticity(const RankFourTensor & Eijkl) override;
71 
72  virtual void consistentTangentOperatorV(const RankTwoTensor & stress_trial,
73  const std::vector<Real> & trial_stress_params,
74  const RankTwoTensor & stress,
75  const std::vector<Real> & stress_params,
76  Real gaE,
77  const yieldAndFlow & smoothed_q,
78  const RankFourTensor & Eijkl,
79  bool compute_full_tangent_operator,
80  const std::vector<std::vector<Real>> & dvar_dtrial,
81  RankFourTensor & cto) override;
82 };
CappedMohrCoulombCosseratStressUpdate::_host_poisson
const Real _host_poisson
Poisson's of the host material.
Definition: CappedMohrCoulombCosseratStressUpdate.h:48
MultiParameterPlasticityStressUpdate::yieldAndFlow
Struct designed to hold info about a single yield function and its derivatives, as well as the flow d...
Definition: MultiParameterPlasticityStressUpdate.h:214
CappedMohrCoulombCosseratStressUpdate::preReturnMapV
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...
Definition: CappedMohrCoulombCosseratStressUpdate.C:46
CappedMohrCoulombCosseratStressUpdate::setEffectiveElasticity
void setEffectiveElasticity(const RankFourTensor &Eijkl) override
Sets _Eij and _En and _Cij.
Definition: CappedMohrCoulombCosseratStressUpdate.C:59
CappedMohrCoulombCosseratStressUpdate::_host_E0000
const Real _host_E0000
E0000 = Lame lambda + 2 * shear modulus of the host material.
Definition: CappedMohrCoulombCosseratStressUpdate.h:54
CappedMohrCoulombCosseratStressUpdate::setStressAfterReturnV
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.
Definition: CappedMohrCoulombCosseratStressUpdate.C:74
CappedMohrCoulombStressUpdate
CappedMohrCoulombStressUpdate implements rate-independent nonassociative Mohr-Coulomb plus tensile pl...
Definition: CappedMohrCoulombStressUpdate.h:24
CappedMohrCoulombCosseratStressUpdate::validParams
static InputParameters validParams()
Definition: CappedMohrCoulombCosseratStressUpdate.C:18
CappedMohrCoulombCosseratStressUpdate::_host_young
const Real _host_young
Young's modulus of the host material.
Definition: CappedMohrCoulombCosseratStressUpdate.h:45
CappedMohrCoulombStressUpdate.h
CappedMohrCoulombCosseratStressUpdate::_host_E0011
const Real _host_E0011
E0011 = Lame lambda modulus of the host material.
Definition: CappedMohrCoulombCosseratStressUpdate.h:51
CappedMohrCoulombCosseratStressUpdate
CappedMohrCoulombCosseratStressUpdate implements rate-independent nonassociative Mohr-Coulomb plus te...
Definition: CappedMohrCoulombCosseratStressUpdate.h:28
CappedMohrCoulombCosseratStressUpdate::requiresIsotropicTensor
bool requiresIsotropicTensor() override
The full elasticity tensor may be anisotropic, and usually is in the case of layered Cosserat.
Definition: CappedMohrCoulombCosseratStressUpdate.h:41
RankFourTensorTempl< Real >
validParams< CappedMohrCoulombCosseratStressUpdate >
InputParameters validParams< CappedMohrCoulombCosseratStressUpdate >()
RankTwoTensorTempl< Real >
CappedMohrCoulombCosseratStressUpdate::CappedMohrCoulombCosseratStressUpdate
CappedMohrCoulombCosseratStressUpdate(const InputParameters &parameters)
Definition: CappedMohrCoulombCosseratStressUpdate.C:35
CappedMohrCoulombCosseratStressUpdate::consistentTangentOperatorV
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.
Definition: CappedMohrCoulombCosseratStressUpdate.C:92