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)");
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");
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)
std::vector< Real > _dvel
Derivative of velocity with respect to displacement.
int eps(unsigned int i, unsigned int j)
unsigned int number() const
static InputParameters validParams()
const MaterialProperty< Real > & _eta
Rayleigh-damping eta parameter.
const std::vector< const VariableValue * > _disp
Displacements.
InertialTorque(const InputParameters ¶meters)
const unsigned _ndisp
Number of displacement variables. This must be 3.
const Real _beta
Newmark beta parameter.
std::vector< Real > _accel
Acceleration (instantiating this vector avoids re-creating a new vector every residual calculation) ...
const VariableTestValue & _test
const Real _alpha
HHT alpha parameter.
virtual Real computeQpJacobian() override
virtual Real computeQpResidual() override
const std::vector< unsigned > _disp_num
MOOSE internal variable numbers corresponding to the displacments.
const unsigned _component
Component of the cross-product desired.
registerMooseObject("SolidMechanicsApp", InertialTorque)
std::vector< Real > _daccel
Derivative of acceleration with respect to displacement.
const Real _gamma
Newmark gamma parameter.
const std::vector< const VariableValue * > _disp_old
Old value of displacements.
unsigned int coupledComponents(const std::string &var_name) const
const MaterialProperty< Real > & _density
density
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string v
const std::vector< const VariableValue * > _vel_old
Old value of velocities.
void mooseError(Args &&... args) const
Computes the inertial torque, which is density * displacement x acceleration (a cross-product is used...
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
std::vector< Real > _vel
Velocity (instantiating this vector avoids re-creating a new vector every residual calculation) ...
const VariablePhiValue & _phi
static InputParameters validParams()
static const std::string k
void ErrorVector unsigned int
const std::vector< const VariableValue * > _accel_old
Old value of accelerations.
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override