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 ...
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
checkbadSource: enforce proper style in makefiles
SNESVI: vec_sol may not be available at setup time
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#'
Fix wrong case for PETSc
SNESLineSearch: fix computation of directional derivative in the case of the VI solversThe two line search algorithms bisection and critical point work with the directional derivative, assuming tha
SNESLineSearch: fix computation of directional derivative in the case of the VI solversThe two line search algorithms bisection and critical point work with the directional derivative, assuming that F(x) = grad G(x).However, when working with the variational inequality solvers, the constraints were not correctly considered when computing the directional derivative.This commit introduces a new linesearch->ops->vidirderiv function which correctly considers the constraints (similar to linesearch->ops->viproject and linesearch->ops->vinorm).
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
Use PetscObjectContainerCompose() when applicable
CI: update checkclangformat to use clang-format-19.1.0
Update SNESSetTolerances() to accept PETSC_DETERMINE an PETSC_DECIDE
Remove multiple parentheses and extra semicolongit grep -l -E "\(\([a-zA-Z0-9_]+\)\(\*[a-zA-Z0-9_]+\)[, )]" | xargs sed -r -i'' 's#\(\(([a-zA-Z0-9_]+)\)\(\*([a-zA-Z0-9_]+)\)([, )])#\(\(\1\)\*\2\3#g
Remove multiple parentheses and extra semicolongit grep -l -E "\(\([a-zA-Z0-9_]+\)\(\*[a-zA-Z0-9_]+\)[, )]" | xargs sed -r -i'' 's#\(\(([a-zA-Z0-9_]+)\)\(\*([a-zA-Z0-9_]+)\)([, )])#\(\(\1\)\*\2\3#g'git grep -l -E "Petsc(.)*\(\(\*[a-zA-Z0-9_]*\)," | xargs sed -r -i'' 's#Petsc([a-zA-Z0-9_]*)\(\(\*([a-zA-Z0-9_]*)\), #Petsc\1(*\2, #g'git grep -l -E "([\!\&\~\*\(]|\)\)|\([^,\*\(]+\**\))\(([a-zA-Z0-9_]+((\.|->)[a-zA-Z0-9_]+|\[[a-zA-Z0-9_ \%\+\*\-]+\])+)\)" | xargs sed -r -i'' 's#([\!\&\~\*\(]|\)\)|\([^,\*\(]+\**\))\(([a-zA-Z0-9_]+((\.|->)[a-zA-Z0-9_]+|\[[a-zA-Z0-9_ \%\+\*\-]+\])+)\)#\1\2#g'
Important fixes
LIBBASE is no longer used in make so remove it
Merge remote-tracking branch 'origin/release'
Update references in the manual pages to use Sphinx citation processing
Fix some manual pages focusing on SNES
Spell matlab correctly as MATLABCommit-type: housekeeping
Rename rules.doc and rules.utils because GitLab treats the former as a MS Word document.Thanks-to: Jed Brown
Remove first and last empty lines
Convert all header guards to pragma once
Fix some malformed if !defined() header guards
Delete unused code
1234567