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
show more ...
updated PETSc directory layout to match standard packaging strategiesinclude/petsc finclude,private,mpiunilib/petsc confbin/petsc*
Merge branch 'tisaac/simplify-register-all'Removed the XXXRegisterAll() functions from the public interface. These should now only be handled by the package intialization functions.
simplify option object names
moved PetscOptionsObject from global variable to local variable in functions
manual merge of conflict
-ksp_richardson_scale was ignored when PCApplyRichardson() was usedFix: turn off PCApplyRichardson() when scale is not 1 and print PetscInfo warningReported-by: Mark Adams <mfadams@lbl.gov>Fixed
-ksp_richardson_scale was ignored when PCApplyRichardson() was usedFix: turn off PCApplyRichardson() when scale is not 1 and print PetscInfo warningReported-by: Mark Adams <mfadams@lbl.gov>Fixed missing carriage return in uses of PetscInfo() and missing ierr CHKERRQ() usage
Remove XXXRegisterAll() from public interfaceThis means we are relying on packages to be well behaved, to setthemselves up properly. Passes testexamples in my builds (haven't triedcomplex).
Remove XXXRegisterAllCalled from public interface.All XXXRegisterAll() methods are now idempotent, so a boolean indicatingwhether they can be called or not is no longer necessary.
Merge branch 'barry/fix-setters'
added a variety of getters and fixed calling sequence of a few setters
fix minor formatting
Added toggle flag to PCFactorSetAllowDiagonalFill() and added getter
updated PCFactorSetUseInPlace() to toggle and added getter
changed PC_ILU to not use any shift by defaultit tended to cause Nan and Inf in the triangular solves and very bad preconditionersand did not have any default good casesusers can still add it if t
changed PC_ILU to not use any shift by defaultit tended to cause Nan and Inf in the triangular solves and very bad preconditionersand did not have any default good casesusers can still add it if they like
update use of PetscOptionsBool() to not rely on default setting automatically
inplace ILU factorization must update state of inplace matrix to preventinfinite recursion of updating PC
insure that all casts to (double) are enclosed in ()
completed some percentage of changes from %G format in prints
Sys: drop explicit type arguments from PetscNew() and PetscNewLog()git grep -l 'PetscNew\(Log\)\?(' -- $1 | xargs perl -pi -e 's@PetscNew\([^,;()]+ *, *@PetscNew(@;s@PetscNewLog\(([^,;()]+) *,[^,
Sys: drop explicit type arguments from PetscNew() and PetscNewLog()git grep -l 'PetscNew\(Log\)\?(' -- $1 | xargs perl -pi -e 's@PetscNew\([^,;()]+ *, *@PetscNew(@;s@PetscNewLog\(([^,;()]+) *,[^,;()]+, *@PetscNewLog($1,@'
fix name for PetscOptionsFList() and get FList() and EList() working properly with SAWs legal values
Merge branch 'barry/improve-memory-logging'Conflicts: src/ksp/pc/impls/redundant/redundant.c src/mat/interface/matnull.c
Merge branch 'paulmullowney/txpetscgpu-package-removal2'
Removing TXPETSCGPU from CUSP matrix and preconditioner classesThe default type of the matrix in Mat_SeqAIJCUSP struct is setto a void *. Then it is cast to a particular cusp matrix type(csr, ell
Removing TXPETSCGPU from CUSP matrix and preconditioner classesThe default type of the matrix in Mat_SeqAIJCUSP struct is setto a void *. Then it is cast to a particular cusp matrix type(csr, ell, dia) depending on the chosen format by the user withcsr being default. This need to propagate into the the cusppreconditioner classes.A stream variable was added to the Mat_SeqAIJCUSP struct. Thisis allocated and deleted by the mpiaijcusp class--in serialthe stream variable is set to 0. Ultimately, the CUSP API willneed to support streams in order to get an efficient multi-GPUSpMV. This code for allocating, setting, deleting streams isadded so that once the CUSP API is enhanced to accept streams,the interface will work naturally.
Merge branch 'jed/mat-factor-shift'* jed/mat-factor-shift: Mat PCFactor: include MatFactorShiftType in PCView_Factor output
12345678910>>...17