WarpTwin
Documentation for WarpTwin models and classes.
Loading...
Searching...
No Matches
kepler.h
Go to the documentation of this file.
1/******************************************************************************
2* Copyright (c) ATTX INC 2025. All Rights Reserved.
3*
4* This software and associated documentation (the "Software") are the
5* proprietary and confidential information of ATTX INC. The Software is
6* furnished under a license agreement between ATTX and the user organization
7* and may be used or copied only in accordance with the terms of the agreement.
8* Refer to 'license/attx_license.adoc' for standard license terms.
9*
10* EXPORT CONTROL NOTICE: THIS SOFTWARE MAY INCLUDE CONTENT CONTROLLED UNDER THE
11* INTERNATIONAL TRAFFIC IN ARMS REGULATIONS (ITAR) OR THE EXPORT ADMINISTRATION
12* REGULATIONS (EAR99). No part of the Software may be used, reproduced, or
13* transmitted in any form or by any means, for any purpose, without the express
14* written permission of ATTX INC.
15******************************************************************************/
16/*
17Kepler header file
18-------------------
19This file contains a number of utilities for calculating parameters associated
20with keplerian orbits.
21
22Author: Alex Reynolds
23*/
24#ifndef UTILS_KEPLER_H
25#define UTILS_KEPLER_H
26
28#include "core/mathmacros.h"
29
30namespace warptwin {
31
40 int twoBodyPropagate(double time, double mu,
41 CartesianVector3 pos_initial, CartesianVector3 vel_initial,
42 CartesianVector3 &pos_final, CartesianVector3 &vel_final);
43
51 int mean2eccentric(double mean_anomaly, double eccentricity, double &eccentric_anomaly,
52 double tol, int max_iter);
53
59 int eccentric2true(double eccentric_anomaly, double eccentricity, double &true_anomaly);
60
66 int true2eccentric(double true_anomaly, double eccentricity, double &eccentric_anomaly);
67
73 int eccentric2mean(double eccentric_anomaly, double eccentricity, double &mean_anomaly);
74}
75
76#endif
#define CartesianVector3
Definition mathmacros.h:43
Class to propagate CR3BP dynamics in characteristic units.
Definition statistics.hpp:22
int twoBodyPropagate(double time, double mu, clockwerk::CartesianVector< 3 > pos_initial, clockwerk::CartesianVector< 3 > vel_initial, clockwerk::CartesianVector< 3 > &pos_final, clockwerk::CartesianVector< 3 > &vel_final)
Function to propagate a body between two points in time using a keplerian orbit.
Definition kepler.cpp:26
int true2eccentric(double true_anomaly, double eccentricity, double &eccentric_anomaly)
Function to convert true anomaly to eccentric anomaly.
Definition kepler.cpp:86
int eccentric2mean(double eccentric_anomaly, double eccentricity, double &mean_anomaly)
Function to convert eccentric anomaly to mean anomaly.
Definition kepler.cpp:93
int eccentric2true(double eccentric_anomaly, double eccentricity, double &true_anomaly)
Function to convert eccentric anomaly to true anomaly.
Definition kepler.cpp:79
int mean2eccentric(double mean_anomaly, double eccentricity, double &eccentric_anomaly, double tol, int max_iter)
Function to convert mean anomaly to eccentric anomaly.
Definition kepler.cpp:54