Building complex molecular systems for simulation requires tools that go beyond simple solvation and can handle extended, periodic, or multi-component architectures. VeloxChem provides a growing set of dedicated builder classes designed to automate the construction of such systems, generating simulation-ready structures and force field input files with minimal user effort.
Currently, VeloxChem offers the MofBuilder class for the construction of metal-organic frameworks (MOFs). Starting from a choice of MOF topology family, a metal node type, and a linker molecule, a full periodic MOF structure can be assembled, optionally extended into a supercell and modified by introducing structural defects such as missing linkers or nodes. The resulting structure can be exported directly as GROMACS input files for subsequent molecular dynamics simulations.
MOF builder¶
Metal-organic frameworks (MOFs) are porous crystalline materials built from metal nodes connected by organic linker molecules into periodic three-dimensional networks. Their highly tunable pore geometry and chemistry make them attractive for applications such as gas storage, separation, and catalysis.
The MofBuilder class automates the assembly of MOF structures from a set of predefined topology families, a choice of metal node, and a user-provided linker molecule. The resulting periodic structure can be extended into a supercell and further modified by introducing defects such as missing linkers or nodes, reflecting the imperfections found in experimentally synthesized materials.
mof = vlx.MofBuilder()There are several predefined families of MOFs defined in VeloxChem.
mof.show_available_mof_families()Available MOF Families:
UiO-66 UiO-67 UiO-68 PCN-222 MOF-545 NU-1000 PCN-224 MOF-525 MOF-535 MOF-808 MOF-818 PCN-777 NU-901 MIL-100 PCN-228 PCN-229 PCN-230 MIL-101
To build a target MOF, you need to:
Assign MOF family.
Assign the node metal type.
Specify the name of the file containing the linker in xyz-format.
Set the supercell size, where (1,1,1) refers to the primitive cell.
mof.mof_family = "UiO-66"
mof.node_metal = "Zr"
mof.linker_xyz_file = "../input_files/linker.xyz"
mof.supercell = (1, 1, 1)mof.build()mof.show(residue_indices=True, residue_names=False)We can introduce defects by removing linkers or nodes. As an example, let us remove the four linkers facing the viewer.
mof.remove(linkers=[18, 24, 30, 36], update_node_termination=True)mof.show(residue_indices=True)Input files can be written for subsequent molecular dynamics simulations using GROMACS.
mof.write_gromacs_files()