approach.h#
Functions
-
void check_ca_or_impact(PropSimulation *propSim, const real &tOld, const std::vector<real> xIntegOld, const real &t, const std::vector<real> xInteg)#
Check for a close approach or impact between two bodies.
- Parameters:
propSim – [inout] PropSimulation object for the integration.
tOld – [in] Time at the previous integrator epoch.
xIntegOld – [in] State at the previous integrator epoch.
t – [in] Time at the current integrator epoch.
xInteg – [in] State at the current integrator epoch.
-
void ca_rdot_calc(PropSimulation *propSim, const size_t &i, const size_t &j, const real &t, real &rDot)#
Compute relative radial velocity to check for a close approach.
- Parameters:
propSim – [in] PropSimulation object for the integration.
i – [in] Index of the first body.
j – [in] Index of the second body.
t – [in] Time at the current integrator epoch.
rDot – [out] Relative radial velocity.
-
void impact_r_calc(PropSimulation *propSim, const size_t &i, const size_t &j, const real &t, real &r)#
Compute relative distance to check for an impact.
- Parameters:
propSim – [in] PropSimulation object for the integration.
i – [in] Index of the first body.
j – [in] Index of the second body.
t – [in] Time at the current integrator epoch.
r – [out] Relative distance.
-
std::vector<real> get_rel_state(PropSimulation *propSim, const size_t &i, const size_t &j, const real &t)#
Compute relative state of a body at a given time.
- Parameters:
propSim – [in] PropSimulation object for the integration.
i – [in] Index of the first body.
j – [in] Index of the second body.
t – [in] Time to compute the relative state.
- Returns:
xRel Relative state of the body.
-
void get_bplane_partials(PropSimulation *propSim, CloseApproachParameters *ca, const real &mu, const real &radius)#
Compute partials of B-plane parameters.
- Parameters:
propSim – [in] PropSimulation object for the integration.
ca – [inout] CloseApproachParameters object for the close approach.
mu – [in] Gravitational parameter of the central body.
radius – [in] Radius of the central body.
-
void get_ca_or_impact_time(PropSimulation *propSim, const size_t &i, const size_t &j, const real &x1, const real &x2, real &tCA, void (*zero_func)(PropSimulation*, const size_t&, const size_t&, const real&, real&))#
Compute the time of close approach or impact using Brent’s method for root finding in a bracketed interval.
- Parameters:
propSim – [in] PropSimulation object for the integration.
i – [in] Index of the first body.
j – [in] Index of the second body.
x1 – [in] Initial time of the bracketed interval.
x2 – [in] Final time of the bracketed interval.
tCA – [out] Time of close approach or impact.
zero_func – [in] Function to compute the zero of (rDot for CA or r for impacts).