Smith  0.1
Smith is an implicit thermal structural mechanics simulation code.
Public Member Functions | Static Public Attributes | List of all members
smith::QuasiStaticSecondOrderTimeIntegrationRule Struct Reference

encodes rules for time discretizing second order odes (involving first and second time derivatives). When solving f(u, u_dot, u_dot_dot, t) = 0 this class provides the current discrete approximation for u, u_dot, and u_dot_dot as a function of (u^{n+1},u^n,u_dot^n,u_dot_dot^n). More...

#include <time_integration_rule.hpp>

Collaboration diagram for smith::QuasiStaticSecondOrderTimeIntegrationRule:
Collaboration graph
[legend]

Public Member Functions

 QuasiStaticSecondOrderTimeIntegrationRule ()
 Constructor.
 
int num_args () const override
 get the number of states required by the rule
 
bool requiresInitialAccelerationSolve () const override
 quasi-static second-order rules do not need the cycle-zero acceleration solve
 
template<typename T1 , typename T2 , typename T3 , typename T4 >
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
 
template<typename T1 , typename T2 , typename T3 , typename T4 >
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
 
template<typename T1 , typename T2 , typename T3 , typename T4 >
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
 
template<typename T1 , typename T2 , typename T3 , typename T4 >
SMITH_HOST_DEVICE auto interpolate (const TimeInfo &t, const T1 &field_new, const T2 &field_old, const T3 &velo_old, const T4 &accel_old) const
 interpolate all derived quantities in one call
 
FieldState corrected_value (const TimeInfo &t, const std::vector< FieldState > &states) const override
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
FieldState corrected_dot (const TimeInfo &t, const std::vector< FieldState > &states) const override
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
FieldState corrected_ddot (const TimeInfo &, const std::vector< FieldState > &states) const override
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
- Public Member Functions inherited from smith::TimeIntegrationRule
virtual ~TimeIntegrationRule ()
 destructor
 

Static Public Attributes

static constexpr int num_states = 4
 number of states required by this rule (compile-time)
 

Detailed Description

encodes rules for time discretizing second order odes (involving first and second time derivatives). When solving f(u, u_dot, u_dot_dot, t) = 0 this class provides the current discrete approximation for u, u_dot, and u_dot_dot as a function of (u^{n+1},u^n,u_dot^n,u_dot_dot^n).

Definition at line 238 of file time_integration_rule.hpp.


The documentation for this struct was generated from the following file: