Remove all double blank lines from sourceCommit-type: petsc-style/2h
Convert MPI error type to PETSc error with string message for all MPI callsNow PETSc examples will ONLY return PETSc error codes and never MPI error codes directly so we can understand and post-pro
Convert MPI error type to PETSc error with string message for all MPI callsNow PETSc examples will ONLY return PETSc error codes and never MPI error codes directly so we can understand and post-process their errors better.The test harness will now automatically retry tests that fail with MPI, this may help with Intel MPI that produces seemingly random failures.Commit-type: error-checking/spend 30m
show more ...
Turn on checkbadSource test to generate an error when found; fix all source code that causes errorsCommit-type: portability-fix, testing-fix, style-fix, feature, maintainability/spend 1.5h
KSP/PC: Fix 0 ->NULL for pointers
Single petscdir.mk
build: add more support for not needing to set PETSC_DIR yet build with PETSc, also support for GNU make to directly use "make test" instead of "make -f gmakefile.test"Still needs -include ../petsc
build: add more support for not needing to set PETSC_DIR yet build with PETSc, also support for GNU make to directly use "make test" instead of "make -f gmakefile.test"Still needs -include ../petscdir.mk in many of the makefilesStill needs the link for ../petscdir.mk in many directoriesGNUMakefile: call legacy makefile recursively instead of including itGNUMakefile: promote default "all" target; "libs" builds libpetsc*GNUMakefile: If gnumake < 4.2 prefer makefile wrapper interface over direct gmakefile interface to avoid the following warningsgmakefile.test:92: arch-ci-linux-cxx-cmplx-pkgs-64idx/tests/testfiles: No such file or directorygmakefile:67: arch-ci-linux-cxx-cmplx-pkgs-64idx/lib/petsc/conf/files: No such file or directoryCommit-type: testing-fix, feature, usabilityThanks-to: Jed Brown jed@jedbrown.org
Use MatDenseGetArrayRead() rather than MatDenseGetArray() when possibleCommit-type: style-fix, feature
Improve the error propagation between and within KSPs and PCs- Added KSPCheckSolve() to be called consistently by PCs to set failures if the inner solvers fail.- Added use of KSPCheckNorm() and KS
Improve the error propagation between and within KSPs and PCs- Added KSPCheckSolve() to be called consistently by PCs to set failures if the inner solvers fail.- Added use of KSPCheckNorm() and KSPCheckDot() to all the Krylov methods to propagate errors from PCs to the KSPs.Commit-type: feature
Man pages: add newlines after "Notes:"This allows for proper formatting from sowing.On OS X (using gsed, not the default BSD sed), from the PETSc root directory: find src include -type f \(
Man pages: add newlines after "Notes:"This allows for proper formatting from sowing.On OS X (using gsed, not the default BSD sed), from the PETSc root directory: find src include -type f \( -name "*.c" -or -name "*.h" -or -name "*.cxx" \) | xargs gsed -i 's/Notes\s*:\s*\(\w.*\)/Notes:\n \1/'This adds a newline and 4 spaces whenever "Notes:" is followed by any "word" character, in any .c, .h, or .cxx file in src/ or include/
rename MatGetSubMat -> MatCreateSubMat
Remove the use and definition of __FUNCT__ throughout the codeSince all modern C/C++ compilers provide this functionality we no longer need to provide it manually in PETScTime: 1.5 hoursThanks-t
Remove the use and definition of __FUNCT__ throughout the codeSince all modern C/C++ compilers provide this functionality we no longer need to provide it manually in PETScTime: 1.5 hoursThanks-to: Andreas Mang <andreas@ices.utexas.edu>
Updated and simplified Fortran interfaceReduced from 4 distinct approaches to using PETSc from Fortran to 1No more .h90 files (Fortran 90 functionality is now always available)Parameters and func
Updated and simplified Fortran interfaceReduced from 4 distinct approaches to using PETSc from Fortran to 1No more .h90 files (Fortran 90 functionality is now always available)Parameters and function prototypes are now provide through Fortran modules, not includes;only #define are provided in the petscXXXdef.h filesPETSc objects can be declared as either type(tXXX) or XXX. For example type(tVec) or VecMoved now private Fortran include files out of public include directory since uses don't use them;they are only used to generate the Fortran modulesEasier to support and test; we can now easily add more function prototypesAlso had to rework generation of manual pages to consistently use MANSEC and SUBMANSECsince these variables also handle how the Fortran modules are generated.Time: 57 hours
PCMGSetGalerkin() and -pc_mg_galerkin now take PC_MG_GALERKIN_BOTH,PC_MG_GALERKIN_PMAT,PC_MG_GALERKIN_MAT, PC_MG_GALERKIN_NONE as arguments instead of PetscBoolThis allows computing either mat, or
PCMGSetGalerkin() and -pc_mg_galerkin now take PC_MG_GALERKIN_BOTH,PC_MG_GALERKIN_PMAT,PC_MG_GALERKIN_MAT, PC_MG_GALERKIN_NONE as arguments instead of PetscBoolThis allows computing either mat, or pmat or both via the Galerkin processTime: 16 hoursReported-by: domenico lahaye <domenico_lahaye@yahoo.com>Thanks-to: Lawrence Mitchell <lawrence.mitchell@imperial.ac.uk>
fixed up formatting of references in manualpages to consistent styleReferences:+ 1. - ref1. 2. - ref2- 3. - ref3previously the formatting was varied and ugly
broken nonlinear solver table links fixedReported-by: Andrew McRae <A.T.T.McRae@bath.ac.uk>Also made References: formatting consistent by always listing authors first
Begin renaming the PetscOptions objects for the future where PetscOptions will not be a singleton
merged PetscViewerGetSingleton() and PetscViewerGetSubcomm() into PetscViewerGetSubViewer()Does not currently work, needs fixes to work correctly recursively
Infrastructure that allows failures in PCSetUp(), PCApply(), MatMult() etc due to, for example a zero pivot or function evaluation outside its domain, to propagate up and become a KSP_DIVERGED inste
Infrastructure that allows failures in PCSetUp(), PCApply(), MatMult() etc due to, for example a zero pivot or function evaluation outside its domain, to propagate up and become a KSP_DIVERGED instead of generating an error that stops the program. In response to Issue 96. This includes failures in MatCreateSNESMF() applications due to domain errors. The mechanism to propagate some errors is by setting Info or Nan into the output vector and using the norm or inner product reductions in SNES or KSP to propagate the error condition to all processes and then handling them immediately after the norm or inner product.This allows, for example, ODE integrators to try again with a smaller time-step if the PCSetUp failed instead of requiring a complete restart of the run with other options.Currently some error conditions, such as function domain error in a line search may not get progated up using the correct SNESConvergedReasonSee src/snes/examples/tests/ex69.c for the handling of several conditions
updated PETSc directory layout to match standard packaging strategiesinclude/petsc finclude,private,mpiunilib/petsc confbin/petsc*
Merge branch 'tisaac/feature-gamg-extensible' into barry/experimentConflicts: src/ksp/pc/impls/gamg/gamg.h
Move MG and GAMG implementation headers to petsc-privateI want to be able to register GAMG plugins. I considered a few options:a) Move the implementation headers to petsc-private so they can be
Move MG and GAMG implementation headers to petsc-privateI want to be able to register GAMG plugins. I considered a few options:a) Move the implementation headers to petsc-private so they can beinstalledb) Make Get/Set methods for all of the GAMGOps: graph, coarsen,optprol, etc.c) Add a PCGAMGGet/SetOperation like MatShellGet/SetOperation for eachof these operations.The easiest was (a), and the GAMG methods are so context-specific I'mnot sure who would benefit from their being part of the public petscinterface. If GAMG get's refactored to where the operations are easierto understand on their own, then maybe (b) or (c) would be a betteroption.
simplify option object names
moved PetscOptionsObject from global variable to local variable in functions
manual merge of conflict
KSPSetOperators() no longer has the MatStructure argument. The Mat objects now track that information themselves. Use KPS/PCSetReusePreconditioner() to prevent the recomputation of the preconditioner
KSPSetOperators() no longer has the MatStructure argument. The Mat objects now track that information themselves. Use KPS/PCSetReusePreconditioner() to prevent the recomputation of the preconditioner if the operator changed in the way that SAME_PRECONDITIONER did with KSPSetOperators()SNES/TS still need to be cleaned up to better utilize the new interfaces
1234567