Closed bcaddy closed 1 year ago
This is currently a draft and not ready for merging but wanted to make the changes available for code review as the things that are left to do are minor and should be done shortly.
dev
again now that PR #213 is mergedDocumentation for the runL1Error
method has been added to the wiki
Converting MHD to using grid_enum
is done so I'm converting this from a draft to a full PR.
@alwinm, switching to using the enum was pretty easy. Could you take a look at my additions to the enum and my general usage? I think it's what we talked about but I'd like confirmation and feedback.
FYI, I think github actions are having some issues at the moment. Some jobs are getting shutdown signals from somewhere. I double checked and everything builds fine on C-3PO and the containers running on my machine. For now I'm just restarting failed jobs until they pass.
I think I figured out the issue with builds randomly failing. The error ended up being too many resources consumed. I reduced the number of jobs that Make
launched and it seems to have fixed it
All non-MHD tests pass except those noted in issues #218 and #219 which also don't pass in
dev
.This commit primarily adds support for MHD to the Van Leer 3D integrator along with myriad small fixes and modifications. All new features have tests as well.
The MHD implementation still has bugs but needs to be merged in before we reformat the code so that the merging doesn't provoke too many merge conflicts.
MHD
mhd
namespace with sub-namespaces when relevant (e.g.mhd::utils
)Linear_Wave
initial condition typectElectricFields
global device arrayHLLD Riemann Solver
math_utils
Testing
runL1ErrorTest
, toSystemTestRunner
that computes the L1 error compared to the initial conditions. Ideal for wave testsrunL1ErrorTest
methodReductions
Utilities
Cuda Utilities
initGpuMemory
which initializes GPU memory so the CUDA compute sanitizer doesn't complain about it. Used to initialize all GPU arrays that I know of.AutomaticLaunchParams
which is a thin wrapper over the occupancy API. Primarily intended for reductions where performance is sensitive to the number of blocks but could be used for any kernel launchDeviceVector
Math Utilities
New namespace and file for math utilities. Currently contains a semi-general rotation and dot product functions
MHD Utilities
mhd::utils::computeEnergy
function now works properly with either MHD or hydro and returns the appropriate energyOther
to_string_exact
to convert floating point numbers to a string such that it can be exactly deserialized back from a string to the same floating point number. Only used in tests currently