Skip to content

File AtmosphericForce.hpp

File List > astrea > astro > astro > propagation > force_models > AtmosphericForce.hpp

Go to the documentation of this file

#pragma once

#include <map>
#include <tuple>

#include <units/units.hpp>

#include <astro/astro.fwd.hpp>
#include <astro/propagation/force_models/Force.hpp>

namespace astrea {
namespace astro {

class AtmosphericForce : public Force {

  public:
    AtmosphericForce() = default;

    ~AtmosphericForce() = default;

    CartesianVector<Acceleration, frames::earth::icrf> compute_force(const State& state, const Vehicle& vehicle) const override;

  private:
    const Density find_atmospheric_density(const State& state, const std::unique_ptr<CelestialBody>& center) const;
};

} // namespace astro
} // namespace astrea