public final class InterplanetaryUtils extends Object
| Modifier and Type | Method and Description |
|---|---|
static List<double[]> |
computeEscapeDV(double[] sma,
double[] ecc,
double[] vinf)
Compute the instantaneous DV needed at the perigee to reach each targeted hyperbolic orbit given the associated
elliptic orbit around the Earth.
|
static List<double[]> |
computeEscapeDV(double[] sma,
double[] ecc,
double[] vinf,
double[] trueAnomaly,
double mu)
Compute the instantaneous DV needed to reach each targeted hyperbolic orbit given the associated elliptic orbit.
|
static double[] |
computeEscapeDV(double sma,
double ecc,
double vinf)
Compute the instantaneous DV needed at the perigee to reach the targeted hyperbolic orbit from the current
elliptic orbit around the Earth.
|
static double[] |
computeEscapeDV(double sma,
double ecc,
double vinf,
double trueAnomaly,
double mu)
Compute the instantaneous DV needed to reach the targeted hyperbolic orbit from the current elliptic orbit.
|
static List<Pair<Orbit,Double>> |
computeEscapeDV(List<Orbit> orbitList,
double[] vinf)
Compute the instantaneous DV needed to reach each targeted hyperbolic orbit given the associated elliptic orbit
that is provided.
|
static Pair<Orbit,Double> |
computeEscapeDV(Orbit orbit,
double vinf)
Compute the instantaneous DV needed to reach the targeted hyperbolic orbit given the provided elliptic orbit.
|
static List<double[]> |
computeInsertionDV(double[] vinf,
double[] rph,
double[] sma)
Compute the instantaneous DV needed at the perigee to reach each targeted elliptic orbit given the associated
hyperbolic orbit around the Earth.
|
static List<double[]> |
computeInsertionDV(double[] vinf,
double[] rph,
double[] sma,
double[] trueAnomaly,
double mu)
Compute the instantaneous DV needed to reach each targeted elliptic orbit given the associated hyperbolic orbit.
|
static double[] |
computeInsertionDV(double vinf,
double rph,
double sma)
Compute the instantaneous DV needed at the perigee to reach the targeted elliptic orbit from the current
hyperbolic orbit around the Earth.
|
static double[] |
computeInsertionDV(double vinf,
double rph,
double sma,
double trueAnomaly,
double mu)
Compute the instantaneous DV needed to reach the targeted elliptic orbit from the current hyperbolic orbit.
|
static List<Pair<Orbit,Double>> |
computeInsertionDV(List<Orbit> orbitList,
double[] sma)
Compute the instantaneous DV needed to reach each targeted elliptic orbit given the associated hyperbolic orbit
that is provided.
|
static Pair<Orbit,Double> |
computeInsertionDV(Orbit orbit,
double sma)
Compute the instantaneous DV needed to reach the targeted elliptic orbit given the provided hyperbolic orbit.
|
static double |
computeSphereInfluenceRadius(CelestialBody body1,
CelestialBody body2,
AbsoluteDate date)
Compute the sphere of influence (SOI) radius around the lightest body for the provided body couple at the given
date.
|
static double[] |
computeSphereInfluenceRadius(double[] mu1,
double[] mu2,
double[] distance)
Compute the sphere of influence (SOI) radius around the lightest body (smallest mu) given the provided mu couples
and distances.
|
static double |
computeSphereInfluenceRadius(double mu1,
double mu2,
double distance)
Compute the sphere of influence (SOI) radius around the lightest body (smallest mu) given the provided mu values
and distance.
|
static double[] |
computeSphereInfluenceRadius(List<CelestialBody> bodiesList1,
List<CelestialBody> bodiesList2,
List<AbsoluteDate> dates)
Compute the sphere of influence (SOI) radius around the lightest body for each body couple at a given date.
|
public static double computeSphereInfluenceRadius(double mu1,
double mu2,
double distance)
throws PatriusException
Inspired by the Celestlab method CL_ip_sphereInfluence.
mu1 - Gravitational parameter for the first body (m^3/s^2)mu2 - Gravitational parameter for the second body (m^3/s^2)distance - Distance between the two bodies (m)PatriusException - if one of the gravitational parameters is not strictly positivepublic static double[] computeSphereInfluenceRadius(double[] mu1,
double[] mu2,
double[] distance)
throws PatriusException
Inspired by the Celestlab method CL_ip_sphereInfluence.
mu1 - Array of gravitational parameter for the first body of the couple (m^3/s^2)mu2 - Array of gravitational parameter for the second body of the couple (m^3/s^2)distance - Array of distances between the two bodies of the couple (m)PatriusException - if the lists size don't matchpublic static double computeSphereInfluenceRadius(CelestialBody body1, CelestialBody body2, AbsoluteDate date) throws PatriusException
Inspired by the Celestlab method CL_ip_sphereInfluence.
body1 - Celestial body (first part of the couple)body2 - Celestial body (second part of the couple)date - Date at which we want to compute the SOI radiusPatriusException - if one of the gravitational parameters is not strictly positivepublic static double[] computeSphereInfluenceRadius(List<CelestialBody> bodiesList1, List<CelestialBody> bodiesList2, List<AbsoluteDate> dates) throws PatriusException
Inspired by the Celestlab method CL_ip_sphereInfluence.
bodiesList1 - List of celestial bodies (first part of the couple)bodiesList2 - List of celestial bodies (second part of the couple)dates - List of dates at which we want to compute the SOI radiusPatriusException - if the lists size don't matchpublic static double[] computeEscapeDV(double sma,
double ecc,
double vinf)
throws PatriusException
Constants.EGM96_EARTH_MU m^3/s^2.
Inspired by the Celestlab method CL_ip_escapeDv.
sma - Semi-major axis of the initial elliptic orbit (m)ecc - Eccentricity of the initial elliptic orbitvinf - Target hyperbolic excess velocity (m/s)PatriusException - if sma or vinf are negative or the eccentricity doesn't correspond to an elliptic orbitpublic static double[] computeEscapeDV(double sma,
double ecc,
double vinf,
double trueAnomaly,
double mu)
throws PatriusException
Inspired by the Celestlab method CL_ip_escapeDv.
sma - Semi-major axis of the initial elliptic orbit (m)ecc - Eccentricity of the initial elliptic orbitvinf - Target hyperbolic excess velocity (m/s)trueAnomaly - True anomaly on the elliptic orbit (rad)mu - Gravitational parameter of the central first body (m^3/s^2)PatriusException - if sma, vinf or mu are negative or the eccentricity doesn't correspond to an elliptic
orbitpublic static List<double[]> computeEscapeDV(double[] sma, double[] ecc, double[] vinf) throws PatriusException
Constants.EGM96_EARTH_MU m^3/s^2.
Inspired by the Celestlab method CL_ip_escapeDv.
sma - Array of semi-major axis value for each initial elliptic orbit (m)ecc - Array of eccentricity for each initial elliptic orbitvinf - Array of targeted hyperbolic excess velocity (m/s).PatriusException - if all provided arrays don't have the same size (except for the case where vinf contains
only 1 value)public static List<double[]> computeEscapeDV(double[] sma, double[] ecc, double[] vinf, double[] trueAnomaly, double mu) throws PatriusException
Inspired by the Celestlab method CL_ip_escapeDv.
sma - Array of semi-major axis value for each initial elliptic orbit (m)ecc - Array of eccentricity for each initial elliptic orbitvinf - Array of targeted hyperbolic excess velocity (m/s).trueAnomaly - Array of true anomaly for each initial elliptic orbit (rad)mu - Gravitational parameter of the central first body (m^3/s^2)PatriusException - if all provided arrays don't have the same size (except for the case where vinf contains
only 1 value)public static Pair<Orbit,Double> computeEscapeDV(Orbit orbit, double vinf) throws PatriusException
Inspired by the Celestlab method CL_ip_escapeDv.
orbit - Initial elliptic orbitvinf - Targeted hyperbolic excess velocity (m/s)PatriusException - if sma, vinf or mu are negative or the eccentricity doesn't correspond to an elliptic
orbitpublic static List<Pair<Orbit,Double>> computeEscapeDV(List<Orbit> orbitList, double[] vinf) throws PatriusException
Inspired by the Celestlab method CL_ip_escapeDv.
orbitList - List of Orbit representing the initial elliptic orbitsvinf - Array of targeted hyperbolic excess velocity (m/s).PatriusException - if all provided arrays don't have the same size (except for the case where vinf contains
only 1 value)public static double[] computeInsertionDV(double vinf,
double rph,
double sma)
throws PatriusException
Constants.EGM96_EARTH_MU m^3/s^2.
Inspired by the Celestlab method CL_ip_insertionDv.
vinf - Hyperbolic excess velocity of the initial orbit (m/s)rph - Radius of the periapsis of the target orbit (m)sma - Semi-major axis of the targeted elliptic orbit (m)PatriusException - if vinf, rph or sma are negativepublic static double[] computeInsertionDV(double vinf,
double rph,
double sma,
double trueAnomaly,
double mu)
throws PatriusException
Inspired by the Celestlab method CL_ip_insertionDv.
vinf - Hyperbolic excess velocity of the initial orbit (m/s)rph - Radius of the periapsis of the target orbit (m)sma - Semi-major axis of the targeted elliptic orbit (m)trueAnomaly - True anomaly on the hyperbolic orbit (rad)mu - Gravitational parameter of the central first body (m^3/s^2)PatriusException - if vinf, rph, sma or mu are negativepublic static List<double[]> computeInsertionDV(double[] vinf, double[] rph, double[] sma) throws PatriusException
Constants.EGM96_EARTH_MU m^3/s^2.
Inspired by the Celestlab method CL_ip_insertionDv.
vinf - Array of hyperbolic excess velocity for each initial orbit (m/s)rph - Array containing the radius of the periapsis value of each initial orbit (m)sma - Array of semi-major axis of the targeted elliptic orbit (m).PatriusException - if all provided arrays don't have the same size (except for the case where sma contains
only 1 value)public static List<double[]> computeInsertionDV(double[] vinf, double[] rph, double[] sma, double[] trueAnomaly, double mu) throws PatriusException
Inspired by the Celestlab method CL_ip_insertionDv.
vinf - Array of hyperbolic excess velocity for each initial orbit (m/s)rph - Array containing the radius of the periapsis value of each initial orbit (m)sma - Array of semi-major axis of the targeted elliptic orbit (m).trueAnomaly - Array of true anomaly for each initial hyperbolic orbit (rad)mu - Gravitational parameter of the central first body (m^3/s^2)PatriusException - if all provided arrays don't have the same size (except for the case where sma contains
only 1 value)public static Pair<Orbit,Double> computeInsertionDV(Orbit orbit, double sma) throws PatriusException
Inspired by the Celestlab method CL_ip_insertionDv.
orbit - Initial hyperbolic orbitsma - Semi-major axis of the targeted elliptic orbit (m)PatriusException - if the initial orbit isn't hyperbolic (hence, it describes a positive semi-major
axis)public static List<Pair<Orbit,Double>> computeInsertionDV(List<Orbit> orbitList, double[] sma) throws PatriusException
Inspired by the Celestlab method CL_ip_insertionDv.
orbitList - List of Orbit representing the initial hyperbolic orbitssma - Array of semi-major axis of the targeted elliptic orbit (m).PatriusException - if all provided arrays don't have the same size (except for the case where sma contains only 1 value)Copyright © 2025 CNES. All rights reserved.