Action class to setup peridynamic generalized plane strain models.
More...
#include <GeneralizedPlaneStrainActionPD.h>
Action class to setup peridynamic generalized plane strain models.
Definition at line 23 of file GeneralizedPlaneStrainActionPD.h.
◆ GeneralizedPlaneStrainActionPD()
GeneralizedPlaneStrainActionPD::GeneralizedPlaneStrainActionPD |
( |
const InputParameters & |
params | ) |
|
Definition at line 61 of file GeneralizedPlaneStrainActionPD.C.
63 _displacements(getParam<std::vector<VariableName>>(
"displacements")),
70 mooseError(
"GeneralizedPlaneStrainPD only works for two dimensional case!");
73 if (
_formulation ==
"NONORDINARY_STATE" && isParamValid(
"out_of_plane_stress_variable"))
74 mooseWarning(
"Variable out_of_plane_stress_variable will not be used in NONORDINARY_STATE "
75 "formulation option!");
76 if (
_formulation ==
"ORDINARY_STATE" && !isParamValid(
"out_of_plane_stress_variable"))
77 mooseError(
"Variable out_of_plane_stress_variable must be provided for ORDINARY_STATE "
78 "formulation option!");
◆ act()
void GeneralizedPlaneStrainActionPD::act |
( |
| ) |
|
|
overridevirtual |
Definition at line 82 of file GeneralizedPlaneStrainActionPD.C.
84 if (_current_task ==
"add_kernel")
88 k_type =
"GeneralizedPlaneStrainOffDiagOSPD";
90 k_type =
"GeneralizedPlaneStrainOffDiagNOSPD";
95 "Unsupported peridynamic formulation. Choose from: ORDINARY_STATE or NONORDINARY_STATE");
97 InputParameters params = _factory.getValidParams(k_type);
99 params.applyParameters(parameters(),
100 {
"displacements",
"temperature",
"scalar_out_of_plane_strain"});
102 params.set<std::vector<VariableName>>(
"displacements") =
_displacements;
103 params.set<std::vector<VariableName>>(
"scalar_out_of_plane_strain") = {
107 for (
unsigned int i = 0; i <
_ndisp; ++i)
109 std::string k_name =
name() +
"_GeneralizedPlaneStrainPDOffDiag_disp_" + Moose::stringify(i);
110 params.set<NonlinearVariableName>(
"variable") =
_displacements[i];
112 _problem->addKernel(k_type, k_name, params);
117 if (isParamValid(
"temperature"))
119 VariableName temp = getParam<VariableName>(
"temperature");
120 if (_problem->getNonlinearSystemBase().hasVariable(temp))
122 params.set<std::vector<VariableName>>(
"temperature") = {temp};
124 std::string k_name =
name() +
"_GeneralizedPlaneStrainPDOffDiag_temp";
125 params.set<NonlinearVariableName>(
"variable") = temp;
128 params.set<std::vector<MaterialPropertyName>>(
"eigenstrain_names") =
129 getParam<std::vector<MaterialPropertyName>>(
"eigenstrain_names");
131 _problem->addKernel(k_type, k_name, params);
135 else if (_current_task ==
"add_user_object")
139 uo_type =
"GeneralizedPlaneStrainUserObjectOSPD";
141 uo_type =
"GeneralizedPlaneStrainUserObjectNOSPD";
145 "Unsupported peridynamic formulation. Choose from: ORDINARY_STATE or NONORDINARY_STATE");
147 InputParameters params = _factory.getValidParams(uo_type);
149 std::string uo_name =
name() +
"_GeneralizedPlaneStrainPDUserObject";
151 params.applyParameters(parameters(), {
"out_of_plane_stress_variable"});
154 params.set<std::vector<VariableName>>(
"out_of_plane_stress_variable") = {
155 getParam<VariableName>(
"out_of_plane_stress_variable")};
157 _problem->addUserObject(uo_type, uo_name, params);
159 else if (_current_task ==
"add_scalar_kernel")
161 std::string sk_type(
"GeneralizedPlaneStrainPD");
162 InputParameters params = _factory.getValidParams(sk_type);
164 std::string sk_name =
name() +
"_GeneralizedPlaneStrainPD";
169 params.set<UserObjectName>(
"generalized_plane_strain_uo") =
170 name() +
"_GeneralizedPlaneStrainPDUserObject";
172 _problem->addScalarKernel(sk_type, sk_name, params);
175 mooseError(
"Task error in GeneralizedPlaneStrainActionPD");
◆ _displacements
std::vector<VariableName> GeneralizedPlaneStrainActionPD::_displacements |
|
protected |
◆ _formulation
const MooseEnum GeneralizedPlaneStrainActionPD::_formulation |
|
protected |
◆ _ndisp
const unsigned int GeneralizedPlaneStrainActionPD::_ndisp |
|
protected |
◆ _scalar_out_of_plane_strain
VariableName GeneralizedPlaneStrainActionPD::_scalar_out_of_plane_strain |
|
protected |
The documentation for this class was generated from the following files: