21 params.
addClassDescription(
"Kernel for inertial torque: density * displacement x acceleration");
22 params.
set<
bool>(
"use_displaced_mesh") =
false;
26 "The component of the Cosserat rotation Variable prescribed to "
27 "this Kernel (0 for x, 1 for y, 2 for z)");
31 params.
addRequiredParam<Real>(
"beta",
"beta parameter for Newmark Time integration");
32 params.
addRequiredParam<Real>(
"gamma",
"gamma parameter for Newmark Time integration");
33 params.
addParam<MaterialPropertyName>(
34 "density",
"density",
"Name of Material Property that provides the density");
35 params.
addParam<MaterialPropertyName>(
"eta",
37 "Name of material property or a constant real "
38 "number defining the eta parameter for the "
42 "alpha parameter for mass dependent numerical damping induced "
43 "by HHT time integration scheme");
49 _density(getMaterialProperty<Real>(
"density")),
50 _beta(getParam<Real>(
"beta")),
51 _gamma(getParam<Real>(
"gamma")),
52 _eta(getMaterialProperty<Real>(
"eta")),
53 _alpha(getParam<Real>(
"alpha")),
54 _component(getParam<unsigned
int>(
"component")),
55 _ndisp(coupledComponents(
"displacements")),
56 _disp_num(coupledIndices(
"displacements")),
57 _disp(coupledValues(
"displacements")),
58 _disp_old(coupledValuesOld(
"displacements")),
59 _vel_old(coupledValuesOld(
"velocities")),
60 _accel_old(coupledValuesOld(
"accelerations")),
69 "InertialTorque: This Kernel is only defined for 3-dimensional simulations so 3 "
70 "displacement variables, 3 velocity variables and 3 acceleration variables are needed");
76 for (
unsigned int j = 0; j <
_ndisp; ++j)
89 for (
unsigned int j = 0; j <
_ndisp; ++j)
90 for (
unsigned int k = 0; k <
_ndisp; ++k)
104 for (
unsigned int j = 0; j <
_ndisp; ++j)
125 for (
unsigned int k = 0; k <
_ndisp; ++k)
127 for (
unsigned int j = 0; j <
_ndisp; ++j)
registerMooseObject("SolidMechanicsApp", InertialTorque)
void ErrorVector unsigned int
unsigned int coupledComponents(const std::string &var_name) const
Computes the inertial torque, which is density * displacement x acceleration (a cross-product is used...
InertialTorque(const InputParameters ¶meters)
const MaterialProperty< Real > & _eta
Rayleigh-damping eta parameter.
const unsigned _component
Component of the cross-product desired.
const std::vector< const VariableValue * > _disp
Displacements.
std::vector< Real > _vel
Velocity (instantiating this vector avoids re-creating a new vector every residual calculation)
std::vector< Real > _accel
Acceleration (instantiating this vector avoids re-creating a new vector every residual calculation)
std::vector< Real > _daccel
Derivative of acceleration with respect to displacement.
const Real _beta
Newmark beta parameter.
const MaterialProperty< Real > & _density
density
const std::vector< const VariableValue * > _accel_old
Old value of accelerations.
const std::vector< unsigned > _disp_num
MOOSE internal variable numbers corresponding to the displacments.
const unsigned _ndisp
Number of displacement variables. This must be 3.
std::vector< Real > _dvel
Derivative of velocity with respect to displacement.
const std::vector< const VariableValue * > _vel_old
Old value of velocities.
const Real _gamma
Newmark gamma parameter.
const std::vector< const VariableValue * > _disp_old
Old value of displacements.
static InputParameters validParams()
virtual Real computeQpJacobian() override
const Real _alpha
HHT alpha parameter.
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
virtual Real computeQpResidual() override
const VariablePhiValue & _phi
const VariableTestValue & _test
void mooseError(Args &&... args) const
unsigned int number() const
static InputParameters validParams()
int eps(unsigned int i, unsigned int j)