11 #include "SubProblem.h"
21 params.addClassDescription(
"Calculates the residual for the inertial force "
22 "($M \\cdot acceleration$) and the contribution of mass"
23 " dependent Rayleigh damping and HHT time "
24 " integration scheme ($\\eta \\cdot M \\cdot"
25 " ((1+\\alpha)velq2-\\alpha \\cdot vel-old) $)");
26 params.set<
bool>(
"use_displaced_mesh") =
true;
27 params.addCoupledVar(
"velocity",
"velocity variable");
28 params.addCoupledVar(
"acceleration",
"acceleration variable");
29 params.addParam<Real>(
"beta",
"beta parameter for Newmark Time integration");
30 params.addParam<Real>(
"gamma",
"gamma parameter for Newmark Time integration");
31 params.addParam<MaterialPropertyName>(
"eta",
33 "Name of material property or a constant real "
34 "number defining the eta parameter for the "
36 params.addParam<Real>(
"alpha",
38 "alpha parameter for mass dependent numerical damping induced "
39 "by HHT time integration scheme");
40 params.addParam<MaterialPropertyName>(
41 "density",
"density",
"Name of Material Property that provides the density");
46 : TimeKernel(parameters),
47 _density(getMaterialProperty<Real>(
"density")),
48 _has_beta(isParamValid(
"beta")),
49 _has_gamma(isParamValid(
"gamma")),
50 _beta(_has_beta ? getParam<Real>(
"beta") : 0.1),
51 _gamma(_has_gamma ? getParam<Real>(
"gamma") : 0.1),
52 _has_velocity(isParamValid(
"velocity")),
53 _has_acceleration(isParamValid(
"acceleration")),
54 _eta(getMaterialProperty<Real>(
"eta")),
55 _alpha(getParam<Real>(
"alpha"))
59 _vel_old = &coupledValueOld(
"velocity");
73 "InertialForce: Either all or none of `beta`, `gamma`, `velocity`, and `acceleration` "
74 "should be provided as input.");
84 Real accel = 1. /
_beta *
85 (((_u[_qp] - (*_u_old)[_qp]) / (_dt * _dt)) - (*
_vel_old)[_qp] / _dt -
86 (*_accel_old)[_qp] * (0.5 -
_beta));
87 Real vel = (*_vel_old)[_qp] + (_dt * (1 -
_gamma)) * (*_accel_old)[_qp] +
_gamma * _dt * accel;
88 return _test[_i][_qp] *
_density[_qp] *
92 return _test[_i][_qp] *
_density[_qp] *
93 ((*_u_dotdot)[_qp] + (*_u_dot)[_qp] *
_eta[_qp] * (1.0 +
_alpha) -
103 return _test[_i][_qp] *
_density[_qp] / (
_beta * _dt * _dt) * _phi[_j][_qp] +
107 return _test[_i][_qp] *
_density[_qp] * (*_du_dotdot_du)[_qp] * _phi[_j][_qp] +