Add automatic generated fortran support for setting and returning contextsMajor cleanup of the code for setting and returning application (previously called user) contexts - PetscCtx ctx is now t
Add automatic generated fortran support for setting and returning contextsMajor cleanup of the code for setting and returning application (previously called user) contexts - PetscCtx ctx is now the standard for passing in contexts - PetscCtxRt ctx is the standard for passing out contexts, including context destroy routines based on PetscCtxDestroyFnBoth of these are typedef to void*Also removed most use of user and userctx for context arguments now consistently named ctxImproved documentation on PetscCtx and PetscCtxRt and on how to use contexts (including getting them) from Fortran
show more ...
Change names of Mat_XXX product contexts to MatProductCtx_XXX for code maintainabilityUpdate destroy callback of all MatProductCtx and MatShellSetMatProductOperation() to use PetscCtxDestroyFn
Edit mpiaijkok.kokkos.cxx
better debugging capabilitiesusing MPIU wrappers where available and PetscCallMPI for all MPI(U)functions
Remove unnecessary braces around one-linersgit grep -lE "[ ]*(if|for|while) \(.*\) {[^;]*;[^;]*}$" -- '*.c' '*.cxx' '*.cu' '*.h' '*.hpp' '*.cpp' | xargs sed -i '' -E 's#([ ]*)(if|for|while) \((.*)\
Remove unnecessary braces around one-linersgit grep -lE "[ ]*(if|for|while) \(.*\) {[^;]*;[^;]*}$" -- '*.c' '*.cxx' '*.cu' '*.h' '*.hpp' '*.cpp' | xargs sed -i '' -E 's#([ ]*)(if|for|while) \((.*)\) {([^;]*);([^;]*)}$#\1\2 \(\3\)\4;\5#'
Make MatGetCurrentMemType first class API
Merge remote-tracking branch 'origin/release'
Split KokkosDualViewSync into Host and Device versions
Mat: remove the private function MatSetMPIAIJWithSplitSeqAIJafter the great MR !8206
Changes to allow building gpu matrices on the device.Changed MatCreateMPIAIJWithSeqAIJ() so global sizes must be given to prevent reduction.Changed MatCreateMPIAIJWithSeqAIJ() so B can be passed
Changes to allow building gpu matrices on the device.Changed MatCreateMPIAIJWithSeqAIJ() so global sizes must be given to prevent reduction.Changed MatCreateMPIAIJWithSeqAIJ() so B can be passed in with local indices, hence no compactification occurs.Added MatCreateSeqAIJKokkosWithKokkosViews() which creates a Mat with no preallocation on the host.Added test that checks building kokkos matrices without any host preallocation
Kokkos: return execution space instead of reference to simplify the codeA Kokkos execution space is a shared pointer. We don't need to reference it
propagates mat blocksize in PtAP
Kokkos: add support of AMD MI300A* Use HostMirrorMemorySpace instead of HostSpace to fix compile errors on MI300A* Replace Kokkos::HostSpace with HostMirrorMemorySpace to fix compile errors on MI
Kokkos: add support of AMD MI300A* Use HostMirrorMemorySpace instead of HostSpace to fix compile errors on MI300A* Replace Kokkos::HostSpace with HostMirrorMemorySpace to fix compile errors on MI300A, since the latter is what Kokkos::DualView use for its host view* Fix a subtle bug in KokkosDualViewSync() w.r.t MI300A. Suppose we want to sync a petsc VecKokkos v on host. On MI300A, the host copy v_h and the device copy v_d share the memory. So in the old code, we used if (v_dual.need_sync_host()) to skip the device to host memory copy. But I should not skip the exec.fence(). As the device might still have kernels writing v_d, we still need to sync the device/stream to make v_d ready for use on CPU (via v_h).
Mat: leverage MatConvert_AIJ_HYPRE to convert aijkokkos matrices to mathypre ones
Docs: minor fixes
Unifies all context destructors to have a form of PetscCtxDestroyFn == PetscErrorCode (*)(void **)Changes the previous subset of destructor APIs that used PetscErrorCode (*)(void *) (mostly those t
Unifies all context destructors to have a form of PetscCtxDestroyFn == PetscErrorCode (*)(void **)Changes the previous subset of destructor APIs that used PetscErrorCode (*)(void *) (mostly those thatused PetscContainer- Now allows any context to be a PetscObject- Will provide a cleaner mapping to bindings in other languages- Simplifies the maintenance of PETSc source code; improves clarityNot backward compatible, compiler warnings will tell users what functions need to be updated
kokkos-kernels: sync with develop change kk_is_gpu_exec_space -> is_gpu_exec_space_vReported-by: "Unnikrishnan, Umesh" <unnikrishnan@anl.gov>
fix(kokkos): Use MPIInt for PetscSF calls
Add to CI compilers flags '-Wconversion', '-Wno-sign-conversion', '-Wno-float-conversion', '-Wno-implicit-float-conversion']Also fix the code to repository to compile cleanly with these flags in th
Add to CI compilers flags '-Wconversion', '-Wno-sign-conversion', '-Wno-float-conversion', '-Wno-implicit-float-conversion']Also fix the code to repository to compile cleanly with these flags in the CI
Merge branch 'release-revert-7765'
Fix a bug that the old MatMPIAIJSetPreallocation_MPIAIJKokkos did not set blocksize of A/B from mat
Kokkos: try to always have an execution space argument
Kokkos: add explicit execution space (stream or queue) to Kokkos/KK functions
CI: update to clang-format-18
12345