From 6f151e79d650a5cf4889c774b3e316e76fbb7473 Mon Sep 17 00:00:00 2001
From: michael-petersen <petersen.michael.s@gmail.com>
Date: Sat, 21 Dec 2024 13:44:51 +0000
Subject: [PATCH 1/3] Draft GitHub issue template

---
 .github/ISSUE_TEMPLATE/bug_report.yml | 52 +++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml

diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 00000000..722c267a
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,52 @@
+name: Bug report
+description: Create a report describing unexpected or incorrect behavior in EXP.
+labels: Bug
+body:
+  - type: markdown
+    attributes:
+      value: >-
+        Thanks for taking the time to fill out this bug report! Please provide a clear and concise description of the bug you've encountered.
+  - type: dropdown
+    id: interface
+    attributes:
+      label: Interface
+      description: Which interface of EXP are you using?
+      options:
+        - pyEXP
+        - EXP N-body
+      default: 0
+    validations:
+      required: true
+  - type: dropdown
+    id: version
+    attributes:
+      label: Version
+      description: How are you accessing EXP?
+      options:
+        - Docker
+        - Local compile
+      default: 0
+    validations:
+      required: true
+  - type: textarea
+    id: exactversion
+    attributes:
+      label: Exact Version
+      description: Please provide the exact version of EXP you are using. If using pyEXP, please provide the output of `python -c "import pyEXP; pyEXP.util.getVersionInfo()"`; If using N-body, please provide the output of `exp -v`.
+      render: shell
+  - type: textarea
+    attributes:
+      label: Description
+      description: >-
+        A clear and concise description of what the bug is.
+  - type: textarea
+    attributes:
+      label: Expected behavior
+      description: >-
+        A clear and concise description of what you expected to happen.
+  - type: textarea
+    id: logs
+    attributes:
+      label: Relevant log output
+      description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
+      render: shell
\ No newline at end of file

From 28d394484c6907fb2c280e6e5f4c4361de9183a2 Mon Sep 17 00:00:00 2001
From: michael-petersen <petersen.michael.s@gmail.com>
Date: Sun, 22 Dec 2024 14:19:26 +0000
Subject: [PATCH 2/3] draft paper updates

---
 Paper/paper/paper.bib |  40 ++++++++++++++++++++++++++++++++++++++++
 Paper/paper/paper.md  |  19 ++++++++++++++++---
 Paper/paper/paper.pdf | Bin 358193 -> 363396 bytes
 3 files changed, 56 insertions(+), 3 deletions(-)

