www.mooseframework.org
TensorMechanicsPlasticMeanCap.C
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 
11 #include "RankFourTensor.h"
12 
14 
16 
17 InputParameters
19 {
20  InputParameters params = TensorMechanicsPlasticModel::validParams();
21  params.addParam<Real>("a", 1.0, "Yield function = a*mean_stress - strength");
22  params.addRequiredParam<UserObjectName>("strength", "Yield function = a*mean_stress - strength");
23  params.addClassDescription("Class that limits the mean stress. Yield function = a*mean_stress - "
24  "strength. mean_stress = (stress_xx + stress_yy + stress_zz)/3");
25 
26  return params;
27 }
28 
30  : TensorMechanicsPlasticModel(parameters),
31  _a_over_3(getParam<Real>("a") / 3.0),
32  _strength(getUserObject<TensorMechanicsHardeningModel>("strength"))
33 {
34 }
35 
36 Real
38 {
39  return _a_over_3 * stress.trace() - _strength.value(intnl);
40 }
41 
44  Real /*intnl*/) const
45 {
46  return _a_over_3 * stress.dtrace();
47 }
48 
49 Real
51  Real intnl) const
52 {
53  return -_strength.derivative(intnl);
54 }
55 
57 TensorMechanicsPlasticMeanCap::flowPotential(const RankTwoTensor & stress, Real /*intnl*/) const
58 {
59  return _a_over_3 * stress.dtrace();
60 }
61 
64  Real /*intnl*/) const
65 {
66  return RankFourTensor();
67 }
68 
71  Real /*intnl*/) const
72 {
73  return RankTwoTensor();
74 }
75 
76 std::string
78 {
79  return "MeanCap";
80 }
TensorMechanicsPlasticMeanCap.h
TensorMechanicsPlasticMeanCap::dyieldFunction_dintnl
Real dyieldFunction_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to the internal parameter.
Definition: TensorMechanicsPlasticMeanCap.C:50
TensorMechanicsPlasticModel::validParams
static InputParameters validParams()
Definition: TensorMechanicsPlasticModel.C:18
TensorMechanicsPlasticMeanCap::flowPotential
RankTwoTensor flowPotential(const RankTwoTensor &stress, Real intnl) const override
The flow potential.
Definition: TensorMechanicsPlasticMeanCap.C:57
TensorMechanicsPlasticMeanCap::validParams
static InputParameters validParams()
Definition: TensorMechanicsPlasticMeanCap.C:18
registerMooseObject
registerMooseObject("TensorMechanicsApp", TensorMechanicsPlasticMeanCap)
TensorMechanicsPlasticMeanCap::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: TensorMechanicsPlasticMeanCap.C:70
TensorMechanicsPlasticMeanCap::_strength
const TensorMechanicsHardeningModel & _strength
strength
Definition: TensorMechanicsPlasticMeanCap.h:53
TensorMechanicsPlasticMeanCap::dflowPotential_dstress
RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
Definition: TensorMechanicsPlasticMeanCap.C:63
TensorMechanicsPlasticMeanCap::modelName
virtual std::string modelName() const override
Definition: TensorMechanicsPlasticMeanCap.C:77
TensorMechanicsHardeningModel::derivative
virtual Real derivative(Real intnl) const
Definition: TensorMechanicsHardeningModel.C:47
defineLegacyParams
defineLegacyParams(TensorMechanicsPlasticMeanCap)
TensorMechanicsHardeningModel::value
virtual Real value(Real intnl) const
Definition: TensorMechanicsHardeningModel.C:45
RankTwoTensor
RankTwoTensorTempl< Real > RankTwoTensor
Definition: ACGrGrElasticDrivingForce.h:17
TensorMechanicsPlasticMeanCap::_a_over_3
Real _a_over_3
a/3
Definition: TensorMechanicsPlasticMeanCap.h:50
TensorMechanicsPlasticMeanCap
Class that limits the mean stress Yield function = a*mean_stress - strength mean_stress = (stress_xx ...
Definition: TensorMechanicsPlasticMeanCap.h:27
RankFourTensorTempl
Definition: ACGrGrElasticDrivingForce.h:20
TensorMechanicsPlasticModel
Plastic Model base class The virtual functions written below must be over-ridden in derived classes t...
Definition: TensorMechanicsPlasticModel.h:42
RankTwoTensorTempl< Real >
RankFourTensor
RankFourTensorTempl< Real > RankFourTensor
Definition: ACGrGrElasticDrivingForce.h:20
TensorMechanicsPlasticMeanCap::dyieldFunction_dstress
RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to stress.
Definition: TensorMechanicsPlasticMeanCap.C:43
TensorMechanicsPlasticMeanCap::TensorMechanicsPlasticMeanCap
TensorMechanicsPlasticMeanCap(const InputParameters &parameters)
Definition: TensorMechanicsPlasticMeanCap.C:29
TensorMechanicsPlasticMeanCap::yieldFunction
Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
The following functions are what you should override when building single-plasticity models.
Definition: TensorMechanicsPlasticMeanCap.C:37
TensorMechanicsHardeningModel
Hardening Model base class.
Definition: TensorMechanicsHardeningModel.h:27