Skip to content

v0.8.0

Latest

Choose a tag to compare

@amkrajewski amkrajewski released this 21 Apr 13:06
· 7 commits to main since this release

Major Changes:

  • Implemented a new functionality of generating limited compositional graphs where one can independently select min/max values of each component, expressed as either integer limits expressed as quanta of nDiv divisions per component/dimension (e.g., [[0,12],[2,8],[0,6]]) or fractional limits (e.g., [[0,1],[0.167,0.667],[0,0.5]]), both of which are inclusive, with the latter collapsed to the nearest intexger point (which for a given float depends on nDiv). A simple example if depicted in the figure below.

    limitedgraph

The implementation is quite efficient, taking the same order of magnitude of time and space as the unconstrained graph generation, despite several additional things that need to be computed. It can be used to generate limited graphs of arbitrary dimensionality, expressing design problems like "any high entropy alloy (HEA) with at least 5% and at most 45% of each of 7 metallic components, less than 5% of boron, and between 4% and 12% of carbon". A simple example of such cutout from a larger compositional space is depicted below.

limitedgraph2

This functionality can, as usual, be accessed through (1) the nim interface by calling simplex_graph_limited(dim: int, ndiv: int, limit: seq[seq[int]]) or simplex_graph_limited_fractional(dim: int, ndiv: int, limit: seq[seq[float]]), (2) respective Python bindings simplex_graph_limited_py or simplex_graph_limited_fractional_py, or (3) from the command line interface (CLI), outputting shape, data, or NumPy stored data; e.g. by requesting Limited graph with Fractional node positions in NumPy format with specific limits:

./nimplex -c LFN 4 12 "[[0,1],[0,0.666],[0.153,0.5],[0.075,1]]"

demo

  • Comprehensive set of tests has been added for the limited graph functionality and several other tests were improved.

Minor Changes:

  • Improved devcontainer.json and Dockerfiles, used for running tutorials, to be faster and more reliable.
  • Documentation improvements including updated README, documentation webpage, CITATION.cff.
  • Updated the testing suite runners to reflect current popular systems.

Full Changelog: v0.7.1...v0.8.0