A Python package for structure prediction of epitaxial interfaces by lattice and surface matching

Ogre is an open-source package for structure prediction of organic and inorganic epitaxial interfaces by lattice matching followed by surface matching. The lattice matching step produces domain-matched interfaces, where commensurability is achieved with different integer multiples of the substrate and film unit cells. In the surface matching step, Bayesian optimization (BO) is used to find the interfacial distance and registry between the substrate and film. Different strategies are employed for inorganic and organic materials to perform this step efficiently and avoid computationally expensive DFT calculations. For inorganic materials, the BO objective function is a geometric score function, based on the overlap and empty space between atomic spheres at the interface. Preliminary ranking of surface-matched structures is performed with a ranking score function, based on the degree of similarity of the interface environment to the bulk environment of both materials. For organic materials the BO objective function is based on dispersion-corrected deep neural network interatomic potentials, which are also used for preliminary ranking. Ogre includes additional utilities for constructing surface models and converging the surface and interface energies for both organic and inorganic materials. Ogre automatically identifies all symmetrically unique surfaces for the user-specified Miller indices and detects all possible surface terminations. Specifically for molecular crystals, the surface is cleaved from the bulk crystal structure with the molecules on the surface kept intact. A molecular graph representation is used to identify and repair cleaved molecules. Calculated surface energies can be used to predict the Wulff shape of a molecular crystal.


  • Python: 3; Libraries: pymatgen, ASE
  • Energy evaluation and relaxation: FHI-aims, VASP
  • Performs lattice and surface matching for organic and inorganic epitaxial interfaces.
  • Inputs are bulk crystal structures and tolerances for interface area and mismatch
  • Generates surface and interface models
  • Miller index scan to find the best domain-matched interface
  • Geometric score functions for fast surface matching and preliminary ranking of inorganic interfaces
  • Interface with the ANI deep neural network interatomic potentials for surface matching and preliminary ranking of organic interfaces
  • Bayesian optimization to find the optimal in-plane registry and interfacial distance
  • Automated surface and interface model construction
  • Automated identification of unique surfaces and terminations
  • Cleaving molecular crystal surfaces while keeping molecules intact
  • Automated surface passivation
  • Automated surface and interface energy evaluation 
  • Wulff shape construction


  • S. Yang, I. Bier, W. Wen, J. Zhan, S. Moayedpour, and N. Marom “Ogre: A Python Package for Molecular Crystal Surface Generation with Applications to Surface Energy and Crystal Habit Prediction”, J. Chem. Phys. 152, 244122 (2020)
  • S. Moayedpour, D. Dardzinski, S. Yang, A. Hwang, N. Marom “Structure Prediction of Epitaxial Inorganic Interfaces by Lattice and Surface Matching with Ogre”, J. Chem. Phys., 155, 034111 (2021)
  • S. Moayedpour, I. Bier, W. Wen, D. Dardzinski, O. Isayev, and N. Marom “Structure Prediction of Epitaxial Organic Interfaces with Ogre, Demonstrated for TCNQ on TTF”, arXiv 2301.07594 (2023)