diff --git a/Paper/paper/paper.bib b/Paper/paper/paper.bib index 5f3ab762f..6ca5e8d6f 100644 --- a/Paper/paper/paper.bib +++ b/Paper/paper/paper.bib @@ -10,7 +10,7 @@ @book{Binney:2008 @ARTICLE{Gadget4, author = {{Springel}, Volker and {Pakmor}, R{\"u}diger and {Zier}, Oliver and {Reinecke}, Martin}, title = "{Simulating cosmic structure formation with the GADGET-4 code}", - journal = {Monthly Notices of the RAS}, + journal = {Monthly Notices of the Royal Astronomical Society}, keywords = {methods: numerical, galaxies: interactions, dark matter, Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Cosmology and Nongalactic Astrophysics}, year = 2021, month = sep, @@ -30,7 +30,7 @@ @ARTICLE{Gadget4 @ARTICLE{Wang:15, author = {{Wang}, Long and {Spurzem}, Rainer and {Aarseth}, Sverre and {Nitadori}, Keigo and {Berczik}, Peter and {Kouwenhoven}, M.~B.~N. and {Naab}, Thorsten}, title = "{NBODY6++GPU: ready for the gravitational million-body problem}", - journal = {Monthly Notices of the RAS}, + journal = {Monthly Notices of the Royal Astronomical Society}, keywords = {methods: numerical, globular clusters: general, Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Solar and Stellar Astrophysics}, year = 2015, month = jul, @@ -50,7 +50,7 @@ @ARTICLE{Wang:15 @article{gaia, author = {{Gaia Collaboration}}, title = "{The Gaia mission}", - journal = {Astronomy and Astrophysics}, + journal = {Astronomy \& Astrophysics}, archivePrefix = "arXiv", eprint = {1609.04153}, primaryClass = "astro-ph.IM", @@ -58,6 +58,7 @@ @article{gaia year = 2016, month = nov, volume = 595, + pages = "A1", doi = {10.1051/0004-6361/201629272}, url = {http://adsabs.harvard.edu/abs/2016A%26A...595A...1G}, } @@ -68,7 +69,7 @@ @article{gaia_DR2_disk Doi = {10.1051/0004-6361/201832865}, Eid = {A11}, Eprint = {1804.09380}, - Journal = {Astronomy and Astrophysics}, + Journal = {Astronomy \& Astrophysics}, Month = {Aug}, Pages = {A11}, Primaryclass = {astro-ph.GA}, @@ -80,7 +81,7 @@ @article{gaia_DR2_disk @article{astropy, author = {{Astropy Collaboration}}, title = "{Astropy: A community Python package for astronomy}", - journal = {Astronomy and Astrophysics}, + journal = {Astronomy \& Astrophysics}, archivePrefix = "arXiv", eprint = {1307.6212}, primaryClass = "astro-ph.IM", @@ -101,13 +102,13 @@ @article{gala volume = {2}, number = {18}, author = {Adrian M. Price-Whelan}, - title = {Gala: A Python package for galactic dynamics}, + title = "{Gala: A Python package for galactic dynamics}", journal = {The Journal of Open Source Software}} @misc{hdf5, author = {{The HDF Group}}, - title = "{Hierarchical data format version 5}", + title = "{Hierarchical Data Format, version 5}", year = {2000-2010}, howpublished = {http://www.hdfgroup.org/HDF5} } @@ -116,13 +117,13 @@ @misc{pybind11 author = {Wenzel Jakob and Jason Rhinelander and Dean Moldovan}, year = {2017}, note = {https://github.com/pybind/pybind11}, - title = {pybind11 -- Seamless operability between C++11 and Python} + title = "{pybind11 -- Seamless operability between C++11 and Python}" } @ARTICLE{Weinberg:23, author = {{Weinberg}, Martin D.}, title = "{New dipole instabilities in spherical stellar systems}", - journal = {Monthly Notices of the RAS}, + journal = {Monthly Notices of the Royal Astronomical Society}, year = 2023, month = nov, volume = {525}, @@ -137,7 +138,7 @@ @ARTICLE{Weinberg:23 @ARTICLE{Weinberg:21, author = {{Weinberg}, Martin D. and {Petersen}, Michael S.}, title = "{Using multichannel singular spectrum analysis to study galaxy dynamics}", - journal = {Monthly Notices of the RAS}, + journal = {Monthly Notices of the Royal Astronomical Society}, year = 2021, month = mar, volume = {501}, @@ -152,7 +153,7 @@ @ARTICLE{Weinberg:21 @ARTICLE{Petersen:22, author = {{Petersen}, Michael S. and {Weinberg}, Martin D. and {Katz}, Neal}, title = "{EXP: N-body integration using basis function expansions}", - journal = {Monthly Notices of the RAS}, + journal = {Monthly Notices of the Royal Astronomical Society}, keywords = {methods: numerical, Galaxy: halo, galaxies: haloes, galaxies: kinematics and dynamics, galaxies: structure, Astrophysics - Astrophysics of Galaxies, Astrophysics - Instrumentation and Methods for Astrophysics}, year = 2022, month = mar, @@ -168,7 +169,7 @@ @ARTICLE{Petersen:22 @ARTICLE{Johnson:23, author = {{Johnson}, Alexander C. and {Petersen}, Michael S. and {Johnston}, Kathryn V. and {Weinberg}, Martin D.}, title = "{Dynamical data mining captures disc-halo couplings that structure galaxies}", - journal = {Monthly Notices of the RAS}, + journal = {Monthly Notices of the Royal Astronomical Society}, keywords = {galaxies: disc, galaxies: haloes, galaxies: structure, Astrophysics - Astrophysics of Galaxies, Astrophysics - Instrumentation and Methods for Astrophysics}, year = 2023, month = may, @@ -187,7 +188,7 @@ @book{SSA year={2001}, publisher={CRC press} } - + @Article{numpy, title = {Array programming with {NumPy}}, author = {Charles R. Harris and K. Jarrod Millman and St{\'{e}}fan J. @@ -227,8 +228,8 @@ @Article{matplotlib @ARTICLE{Weinberg:99, author = {{Weinberg}, Martin D.}, - title = "{An Adaptive Algorithm for N-Body Field Expansions}", - journal = {Astronomical Journal}, + title = {An Adaptive Algorithm for {N}-Body Field Expansions}, + journal = {The Astronomical Journal}, keywords = {CELESTIAL MECHANICS, STELLAR DYNAMICS, GALAXIES: STRUCTURE, GALAXY: STRUCTURE, METHODS: NUMERICAL, Astrophysics}, year = 1999, month = jan, @@ -277,11 +278,11 @@ @INCOLLECTION{jupyter adsnote = {Provided by the SAO/NASA Astrophysics Data System} } -@misc{cuda, - author={NVIDIA and Vingelmann, Péter and Fitzek, Frank H.P.}, - title={CUDA, release: 10.2.89}, - year={2020}, - url={https://developer.nvidia.com/cuda-toolkit}, +@misc{cuda, + author={NVIDIA and Vingelmann, Péter and Fitzek, Frank H.P.}, + title={CUDA, release: 10.2.89}, + year={2020}, + url={https://developer.nvidia.com/cuda-toolkit}, } @manual{mpi41, @@ -296,7 +297,7 @@ @manual{mpi41 @ARTICLE{GaravitoCamargo:21, author = {{Garavito-Camargo}, Nicol{\'a}s and {Besla}, Gurtina and {Laporte}, Chervin F.~P. and {Price-Whelan}, Adrian M. and {Cunningham}, Emily C. and {Johnston}, Kathryn V. and {Weinberg}, Martin and {G{\'o}mez}, Facundo A.}, title = "{Quantifying the Impact of the Large Magellanic Cloud on the Structure of the Milky Way's Dark Matter Halo Using Basis Function Expansions}", - journal = {Astrophysical Journal}, + journal = {The Astrophysical Journal}, keywords = {Milky Way dynamics, Large Magellanic Cloud, Milky Way dark matter halo, 1051, 903, 1049, Astrophysics - Astrophysics of Galaxies}, year = 2021, month = oct, @@ -314,8 +315,8 @@ @ARTICLE{GaravitoCamargo:21 @ARTICLE{Hernquist:90, author = {{Hernquist}, Lars}, - title = "{An Analytical Model for Spherical Galaxies and Bulges}", - journal = {Astrophysical Journal}, + title = {An Analytical Model for Spherical Galaxies and Bulges}, + journal = {The Astrophysical Journal}, keywords = {Computational Astrophysics, Elliptical Galaxies, Galactic Bulge, Galactic Structure, Astronomical Models, Astronomical Photometry, Brightness Distribution, Distribution Functions, Astrophysics, GALAXIES: PHOTOMETRY, GALAXIES: STRUCTURE}, year = 1990, month = jun, @@ -330,8 +331,8 @@ @ARTICLE{Hernquist:90 @ARTICLE{Hernquist:92, author = {{Hernquist}, Lars and {Ostriker}, Jeremiah P.}, - title = "{A Self-consistent Field Method for Galactic Dynamics}", - journal = {Astrophysical Journal}, + title = {A Self-consistent Field Method for Galactic Dynamics}, + journal = {The Astrophysical Journal}, keywords = {Celestial Mechanics, Computational Astrophysics, Galaxies, Stellar Motions, Algorithms, Astronomical Models, Dynamical Systems, Numerical Analysis, Astrophysics, CELESTIAL MECHANICS, STELLAR DYNAMICS, METHODS: NUMERICAL}, year = 1992, month = feb, @@ -344,8 +345,8 @@ @ARTICLE{Hernquist:92 @ARTICLE{NFW, author = {{Navarro}, Julio F. and {Frenk}, Carlos S. and {White}, Simon D.~M.}, - title = "{A Universal Density Profile from Hierarchical Clustering}", - journal = {Astrophysical Journal}, + title = {A Universal Density Profile from Hierarchical Clustering}, + journal = {The Astrophysical Journal}, keywords = {Cosmology: Theory, Cosmology: Dark Matter, Galaxies: Halos, Methods: Numerical, Astrophysics}, year = 1997, month = dec, @@ -359,4 +360,3 @@ @ARTICLE{NFW adsurl = {https://ui.adsabs.harvard.edu/abs/1997ApJ...490..493N}, adsnote = {Provided by the SAO/NASA Astrophysics Data System} } - diff --git a/Paper/paper/paper.md b/Paper/paper/paper.md index 52395a3a3..2735ff178 100644 --- a/Paper/paper/paper.md +++ b/Paper/paper/paper.md @@ -18,7 +18,7 @@ authors: affiliations: - name: University of Edinburgh, UK index: 1 - - name: University of Massachusetts/Amherst, USA + - name: University of Massachusetts Amherst, USA index: 2 date: 01 June 2024 bibliography: paper.bib @@ -39,16 +39,16 @@ 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 +Basis Function Expansions (BFEs) represent fields as a linear combination of orthogonal functions. BFEs are particularly well-suited 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. The coefficients have physical meaning: they represent -the gravitational potential energy in a given function. The variation +the gravitational potential energy in a given function. The variation of 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, +The representation of simulation data by BFEs 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! @@ -73,7 +73,7 @@ The need for methodology that seamlessly connects theoretical descriptions of dynamics, N-body simulations, and compact descriptions of observed data gave rise to `EXP`. This package provides recent developments from applied mathematics and numerical computation to -represent complete series of _Basis Function Expansions_ that describe +represent complete series of BFEs that describe the variation of _any_ field in space. In the context of galactic dynamics, these fields may be density, potential, force, velocity fields or any intrinsic field produced by simulations such as @@ -85,11 +85,11 @@ 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, +simulations 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. +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. @@ -106,11 +106,11 @@ coefficients and discover dynamical relationships using time series analysis such as mSSA. We provide a [full online manual](https://exp-docs.readthedocs.io) hosted by ReadTheDocs. -The software package brings published -- but difficult to implement -- -applied-math technologies into the astronomical mainstream. `EXP` and +The software package brings published---but difficult to implement---applied-math +technologies into the astronomical mainstream. `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 [@iPython] use through (e.g.) +well-suited for interactive Python [@iPython] use through, e.g., Jupyter notebooks [@jupyter]. `EXP` serves as the scaffolding for new imaginative applications in galactic dynamics, providing a common dynamical language for simulations and analytic @@ -126,7 +126,7 @@ computed bases and resulting coefficient data are stored in HDF5 | Name | Description | | ----------- | ------------- | -| sphereSL | Sturm-Liouville basis function solutions to Poisson's equation for any arbitrary input spherical density | +| sphereSL | 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 | EOF solutions tabulated on the meridional plane for distributions with cylindrical geometries | | flatdisk | EOF basis solutions for the three-dimensional gravitational field of a razor-thin disk | @@ -134,28 +134,28 @@ computed bases and resulting coefficient data are stored in HDF5 | field | General-purpose EOF solution for scalar profiles | | velocity | EOF solution for velocity flow coefficients | -![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. \label{fig:examplecylinder}](examplefunctions.png) +![Example cylinder basis functions, where the color encodes the amplitude of the function, for an exponential disk with a scale length of 3 and a scale height 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. \label{fig:examplecylinder}](examplefunctions.png) ## N-body simulation Computing the gravitational potential and forces from a collection of -N particles is typically an expensive endeavour. EXP reduces the cost +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:15] or tree-based solutions [@Gadget4], 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 +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, and the modular software architecture of -`EXP` enables users to easily build and maintain extensions. The `EXP` +easy extensibility. Stand-alone routines include the 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:22; @Weinberg:23] -and has been used, enhanced, and rigorously tested for nearly two +and has been used, enhanced, and rigorously tested for nearly two decades. @@ -181,10 +181,10 @@ can be extended by users. `pyEXP` provides an interface to many of the classes in the `EXP` C++ library, allowing for both the generation of all bases listed in the table above as well as coefficients for an input data set. Each of -these tools are Python classes that accept `numpy` [@numpy] arrays for -immediate interoperability with `matplotlib` [@matplotlib] and +these tools are Python classes that accept NumPy [@numpy] arrays for +immediate interoperability with Matplotlib [@matplotlib] and Astropy. We include a verified set of stand-alone routines that read -phase-space files from many major cosmological tree codes [for example, +phase-space files from many major cosmological tree codes [e.g., @Gadget4] 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 @@ -201,11 +201,11 @@ The `EXP` library includes multiple time series analysis tools, documented in the manual. Here, we briefly highlight one technique that we have already used in published work: mSSA [@Weinberg:21; @Johnson:23]. Beginning with coefficient series from the previous -tools, mSSA summarizes signals _in time_ that describes dynamically +tools, mSSA summarizes signals _in time_ that describe dynamically correlated responses and patterns. Essentially, this is BFE in time and space. These temporal and spatial patterns allow users to better identify dynamical mechanisms and enable intercomparisons and -filtering for features in simulation suites; e.g. computing the +filtering for features in simulation suites, e.g. computing the fraction galaxies with grand design structure or hosting bars. Random-matrix techniques for singular-value decomposition ensure that analyses of large data sets is possible. All mSSA decompositions @@ -221,4 +221,3 @@ Robert Blackwell for invaluable help with HPC best practices. # References -