Class NumericalDynamics¶
Defined in File numerical_orbit_dynamics.h
Inheritance Relationships¶
Base Type¶
public lupnt::Dynamics(Class Dynamics)
Derived Types¶
public lupnt::CartesianTwoBodyDynamics(Class CartesianTwoBodyDynamics)public lupnt::J2KeplerianDynamics(Class J2KeplerianDynamics)public lupnt::JToCartTwoBodyDynamics(Class JToCartTwoBodyDynamics)public lupnt::JointOrbitClockDynamics(Class JointOrbitClockDynamics)public lupnt::MoonMeanDynamics(Class MoonMeanDynamics)public lupnt::NBodyDynamics(Class NBodyDynamics)
Class Documentation¶
-
class NumericalDynamics : public lupnt::Dynamics¶
Subclassed by lupnt::CartesianTwoBodyDynamics, lupnt::J2KeplerianDynamics, lupnt::JToCartTwoBodyDynamics, lupnt::JointOrbitClockDynamics, lupnt::MoonMeanDynamics, lupnt::NBodyDynamics
Public Functions
-
NumericalDynamics()¶
-
void SetIntegrator(IntegratorType integ)¶
-
void SetIntegratorParams(IntegratorParams params)¶
-
inline Integrator *GetIntegrator()¶
-
virtual State Propagate(const State &x0, Real t0, Real tf, const State *u = nullptr) override¶
Propagate the state from
t0totfwithout computing a state transition matrix.This is the core propagation entry point implemented by every concrete dynamics class (e.g. NumericalDynamics::Propagate, AnalyticalDynamics::Propagate, ClockDynamics::Propagate). It is called once per integration/measurement step by simulation drivers in applications/ and by agents/ to advance an object’s true or estimated state.
- Parameters:
x0 – Initial state at time
t0(layout/units defined by the subclass).t0 – Initial epoch [s, TDB since J2000 for orbit/attitude dynamics].
tf – Final epoch [s, TDB since J2000 for orbit/attitude dynamics].
u – Optional control/forcing input (e.g. thrust, RTN reference state); nullptr if unused.
- Returns:
Propagated state at time
tf.
-
inline virtual StateType GetStateType() const override¶
Return the
StateTypetag of the state vector this dynamics model operates on (e.g.Cart6::TYPE,Attitude::TYPE,ClockState3::TYPE).Used by state-converters and asset wiring code to verify that a dynamics object is paired with a compatible state representation.
-
virtual State Propagate(const State &x0, Real t0, Real tf, const State *u, MatXd *stm)¶
Propagate the state and compute the state transition matrix (STM) d(xf)/d(x0) via automatic differentiation.
Default implementation: if
stm == nullptr, forwards to the no-STMPropagateoverload; otherwise wrapsPropagate(x0, t0, tf, u)in an autodiff Jacobian (jacobian(...)) with respect tox0. Used by filters (filters/) that need the linearized state transition for covariance propagation (e.g. EKF/UKF time updates).- Parameters:
x0 – Initial state at time
t0.t0 – Initial epoch [s, TDB since J2000].
tf – Final epoch [s, TDB since J2000].
u – Optional control/forcing input; nullptr if unused.
stm – Output: state transition matrix d(xf)/d(x0); left unmodified if nullptr.
- Returns:
Propagated state at time
tf.
-
virtual MatX Propagate(const State &x0, const VecX &tfs, const State *u = nullptr)¶
Propagate the state to a sequence of output epochs.
Repeatedly calls
Propagate(x0, t0, tf, u)between consecutive entries oftfs, accumulating each result as a row of the returned matrix. Used by applications/ and analysis scripts to generate a full trajectory time history in one call, with optional progress-bar output (see SetPrintProgress).- Parameters:
x0 – Initial state at
tfs(0).tfs – Vector of output epochs [s, TDB since J2000], including the initial epoch as
tfs(0).u – Optional control/forcing input applied at every step; nullptr if unused.
- Returns:
Matrix whose i-th row is the propagated state at
tfs(i).
-
NumericalDynamics()¶