diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0528aacbe..ffba0d1b6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.25) # Needed for CUDA, MPI, and CTest features
project(
EXP
- VERSION "7.8.0"
+ VERSION "7.8.1"
HOMEPAGE_URL https://github.com/EXP-code/EXP
LANGUAGES C CXX Fortran)
diff --git a/Paper/paper/paper.jats b/Paper/paper/paper.jats
index 194915004..ca87725a4 100644
--- a/Paper/paper/paper.jats
+++ b/Paper/paper/paper.jats
@@ -82,33 +82,34 @@ a Creative Commons Attribution 4.0 International License (CC BY
Summary
- Galaxies are nearly equilibrium ensembles of dark and baryonic
- matter confined by their mutual gravitational attraction. Over many
- decades of rich development, the dynamics of galactic evolution have
- been studied with a combination of numerical simulations and
- analytical methods
+
Galaxies are ensembles of dark and baryonic matter confined by
+ their mutual gravitational attraction. The dynamics of galactic
+ evolution have been studied with a combination of numerical
+ simulations and analytical methods
(Binney
- & Tremaine, 2008). Recently, data describing the positions
- and motions of billions of stars from the Gaia
+ & Tremaine, 2008) for decades. Recently, data describing
+ the positions and motions of billions of stars from the Gaia
satellite
(Gaia
Collaboration, 2016,
2018)
depict a Milky Way (our home galaxy) much farther from equilibrium
- that we imagined and beyond the range of many analytic models. N-body
- simulations, tracking the evolution of N bodies under their mutual
- gravity, are capable of capturing such complexities, but robust links
- to theoretical descriptions are still missing.
+ than we imagined and beyond the range of many analytic models.
+ Simulations that allow collections of bodies to evolve under their
+ mutual gravity are capable of reproducing such complexities but robust
+ links to fundamental theoretical explanations are still missing.
Basis Function Expansions (BFE) represent fields as a linear
combination of orthogonal functions. BFEs are particularly well-suited
- for studies of perturbations around equilibria, such as the evolution
- of a galaxy. If the BFE is used to describe the evolution of a galaxy
- with time, then one can also study the time series of function
- coefficients. For any galaxy simulation, a biorthogonal BFE can fully
+ for studies of perturbations from equilibrium, such as the evolution
+ of a galaxy. For any galaxy simulation, a biorthogonal BFE can fully
represent the density, potential and forces by time series of
- coefficients. This results in huge compression of the information in
- the dynamical fields; for example, 1.5 TB of phase space data becomes
- 200 MB of coefficient data!
+ coefficients. The coefficients have physical meaning: they represent
+ the gravitational potential energy in a given function. The variation
+ the function coefficients in time encodes the dynamical evolution. The
+ representation of simulation data by BFE results in huge compression
+ of the information in the dynamical fields; for example, 1.5 TB of
+ phase space data enumerating the positions and velocities of millions
+ of particles becomes 200 MB of coefficient data!
For optimal representation, the lowest-order basis function should
be similar to the mean or equilibrium profile of the galaxy. This
allows for use of the fewest number of terms in the expansion. For
@@ -120,10 +121,11 @@ a Creative Commons Attribution 4.0 International License (CC BY
representing the cosmologically-motivated Navarro et al.
(1997) profile.
The EXP software package implements the
- adaptive empirical orthogonal function (EOF) basis strategies
- originally described in Weinberg
+ adaptive empirical orthogonal function (EOF; see
+ [fig:examplecylinder])
+ basis strategy originally described in Weinberg
(1999)
- that match any physical system close to an equilibrium model. The
+ that matches any physical system close to an equilibrium model. The
package includes both a high performance N-body simulation toolkit
with computational effort scaling linearly with N
(Petersen
@@ -140,30 +142,31 @@ a Creative Commons Attribution 4.0 International License (CC BY
computation to represent complete series of Basis Function
Expansions that describe the variation of
any field in space. In the context of galactic
- dynamics, these fields may be density, potential, force, or even
- velocity fields or chemical tags. By combining the information through
- time using SSA
- (Golyandina
+ dynamics, these fields may be density, potential, force, velocity
+ fields or any intrinsic field produced by simulations such as
+ chemistry data. By combining the coefficient information through time
+ using multichannel singular spectral analysis (mSSA,
+ Golyandina
et al., 2001), a non-parametric spectral technique,
EXP can deepen our understanding by discovering
- the dynamics galaxy evolution directly from simulations and
- observations.
- EXP is a collection of object-oriented C++
+ the dynamics of galaxy evolution directly from simulated, and by
+ analogy, observed data.
+ EXP decomposes a galaxy into multiple bases
+ for a variety of scales and geometries and is thus able to represent
+ arbitrarily complex simulation with many components (e.g., disk,
+ bulge, dark matter halo, satellites). EXP is
+ able to efficiently summarize the degree and nature of asymmetries
+ through coefficient amplitudes tracked through time and provide
+ details at multiple scales. The amplitudes themselves enable
+ ex-post-facto dynamical discovery.
+ EXP is a collection of object-oriented C++
libraries with an associated modular N-body code and a suite of
- stand-alone analysis applications. The library includes many of the
- published recursion relations for specific basis sets; we have
- demonstrated that the adaptive method can reproduce all of them to
- machine accuracy. By combining multiple bases for different scales and
- geometries, EXP, can decompose a galaxy model
- based on the geometry and symmetry for any number of components (disk,
- bulge, dark-matter halo, satellites). The run of coefficient
- amplitudes through time efficiently summarize the degree and nature of
- asymmetries and provides detail at multiple scales and enable
- ex-post-facto discovery.
- pyEXP provides full Python interface,
- implemented with pybind11
+ stand-alone analysis applications.
+ pyEXP provides a full Python interface to
+ the EXP libraries, implemented with
+ pybind11
(Jakob
- et al., 2017), that provides full interoperability with major
+ et al., 2017), which provides full interoperability with major
astronomical packages including Astropy
(Astropy
Collaboration, 2013) and Gala
@@ -172,31 +175,32 @@ a Creative Commons Attribution 4.0 International License (CC BY
available and distributed as accompanying
examples
and tutorials. The examples and tutorials flatten the
- learning curve for adopting BFE tools for generating and analyzing the
- significance of coefficients and discovering dynamical relationships
+ learning curve for adopting BFE tools to generate and analyze the
+ significance of coefficients and discover dynamical relationships
using time series analysis such as mSSA. We provide a
full
online manual hosted by ReadTheDocs.
The software package brings published – but difficult to implement
– applied-math technologies into the astronomical mainstream.
- EXP and particularly the Python interface
+ EXP and the associated Python interface
pyEXP accomplish this by providing tools
integrated with the Python ecosystem, and in particular are
well-suited for interactive Python
(Pérez
& Granger, 2007) use through (e.g.) Jupyter notebooks
(Kluyver
- et al., 2016). We anticipate that EXP we
- serve as the scaffolding for new imaginative applications in galactic
- dynamics, providing a common dynamical language for simulations and
- analytic theory.
+ et al., 2016). EXP serves as the
+ scaffolding for new imaginative applications in galactic dynamics,
+ providing a common dynamical language for simulations and analytic
+ theory.
Features and workflow
The core EXP library is built around methods
to build the best basis function expansion for an arbitrary data set
- in galactic dynamics. The table below lists available basis functions.
- All computed bases and resulting coefficient data are stored in HDF5
+ in galactic dynamics. The table below lists some of the available
+ basis functions. All computed bases and resulting coefficient data are
+ stored in HDF5
(The
HDF Group, 2000-2010) format.
@@ -214,9 +218,13 @@ a Creative Commons Attribution 4.0 International License (CC BY
| sphereSL |
- Sturm-Liouville computed basis function solutions to
- Poisson’s equation for any arbitrary input spherical
- density |
+ Sturm-Liouville basis function solutions to Poisson’s
+ equation for any arbitrary input spherical density |
+
+
+ | bessel |
+ Basis constructed from eigenfunctions of the spherical
+ Laplacian |
| cylinder |
@@ -244,22 +252,46 @@ a Creative Commons Attribution 4.0 International License (CC BY
- A picture of some basis functions will be trialled
- here
+
+ Example cylinder basis functions, where the color
+ encodes the amplitude of the function, for an exponential disk with
+ a scalelength of 3 and a scaleheight of 0.3 in arbitrary units. We
+ select three functions at low, medium, and higher order
+ (corresponding to the number of nodes). The color scale has been
+ normalised such that the largest amplitude is unity in each panel.
+
+
+
N-body simulation
+ Computing the gravitational potential and forces from a
+ collection of N particles is typically an expensive endeavour. EXP
+ reduces the cost by using BFE to compute the potential and forces
+ such that computational effort scales with the number of particles.
+ Other modern N-body codes use direct summation
+ (Wang
+ et al., 2015) or tree-based solutions
+ (Springel
+ et al., 2021), which have computational effort that scales as
+ N
+
+ 2
+ and N log N, respectively. The trade off for BFE solutions comes in
+ the form of restricted degrees of freedom; for many problems in
+ near-equilibrium galactic dynamics this is not a problem, but rather
+ a feature.
Our design includes a wide choice of run-time summary
diagnostics, phase-space output formats, dynamically loadable user
libraries, and easy extensibility. Stand-alone routines include the
- EOF and mSSA methods described above. EXP has
- been used, enhanced, and tested for nearly twenty years. Its modular
- software architecture makes it extensible and maintainable. This
- code base has been tested rigorously over more than a decade and
- described in published papers
+ EOF and mSSA methods described above, and the modular software
+ architecture of EXP enables users to easily
+ build and maintain extensions. The EXP code
+ base is described in published papers
(Petersen
et al., 2022;
Weinberg,
- 2023).
+ 2023) and has been used, enhanced, and rigorously tested for
+ nearly two decades.
The design and implementation of the N-body tools allows for
execution on a wide variety of hardware, from personal laptops to
high performance computing centers, with communication between
@@ -269,14 +301,15 @@ a Creative Commons Attribution 4.0 International License (CC BY
CUDA
(NVIDIA
et al., 2020). Owing to the linear scaling of computational
- effort with N, the N-body methods in EXP
- deliver performance in N-body simulations previously only accessible
- with large dedicated CPU clusters.
+ effort with N and the novel GPU implementation, the N-body methods
+ in EXP deliver performance in collisionless
+ N-body simulations previously only accessible with large dedicated
+ CPU clusters.
The flexible N-body software design allows users to write their
- own modules for on-the-fly execution during N-body integration. Such
- modules can be powerful methods to design dynamical experiments in
+ own modules for on-the-fly execution during N-body integration.
+ Modules enable powerful and intricate dynamical experiments in
N-body simulations, further reducing the gap between numerical
- simulations and analytic deynamics. The package ships with several
+ simulations and analytic dynamics. The package ships with several
examples, including imposed external potentials, as well as a basic
example that can be extended by users.
@@ -293,19 +326,25 @@ a Creative Commons Attribution 4.0 International License (CC BY
(Hunter,
2007) and Astropy. We include a verified set of stand-alone
routines that read phase-space files from many major cosmological
- tree codes and produce BFE-based analyses. The code suite includes
- adapters for reading and writing phase space for many of the widely
- used cosmology codes, with a base class for developing new ones.
- There are multiple way to use the versatile and modular tools in
- pyEXP, and we anticipate pipelines that we
- have not yet imagined.
+ tree codes (for example,
+ Springel
+ et al., 2021) and produce BFE-based analyses. The code suite
+ includes adapters for reading and writing phase space for many of
+ the widely used cosmology codes, with a base class for developing
+ new ones. There are multiple ways to use the versatile and modular
+ tools in pyEXP, and we anticipate pipelines
+ that we have not yet imagined. The flexibility of the basis sets
+ available in EXP greatly enhances the number
+ of available basis sets implemented in Python (see, e.g.
+ Price-Whelan,
+ 2017).