#include <PlasticTruss.h>
Definition at line 19 of file PlasticTruss.h.
◆ PlasticTruss()
PlasticTruss::PlasticTruss |
( |
const InputParameters & |
parameters | ) |
|
Definition at line 38 of file PlasticTruss.C.
54 if (!parameters.isParamSetByUser(
"hardening_constant") && !isParamValid(
"hardening_function"))
55 mooseError(
"PlasticTruss: Either hardening_constant or hardening_function must be defined");
57 if (parameters.isParamSetByUser(
"hardening_constant") && isParamValid(
"hardening_function"))
58 mooseError(
"PlasticTruss: Only the hardening_constant or only the hardening_function can be "
59 "defined but not both");
◆ computeHardeningDerivative()
Real PlasticTruss::computeHardeningDerivative |
( |
Real |
scalar | ) |
|
|
protectedvirtual |
◆ computeHardeningValue()
Real PlasticTruss::computeHardeningValue |
( |
Real |
scalar | ) |
|
|
protectedvirtual |
◆ computeProperties()
void TrussMaterial::computeProperties |
( |
| ) |
|
|
protectedvirtualinherited |
Definition at line 63 of file TrussMaterial.C.
66 mooseAssert(_current_elem->n_nodes() == 2,
"Truss element needs to have exactly two nodes.");
69 std::vector<const Node *> node;
70 for (
unsigned int i = 0; i < 2; ++i)
71 node.push_back(_current_elem->node_ptr(i));
75 for (
unsigned int i = 0; i <
_ndisp; ++i)
76 dxyz(i) = (*node[1])(i) - (*node[0])(i);
80 NonlinearSystemBase & nonlinear_sys = _fe_problem.getNonlinearSystemBase();
81 const NumericVector<Number> & sol = *nonlinear_sys.currentSolution();
83 std::vector<Real> disp0, disp1;
84 for (
unsigned int i = 0; i <
_ndisp; ++i)
86 disp0.push_back(sol(node[0]->dof_number(nonlinear_sys.number(),
_disp_var[i]->number(), 0)));
87 disp1.push_back(sol(node[1]->dof_number(nonlinear_sys.number(),
_disp_var[i]->number(), 0)));
91 for (
unsigned int i = 0; i <
_ndisp; ++i)
92 dxyz(i) += disp1[i] - disp0[i];
95 for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
◆ computeQpStrain()
void PlasticTruss::computeQpStrain |
( |
| ) |
|
|
protectedvirtual |
◆ computeQpStress()
void PlasticTruss::computeQpStress |
( |
| ) |
|
|
protectedvirtual |
Reimplemented from LinearElasticTruss.
Definition at line 77 of file PlasticTruss.C.
87 Real plastic_strain_increment = 0.0;
88 Real elastic_strain_increment = strain_increment;
90 if (yield_condition > 0.0)
95 Real reference_residual =
96 std::abs(trial_stress) -
_youngs_modulus[_qp] * plastic_strain_increment;
107 plastic_strain_increment += scalar;
112 reference_residual = std::abs(trial_stress) -
_youngs_modulus[_qp] * plastic_strain_increment;
116 throw MooseException(
"PlasticTruss: Plasticity model did not converge");
118 plastic_strain_increment *= MathUtils::sign(trial_stress);
120 elastic_strain_increment = strain_increment - plastic_strain_increment;
◆ initQpStatefulProperties()
void PlasticTruss::initQpStatefulProperties |
( |
| ) |
|
|
protectedvirtual |
◆ validParams()
InputParameters PlasticTruss::validParams |
( |
| ) |
|
|
static |
Definition at line 20 of file PlasticTruss.C.
23 params.addClassDescription(
24 "Computes the stress and strain for a truss element with plastic behavior defined by either "
25 "linear hardening or a user-defined hardening function.");
26 params.addRequiredParam<Real>(
"yield_stress",
27 "Yield stress after which plastic strain starts accumulating");
28 params.addParam<Real>(
"hardening_constant", 0.0,
"Hardening slope");
29 params.addParam<FunctionName>(
"hardening_function",
30 "Engineering stress as a function of plastic strain");
31 params.addParam<Real>(
32 "absolute_tolerance", 1e-10,
"Absolute convergence tolerance for Newton iteration");
33 params.addParam<Real>(
34 "relative_tolerance", 1e-8,
"Relative convergence tolerance for Newton iteration");
◆ _absolute_tolerance
Real PlasticTruss::_absolute_tolerance |
|
protected |
◆ _axial_stress
MaterialProperty<Real>& TrussMaterial::_axial_stress |
|
protectedinherited |
◆ _base_name
const std::string TrussMaterial::_base_name |
|
protectedinherited |
◆ _current_length
Real TrussMaterial::_current_length |
|
protectedinherited |
◆ _disp_var
std::vector<MooseVariable *> TrussMaterial::_disp_var |
|
protectedinherited |
◆ _e_over_l
MaterialProperty<Real>& TrussMaterial::_e_over_l |
|
protectedinherited |
◆ _elastic_stretch
MaterialProperty<Real>& TrussMaterial::_elastic_stretch |
|
protectedinherited |
◆ _hardening_constant
const Real PlasticTruss::_hardening_constant |
|
protected |
◆ _hardening_function
const Function* PlasticTruss::_hardening_function |
|
protected |
◆ _hardening_variable
MaterialProperty<Real>& PlasticTruss::_hardening_variable |
|
protected |
◆ _hardening_variable_old
const MaterialProperty<Real>& PlasticTruss::_hardening_variable_old |
|
protected |
◆ _max_its
const unsigned int PlasticTruss::_max_its |
|
protected |
◆ _ndisp
unsigned int TrussMaterial::_ndisp |
|
protectedinherited |
◆ _origin_length
Real TrussMaterial::_origin_length |
|
protectedinherited |
◆ _plastic_strain
MaterialProperty<Real>& PlasticTruss::_plastic_strain |
|
protected |
◆ _plastic_strain_old
const MaterialProperty<Real>& PlasticTruss::_plastic_strain_old |
|
protected |
◆ _relative_tolerance
Real PlasticTruss::_relative_tolerance |
|
protected |
◆ _stress_old
const MaterialProperty<Real>& PlasticTruss::_stress_old |
|
protected |
◆ _T
const VariableValue& LinearElasticTruss::_T |
|
privateinherited |
◆ _T0
Real LinearElasticTruss::_T0 |
|
privateinherited |
◆ _thermal_expansion_coeff
Real LinearElasticTruss::_thermal_expansion_coeff |
|
privateinherited |
◆ _total_stretch
MaterialProperty<Real>& TrussMaterial::_total_stretch |
|
protectedinherited |
◆ _total_stretch_old
const MaterialProperty<Real>& PlasticTruss::_total_stretch_old |
|
protected |
◆ _yield_stress
Real PlasticTruss::_yield_stress |
|
protected |
◆ _youngs_modulus
const VariableValue& TrussMaterial::_youngs_modulus |
|
protectedinherited |
The documentation for this class was generated from the following files: