Skip to content
Masakazu Matsumoto edited this page Jan 24, 2021 · 3 revisions

For clathrate hydrates, you can prepare the lattice with cages partially occupied by various guest molecules.

  • To make a CS1 clathrate hydrate structure of TIP4P water containing CO2 and methane (60% of small cages are filled with co2 and 40% are methane), invoke the following command:

    genice -g 12=co2*0.6+me*0.4 -g 14=co2 --water tip4p CS1 > cs1.gro

    Both tip4p, co2, and me are defined as molecules and included in GenIce as molecule plug-ins.

  • To make a CS2 clathrate hydrate structure of TIP5P water containing THF molecules in the large cage, while only one cage is filled with methane molecule, first, just run genice without guest specifications:

    genice2 CS2 > CS2.gro
    

    The list of cages will be output as follows:

    INFO   Hints:
    INFO     Cage types: ['12', '16']
    INFO     Cage type 12: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
    INFO     Cage type 16: {16, 17, 18, 19, 20, 21, 22, 23}
    

    This indicates that there are two types of cages named 12 and 16. Fill the 16 cages with THF and put a methane molecule in the 0th cage of type 12 as follows:

    genice2 CS2 -g 16=uathf -G 0=me --water tip5p > CS2.gro
    

Although only a few kinds of guest molecules are preset, you can easily prepare new guest molecules as a module. Here is an example of the ethylene oxide molecule.

import numpy as np

# 3-site EO model
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])
# center of mass
CoM = np.dot(mass, sites) / np.sum(mass)
sites -= CoM

atoms = ["O","C","C"]
labels = ["Oe","Ce","Ce"]
name = "EO"

Write the code in eo.py. Make a folder named molecules/ in the current working directory and put it in. You can use it as a guest.

genice2 CS1 -g 12=eo -g 14=eo > CS1+eo.gro

Note: multiple occupancies are not implemented. If it is required, make a module of a virtual molecule that contains multiple molecules.


クラスレート水和物の場合は、様々なゲスト分子が部分的にカゴを占有した格子を用意することができます。

  • CO2とメタンを含むTIP4P水のCS1クラスレート水和物構造を作るには(小籠包の60%がCO2で満たされ、40%がメタン)、以下のコマンドを呼び出します。

    genice -g 12=co2*0.6+me*0.4 -g 14=co2 --water tip4p CS1 > cs1.gro

    tip4p, co2, me はいずれも分子として定義されており、分子プラグインとして GenIce に含まれています。

  • TIP5P水にTHF分子を含み、1つのケージだけメタン分子で満たされているCS2クラスレート水和物構造を作るためには、最初にゲストの指定なしでgeniceを実行します。

    genice CS2 > CS2.gro
    

    次のようにケージのリストが表示されます:

    INFO   Hints:
    INFO     Cage types: ['12', '16']
    INFO     Cage type 12: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
    INFO     Cage type 16: {16, 17, 18, 19, 20, 21, 22, 23}
    

    これは、1216という2種類のケージがあることを示している。 16のケージにTHFを充填し、以下のように12型の0番目のケージにメタン分子を入れる。

    genice CS2 -g 16=uathf -G 0=me --water tip5p > CS2.gro
    

ゲスト分子は数種類しかプリセットされていませんが、モジュールとして新しいゲスト分子を簡単に用意することができます。ここでは、酸化エチレン分子の例を示します。

(GenIce 2)

import numpy as np
import genice2.molecules

class Molecule(genice2.molecules.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

        self.sites = np.array([[ 0.,    0., 0. ],
                               [-LCC/2, Y,  0. ],
                               [+LCC/2, Y,  0. ],])

        mass = np.array([16,14,14])
        # center of mass
        CoM = mass @ self.sites / np.sum(mass)
        self.sites -= CoM

        self.atoms_  = ["O","C","C"]
        self.labels_ = ["Oe","Ce","Ce"]
        self.name_   = "EO"

(GenIce 1)

import numpy as np

# 3-site EO model
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])
# center of mass
CoM = np.dot(mass, sites) / np.sum(mass)
sites -= CoM

atoms = ["O","C","C"]
labels = ["Oe","Ce","Ce"]
name = "EO"

eo.pyにコードを書き、現在の作業ディレクトリに molecules/ という名前のフォルダを作って、その中に入れます。これをゲストとして使うことができます。

genice CS1 -g 12=eo -g 14=eo > CS1+eo.gro

注意: 複数占有は実装されていません。必要な場合は、複数の分子を含む仮想分子のモジュールを作成してください。

Clone this wiki locally