Evomatic is an genetic algorithm tool for the development of new alloys.
The evomatic package can be installed from pypi using pip:
pip install evomatic
Evomatic makes heavy use of the metallurgy package to manipulate and approximate properties of alloys. The cerebral package can be used by evomatic to obtain predictions of alloy properties on-the-fly during evolution.
Basic usage of evomatic involves setting some targets and running an evolution, the following example shows evolution of a small population towards alloys with high mass:
>>> import evomatic as evo
>>> evolver = evo.Evolver(targets={"maximise": ["mass"]}, population_size=50)
>>> history = evolver.evolve()
>>> history["alloys"]
alloy mass generation rank fitness
Og100 295.000000 7 0 1.000000
Og92.4Fl7.6 294.544000 11 1 0.998433
Og91.4Lv7.4Cm1.2 294.276000 9 2 0.997512
Og78Mc14Lv6.2Hs1.8 293.726000 11 3 0.995622
Lv100 293.000000 2 4 0.993127
... ... ... ... ...
Ar38.8Li28.5B24.9Sc5.7I2.1 25.396895 10 587 0.073521
Si79H21 22.398830 10 588 0.063218
Li83.7Zr16.3 20.678292 6 589 0.057305
Li97.9Db2.1 12.464260 5 590 0.029078
He100 4.002602 4 591 0.000000
In this simple example, there is no better material for the objective of maximum mass than pure Oganesson.
Documentation is available here.