Difference between revisions of "Choosing a Driver"

From Einstein Toolkit Documentation
Jump to: navigation, search
(Basic CarpetX, no subcycling in time)
 
(One intermediate revision by the same user not shown)
Line 32: Line 32:
 
# GRMHD evolution code AsterX
 
# GRMHD evolution code AsterX
  
<syntaxhighlight lang="bash" line>
+
[[File:carpetx.th|carpetx.th]]
# A basic Component list for the Einstein Toolkit <http://einsteintoolkit.org/>
 
# using CarpetX <https://github.com/EinsteinToolkit/CarpetX>
 
# $Revision$
 
# $Date$
 
# $HeadURL$
 
 
 
!CRL_VERSION = 1.0
 
 
 
!DEFINE ROOT = Cactus
 
!DEFINE ARR  = $ROOT/arrangements
 
!DEFINE COMPONENTLIST_TARGET = $ROOT/thornlists/
 
 
 
# Cactus Flesh
 
!TARGET  = $ROOT
 
!TYPE    = git
 
!URL      = https://bitbucket.org/cactuscode/cactus.git
 
!NAME    = flesh
 
!CHECKOUT = .clang-format CONTRIBUTORS COPYRIGHT doc lib Makefile README.md src
 
 
 
# Simulation Factory
 
!TARGET  = $ROOT
 
!TYPE    = git
 
!URL      = https://bitbucket.org/simfactory/simfactory2.git
 
!REPO_PATH = $1
 
!NAME    = simfactory2
 
!CHECKOUT = ./simfactory
 
 
 
# Various Cactus utilities
 
!TARGET  = $ROOT/utils
 
!TYPE    = git
 
!URL      = https://bitbucket.org/cactuscode/utilities.git
 
!REPO_PATH = $2
 
!CHECKOUT = ./ParameterFiles ./Scripts ./Syntax
 
 
 
# The GetComponents script
 
!TARGET  = $ROOT/bin
 
!TYPE    = git
 
!URL      = https://github.com/gridaphobe/CRL.git
 
!CHECKOUT = GetComponents
 
 
 
# CactusDoc thorns
 
!TARGET  = $ARR/CactusDoc
 
!TYPE    = git
 
!URL      = https://bitbucket.org/cactuscode/coredoc.git
 
!NAME    = CoreDoc
 
!REPO_PATH = $1
 
!CHECKOUT = ./CoreDoc
 
 
 
# CactusBase thorns
 
!TARGET  = $ARR
 
!TYPE    = git
 
!URL      = https://bitbucket.org/cactuscode/cactusbase.git
 
!REPO_PATH = $2
 
!CHECKOUT =
 
CactusBase/Boundary
 
CactusBase/CoordBase
 
CactusBase/Fortran
 
CactusBase/InitBase
 
CactusBase/IOUtil
 
CactusBase/SymBase
 
CactusBase/Time
 
 
 
# CactusTest thorns
 
!TARGET  = $ARR
 
!TYPE    = git
 
!URL      = https://bitbucket.org/cactuscode/cactustest.git
 
!REPO_PATH = $2
 
!CHECKOUT = CactusTest/TestAllTypes
 
CactusTest/TestArrays
 
CactusTest/TestComplex
 
CactusTest/TestCoordinates
 
CactusTest/TestFortranCrayPointers
 
CactusTest/TestFortranDependencies1
 
CactusTest/TestFortranDependencies2
 
CactusTest/TestFpointerNULL
 
CactusTest/TestFreeF90
 
CactusTest/TestInclude1
 
CactusTest/TestInclude2
 
CactusTest/TestMath
 
CactusTest/TestPar
 
CactusTest/TestReduce
 
CactusTest/TestSchedule
 
CactusTest/TestStrings
 
CactusTest/TestTable
 
CactusTest/TestTimers
 
CactusTest/TestTypes
 
 
 
# CactusUtils thorns
 
!TARGET  = $ARR
 
!TYPE    = git
 
!URL      = https://bitbucket.org/cactuscode/cactusutils.git
 
!REPO_PATH = $2
 
!CHECKOUT = CactusUtils/Accelerator CactusUtils/OpenCLRunTime
 
