Skip to content

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 the ground_state_finder to be imported and found in documentation.

Closes #285 (closed)

Edited by Paul Erhart

Merge request reports