-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Solver improvements via IPOPT #124
Merged
Merged
Changes from 79 commits
Commits
Show all changes
101 commits
Select commit
Hold shift + click to select a range
922d137
WIP: Initial memory cleanup work
richardotis 813ba0b
WIP: Profiling and memory and speed perf attempts
richardotis 4dffa3c
WIP: eqsolver constraints and add_new_phases: perf improvements by pr…
richardotis 7c0d71a
WIP: eqsolver: Remove debugging code
richardotis d1cfc5b
WIP: nogil in eval_energy
richardotis ea0db25
WIP: eval_energy nogil
richardotis 962b3b0
WIP: _eval_disordered_energy and _eval_energy_gradient nogil
richardotis 40df868
WIP: revert _eval_energy_gradient nogil
richardotis bf89e78
WIP: _eval_energy_gradient nogil fixed with calloc
richardotis ec3264c
WIP: eval_energy_gradient nogil
richardotis 7d45404
WIP: eval_energy_hessian and update nogil
richardotis b046204
WIP: eqsolver: type declaration cleanup
richardotis 599880c
ENH: eqsolver: Add more line search iterations for performance
richardotis 43dcecc
WIP: eval_energy: change to pointer for out argument
richardotis 955baef
WIP: eval_energy_gradient and eval_energy fully release gil
richardotis 5a995f7
WIP: eval_energy_hessian fully release gil
richardotis b174eee
FIX: eqsolver: Add guard for singular matrices during solve
richardotis be80820
FIX: eqsolver: Convergence at lower point density by fixing bugs in a…
richardotis 580ef69
FIX: eqsolver: Performance and stability improvements
richardotis 563e407
WIP: eqsolver: Incomplete attempt at getting Hillert's two-step metho…
richardotis 38ef883
ENH/WIP: eqsolver: Add constant-potential refinement to add_new_phase…
richardotis 9de0ced
Merge branch 'fix_memory' of github.com:pycalphad/pycalphad into fix_…
richardotis e56fd2f
FIX: eqsolver: Snapshot with tests passing
richardotis f5910a5
WIP: Snapshot with passing tests and two conv failures on Al-Zn
richardotis 02c0e2a
WIP: Snapshot with good Al-Zn but many single-phase failures
richardotis 72dba20
WIP: Snapshot with no wrong answers but lots of conv failures. Tests …
richardotis e9e4ffc
WIP: Snapshot of really slow but seemingly robust solver. Having trou…
richardotis 62470e8
WIP: eqsolver: Add initial remove_degenerate_phases() back
richardotis 7a8504c
WIP: Snapshot with all but one test passing
richardotis c56d5ac
WIP: py27 compat for add_new_phases
richardotis 5f4e7cd
WIP: eqsolver: TESTS PASS SHIP IT
richardotis 6909333
WIP: eqsolver: Tests passing but still Al-Zn convergence failures
richardotis 130981e
WIP: eqsolver: Tests pass relatively quickly
richardotis ea8afb4
WIP: Set MIN_PHASE_FRACTION and remove dead code
richardotis d5ab926
WIP: hyperplane: Fixes for edge cases
richardotis 1d901c5
WIP: eqsolver: Key tests pass
richardotis 64d8417
WIP: eqsolver: Change phases if alpha==0
richardotis 12d070a
WIP: System class for abstracting the problem details from the solver
richardotis 1a395d4
WIP: System: Minimal implementation
richardotis 2d656a0
WIP: System/eqsolver: Initial attempt at ipopt support
richardotis 5b4e8f1
WIP: System: Fix indexing for constraint calculation
richardotis dcb7e27
WIP: System: Fix indexing errors so derivative checker passes
richardotis 8c0d5e9
WIP:System: Remove extraneous debugging print
richardotis 9067a6c
WIP: eqsolver: Initial hacky attempt to switch ipopt on in the solver
richardotis e0c6db8
WIP: eqsolver: Indexing fixes and some attempts at integrating global…
richardotis 8137646
WIP: eqsolver: Fixes for global min integration and result calculation
richardotis ac963a7
WIP: eqsolver/hyperplane/system: Fiddle with convergence settings unt…
richardotis 689e238
REF/MAINT: Rename System to Problem
richardotis 38b4767
REF: Create Solver class and abstract away some of the details from t…
richardotis 650202d
ENH: CompositionSet: Add GM to CompositionSet.__str__
richardotis ae2afb0
Merge remote-tracking branch 'origin/fix_memory' into fix_memory
richardotis 513576b
WIP: Progress with making chemical potentials primal variables
richardotis 194a7b2
Revert "WIP: Progress with making chemical potentials primal variables"
richardotis 13bcc26
FIX: hyperplane: Memory corruption during phase fraction calculation
richardotis 0a66b94
WIP: Loosen upper bounds and debugging output
richardotis 6259361
WIP: More debugging output and an updated test
richardotis d7ac61e
WIP/FIX: hyperplane fixes and continued convergence tweaks
richardotis d40a2b0
WIP/FIX: Disable hyperplane debugging output and stop calling ipopt i…
richardotis 5a7ce8c
WIP: More solver debugging tweaks without globmin
richardotis c9ebb7b
WIP: Progress in finding optimal points without globmin
richardotis 0eaa74a
WIP: eqsolver: All tests converge, though not necessarily optimally
richardotis 10ca65e
WIP: Remove dead code
richardotis bd2e833
WIP: Disable debugging code
richardotis 6645aeb
FIX: eqsolver: Inf norm calculation
richardotis 20eaf0c
ENH/FIX: eqsolver: Mostly working and passing (modified) tests
richardotis 5762f38
FIX/WIP: solver: Tweak complementarity tol to get convergence on one …
richardotis f2f5301
TST/FIX: Add cyipopt to dependencies
richardotis 87b9ae0
FIX: Remove NumPyPrinter due to sympy 1.1 incompatibility. Other symp…
richardotis d1cfd9f
MAINT: eqsolver: Remove dead code
richardotis 006aa37
Merge branch 'develop' into fix_memory
richardotis 6242690
FIX: add_new_phases: Misalignment of phase fractions array due to non…
richardotis ea367db
WIP: add_new_phases: Force endmembers to always be candidates for inc…
richardotis 4fd5a0c
WIP: Continued attempts at global minimization improvement.
richardotis 31252b3
WIP: add_new_phases: Add all stable phases plus the phase with the la…
richardotis 8dcd56c
Merge branch 'develop' into fix_memory
richardotis 00d2d6a
ENH: CompositionSet: deepcopy support
richardotis 4f66221
WIP: eqsolver: Clean up and simplify global minimization code. Doesn'…
richardotis b598900
FIX/WIP: Get tests passing at pdens=500 with ipopt. Use a two-step ap…
richardotis 66e3fc2
WIP: eqsolver: For pdens=50, pass all tests with solver tweaks for ca…
richardotis 804f875
DOC/FIX: BinaryExamples: Bump results and fix error in energy plot.
richardotis c64c3b2
FIX: equilibrium: Reset default pdens to 500 to address ternary misci…
richardotis 4ef8a7a
BLD/FIX: appveyor: Bump miniconda to fix broken conda
richardotis 4790d65
WIP: Merge latest develop
richardotis 147094d
Merge branch 'develop' into fix_memory
richardotis 16ccba3
MAINT: core: Remove obsolete cymem-related code
richardotis d21a36b
MAINT: compiled_model: Remove cython debugging directives
richardotis 2169906
MAINT: hyperplane: Remove extraneous print statements
richardotis eea3d1c
MAINT: Problem: Remove extraneous comments on hessian implementation
richardotis 7fe6f42
MAINT: solver: Remove extraneous commented-out print statements
richardotis eeeb854
TST/MAINT: test_equilibrium: Clean up assertions
richardotis a861daf
BLD/TST: travis: Drop py34 and disable Dockerization to ease dependen…
richardotis bde216c
MAINT: core: Refactor solver constants to be in core.constants
richardotis fe7e0db
FIX/TST: Use matplotlib 'Agg' backend in tests to avoid issues no DIS…
bocklund eae81ff
BLD: appveyor: Add msys2 and pycalphad channels to enable ipopt
richardotis 5c3a778
Merge branch 'develop' into fix_memory
richardotis 1ae47d5
BLD/WIP: appveyor: Fix conda channel add
richardotis f1f868e
FIX: equilibrium: dask module rename compat
richardotis 12f485a
FIX: calculate: Remove fast_concat due to reliance on xarray internal…
richardotis 83d1e1c
FIX: custom_autowrap: Import correctly on Windows
richardotis 533b580
FIX: solver: Increase ipopt max_iter to fix Windows
richardotis ee5cda8
BLD: appveyor: Bump py27 to 64-bit
richardotis File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think cymem is dead now so the following needs to be cleaned up
compiled_model.pxd
cdef public Pool mem
in line 39.In
compiled_model.pyx
:self.mem = Pool()
(line 56)inst.mem
in line 1071Pool()
in line 1018In addition the