Change *.cpp to *.cxx
MatConjugate(): no need to check for USE_COMPLEX in implementations
Housekeeping
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 ...
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
Merge branch 'stefanozampini/submat-zerorows' into 'main'implement ZeroRowsLocal and ZeroRowsColumnsLocal for local referencesSee merge request petsc/petsc!8705
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#'
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
Make MatGetCurrentMemType first class API
MatOps cleanup
Update to clang-format-20
Fortran 90: fully embrace After 34 years!- deprecate use of 'F90' in Fortran function names- use Fortran pointers when appropriate- the new Fortran API is not backward compatible with previous ve
Fortran 90: fully embrace After 34 years!- deprecate use of 'F90' in Fortran function names- use Fortran pointers when appropriate- the new Fortran API is not backward compatible with previous versions!- also clean up inconsistent PETSc code detected by new Fortran generation tools- drop use of bfort- automatically generate all the Fortran PETSc objects, enums etc from the include files- generate most of the Fortran interface definitions and functions from the source code- simplify the number and organization of Fortran modulesCo-authored-by: Jose E. Roman <jroman@dsic.upv.es>
MatSetOption: ignore unused options instead of erroring out
Merge remote-tracking branch 'origin/release'
Improve some manual pages in KSP/SNES
Add MatCopyHashToXAIJ() to copy hash table entries into an XAIJ matrix type
Brain dead fixes for useless casts
PetscCeilInt: inline method
PC: add new mat ops MATOP_GET_{BLOCK, VBLOCK}_DIAGONALso that a shell matrix can return its own (variable) point blocks in a matrix for use in PC (V)PBJacobi
12345678