From b86e29702d2b210cdc0569bad060b320ebabbf22 Mon Sep 17 00:00:00 2001 From: David Minton Date: Thu, 29 Feb 2024 19:09:19 -0500 Subject: [PATCH 1/4] Removed the Docker instructions until they can be cleaned up --- docs/getting-started-guide/index.rst | 74 +--------------------------- 1 file changed, 1 insertion(+), 73 deletions(-) diff --git a/docs/getting-started-guide/index.rst b/docs/getting-started-guide/index.rst index 514b5ffdb..790e0d231 100644 --- a/docs/getting-started-guide/index.rst +++ b/docs/getting-started-guide/index.rst @@ -203,79 +203,7 @@ You may need to run the above command as root or with sudo if you are installing Building the exectuable using Docker ------------------------------------ -The Swiftest project contains a Dockerfile -that may be used to generate an executable without needing to provide -any external dependencies, other than the Docker engine itself (see -`here `__ for instructions on -obtaining Docker). Once Docker is installed and the Docker engine is -running, execute:: - - $ docker build --target=export-driver \ - --output=./bin \ - --build-arg MACHINE_CODE_VALUE="Host" \ - [ -f Dockerfile.GNU-Linux | -f Dockerfile.Intel ] \ - [ --build-arg BUILD_TYPE="*RELEASE*|DEBUG|TESTING|PROFILE" ] \ - [ --build-arg EXTRA_CMAKE_OPTIONS="-D" ] . - -The Docker build will download and compile all of the library -dependencies (HDF5, NetCDF-C, and NetCDF-Fortran) as static libraries -and the Swiftest driver using Intel compilers. Once completed, the -Swiftest executable, called ``swiftest_driver``, should now be created -in the ``bin/`` directory. - - Note: The Dockerfile is designed to build an executable that is - compatible with a broad range of CPU architectures by specifying the - SSE2 instruction as a target for SIMD instructions using the ``-x`` - compiler option. When compiling on the same CPU archictecture you - plan to execute the driver program, for the highest possible SIMD - performance, use - ``--build-arg MACHINE_CODE_VALUE="Host"`` to override the default ``MACHINE_CODE_VALUE=“SSE2”``. - For additional options see - `here `__. - -The optional Docker argument ``EXTRA_CMAKE_OPTIONS`` is provided to pass any additional CMake arguments (see `supported CMake options `_) - - -Download the executable as a Docker or Singularity container. -------------------------------------------------------------- - -The Swiftest driver is available as a Docker container on DockerHub in -two versions: Intel and GNU. The Intel version was compiled for the -x86_64 CPU using the Intel classic Fortran compiler. The GNU version was -compliled for the x86_64 CPU using gfortran. The Intel version is faster -than the GNU version (though not as fast as a native compile to the -target CPU that you wish to run it on due to vectorization optimizations -that Swiftest takes advantage of), however it is much larger: The Intel -version is ~2.7GB while the GNU version is ~300MB. The Singularity -container pulls from the same DockerHub container. - -To facilitate installation of the container, we provide a set of shell -scripts to help automate the process of installing container versions of -the executable. To install the default Intel version of the docker -container from within the ``swiftest\`` project directory:: - - $ cd docker - $ . ./install.sh - -To install the GNU version:: - - $ cd docker - $ . ./install.sh gnu - -The Singularity versions are installed the same way, just replace -``cd docker`` with ``cd singularity`` above. - -Whether installing either the Docker or Singularity containers, the -install script will copy an executable shell script ``swiftest_driver`` -into ``swiftest/bin/``. Not that when installing the Singularity -container, the install script will set an environment variable called -``SWIFTEST_SIF`` that must point to the aboslute path of the container -file called ``swiftest_driver.sif``. To use the driver script in a -future shell, rather than running the install script again, we suggest -adding the environment variable definition to your shell startup script -(e.g. add -``export SWIFTEST_SIF="/path/to/swiftest/singularity/swiftest.sif"`` to -your ``.zshrc``) +TBD From 6451ada41e7575a06711e14fb6fe1423997a0769 Mon Sep 17 00:00:00 2001 From: David Minton Date: Thu, 29 Feb 2024 19:11:58 -0500 Subject: [PATCH 2/4] Got rid of flag that was causing the warning when building the docs --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index 803b51e0e..9e41b7474 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -68,7 +68,7 @@ html: .PHONY: rtdhtml rtdhtml: - $(SPHINXBUILD) -T -j auto -E -W --keep-going -b html -d $(BUILDDIR)/doctrees -D language=en . $(BUILDDIR)/html + $(SPHINXBUILD) -T -E -W --keep-going -b html -d $(BUILDDIR)/doctrees -D language=en . $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." From 7d5a216a379928e9e2303a17b0cb137fbb2273bd Mon Sep 17 00:00:00 2001 From: David Minton Date: Thu, 29 Feb 2024 19:12:27 -0500 Subject: [PATCH 3/4] Incremented the version number --- pyproject.toml | 2 +- src/globals/globals_module.f90 | 2 +- version.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0e754dc6b..aca1f0c2d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "swiftest" -version = "2024.2.0" +version = "2024.3.0" authors=[ {name = 'David A. Minton', email='daminton@purdue.edu'}, {name = 'Carlisle Wishard'}, diff --git a/src/globals/globals_module.f90 b/src/globals/globals_module.f90 index c17d6a2eb..0507b0bcb 100644 --- a/src/globals/globals_module.f90 +++ b/src/globals/globals_module.f90 @@ -48,7 +48,7 @@ module globals integer(I4B), parameter :: UPPERCASE_OFFSET = iachar('A') - iachar('a') !! ASCII character set parameter for lower to upper !! conversion - offset between upper and lower - character(*), parameter :: VERSION = "2024.2.0" !! Swiftest version + character(*), parameter :: VERSION = "2024.3.0" !! Swiftest version !> Symbolic name for integrator types character(*), parameter :: UNKNOWN_INTEGRATOR = "UKNOWN INTEGRATOR" diff --git a/version.txt b/version.txt index 032892e0c..b6503254e 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -2024.2.0 \ No newline at end of file +2024.3.0 \ No newline at end of file From aee556c7927dfb06bdb6753f8198426ffff8beb3 Mon Sep 17 00:00:00 2001 From: David Minton Date: Thu, 29 Feb 2024 19:19:25 -0500 Subject: [PATCH 4/4] Rearranged some of the documentation pages --- docs/getting-started-guide/index.rst | 23 +++++++++++++++++++++++ docs/index.rst | 21 ++------------------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/docs/getting-started-guide/index.rst b/docs/getting-started-guide/index.rst index 790e0d231..66fca89e4 100644 --- a/docs/getting-started-guide/index.rst +++ b/docs/getting-started-guide/index.rst @@ -4,6 +4,29 @@ Getting Started =============== +Swiftest is a re-write of the `Swifter `__ software package that incorporates modern programming techniques and performance +improvements. Swiftest contains the following numerical integrators: + +- **Wisdom-Holman Mapping (WHM)** - A symplectic n-body mapping method. + See `Wisdom & Holman (1991) `__. +- **Regularized Mixed Variable Symplectic (RMVS)** - An extension of WHM that is capable of handling close encounters between test + particles and massive bodies. See `Levison & Duncan (1994) `__. +- **Democratic Heliocentric (HELIO)** - A symplectic integrator that uses the democratic heliocentric coordinate frame. See +- `Duncan, Levison, & Lee (1998) `__. +- **Symplectic Massive Body Algorithm (SyMBA)** - An extension of HELIO that is capable of handling close encounters between massive bodies. + See `Duncan, Levison, & Lee (1998) `__. + +Swiftest also includes the collisional fragmentation algorithm *Fraggle*, which can be used to model collisional fragmentation when using the SyMBA integrator. +Fraggle is designed to resolve collisions between massive bodies by determining the collisional regime, derived from the work of `Leinhardt & Stewart +(2012) `__, and generating the appropriate mass distribution of fragments. Swiftest +fully incorporates collisional fragments into the gravitational system, evolving these new bodies along with pre-existing bodies, including +their growth and any future fragmentation events in which they are involved. + +Swiftest is written in Modern Fortran and is designed to be run from Python. The Python package provides a set of tools for generating +initial conditions, running simulations, and processing output data. Swiftest can also be run from the command line using the ``swiftest_driver`` executable, +provided that initial conditions and configuration files are available in the path. + + Installation ------------ diff --git a/docs/index.rst b/docs/index.rst index ed9cb22ac..a7e43d04d 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -3,25 +3,8 @@ Swiftest ======== -Swiftest is a software packaged designed to model the dynamical evolution of gravitational systems. Swiftest is a re-write of the -`Swifter `__ software package that incorporates modern programming techniques and performance -improvements. -Swiftest contains the following numerical integrators: - -- **Wisdom-Holman Mapping (WHM)** - A symplectic n-body mapping method. - See `Wisdom & Holman (1991) `__. -- **Regularized Mixed Variable Symplectic (RMVS)** - An extension of WHM that is capable of handling close encounters between test - particles and massive bodies. See `Levison & Duncan (1994) `__. -- **Democratic Heliocentric (HELIO)** - A symplectic integrator that uses the democratic heliocentric coordinate frame. See -- `Duncan, Levison, & Lee (1998) `__. -- **Symplectic Massive Body Algorithm (SyMBA)** - An extension of HELIO that is capable of handling close encounters between massive bodies. - See `Duncan, Levison, & Lee (1998) `__. - -Swiftest also includes the collisional fragmentation algorithm **Fraggle**, an addition to the SyMBA integrator. Fraggle is designed to -resolve collisions between massive bodies by determining the collisional regime, derived from the work of `Leinhardt & Stewart -(2012) `__, and generating the appropriate mass distribution of fragments. Swiftest -fully incorporates collisional fragments into the gravitational system, evolving these new bodies along with pre-existing bodies, including -their growth and any future fragmentation events in which they are involved. +Swiftest is a software packaged designed to model the long-term dynamical dynamics of n-body systems with a dominant central body, +like the solar system. **Useful links**: