https://mooseframework.inl.gov
InertialForce.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "TimeKernel.h"
13 #include "ADTimeKernel.h"
14 #include "Material.h"
15 
16 // Forward Declarations
17 class TimeIntegrator;
18 
19 // parent class
20 template <bool is_ad>
21 using InertialForceParent = typename std::conditional<is_ad, ADTimeKernel, TimeKernel>::type;
22 
23 template <bool is_ad>
25 {
26 public:
28 
29  InertialForceTempl(const InputParameters & parameters);
30 
31  static std::pair<GenericReal<is_ad>, GenericReal<is_ad>>
33  const Real u_old,
34  const Real vel_old,
35  const Real accel_old,
36  const Real beta,
37  const Real gamma,
38  const Real dt);
39 
40 protected:
42 
43  virtual Real computeQpJacobian();
44 
45  virtual void computeResidualAdditional();
46 
47 private:
52  const bool _has_beta;
53  const bool _has_gamma;
54  const Real _beta;
55  const Real _gamma;
56  const bool _has_velocity;
57  const bool _has_acceleration;
60  const Real _alpha;
61 
62  // Velocity and acceleration calculated by time integrator
70 
73 
82 };
83 
Moose::GenericType< Real, is_ad > GenericReal
const bool _has_gamma
Definition: InertialForce.h:53
const VariableValue * _u_dot_factor
Definition: InertialForce.h:65
const MaterialProperty< Real > & _density_scaling
Definition: InertialForce.h:59
const VariableValue * _u_dot_factor_dof
Definition: InertialForce.h:63
const GenericMaterialProperty< Real, is_ad > & _density
Definition: InertialForce.h:48
virtual void computeResidualAdditional()
const VariableValue * _u_dotdot_factor_dof
Definition: InertialForce.h:64
const VariableValue * _accel_old
Definition: InertialForce.h:51
const VariableValue * _vel_old
Definition: InertialForce.h:50
typename std::conditional< is_ad, ADTimeKernel, TimeKernel >::type InertialForceParent
Definition: InertialForce.h:21
static InputParameters validParams()
Definition: InertialForce.C:20
const VariableValue * _u_dot_old
Definition: InertialForce.h:67
const VariableValue * _u_old
Definition: InertialForce.h:49
const TimeIntegrator & _time_integrator
The TimeIntegrator.
Definition: InertialForce.h:72
const VariableValue * _u_dotdot_factor
Definition: InertialForce.h:66
const VariableValue * _du_dot_du
Definition: InertialForce.h:68
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
const bool _has_velocity
Definition: InertialForce.h:56
static std::pair< GenericReal< is_ad >, GenericReal< is_ad > > computeNewmarkBetaVelAccel(const GenericReal< is_ad > &u, const Real u_old, const Real vel_old, const Real accel_old, const Real beta, const Real gamma, const Real dt)
OutputTools< Real >::VariableValue VariableValue
virtual GenericReal< is_ad > computeQpResidual()
const bool _has_acceleration
Definition: InertialForce.h:57
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const bool _has_beta
Definition: InertialForce.h:52
const VariableValue * _du_dotdot_du
Definition: InertialForce.h:69
const GenericMaterialProperty< Real, is_ad > & _eta
Definition: InertialForce.h:58
InertialForceTempl(const InputParameters &parameters)
Definition: InertialForce.C:52
virtual Real computeQpJacobian()