21 "validate_coordinate_systems");
35 "add_master_action_material");
42 params.
addParam<
bool>(
"static_initialization",
44 "Set to true get the system to " 45 "equilibrium under gravity by running a " 46 "quasi-static analysis (by solving Ku = F) " 47 "in the first time step.");
49 params.
addParam<std::vector<AuxVariableName>>(
51 std::vector<AuxVariableName>({
"vel_x",
"vel_y",
"vel_z"}),
52 "Names of the velocity variables");
53 params.
addParam<std::vector<AuxVariableName>>(
55 std::vector<AuxVariableName>({
"accel_x",
"accel_y",
"accel_z"}),
56 "Names of the acceleration variables");
61 "alpha parameter for mass dependent numerical damping induced " 62 "by HHT time integration scheme");
63 params.
addParam<
Real>(
"newmark_beta", 0.25,
"beta parameter for Newmark Time integration");
64 params.
addParam<
Real>(
"newmark_gamma", 0.5,
"gamma parameter for Newmark Time integration");
65 params.
addParam<MaterialPropertyName>(
"mass_damping_coefficient",
67 "Name of material property or a constant real " 68 "number defining mass Rayleigh parameter (eta).");
69 params.
addParam<MaterialPropertyName>(
"stiffness_damping_coefficient",
71 "Name of material property or a constant real " 72 "number defining stiffness Rayleigh parameter (zeta).");
73 params.
addParam<MaterialPropertyName>(
74 "density",
"density",
"Name of Material Property that provides the density");
76 "Time integration parameters");
83 _velocities(getParam<
std::vector<AuxVariableName>>(
"velocities")),
84 _accelerations(getParam<
std::vector<AuxVariableName>>(
"accelerations"))
91 const std::array<std::string, 3> dir{{
"x",
"y",
"z"}};
94 paramError(
"velocities",
"Supply one velocity variable per displacement direction");
96 paramError(
"accelerations",
"Supply one acceleration variable per displacement direction");
99 if (
_current_task ==
"add_aux_variable" && getParam<bool>(
"add_variables"))
103 const bool second =
_problem->mesh().hasSecondOrderElements();
105 params.set<
MooseEnum>(
"order") = second ?
"SECOND" :
"FIRST";
106 params.set<
MooseEnum>(
"family") =
"LAGRANGE";
108 for (
unsigned int i = 0; i <
_ndisp; ++i)
125 for (
unsigned int i = 0; i <
_ndisp; ++i)
127 auto kernel_type =
"NewmarkAccelAux";
130 params.set<std::vector<VariableName>>(
"displacement") = {
_displacements[i]};
131 params.set<std::vector<VariableName>>(
"velocity") = {
_velocities[i]};
133 params.set<
Real>(
"beta") = getParam<Real>(
"newmark_beta");
139 for (
unsigned int i = 0; i <
_ndisp; ++i)
141 auto kernel_type =
"NewmarkVelAux";
144 params.set<std::vector<VariableName>>(
"acceleration") = {
_accelerations[i]};
146 params.set<
Real>(
"gamma") = getParam<Real>(
"newmark_gamma");
155 for (
unsigned int i = 0; i <
_ndisp; ++i)
157 auto kernel_type =
_use_ad ?
"ADInertialForce" :
"InertialForce";
161 params.set<std::vector<VariableName>>(
"velocity") = {
_velocities[i]};
162 params.set<std::vector<VariableName>>(
"acceleration") = {
_accelerations[i]};
163 params.set<
bool>(
"use_displaced_mesh") =
false;
164 params.set<
Real>(
"beta") = getParam<Real>(
"newmark_beta");
165 params.set<
Real>(
"gamma") = getParam<Real>(
"newmark_gamma");
166 params.set<
Real>(
"alpha") = getParam<Real>(
"hht_alpha");
167 params.set<MaterialPropertyName>(
"eta") =
168 getParam<MaterialPropertyName>(
"mass_damping_coefficient");
172 _problem->addKernel(kernel_type,
"TM_" +
name() +
"_inertia_" + dir[i], params);
185 return "DynamicStressDivergenceTensors";
196 params.
set<
Real>(
"alpha") = getParam<Real>(
"hht_alpha");
198 params.
set<MaterialPropertyName>(
"zeta") =
199 getParam<MaterialPropertyName>(
"stiffness_damping_coefficient");
std::vector< AuxVariableName > _velocities
virtual InputParameters getKernelParameters(std::string type)
DynamicSolidMechanicsPhysics(const InputParameters ¶ms)
virtual void act() override
unsigned int _ndisp
Number of displacement variables.
InputParameters getValidParams(const std::string &name) const
Moose::CoordinateSystemType _coord_system
const ExecFlagType EXEC_TIMESTEP_END
std::vector< VariableName > _displacements
displacement variables
virtual const std::string & name() const
virtual std::string getKernelType() override
registerMooseAction("SolidMechanicsApp", DynamicSolidMechanicsPhysics, "meta_action")
const std::string & type() const
const std::string & _current_task
void paramError(const std::string ¶m, Args... args) const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
void mooseError(Args &&... args) const
std::shared_ptr< FEProblemBase > & _problem
const InputParameters & parameters() const
static InputParameters validParams()
std::vector< AuxVariableName > _accelerations
virtual InputParameters getKernelParameters(std::string type) override