Genarris Interfaces is a package for high-throughput generation and prediction of organic/inorganic interfaces.
- Please make sure anaconda, C compiler and MPI modules are correctly installed and loaded. An example for Bridges-2 user is:
module load anaconda3
module load openmpi/4.0.5-gcc10.2.0
- Create and activate your conda environment:
conda create -n gnrs_env python=3.8
conda activate gnrs_env
- Clone this repository:
git clone https://github.com/haoran-ni/Genarris-Interfaces.git
- Install the dependencies:
cd ./Genarris-Interfaces
pip install --no-cache-dir -r requirements.txt
- Install Ogre:
cd ..
git clone https://github.com/Shuyangzero/Ogre.git
cd ./Ogre
pip install .
- Update cgenarris submodule:
cd ../Genarris-Interfaces
git submodule update --init --recursive
- Install Genarris Interfaces:
python setup.py develop
Genarris Interfaces expects three files as inputs:
- ui.conf (runtime configuration file)
- geometry.in (input molecule structure)
- substrate.in (input substrate structure)
Below is an example ui.conf file:
# Sample Genarris input configuration file
[master]
name = <name of your molecule>
molecule_path = <path to the molecule structure file, aims format>
Z = <number of molecules per unit cell>
log_level = debug
downselection_workflow = robust_flow
restart = False
#interface or crystal
procedure = interface
[film_generation]
# x and y lattice vectors of the substrate
lattice_vectors = [[2.556200, 0.000000, 0.000000],[-1.2780999999999993, 2.2137341371537826, 0.000000]]
interface_area_mean = 0
interface_area_std = 0
volume_multiplier = 2
num_structures_per_lg = 200
specific_radius_proportion = 0.85
max_attempts_per_lg = 100000
tol = 0.1
unit_cell_volume_mean = predict
max_attempts_per_volume = 100000
lg_distribution_type = uniform
[film_slab_construction]
film_geo_path = film_generation
structure_name = <name of your molecule>
format = FHI
cleave_option = 0
layers = 1
vacuum_size = 1
highest_index = 2
supercell_size = None
miller_index = [0, 0, 1]
desired_num_of_molecules_onelayer = 0
[acsf]
rcut = 6.0
g2_params = [[1, 1], [1, 2], [1, 3]]
g4_params = [[1, 1, 1], [1, 2, 1], [1, 1, -1]]
compress = 0.98
[kmeans]
feature_name = "cacsf"
n_clusters = 15
max_iter = 200
n_init = 100
tol = 1
selection = center
[substrate_slab_construction]
##### indicate if substrate is organic or not, if so write 1, if not write 0
substrate_organic = 0
substrate_bulk_path = <path to the substrate structure file, aims format>
structure_name = <name of the substrate>
format = FHI
cleave_option = 0
layers = 1
vacuum_size = 1
highest_index = 2
supercell_size = None
miller_index = [0, 0, 1]
desired_num_of_molecules_onelayer = 0
[build_interface]
vacuum = 20
bo_iterations = 400
scan_step_size = 0.2
coeff = 4
attract_ad = 0.15
rep_ad = -0.25
delta_z = 4
precision = 30
z_shift_min = -2
z_shift_max = 2With the input files ready, run Genarris Interfaces using gnrs ui.conf or mpirun -np 128 gnrs ui.conf.
If you use Genarris Interfaces, please cite:
@article{
doi:10.26434/chemrxiv.10002028/v1,
author = {Haoran Ni and Kevin Larkin and Wen Wen and Saeed Moayedpour and Rithwik Tom and Imanuel Bier and Derek Dardzinski and Noa Marom },
title = {Structure Prediction of Organic/Inorganic Interfaces with Genarris},
journal = {ChemRxiv},
volume = {2026},
number = {0208},
pages = {},
year = {2026},
doi = {10.26434/chemrxiv.10002028/v1},
URL = {https://chemrxiv.org/doi/abs/10.26434/chemrxiv.10002028/v1}
}Genarris Interfaces is available under the BSD-3-Clause License.