[ ] Port each kernel from using legacy packs (pm->PackVariables) to sparse packs (desc = MakePackDescriptor) and replace index gymnastics with typed accesses
[ ] Move each function from depending on MeshBlockData to depending on MeshData and move it from the async region in the driver to the sync region. Be careful to ensure dependencies are met!
The second and third steps can be done piece by piece, function by function. And step 2 can be done independently of step 3. However step 3 generically depends on step 2.
pm->PackVariables
) to sparse packs (desc = MakePackDescriptor
) and replace index gymnastics with typed accessesMeshBlockData
to depending onMeshData
and move it from theasync
region in the driver to thesync
region. Be careful to ensure dependencies are met!The second and third steps can be done piece by piece, function by function. And step 2 can be done independently of step 3. However step 3 generically depends on step 2.