Skip to content
This repository was archived by the owner on Aug 28, 2024. It is now read-only.

Commit

Permalink
tweaks to fix references and some typos
Browse files Browse the repository at this point in the history
  • Loading branch information
Warrick Ball committed Oct 9, 2023
1 parent 931fa88 commit 8ddc4bc
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 53 deletions.
72 changes: 26 additions & 46 deletions paper/paper.bib
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
@article{Chambers:1999,
title = {A hybrid symplectic integrator that permits close encounters between massive bodies},
volume = {304},
url = {http://adsabs.harvard.edu/cgi-bin/nph-data_query?bibcode=1999MNRAS.304..793C&link_type=ABSTRACT},
doi = {10.1046/j.1365-8711.1999.02379.x},
number = {4},
author = {Chambers, J E},
month = apr,
year = {1999},
pages = {793--799},
author = {{Chambers}, J.~E.},
title = "{A hybrid symplectic integrator that permits close encounters between massive bodies}",
journal = {Monthly Notices of the Royal Astronomical Society},
keywords = {ACCRETION, ACCRETION DISCS, METHODS: NUMERICAL, CELESTIAL MECHANICS, STELLAR DYNAMICS, SOLAR SYSTEM: GENERAL},
year = 1999,
month = apr,
volume = {304},
number = {4},
pages = {793-799},
doi = {10.1046/j.1365-8711.1999.02379.x},
adsurl = {https://ui.adsabs.harvard.edu/abs/1999MNRAS.304..793C},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

@article{Duncan:1998,
Expand All @@ -17,7 +20,7 @@ @article{Duncan:1998
doi = {10.1086/300541},
number = {4},
journal = {The Astronomical Journal},
author = {Duncan, Martin J and Levison, Harold F and Lee, Man Hoi},
author = {Duncan, Martin J. and Levison, Harold~F. and Lee, Man Hoi},
month = oct,
year = {1998},
pages = {2067--2077},
Expand Down Expand Up @@ -65,14 +68,14 @@ @article{Leinhardt:2012


@article{Levison:1994,
Author = {{Levison}, H. and {Duncan}, M.},
Journal = {Icarus},
Title = {{The Long-Term Dynamical Behavior of Short-Period Comets}},
Year = 1994,
Month = mar,
Volume = 108,
DOI = {10.1006/icar.1994.1039},
url = {https://www.sciencedirect.com/science/article/pii/S0019103584710396?via%3Dihub}
author = {{Levison}, Harold F. and {Duncan}, M.},
title = {{The Long-Term Dynamical Behavior of Short-Period Comets}},
journal = {Icarus},
year = 1994,
month = mar,
volume = 108,
doi = {10.1006/icar.1994.1039},
url = {https://www.sciencedirect.com/science/article/pii/S0019103584710396?via%3Dihub}
}


Expand All @@ -84,7 +87,7 @@ @article{Levison:2000
doi = {10.1086/301553},
number = {4},
journal = {The Astronomical Journal},
author = {Levison, Harold F. and Duncan, Martin J.},
author = {{Levison}, Harold F. and {Duncan}, Martin J.},
month = oct,
year = {2000},
pages = {2117--2123},
Expand All @@ -97,7 +100,7 @@ @article{Moore:2011
doi = {10.1016/j.newast.2011.03.009},
number = {7},
journal = {New Astronomy},
author = {Moore, Alexander and Quillen, Alice C},
author = {Moore, Alexander and Quillen, Alice C.},
month = nov,
year = {2011},
pages = {445--455},
Expand All @@ -109,15 +112,15 @@ @article{Rein:2012
url = {http://www.aanda.org/10.1051/0004-6361/201118085},
doi = {10.1051/0004-6361/201118085},
journal = {Astronomy \& Astrophysics},
author = {Rein, H and Liu, S F},
author = {{Rein}, Hanno and {Liu}, S. F.},
month = jan,
year = {2012},
pages = {A128},
}


@article{Rein:2015,
title = {`whfast`': a fast and unbiased implementation of a symplectic {Wisdom}–{Holman} integrator for long-term gravitational simulations},
title = {WHFAST: a fast and unbiased implementation of a symplectic {Wisdom}–{Holman} integrator for long-term gravitational simulations},
volume = {452},
issn = {0035-8711},
shorttitle = {whfast},
Expand All @@ -126,35 +129,12 @@ @article{Rein:2015
number = {1},
urldate = {2023-10-06},
journal = {Monthly Notices of the Royal Astronomical Society},
author = {Rein, Hanno and Tamayo, Daniel},
author = {{Rein}, Hanno and {Tamayo}, Daniel},
month = sep,
year = {2015},
pages = {376--388},
}


@article{Rein:2019,
title = {Hybrid symplectic integrators for planetary dynamics},
volume = {485},
issn = {0035-8711},
url = {https://academic.oup.com/mnras/article/485/4/5490/5380811},
doi = {10.1093/mnras/stz769},
number = {4},
journal = {Monthly Notices of the Royal Astronomical Society},
author = {Rein, Hanno and Hernandez, David M. and Tamayo, Daniel and Brown, Garett and Eckels, Emily and Holmes, Emma and Lau, Michelle and Leblanc, Réjean and Silburt, Ari},
month = jun,
year = {2019},
pages = {5490--5497},
}

@misc{rein_welcome_nodate,
title = {Welcome to {REBOUND} - {REBOUND}},
url = {https://rebound.readthedocs.io/en/latest/},
urldate = {2023-10-06},
journal = {Welcome to REBOUND - REBOUND},
author = {Rein, Hanno},
}

@article{Saha:1994,
title = {Long-term planetary integration with individual time steps},
volume = {108},
Expand Down
15 changes: 8 additions & 7 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,22 +54,23 @@ RMVS
: Regularized Mixed Variable Symplectic. `RMVS` is an extension of `WHM` that handles close approaches between test particles and massive bodies. For details, see @Levison:1994.

HELIO
: Democratic Heliocentric method. This is a basic symplectic integrator that uses democratic heliocentric coordinates instead of the Jacobi coordinates used by `WHM`. Like `WHM` it is not suited for simulating close encoutners between orbiting bodies. For details, see @Duncan:1998.
: Democratic Heliocentric method. This is a basic symplectic integrator that uses democratic heliocentric coordinates instead of the Jacobi coordinates used by `WHM`. Like `WHM` it is not suited for simulating close encounters between orbiting bodies. For details, see @Duncan:1998.

SyMBA
: Symplectic Massive Body Algorithm. This is an extension of `HELIO` that handles close approaches between massive bodies and any of the other objects in the simulation. It also includes semi-interacting massive bodies that can gravitationally influence fully massive bodies but not each other. This algorithm is described in the @Duncan:1998. See also @Levison:2000.

All of the integrators that are currently implemented are based symplectic integrators, which are designed to model massive bodies (e.g. planets) or test particles (e.g. asteroids) in orbit of a single dominant central body (e.g. the Sun) for very long periods of times (e.g. Gy). The core components of `Swiftest` were inherited from the `Swift`/`Swifter` codebase, but have been somewhat modified for performance. The `Swift`-family of integerators are most comparable to other symplectic integrators, which are among the most popular numerical methods used to study the long-term dynamics of planetary systems.
All of the integrators that are currently implemented are based symplectic integrators, which are designed to model massive bodies (e.g. planets) or test particles (e.g. asteroids) in orbit of a single dominant central body (e.g. the Sun) for very long periods of times (e.g. Gy). The core components of `Swiftest` were inherited from the `Swift`/`Swifter` codebase, but have been somewhat modified for performance. The `Swift`-family of integrators are most comparable to other symplectic integrators, which are among the most popular numerical methods used to study the long-term dynamics of planetary systems.

The `SyMBA` integrator included in `Swiftest` is most similar to the hybrid symplectic integrator `MERCURY6` [@Chambers:1999], the `MERCURIUS` integrator of `REBOUND` [@Rein:2012,@Rein:2015,@rein_welcome_nodate], and the GPU-enabled hybrid symplectic integrators such as `QYMSYM` [@Moore:2011] and `GENGA II` [@Grimm:2022], with some important distinctions. The hybrid symplectic integrators typically employ a symplectic method, such as the original WHM method in Jacobi coordinates or the modified method that uses the Democratic Heliocentric coordinates, only when bodies are far from each other relative to their gravitational spheres of influence (some multiple of a Hill's sphere). When bodies approach each other, the integration is smoothly switched to a non-symplectic method, such as Bulirsch-Stoer or IAS15. In contrast, `SyMBA` is a multi-step method that recursively subdivides the step size of bodies undergoing close approach with each other.
The `SyMBA` integrator included in `Swiftest` is most similar to the hybrid symplectic integrator `MERCURY6` [@Chambers:1999], the `MERCURIUS` integrator of `REBOUND` [@Rein:2012;@Rein:2015], and the GPU-enabled hybrid symplectic integrators such as `QYMSYM` [@Moore:2011] and `GENGA II` [@Grimm:2022], with some important distinctions. The hybrid symplectic integrators typically employ a symplectic method, such as the original WHM method in Jacobi coordinates or the modified method that uses the Democratic Heliocentric coordinates, only when bodies are far from each other relative to their gravitational spheres of influence (some multiple of a Hill's sphere). When bodies approach each other, the integration is smoothly switched to a non-symplectic method, such as Bulirsch-Stoer or IAS15. In contrast, `SyMBA` is a multi-step method that recursively subdivides the step size of bodies undergoing close approach with each other.

In addition `Swiftest` contains a number of significant enhancements relative to its predecessors:

In addition `Swiftest` contains a number of signfigant enhancements relative to its predecessors:
- It includes a fully symplectic implementation of the post-Newtonian correction (General Relativity) as described in @Saha:1994.
- Output data is stored in NetCDF4 (HDF5) format, making data analysis, cross-platform compatibility, and portability far more robust than the flat binary file formats used by its predecessors.
- Output data is stored in NetCDF4 (HDF5) format, making data analysis, cross-platform compatibility, and portability far more robust than the flat binary file formats used by its predecessors.
- It makes use of CPU-based parallelization via OpenMP. It also makes use of SIMD instructions, but these are available only when compiled for target host machine rather than when installed from PyPI via pip.
- Simulations can be run by means of a standalone binary driver program, similar to its predecessors, or from a compiled Python module. Both the standalone driver and Python module link to the same compiled library, so they simulations run by either method are identical.
- Simulations can be run by means of a standalone binary driver program, similar to its predecessors, or from a compiled Python module. Both the standalone driver and Python module link to the same compiled library, so simulations run by either method are identical.
- It comes with an extensive set of Python scripts to help generate simulation initial conditions and post-process simulation results.
- It includes the `Fraggle` collisional fragmentation model that is used to generate collisional fragments on trajectories that conserve linear and angular momentum and lose the appropriate amount of collisional energy for inelastic collisions between massive bodies in `SyMBA` simulations. The collisional outcome is deterimined using standard methods based on the work of @Leinhardt:2012 and @Stewart:2012.
- It includes the `Fraggle` collisional fragmentation model that is used to generate collisional fragments on trajectories that conserve linear and angular momentum and lose the appropriate amount of collisional energy for inelastic collisions between massive bodies in `SyMBA` simulations. The collisional outcome is determined using standard methods based on the work of @Leinhardt:2012 and @Stewart:2012.

# Performance
Modeling the behavior of thousands of fully interacting bodies over long timescales is computationally expensive, with typical runs taking weeks or months to complete. The addition of collisional fragmentation can quickly generate hundreds or thousands of new bodies in a short time period, creating further computational challenges for traditional \textit{n}-body integrators. As a result, enhancing computational performance was a key aspect of the development of `Swiftest`. Here we show a comparison between the performance of `Swift`, `Swifter-OMP` (a parallel version of `Swifter`), and `Swiftest` on simulations with 1k, 2k, 8k, and 16k fully interacting bodies. The number of cores dedicated to each run is varied from 1 to 24 to test the parallel performance of each program.
Expand Down

0 comments on commit 8ddc4bc

Please sign in to comment.