3#include <janus/janus.hpp>
17template <
typename Scalar>
32template <
typename Scalar>
48template <
typename Scalar>
50 double g0 = 9.80665) {
51 return thrust / (mdot * g0);
65template <
typename Scalar>
66Scalar
delta_v(
const Scalar &Ve,
const Scalar &m0,
const Scalar &mf) {
67 return Ve * janus::log(m0 / mf);
81template <
typename Scalar>
84 return m0 * (1.0 - janus::exp(-
delta_v / Ve));
97template <
typename Scalar>
112template <
typename Scalar>
Scalar specific_impulse(const Scalar &thrust, const Scalar &mdot, double g0=9.80665)
Calculates specific impulse from thrust, mass flow rate, and gravity.
Definition Rocket.hpp:49
Scalar exhaust_velocity(const Scalar &Isp, double g0=9.80665)
Calculates effective exhaust velocity from specific impulse.
Definition Rocket.hpp:33
Scalar mass_flow_rate(const Scalar &thrust, const Scalar &Ve)
Calculates mass flow rate from thrust and exhaust velocity.
Definition Rocket.hpp:98
Scalar burn_time(const Scalar &propellant_mass, const Scalar &mdot)
Calculates burn time for a given propellant mass and flow rate.
Definition Rocket.hpp:113
Scalar delta_v(const Scalar &Ve, const Scalar &m0, const Scalar &mf)
Calculates Delta-V using the Tsiolkovsky rocket equation.
Definition Rocket.hpp:66
Scalar thrust_from_mdot(const Scalar &mdot, const Scalar &Ve)
Calculates thrust from mass flow rate and effective exhaust velocity.
Definition Rocket.hpp:18
Scalar propellant_mass(const Scalar &delta_v, const Scalar &m0, const Scalar &Ve)
Calculates required propellant mass for a given Delta-V.
Definition Rocket.hpp:82