Resolve "Ground state finder using Mixed Integer Programming"
Description
This merge request introduces the GroundStateFinder
that can be used to find the ground state structure for a binary system based on a specific cluster expansion. The script is dependent on the Python-MIP solver, which is to be considered as an optional package rather than a requirement for installing icet.
Comments
When reviewing this merge request, keep in mind that:
- Several options are available when running the MIP solver, which could be provided as optional arguments to the
get_ground_state
function. More information regarding Python-MIP can be found here. - The assertion check at the end of the
get_ground_state
function could be:- Skipped, entirely
- Allowed to be carried out by the user, through the introduction of an optional, boolean, argument that controls if both the solution, i.e. energy, as well as the ground state structure or only the latter is returned
- Optional
- Made more flexible by allowing the user to set the tolerance
- There are perhaps better ways to specify the species count than a dictionary that is only allowed to contain a single entry. One could, for instance, have two seperate arguments, i.e. the symbol for the species and the count, respectively.
Summary of changes
This merge request introduces two new files:
icet/tools/ground_state_finder.py
-
tests/unittest/test_icet/tools/test_ground_state_finder.py
All other changes are minor and only serve to allow theground_state_finder
to be imported and found in documentation.
Closes #285 (closed)
Edited by Paul Erhart