SELF
SELF copied to clipboard
v0.0.1 Checklist
Pre-Canned Models
- [ ] Linear Shallow Water (2-D) - Base file should be under
src/SELF_ShallowWater2D_t.f90
and the base class should be calledShallowWater2D_t
. Only implement linear model to start. Procedure pointers will be used later to easily switch between linear and various nonlinear formulations. - [ ] Linear Compressible Euler (3-D) - Base file should be under
src/SELF_Euler3D_t.f90
and the base class should be calledEuler3D_t
. Only implement linear model to start with Ideal Gas Law for the equation of state. Procedure pointers will be used later to easily switch between linear and various nonlinear formulations and other EOS's. - [x] Burgers (1-D) - Base file should be under
src/SELF_Burgers1D_t.f90
and the base class should be calledBurgers1D_t
. Include viscous terms with Bassi-Rebay flux between elements. Include stationary shock problem in examples.
Parallelism
- [x] Remove OpenMP implementation in favor of
do concurrent
. Provide documentation for enabling shared memory parallelism in model builds and include additional tests for parallel builds. - [x] Finish MPI exchange routines with and without GPU direct communications and add workflow tests for 2-4 MPI ranks on github workflows and 12-32 ranks on Fluid Numerics Armory systems
Workflows
- [ ] On tagged releases, generate .deb (no gpu-acceleration)
- [ ] On tagged releases, generate .rpm (no gpu-acceleration)
- [ ] On tagged releases, generate .tar.gz (no gpu-acceleration, include dependencies in tar-ball)
- [ ] On tagged releases, generate docker image and post to artifact registry (no gpu-acceleration)
- [ ] On tagged releases, generate docker image and post to artifact registry (rocm-6.1.2, all supported gpu targets)
- [ ] On tagged releases, generate docker image and post to artifact registry (cuda 12.0, sm_70 and forward)
Documentation
- [ ] How to install from source
- [ ] How to install via .deb
- [ ] How to install via .rpm
- [ ] How to run with Docker
- [ ] Running included tests and examples
- [ ] Validation studies for included models
Miscellaneous
- [ ] Clean up stdout messages.
Init
andFree
routines should include indications of what is being allocated and how much (e.g. array sizes). Particularly, we want to know what kinds of interpolants are being created and used, how many elements, nodes, and edges/faces in mesh, how many points in the mesh (from geometry), how many degrees of freedom. Additionally, when GPU's are used, we ought to print out the gpu type and count detected and which device is selected. - [ ] Remove unused variables reported by compiler