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 ...
Merge branch 'barry/2025-12-24/improve-snes-domain-error-handling' into 'main'Improve the propagation of function domain error handling in SNES, especially...See merge request petsc/petsc!8914
Improve the propagation of function domain error handling in SNES, especially in the line search routines.Due to the object layering of SNESLineSearch under SNES there is some code duplication incl
Improve the propagation of function domain error handling in SNES, especially in the line search routines.Due to the object layering of SNESLineSearch under SNES there is some code duplication include both SNESLineSearchReason and SNESConvergedReason and SNESCheckFunctionNorm() and SNESLineSearchCheckFunctionNorm() and Jacobian friendsReported-by: david.knezevic@akselos.com
Merge branch 'barry/2025-12-04/fix-use-mpi-f08' into 'main'Replace -with-mpi-f90module-visibility with -with-mpi-ftn-module=mpi_f08See merge request petsc/petsc!8885
Replace -with-mpi-f90module-visibility with -with-mpi-f90module=mpi_f08Add PETSC_INT_KIND and PETSC_MPIINT_KINDReported-by: M.Weiland@epcc.ed.ac.uk
Fix missing equal sign
Proper capitalization from Gram-Schmidt orthogonalization
Fix terminology for Pmat in KSPView output.
Fortran: enforce lower case keywords and operatorsalso fixed occasional capitals in used modules with the help of @prj-
Fortran is always F2003: removed leftovers
cleanup suggestions by @BarrySmithalso noticed a few stray functions not marked as external and put theminto modules
use modules instead of externalthis allows for argument checking
remove labeled do loopslabeled do loops confused fprettify, so used it to rectify indentation
place all the include statements at the topRepeated inclusion in multiple location, e.g. at the start of amodule or function is not needed. This becomes clear if all includes areoutside of the ac
place all the include statements at the topRepeated inclusion in multiple location, e.g. at the start of amodule or function is not needed. This becomes clear if all includes areoutside of the actual Fortran code.Added regex to check that with the help of @sbalay
Have KSPView() indicate when there is no convergence test.Reported-by: Elana Moral Sanchez
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 **
Mat: fix MatSelectVariableBlockSizeAdd tests with SNES ex5make it a public method
Run fprettify
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
SNESLinesearch: Minor improvements- add missing configuration options in the documentation of the line searches (some of the available options were not listed), and consistently list their respecti
SNESLinesearch: Minor improvements- add missing configuration options in the documentation of the line searches (some of the available options were not listed), and consistently list their respective default values- add proper convergence criteria for the secant method in the L2 line search based on ltol and atol (otherwise, the secant method is mostly running for the maximum number of iterations)- fix a small bug in the CP line search, where steptol * lambda was used to check for convergence based on the change of lambda instead of the ltol parameter- rename sneslinesearch->maxstep to sneslinesearch->maxlambda in the options database to be consistent with its purpose in the algorithms- rename SNESLineSearchL2 to SNESLineSearchSecant to better represent its underlying approach
MATSOLVERMUMPS: add support for -mat_mumps_icntl_15 1
Remove explicitly listed empty files and switch to output/empty.out
use integer and real kinds from ISO_C_bindingThe kinds in this module are guaranteed to be compatible with thecorresponding C types.Requires to include the ISO_C_binding module in interfaces and
use integer and real kinds from ISO_C_bindingThe kinds in this module are guaranteed to be compatible with thecorresponding C types.Requires to include the ISO_C_binding module in interfaces and strayfunctions
Clean up the use of typedef function prototypes for KSP
12345678