-
Notifications
You must be signed in to change notification settings - Fork 21
Clathrate hydrates
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
, andme
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
and16
. Fill the16
cages with THF and put a methane molecule in the0
th cage of type12
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}
これは、
12
と16
という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
注意: 複数占有は実装されていません。必要な場合は、複数の分子を含む仮想分子のモジュールを作成してください。