| #
78945fca
|
| 17-Aug-2018 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'master' into knepley/feature-plex-functionals
* master: (984 commits) netcdf: set zlib as optional dependency corretly [wrt --enable-netcdf-4] - otherwise netcdf configure errors out
Merge branch 'master' into knepley/feature-plex-functionals
* master: (984 commits) netcdf: set zlib as optional dependency corretly [wrt --enable-netcdf-4] - otherwise netcdf configure errors out fix gcov obj path -options_table was changed to options_view in 2014 but documentation was not updated to reflect it configure: fix F2003 test Dev manual: remove duplicate entry Plex test ex5: Removed "future" test, as it resulted in issues in the nightly tests. Some minor typos in TS Add ADIOS2.py which I forgot to git add in the past Plex ex5: Disable test Doc: Added note for interface change KSPLSQRMonitorDefault fixed for quad precision Tao: Added alternative output for chwirut2 test. TS ex45,ex46: Removed overly refined tests for faster nightly tests. KSP ex72: Fixed needlessly long-running PCTFS tests. SNES ex56: Reduced test size to speed up nightly test suite. KSPSolve_LSQR: don't compute unused norm of rhs SNES ex13: Reduced problem sizes for nightly tests. PetscOptionsDeprecated(): fix for NULL prefix PetscOptionsDeprecated(): add option to print additional info SNES ex12: Reduced sizes for BDDC tests. ...
show more ...
|
| #
50b47da0
|
| 19-Jul-2018 |
Adam Denchfield <adenchfi@hawk.iit.edu> |
diagonal Broyden matrix type framework added
Started implementing diagonal scaling using a common interface with Alp's code. Currently have forward B diagonal scaling, which means I need to derive S
diagonal Broyden matrix type framework added
Started implementing diagonal scaling using a common interface with Alp's code. Currently have forward B diagonal scaling, which means I need to derive SSML_BFGS in the forward case. Will apply this to case SSML_BFGS_Mod. Will also implement the inverse diagonal sometime.
Have basic DiagBrdn functionality working, though it isn't producing optimal ssml_bfgs output since the two are not super compatible - inverse (H) update with a forward (B) diagonal scaling?
Tried changing MatMult to Multiply instead of Divide, to see what effect it has. It may have a large effect...
Made it a developer option to change between Mult and Divide for the DiagBrdn MatMult. That way the BNCG code can have the correct behavior.
Added, hopefully successfully, my version of the inverse Hessian diagonal scaling to DiagBrdn. It can currently be enabled with command line options, but that will likely change.
Basic working code for using Alp's Mat objects. However, his and I's code still produce different results. To be investigated...
Removed the unnecessary mult parameter.
Trying out more reset strategies.
Committing before making experimental changes to SSML_BFGS_MOD where I directly update on the gradient.
Committing before making a change to SSML_BFGS that involves correcting a sign error.
Corrected a sign error in the diagonally scaled SSML_BFGS.
Nevermind, the sign was correct.
Implemented diagonal scaling for SSML_Broyden method.
Implemented diagonally scaled DFP.
Added trial versions of diagonally scaled Hestenes-Stiefel and Dai-Yuan methods.
Added trial version of diagonally scaled Fletcher-Reeves method.
Removed the testing version of SSML_BFGS; now there is only one final version.
Also added diagonally scaled Polar-Ribiere, trial version. About to try simplifying the diagonal update scheme in DiagBrdn to reduce numerical noise.
Tried adding features to the forward and backward updates to the diagonal scalinng that would reduce numerical noise.
Added a minor change to increase numerical precision of both forward and backward diagonal scaling updates.
Added restart conditions which would affect the Hestenes-Stiefel and Polar-Ribiere class of methods.
Removed the restart condition from the Hestenes-Stiefel method, as it appears to make it much worse, and going through the math shows it isn't necessarily the best restart strategy.
Removed the restarts based on gradient orthogonality, since those appear to be attempting to prevent non-descent directions, which is already checked for.
Fixed Fletcher-Reeves' diagonal preconditioning to match that written by HZ's survey.
Trying a new approach in Dai-Yuan inspired by the HZ survey.
The Preconditioning of FR in HZ's survey is wrong for our diagonal preconditioner. Just makes it worse. Reverted Dai0Yuan to a form where only the gradient is diagonally scaled.
Made global the check for whether or not the current direction is already good, enabling us to skip a direction update.
Also added diagonally scaled gradient descent.
Fixed a bug where the rescaling for scalar classic methods was constant.
Fixed a bug where the classic methods all seemed to be producing the same results. Had to initialize cg_continue.
Fixed issue in PR and PRP scalar methods.
Added some minor changes.
Cleaned up some redundancies in the BNCG code. Added some constants as command line options, user-options for the HZ and DK methods.
Cleaned a little more redundancy.
Some comments removed, a couple more redundant lines removed. Found an uninitialized variable in DaiYuan and fixed that; could be why DY was performing so badly.
Addressed a few of Alp's comments.
Trying to clean up memory leaks. First set lmvm->m = 1 in DiagBrdn.
Fixed memory leak problems.
Allowed the epsilon cutoff for curvature checks to be changed by the user. Defaults to machine precision.
Edited a couple things in DiagBrdn. Added the KD-like scaling to DiagBrdn for the inverse.
Merged with another branch that developed KD-like changes to diagonal scaling, and edited some comments.
Added a comment on the diagonal scaling as applied to FR, PR, PRP, DY methods. Beginning work on implementing them properly.
Got rid of the unused variables in DiagBrdn.c
Fixed an uninitialized variable in SSML_DFP
Fixed fortran interface bug.
Added a line about DiagBrdn in the PETSC Users Manual.
Trying to fix the DY diagonal scaling.
Currently at test2 of DY, does worse than initial test. About to start test 3 - where only g is replaced by its preconditioned counterpart.
Temporarily took out taking the reciprocal in the rescaling part of the code where we calculate ytDy, etc
Now onto test4 for the DY diagonally scaled method. Test3 worked well, in previous commit. By that I mean it almost got to the scalar performance.
show more ...
|
| #
13a035b1
|
| 13-Aug-2018 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'master' into knepley/feature-plex-elasticity-test
* master: (1553 commits) -options_table was changed to options_view in 2014 but documentation was not updated to reflect it config
Merge branch 'master' into knepley/feature-plex-elasticity-test
* master: (1553 commits) -options_table was changed to options_view in 2014 but documentation was not updated to reflect it configure: fix F2003 test Plex test ex5: Removed "future" test, as it resulted in issues in the nightly tests. Some minor typos in TS Add ADIOS2.py which I forgot to git add in the past Plex ex5: Disable test Doc: Added note for interface change KSPLSQRMonitorDefault fixed for quad precision Tao: Added alternative output for chwirut2 test. TS ex45,ex46: Removed overly refined tests for faster nightly tests. KSP ex72: Fixed needlessly long-running PCTFS tests. SNES ex56: Reduced test size to speed up nightly test suite. KSPSolve_LSQR: don't compute unused norm of rhs SNES ex13: Reduced problem sizes for nightly tests. PetscOptionsDeprecated(): fix for NULL prefix PetscOptionsDeprecated(): add option to print additional info SNES ex12: Reduced sizes for BDDC tests. PetscFileRetrieve(): Suppress output to STDERR when downloading a file. MatMatMult: Fixed unused variable pN. DMDestroy: Guard call to dm->ops->destroy * Similar guards are in place in many other methods (IS,Vec,Mat) and permit the DM to be destroyed even if DMSetType() was never called. ...
show more ...
|
| #
d7677eb2
|
| 09-Aug-2018 |
Andreas Selinger <andreasselinger@gmail.com> |
Merged petsc/petsc into master
|
| #
691e98af
|
| 08-Aug-2018 |
Karl Rupp <me@karlrupp.net> |
Merge branch 'haplav/feature-ksplsqr-matnorm-test' [PR #1031]
* haplav/feature-ksplsqr-matnorm-test: KSPLSQR improvements - KSPLSQR: compute ||A|| estimate same way as Saunders and MATLAB and use it
Merge branch 'haplav/feature-ksplsqr-matnorm-test' [PR #1031]
* haplav/feature-ksplsqr-matnorm-test: KSPLSQR improvements - KSPLSQR: compute ||A|| estimate same way as Saunders and MATLAB and use it in type-specific stopping criterion KSPLSQRConvergedDefault gives now the same number of iterations as MATLAB - KSPLSQRGetArnorm -> KSPLSQRGetNorms, removerhs_normargument - KSPLSQRDefaultConverged -> KSPLSQRConvergedDefault - transfer good ideas from KSPConvergedLSQR to KSPLSQRConvergedDefault and delete lsqr_converged.c - transfer good ideas from KSPMonitorLSQR to KSPLSQRMonitorDefault and delete lsqr_monitor.c - allow -ksp_convergence_test lsqr - KSPLSQRSetStandardErrorVec replaced by KSPLSQRSetComputeStandardErrorVec,and -ksp_lsqr_set_standard_errorreplaced by-ksp_lsqr_compute_standard_error - add-ksp_lsqr_exact_mat_norm and KSPLSQRSetExactMatNorm() to optionally use exact Frobenius norm - extended documentation
show more ...
|
| #
59e7829c
|
| 07-Aug-2018 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'master' into knepley/feature-plex-parallel-submesh
* master: (2931 commits) remove N in docs for SNESQN replaced test tolerance with PETSC_SQRT_MACHINE_EPSILON fortran: PetscComp
Merge branch 'master' into knepley/feature-plex-parallel-submesh
* master: (2931 commits) remove N in docs for SNESQN replaced test tolerance with PETSC_SQRT_MACHINE_EPSILON fortran: PetscComplex type is missing from fortran initialize variables so that static analyzer doesn't mistakenly think they are used uninitialized. Move access of prefix until it is actually used Remove DMDASplitComm2d(), used in one example that was not tested Functions that do not return PetscErrorCode should not use PetscFunctionBegin/End paradgm remove unneeded reassignment of same value Missing CHKERRQ(); Mostly in Tao code Remove clang static analyser warning about passing NULL variable to strncat() missing newline in -ts_monitor_extreme minor fixes for integer counters Configure: Deal with '__func__' in C89 builds with newer Clang and GCC. Jenkinsfile: Increased timeout for tests to 5 minutes. 3.9 changes: further clarify removal of -pc_factor_mat_solver_package Options deprecations: add "PETSc" to inline warning removing unused variable MatShift support added to MATSUBMAT. Mimics MATSHELL functionality. Needed for matrix-free Hessians in TAO Newton-Line-Search methods. Add -ts_monitor_extreme Dev manual: add note on deprecating options database keys ...
Conflicts: src/dm/impls/plex/examples/tests/ex4.c
show more ...
|
| #
27a35bf0
|
| 07-Aug-2018 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'master' into knepley/fix-plex-submesh-projection
* master: (425 commits) remove N in docs for SNESQN replaced test tolerance with PETSC_SQRT_MACHINE_EPSILON fortran: PetscComplex
Merge branch 'master' into knepley/fix-plex-submesh-projection
* master: (425 commits) remove N in docs for SNESQN replaced test tolerance with PETSC_SQRT_MACHINE_EPSILON fortran: PetscComplex type is missing from fortran initialize variables so that static analyzer doesn't mistakenly think they are used uninitialized. Move access of prefix until it is actually used Remove DMDASplitComm2d(), used in one example that was not tested Functions that do not return PetscErrorCode should not use PetscFunctionBegin/End paradgm remove unneeded reassignment of same value Missing CHKERRQ(); Mostly in Tao code Remove clang static analyser warning about passing NULL variable to strncat() missing newline in -ts_monitor_extreme minor fixes for integer counters Configure: Deal with '__func__' in C89 builds with newer Clang and GCC. Jenkinsfile: Increased timeout for tests to 5 minutes. 3.9 changes: further clarify removal of -pc_factor_mat_solver_package Options deprecations: add "PETSc" to inline warning removing unused variable MatShift support added to MATSUBMAT. Mimics MATSHELL functionality. Needed for matrix-free Hessians in TAO Newton-Line-Search methods. Add -ts_monitor_extreme Dev manual: add note on deprecating options database keys ...
Conflicts: src/dm/impls/plex/examples/tests/ex4.c
show more ...
|
| #
bb104ea6
|
| 17-Jul-2018 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'master' into knepley/feature-pc-patch
* master: (226 commits) fix bib type in bibtex entry copy edits to bibtex items Hypre matrix: small fix Hypre matrix: fixed compiler war
Merge branch 'master' into knepley/feature-pc-patch
* master: (226 commits) fix bib type in bibtex entry copy edits to bibtex items Hypre matrix: small fix Hypre matrix: fixed compiler warnings Plex: Fixed missing PetscRealPart() in partition balance. Added MatZeroEntries_HYPRE Removed outdated mention of cusp and thrust from installations instructions; remove cusp from example configurations Remove another location where fshift was used with -1 to indicate handling of error condition which was never handled Generate an immediate error, if requested, if CG detects indefinite PC or Mat Remove hack of using special fshift value of -1 to indicate error handling, was broken for MatSOR_SeqAIJ and did nothing constructive in the other cases Options: Fix sys_tests-ex6 to not print options PetscOptionsDestroy: Add missing free() call Configure: Pragmatic now requires Cxx11 Error check that the communicator in the IS matches that in the matrix otherwise ISAllGather() produces incorrect results. Options: Code reorganization and faster option lookup fix compile warning Doc: Fixed manpage for PCFieldSplitSetSchurPre() mpiuni: build somempifort.o after mpiuni.mod Remove use of common block from MPIUNI code ...
Conflicts: include/petscdm.h include/petscpc.h include/petscpctypes.h src/dm/impls/plex/plexcreate.c src/dm/impls/plex/plexdistribute.c src/ksp/pc/impls/makefile src/ksp/pc/interface/pcregis.c
show more ...
|
| #
c15bc2c4
|
| 13-Jul-2018 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'master' into arcowie-rem/feature-error-logging
* master: (353 commits) Configure: Pragmatic now requires Cxx11 fix compile warning mpiuni: build somempifort.o after mpiuni.mod
Merge branch 'master' into arcowie-rem/feature-error-logging
* master: (353 commits) Configure: Pragmatic now requires Cxx11 fix compile warning mpiuni: build somempifort.o after mpiuni.mod Remove use of common block from MPIUNI code use was in wrong location Fortran line extends past 72 char Moved the rest of the PETSc common block variables over to petscsys module tests: fix breakage due to cd93b0e13c6da70ee1e038f55989cf888bc1d1c5 Need to use petscsys to get PETSC_COMM_SELF defined in example Mat ex23 and ex40: fix errors reported from nightly tests Put declaration on too lines because otherwise it generates an error for truncated line Move PETSC_COMM_WORLD and PETSC_COMM_SELF from common blocks to petscsys module tests: fix requires - and create out files for seqaijmkl tests KSP ex72: nested dissection is likely to be different between machines cmake: downgrade to version 3.9 - as newer versions require cxx11 compiler [which is not universal]. However stick with version 3.11 on opensolaris Mat ex23: fix memory leaks Bib: Some new refs KSP examples: add missing casts to double in printf updated GAMG KSP tests PetscRound() should be PetscRoundReal() in __fp16 ...
Conflicts: include/petsclog.h src/sys/logging/plog.c src/sys/logging/utils/eventlog.c
show more ...
|
| #
dcc87044
|
| 13-Jul-2018 |
Vaclav Hapla <vaclav.hapla@erdw.ethz.ch> |
KSPLSQR: -ksp_lsqr_exact_mat_norm & KSPLSQRSetExactMatNorm() for exact Frobenius norm
|
| #
0e827bf4
|
| 13-Jul-2018 |
Vaclav Hapla <vaclav.hapla@erdw.ethz.ch> |
KSPLSQRSetStandardErrorVec replaced by KSPLSQRSetComputeStandardErrorVec;
-ksp_lsqr_set_standard_error replaced by -ksp_lsqr_compute_standard_error; better handling of lsqr->se; fixed/extended docum
KSPLSQRSetStandardErrorVec replaced by KSPLSQRSetComputeStandardErrorVec;
-ksp_lsqr_set_standard_error replaced by -ksp_lsqr_compute_standard_error; better handling of lsqr->se; fixed/extended documentation.
show more ...
|
| #
3eeb4429
|
| 13-Jul-2018 |
Vaclav Hapla <vaclav.hapla@erdw.ethz.ch> |
transfer good ideas from KSPConvergedLSQR to KSPLSQRConvergedDefault and delete;
make use of Mat norm estimate.
|
| #
884807c7
|
| 13-Jul-2018 |
Vaclav Hapla <vaclav.hapla@erdw.ethz.ch> |
KSPLSQRGetNorms: remove nonconceptual rhs_norm argument
|
| #
70d0c986
|
| 12-Jul-2018 |
Vaclav Hapla <vaclav.hapla@erdw.ethz.ch> |
KSPLSQRGetArnorm -> KSPLSQRGetNorms; add documentation; all args optional
|
| #
0b1de38d
|
| 04-Jul-2018 |
Satish Balay <balay@mcs.anl.gov> |
Merge remote-tracking branch 'origin/denera/lmvm-mat-and-pc'
|
| #
9515a401
|
| 03-Jul-2018 |
Alp Dener <alp.dener@gmail.com> |
reverting back to using shared MatSolve interface
|
| #
488f980d
|
| 03-Jul-2018 |
Alp Dener <alp.dener@gmail.com> |
Merge branch 'master' into denera/lmvm-mat-and-pc
|
| #
b3afb7ef
|
| 01-Jul-2018 |
Stefano Zampini <stefano.zampini@gmail.com> |
Merge branch 'stefano_zampini/feature-fieldsplit-innerkspwithpcksp'
|
| #
f7bf01af
|
| 30-Jun-2018 |
Alp Dener <alp.dener@gmail.com> |
Custom solve function for LMVM matrices, disconnected from the common MatSolve interface
|
| #
285fb4e2
|
| 28-Jun-2018 |
Stefano Zampini <stefano.zampini@gmail.com> |
PCFieldSplit: adde PCFieldSplitSchurGetSubKSP() method
this method differs from PCFieldSplitGetSubKSP() since it returns all the KSPs used in the Schur factorization
|
| #
cfebe74e
|
| 28-Jun-2018 |
Stefano Zampini <stefano.zampini@gmail.com> |
PCKSP: added PCKSPSetKSP() method
cannot call the reset method during PCDestroy_KSP since it will reset the operators of the inner KSP
|
| #
d5ae2380
|
| 11-Jun-2018 |
Alp Dener <alp.dener@gmail.com> |
removed diagonal Broyden matrix and buried it into SymBrdn as a scaling option
|
| #
e0ed867b
|
| 25-May-2018 |
Alp Dener <alp.dener@gmail.com> |
Quasi-Newton-Krylov methods added that utilize MatMult on LMVM matrices inside a Krylov solver
|
| #
0ad3a497
|
| 18-May-2018 |
Alp Dener <alp.dener@gmail.com> |
LMVM matrices can now define J0 with another LMVM matrix, and DiagBrdn scaling implemented for relevant TAO algorithms
|
| #
2d5e3849
|
| 17-May-2018 |
Alp Dener <alp.dener@gmail.com> |
untested forward product added to DFP
|