29 template <
typename T1,
typename T2>
36 template <
typename T1,
typename T2>
39 return (1.0 / t.
dt()) * (field_new - field_old);
58 template <
typename T1,
typename T2,
typename T3,
typename T4>
60 [[maybe_unused]]
const T2& field_old, [[maybe_unused]]
const T3& velo_old,
61 [[maybe_unused]]
const T4& accel_old)
const
67 template <
typename T1,
typename T2,
typename T3,
typename T4>
69 [[maybe_unused]]
const T2& field_old, [[maybe_unused]]
const T3& velo_old,
70 [[maybe_unused]]
const T4& accel_old)
const
72 return (2.0 / t.dt()) * (field_new - field_old) - velo_old;
76 template <
typename T1,
typename T2,
typename T3,
typename T4>
78 [[maybe_unused]]
const T2& field_old, [[maybe_unused]]
const T3& velo_old,
79 [[maybe_unused]]
const T4& accel_old)
const
82 return (4.0 / (dt * dt)) * (field_new - field_old) - (4.0 / dt) * velo_old - accel_old;
#define SMITH_HOST_DEVICE
Macro that evaluates to __host__ __device__ when compiling with nvcc or amdclang and does nothing on ...
A file defining some enums and structs that are used by the different physics modules.
Accelerator functionality.
encodes rules for time discretizing first order odes (involving first time derivatives)....
SMITH_HOST_DEVICE auto dot(const TimeInfo &t, const T1 &field_new, const T2 &field_old) const
evaluate time derivative discretization of the ode state as used by the integration rule
BackwardEulerFirstOrderTimeIntegrationRule()
Constructor.
SMITH_HOST_DEVICE auto value(const TimeInfo &, const T1 &field_new, const T2 &) const
evaluate value of the ode state as used by the integration rule
encodes rules for time discretizing second order odes (involving first and second time derivatives)....
SMITH_HOST_DEVICE auto value([[maybe_unused]] const TimeInfo &t, [[maybe_unused]] const T1 &field_new, [[maybe_unused]] const T2 &field_old, [[maybe_unused]] const T3 &velo_old, [[maybe_unused]] const T4 &accel_old) const
evaluate value of the ode state as used by the integration rule
ImplicitNewmarkSecondOrderTimeIntegrationRule()
Constructor.
SMITH_HOST_DEVICE auto dot([[maybe_unused]] const TimeInfo &t, [[maybe_unused]] const T1 &field_new, [[maybe_unused]] const T2 &field_old, [[maybe_unused]] const T3 &velo_old, [[maybe_unused]] const T4 &accel_old) const
evaluate time derivative discretization of the ode state as used by the integration rule
SMITH_HOST_DEVICE auto ddot([[maybe_unused]] const TimeInfo &t, [[maybe_unused]] const T1 &field_new, [[maybe_unused]] const T2 &field_old, [[maybe_unused]] const T3 &velo_old, [[maybe_unused]] const T4 &accel_old) const
evaluate time derivative discretization of the ode state as used by the integration rule
struct storing time and timestep information
double dt() const
accessor for dt