Skip to content

File EquationsOfMotion.hpp

File List > astrea > astro > astro > propagation > equations_of_motion > EquationsOfMotion.hpp

Go to the documentation of this file

#pragma once

#include <astro/astro.fwd.hpp>
#include <astro/propagation/equations_of_motion/state_transition_matrix/StateTransitionMatrix.hpp>
#include <astro/systems/AstrodynamicsSystem.hpp>

namespace astrea {
namespace astro {

class EquationsOfMotion {
  public:
    EquationsOfMotion() = default;

    virtual ~EquationsOfMotion() = default;

    virtual OrbitalElementPartials operator()(const State& state, const Vehicle& vehicle) const = 0;

    virtual StateTransitionMatrix compute_stm(const State& state, const Vehicle& vehicle) const = 0;

    virtual constexpr std::size_t get_expected_set_id() const = 0;
};

} // namespace astro
} // namespace astrea