Change *.cpp to *.cxx
MatConjugate(): no need to check for USE_COMPLEX in implementations
Minor cleanup: use MPI_IN_PLACE when possible and avoid extra allocation
Housekeeping
Merge branch 'barry/2025-10-18/optimize-aij-ops' into 'main'Refactor handling of diagonal marking in *AIJ and SELL matricesSee merge request petsc/petsc!8797
Optimizations on Seq_[SB]AIJ operations that use MatGetDiagonalMarkers.
- Replace MatMissingDiagonal() and MatMarkDiagonals_SeqXXX() with MatGetDiagonalMarkers_SeqXXX() - Mat_SeqXXX->diag is not automatically created during MatAssemblyEnd() saving memory and time
- Replace MatMissingDiagonal() and MatMarkDiagonals_SeqXXX() with MatGetDiagonalMarkers_SeqXXX() - Mat_SeqXXX->diag is not automatically created during MatAssemblyEnd() saving memory and time - Accessing Mat_SeqXXX->diag now requires the use of MatGetDiagonalMarkers_SeqXXX() except when the current values are known to be correct; for example during numerical factorizations and solves - Mat_SeqXXX->diag is now never shared among matrices; hence the free_diag flag is gone. That was always a risky proposition since any of the owning matrices could chang the values thus making them incorrect for other owners.
show more ...
Remove unused code
This MR optimize some MAT[SB]AIJ operations related to the diagonalThe longer term goal is to refactor some Mat_SeqXXX non-numeric code to make it easier to also implement it on GPUs. For example,
This MR optimize some MAT[SB]AIJ operations related to the diagonalThe longer term goal is to refactor some Mat_SeqXXX non-numeric code to make it easier to also implement it on GPUs. For example, MatGetDiagonal() and friendsThis commit- MatMarkDiagonal_SeqAIJ/ELL() - now use change in mat->nonzerostate to determine if it needs to recheck the diagonal locations - sets diagDense flag for a complete diagonal- MatInvertDiagonal_SeqAIJ/ELL() - now uses change in mat->state to determine if diagonal entries and inverses need to be recomputed - name changed to MatInvertDiagonalForSOR_SeqAIJ/ELL() for code clarity- Added MatInvertDiagonal_SeqAIJ_Inode() for use by MatSOR_SeqAIJ_Inode() - now uses change in mat->state to determine if block diagonal entries and inverses need to be recomputed
Change names of Mat_XXX product contexts to MatProductCtx_XXX for code maintainabilityUpdate destroy callback of all MatProductCtx and MatShellSetMatProductOperation() to use PetscCtxDestroyFn
Merge branch 'barry/2025-09-04/deprecate-mpiu-bool' into 'main'Deprecate MPIU_BOOL which used to be for PETSc's enum Bool but now is just MPI_C_BOOLSee merge request petsc/petsc!8691
Merge branch 'stefanozampini/submat-zerorows' into 'main'implement ZeroRowsLocal and ZeroRowsColumnsLocal for local referencesSee merge request petsc/petsc!8705
Deprecate MPIU_BOOL which used to be for PETSc' enum Bool but now is just MPI_C_BOOL so no longer needs its own name
Merge branch 'jolivet/fix-pchpddm-scatter' into 'main'Minor fixes and cleanupSee merge request petsc/petsc!8702
Mat: add ops for zerorowscolumnslocal
Gather CUDA lib includes in petscdevice_cuda.h + disable cuSPARSE warnings using DISABLE_CUSPARSE_DEPRECATEDDefining DISABLE_CUSPARSE_DEPRECATED is Nvidia's recommended way of disabling cuSPARSE wa
Gather CUDA lib includes in petscdevice_cuda.h + disable cuSPARSE warnings using DISABLE_CUSPARSE_DEPRECATEDDefining DISABLE_CUSPARSE_DEPRECATED is Nvidia's recommended way of disabling cuSPARSE warningsThis avoids requiring -Wdeprecated-declarations - that can mask other (non-cuSPARSE) warnings
Remove more unneeded braces
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#'
Convert some SETERRQ() to PetscCheck()
One-liners from petsc/petsc!5344 and petsc/petsc!5557Slightly reworked regular expressiongit ls-files -z -- '*.c' '*.cxx' '*.cu' '*.h' '*.hpp' '*.cpp' | while IFS= read -r -d '' file; do cat
One-liners from petsc/petsc!5344 and petsc/petsc!5557Slightly reworked regular expressiongit ls-files -z -- '*.c' '*.cxx' '*.cu' '*.h' '*.hpp' '*.cpp' | while IFS= read -r -d '' file; do cat $file | tr '\n' '\r' | sed -E 's/\r([ ]*)(for|if|while|else) ([^\r]*)\{\r[ ]*Petsc([a-zA-Z]*)\(([^\r]*)\);\r[ ]*\}\r/\r\1\2 \3Petsc\4(\5);\r/g' | tr '\r' '\n' > ${file}.joe; mv ${file}.joe ${file}done
missing "s" for isascii and issundials
Merge branch 'lindad/hypre-control-through-pmat' into 'main'Change hypre PC option defaults based on hypre matrix memory locationSee merge request petsc/petsc!8505
Make MatGetCurrentMemType first class API
Doc: processor to process, and also fix some typos
Mat: change a misleading variable nameMPIU_Allreduce(&mat->was_assembled, &other_disassembled, 1, MPIU_BOOL, MPI_LAND, PetscObjectComm((PetscObject)mat)));MPI_LAND's result should be 'all_assembl
Mat: change a misleading variable nameMPIU_Allreduce(&mat->was_assembled, &other_disassembled, 1, MPIU_BOOL, MPI_LAND, PetscObjectComm((PetscObject)mat)));MPI_LAND's result should be 'all_assembled', the opposite of 'other_disassembled'
12345678910