diff --git a/Paper/paper/paper.bib b/Paper/paper/paper.bib
index f6dedcf6..a352729c 100644
--- a/Paper/paper/paper.bib
+++ b/Paper/paper/paper.bib
@@ -7,6 +7,46 @@ @book{Binney:2008
   	Year = 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 = {\mnras},
+     keywords = {methods: numerical, galaxies: interactions, dark matter, Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Cosmology and Nongalactic Astrophysics},
+         year = 2021,
+        month = sep,
+       volume = {506},
+       number = {2},
+        pages = {2871-2949},
+          doi = {10.1093/mnras/stab1855},
+archivePrefix = {arXiv},
+       eprint = {2010.03567},
+ primaryClass = {astro-ph.IM},
+       adsurl = {https://ui.adsabs.harvard.edu/abs/2021MNRAS.506.2871S},
+      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+}
+
+
+
+@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 = {\mnras},
+     keywords = {methods: numerical, globular clusters: general, Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Solar and Stellar Astrophysics},
+         year = 2015,
+        month = jul,
+       volume = {450},
+       number = {4},
+        pages = {4070-4080},
+          doi = {10.1093/mnras/stv817},
+archivePrefix = {arXiv},
+       eprint = {1504.03687},
+ primaryClass = {astro-ph.IM},
+       adsurl = {https://ui.adsabs.harvard.edu/abs/2015MNRAS.450.4070W},
+      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+}
+
+
+
 @article{gaia,
     author = {{Gaia Collaboration}},
     title = "{The Gaia mission}",
diff --git a/Paper/paper/paper.md b/Paper/paper/paper.md
index a593490b..fe305e0a 100644
--- a/Paper/paper/paper.md
+++ b/Paper/paper/paper.md
@@ -139,11 +139,21 @@ computed bases and resulting coefficient data are stored in HDF5
 
 ## 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: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
+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` 
+`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 
 decades.
@@ -174,12 +184,15 @@ 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
 Astropy.  We include a verified set of stand-alone routines that read
-phase-space files from many major cosmological tree codes and produce
+phase-space files from many major cosmological tree codes (for example,
+@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
 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.
+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. @gala).
 
 
 ## Using pyEXP to analyze time series
diff --git a/Paper/paper/paper.pdf b/Paper/paper/paper.pdf
index 1f8072ec72e69ab4af5c85d18482b255a54432ef..fd52d8ad661ec0afe4b9ab7c5bf86aa408a5b70c 100644
GIT binary patch
delta 23042
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

delta 19342
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
Aod5s;


From 41a1161f933ecf654e1f9e05d3a9fcf45559c2ad Mon Sep 17 00:00:00 2001
From: michael-petersen <petersen.michael.s@gmail.com>
Date: Thu, 23 Jan 2025 13:55:38 +0000
Subject: [PATCH 3/3] INSTALL.md updates [no CI]

---
 CMakeLists.txt |  2 +-
 INSTALL.md     | 52 ++++++++++++++++++++++++++++++++++++++++++--------
 2 files changed, 45 insertions(+), 9 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 70a4dc53..df647b23 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,7 +68,7 @@ find_package(OpenMP)
 find_package(FFTW REQUIRED)
 find_package(HDF5 COMPONENTS C CXX HL REQUIRED)
 find_package(TIRPC)	       # Check for alternative Sun rpc support
-find_package(Eigen3 REQUIRED)
+find_package(Eigen3 3.4 REQUIRED)
 find_package(PNG)
 
 # Check for FE
diff --git a/INSTALL.md b/INSTALL.md
index 449daac4..efaeef46 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,5 +1,28 @@
 # Configuring and building EXP
 
+EXP uses CMake for building a configuration.
+
+We recommend building "out of source" to allow for multiple
+configurations.  This allows one to have build various versions
+available from the same source, such as `Release` and `Debug` (see below). 
+
+## Required Libraries for installation
+
+Most required libraries will be available on HPC systems, but a local 
+user may need to install some libraries (e.g. using `apt-get` on linux, 
+and `homebrew` or `macports` on OSX).
+
+| Library | Version   |
+|---------|-----------|
+| Eigen   | >= 3.4    |
+| FFTW    | >= 2.0    |
+| HDF5    | >=1.12    |
+| OpenMPI | >=4.0     |
+
+Other libraries are automatically installed along with EXP using `git submodule` (see next step).
+
+### Obtaining Additional libraries
+
 We are now using git submodules to provide `yaml-cpp`, which is not
 common in the HPC environments.  So, from the top-level directory, do
 the following:
@@ -12,18 +35,31 @@ This will install `yaml-cpp` in the `extern` directory.  The png++ C++
 wrappers to the png library are also installed in `extern`.  Note: png
 support is optional.
 
-## EXP uses CMake for building a configuration
-
-I recommend building "out of source" to allow for multiple
-configurations.  This allows one to have build various versions
-available from the same source, such as `Release` and `Debug`.  To
-begin, make a build directory and change to that:
+## Building using CMake
 
+To begin the CMake configuration, make a build directory and change to that:
 ```
    mkdir -p build
    cd build
 ```
 
+The next step is to create the CMake configuration,
+```
+   cmake ..
+```
+build,
+```
+   make -j 4
+```
+and finally install.
+```
+   make install
+```
+
+More details are available below, and troubleshooting can be found in the GitHub discussions.
+
+## In more detail...
+
 CMake is designed to detect commonly used utilities and libraries
 automatically, but sometimes needs help and hints.  For example, if
 CMake does not find a library, you can add the location of the library
@@ -48,7 +84,7 @@ Generally, the install location will need to be changed in the example
 below.  E.g. I would use `-DCMAKE_INSTALL_PREFIX=/home/mdw_umass_edu`
 on the UMass Unity cluster to install in my home directory.
 
-## EXP options
+### EXP options
 
 There are a number of EXP-specific options that control the build.
 The most important of these are:
@@ -114,7 +150,7 @@ Putting these together so far, your CMake call would be:
 ```
 export CUDAARCHS="75;80;86"
 cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=YES -DENABLE_USER=YES -DEigen3_DIR=$EIGEN_BASE/share/eigen3/cmake -DCMAKE_INSTALL_PREFIX=/home/user -Wno-dev ..
-````
+```
 
 ## Configuring without CUDA