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 ...
Introduce PetscFortranCallbackFn to be used instead of PetscVoidFn for Fortran callback functionsAlso fix incorrect use of SNESFunctionFn and SNESJacobianFn in SNES Fortran manual stub
Change use of void (*)(void) and void (**)(void) in the PETSc API to PetscVoidFn * and PetscVoidFn ** or PetscErrorCodeFn * or PetscErrorCodeFn **
Minor cleanup of Fortran binding stuff to simplify future maintainanceThere is no distinction between F90 and non-F90 code so combine ftn-custom and f90-custom directories and fortranimpl.h and f90
Minor cleanup of Fortran binding stuff to simplify future maintainanceThere is no distinction between F90 and non-F90 code so combine ftn-custom and f90-custom directories and fortranimpl.h and f90impl.h files. Also move uses of f90 to ftn when simple
Remove unneeded parentheses
Add length argument to PetscMPIErrorString() to prevent potential array overflowAdd test to loop over MPI error codes. Reveals known bug in MPICH implementation
Update to sowing version that supports PetscViewer and PetscObjectRemove manual Fortran stubs for PetscViewer and PetscObject arguments since now handled by sowingAlso handles the passing of null
Update to sowing version that supports PetscViewer and PetscObjectRemove manual Fortran stubs for PetscViewer and PetscObject arguments since now handled by sowingAlso handles the passing of null objects correctly
LIBBASE is no longer used in make so remove it
Merge remote-tracking branch 'origin/release'
Fix -Wzero-as-null-pointer-constant errors
Rename rules.doc and rules.utils because GitLab treats the former as a MS Word document.Thanks-to: Jed Brown
HAVE_FORTRAN should be USE_FORTRAN_BINDINGS since it is about generating the Fortran bindings, not about if the Fortran compiler exists
Format the ftn-custom files with clang-format. Apparently no particular reason we did not format them initially
Fix typos
non-test and tutorial makefiles only need rules.doc not the full rulesCommit-type: documentation
Only makefiles in the test and tutorial directories need lib/petsc/conf/testCommit-type: housekeeping
Remove now unneeded SOURCE* variables from makefilesCommit-type: configure, housekeeping
Remove empty preprocessor variables
Remove unneeded declarations of LOCDIR from all the makefilesCommit-type:documentation
Make PetscErrorCode a non-discardable enum
makefile: fix typo - petsckdir.mk -> petscdir.mk
Add proper support for PetscCall(), PetscCallMPI() for FortranAlso add support for PetscCallA(), PetscCallMPIA() for Fortran that abortProvide support for printing the Fortran line and filenames
Add proper support for PetscCall(), PetscCallMPI() for FortranAlso add support for PetscCallA(), PetscCallMPIA() for Fortran that abortProvide support for printing the Fortran line and filenames with the errors or not depending on how long Fortran source code lines can beMinor improvements to handling calls to PetscError() with no function stringCommit-type: error-checking, feature/spend 2h
Add -include */petscdir.mk to makefile that lacked itfor i in `git ls-files | grep makefile | xargs grep -L petscdir.mk`; do echo $i ; str=`echo $i |sed -e 's?[-a-zA-Z0-9]*/?../?g' -e 's?makef
Add -include */petscdir.mk to makefile that lacked itfor i in `git ls-files | grep makefile | xargs grep -L petscdir.mk`; do echo $i ; str=`echo $i |sed -e 's?[-a-zA-Z0-9]*/?../?g' -e 's?makefile?petsckdir.mk?g'` ; cp $i tmp echo "-include $str" > $i cat tmp >> $idoneCommit-type: makefile, housekeeping/spend 15m
remove garbage from makefilesIncluding * unused FLAGS variables * All: lib that did not work * stray blank lines etcCommit-type: housekeeping/spend 1h
The great renaming:- CHKERRQ() -> PetscCall()- CHKERRV() -> PetscCallVoid()- CHKERRMPI() -> PetscCallMPI()- CHKERRABORT() -> PetscCallAbort()- CHKERRCONTINUE() -> PetscCallContinue()- CHKERRXX
The great renaming:- CHKERRQ() -> PetscCall()- CHKERRV() -> PetscCallVoid()- CHKERRMPI() -> PetscCallMPI()- CHKERRABORT() -> PetscCallAbort()- CHKERRCONTINUE() -> PetscCallContinue()- CHKERRXX() -> PetscCallThrow()- CHKERRCXX() -> PetscCallCXX()- CHKERRCUDA() -> PetscCallCUDA()- CHKERRCUBLAS() -> PetscCallCUBLAS()- CHKERRCUSPARSE() -> PetscCallCUSPARSE()- CHKERRCUSOLVER() -> PetscCallCUSOLVER()- CHKERRCUFFT() -> PetscCallCUFFT()- CHKERRCURAND() -> PetscCallCURAND()- CHKERRHIP() -> PetscCallHIP()- CHKERRHIPBLAS() -> PetscCallHIPBLAS()- CHKERRHIPSOLVER() -> PetscCallHIPSOLVER()- CHKERRQ_CEED() -> PetscCallCEED()- CHKERR_FORTRAN_VOID_FUNCTION() -> PetscCallFortranVoidFunction()- CHKERRMKL() -> PetscCallMKL()- CHKERRMMG() -> PetscCallMMG()- CHKERRMMG_NONSTANDARD() -> PetscCallMMG_NONSTANDARD()- CHKERRCGNS() -> PetscCallCGNS()- CHKERRPTSCOTCH() -> PetscCallPTSCOTCH()- CHKERRSTR() -> PetscCallSTR()- CHKERRTC() -> PetscCallTC()
123