Class EphemerisApp¶
Defined in File ephemeris_app.h
Inheritance Relationships¶
Base Type¶
public lupnt::Application(Class Application)
Class Documentation¶
-
class EphemerisApp : public lupnt::Application¶
Coordinator application for the ephemeris/almanac datasize-accuracy study (Example 9), hosted on a thin
EphemerisManageragent (mirroring ex8’sSurfaceStationManagerhosting aGroundOdtsApp).Its single scheduled
Stepruns the whole body of the (former) monolithicEphemerisSimulation::Run(), in the exact same computation order so the numerics are preserved bit-for-bit (the study is fully deterministic — no RNG):propagate a lunar-satellite truth trajectory (Moon gravity + Earth/Sun),
optionally convert it from the inertial propagate frame to the rotating output frame (e.g.
MOON_CI->MOON_PA),for each
fit_window_minutesentry, samplenum_windowswindows, fit and quantize theLansEphemeris/LansAlmanacmodels, and size the broadcast bit budget.
The truth dynamics are built app-internally (exactly as the monolith did). Results are exposed through
GetResults()(anEphemerisResults), identical to the monolith’s.Public Functions
-
EphemerisApp() = default¶
-
explicit EphemerisApp(Config &config)¶
Construct from a YAML
application:block (self-driving, hosted path).
-
explicit EphemerisApp(EphemerisSimulationConfig config)¶
Construct from an
EphemerisSimulationConfigstruct (unit tests / A-B checks).
-
virtual void Setup() override¶
Schedule the single one-shot
Step(APPLICATION priority) on the owning simulation’s event queue.
-
virtual void Step(Real t) override¶
Run the whole datasize/accuracy sweep (lazily initializing on first call, so a programmatically-set config is honored). Idempotent: subsequent calls are no-ops.
-
inline virtual void Log(Real) override¶
Log this application’s current state/diagnostics to the DataLogger.
Base implementation only emits a debug message. Called once after Setup() and thereafter from Agent::Log(t) (which forwards to
application_->Log(time)each time the owning agent logs). Derived classes (e.g. LanderNavApp::Log) override this to additionally log their Filter’s state/covariance and any error metrics.- Parameters:
t – Current simulation time [s, since simulation epoch]
-
inline const EphemerisSimulationConfig &GetConfig() const¶
-
inline const EphemerisResults &GetResults() const¶