Rate-independent non-associative Drucker Prager with hardening/softening. More...
#include <TensorMechanicsPlasticDruckerPragerHyperbolic.h>
Public Types | |
enum | FrictionDilation { friction = 0, dilation = 1 } |
bbb (friction) and bbb_flow (dilation) are computed using the same function, onlyB, and this parameter tells that function whether to compute bbb or bbb_flow More... | |
Public Member Functions | |
TensorMechanicsPlasticDruckerPragerHyperbolic (const InputParameters ¶meters) | |
virtual std::string | modelName () const override |
virtual bool | useCustomReturnMap () const override |
Returns false. You will want to override this in your derived class if you write a custom returnMap function. More... | |
virtual bool | useCustomCTO () const override |
Returns false. You will want to override this in your derived class if you write a custom consistent tangent operator function. More... | |
void | bothAB (Real intnl, Real &aaa, Real &bbb) const |
Calculates aaa and bbb as a function of the internal parameter intnl. More... | |
void | dbothAB (Real intnl, Real &daaa, Real &dbbb) const |
Calculates d(aaa)/d(intnl) and d(bbb)/d(intnl) as a function of the internal parameter intnl. More... | |
void | onlyB (Real intnl, int fd, Real &bbb) const |
Calculate bbb or bbb_flow. More... | |
void | donlyB (Real intnl, int fd, Real &dbbb) const |
Calculate d(bbb)/d(intnl) or d(bbb_flow)/d(intnl) More... | |
void | initialize () |
void | execute () |
void | finalize () |
virtual unsigned int | numberSurfaces () const |
The number of yield surfaces for this plasticity model. More... | |
virtual void | yieldFunctionV (const RankTwoTensor &stress, Real intnl, std::vector< Real > &f) const |
Calculates the yield functions. More... | |
virtual void | dyieldFunction_dstressV (const RankTwoTensor &stress, Real intnl, std::vector< RankTwoTensor > &df_dstress) const |
The derivative of yield functions with respect to stress. More... | |
virtual void | dyieldFunction_dintnlV (const RankTwoTensor &stress, Real intnl, std::vector< Real > &df_dintnl) const |
The derivative of yield functions with respect to the internal parameter. More... | |
virtual void | flowPotentialV (const RankTwoTensor &stress, Real intnl, std::vector< RankTwoTensor > &r) const |
The flow potentials. More... | |
virtual void | dflowPotential_dstressV (const RankTwoTensor &stress, Real intnl, std::vector< RankFourTensor > &dr_dstress) const |
The derivative of the flow potential with respect to stress. More... | |
virtual void | dflowPotential_dintnlV (const RankTwoTensor &stress, Real intnl, std::vector< RankTwoTensor > &dr_dintnl) const |
The derivative of the flow potential with respect to the internal parameter. More... | |
virtual void | hardPotentialV (const RankTwoTensor &stress, Real intnl, std::vector< Real > &h) const |
The hardening potential. More... | |
virtual void | dhardPotential_dstressV (const RankTwoTensor &stress, Real intnl, std::vector< RankTwoTensor > &dh_dstress) const |
The derivative of the hardening potential with respect to stress. More... | |
virtual void | dhardPotential_dintnlV (const RankTwoTensor &stress, Real intnl, std::vector< Real > &dh_dintnl) const |
The derivative of the hardening potential with respect to the internal parameter. More... | |
virtual void | activeConstraints (const std::vector< Real > &f, const RankTwoTensor &stress, Real intnl, const RankFourTensor &Eijkl, std::vector< bool > &act, RankTwoTensor &returned_stress) const |
The active yield surfaces, given a vector of yield functions. More... | |
bool | KuhnTuckerSingleSurface (Real yf, Real dpm, Real dpm_tol) const |
Returns true if the Kuhn-Tucker conditions for the single surface are satisfied. More... | |
Static Public Member Functions | |
static InputParameters | validParams () |
Public Attributes | |
const Real | _f_tol |
Tolerance on yield function. More... | |
const Real | _ic_tol |
Tolerance on internal constraint. More... | |
Protected Member Functions | |
Real | yieldFunction (const RankTwoTensor &stress, Real intnl) const override |
The following functions are what you should override when building single-plasticity models. More... | |
RankFourTensor | dflowPotential_dstress (const RankTwoTensor &stress, Real intnl) const override |
The derivative of the flow potential with respect to stress. More... | |
virtual RankTwoTensor | df_dsig (const RankTwoTensor &stress, Real bbb) const override |
Function that's used in dyieldFunction_dstress and flowPotential. More... | |
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. More... | |
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. More... | |
virtual RankTwoTensor | dyieldFunction_dstress (const RankTwoTensor &stress, Real intnl) const override |
The derivative of yield function with respect to stress. More... | |
virtual Real | dyieldFunction_dintnl (const RankTwoTensor &stress, Real intnl) const override |
The derivative of yield function with respect to the internal parameter. More... | |
virtual RankTwoTensor | flowPotential (const RankTwoTensor &stress, Real intnl) const override |
The flow potential. More... | |
virtual RankTwoTensor | dflowPotential_dintnl (const RankTwoTensor &stress, Real intnl) const override |
The derivative of the flow potential with respect to the internal parameter. More... | |
virtual Real | hardPotential (const RankTwoTensor &stress, Real intnl) const |
The hardening potential. More... | |
virtual RankTwoTensor | dhardPotential_dstress (const RankTwoTensor &stress, Real intnl) const |
The derivative of the hardening potential with respect to stress. More... | |
virtual Real | dhardPotential_dintnl (const RankTwoTensor &stress, Real intnl) const |
The derivative of the hardening potential with respect to the internal parameter. More... | |
Protected Attributes | |
const TensorMechanicsHardeningModel & | _mc_cohesion |
Hardening model for cohesion. More... | |
const TensorMechanicsHardeningModel & | _mc_phi |
Hardening model for tan(phi) More... | |
const TensorMechanicsHardeningModel & | _mc_psi |
Hardening model for tan(psi) More... | |
const MooseEnum | _mc_interpolation_scheme |
The parameters aaa and bbb are chosen to closely match the Mohr-Coulomb yield surface. More... | |
const bool | _zero_cohesion_hardening |
True if there is no hardening of cohesion. More... | |
const bool | _zero_phi_hardening |
True if there is no hardening of friction angle. More... | |
const bool | _zero_psi_hardening |
True if there is no hardening of dilation angle. More... | |
Private Member Functions | |
void | initializeAandB (Real intnl, Real &aaa, Real &bbb) const |
Returns the Drucker-Prager parameters A nice reference on the different relationships between Drucker-Prager and Mohr-Coulomb is H Jiang and X Yongli, A note on the Mohr-Coulomb and Drucker-Prager strength criteria, Mechanics Research Communications 38 (2011) 309-314. More... | |
void | initializeB (Real intnl, int fd, Real &bbb) const |
Returns the Drucker-Prager parameters A nice reference on the different relationships between Drucker-Prager and Mohr-Coulomb is H Jiang and X Yongli, A note on the Mohr-Coulomb and Drucker-Prager strength criteria, Mechanics Research Communications 38 (2011) 309-314. More... | |
Private Attributes | |
const Real | _smoother2 |
smoothing parameter for the cone's tip More... | |
const bool | _use_custom_returnMap |
whether to use the custom returnMap function More... | |
const bool | _use_custom_cto |
Whether to use the custom consistent tangent operator calculation. More... | |
const unsigned | _max_iters |
max iters for custom return map loop More... | |
Real | _aaa |
Real | _bbb |
Real | _bbb_flow |
Rate-independent non-associative Drucker Prager with hardening/softening.
The cone's tip is smoothed in a hyperbolic fashion Most functions (eg flowPotential, etc) are simply inherited from TensorMechanicsPlasticDruckerPrager. Note df_dsig is over-ridden
Definition at line 26 of file TensorMechanicsPlasticDruckerPragerHyperbolic.h.
|
inherited |
bbb (friction) and bbb_flow (dilation) are computed using the same function, onlyB, and this parameter tells that function whether to compute bbb or bbb_flow
Enumerator | |
---|---|
friction | |
dilation |
Definition at line 46 of file TensorMechanicsPlasticDruckerPrager.h.
TensorMechanicsPlasticDruckerPragerHyperbolic::TensorMechanicsPlasticDruckerPragerHyperbolic | ( | const InputParameters & | parameters | ) |
Definition at line 51 of file TensorMechanicsPlasticDruckerPragerHyperbolic.C.
|
virtualinherited |
The active yield surfaces, given a vector of yield functions.
This is used by FiniteStrainMultiPlasticity to determine the initial set of active constraints at the trial (stress, intnl) configuration. It is up to you (the coder) to determine how accurate you want the returned_stress to be. Currently it is only used by FiniteStrainMultiPlasticity to estimate a good starting value for the Newton-Rahson procedure, so currently it may not need to be super perfect.
f | values of the yield functions | |
stress | stress tensor | |
intnl | internal parameter | |
Eijkl | elasticity tensor (stress = Eijkl*strain) | |
[out] | act | act[i] = true if the i_th yield function is active |
[out] | returned_stress | Approximate value of the returned stress |
Reimplemented in TensorMechanicsPlasticMohrCoulombMulti, TensorMechanicsPlasticTensileMulti, TensorMechanicsPlasticMeanCapTC, TensorMechanicsPlasticWeakPlaneShear, and TensorMechanicsPlasticWeakPlaneTensile.
Definition at line 188 of file TensorMechanicsPlasticModel.C.
|
inherited |
Calculates aaa and bbb as a function of the internal parameter intnl.
Definition at line 149 of file TensorMechanicsPlasticDruckerPrager.C.
Referenced by CappedDruckerPragerStressUpdate::computeAllQ(), CappedDruckerPragerStressUpdate::initializeVars(), returnMap(), yieldFunction(), TensorMechanicsPlasticDruckerPrager::yieldFunction(), and CappedDruckerPragerStressUpdate::yieldFunctionValues().
|
overrideprotectedvirtual |
Calculates a custom consistent tangent operator.
You may choose to over-ride this in your derived TensorMechanicsPlasticXXXX class.
(Note, if you over-ride returnMap, you will probably want to override consistentTangentOpertor too, otherwise it will default to E_ijkl.)
stress_old | trial stress before returning |
intnl_old | internal parameter before returning |
stress | current returned stress state |
intnl | internal parameter |
E_ijkl | elasticity tensor |
cumulative_pm | the cumulative plastic multipliers |
Reimplemented from TensorMechanicsPlasticModel.
Definition at line 201 of file TensorMechanicsPlasticDruckerPragerHyperbolic.C.
|
inherited |
Calculates d(aaa)/d(intnl) and d(bbb)/d(intnl) as a function of the internal parameter intnl.
Definition at line 219 of file TensorMechanicsPlasticDruckerPrager.C.
Referenced by CappedDruckerPragerStressUpdate::computeAllQ(), TensorMechanicsPlasticDruckerPrager::dyieldFunction_dintnl(), and returnMap().
|
overrideprotectedvirtual |
Function that's used in dyieldFunction_dstress and flowPotential.
Reimplemented from TensorMechanicsPlasticDruckerPrager.
Definition at line 72 of file TensorMechanicsPlasticDruckerPragerHyperbolic.C.
|
overrideprotectedvirtualinherited |
The derivative of the flow potential with respect to the internal parameter.
stress | the stress at which to calculate the flow potential |
intnl | internal parameter |
Reimplemented from TensorMechanicsPlasticModel.
Definition at line 134 of file TensorMechanicsPlasticDruckerPrager.C.
|
virtualinherited |
The derivative of the flow potential with respect to the internal parameter.
stress | the stress at which to calculate the flow potential | |
intnl | internal parameter | |
[out] | dr_dintnl | dr_dintnl[alpha](i, j) = dr[alpha](i, j)/dintnl |
Reimplemented in TensorMechanicsPlasticMohrCoulombMulti, and TensorMechanicsPlasticTensileMulti.
Definition at line 139 of file TensorMechanicsPlasticModel.C.
|
overrideprotectedvirtual |
The derivative of the flow potential with respect to stress.
stress | the stress at which to calculate the flow potential |
intnl | internal parameter |
Reimplemented from TensorMechanicsPlasticDruckerPrager.
Definition at line 79 of file TensorMechanicsPlasticDruckerPragerHyperbolic.C.
|
virtualinherited |
The derivative of the flow potential with respect to stress.
stress | the stress at which to calculate the flow potential | |
intnl | internal parameter | |
[out] | dr_dstress | dr_dstress[alpha](i, j, k, l) = dr[alpha](i, j)/dstress(k, l) |
Reimplemented in TensorMechanicsPlasticMohrCoulombMulti, and TensorMechanicsPlasticTensileMulti.
Definition at line 125 of file TensorMechanicsPlasticModel.C.
|
protectedvirtualinherited |
The derivative of the hardening potential with respect to the internal parameter.
stress | the stress at which to calculate the hardening potentials |
intnl | internal parameter |
Reimplemented in TensorMechanicsPlasticMeanCapTC.
Definition at line 174 of file TensorMechanicsPlasticModel.C.
Referenced by TensorMechanicsPlasticModel::dhardPotential_dintnlV().
|
virtualinherited |
The derivative of the hardening potential with respect to the internal parameter.
stress | the stress at which to calculate the hardening potentials | |
intnl | internal parameter | |
[out] | dh_dintnl | dh_dintnl[alpha] = dh[alpha]/dintnl |
Definition at line 180 of file TensorMechanicsPlasticModel.C.
|
protectedvirtualinherited |
The derivative of the hardening potential with respect to stress.
stress | the stress at which to calculate the hardening potentials |
intnl | internal parameter |
Reimplemented in TensorMechanicsPlasticMeanCapTC.
Definition at line 160 of file TensorMechanicsPlasticModel.C.
Referenced by TensorMechanicsPlasticModel::dhardPotential_dstressV().
|
virtualinherited |
The derivative of the hardening potential with respect to stress.
stress | the stress at which to calculate the hardening potentials | |
intnl | internal parameter | |
[out] | dh_dstress | dh_dstress[alpha](i, j) = dh[alpha]/dstress(i, j) |
Definition at line 166 of file TensorMechanicsPlasticModel.C.
|
inherited |
Calculate d(bbb)/d(intnl) or d(bbb_flow)/d(intnl)
intnl | the internal parameter |
fd | if fd==friction then bbb is calculated. if fd==dilation then bbb_flow is calculated |
bbb | either bbb or bbb_flow, depending on fd |
Definition at line 177 of file TensorMechanicsPlasticDruckerPrager.C.
Referenced by CappedDruckerPragerStressUpdate::computeAllQ(), consistentTangentOperator(), TensorMechanicsPlasticDruckerPrager::dflowPotential_dintnl(), returnMap(), and CappedDruckerPragerStressUpdate::setIntnlDerivatives().
|
overrideprotectedvirtualinherited |
The derivative of yield function with respect to the internal parameter.
stress | the stress at which to calculate the yield function |
intnl | internal parameter |
Reimplemented from TensorMechanicsPlasticModel.
Definition at line 105 of file TensorMechanicsPlasticDruckerPrager.C.
Referenced by consistentTangentOperator().
|
virtualinherited |
The derivative of yield functions with respect to the internal parameter.
stress | the stress at which to calculate the yield function | |
intnl | internal parameter | |
[out] | df_dintnl | df_dintnl[alpha] = df[alpha]/dintnl |
Reimplemented in TensorMechanicsPlasticMohrCoulombMulti, and TensorMechanicsPlasticTensileMulti.
Definition at line 98 of file TensorMechanicsPlasticModel.C.
|
overrideprotectedvirtualinherited |
The derivative of yield function with respect to stress.
stress | the stress at which to calculate the yield function |
intnl | internal parameter |
Reimplemented from TensorMechanicsPlasticModel.
Definition at line 96 of file TensorMechanicsPlasticDruckerPrager.C.
|
virtualinherited |
The derivative of yield functions with respect to stress.
stress | the stress at which to calculate the yield function | |
intnl | internal parameter | |
[out] | df_dstress | df_dstress[alpha](i, j) = dyieldFunction[alpha]/dstress(i, j) |
Reimplemented in TensorMechanicsPlasticMohrCoulombMulti, and TensorMechanicsPlasticTensileMulti.
Definition at line 84 of file TensorMechanicsPlasticModel.C.
|
inherited |
Definition at line 47 of file TensorMechanicsPlasticModel.C.
|
inherited |
Definition at line 52 of file TensorMechanicsPlasticModel.C.
|
overrideprotectedvirtualinherited |
The flow potential.
stress | the stress at which to calculate the flow potential |
intnl | internal parameter |
Reimplemented from TensorMechanicsPlasticModel.
Definition at line 115 of file TensorMechanicsPlasticDruckerPrager.C.
|
virtualinherited |
The flow potentials.
stress | the stress at which to calculate the flow potential | |
intnl | internal parameter | |
[out] | r | r[alpha] is the flow potential for the "alpha" yield function |
Reimplemented in TensorMechanicsPlasticMohrCoulombMulti, and TensorMechanicsPlasticTensileMulti.
Definition at line 111 of file TensorMechanicsPlasticModel.C.
|
protectedvirtualinherited |
The hardening potential.
stress | the stress at which to calculate the hardening potential |
intnl | internal parameter |
Reimplemented in TensorMechanicsPlasticMeanCapTC.
Definition at line 147 of file TensorMechanicsPlasticModel.C.
Referenced by TensorMechanicsPlasticModel::hardPotentialV().
|
virtualinherited |
The hardening potential.
stress | the stress at which to calculate the hardening potential | |
intnl | internal parameter | |
[out] | h | h[alpha] is the hardening potential for the "alpha" yield function |
Definition at line 152 of file TensorMechanicsPlasticModel.C.
|
inherited |
Definition at line 42 of file TensorMechanicsPlasticModel.C.
|
privateinherited |
Returns the Drucker-Prager parameters A nice reference on the different relationships between Drucker-Prager and Mohr-Coulomb is H Jiang and X Yongli, A note on the Mohr-Coulomb and Drucker-Prager strength criteria, Mechanics Research Communications 38 (2011) 309-314.
This function uses Table1 in that reference, with the following translations aaa = k bbb = -alpha/3
intnl | The internal parameter | |
[out] | aaa | The Drucker-Prager aaa quantity |
[out] | bbb | The Drucker-Prager bbb quantity |
Definition at line 270 of file TensorMechanicsPlasticDruckerPrager.C.
Referenced by TensorMechanicsPlasticDruckerPrager::bothAB(), and TensorMechanicsPlasticDruckerPrager::TensorMechanicsPlasticDruckerPrager().
|
privateinherited |
Returns the Drucker-Prager parameters A nice reference on the different relationships between Drucker-Prager and Mohr-Coulomb is H Jiang and X Yongli, A note on the Mohr-Coulomb and Drucker-Prager strength criteria, Mechanics Research Communications 38 (2011) 309-314.
This function uses Table1 in that reference, with the following translations aaa = k bbb = -alpha/3
intnl | The internal parameter | |
fd | If fd == frction then the friction angle is used to set bbb, otherwise the dilation angle is used | |
[out] | bbb | The Drucker-Prager bbb quantity |
Definition at line 301 of file TensorMechanicsPlasticDruckerPrager.C.
Referenced by TensorMechanicsPlasticDruckerPrager::onlyB(), and TensorMechanicsPlasticDruckerPrager::TensorMechanicsPlasticDruckerPrager().
|
inherited |
Returns true if the Kuhn-Tucker conditions for the single surface are satisfied.
yf | Yield function value |
dpm | plastic multiplier |
dpm_tol | tolerance on plastic multiplier: viz dpm>-dpm_tol means "dpm is non-negative" |
Definition at line 248 of file TensorMechanicsPlasticModel.C.
Referenced by TensorMechanicsPlasticMohrCoulombMulti::KuhnTuckerOK(), TensorMechanicsPlasticTensileMulti::KuhnTuckerOK(), and TensorMechanicsPlasticModel::returnMap().
|
overridevirtual |
Reimplemented from TensorMechanicsPlasticDruckerPrager.
Definition at line 90 of file TensorMechanicsPlasticDruckerPragerHyperbolic.C.
|
virtualinherited |
The number of yield surfaces for this plasticity model.
Reimplemented in TensorMechanicsPlasticMohrCoulombMulti, and TensorMechanicsPlasticTensileMulti.
Definition at line 57 of file TensorMechanicsPlasticModel.C.
Referenced by TensorMechanicsPlasticModel::activeConstraints(), TensorMechanicsPlasticModel::dhardPotential_dintnlV(), TensorMechanicsPlasticModel::dhardPotential_dstressV(), TensorMechanicsPlasticModel::hardPotentialV(), and TensorMechanicsPlasticModel::returnMap().
|
inherited |
Calculate bbb or bbb_flow.
intnl | the internal parameter |
fd | if fd==friction then bbb is calculated. if fd==dilation then bbb_flow is calculated |
bbb | either bbb or bbb_flow, depending on fd |
Definition at line 161 of file TensorMechanicsPlasticDruckerPrager.C.
Referenced by CappedDruckerPragerStressUpdate::computeAllQ(), consistentTangentOperator(), TensorMechanicsPlasticDruckerPrager::dyieldFunction_dstress(), TensorMechanicsPlasticDruckerPrager::flowPotential(), CappedDruckerPragerStressUpdate::initializeVars(), returnMap(), CappedDruckerPragerStressUpdate::setIntnlDerivatives(), and CappedDruckerPragerStressUpdate::setIntnlValues().
|
overrideprotectedvirtual |
Performs a custom return-map.
You may choose to over-ride this in your derived TensorMechanicsPlasticXXXX class, and you may implement the return-map algorithm in any way that suits you. Eg, using a Newton-Raphson approach, or a radial-return, etc. This may also be used as a quick way of ascertaining whether (trial_stress, intnl_old) is in fact admissible.
For over-riding this function, please note the following.
(1) Denoting the return value of the function by "successful_return", the only possible output values should be: (A) trial_stress_inadmissible=false, successful_return=true. That is, (trial_stress, intnl_old) is in fact admissible (in the elastic domain). (B) trial_stress_inadmissible=true, successful_return=false. That is (trial_stress, intnl_old) is inadmissible (outside the yield surface), and you didn't return to the yield surface. (C) trial_stress_inadmissible=true, successful_return=true. That is (trial_stress, intnl_old) is inadmissible (outside the yield surface), but you did return to the yield surface. The default implementation only handles case (A) and (B): it does not attempt to do a return-map algorithm.
(2) you must correctly signal "successful_return" using the return value of this function. Don't assume the calling function will do Kuhn-Tucker checking and so forth!
(3) In cases (A) and (B) you needn't set returned_stress, returned_intnl, delta_dp, or dpm. This is for computational efficiency.
(4) In cases (A) and (B), you MUST place the yield function values at (trial_stress, intnl_old) into yf so the calling function can use this information optimally. You will have already calculated these yield function values, which can be quite expensive, and it's not very optimal for the calling function to have to re-calculate them.
(5) In case (C), you need to set: returned_stress (the returned value of stress) returned_intnl (the returned value of the internal variable) delta_dp (the change in plastic strain) dpm (the plastic multipliers needed to bring about the return) yf (yield function values at the returned configuration)
(Note, if you over-ride returnMap, you will probably want to override consistentTangentOpertor too, otherwise it will default to E_ijkl.)
trial_stress | The trial stress | |
intnl_old | Value of the internal parameter | |
E_ijkl | Elasticity tensor | |
ep_plastic_tolerance | Tolerance defined by the user for the plastic strain | |
[out] | returned_stress | In case (C): lies on the yield surface after returning and produces the correct plastic strain (normality condition). Otherwise: not defined |
[out] | returned_intnl | In case (C): the value of the internal parameter after returning. Otherwise: not defined |
[out] | dpm | In case (C): the plastic multipliers needed to bring about the return. Otherwise: not defined |
[out] | delta_dp | In case (C): The change in plastic strain induced by the return process. Otherwise: not defined |
[out] | yf | In case (C): the yield function at (returned_stress, returned_intnl). Otherwise: the yield function at (trial_stress, intnl_old) |
[out] | trial_stress_inadmissible | Should be set to false if the trial_stress is admissible, and true if the trial_stress is inadmissible. This can be used by the calling prorgram |
Reimplemented from TensorMechanicsPlasticModel.
Definition at line 96 of file TensorMechanicsPlasticDruckerPragerHyperbolic.C.
|
overridevirtual |
Returns false. You will want to override this in your derived class if you write a custom consistent tangent operator function.
Reimplemented from TensorMechanicsPlasticModel.
Definition at line 270 of file TensorMechanicsPlasticDruckerPragerHyperbolic.C.
|
overridevirtual |
Returns false. You will want to override this in your derived class if you write a custom returnMap function.
Reimplemented from TensorMechanicsPlasticModel.
Definition at line 264 of file TensorMechanicsPlasticDruckerPragerHyperbolic.C.
|
static |
Definition at line 19 of file TensorMechanicsPlasticDruckerPragerHyperbolic.C.
|
overrideprotectedvirtual |
The following functions are what you should override when building single-plasticity models.
The yield function
stress | the stress at which to calculate the yield function |
intnl | internal parameter |
Reimplemented from TensorMechanicsPlasticDruckerPrager.
Definition at line 62 of file TensorMechanicsPlasticDruckerPragerHyperbolic.C.
Referenced by returnMap().
|
virtualinherited |
Calculates the yield functions.
Note that for single-surface plasticity you don't want to override this - override the private yieldFunction below
stress | the stress at which to calculate the yield function | |
intnl | internal parameter | |
[out] | f | the yield functions |
Reimplemented in TensorMechanicsPlasticMohrCoulombMulti, and TensorMechanicsPlasticTensileMulti.
Definition at line 69 of file TensorMechanicsPlasticModel.C.
Referenced by TensorMechanicsPlasticModel::returnMap().
|
privateinherited |
Definition at line 113 of file TensorMechanicsPlasticDruckerPrager.h.
Referenced by TensorMechanicsPlasticDruckerPrager::bothAB(), and TensorMechanicsPlasticDruckerPrager::TensorMechanicsPlasticDruckerPrager().
|
privateinherited |
Definition at line 114 of file TensorMechanicsPlasticDruckerPrager.h.
Referenced by TensorMechanicsPlasticDruckerPrager::bothAB(), TensorMechanicsPlasticDruckerPrager::onlyB(), and TensorMechanicsPlasticDruckerPrager::TensorMechanicsPlasticDruckerPrager().
|
privateinherited |
Definition at line 115 of file TensorMechanicsPlasticDruckerPrager.h.
Referenced by TensorMechanicsPlasticDruckerPrager::onlyB(), and TensorMechanicsPlasticDruckerPrager::TensorMechanicsPlasticDruckerPrager().
|
inherited |
Tolerance on yield function.
Definition at line 175 of file TensorMechanicsPlasticModel.h.
Referenced by TensorMechanicsPlasticWeakPlaneShear::activeConstraints(), TensorMechanicsPlasticWeakPlaneTensile::activeConstraints(), TensorMechanicsPlasticMeanCapTC::activeConstraints(), TensorMechanicsPlasticTensileMulti::activeConstraints(), TensorMechanicsPlasticMohrCoulombMulti::activeConstraints(), TensorMechanicsPlasticModel::activeConstraints(), TensorMechanicsPlasticMohrCoulombMulti::doReturnMap(), TensorMechanicsPlasticTensileMulti::doReturnMap(), TensorMechanicsPlasticModel::KuhnTuckerSingleSurface(), TensorMechanicsPlasticTensileMulti::returnEdge(), TensorMechanicsPlasticMohrCoulombMulti::returnEdge000101(), TensorMechanicsPlasticMohrCoulombMulti::returnEdge010100(), TensorMechanicsPlasticJ2::returnMap(), returnMap(), TensorMechanicsPlasticMeanCapTC::returnMap(), TensorMechanicsPlasticModel::returnMap(), TensorMechanicsPlasticTensileMulti::returnPlane(), TensorMechanicsPlasticMohrCoulombMulti::returnPlane(), TensorMechanicsPlasticTensileMulti::returnTip(), TensorMechanicsPlasticMohrCoulombMulti::returnTip(), TensorMechanicsPlasticMohrCoulombMulti::TensorMechanicsPlasticMohrCoulombMulti(), and TensorMechanicsPlasticTensileMulti::TensorMechanicsPlasticTensileMulti().
|
inherited |
Tolerance on internal constraint.
Definition at line 178 of file TensorMechanicsPlasticModel.h.
|
private |
max iters for custom return map loop
Definition at line 77 of file TensorMechanicsPlasticDruckerPragerHyperbolic.h.
Referenced by returnMap().
|
protectedinherited |
Hardening model for cohesion.
Definition at line 70 of file TensorMechanicsPlasticDruckerPrager.h.
Referenced by TensorMechanicsPlasticDruckerPrager::dbothAB(), TensorMechanicsPlasticDruckerPrager::initializeAandB(), and TensorMechanicsPlasticDruckerPrager::TensorMechanicsPlasticDruckerPrager().
|
protectedinherited |
The parameters aaa and bbb are chosen to closely match the Mohr-Coulomb yield surface.
Various matching schemes may be used and this parameter holds the user's choice.
Definition at line 98 of file TensorMechanicsPlasticDruckerPrager.h.
Referenced by TensorMechanicsPlasticDruckerPrager::dbothAB(), TensorMechanicsPlasticDruckerPrager::donlyB(), TensorMechanicsPlasticDruckerPrager::initializeAandB(), and TensorMechanicsPlasticDruckerPrager::initializeB().
|
protectedinherited |
Hardening model for tan(phi)
Definition at line 73 of file TensorMechanicsPlasticDruckerPrager.h.
Referenced by TensorMechanicsPlasticDruckerPrager::dbothAB(), TensorMechanicsPlasticDruckerPrager::donlyB(), TensorMechanicsPlasticDruckerPrager::initializeAandB(), TensorMechanicsPlasticDruckerPrager::initializeB(), and TensorMechanicsPlasticDruckerPrager::TensorMechanicsPlasticDruckerPrager().
|
protectedinherited |
Hardening model for tan(psi)
Definition at line 76 of file TensorMechanicsPlasticDruckerPrager.h.
Referenced by TensorMechanicsPlasticDruckerPrager::donlyB(), TensorMechanicsPlasticDruckerPrager::initializeB(), and TensorMechanicsPlasticDruckerPrager::TensorMechanicsPlasticDruckerPrager().
|
private |
smoothing parameter for the cone's tip
Definition at line 68 of file TensorMechanicsPlasticDruckerPragerHyperbolic.h.
Referenced by consistentTangentOperator(), df_dsig(), dflowPotential_dstress(), returnMap(), and yieldFunction().
|
private |
Whether to use the custom consistent tangent operator calculation.
Definition at line 74 of file TensorMechanicsPlasticDruckerPragerHyperbolic.h.
Referenced by consistentTangentOperator(), and useCustomCTO().
|
private |
whether to use the custom returnMap function
Definition at line 71 of file TensorMechanicsPlasticDruckerPragerHyperbolic.h.
Referenced by returnMap(), and useCustomReturnMap().
|
protectedinherited |
True if there is no hardening of cohesion.
Definition at line 101 of file TensorMechanicsPlasticDruckerPrager.h.
Referenced by TensorMechanicsPlasticDruckerPrager::bothAB(), and TensorMechanicsPlasticDruckerPrager::dbothAB().
|
protectedinherited |
True if there is no hardening of friction angle.
Definition at line 104 of file TensorMechanicsPlasticDruckerPrager.h.
Referenced by TensorMechanicsPlasticDruckerPrager::bothAB(), TensorMechanicsPlasticDruckerPrager::dbothAB(), TensorMechanicsPlasticDruckerPrager::donlyB(), and TensorMechanicsPlasticDruckerPrager::onlyB().
|
protectedinherited |
True if there is no hardening of dilation angle.
Definition at line 107 of file TensorMechanicsPlasticDruckerPrager.h.
Referenced by TensorMechanicsPlasticDruckerPrager::donlyB(), and TensorMechanicsPlasticDruckerPrager::onlyB().