12#ifndef WSFINTEGRATINGPROPAGATOR_HPP
13#define WSFINTEGRATINGPROPAGATOR_HPP
20#include "UtCalendar.hpp"
21#include "UtCloneablePtr.hpp"
24#include "UtOrbitalState.hpp"
34#include "wsf_space_export.h"
50 bool Initialize(
const UtCalendar& aInitialTime)
override;
68 virtual std::unique_ptr<MassProvider>
Decay()
const = 0;
72 void Propagate(
const UtCalendar& aTime)
override;
83 aProp.mAdvancing =
true;
86 ~AdvancingHandle() { mProp.mAdvancing =
false; }
92 bool IsAdvancing()
const {
return mAdvancing; }
94 const WsfScenario& mScenario;
95 ut::OrbitalState mPropagatedOrbitalState;
96 UtCloneablePtr<WsfOrbitalIntegrator> mIntegratorPtr{
nullptr};
97 UtCloneablePtr<WsfOrbitalDynamics> mDynamicsPtr{
nullptr};
98 std::unique_ptr<MassProvider> mMassProvider{
nullptr};
99 bool mAccelerationValid{
false};
100 bool mKinematicInput{
false};
101 bool mAdvancing{
false};
Definition WsfIntegratingPropagator.hpp:63
virtual double GetMass() const =0
virtual std::unique_ptr< MassProvider > Decay() const =0
virtual ~MassProvider()=default
Definition WsfIntegratingPropagator.hpp:37
WsfIntegratingPropagator * Clone() const override
Definition WsfIntegratingPropagator.cpp:233
WsfIntegratingPropagator & operator=(const WsfIntegratingPropagator &aOther)=delete
bool SetOrbitalDynamics(std::unique_ptr< WsfOrbitalDynamics > aDynamicsPtr)
Definition WsfIntegratingPropagator.cpp:429
double GetDynamicalMass() const
Definition WsfIntegratingPropagator.cpp:394
void Propagate(const UtCalendar &aTime) override
Definition WsfIntegratingPropagator.cpp:399
std::unique_ptr< WsfOrbitalDynamics > GetOrbitalDynamicsClone() const
Definition WsfIntegratingPropagator.cpp:419
bool Initialize(const UtCalendar &aInitialTime) override
Definition WsfIntegratingPropagator.cpp:238
WsfIntegratingPropagator & operator=(WsfIntegratingPropagator &&aOther)=delete
WsfIntegratingPropagator(const WsfScenario &aScenario)
Definition WsfIntegratingPropagator.cpp:191
bool SetOrbitalIntegrator(std::unique_ptr< WsfOrbitalIntegrator > aIntegratorPtr)
Definition WsfIntegratingPropagator.cpp:462
WsfIntegratingPropagator(WsfIntegratingPropagator &&aOther)=delete
bool InitializeDynamics(const WsfSimulation *aSimulationPtr, const UtCalendar &aInitialTime)
Definition WsfIntegratingPropagator.cpp:270
void UpdateOrbitalState() override
Definition WsfIntegratingPropagator.cpp:474
bool HyperbolicPropagationAllowed() const override
Definition WsfIntegratingPropagator.hpp:74
std::unique_ptr< WsfOrbitalIntegrator > GetOrbitalIntegratorClone() const
Definition WsfIntegratingPropagator.cpp:452
static WsfOrbitalPropagatorTypes::FactoryPtr ObjectFactory(WsfScenario &aScenario)
Definition WsfIntegratingPropagator.cpp:221
bool ProcessInput(UtInput &aInput) override
Definition WsfIntegratingPropagator.cpp:297
void SetSpaceMover(WsfSpaceMoverBase *aMoverPtr) override
Definition WsfIntegratingPropagator.cpp:359
~WsfIntegratingPropagator() override
Definition WsfIntegratingPropagator.cpp:219
WsfNonClassicalOrbitalPropagator(std::unique_ptr< ut::OrbitalState > aInitialOrbitalStatePtr)
Definition WsfNonClassicalOrbitalPropagator.cpp:19
std::function< std::unique_ptr< UtOrbitalPropagatorBase >(const std::string &)> FactoryPtr
Definition WsfOrbitalPropagatorTypes.hpp:35
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfSpaceMoverBase.hpp:70