GraviPet is the General Relativistic Astrophysics Visualization, Initialization, and Postprocessing Efficient Toolkit.
GraviPet provides ways to represent functions, for example solutions or initial conditions for PDEs (partial differential equations). Often such functions are discretized, i.e. they are represented in terms of a finite number of basis functions. Common choices are sampling function at grid points (finite differencing) or averaging functions over grid cells (finite volumes). Many other choices exist.
The main design idea behind GraviPet is to offer composable abstractions. That is, instead of multi-threaded finite differencing grid function, there exist basic (serial) grid functions, as well as adapters that render any other kind of grid function multi-threaded.
- Rename
Category
to something else, e.g.AbstractFunction
. - Do not call
extrema
to use the image as codomain inmap
. ForJuliaFunction
we known the codomain, for other functions be conservative. - Determine the result type of
map
in a predictable way: For regular functions callf
onzero
(is this a good idea?), forFun
andJuliaFunction
use the provided codomain. We really need to know the result type ahead of time because many things run asynchronously. - Add
map!
. - Add functions to modify domains and functions ("categories"):
- change name
- reduce domain, extend codomain
- calculate codomain from image
- Clean up tests: One file per abstract function
- Test projections and integrations
- Add alias
coordinates
formake_identity
- Add alias
interpolate
forevaluate
- Add vectorized
evaluate
- Think about ghost zones
- Make new
AbstractGridFunction
with efficient ghost zones? - What about refined grid functions, as needed for mesh refinement?
- Make new
- Provide
similar
- Speed up tests by running fewer cases
- Add CUDA, Metal tests
- Measure performance
- Add more discretizations:
- tree
- spectral
- unstructured
- mesh refinement
- multi-block
- Add symbolic functions
The GraviPet logo was created by Grabriela Secara at the Perimeter Institute for Theoretical Physics.