Skip to content

Commit

Permalink
copyright and credit notices; gr15 -> ias15
Browse files Browse the repository at this point in the history
  • Loading branch information
rahil-makadia committed Dec 20, 2024
1 parent c27907c commit ecd69b0
Show file tree
Hide file tree
Showing 33 changed files with 658 additions and 16 deletions.
4 changes: 2 additions & 2 deletions docs/source/api_cpp.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ C++ API
cppsummary/approach
cppsummary/elements
cppsummary/force
cppsummary/gr15
cppsummary/ias15
cppsummary/interpolate
cppsummary/observe
cppsummary/parallel
Expand All @@ -32,7 +32,7 @@ C++ API
<tr class="row-odd"><td><p><a class="reference internal" href="cppsummary/force.html" title="force.h"><code class="xref py py-obj docutils literal notranslate"><span class="pre">force.h</span></code></a></p></td>
<td><p>GRSS C++ force function submodule</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="cppsummary/gr15.html" title="gr15.h"><code class="xref py py-obj docutils literal notranslate"><span class="pre">gr15.h</span></code></a></p></td>
<tr class="row-even"><td><p><a class="reference internal" href="cppsummary/ias15.html" title="ias15.h"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ias15.h</span></code></a></p></td>
<td><p>GRSS C++ Gauss-Radau 15<sup>th</sup> order integrator submodule</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="cppsummary/interpolate.html" title="interpolate.h"><code class="xref py py-obj docutils literal notranslate"><span class="pre">interpolate.h</span></code></a></p></td>
Expand Down
6 changes: 0 additions & 6 deletions docs/source/cppsummary/gr15.rst

This file was deleted.

6 changes: 6 additions & 0 deletions docs/source/cppsummary/ias15.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ias15.h
=======

.. doxygenfile:: ias15.h
:project: GRSS

10 changes: 10 additions & 0 deletions docs/source/prop.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,18 @@ The propagator module also has the ability to calculate apparent states of any i

This ability to calculate apparent states is used to calculate optical observables (Right Ascension and Declination). Furthermore, the propagator suite can also calculate range observables (delay and doppler). The delay measurement is trivially returned from the light-time calculation. The doppler measurable, however, is calculated using a dedicated doppler measurement model. This entire codebase is written in C++ and a Python binding is using `pybind11 <https://pybind11.readthedocs.io/en/stable/>`_.

Current and previous versions of the integrator are a hybrid amalgamation of the work done in the following sources:

#. `An efficient integrator that uses Gauss-Radau spacings <https://doi.org/10.1017/S0252921100083913>`_
#. `IAS15: a fast, adaptive, high-order integrator for gravitational dynamics, accurate to machine precision over a billion orbits <https://doi.org/10.1093/mnras/stu2164>`_
#. `Moving Planets Around: An Introduction to N-Body Simulations Applied to Exoplanetary Systems <https://mitpress.mit.edu/9780262539340/moving-planets-around/>`_
#. `A new timestep criterion for N-body simulations <https://doi.org/10.21105/astro.2401.02849>`_

