This really big PR does a bunch of things in the core:
This PR has not been checked against any of the phase diagram notebooks yet.
…dd-remove-phases step of computation
…s. Tweak convergence criteria
…memory Conflicts: pycalphad/core/eqsolver.pyx
…ble getting tests to finish.
richardotis merged commit
Nov 25, 2017
5 checks passed
5 checks passed
continuous-integration/appveyor/branch AppVeyor build succeededDetails
continuous-integration/appveyor/pr AppVeyor build succeededDetails
continuous-integration/travis-ci/pr The Travis CI build passedDetails
continuous-integration/travis-ci/push The Travis CI build passedDetails
coverage/coveralls Coverage increased (+0.02%) to 87.528%Details
richardotis added a commit that referenced this pull request
Nov 26, 2017
This really big commit does a bunch of things in the core: - Adds the NLP solver IPOPT and its Cython wrapper cyipopt as dependencies - Removes the majority of the old eqsolver core, while leaving the simplistic treatment of global minimization intact (for now) - Adds deepcopy support for CompositionSet - Creates new `Problem` and `Solver` abstractions, which will make it easier to extend the solver in the future to handle different types of problems and constraints - Tweaks minimum value constants to improve convergence - Make some equilibrium tests more restrictive * WIP: Initial memory cleanup work * WIP: Profiling and memory and speed perf attempts * WIP: eqsolver constraints and add_new_phases: perf improvements by profiling * WIP: eqsolver: Remove debugging code * WIP: nogil in eval_energy * WIP: eval_energy nogil * WIP: _eval_disordered_energy and _eval_energy_gradient nogil * WIP: revert _eval_energy_gradient nogil * WIP: _eval_energy_gradient nogil fixed with calloc * WIP: eval_energy_gradient nogil * WIP: eval_energy_hessian and update nogil * WIP: eqsolver: type declaration cleanup * ENH: eqsolver: Add more line search iterations for performance * WIP: eval_energy: change to pointer for out argument * WIP: eval_energy_gradient and eval_energy fully release gil * WIP: eval_energy_hessian fully release gil * FIX: eqsolver: Add guard for singular matrices during solve * FIX: eqsolver: Convergence at lower point density by fixing bugs in add-remove-phases step of computation * FIX: eqsolver: Performance and stability improvements * WIP: Snapshot with all but one test passing * REF: Create Solver class and abstract away some of the details from the main equilibrium solve loop * ENH: CompositionSet: Add GM to CompositionSet.__str__ * FIX: hyperplane: Memory corruption during phase fraction calculation * FIX: eqsolver: Inf norm calculation * FIX/WIP: solver: Tweak complementarity tol to get convergence on one test, but break test_rose_nine. * TST/FIX: Add cyipopt to dependencies * FIX: Remove NumPyPrinter due to sympy 1.1 incompatibility. Other sympy 1.1 import changes. Fixes gh-105. * MAINT: eqsolver: Remove dead code * FIX: add_new_phases: Misalignment of phase fractions array due to non-deterministic sorting of simplex vertex index array * WIP: add_new_phases: Force endmembers to always be candidates for inclusion * WIP: Continued attempts at global minimization improvement. * WIP: add_new_phases: Add all stable phases plus the phase with the largest driving force. * ENH: CompositionSet: deepcopy support * WIP: eqsolver: Clean up and simplify global minimization code. Doesn't yet work completely but many tests pass and the performance hit is improved. * FIX/WIP: Get tests passing at pdens=500 with ipopt. Use a two-step approach to improve ipopt convergence. * WIP: eqsolver: For pdens=50, pass all tests with solver tweaks for cases near boundary. * DOC/FIX: BinaryExamples: Bump results and fix error in energy plot. * FIX: equilibrium: Reset default pdens to 500 to address ternary miscibility gap detection * BLD/FIX: appveyor: Bump miniconda to fix broken conda * MAINT: core: Remove obsolete cymem-related code * MAINT: compiled_model: Remove cython debugging directives * MAINT: hyperplane: Remove extraneous print statements * MAINT: Problem: Remove extraneous comments on hessian implementation * MAINT: solver: Remove extraneous commented-out print statements * TST/MAINT: test_equilibrium: Clean up assertions * BLD/TST: travis: Drop py34 and disable Dockerization to ease dependency handling * MAINT: core: Refactor solver constants to be in core.constants * FIX/TST: Use matplotlib 'Agg' backend in tests to avoid issues no DISPLAY on CI * BLD: appveyor: Add msys2 and pycalphad channels to enable ipopt * BLD/WIP: appveyor: Fix conda channel add * FIX: equilibrium: dask module rename compat * FIX: calculate: Remove fast_concat due to reliance on xarray internal API * FIX: custom_autowrap: Import correctly on Windows * FIX: solver: Increase ipopt max_iter to fix Windows * BLD: appveyor: Bump py27 to 64-bit
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.