www.mooseframework.org
TensorMechanicsPlasticMeanCapTC.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 
14 
16 
17 template <>
19 
30 {
31 public:
32  static InputParameters validParams();
33 
34  TensorMechanicsPlasticMeanCapTC(const InputParameters & parameters);
35 
36  virtual void activeConstraints(const std::vector<Real> & f,
37  const RankTwoTensor & stress,
38  Real intnl,
39  const RankFourTensor & Eijkl,
40  std::vector<bool> & act,
41  RankTwoTensor & returned_stress) const override;
42 
43  virtual bool useCustomReturnMap() const override;
44 
45  virtual bool useCustomCTO() const override;
46 
47  virtual bool returnMap(const RankTwoTensor & trial_stress,
48  Real intnl_old,
49  const RankFourTensor & E_ijkl,
50  Real ep_plastic_tolerance,
51  RankTwoTensor & returned_stress,
52  Real & returned_intnl,
53  std::vector<Real> & dpm,
54  RankTwoTensor & delta_dp,
55  std::vector<Real> & yf,
56  bool & trial_stress_inadmissible) const override;
57 
58  virtual RankFourTensor
59  consistentTangentOperator(const RankTwoTensor & trial_stress,
60  Real intnl_old,
61  const RankTwoTensor & stress,
62  Real intnl,
63  const RankFourTensor & E_ijkl,
64  const std::vector<Real> & cumulative_pm) const override;
65 
66  virtual std::string modelName() const override;
67 
68 protected:
70  const unsigned _max_iters;
71 
74 
76  const bool _use_custom_cto;
77 
80 
83 
84  Real yieldFunction(const RankTwoTensor & stress, Real intnl) const override;
85 
86  RankTwoTensor dyieldFunction_dstress(const RankTwoTensor & stress, Real intnl) const override;
87 
88  Real dyieldFunction_dintnl(const RankTwoTensor & stress, Real intnl) const override;
89 
90  RankTwoTensor flowPotential(const RankTwoTensor & stress, Real intnl) const override;
91 
92  RankFourTensor dflowPotential_dstress(const RankTwoTensor & stress, Real intnl) const override;
93 
94  RankTwoTensor dflowPotential_dintnl(const RankTwoTensor & stress, Real intnl) const override;
95 
104  Real hardPotential(const RankTwoTensor & stress, Real intnl) const override;
105 
106  virtual RankTwoTensor dhardPotential_dstress(const RankTwoTensor & stress,
107  Real intnl) const override;
108 
109  virtual Real dhardPotential_dintnl(const RankTwoTensor & stress, Real intnl) const override;
110 
117  RankTwoTensor df_dsig(const RankTwoTensor & stress, Real intnl) const;
118 
120  virtual Real tensile_strength(const Real internal_param) const;
121 
123  virtual Real dtensile_strength(const Real internal_param) const;
124 
126  virtual Real compressive_strength(const Real internal_param) const;
127 
129  virtual Real dcompressive_strength(const Real internal_param) const;
130 };
TensorMechanicsPlasticMeanCapTC::returnMap
virtual bool returnMap(const RankTwoTensor &trial_stress, Real intnl_old, const RankFourTensor &E_ijkl, Real ep_plastic_tolerance, RankTwoTensor &returned_stress, Real &returned_intnl, std::vector< Real > &dpm, RankTwoTensor &delta_dp, std::vector< Real > &yf, bool &trial_stress_inadmissible) const override
Performs a custom return-map.
Definition: TensorMechanicsPlasticMeanCapTC.C:297
TensorMechanicsPlasticMeanCapTC::TensorMechanicsPlasticMeanCapTC
TensorMechanicsPlasticMeanCapTC(const InputParameters &parameters)
Definition: TensorMechanicsPlasticMeanCapTC.C:49
TensorMechanicsPlasticMeanCapTC::consistentTangentOperator
virtual RankFourTensor consistentTangentOperator(const RankTwoTensor &trial_stress, Real intnl_old, const RankTwoTensor &stress, Real intnl, const RankFourTensor &E_ijkl, const std::vector< Real > &cumulative_pm) const override
Calculates a custom consistent tangent operator.
Definition: TensorMechanicsPlasticMeanCapTC.C:399
TensorMechanicsPlasticMeanCapTC::_use_custom_returnMap
const bool _use_custom_returnMap
Whether to use the custom return-map algorithm.
Definition: TensorMechanicsPlasticMeanCapTC.h:73
TensorMechanicsPlasticMeanCapTC
Rate-independent associative mean-cap tensile AND compressive failure with hardening/softening of the...
Definition: TensorMechanicsPlasticMeanCapTC.h:29
TensorMechanicsPlasticMeanCapTC::_strength
const TensorMechanicsHardeningModel & _strength
the tensile strength
Definition: TensorMechanicsPlasticMeanCapTC.h:79
TensorMechanicsPlasticMeanCapTC::_c_strength
const TensorMechanicsHardeningModel & _c_strength
the compressive strength
Definition: TensorMechanicsPlasticMeanCapTC.h:82
TensorMechanicsPlasticMeanCapTC::dyieldFunction_dstress
RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to stress.
Definition: TensorMechanicsPlasticMeanCapTC.C:83
TensorMechanicsPlasticMeanCapTC::hardPotential
Real hardPotential(const RankTwoTensor &stress, Real intnl) const override
The hardening potential.
Definition: TensorMechanicsPlasticMeanCapTC.C:167
TensorMechanicsPlasticModel.h
TensorMechanicsPlasticMeanCapTC::_max_iters
const unsigned _max_iters
max iters for custom return map loop
Definition: TensorMechanicsPlasticMeanCapTC.h:70
TensorMechanicsPlasticMeanCapTC::df_dsig
RankTwoTensor df_dsig(const RankTwoTensor &stress, Real intnl) const
Derivative of the yield function with respect to stress.
Definition: TensorMechanicsPlasticMeanCapTC.C:110
TensorMechanicsPlasticMeanCapTC::useCustomCTO
virtual bool useCustomCTO() const override
Returns false. You will want to override this in your derived class if you write a custom consistent ...
Definition: TensorMechanicsPlasticMeanCapTC.C:442
TensorMechanicsPlasticMeanCapTC::dhardPotential_dstress
virtual RankTwoTensor dhardPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the hardening potential with respect to stress.
Definition: TensorMechanicsPlasticMeanCapTC.C:187
TensorMechanicsPlasticMeanCapTC::compressive_strength
virtual Real compressive_strength(const Real internal_param) const
compressive strength as a function of residual value, rate, and internal_param
Definition: TensorMechanicsPlasticMeanCapTC.C:235
TensorMechanicsPlasticMeanCapTC::_use_custom_cto
const bool _use_custom_cto
Whether to use the custom consistent tangent operator algorithm.
Definition: TensorMechanicsPlasticMeanCapTC.h:76
validParams< TensorMechanicsPlasticMeanCapTC >
InputParameters validParams< TensorMechanicsPlasticMeanCapTC >()
TensorMechanicsPlasticMeanCapTC::modelName
virtual std::string modelName() const override
Definition: TensorMechanicsPlasticMeanCapTC.C:448
TensorMechanicsPlasticMeanCapTC::dhardPotential_dintnl
virtual Real dhardPotential_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of the hardening potential with respect to the internal parameter.
Definition: TensorMechanicsPlasticMeanCapTC.C:204
TensorMechanicsPlasticMeanCapTC::yieldFunction
Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
The following functions are what you should override when building single-plasticity models.
Definition: TensorMechanicsPlasticMeanCapTC.C:65
TensorMechanicsPlasticMeanCapTC::dflowPotential_dintnl
RankTwoTensor dflowPotential_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to the internal parameter.
Definition: TensorMechanicsPlasticMeanCapTC.C:148
RankFourTensorTempl< Real >
TensorMechanicsPlasticMeanCapTC::validParams
static InputParameters validParams()
Definition: TensorMechanicsPlasticMeanCapTC.C:19
TensorMechanicsPlasticMeanCapTC::dtensile_strength
virtual Real dtensile_strength(const Real internal_param) const
d(tensile strength)/d(internal_param) as a function of residual value, rate, and internal_param
Definition: TensorMechanicsPlasticMeanCapTC.C:229
TensorMechanicsPlasticModel
Plastic Model base class The virtual functions written below must be over-ridden in derived classes t...
Definition: TensorMechanicsPlasticModel.h:42
TensorMechanicsPlasticMeanCapTC::flowPotential
RankTwoTensor flowPotential(const RankTwoTensor &stress, Real intnl) const override
The flow potential.
Definition: TensorMechanicsPlasticMeanCapTC.C:125
TensorMechanicsPlasticMeanCapTC::activeConstraints
virtual void activeConstraints(const std::vector< Real > &f, const RankTwoTensor &stress, Real intnl, const RankFourTensor &Eijkl, std::vector< bool > &act, RankTwoTensor &returned_stress) const override
The active yield surfaces, given a vector of yield functions.
Definition: TensorMechanicsPlasticMeanCapTC.C:247
TensorMechanicsPlasticMeanCapTC::dflowPotential_dstress
RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
Definition: TensorMechanicsPlasticMeanCapTC.C:131
TensorMechanicsPlasticMeanCapTC::dyieldFunction_dintnl
Real dyieldFunction_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to the internal parameter.
Definition: TensorMechanicsPlasticMeanCapTC.C:90
TensorMechanicsPlasticMeanCapTC::useCustomReturnMap
virtual bool useCustomReturnMap() const override
Returns false. You will want to override this in your derived class if you write a custom returnMap f...
Definition: TensorMechanicsPlasticMeanCapTC.C:436
RankTwoTensorTempl< Real >
TensorMechanicsPlasticMeanCapTC::tensile_strength
virtual Real tensile_strength(const Real internal_param) const
tensile strength as a function of residual value, rate, and internal_param
Definition: TensorMechanicsPlasticMeanCapTC.C:223
TensorMechanicsPlasticMeanCapTC::dcompressive_strength
virtual Real dcompressive_strength(const Real internal_param) const
d(compressive strength)/d(internal_param) as a function of residual value, rate, and internal_param
Definition: TensorMechanicsPlasticMeanCapTC.C:241
TensorMechanicsHardeningModel.h
TensorMechanicsHardeningModel
Hardening Model base class.
Definition: TensorMechanicsHardeningModel.h:27