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 ...
Change the `destroy()` function argument of `SNESSetConvergenceTest()` to type `PetscCtxDestroyFn *`Development Tools: Vim, Emacs, Eclipse
Introduce PetscFortranCallbackFn to be used instead of PetscVoidFn for Fortran callback functionsAlso fix incorrect use of SNESFunctionFn and SNESJacobianFn in SNES Fortran manual stub
Fix for getAPI for finding functions listed in include files that should have Fortran bindings
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
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>
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
CI: update checkclangformat to use clang-format-19.1.0
Improve the Fortran handling of functions that take ctx with type(*) supportReported-by: Adrian Croucher <a.croucher@auckland.ac.nz>
This requires some changes to user FORTRAN codePass PETSC_NULL_XXX_ARRAY when passing a NULL as an argument that is expecting an arrayPass PETSC_NULL_ENUM when argument returns an enum instead of
This requires some changes to user FORTRAN codePass PETSC_NULL_XXX_ARRAY when passing a NULL as an argument that is expecting an arrayPass PETSC_NULL_ENUM when argument returns an enum instead of PETSC_NULL_INTEGERPass arrays (and not scalar values) when the argument is expecting an array; this means replace, for example, the argument v with [v]Use PetscObjectIsNull(obj) to check if the object is NULL, instead of obj == PETSC_NULL_XXXThe compiler will now automatically prevent you from using the wrong argument type for the first three bullets aboveThis will also require an update sowing with the new sowing branch this MR is using.
Fix a few locations where SNESFunctionFN and SNESObjectiveFn were not used
Merge branch 'release'
Add Fortran stub for SNESSetObjective()Add Fortram test of the stub for SNESSetObjective()
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
Update source code removing all unneeded /*@C and associated manual stubs and interfaces
Change the use of the _Fn suffix to indicate a typedef of a function to just FnAs determined on a vote on GitLab
Change PETSc sys typedef function names to use the new _Fn formatCommit-type: housekeeping, maintainance
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
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
1234567