Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Apparent Horizon Finder #236

Merged
merged 99 commits into from
Aug 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
07d4882
New AHFinder for public code + 2D GRChombo + improved Interpolator cl…
TaigoFr Jan 19, 2021
a3a6fc0
Improve convergence by change Expansion to (r * Expansion)
TaigoFr Jan 19, 2021
e55e1e2
Fix Make.defs.local for github action
TaigoFr Jan 19, 2021
da40de2
Minor bugs
TaigoFr Jan 27, 2021
a56e3ee
Merge commit '70929fbf96a308a008f6c967aaa5dec32d2b38df' into feature/…
TaigoFr Feb 18, 2021
2539b08
Fill only necessary ghosts in AHFinder
TaigoFr Feb 18, 2021
4f5831a
Bug fixes and generalization of extraction to 2D (preparation for hea…
TaigoFr Feb 18, 2021
7754653
Merge remote-tracking branch 'origin/main' into feature/ah_finder
TaigoFr Feb 18, 2021
e61576e
Minor changes
TaigoFr Feb 19, 2021
74abc55
Minor changes
TaigoFr Mar 1, 2021
d7fb648
Add spin as a vector calculation
TaigoFr Mar 1, 2021
84d3aa5
Allow setting punctures as AHs origins
TaigoFr Mar 1, 2021
9b2cf50
Fix for triple mergers
TaigoFr Mar 5, 2021
5fadef9
Fix restart bug
TaigoFr Mar 5, 2021
ecaf9ee
Show how to change AHFunction parameters (expansion radius power)
TaigoFr Mar 5, 2021
37ed079
Fix bug - ghosts not being filled correctly for diagnostics that the …
TaigoFr Mar 5, 2021
fad356e
Run dos2unix
TaigoFr Mar 10, 2021
dfa0238
[Important!] Fix Expansion calculation bug!!!
TaigoFr Mar 10, 2021
068a30a
Default AH fix (with opt=HIGH, flat metric was not initialized to 0 i…
TaigoFr Mar 12, 2021
b6de6e1
Minor change to make extraction more generic
TaigoFr Apr 23, 2021
7b93593
Add Open Integration Methods compatibility and UniformSphericalExtrac…
TaigoFr Apr 23, 2021
2574b7d
In reflective direction, origin should not move (e.g. stay at 0 for r…
TaigoFr Apr 23, 2021
54b66d1
Merge remote-tracking branch 'origin/main' into feature/ah_finder
TaigoFr Apr 23, 2021
e3e31dc
Simplify InterpSource (I wanted to remove the getLevelData() from Int…
TaigoFr Apr 27, 2021
242fbcb
Fix minor bug affecting AH Tests
TaigoFr Apr 27, 2021
88bb72a
Rename AH new parameters
TaigoFr Apr 27, 2021
e3ae50b
Detach 2D AHFinder test from BHAMR
TaigoFr Jun 29, 2021
ba85645
Refactor AHFinder to template class
TaigoFr Jun 29, 2021
1c60880
Move PETSc specifics of ApparentHorizon to separate class
TaigoFr Jun 29, 2021
db13f84
Move AHFunction::params to inside AHParams
TaigoFr Jun 29, 2021
16dfb51
Improve naming of AH data structures
TaigoFr Jun 29, 2021
9ec2bc6
Added AHInitialGuess
TaigoFr Jun 29, 2021
07774ad
Allow to change SNES/KSP PETSc parameters
TaigoFr Jun 29, 2021
42f4d5a
Merge remote-tracking branch 'origin/main' into feature/ah_finder
TaigoFr Jun 29, 2021
19755fa
Post merge: FOR? to FOR in AHFinder code
TaigoFr Jun 29, 2021
2e6f80d
Fix typo and debug mode warnings
TaigoFr Jun 30, 2021
0020ed4
Fix SphericalExtractionUniformTest (make it more robust by decreasing…
TaigoFr Jun 30, 2021
634ba0a
Fix Initial Guess for mergers
TaigoFr Jul 7, 2021
cb7863a
Remove irreducible mass from 2D runs and fix restart bug for merger AHs
TaigoFr Aug 5, 2021
170af90
Add AH Linear Momentum calculation
TaigoFr Aug 5, 2021
0b74868
Fix Weyl Imaginary part extraction bug
TaigoFr Nov 4, 2021
403975d
Fix PetscInt and PetscReal types errors in ParmParse (only for some c…
TaigoFr Jan 27, 2022
d25c16a
MPI_Allreduce argument fix in calculate_average_F()
Jan 27, 2022
6465da0
Merge branch 'main' into feature/ah_finder
TaigoFr Feb 2, 2022
97cf4a0
Merge remote-tracking branch 'origin/main' into feature/ah_finder
TaigoFr Mar 1, 2022
6526559
Fix warning when using delete
TaigoFr Mar 1, 2022
1bef046
Fix clang warnings
TaigoFr Mar 2, 2022
1c0ac9b
Fix warning for 2D
TaigoFr Mar 1, 2022
e56cbbc
remove Examples not in the main branch
tamaraevst May 24, 2023
b6272b5
attempt to resolve conflicts
tamaraevst Jun 6, 2023
0e2e1c7
Merge branch 'main' into testing/ah_finder
tamaraevst Jun 6, 2023
80f9b3c
Update Intel Make.defs.local for tests
tamaraevst Jun 6, 2023
5822367
CI: Refactor Clang action
mirenradia Jun 9, 2023
1f07427
CI: Pass build config arguments explicitly
mirenradia Jun 9, 2023
aa4aed7
CI: Rename Clang action
mirenradia Jun 9, 2023
654605b
CI: Refactor GCC action
mirenradia Jun 9, 2023
0a7af56
CI: Rename clang-format action
mirenradia Jun 9, 2023
86b703a
CI: Refactor Intel Classic action
mirenradia Jun 9, 2023
992cc16
CI: Enable AHFinder in Clang action
mirenradia Jun 9, 2023
b070420
ApparentHorizonTest2D: Define GR_SPACEDIM in cpp
mirenradia Jun 12, 2023
8844653
CI: Enable AHFinder in GCC action
mirenradia Jun 12, 2023
f84fc09
CI: Disable 2D test without MPI
mirenradia Jun 12, 2023
daa700d
Added a test for a rotation matrix, added capability to use apparent …
tamaraevst Jun 20, 2023
489ed5a
Some files were forgotten in commit daa700d, here they are added, all
tamaraevst Jun 21, 2023
ba55872
Use Chombo macros to simplify code, check validity of parameters and
tamaraevst Jun 27, 2023
456568f
remove missed line
tamaraevst Jun 27, 2023
dbb8760
minor corrections -- removing repeated lines
tamaraevst Jun 27, 2023
66109eb
minor, forgotten endif
tamaraevst Jun 27, 2023
045102e
revert to using CH_assert for now and fix some minor bugs
tamaraevst Jun 27, 2023
4e32f07
simplify some code with more chombo macros
tamaraevst Jul 5, 2023
35ac41d
more work with Chombo macros and avoiding repeating blocks in code
tamaraevst Jul 7, 2023
37b2234
make parameter files consistent and introduce parameter checks in fil…
tamaraevst Jul 7, 2023
7617829
symbolically link SphericalExtractionUniformTest with SphericalExtrac…
tamaraevst Jul 13, 2023
5ea0cb5
rename name type SphericalExtractionUniformTestLevel to SphericalExtr…
tamaraevst Jul 13, 2023
106fd1f
Add SmallDataIOReader class
mirenradia Aug 2, 2023
2312778
ApparentHorizon: Replace SmallDataIO::read() calls
mirenradia Aug 2, 2023
947228d
ApparentHorizonTests: Replace SmallDataIO::read() calls
mirenradia Aug 2, 2023
2a7f07d
SmallDataIO: Remove read function
mirenradia Aug 2, 2023
19fbc89
Clang-format
mirenradia Aug 2, 2023
569e646
Add always_assert macro
mirenradia Aug 2, 2023
85145d3
SmallDataIOReader: Change assert -> always_assert
mirenradia Aug 2, 2023
0a22643
SmallDataIOReader: Make most methods MPI-safe
mirenradia Aug 3, 2023
1149fd0
SmallDataIOReader: Add contains_data() function
mirenradia Aug 3, 2023
f60aa86
ApparentHorizon: Refactor SmallDataIOReader uses
mirenradia Aug 3, 2023
0831141
update centres along all coordinate directions, has been tested on a …
tamaraevst Aug 7, 2023
2f556b5
accidentally removed for-loop
tamaraevst Aug 7, 2023
35e176a
resolve conflicts in ApparentHorizon.impl.hpp
tamaraevst Aug 7, 2023
4fd650c
fix clang format and conflicts in 2D/3D tests of apparent horizon
tamaraevst Aug 7, 2023
2c382e7
update parameter files, enforce error message when different AH point…
tamaraevst Aug 15, 2023
9002a4c
run clang format
tamaraevst Aug 15, 2023
48f3bac
introduce AH_FINDER_SOURCE in GNUMakefiles so that the AH path is inc…
tamaraevst Aug 16, 2023
67bc517
run clang format again
tamaraevst Aug 16, 2023
ae94705
revert GNUMakefile files
tamaraevst Aug 17, 2023
5ac3216
ChomboParameters: Make all check/warn funcs public
mirenradia Aug 18, 2023
1212de1
AHParams: Modify parameter checks
mirenradia Aug 18, 2023
a8ad337
FilesystemTools: Add file_exists function
mirenradia Aug 18, 2023
c8ad4d8
SmallDataIOReader: Revert changes if file doesn't exist
mirenradia Aug 18, 2023
1f86c78
ApparentHorizon: Fix restart when stats file does not exist
mirenradia Aug 18, 2023
2a06030
revert to AH_activate parameter
tamaraevst Aug 18, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
name: Check Clang Format
name: Clang Format

on: [push]

jobs:
format:
name: Check
runs-on: ubuntu-latest

steps:
Expand Down
103 changes: 103 additions & 0 deletions .github/workflows/clang-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: Clang Tests

on: [push]

jobs:
tests:
runs-on: ubuntu-22.04
strategy:
matrix:
# see available versions here: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#preinstalled-software
clang-version: [12, 13, 14]
dim: [2, 3]
mpi: ['FALSE', 'TRUE']
opt: ['FALSE', 'TRUE']
exclude:
# No point running 2D test without MPI as the only test is the
# Apparent Horizon one which needs MPI
- dim: 2
mpi: 'FALSE'
include:
- debug: 'TRUE'
opt: 'FALSE'
- debug: 'FALSE'
opt: 'TRUE'
name: Clang ${{ matrix.clang-version }}, DIM = ${{ matrix.dim }}, MPI = ${{ matrix.mpi }}, OPT = ${{ matrix.opt }}
env:
CHOMBO_HOME: ${{ github.workspace }}/Chombo/lib
OMP_NUM_THREADS: 1
OMPI_CXX: clang++
BUILD_ARGS: DIM=${{ matrix.dim }} MPI=${{ matrix.mpi}} OPT=${{ matrix.opt }} DEBUG=${{ matrix.debug }}

steps:
- name: Checkout Chombo
uses: actions/checkout@v3
with:
repository: GRChombo/Chombo
path: Chombo

- name: Checkout GRChombo
uses: actions/checkout@v3
with:
path: GRChombo

- name: Update package manager database
id: update-database
continue-on-error: true
run: sudo apt-get update

# This is quite slow so only do this if the previous command fails
- name: Update package repository mirrors if necessary
if: steps.update-database.outcome == 'failure'
run: |
sudo gem install apt-spy2
sudo apt-spy2 fix --commit --launchpad --country=US
sudo apt-get update

- name: Install common dependencies
run: sudo apt-get -y --no-install-recommends install csh libhdf5-dev libblas-dev liblapack-dev libgetopt-complete-perl

- name: Install MPI dependencies
if: matrix.mpi == 'TRUE'
run: sudo apt-get -y --no-install-recommends install libhdf5-openmpi-dev petsc-dev openmpi-bin

- name: Set compiler
run: |
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${{ matrix.clang-version }} 200
clang++ --version

- name: Build Chombo
run: |
if [[ "${{ matrix.mpi }}" == "TRUE" ]]; then
MAKE_DEFS_FILE=$GITHUB_WORKSPACE/GRChombo/InstallNotes/MakeDefsLocalExamples/ubuntu-clang.Make.defs.local
else
MAKE_DEFS_FILE=$GITHUB_WORKSPACE/GRChombo/InstallNotes/MakeDefsLocalExamples/ubuntu-clang-nompi.Make.defs.local
fi
cp $MAKE_DEFS_FILE $CHOMBO_HOME/mk/Make.defs.local
make -j 4 AMRTimeDependent AMRTools BaseTools BoxTools $BUILD_ARGS
working-directory: ${{ env.CHOMBO_HOME }}

- name: Build GRChombo Tests (3D)
if: matrix.DIM == 3
# We don't want to run the 2D apparent horizon finder test here
run: |
rm -rf Tests/ApparentHorizonFinderTest2D
make test -j 4 $BUILD_ARGS
working-directory: ${{ github.workspace }}/GRChombo

- name: Run GRChombo Tests (3D)
if: matrix.DIM == 3
run: make run -j 2 $BUILD_ARGS
working-directory: ${{ github.workspace }}/GRChombo

- name: Build GRChombo Tests (2D)
if: matrix.DIM == 2
run: make test -j 4 $BUILD_ARGS
# Only 2D test is apparent horizon finder test
working-directory: ${{ github.workspace }}/GRChombo/Tests/ApparentHorizonFinderTest2D

- name: Run GRChombo Tests (2D)
if: matrix.DIM == 2
run: make run -j 2 $BUILD_ARGS
# Only 2D test is apparent horizon finder test
working-directory: ${{ github.workspace }}/GRChombo/Tests/ApparentHorizonFinderTest2D
103 changes: 103 additions & 0 deletions .github/workflows/gcc-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: GCC Tests

on: [push]

jobs:
tests:
runs-on: ubuntu-22.04
strategy:
matrix:
# see available versions here: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#preinstalled-software
gcc-version: [9, 10, 11, 12]
dim: [2, 3]
mpi: ['FALSE', 'TRUE']
opt: ['FALSE', 'TRUE']
exclude:
# No point running 2D test without MPI as the only test is the
# Apparent Horizon one which needs MPI
- dim: 2
mpi: 'FALSE'
include:
- debug: 'TRUE'
opt: 'FALSE'
- debug: 'FALSE'
opt: 'TRUE'
name: GCC ${{ matrix.gcc-version }}, DIM = ${{ matrix.dim }}, MPI = ${{ matrix.mpi }}, OPT = ${{ matrix.opt }}
env:
CHOMBO_HOME: ${{ github.workspace }}/Chombo/lib
OMP_NUM_THREADS: 1
BUILD_ARGS: DIM=${{ matrix.dim }} MPI=${{ matrix.mpi}} OPT=${{ matrix.opt }} DEBUG=${{ matrix.debug }}

steps:
- name: Checkout Chombo
uses: actions/checkout@v3
with:
repository: GRChombo/Chombo
path: Chombo

- name: Checkout GRChombo
uses: actions/checkout@v3
with:
path: GRChombo

- name: Update package manager database
id: update-database
continue-on-error: true
run: sudo apt-get update

# This is quite slow so only do this if the previous command fails
- name: Update package repository mirrors if necessary
if: steps.update-database.outcome == 'failure'
run: |
sudo gem install apt-spy2
sudo apt-spy2 fix --commit --launchpad --country=US
sudo apt-get update

- name: Install common dependencies
run: sudo apt-get -y --no-install-recommends install csh libhdf5-dev libblas-dev liblapack-dev libgetopt-complete-perl

- name: Install MPI dependencies
if: matrix.mpi == 'TRUE'
run: sudo apt-get -y --no-install-recommends install libhdf5-openmpi-dev petsc-dev openmpi-bin

- name: Set Compilers
run: |
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${{ matrix.gcc-version }} 200
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-${{ matrix.gcc-version }} 200
sudo update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-${{ matrix.gcc-version }} 200

- name: Build Chombo
run: |
if [[ "${{ matrix.mpi }}" == "TRUE" ]]; then
MAKE_DEFS_FILE=$GITHUB_WORKSPACE/GRChombo/InstallNotes/MakeDefsLocalExamples/ubuntu-gcc.Make.defs.local
else
MAKE_DEFS_FILE=$GITHUB_WORKSPACE/GRChombo/InstallNotes/MakeDefsLocalExamples/ubuntu-gcc-nompi.Make.defs.local
fi
cp $MAKE_DEFS_FILE $CHOMBO_HOME/mk/Make.defs.local
make -j 4 AMRTimeDependent AMRTools BaseTools BoxTools $BUILD_ARGS
working-directory: ${{ env.CHOMBO_HOME }}

- name: Build GRChombo Tests (3D)
if: matrix.DIM == 3
# We don't want to run the 2D apparent horizon finder test here
run: |
rm -rf Tests/ApparentHorizonFinderTest2D
make test -j 4 $BUILD_ARGS
working-directory: ${{ github.workspace }}/GRChombo

- name: Run GRChombo Tests (3D)
if: matrix.DIM == 3
run: make run -j 2 $BUILD_ARGS
working-directory: ${{ github.workspace }}/GRChombo

- name: Build GRChombo Tests (2D)
if: matrix.DIM == 2
run: make test -j 4 $BUILD_ARGS
# Only 2D test is apparent horizon finder test
working-directory: ${{ github.workspace }}/GRChombo/Tests/ApparentHorizonFinderTest2D

- name: Run GRChombo Tests (2D)
if: matrix.DIM == 2
run: make run -j 2 $BUILD_ARGS
# Only 2D test is apparent horizon finder test
working-directory: ${{ github.workspace }}/GRChombo/Tests/ApparentHorizonFinderTest2D
Original file line number Diff line number Diff line change
@@ -1,13 +1,24 @@
name: Run GRChombo Tests (Intel Classic)
name: Intel (Classic) Tests

on: [push]

jobs:
build-and-test:
runs-on: ubuntu-22.04
strategy:
matrix:
mpi: ['FALSE', 'TRUE']
opt: ['FALSE', 'TRUE']
include:
- debug: 'TRUE'
opt: 'FALSE'
- debug: 'FALSE'
opt: 'TRUE'
name: MPI = ${{ matrix.mpi }}, OPT = ${{ matrix.opt }}
env:
CHOMBO_HOME: ${{ github.workspace }}/Chombo/lib
OMP_NUM_THREADS: 1
BUILD_ARGS: MPI=${{ matrix.mpi}} OPT=${{ matrix.opt }} DEBUG=${{ matrix.debug }}

steps:
- name: Checkout Chombo
Expand Down Expand Up @@ -37,30 +48,35 @@ jobs:
- name: Install Chombo dependencies
run: sudo apt-get -y --no-install-recommends install csh libgetopt-complete-perl

- name: Install Intel compilers/MPI
- name: Install Intel compilers
run: |
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
| gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update
sudo apt-get -y install intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-compiler-fortran intel-oneapi-mkl intel-oneapi-mpi intel-oneapi-mpi-devel intel-oneapi-openmp
sudo apt-get -y install intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-compiler-fortran intel-oneapi-mkl intel-oneapi-openmp
working-directory: /tmp

- name: Instal Intel MPI
if: matrix.mpi == 'TRUE'
run: |
sudo apt-get -y install intel-oneapi-mpi intel-oneapi-mpi-devel

- name: Build Chombo
run: |
source /opt/intel/oneapi/setvars.sh
cp $GITHUB_WORKSPACE/GRChombo/InstallNotes/MakeDefsLocalExamples/intel-classic-no-hdf5-minimal.Make.defs.local $CHOMBO_HOME/mk/Make.defs.local
make -j 4 AMRTimeDependent AMRTools BaseTools BoxTools
make -j 4 AMRTimeDependent AMRTools BaseTools BoxTools $BUILD_ARGS
working-directory: ${{ env.CHOMBO_HOME }}

- name: Build GRChombo Tests
run: |
source /opt/intel/oneapi/setvars.sh
make test -j 4
make test -j 4 $BUILD_ARGS
working-directory: ${{ github.workspace }}/GRChombo

- name: Run GRChombo Tests
run: |
source /opt/intel/oneapi/setvars.sh
make run -j 2
working-directory: ${{ github.workspace }}/GRChombo
make run -j 2 $BUILD_ARGS
working-directory: ${{ github.workspace }}/GRChombo
53 changes: 0 additions & 53 deletions .github/workflows/run-grchombo-tests-clang.yml

This file was deleted.

Loading