Skip to content

Commit a93e8ba

Browse files
committed
(docs) rewrote and added to the description of graph complexes
1 parent 3050b7d commit a93e8ba

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,13 +128,19 @@ The library provides a growing number of methods specific to compositional (simp
128128

129129
<img src="https://raw.githubusercontent.com/amkrajewski/nimplex/0cd8c4aebd09eeeb9b4bfa38ffdf598bf6e50949/assets/small_GL.png" alt="Limited Simplex Graph for Ternary Space" width="800" style="display: block; margin-left: auto; margin-right: auto;"/>
130130

131+
6. **Graph Complexes**, combining multiple individual compositional graphs can also be constructed through the `utils/stitching` module which computes fixed-orientation subspaces that can be joined together,
132+
e.g., A-B-C in A-B-C-D with A-B-C in F-A-C-E-B. As explored in [our npj Unconventional Computing article](https://doi.org/10.1038/s44335-024-00012-2), such combined representations, allowing for even different dimensionalities of joined spaces, can can then be used to efficeintly encode complex problem spaces where some prior assumptions and knowledge are available. In the Example #2 from our article, inspired by problem of joining titanium with stainless steel in [10.1016/j.addma.2022.102649](https://doi.org/10.1016/j.addma.2022.102649), using 3-component spaces, one can encode 3 separate paths where some components are shared in predetermined fashion. This efficiently encodes the problem space in form of a single simplex graph complex (right panel below) with a single consistent structure, that can be directly used for pathfinding and other graph algorithms just like any other graph.
131133

132134
<img src="https://raw.githubusercontent.com/amkrajewski/nimplex/dbcd9a6e1edd21aebec5e3ec964593ea1a13d23a/assets/Fig4.png" alt="Simplex Graph Complex" width="1000" style="display: block; margin-left: auto; margin-right: auto;"/>
133135

134136
With such graph representation, one can very easily deploy any scientific library for graph exploration, constrained and biased by models operating in the elemental space mapping `nimplex` provides. A neat and concise demonstration of this is provided in the [`02.AdditiveManufacturingPathPlanning.ipynb`](examples/02.AdditiveManufacturingPathPlanning.ipynb) under `examples` directory, where thermodynamic phase stability models constrain a 4-component (tetrahedral) design space existing in 7-component chemical space and property model related to yield strength (RMSAD) is used to bias designed paths towards objectives like property maximization or gradient minimization with extremely concise code simply modifying the weights on unidirectional edges in the graph. For instance, the figure below (approximately) depicts the shortest path through a subset of tetrahedron formed by solid solution phases, later stretched in space proportionally to RMDAS gradient magnitude.
135137

136138
<img src="https://raw.githubusercontent.com/amkrajewski/nimplex/main/assets/Fig5.png" alt="Gradient Magnitude Stretched Graph with Shortest Path" width="1000" style="display: block; margin-left: auto; margin-right: auto;"/>
137139

140+
A real-world example of using such context can be found in [our paper on AMMap tool](https://doi.org/10.31224/4453), where a graph complex consisting of all possible ternary (3-component) simplex graphs in a 7-component space are joined together, representing a continous space of all possible ternary compositions of 7 elements. In the paper, it is then used to deploy thermodynamic calculations through a search algorithm, with aim of finding the shortest path between two compositions of interest. The resulting graph complex with calculation results overlaid is shown below.
141+
142+
143+
138144
> Several other methods are in testing and will likely be added in the future releases. If you have any suggestions, please open an issue on GitHub as we are always soliciting new ideas and use cases based on real-world problems in the
139145
scientific computing community.
140146

0 commit comments

Comments
 (0)