checkbadSource: enforce proper style in makefiles
MatLMVM: Complete rework of internals to use LMBasis and LMProductsI don't think there is a good way to break this up into smaller commits: once Iuse LMBasis and LMProducts in Mat_LMVM, all of the
MatLMVM: Complete rework of internals to use LMBasis and LMProductsI don't think there is a good way to break this up into smaller commits: once Iuse LMBasis and LMProducts in Mat_LMVM, all of the implementations that depend onit are broken until they are changed to also use these new objects. It is probablybetter to review all of the MatLMVM implementations (except for denseqn) as new coderather than trying to review using a diff tool.This rework achieves:- Implementations of three classes of algorithms for limitd memory quasi-Newton updates - MAT_LMVM_MULT_RECURSIVE: Recursive, level 1 BLAS algorithms that closely match the typical way the methods are presented mathematically. - MAT_LMVM_MULT_DENSE: level 2 BLAS algorithms that, when possible, avoid any need for recomputation when the reference Jacobian J0 changes. - MAT_LMVM_MULT_COMPACT_DENSE: level 2 BLAS algorithms that construct rank-m (or rank-2m) update representations of the operators, for the best-performance on MatMult() and MatSolve(), but at the cost of additional setup, and requiring more recomputation when J0 changes than MAT_LMVM_MULT_DENSE- Every quasi-Newton method has a dual method (e.g. BFGS and DFP): we exploit this duality to use only one code path for a dual pair, reducing the numer of implementaitons to maintain- Special handling of the case J0 = gamma * I, avoiding products that are unnecessary in this case- Instead of including a MatLMVMDiagBrdn as the J0 matrix when J0 is variable (which means that both B and J0 of basis vectors to maintain), a SymBroydenRescale object is shared by MatLMVMDiagBrdn and other formats that use rescaling- Improved correctness of when internal products need to be recomputed: if the user externally changes J0, this will be detected
show more ...
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>
Add PetscObjectHasFunction
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
Rename rules.doc and rules.utils because GitLab treats the former as a MS Word document.Thanks-to: Jed Brown
Convert all header guards to pragma once
Lint apply: tao
Allow generatefortranstubs.py to generate the stubs and module files in the PETSC_ARCH directory
More manual page fixes
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 unneeded SOURCEH from makefilesNo longer used by docs or build
Remove empty preprocessor variables
Remove unneeded declarations of LOCDIR from all the makefilesCommit-type:documentation
Make PetscErrorCode a non-discardable enum
Manual pages: fix Synopsis of several TAO functions
fix more un-updated DMPLEX manual pagesCommit-type: documentation
source code format changes due to .clang-format changes
Transform all header-guards into ifndefs to make clang-format ignore them for preprocessor indentation
Remove parent, parentid, flops, time, mem, and memchildren. Deprecate PetscLogObjectParent(), PetscLogObjectMemory(), and PetscNewLog()
makefile: fix typo - petsckdir.mk -> petscdir.mk
123