Random Structures via buildcell#
In Workflow random structures can be generated via the wfl.generate.buildcell.buildcell() routine. It’s functionality builds on AIRSS’s buildcell to constructs sensible random structures.
The example below illustrates its application for the random generation of aluminum unit cells. Here, we are aiming for a total of 20 structures and, thus, set inputs to an iterable of that length. Next, we define an OutputSpec to handle the output structures that will be generated. In order to have a proper buildcell_input available, we are using the wfl.generate.buildcell.create_input() routine in this example where we pass arguments that characterise the systems we are aiming
to generate. Finally, we set the buildcell_cmd appropriately to the buildcell executable we use on our machine and run the script to obtain the desired number of random Al-based unit cells.
import os
from wfl.generate import buildcell
from wfl.configset import OutputSpec
inputs = range(20)
outputspec = OutputSpec('buildcell_output.xyz')
buildcell_input = buildcell.create_input(z=13, vol_per_atom=10, bond_lengths=2)
outputs = buildcell.buildcell(
inputs=inputs,
outputs=outputspec,
buildcell_input=buildcell_input,
buildcell_cmd='buildcell',
)