CactusUtils/Formaline
 
CactusUtils/MemSpeed
 
CactusUtils/NaNCatcher
 
CactusUtils/Nice
 
CactusUtils/NoMPI
 
CactusUtils/SystemStatistics
 
CactusUtils/SystemTopology
 
CactusUtils/TerminationTrigger
 
CactusUtils/TimerReport
 
CactusUtils/Trigger
 
CactusUtils/Vectors
 
CactusUtils/WatchDog
 
 
 
# Additional Cactus thorns
 
!TARGET  = $ARR
 
!TYPE    = git
 
!URL      = https://github.com/EinsteinToolkit/$1-$2
 
!REPO_PATH = ../$1-$2
 
!CHECKOUT = ExternalLibraries/OpenBLAS ExternalLibraries/OpenCL ExternalLibraries/pciutils ExternalLibraries/PETSc
 
ExternalLibraries/ADIOS2
 
ExternalLibraries/AMReX
 
ExternalLibraries/BLAS
 
ExternalLibraries/Boost
 
ExternalLibraries/FFTW3
 
ExternalLibraries/GSL
 
ExternalLibraries/HDF5
 
ExternalLibraries/hwloc
 
ExternalLibraries/LAPACK
 
ExternalLibraries/libjpeg
 
ExternalLibraries/LORENE
 
ExternalLibraries/MPI
 
ExternalLibraries/NSIMD
 
ExternalLibraries/openPMD
 
ExternalLibraries/OpenSSL
 
ExternalLibraries/PAPI
 
ExternalLibraries/pthreads
 
ExternalLibraries/Silo
 
ExternalLibraries/ssht
 
ExternalLibraries/yaml_cpp
 
ExternalLibraries/zlib
 
 
 
# Kuibit post-processing tools for simulations
 
!TARGET  = $ROOT/utils/Analysis
 
!TYPE    = git
 
!URL      = https://github.com/Sbozzolo/kuibit
 
!REPO_PATH = $2
 
!CHECKOUT = kuibit/docs kuibit/examples kuibit/kuibit kuibit/LICENSE kuibit/README.md
 
 
 
# Numerical
 
!TARGET  = $ARR
 
!TYPE    = git
 
!URL      = https://bitbucket.org/cactuscode/numerical.git
 
!REPO_PATH= $2
 
!CHECKOUT =
 
Numerical/AEILocalInterp
 
 
 
# CarpetX thorns
 
!TARGET  = $ARR
 
!TYPE    = git
 
!URL      = https://github.com/EinsteinToolkit/CarpetX.git
 
!REPO_PATH = $2
 
!CHECKOUT =
 
CarpetX/ADMBaseX
 
CarpetX/Algo
 
CarpetX/Arith
 
CarpetX/BoxInBox
 
CarpetX/CarpetX
 
CarpetX/CarpetXRegrid
 
CarpetX/CoordinatesX
 
CarpetX/Derivs
 
CarpetX/ErrorEstimator
 
CarpetX/FluxWaveToyX
 
CarpetX/HydroBaseX
 
CarpetX/Loop
 
CarpetX/MovingBoxToy
 
CarpetX/ODESolvers
 
CarpetX/PDESolvers
 
CarpetX/ParticlesX
 
CarpetX/PoissonX
 
CarpetX/SIMDWaveToyX
 
CarpetX/SpacetimeWaveToyX
 
CarpetX/StaggeredWaveToyX
 
CarpetX/TestArrayGroup
 
CarpetX/TestBoundaries
 
CarpetX/TestBoxInBox
 
CarpetX/TestDerivs
 
CarpetX/TestInterpolate
 
CarpetX/TestLoopX
 
CarpetX/TestNorms
 
CarpetX/TestODESolvers
 
CarpetX/TestODESolvers2
 
CarpetX/TestOutput
 
CarpetX/TestProlongate
 
CarpetX/TestSymmetries
 
CarpetX/TmunuBaseX
 
CarpetX/VGFWaveToyX
 
CarpetX/WaveToyX
 
 
 
# SpacetimeX thorns
 
!TARGET  = $ARR
 
