GenIce3

Clathrate hydrates

For clathrate hydrates, you can build lattices with cages partially occupied by guest molecules.

Only a few guest molecules are included by default; you can add more by writing a plugin. Here is an example for ethylene oxide:

import numpy as np
import genice3.molecule

class Molecule(genice3.molecule.Molecule):
    def __init__(self):
        # United-atom EO model with a dummy site
        LOC = 0.1436  # nm
        LCC = 0.1472  # nm
        Y = (LOC**2 - (LCC/2)**2)**0.5
        sites = np.array([[0., 0., 0.], [-LCC/2, Y, 0.], [+LCC/2, Y, 0.]])
        mass = np.array([16, 14, 14])
        CoM = mass @ sites / np.sum(mass)
        sites -= CoM
        atoms = ["O", "C", "C"]
        labels = ["Oe", "Ce", "Ce"]
        name = "EO"
        super().__init__(sites=sites, labels=labels, name=name, is_water=False)

Save this as eo.py in a molecule folder in your current directory.

!!! warning “Multiple occupancy not supported” Multiple occupancy is not supported. To model it, prepare a molecule plugin that represents multiple molecules.