.. rubric:: References
.. [#] Rein, H. and Spiegel D.S., "IAS15: a fast, adaptive, high-order integrator for gravitational dynamics, accurate to machine precision over a billion orbits", Monthly Notices of the Royal Astronomical Society, Volume 446, Issue 2, Pages 1424-1437, 2015. https://doi.org/10.1093/mnras/stu2164.
.. [#] Einstein, A., Infeld, L., and Hoffmann, B., “The Gravitational Equations and the Problem of Motion”, Annals of Mathematics, Volume 39, Issue 1, Pages 65-100, 1938. https://doi.org/10.2307/1968714.
.. [#] Moyer, T.D., "Mathematical formulation of the Double Precision Orbit Determination Program (DPODP)", Jet Propulsion Laboratory Technical Report 32-1527, 1971. https://ntrs.nasa.gov/citations/19710017134.
.. [#] Marsden, B.G., Sekanina, Z., and Yeomans, D.K., “Comets and nongravitational forces. V”, The Astronomical Journal, Volume 78, Issue 2, Pages 211-225, 1973. https://doi.org/10.1086/111402.
.. [#] Everhart, E., “An efficient integrator that uses Gauss-Radau spacings”, Dynamics of Comets: Their Origin and Evolution, Proceedings of IAU Colloquium 83, Pages 185-202, 1985. https://doi.org/10.1017/S0252921100083913.
.. [#] Roa, J., Hamers, A.S., Cai, M.X., and Leigh, N.W.C., "Moving Planets Around: An Introduction to N-Body Simulations Applied to Exoplanetary Systems", MIT Press, 2020. https://mitpress.mit.edu/9780262539340/moving-planets-around/.
.. [#] Pham, D., Rein, H., and Spiegel, D.S., “A new timestep criterion for N-body simulations”, The Open Journal of Astrophysics 7, 2024. https://doi.org/10.21105/astro.2401.02849.
22 changes: 22 additions & 0 deletions include/approach.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
/**
* @file approach.h
* @brief Header file for close approach and impact detection.
* @author Rahil Makadia <[email protected]>
*
* @section LICENSE
* Copyright (C) 2022-2025 Rahil Makadia
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see <https://www.gnu.org/licenses>.
*/

#ifndef CLOSEAPPROACH_H
#define CLOSEAPPROACH_H

Expand Down
22 changes: 22 additions & 0 deletions include/elements.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
/**
* @file elements.h
* @brief Header file for the orbital elements.
* @author Rahil Makadia <[email protected]>
*
* @section LICENSE
* Copyright (C) 2022-2025 Rahil Makadia
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see <https://www.gnu.org/licenses>.
*/

#ifndef ELEMENTS_H
#define ELEMENTS_H

Expand Down
22 changes: 22 additions & 0 deletions include/force.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
/**
* @file force.h
* @brief Header file for the force model.
* @author Rahil Makadia <[email protected]>
*
* @section LICENSE
* Copyright (C) 2022-2025 Rahil Makadia
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see <https://www.gnu.org/licenses>.
*/

#ifndef FORCE_H
#define FORCE_H

Expand Down
24 changes: 23 additions & 1 deletion include/grss.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
/**
* @file grss.h
* @brief Top level header file for GRSS
* @author Rahil Makadia <[email protected]>
*
* @section LICENSE
* Copyright (C) 2022-2025 Rahil Makadia
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see <https://www.gnu.org/licenses>.
*/

#ifndef GRSS_H
#define GRSS_H

Expand All @@ -15,7 +37,7 @@ void PropSimulation::integrate() {
// integrate the system
this->map_ephemeris();
this->preprocess();
gr15(this);
ias15(this);
if (!this->unsafePersistentMemoryMap) {
this->unmap_ephemeris();
}
Expand Down
28 changes: 25 additions & 3 deletions include/gr15.h → include/ias15.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
#ifndef GR15_H
#define GR15_H
/**
* @file ias15.h
* @brief Header file for the IAS15 integrator.
* @author Rahil Makadia <[email protected]>
*
* @section LICENSE
* Copyright (C) 2022-2025 Rahil Makadia
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see <https://www.gnu.org/licenses>.
*/

#ifndef IAS15_H
#define IAS15_H

#include "approach.h"

Expand Down Expand Up @@ -102,6 +124,6 @@ void event_timestep_check(PropSimulation *propSim, real &dt);
/**
* @brief 15th-order Gauss-Radau integrator for the PropSimulation.
*/
void gr15(PropSimulation *propSim);
void ias15(PropSimulation *propSim);

#endif
22 changes: 22 additions & 0 deletions include/interpolate.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
/**
* @file interpolate.h
* @brief Header file for integrator interpolation functions.
* @author Rahil Makadia <[email protected]>
*
* @section LICENSE
* Copyright (C) 2022-2025 Rahil Makadia
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see <https://www.gnu.org/licenses>.
*/

#ifndef INTERPOLATE_H
#define INTERPOLATE_H

Expand Down
22 changes: 22 additions & 0 deletions include/observe.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
/**
* @file observe.h
* @brief Header file for the observable computations.
* @author Rahil Makadia <[email protected]>
*
* @section LICENSE
* Copyright (C) 2022-2025 Rahil Makadia
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see <https://www.gnu.org/licenses>.
*/

#ifndef OBSERVE_H
#define OBSERVE_H

Expand Down
24 changes: 23 additions & 1 deletion include/parallel.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,29 @@
/**
* @file parallel.h
* @brief Header file for parallel propagation of bodies using OpenMP.
* @author Rahil Makadia <[email protected]>
*
* @section LICENSE
* Copyright (C) 2022-2025 Rahil Makadia
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see <https://www.gnu.org/licenses>.
*/

#ifndef PARALLEL_H
#define PARALLEL_H

#include "gr15.h"
#include "ias15.h"
#include <omp.h>

/**
Expand Down
22 changes: 22 additions & 0 deletions include/pck.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
/**
* @file pck.h
* @brief Header file for the PCK binaries.
* @author Rahil Makadia <[email protected]>
*
* @section LICENSE
* Copyright (C) 2022-2025 Rahil Makadia
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see <https://www.gnu.org/licenses>.
*/

#ifndef PCK_H
#define PCK_H

Expand Down
22 changes: 22 additions & 0 deletions include/simulation.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
/**
* @file simulation.h
* @brief Header file for the PropSimulation class and related structures.
* @author Rahil Makadia <[email protected]>
*
* @section LICENSE
* Copyright (C) 2022-2025 Rahil Makadia
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see <https://www.gnu.org/licenses>.
*/

#ifndef SIMULATION_H
#define SIMULATION_H

Expand Down
22 changes: 22 additions & 0 deletions include/spk.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
/**
* @file spk.h
* @brief Header file for the SPK ephemeris data.
* @author Rahil Makadia <[email protected]>
*
* @section LICENSE
* Copyright (C) 2022-2025 Rahil Makadia
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see <https://www.gnu.org/licenses>.
*/

// code here is heavily modified but taken from
// https://github.com/matthewholman/assist/tree/main/src/spk
#ifndef SPK_H
Expand Down
22 changes: 22 additions & 0 deletions include/stm.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
/**
* @file stm.h
* @brief Header file for the STM functions.
* @author Rahil Makadia <[email protected]>
*
* @section LICENSE
* Copyright (C) 2022-2025 Rahil Makadia
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see <https://www.gnu.org/licenses>.
*/

#ifndef STM_H
#define STM_H

Expand Down
Loading

0 comments on commit ecd69b0

Please sign in to comment.