!TYPE    = git
 
!URL      = https://github.com/EinsteinToolkit/SpacetimeX.git
 
!REPO_PATH = $2
 
!CHECKOUT =
 
SpacetimeX/AHFinderDirect
 
SpacetimeX/BrillLindquist
 
SpacetimeX/Cowling
 
SpacetimeX/KerrSchildX
 
SpacetimeX/Multipole
 
SpacetimeX/NewRadX
 
SpacetimeX/PunctureTracker
 
SpacetimeX/Punctures
 
SpacetimeX/SphericalHarmonics
 
SpacetimeX/SphericalSurface
 
SpacetimeX/StaticTrumpet
 
SpacetimeX/TestNewRadX
 
SpacetimeX/TwoPuncturesX
 
SpacetimeX/Weyl
 
SpacetimeX/WeylScal4
 
SpacetimeX/Z4c
 
 
 
# Canuda -- CanudaX
 
!TARGET    = $ARR
 
!TYPE      = git
 
!URL      = https://bitbucket.org/canuda/canudax.git
 
!REPO_PATH = $2
 
!CHECKOUT =
 
CanudaX/CanudaX_BSSNMoL
 
CanudaX/CanudaX_ExactID
 
CanudaX/CanudaX_NPScalars
 
 
 
# Cottonmouth
 
!TARGET  = $ARR
 
!TYPE    = git
 
!URL      = https://github.com/EinsteinToolkit/Cottonmouth.git
 
!REPO_PATH= $2
 
!CHECKOUT =
 
Cottonmouth/CottonmouthBSSNOK4m
 
Cottonmouth/CottonmouthGaugeWaveID
 
Cottonmouth/CottonmouthLinearWaveID
 
Cottonmouth/CottonmouthZ4c4m
 
 
 
# AsterX
 
!TARGET  = $ARR
 
!TYPE    = git
 
!URL      = https://github.com/EinsteinToolkit/AsterX.git
 
!REPO_PATH= $2
 
!CHECKOUT =
 
AsterX/AsterAnalysis
 
AsterX/AsterMasks
 
AsterX/AsterSeeds
 
AsterX/AsterUtils
 
AsterX/AsterX
 
AsterX/Con2PrimFactory
 
AsterX/EOSX
 
AsterX/ReconX
 
AsterX/TOVSolverX
 
AsterX/FishboneMoncriefIDX
 
</syntaxhighlight>
 
  
 
== CarpetX with subcycling in time ==
 
== CarpetX with subcycling in time ==
 
TODO
 
TODO

Latest revision as of 19:16, 19 August 2026

Contents
Carpet Vs. CarpetX
Basic CarpetX, no subcycling in time
CarpetX with subcycling in time

Carpet Vs. CarpetX

Currently there are two production drivers in the Einstein Toolkit: Carpet and CarpetX.

Carpet is a CPU based Adaptive Mesh Refinement (AMR) framework that has been a part of the Einstein Toolkit since 2006. It has seen extensive production use and should work out of the box when you get an official release of the Einstein Toolkit. If you are using Carpet, please see the official download and install instructions here.

CarpetX is a new AMR driver capable of running on CPUs and GPUs. The driver itself is ready for production use and is also a part of the Einstein Toolkit. However, when using CarpetX, a number of thorns that are required for fully featured numerical relativity simulations are not included in the official release. This requires a different thornlist(s) depending on which features are desired. This is because either thorns are still in development phase or some existing Carpet thorns are not compatible with CarpetX (yet).

For this reason, we are presenting a collection of thornlists for checking out various components required for fully featured simulations. This is a temporary solution and, in the future, such thornlists are expected to be no longer necessary once CarpetX thorns are included in the official release.

Basic CarpetX, no subcycling in time

This thornlist provides a basic Cactus checkout, with CarpetX, and its required external libraries. It also includes:

  1. Spacetime evolution codes (CanudaX, Cottonmouth, Z4c)
  2. Spacetime evolution utilities (Initial data, puncture tracking, apparent horizon finding)
  3. GRMHD evolution code AsterX

File:carpetx.th

CarpetX with subcycling in time

TODO