[Advanced] Nano particle energy¶
本節は発展編の位置付けとします。次章へ急ぎたい方はスキップし、後から読んでいただいても構いません。
本節では、Nano particle (クラスター構造) の過剰エネルギー(excess energy)計算と、担体上の吸着構造作成を行ってみます。
[1]:
import pfp_api_client
from pfp_api_client.pfp.calculators.ase_calculator import ASECalculator
from pfp_api_client.pfp.estimator import Estimator, EstimatorCalcMode
from pfcc_extras.visualize.view import view_ngl
print(f"pfp_api_client: {pfp_api_client.__version__}")
# estimator = Estimator(calc_mode=EstimatorCalcMode.CRYSTAL, model_version="latest")
estimator = Estimator(calc_mode=EstimatorCalcMode.CRYSTAL_U0, model_version="v3.0.0")
calculator = ASECalculator(estimator)
pfp_api_client: 1.5.0
[2]:
from ase.cluster import Decahedron, Icosahedron, Octahedron, wulff_construction
from ase import Atoms
from ase.build import bulk
from ase.constraints import ExpCellFilter, StrainFilter
from ase.optimize import LBFGS
from ase.io import Trajectory
import numpy as np
import pandas as pd
過剰エネルギー - Excess energy¶
純金属に1種類以上他の元素を混ぜた材料を合金 (alloy) と呼びますが、 金属は2種類以上の元素を組み合わせることで、その性質を大きく変化させるようなものがあります。
例えば、アルミニウムと銅やマグネシウムを混ぜた、ジュラルミンはその軽くて硬い性質から航空宇宙機器などに使われています。
2種類の元素が混ざったものを2元系合金、3種類以上の元素が混ざったものは多元系合金と呼ばれます。
多元系合金は、新たな性質を持つような材料の発見も期待されていますが、 元素の種類が増えるほどその組成比の組み合わせが大きくなり、まだまだ解析が進んでいない領域です。 このような系もMatlantisではその汎用性を活かし、扱うことができます。
こういった合金の原子構造を考える際には、現実ではどのように混ざるのか、そもそもきれいに混ざることができる組み合わせなのかを知る必要があります。
このような合金の安定度合いを測る指標として、過剰エネルギー(excess energy)があります。 元素Aと元素Bを混ぜた2元系合金 (alloy)の過剰エネルギー(excess energy)は以下のように計算され、その合金のエネルギーが、元素A, Bがそれぞれ混ざっていなかった場合と比べてどのくらい安定かを示します。
\(E_{\rm{alloy}}\)が合金のエネルギー、\(E_\rm{A}, E_\rm{B}\) は単原子AまたはBで構成された時のエネルギーで、\(N_{\rm{alloy}}, N_{\rm{alloyA}}, N_{\rm{alloyB}}\)はそれぞれ合金のすべての原子数、元素Aの原子数、元素Bの原子数です。
多元系の場合も同様に定義できます。
ここでは、PtとPdを混ぜた構造に対して、excess energyを評価することでその安定性を評価してみましょう。
参考文献:
Electronic Structure and Phase Stability of PdPt Nanoparticles
Electronic structure and phase stability of Pt3M (M = Co, Ni, and Cu) bimetallic nanoparticles
Calculations of Real-System Nanoparticles Using Universal Neural Network Potential PFP
Pt711 Nano particleに対して、Pdを混ぜた構造に対して、 2元系のNano particleを考えた場合にもその混ざり方は様々な可能性が考えられます。
今回は以下のような構造を作成し、そのexcess energyを評価してみます。
PtとPdが均等に混ざる形で存在する構造
Ptが内殻に、Pdが外殻に存在する構造
Pdが内殻に、Ptが外殻に存在する構造
Core shell構造を作成する関数定義です。読み飛ばしていただいて構いません。
[3]:
from typing import List, Tuple
from ase import Atoms, neighborlist
from ase.cluster import Cluster
import numpy as np
from ase.data import atomic_numbers
def cluster2atoms(cluster: Cluster) -> Atoms:
"""Convert ASE Cluster to ASE Atoms
Args:
cluster (Cluster): input cluster instance
Returns:
atoms (Atoms): converted output, atoms instance
"""
return Atoms(cluster.symbols, cluster.positions, cell=cluster.cell)
def calc_coordination_numbers(atoms: Atoms) -> Tuple[List[int], List[np.ndarray]]:
"""Calculates coordination number
Args:
atoms: input atoms
Returns:
cns (list): coordination number for each atom
bonds (list): bond destination indices for each atom
"""
nl = neighborlist.NeighborList(
neighborlist.natural_cutoffs(atoms), self_interaction=False, bothways=True
)
nl.update(atoms)
bonds = []
cns = []
for i, _ in enumerate(atoms):
indices, offsets = nl.get_neighbors(i)
bonds.append(indices)
cns.append(len(indices))
return cns, bonds
def substitute(scaffold: Atoms, sites: np.ndarray, elements: List[str]) -> Atoms:
"""Substibute `elements` to `sites` indices of `scaffold` atoms
Args:
scaffold (Atoms): Original input atoms
sites (np.ndarray): site indices to substitute `elements`
elements (list): elements to be substituted
Returns:
substituted (Atoms): substituted ase atoms
"""
substituted = scaffold.copy()
for site, element in zip(sites, elements):
substituted.numbers[site] = atomic_numbers[element]
return substituted
def make_core_shell(scaffold: Atoms, element: str) -> Atoms:
"""Make core shell structure
Input `scaffold` element is kept inside core shell,
and outside surface is replaced by `element`.
Note that it is not fully tested.
It was not guaranteed to work on all the cases.
Args:
scaffold (Atoms): input cluster structure
element (str): outside surface element to be replaced
Returns:
coreshell (Atoms): core shell structure
"""
# CN : vertex < edge < surface < core
cn = np.array(calc_coordination_numbers(scaffold)[0])
cn_set = np.unique(cn)
vertexes = None
surfaces = None
cores = None
if len(cn_set) == 1:
pass
elif len(cn_set) == 2:
cores = np.where(cn == cn_set[1])[0]
surfaces = np.where(cn == cn_set[0])[0]
elif len(cn_set) == 3 or len(cn_set) == 4:
cores = np.where(cn == cn_set[-1])[0]
surfaces = np.where(cn != cn_set[-1])[0]
vertexes = np.where(cn == cn_set[0])[0]
else:
cores = np.where(cn == cn_set[-1])[0]
surfaces = np.where(cn != cn_set[-1])[0]
vertexes = np.where(np.isin(cn, cn_set[:-3]))[0]
if surfaces is None:
core_shell = scaffold.copy()
else:
core_shell = substitute(scaffold, surfaces, [element] * len(surfaces))
return core_shell
まず今回ベースとなるNano particle 骨格構造(scaffold)を作成します。
[4]:
Pt711 = cluster2atoms(Octahedron("Pt", 11, cutoff=4))
view_ngl(Pt711)
make_core_shell
関数を用いて、ベース骨格の内殻のみ “Pd” 元素に置き換えた構造 Pd306Pt405構造を作成します。
[5]:
Pd306Pt405 = make_core_shell(Pt711, "Pd")
view_ngl(Pd306Pt405)
同様にして、外殻がPd, 内殻がPtとなる構造Pd405Pt306を作成します。
[6]:
Pd711 = Octahedron("Pd", 11, cutoff=4)
Pd405Pt306 = make_core_shell(Pd711, "Pt")
view_ngl(Pd405Pt306)
[7]:
symbols, counts = np.unique(Pd405Pt306.symbols, return_counts=True)
print(f"Pd405Pt306 structure contains {symbols} with counts {counts}", )
symbols, counts = np.unique(Pd306Pt405.symbols, return_counts=True)
print(f"Pd306Pt405 structure contains {symbols} with counts {counts}", )
Pd405Pt306 structure contains ['Pd' 'Pt'] with counts [405 306]
Pd306Pt405 structure contains ['Pd' 'Pt'] with counts [306 405]
ここで得られたそれぞれの構造を構造緩和し、エネルギーを求めます。
[8]:
from ase.optimize import FIRE
def get_opt_energy(atoms, fmax=0.001):
opt = FIRE(atoms)
opt.run(fmax=fmax)
return atoms.get_total_energy()
[9]:
print("Optimizing Pt711")
Pt711.calc = calculator
E_pt711 = get_opt_energy(Pt711)
print("Optimizing Pd306Pt405")
Pd306Pt405.calc = calculator
E_pd306pt405 = get_opt_energy(Pd306Pt405)
print("Optimizing Pd405Pt306")
Pd405Pt306.calc = calculator
E_pd405pt306 = get_opt_energy(Pd405Pt306)
print("Optimizing Pd711")
Pd711.calc = calculator
E_pd711 = get_opt_energy(Pd711)
Optimizing Pt711
Step Time Energy fmax
*Force-consistent energies used in optimization.
FIRE: 0 06:54:54 -3603.041770* 1.1063
FIRE: 1 06:54:54 -3604.081779* 1.0498
FIRE: 2 06:54:54 -3605.848377* 0.9306
FIRE: 3 06:54:55 -3607.344865* 0.7998
FIRE: 4 06:54:55 -3608.622478* 0.6640
FIRE: 5 06:54:55 -3609.735569* 0.5327
FIRE: 6 06:54:55 -3610.728639* 0.4144
FIRE: 7 06:54:56 -3611.628229* 0.3549
FIRE: 8 06:54:56 -3612.447484* 0.3436
FIRE: 9 06:54:56 -3613.187570* 0.3175
FIRE: 10 06:54:56 -3613.846037* 0.2669
FIRE: 11 06:54:57 -3614.425194* 0.2127
FIRE: 12 06:54:57 -3614.931713* 0.2186
FIRE: 13 06:54:57 -3615.369616* 0.2122
FIRE: 14 06:54:57 -3615.738931* 0.1940
FIRE: 15 06:54:58 -3616.044471* 0.1671
FIRE: 16 06:54:58 -3616.293988* 0.1389
FIRE: 17 06:54:58 -3616.481608* 0.1185
FIRE: 18 06:54:58 -3616.616016* 0.1265
FIRE: 19 06:54:59 -3616.717579* 0.1232
FIRE: 20 06:54:59 -3616.798756* 0.1233
FIRE: 21 06:54:59 -3616.855684* 0.1492
FIRE: 22 06:54:59 -3616.885267* 0.1363
FIRE: 23 06:54:59 -3616.959217* 0.0793
FIRE: 24 06:55:00 -3617.036669* 0.0826
FIRE: 25 06:55:00 -3617.107673* 0.0584
FIRE: 26 06:55:00 -3617.151703* 0.0699
FIRE: 27 06:55:00 -3617.174603* 0.0587
FIRE: 28 06:55:01 -3617.184372* 0.0522
FIRE: 29 06:55:01 -3617.188934* 0.0450
FIRE: 30 06:55:01 -3617.196528* 0.0376
FIRE: 31 06:55:01 -3617.205299* 0.0348
FIRE: 32 06:55:02 -3617.213477* 0.0359
FIRE: 33 06:55:02 -3617.220633* 0.0334
FIRE: 34 06:55:02 -3617.227574* 0.0257
FIRE: 35 06:55:02 -3617.232732* 0.0232
FIRE: 36 06:55:03 -3617.237323* 0.0200
FIRE: 37 06:55:03 -3617.240054* 0.0153
FIRE: 38 06:55:03 -3617.241792* 0.0167
FIRE: 39 06:55:03 -3617.241965* 0.0160
FIRE: 40 06:55:04 -3617.242585* 0.0148
FIRE: 41 06:55:04 -3617.243465* 0.0137
FIRE: 42 06:55:04 -3617.244501* 0.0127
FIRE: 43 06:55:04 -3617.245454* 0.0120
FIRE: 44 06:55:04 -3617.246485* 0.0107
FIRE: 45 06:55:05 -3617.247410* 0.0099
FIRE: 46 06:55:05 -3617.248225* 0.0098
FIRE: 47 06:55:05 -3617.249551* 0.0087
FIRE: 48 06:55:05 -3617.250300* 0.0089
FIRE: 49 06:55:06 -3617.251227* 0.0085
FIRE: 50 06:55:06 -3617.252279* 0.0077
FIRE: 51 06:55:06 -3617.253040* 0.0069
FIRE: 52 06:55:06 -3617.254019* 0.0076
FIRE: 53 06:55:07 -3617.254870* 0.0066
FIRE: 54 06:55:07 -3617.256088* 0.0067
FIRE: 55 06:55:07 -3617.257146* 0.0056
FIRE: 56 06:55:07 -3617.257436* 0.0047
FIRE: 57 06:55:08 -3617.257554* 0.0054
FIRE: 58 06:55:08 -3617.257386* 0.0047
FIRE: 59 06:55:08 -3617.257621* 0.0035
FIRE: 60 06:55:08 -3617.257506* 0.0019
FIRE: 61 06:55:09 -3617.257658* 0.0023
FIRE: 62 06:55:09 -3617.257822* 0.0022
FIRE: 63 06:55:09 -3617.257604* 0.0020
FIRE: 64 06:55:09 -3617.257618* 0.0014
FIRE: 65 06:55:09 -3617.257748* 0.0024
FIRE: 66 06:55:10 -3617.257801* 0.0023
FIRE: 67 06:55:10 -3617.257863* 0.0020
FIRE: 68 06:55:10 -3617.257761* 0.0017
FIRE: 69 06:55:10 -3617.257774* 0.0013
FIRE: 70 06:55:11 -3617.257747* 0.0012
FIRE: 71 06:55:11 -3617.257610* 0.0012
FIRE: 72 06:55:11 -3617.257715* 0.0012
FIRE: 73 06:55:11 -3617.257872* 0.0011
FIRE: 74 06:55:12 -3617.257762* 0.0008
Optimizing Pd306Pt405
Step Time Energy fmax
*Force-consistent energies used in optimization.
FIRE: 0 06:55:12 -3128.362078* 0.5548
FIRE: 1 06:55:12 -3128.717762* 0.5195
FIRE: 2 06:55:12 -3129.326822* 0.4481
FIRE: 3 06:55:13 -3130.024355* 0.3421
FIRE: 4 06:55:13 -3130.656050* 0.2132
FIRE: 5 06:55:13 -3131.124641* 0.2397
FIRE: 6 06:55:13 -3131.515908* 0.3003
FIRE: 7 06:55:14 -3131.876732* 0.2811
FIRE: 8 06:55:14 -3132.204783* 0.1908
FIRE: 9 06:55:14 -3132.466579* 0.1373
FIRE: 10 06:55:14 -3132.646607* 0.1605
FIRE: 11 06:55:14 -3132.767194* 0.1392
FIRE: 12 06:55:15 -3132.856234* 0.1389
FIRE: 13 06:55:15 -3132.914484* 0.1162
FIRE: 14 06:55:15 -3132.932024* 0.1077
FIRE: 15 06:55:15 -3132.952750* 0.0965
FIRE: 16 06:55:16 -3132.987167* 0.0810
FIRE: 17 06:55:16 -3133.024548* 0.0684
FIRE: 18 06:55:16 -3133.056768* 0.0562
FIRE: 19 06:55:16 -3133.082869* 0.0605
FIRE: 20 06:55:17 -3133.105048* 0.0639
FIRE: 21 06:55:17 -3133.123677* 0.0667
FIRE: 22 06:55:17 -3133.140000* 0.0676
FIRE: 23 06:55:17 -3133.149982* 0.0533
FIRE: 24 06:55:18 -3133.153655* 0.0348
FIRE: 25 06:55:18 -3133.154709* 0.0330
FIRE: 26 06:55:18 -3133.157169* 0.0296
FIRE: 27 06:55:18 -3133.159644* 0.0249
FIRE: 28 06:55:19 -3133.162778* 0.0235
FIRE: 29 06:55:19 -3133.165806* 0.0222
FIRE: 30 06:55:19 -3133.168270* 0.0207
FIRE: 31 06:55:19 -3133.170877* 0.0216
FIRE: 32 06:55:19 -3133.173332* 0.0226
FIRE: 33 06:55:20 -3133.176405* 0.0225
FIRE: 34 06:55:20 -3133.179414* 0.0210
FIRE: 35 06:55:20 -3133.182049* 0.0183
FIRE: 36 06:55:20 -3133.184061* 0.0148
FIRE: 37 06:55:21 -3133.186380* 0.0139
FIRE: 38 06:55:21 -3133.188631* 0.0144
FIRE: 39 06:55:21 -3133.191543* 0.0132
FIRE: 40 06:55:21 -3133.194218* 0.0137
FIRE: 41 06:55:22 -3133.197142* 0.0146
FIRE: 42 06:55:22 -3133.199853* 0.0169
FIRE: 43 06:55:22 -3133.200693* 0.0123
FIRE: 44 06:55:22 -3133.200954* 0.0100
FIRE: 45 06:55:23 -3133.201204* 0.0091
FIRE: 46 06:55:23 -3133.201377* 0.0077
FIRE: 47 06:55:23 -3133.201237* 0.0061
FIRE: 48 06:55:23 -3133.201438* 0.0060
FIRE: 49 06:55:23 -3133.201492* 0.0059
FIRE: 50 06:55:24 -3133.201275* 0.0058
FIRE: 51 06:55:24 -3133.201387* 0.0056
FIRE: 52 06:55:24 -3133.201623* 0.0053
FIRE: 53 06:55:24 -3133.201515* 0.0049
FIRE: 54 06:55:25 -3133.201358* 0.0045
FIRE: 55 06:55:25 -3133.201637* 0.0039
FIRE: 56 06:55:25 -3133.201615* 0.0032
FIRE: 57 06:55:25 -3133.201658* 0.0026
FIRE: 58 06:55:26 -3133.201508* 0.0021
FIRE: 59 06:55:26 -3133.201398* 0.0012
FIRE: 60 06:55:26 -3133.201442* 0.0007
Optimizing Pd405Pt306
Step Time Energy fmax
*Force-consistent energies used in optimization.
FIRE: 0 06:55:26 -2921.182334* 0.8084
FIRE: 1 06:55:27 -2922.173634* 0.7782
FIRE: 2 06:55:27 -2923.798336* 0.7174
FIRE: 3 06:55:27 -2925.164742* 0.6494
FIRE: 4 06:55:27 -2926.294749* 0.5747
FIRE: 5 06:55:28 -2927.257778* 0.4948
FIRE: 6 06:55:28 -2928.103283* 0.4127
FIRE: 7 06:55:28 -2928.859668* 0.3310
FIRE: 8 06:55:28 -2929.541302* 0.2730
FIRE: 9 06:55:29 -2930.148359* 0.2152
FIRE: 10 06:55:29 -2930.679060* 0.1948
FIRE: 11 06:55:29 -2931.134719* 0.1854
FIRE: 12 06:55:29 -2931.522542* 0.1735
FIRE: 13 06:55:29 -2931.850052* 0.1563
FIRE: 14 06:55:30 -2932.122565* 0.1384
FIRE: 15 06:55:30 -2932.342232* 0.1254
FIRE: 16 06:55:30 -2932.512740* 0.1193
FIRE: 17 06:55:30 -2932.643065* 0.1234
FIRE: 18 06:55:31 -2932.741324* 0.1099
FIRE: 19 06:55:31 -2932.811902* 0.1033
FIRE: 20 06:55:31 -2932.859388* 0.1174
FIRE: 21 06:55:31 -2932.887646* 0.1096
FIRE: 22 06:55:32 -2932.943773* 0.0836
FIRE: 23 06:55:32 -2933.016130* 0.0667
FIRE: 24 06:55:32 -2933.083493* 0.0619
FIRE: 25 06:55:32 -2933.140449* 0.0486
FIRE: 26 06:55:33 -2933.176317* 0.0427
FIRE: 27 06:55:33 -2933.193285* 0.0424
FIRE: 28 06:55:33 -2933.196087* 0.0381
FIRE: 29 06:55:33 -2933.201024* 0.0305
FIRE: 30 06:55:34 -2933.206477* 0.0299
FIRE: 31 06:55:34 -2933.212568* 0.0299
FIRE: 32 06:55:34 -2933.218423* 0.0293
FIRE: 33 06:55:34 -2933.223804* 0.0279
FIRE: 34 06:55:34 -2933.228556* 0.0256
FIRE: 35 06:55:35 -2933.233788* 0.0222
FIRE: 36 06:55:35 -2933.238048* 0.0179
FIRE: 37 06:55:35 -2933.242471* 0.0179
FIRE: 38 06:55:35 -2933.246656* 0.0223
FIRE: 39 06:55:36 -2933.251570* 0.0203
FIRE: 40 06:55:36 -2933.257329* 0.0153
FIRE: 41 06:55:36 -2933.262312* 0.0190
FIRE: 42 06:55:36 -2933.265847* 0.0172
FIRE: 43 06:55:37 -2933.267247* 0.0097
FIRE: 44 06:55:37 -2933.267624* 0.0084
FIRE: 45 06:55:37 -2933.267822* 0.0065
FIRE: 46 06:55:37 -2933.268071* 0.0049
FIRE: 47 06:55:38 -2933.268362* 0.0047
FIRE: 48 06:55:38 -2933.268514* 0.0053
FIRE: 49 06:55:38 -2933.268724* 0.0051
FIRE: 50 06:55:38 -2933.268781* 0.0032
FIRE: 51 06:55:39 -2933.268824* 0.0026
FIRE: 52 06:55:39 -2933.268775* 0.0025
FIRE: 53 06:55:39 -2933.268761* 0.0024
FIRE: 54 06:55:39 -2933.268763* 0.0022
FIRE: 55 06:55:40 -2933.268797* 0.0020
FIRE: 56 06:55:40 -2933.268858* 0.0017
FIRE: 57 06:55:40 -2933.269053* 0.0016
FIRE: 58 06:55:40 -2933.268941* 0.0015
FIRE: 59 06:55:41 -2933.268795* 0.0014
FIRE: 60 06:55:41 -2933.269019* 0.0012
FIRE: 61 06:55:41 -2933.268959* 0.0009
Optimizing Pd711
Step Time Energy fmax
*Force-consistent energies used in optimization.
FIRE: 0 06:55:41 -2415.404839* 0.3443
FIRE: 1 06:55:42 -2415.612567* 0.3219
FIRE: 2 06:55:42 -2415.978111* 0.2807
FIRE: 3 06:55:42 -2416.425075* 0.2268
FIRE: 4 06:55:43 -2416.882951* 0.1757
FIRE: 5 06:55:43 -2417.313176* 0.1856
FIRE: 6 06:55:43 -2417.704316* 0.1983
FIRE: 7 06:55:43 -2418.042082* 0.1825
FIRE: 8 06:55:44 -2418.336027* 0.1449
FIRE: 9 06:55:44 -2418.583665* 0.1194
FIRE: 10 06:55:44 -2418.783262* 0.1272
FIRE: 11 06:55:44 -2418.940327* 0.1277
FIRE: 12 06:55:45 -2419.064507* 0.1063
FIRE: 13 06:55:45 -2419.160729* 0.0951
FIRE: 14 06:55:45 -2419.227246* 0.0895
FIRE: 15 06:55:45 -2419.261509* 0.0613
FIRE: 16 06:55:46 -2419.268033* 0.0809
FIRE: 17 06:55:46 -2419.278819* 0.0741
FIRE: 18 06:55:46 -2419.296931* 0.0616
FIRE: 19 06:55:46 -2419.317336* 0.0530
FIRE: 20 06:55:47 -2419.336185* 0.0464
FIRE: 21 06:55:47 -2419.352537* 0.0396
FIRE: 22 06:55:47 -2419.367761* 0.0400
FIRE: 23 06:55:47 -2419.381849* 0.0326
FIRE: 24 06:55:48 -2419.394014* 0.0228
FIRE: 25 06:55:48 -2419.401561* 0.0276
FIRE: 26 06:55:48 -2419.405173* 0.0324
FIRE: 27 06:55:48 -2419.405838* 0.0308
FIRE: 28 06:55:49 -2419.406837* 0.0277
FIRE: 29 06:55:49 -2419.408552* 0.0233
FIRE: 30 06:55:49 -2419.410071* 0.0179
FIRE: 31 06:55:49 -2419.411548* 0.0118
FIRE: 32 06:55:50 -2419.412595* 0.0128
FIRE: 33 06:55:50 -2419.413697* 0.0138
FIRE: 34 06:55:50 -2419.414823* 0.0132
FIRE: 35 06:55:50 -2419.416163* 0.0107
FIRE: 36 06:55:51 -2419.417414* 0.0096
FIRE: 37 06:55:51 -2419.418938* 0.0088
FIRE: 38 06:55:51 -2419.419777* 0.0118
FIRE: 39 06:55:51 -2419.420586* 0.0149
FIRE: 40 06:55:52 -2419.421830* 0.0146
FIRE: 41 06:55:52 -2419.423231* 0.0102
FIRE: 42 06:55:52 -2419.424453* 0.0101
FIRE: 43 06:55:52 -2419.425412* 0.0134
FIRE: 44 06:55:53 -2419.426300* 0.0084
FIRE: 45 06:55:53 -2419.426488* 0.0067
FIRE: 46 06:55:53 -2419.426516* 0.0058
FIRE: 47 06:55:53 -2419.426643* 0.0042
FIRE: 48 06:55:54 -2419.426744* 0.0028
FIRE: 49 06:55:54 -2419.426760* 0.0038
FIRE: 50 06:55:54 -2419.426823* 0.0041
FIRE: 51 06:55:54 -2419.426850* 0.0032
FIRE: 52 06:55:55 -2419.426919* 0.0028
FIRE: 53 06:55:55 -2419.426806* 0.0020
FIRE: 54 06:55:55 -2419.426866* 0.0020
FIRE: 55 06:55:55 -2419.426900* 0.0018
FIRE: 56 06:55:56 -2419.426932* 0.0016
FIRE: 57 06:55:56 -2419.426878* 0.0014
FIRE: 58 06:55:56 -2419.426941* 0.0013
FIRE: 59 06:55:56 -2419.426897* 0.0011
FIRE: 60 06:55:57 -2419.426934* 0.0010
それぞれのエネルギーが得られたので、ここからexcess energyを計算することができます。
[10]:
E_exess_pd306pt405 = (E_pd306pt405 - 306 / 711 * E_pd711 - 405 / 711 * E_pt711) / 711
E_exess_pd405pt306 = (E_pd405pt306 - 405 / 711 * E_pd711 - 306 / 711 * E_pt711) / 711
print(f"Excess energy of Pd306Pt405 = {E_exess_pd306pt405 * 1000:.2f} meV")
print(f"Excess energy of Pd405Pt306 = {E_exess_pd405pt306 * 1000:.2f} meV")
Excess energy of Pd306Pt405 = -44.26 meV
Excess energy of Pd405Pt306 = 2.36 meV
Excess energyが負となっているPd306Pt405は単独でPd, Pt nanoparticleが存在するよりも混合したほうが安定であるということを示唆しています。 一方で正となっているPd405Pt306の構造はPd306Pt405と比べると不安定であることになります。
この結果から、PdとPtの合金微粒子では、Pdが外殻に来るような構造が自然界では安定して存在しそうだという考察ができます。
最後に、Pt306個、Pd405個がランダムに配置されたような構造のexcess energyを求めてみましょう。
[11]:
Pd405Pt306_random = Pt711.copy()
# randomly choose 405 atoms to be replaced to Pd
pd_indices = np.random.choice(np.arange(711), 405, replace=False)
Pd405Pt306_random.numbers[pd_indices] = atomic_numbers["Pd"]
print(f"Replaced to Pd with indices {pd_indices}")
view_ngl(Pd405Pt306_random)
Replaced to Pd with indices [196 552 99 568 368 382 471 105 599 212 637 142 432 304 663 49 680 302
493 104 232 102 487 433 273 420 314 185 61 435 132 576 561 374 350 85
581 240 13 699 666 359 616 571 600 110 327 201 8 347 146 55 593 351
391 157 658 244 463 236 288 691 166 90 118 528 72 686 562 591 437 135
690 4 702 225 137 223 404 138 98 145 623 676 525 621 64 466 328 221
330 626 281 529 208 269 548 647 150 527 377 313 672 206 507 5 203 256
584 375 317 614 100 602 510 217 394 315 649 414 312 661 27 467 673 540
704 425 358 551 239 385 250 28 205 122 373 264 413 565 267 286 343 456
601 230 386 532 307 153 556 679 172 91 655 569 202 268 181 95 484 173
707 19 514 509 277 537 638 11 311 390 700 33 458 405 555 29 511 168
684 363 428 590 444 371 303 65 594 366 361 450 566 657 520 550 338 154
246 18 334 464 336 275 20 633 176 160 620 697 558 80 83 195 335 325
305 0 278 117 597 615 131 671 322 674 128 438 596 133 254 197 439 47
23 140 191 296 403 73 82 107 66 37 474 7 226 6 360 187 651 234
344 418 3 249 213 96 227 557 39 31 628 417 136 346 475 42 534 504
441 364 52 245 2 50 46 426 209 498 688 480 40 43 632 272 258 93
397 194 606 144 34 560 353 559 126 253 283 642 321 276 291 67 648 580
627 329 694 58 1 170 478 207 705 88 370 395 549 573 592 396 139 629
675 610 481 123 618 219 411 120 667 224 310 400 423 640 103 526 654 348
308 409 407 119 81 54 365 469 656 84 659 644 677 536 164 452 78 612
115 200 639 546 297 214 515 635 326 76 379 290 483 678 564 554 553 339
499 51 369 429 220 392 681 162 151 174 218 443 542 210 270 698 177 419
399 624 708 582 706 355 563 545 257]
[12]:
print("Optimizing Pd405Pt306_random")
Pd405Pt306_random.calc = calculator
E_pd405pt306_random = get_opt_energy(Pd405Pt306_random)
Optimizing Pd405Pt306_random
Step Time Energy fmax
*Force-consistent energies used in optimization.
FIRE: 0 06:55:57 -2951.634114* 0.7943
FIRE: 1 06:55:58 -2952.049965* 0.7585
FIRE: 2 06:55:58 -2952.770701* 0.6876
FIRE: 3 06:55:58 -2953.619475* 0.5777
FIRE: 4 06:55:58 -2954.359894* 0.4618
FIRE: 5 06:55:58 -2954.930649* 0.3488
FIRE: 6 06:55:59 -2955.380034* 0.3323
FIRE: 7 06:55:59 -2955.741782* 0.2891
FIRE: 8 06:55:59 -2956.033248* 0.2633
FIRE: 9 06:55:59 -2956.257166* 0.2117
FIRE: 10 06:56:00 -2956.416871* 0.2094
FIRE: 11 06:56:00 -2956.526379* 0.1835
FIRE: 12 06:56:00 -2956.604745* 0.1840
FIRE: 13 06:56:00 -2956.665961* 0.1816
FIRE: 14 06:56:01 -2956.716348* 0.1827
FIRE: 15 06:56:01 -2956.747297* 0.1770
FIRE: 16 06:56:01 -2956.800838* 0.1661
FIRE: 17 06:56:01 -2956.863802* 0.1508
FIRE: 18 06:56:02 -2956.923657* 0.1316
FIRE: 19 06:56:02 -2956.973257* 0.1091
FIRE: 20 06:56:02 -2957.010412* 0.0848
FIRE: 21 06:56:02 -2957.036208* 0.0725
FIRE: 22 06:56:03 -2957.052796* 0.0641
FIRE: 23 06:56:03 -2957.059193* 0.0881
FIRE: 24 06:56:03 -2957.060665* 0.0824
FIRE: 25 06:56:03 -2957.063410* 0.0714
FIRE: 26 06:56:04 -2957.067207* 0.0563
FIRE: 27 06:56:04 -2957.071634* 0.0525
FIRE: 28 06:56:04 -2957.076364* 0.0490
FIRE: 29 06:56:05 -2957.081169* 0.0447
FIRE: 30 06:56:05 -2957.085771* 0.0398
FIRE: 31 06:56:05 -2957.090457* 0.0345
FIRE: 32 06:56:05 -2957.095123* 0.0304
FIRE: 33 06:56:06 -2957.099647* 0.0258
FIRE: 34 06:56:06 -2957.103869* 0.0232
FIRE: 35 06:56:06 -2957.107772* 0.0231
FIRE: 36 06:56:06 -2957.111816* 0.0323
FIRE: 37 06:56:07 -2957.116451* 0.0284
FIRE: 38 06:56:07 -2957.121823* 0.0296
FIRE: 39 06:56:07 -2957.127640* 0.0272
FIRE: 40 06:56:07 -2957.133752* 0.0266
FIRE: 41 06:56:08 -2957.139396* 0.0144
FIRE: 42 06:56:08 -2957.142666* 0.0255
FIRE: 43 06:56:08 -2957.143234* 0.0215
FIRE: 44 06:56:08 -2957.143503* 0.0199
FIRE: 45 06:56:09 -2957.144038* 0.0169
FIRE: 46 06:56:09 -2957.144598* 0.0126
FIRE: 47 06:56:09 -2957.145193* 0.0086
FIRE: 48 06:56:09 -2957.145683* 0.0064
FIRE: 49 06:56:10 -2957.146011* 0.0062
FIRE: 50 06:56:10 -2957.146141* 0.0072
FIRE: 51 06:56:10 -2957.146298* 0.0100
FIRE: 52 06:56:10 -2957.146495* 0.0109
FIRE: 53 06:56:11 -2957.146689* 0.0105
FIRE: 54 06:56:11 -2957.147045* 0.0092
FIRE: 55 06:56:11 -2957.147453* 0.0061
FIRE: 56 06:56:11 -2957.147860* 0.0046
FIRE: 57 06:56:12 -2957.148160* 0.0034
FIRE: 58 06:56:12 -2957.148237* 0.0061
FIRE: 59 06:56:12 -2957.148304* 0.0058
FIRE: 60 06:56:12 -2957.148361* 0.0053
FIRE: 61 06:56:13 -2957.148444* 0.0045
FIRE: 62 06:56:13 -2957.148528* 0.0035
FIRE: 63 06:56:13 -2957.148574* 0.0030
FIRE: 64 06:56:13 -2957.148677* 0.0025
FIRE: 65 06:56:14 -2957.148703* 0.0025
FIRE: 66 06:56:14 -2957.148775* 0.0028
FIRE: 67 06:56:14 -2957.148754* 0.0034
FIRE: 68 06:56:14 -2957.148923* 0.0032
FIRE: 69 06:56:15 -2957.149008* 0.0028
FIRE: 70 06:56:15 -2957.149121* 0.0022
FIRE: 71 06:56:15 -2957.149235* 0.0016
FIRE: 72 06:56:15 -2957.149309* 0.0021
FIRE: 73 06:56:16 -2957.149395* 0.0027
FIRE: 74 06:56:16 -2957.149500* 0.0020
FIRE: 75 06:56:16 -2957.149619* 0.0016
FIRE: 76 06:56:16 -2957.149768* 0.0020
FIRE: 77 06:56:17 -2957.149799* 0.0027
FIRE: 78 06:56:17 -2957.149842* 0.0049
FIRE: 79 06:56:17 -2957.149897* 0.0014
FIRE: 80 06:56:17 -2957.149829* 0.0028
FIRE: 81 06:56:18 -2957.149892* 0.0023
FIRE: 82 06:56:18 -2957.149865* 0.0013
FIRE: 83 06:56:18 -2957.149865* 0.0005
[13]:
view_ngl(Pd405Pt306_random)
[14]:
E_exess_pd405pt306_random = (E_pd405pt306_random - 405 / 711 * E_pd711 - 306 / 711 * E_pt711) / 711
print(f"Excess energy of Pd306Pt405 random = {E_exess_pd405pt306_random * 1000:.2f} meV")
Excess energy of Pd306Pt405 random = -31.22 meV
この場合も負のexcess energyが得られ、この構造が安定になりうるという結果が得られました。
今回は完全にランダムな配置を行って構造を作成しましたが、実際は物質が混ざる場合には局所的にパターンを取ることでより安定な構造となる可能性もあります。 こういった分析を進める場合はモンテカルロ法を用いて配置パターンを最適化するということがよく行われますがここでは省略します。 (モンテカルロ法の説明及びその実例については将来後述されるかもしれません。)
このように、様々な構造を作成し、そのexcess energyを計算することで合金の安定構造がどのようになるかを解析する事ができます。
担体上への微粒子吸着構造作成¶
本チュートリアルでは、担体上に微粒子をおいたモデリングの簡単な計算事例を紹介するにとどめ、この構造の現実での妥当性検証までは行いません。
ここでは、担持貴金属担体としてSnO2を、Nano particleとしてはPt を用いて、担体上へPt Nano particleを乗せた構造を作成してみます。
[15]:
# bulk, support material
from ase.io import read
SnO2 = read("../input/SnO2_mp-856_conventional_standard.cif")
view_ngl(SnO2, representations=["ball+stick"])
ここではSlab構造の作成(Bulkからの特定ミラー面の切り出し)にpymatgenの SlabGenerator
を用いています。 これはSlabGenerator
のinstance化をする際の初期化パラメータとして作りたいSlab構造のパラメータを指定し、 get_slabs
関数を呼ぶことで指定された初期化パラメータにマッチするSlab構造が列挙されて得られます。
詳しくは、以下のMaterials Project Workshopでも紹介されています。
[16]:
# Generate slab
from ase.build import make_supercell
import numpy as np
from pymatgen.core.surface import SlabGenerator
from pymatgen.io.ase import AseAtomsAdaptor
slab_gen = SlabGenerator(
initial_structure=AseAtomsAdaptor.get_structure(SnO2),
miller_index=[1,1,0],
min_slab_size=5.0, # ここで層の出方が変わる
min_vacuum_size=15.0, # nanoparticleを載せるので大きめに
lll_reduce=False,
center_slab=True,
primitive=True,
max_normal_search=1,
)
slabs = slab_gen.get_slabs(tol=0.3, bonds=None, max_broken_bonds=0, symmetrize=False)
得られた slabs
はpymatgenのinstanceです。これは、AseAtomsAdaptor
を用いてASEのAtoms
instanceに変換することができます。
得られた構造をASE Atoms
に変換して、可視化してみます。
[17]:
slab_atoms_list = [AseAtomsAdaptor.get_atoms(slab) for slab in slabs]
view_ngl(slab_atoms_list, representations=["ball+stick"])
2つの構造が得られました。
以降では2つ目の構造を使用して、Slabを作成していきます。
ASEでsupercellを作成した後、z軸方向に平行移動して一番下にある原子(Layer)の高さが0になるよう設定しています。
[18]:
slab = slab_atoms_list[1].copy()
# make supercell: expand to xy-plane
#slab = make_supercell(slab, [[4, 0, 0], [0, 2, 0], [0, 0, 1]]) # this is same with below.
slab = slab * (4, 2, 1)
# shift `slab` to bottom of cell
min_pos_z = np.min(slab.positions, axis=0)[2]
slab.set_positions(slab.positions - [0, 0, min_pos_z])
[19]:
view_ngl(slab, representations=["ball+stick"], replace_structure=True)
担体のSlab構造を作成することができました。
次にこの担体上に乗せるNano particle clusterを作成します。
[20]:
Pt55 = Octahedron("Pt", 5, cutoff=2)
# cut cluster to make half-sphere
cluster = Pt55.copy()
# Rotate cluster to make triangle surface comes to top.
cluster.rotate([0, 0, 1], [1, 1, 1], center=cluster.get_center_of_mass())
# Cut bottom 2 layers
for _ in range(2):
target = np.round(cluster.positions, decimals=0)
del cluster[np.where(target[:,2]==np.min(target[:,2]))[0]]
[21]:
view_ngl(cluster, representations=["ball+stick"])
Nano particle clusterを担体の上に乗せましょう。
ここでは、プログラムを書いて担体真ん中の上にNano particleを乗せていますが、 5章で紹介するSurfaceEditor
を用いると、InteractiveにNano particleを移動させて初期構造を作成することも可能です。
[22]:
from ase.data import atomic_numbers, chemical_symbols, covalent_radii
# Put Pt37 on top of SnO2. Both perpendincular lines goes z-axis.
slab_xy_size = np.min(slab.cell.cellpar()[0:2])
cluster_xy_size = np.max(
(np.max(cluster.positions, axis=0) - np.min(cluster.positions, axis=0))[0:2]
)
# Vacuum size
min_slab_xy_size = cluster_xy_size + 15
for i in range(1, 5):
print(f"i={i}")
if slab_xy_size * i < min_slab_xy_size:
pass
else:
slab_sc = make_supercell(slab, [[i, 0, 0], [0, i, 0], [0, 0, 1]])
break
slab_surface_xy_center = np.append(
slab_sc.cell.cellpar()[0:2] / 2, np.max(slab_sc.positions, axis=0)[2]
)
cluster_surface_xy_center = np.append(
np.mean(cluster.positions, axis=0)[0:2], np.min(cluster.positions, axis=0)[2]
)
cluster = Atoms(cluster.get_chemical_symbols(), cluster.positions - cluster_surface_xy_center)
slab_surface_covalent_radii = covalent_radii[
slab_sc.get_atomic_numbers()[np.argmax(slab_sc.positions, axis=0)[2]]
]
cluster_surface_covalent_radii = covalent_radii[
cluster.get_atomic_numbers()[np.argmin(cluster.positions, axis=0)[2]]
]
cluster.translate(
slab_surface_xy_center + [0, 0, slab_surface_covalent_radii + cluster_surface_covalent_radii]
)
supported = slab_sc.copy()
supported += cluster
i=1
i=2
[23]:
view_ngl(supported, representations=["ball+stick"])
[24]:
import pfp_api_client
from pfp_api_client.pfp.calculators.ase_calculator import ASECalculator
from pfp_api_client.pfp.estimator import Estimator, EstimatorCalcMode
from ase.optimize import BFGS, LBFGS, FIRE
from ase.io import Trajectory
print(f"pfp_api_client: {pfp_api_client.__version__}")
estimator = Estimator(calc_mode=EstimatorCalcMode.CRYSTAL, model_version="v3.0.0")
calculator = ASECalculator(estimator)
supported.calc = calculator
traj = Trajectory("./SnO2_Pt119.traj", "w", supported)
opt = FIRE(supported)
opt.attach(traj.write, interval=1)
opt.run(fmax=0.005)
traj.close()
pfp_api_client: 1.5.0
Step Time Energy fmax
*Force-consistent energies used in optimization.
FIRE: 0 06:58:31 -1860.090772* 2.7723
FIRE: 1 06:58:31 -1866.458047* 2.3451
FIRE: 2 06:58:31 -1871.904323* 2.0879
FIRE: 3 06:58:31 -1876.434307* 2.0256
FIRE: 4 06:58:32 -1880.091439* 1.9501
FIRE: 5 06:58:32 -1882.952912* 1.8591
FIRE: 6 06:58:32 -1885.147381* 1.7505
FIRE: 7 06:58:32 -1886.867019* 1.6223
FIRE: 8 06:58:32 -1888.358989* 1.4732
FIRE: 9 06:58:33 -1889.852164* 1.4049
FIRE: 10 06:58:33 -1891.473457* 1.2978
FIRE: 11 06:58:33 -1893.201623* 1.0758
FIRE: 12 06:58:33 -1894.904770* 0.9423
FIRE: 13 06:58:33 -1896.433910* 0.9369
FIRE: 14 06:58:33 -1897.707551* 0.9101
FIRE: 15 06:58:34 -1898.742282* 0.8622
FIRE: 16 06:58:34 -1899.634513* 0.8619
FIRE: 17 06:58:34 -1900.494577* 0.9636
FIRE: 18 06:58:34 -1901.380985* 1.0611
FIRE: 19 06:58:34 -1902.273167* 1.1440
FIRE: 20 06:58:35 -1903.098770* 1.2041
FIRE: 21 06:58:35 -1903.779610* 1.2391
FIRE: 22 06:58:35 -1904.287751* 1.2520
FIRE: 23 06:58:35 -1904.671516* 1.1932
FIRE: 24 06:58:35 -1905.006171* 0.9333
FIRE: 25 06:58:35 -1905.331511* 0.7080
FIRE: 26 06:58:36 -1905.631789* 0.3967
FIRE: 27 06:58:36 -1905.853587* 0.3487
FIRE: 28 06:58:36 -1905.981356* 0.5745
FIRE: 29 06:58:36 -1906.069182* 0.9726
FIRE: 30 06:58:36 -1906.184962* 1.1589
FIRE: 31 06:58:37 -1906.327430* 1.0321
FIRE: 32 06:58:37 -1906.441560* 0.5956
FIRE: 33 06:58:37 -1906.530019* 0.5836
FIRE: 34 06:58:37 -1906.645967* 0.6519
FIRE: 35 06:58:37 -1906.778954* 0.5218
FIRE: 36 06:58:38 -1906.857004* 0.5165
FIRE: 37 06:58:38 -1906.938558* 0.6041
FIRE: 38 06:58:38 -1906.935862* 0.4992
FIRE: 39 06:58:38 -1907.073519* 0.2194
FIRE: 40 06:58:38 -1907.089033* 0.2654
FIRE: 41 06:58:38 -1907.099305* 0.2227
FIRE: 42 06:58:39 -1907.114434* 0.1484
FIRE: 43 06:58:39 -1907.127182* 0.0941
FIRE: 44 06:58:39 -1907.133570* 0.1261
FIRE: 45 06:58:39 -1907.136339* 0.1818
FIRE: 46 06:58:39 -1907.141304* 0.1904
FIRE: 47 06:58:40 -1907.151191* 0.1533
FIRE: 48 06:58:40 -1907.166380* 0.0895
FIRE: 49 06:58:40 -1907.182247* 0.0821
FIRE: 50 06:58:40 -1907.193445* 0.1250
FIRE: 51 06:58:40 -1907.202915* 0.1232
FIRE: 52 06:58:41 -1907.216335* 0.0986
FIRE: 53 06:58:41 -1907.231155* 0.1026
FIRE: 54 06:58:41 -1907.241449* 0.0983
FIRE: 55 06:58:41 -1907.250398* 0.0815
FIRE: 56 06:58:41 -1907.262611* 0.1171
FIRE: 57 06:58:41 -1907.273228* 0.0856
FIRE: 58 06:58:42 -1907.286393* 0.1087
FIRE: 59 06:58:42 -1907.303588* 0.0944
FIRE: 60 06:58:42 -1907.324283* 0.0848
FIRE: 61 06:58:42 -1907.341892* 0.1294
FIRE: 62 06:58:42 -1907.366470* 0.2103
FIRE: 63 06:58:43 -1907.376558* 0.0905
FIRE: 64 06:58:43 -1907.376744* 0.1445
FIRE: 65 06:58:43 -1907.378749* 0.1131
FIRE: 66 06:58:43 -1907.381442* 0.0907
FIRE: 67 06:58:43 -1907.383602* 0.0909
FIRE: 68 06:58:43 -1907.384749* 0.0914
FIRE: 69 06:58:44 -1907.385938* 0.1034
FIRE: 70 06:58:44 -1907.388170* 0.1048
FIRE: 71 06:58:44 -1907.391782* 0.0969
FIRE: 72 06:58:44 -1907.396161* 0.0992
FIRE: 73 06:58:44 -1907.400149* 0.1017
FIRE: 74 06:58:45 -1907.404630* 0.1045
FIRE: 75 06:58:45 -1907.411236* 0.1076
FIRE: 76 06:58:45 -1907.419713* 0.1128
FIRE: 77 06:58:45 -1907.429156* 0.1202
FIRE: 78 06:58:45 -1907.442226* 0.1303
FIRE: 79 06:58:45 -1907.459426* 0.1469
FIRE: 80 06:58:46 -1907.482334* 0.1695
FIRE: 81 06:58:46 -1907.513214* 0.1997
FIRE: 82 06:58:46 -1907.553925* 0.2049
FIRE: 83 06:58:46 -1907.606483* 0.2176
FIRE: 84 06:58:46 -1907.672910* 0.2368
FIRE: 85 06:58:47 -1907.736053* 0.1768
FIRE: 86 06:58:47 -1907.758212* 0.3063
FIRE: 87 06:58:47 -1907.774582* 0.2071
FIRE: 88 06:58:47 -1907.775030* 0.2446
FIRE: 89 06:58:47 -1907.778554* 0.1891
FIRE: 90 06:58:48 -1907.783050* 0.1214
FIRE: 91 06:58:48 -1907.785487* 0.1070
FIRE: 92 06:58:48 -1907.785702* 0.1232
FIRE: 93 06:58:48 -1907.785959* 0.1161
FIRE: 94 06:58:48 -1907.786526* 0.1023
FIRE: 95 06:58:49 -1907.787278* 0.0949
FIRE: 96 06:58:49 -1907.788106* 0.0931
FIRE: 97 06:58:49 -1907.788830* 0.0909
FIRE: 98 06:58:49 -1907.789506* 0.0884
FIRE: 99 06:58:49 -1907.790147* 0.0854
FIRE: 100 06:58:50 -1907.790779* 0.0819
FIRE: 101 06:58:50 -1907.791550* 0.0778
FIRE: 102 06:58:50 -1907.792600* 0.0732
FIRE: 103 06:58:50 -1907.794079* 0.0685
FIRE: 104 06:58:50 -1907.795912* 0.0695
FIRE: 105 06:58:51 -1907.797794* 0.0704
FIRE: 106 06:58:51 -1907.799814* 0.0711
FIRE: 107 06:58:51 -1907.802043* 0.0714
FIRE: 108 06:58:51 -1907.804774* 0.0714
FIRE: 109 06:58:51 -1907.808127* 0.0711
FIRE: 110 06:58:52 -1907.811485* 0.0726
FIRE: 111 06:58:52 -1907.815417* 0.0736
FIRE: 112 06:58:52 -1907.820169* 0.0734
FIRE: 113 06:58:52 -1907.825160* 0.0712
FIRE: 114 06:58:52 -1907.831222* 0.0711
FIRE: 115 06:58:53 -1907.837461* 0.0696
FIRE: 116 06:58:53 -1907.844796* 0.0708
FIRE: 117 06:58:53 -1907.852221* 0.0708
FIRE: 118 06:58:53 -1907.859615* 0.0690
FIRE: 119 06:58:53 -1907.867319* 0.0682
FIRE: 120 06:58:54 -1907.875094* 0.1026
FIRE: 121 06:58:54 -1907.875724* 0.2086
FIRE: 122 06:58:54 -1907.883200* 0.0815
FIRE: 123 06:58:54 -1907.879359* 0.1816
FIRE: 124 06:58:54 -1907.881774* 0.1385
FIRE: 125 06:58:55 -1907.884353* 0.0625
FIRE: 126 06:58:55 -1907.885107* 0.0441
FIRE: 127 06:58:55 -1907.885200* 0.0440
FIRE: 128 06:58:55 -1907.885220* 0.0437
FIRE: 129 06:58:55 -1907.885352* 0.0434
FIRE: 130 06:58:56 -1907.885446* 0.0429
FIRE: 131 06:58:56 -1907.885572* 0.0423
FIRE: 132 06:58:56 -1907.885701* 0.0415
FIRE: 133 06:58:56 -1907.885934* 0.0407
FIRE: 134 06:58:56 -1907.886069* 0.0397
FIRE: 135 06:58:57 -1907.886288* 0.0384
FIRE: 136 06:58:57 -1907.886604* 0.0370
FIRE: 137 06:58:57 -1907.886890* 0.0353
FIRE: 138 06:58:57 -1907.887318* 0.0334
FIRE: 139 06:58:57 -1907.887778* 0.0318
FIRE: 140 06:58:58 -1907.888362* 0.0313
FIRE: 141 06:58:58 -1907.888896* 0.0311
FIRE: 142 06:58:58 -1907.889654* 0.0314
FIRE: 143 06:58:58 -1907.890424* 0.0323
FIRE: 144 06:58:58 -1907.891411* 0.0338
FIRE: 145 06:58:58 -1907.892465* 0.0356
FIRE: 146 06:58:59 -1907.893631* 0.0377
FIRE: 147 06:58:59 -1907.895053* 0.0400
FIRE: 148 06:58:59 -1907.896611* 0.0425
FIRE: 149 06:58:59 -1907.898407* 0.0449
FIRE: 150 06:58:59 -1907.900509* 0.0465
FIRE: 151 06:59:00 -1907.903043* 0.0467
FIRE: 152 06:59:00 -1907.906133* 0.0456
FIRE: 153 06:59:00 -1907.910029* 0.0443
FIRE: 154 06:59:00 -1907.915187* 0.0430
FIRE: 155 06:59:00 -1907.919669* 0.1105
FIRE: 156 06:59:01 -1907.902606* 0.3494
FIRE: 157 06:59:01 -1907.927193* 0.0930
FIRE: 158 06:59:01 -1907.928588* 0.0628
FIRE: 159 06:59:01 -1907.929865* 0.0342
FIRE: 160 06:59:01 -1907.929690* 0.0394
FIRE: 161 06:59:02 -1907.929698* 0.0362
FIRE: 162 06:59:02 -1907.929856* 0.0349
FIRE: 163 06:59:02 -1907.930101* 0.0350
FIRE: 164 06:59:02 -1907.930245* 0.0351
FIRE: 165 06:59:02 -1907.930453* 0.0353
FIRE: 166 06:59:03 -1907.930523* 0.0354
FIRE: 167 06:59:03 -1907.930641* 0.0356
FIRE: 168 06:59:03 -1907.930769* 0.0359
FIRE: 169 06:59:03 -1907.930940* 0.0361
FIRE: 170 06:59:03 -1907.931249* 0.0364
FIRE: 171 06:59:04 -1907.931647* 0.0368
FIRE: 172 06:59:04 -1907.932036* 0.0371
FIRE: 173 06:59:04 -1907.932472* 0.0375
FIRE: 174 06:59:04 -1907.933051* 0.0380
FIRE: 175 06:59:04 -1907.933731* 0.0384
FIRE: 176 06:59:05 -1907.934556* 0.0387
FIRE: 177 06:59:05 -1907.935510* 0.0390
FIRE: 178 06:59:05 -1907.936705* 0.0390
FIRE: 179 06:59:05 -1907.938129* 0.0387
FIRE: 180 06:59:05 -1907.939722* 0.0377
FIRE: 181 06:59:06 -1907.941664* 0.0358
FIRE: 182 06:59:06 -1907.943839* 0.0325
FIRE: 183 06:59:06 -1907.946002* 0.0276
FIRE: 184 06:59:06 -1907.948200* 0.0302
FIRE: 185 06:59:06 -1907.950298* 0.0213
FIRE: 186 06:59:07 -1907.952116* 0.0324
FIRE: 187 06:59:07 -1907.952596* 0.0745
FIRE: 188 06:59:07 -1907.953985* 0.0210
FIRE: 189 06:59:07 -1907.953191* 0.0644
FIRE: 190 06:59:07 -1907.953664* 0.0497
FIRE: 191 06:59:08 -1907.954142* 0.0237
FIRE: 192 06:59:08 -1907.954278* 0.0194
FIRE: 193 06:59:08 -1907.954293* 0.0194
FIRE: 194 06:59:08 -1907.954308* 0.0194
FIRE: 195 06:59:08 -1907.954272* 0.0193
FIRE: 196 06:59:09 -1907.954307* 0.0193
FIRE: 197 06:59:09 -1907.954321* 0.0192
FIRE: 198 06:59:09 -1907.954366* 0.0191
FIRE: 199 06:59:09 -1907.954393* 0.0190
FIRE: 200 06:59:09 -1907.954364* 0.0188
FIRE: 201 06:59:09 -1907.954418* 0.0187
FIRE: 202 06:59:10 -1907.954468* 0.0185
FIRE: 203 06:59:10 -1907.954558* 0.0183
FIRE: 204 06:59:10 -1907.954625* 0.0181
FIRE: 205 06:59:10 -1907.954701* 0.0179
FIRE: 206 06:59:10 -1907.954761* 0.0176
FIRE: 207 06:59:11 -1907.954935* 0.0173
FIRE: 208 06:59:11 -1907.955016* 0.0169
FIRE: 209 06:59:11 -1907.955254* 0.0165
FIRE: 210 06:59:11 -1907.955423* 0.0161
FIRE: 211 06:59:11 -1907.955620* 0.0156
FIRE: 212 06:59:12 -1907.955905* 0.0151
FIRE: 213 06:59:12 -1907.956211* 0.0144
FIRE: 214 06:59:12 -1907.956588* 0.0135
FIRE: 215 06:59:12 -1907.957038* 0.0125
FIRE: 216 06:59:12 -1907.957498* 0.0113
FIRE: 217 06:59:13 -1907.958088* 0.0114
FIRE: 218 06:59:13 -1907.958731* 0.0115
FIRE: 219 06:59:13 -1907.959512* 0.0112
FIRE: 220 06:59:13 -1907.960439* 0.0131
FIRE: 221 06:59:13 -1907.961104* 0.0400
FIRE: 222 06:59:14 -1907.961498* 0.0094
FIRE: 223 06:59:14 -1907.961248* 0.0355
FIRE: 224 06:59:14 -1907.961406* 0.0271
FIRE: 225 06:59:14 -1907.961533* 0.0122
FIRE: 226 06:59:14 -1907.961617* 0.0092
FIRE: 227 06:59:15 -1907.961575* 0.0092
FIRE: 228 06:59:15 -1907.961602* 0.0092
FIRE: 229 06:59:15 -1907.961615* 0.0092
FIRE: 230 06:59:15 -1907.961614* 0.0092
FIRE: 231 06:59:15 -1907.961627* 0.0092
FIRE: 232 06:59:16 -1907.961632* 0.0092
FIRE: 233 06:59:16 -1907.961624* 0.0092
FIRE: 234 06:59:16 -1907.961615* 0.0092
FIRE: 235 06:59:16 -1907.961637* 0.0091
FIRE: 236 06:59:16 -1907.961676* 0.0091
FIRE: 237 06:59:17 -1907.961695* 0.0091
FIRE: 238 06:59:17 -1907.961745* 0.0090
FIRE: 239 06:59:17 -1907.961769* 0.0090
FIRE: 240 06:59:17 -1907.961824* 0.0089
FIRE: 241 06:59:17 -1907.961906* 0.0089
FIRE: 242 06:59:17 -1907.961952* 0.0089
FIRE: 243 06:59:18 -1907.962091* 0.0089
FIRE: 244 06:59:18 -1907.962236* 0.0090
FIRE: 245 06:59:18 -1907.962291* 0.0090
FIRE: 246 06:59:18 -1907.962446* 0.0092
FIRE: 247 06:59:18 -1907.962725* 0.0094
FIRE: 248 06:59:19 -1907.962914* 0.0096
FIRE: 249 06:59:19 -1907.963193* 0.0098
FIRE: 250 06:59:19 -1907.963590* 0.0101
FIRE: 251 06:59:19 -1907.963978* 0.0102
FIRE: 252 06:59:19 -1907.964542* 0.0104
FIRE: 253 06:59:20 -1907.965179* 0.0105
FIRE: 254 06:59:20 -1907.965969* 0.0106
FIRE: 255 06:59:20 -1907.966669* 0.0330
FIRE: 256 06:59:20 -1907.965642* 0.1110
FIRE: 257 06:59:20 -1907.967927* 0.0215
FIRE: 258 06:59:21 -1907.967954* 0.0149
FIRE: 259 06:59:21 -1907.967999* 0.0107
FIRE: 260 06:59:21 -1907.968027* 0.0106
FIRE: 261 06:59:21 -1907.968052* 0.0106
FIRE: 262 06:59:21 -1907.968065* 0.0106
FIRE: 263 06:59:22 -1907.968077* 0.0106
FIRE: 264 06:59:22 -1907.968051* 0.0106
FIRE: 265 06:59:22 -1907.968111* 0.0106
FIRE: 266 06:59:22 -1907.968095* 0.0106
FIRE: 267 06:59:22 -1907.968069* 0.0106
FIRE: 268 06:59:23 -1907.968098* 0.0106
FIRE: 269 06:59:23 -1907.968155* 0.0106
FIRE: 270 06:59:23 -1907.968182* 0.0106
FIRE: 271 06:59:23 -1907.968203* 0.0106
FIRE: 272 06:59:23 -1907.968227* 0.0106
FIRE: 273 06:59:24 -1907.968283* 0.0105
FIRE: 274 06:59:24 -1907.968365* 0.0105
FIRE: 275 06:59:24 -1907.968427* 0.0105
FIRE: 276 06:59:24 -1907.968511* 0.0105
FIRE: 277 06:59:24 -1907.968644* 0.0105
FIRE: 278 06:59:25 -1907.968764* 0.0104
FIRE: 279 06:59:25 -1907.968973* 0.0104
FIRE: 280 06:59:25 -1907.969206* 0.0104
FIRE: 281 06:59:25 -1907.969432* 0.0104
FIRE: 282 06:59:25 -1907.969785* 0.0105
FIRE: 283 06:59:25 -1907.970204* 0.0106
FIRE: 284 06:59:26 -1907.970685* 0.0108
FIRE: 285 06:59:26 -1907.971289* 0.0111
FIRE: 286 06:59:26 -1907.972003* 0.0115
FIRE: 287 06:59:26 -1907.973000* 0.0130
FIRE: 288 06:59:26 -1907.973910* 0.0475
FIRE: 289 06:59:27 -1907.972002* 0.1594
FIRE: 290 06:59:27 -1907.975402* 0.0381
FIRE: 291 06:59:27 -1907.975607* 0.0263
FIRE: 292 06:59:27 -1907.975737* 0.0135
FIRE: 293 06:59:27 -1907.975767* 0.0143
FIRE: 294 06:59:28 -1907.975726* 0.0135
FIRE: 295 06:59:28 -1907.975798* 0.0135
FIRE: 296 06:59:28 -1907.975806* 0.0135
FIRE: 297 06:59:28 -1907.975795* 0.0136
FIRE: 298 06:59:28 -1907.975784* 0.0136
FIRE: 299 06:59:29 -1907.975822* 0.0136
FIRE: 300 06:59:29 -1907.975879* 0.0136
FIRE: 301 06:59:29 -1907.975848* 0.0136
FIRE: 302 06:59:29 -1907.975882* 0.0137
FIRE: 303 06:59:29 -1907.975974* 0.0137
FIRE: 304 06:59:30 -1907.976017* 0.0137
FIRE: 305 06:59:30 -1907.976076* 0.0138
FIRE: 306 06:59:30 -1907.976195* 0.0139
FIRE: 307 06:59:30 -1907.976275* 0.0139
FIRE: 308 06:59:30 -1907.976436* 0.0140
FIRE: 309 06:59:31 -1907.976581* 0.0143
FIRE: 310 06:59:31 -1907.976755* 0.0146
FIRE: 311 06:59:31 -1907.977051* 0.0150
FIRE: 312 06:59:31 -1907.977317* 0.0155
FIRE: 313 06:59:31 -1907.977750* 0.0162
FIRE: 314 06:59:32 -1907.978206* 0.0171
FIRE: 315 06:59:32 -1907.978837* 0.0184
FIRE: 316 06:59:32 -1907.979640* 0.0200
FIRE: 317 06:59:32 -1907.980662* 0.0224
FIRE: 318 06:59:32 -1907.982025* 0.0258
FIRE: 319 06:59:33 -1907.983882* 0.0305
FIRE: 320 06:59:33 -1907.986502* 0.0377
FIRE: 321 06:59:33 -1907.989734* 0.0767
FIRE: 322 06:59:33 -1907.987458* 0.2741
FIRE: 323 06:59:33 -1907.995723* 0.0756
FIRE: 324 06:59:34 -1907.996264* 0.0569
FIRE: 325 06:59:34 -1907.996753* 0.0575
FIRE: 326 06:59:34 -1907.996845* 0.0583
FIRE: 327 06:59:34 -1907.996932* 0.0583
FIRE: 328 06:59:34 -1907.997024* 0.0584
FIRE: 329 06:59:35 -1907.997119* 0.0584
FIRE: 330 06:59:35 -1907.997247* 0.0585
FIRE: 331 06:59:35 -1907.997345* 0.0585
FIRE: 332 06:59:35 -1907.997442* 0.0587
FIRE: 333 06:59:35 -1907.997640* 0.0588
FIRE: 334 06:59:36 -1907.997793* 0.0590
FIRE: 335 06:59:36 -1907.998039* 0.0593
FIRE: 336 06:59:36 -1907.998419* 0.0596
FIRE: 337 06:59:36 -1907.998816* 0.0600
FIRE: 338 06:59:36 -1907.999289* 0.0604
FIRE: 339 06:59:37 -1907.999852* 0.0609
FIRE: 340 06:59:37 -1908.000709* 0.0612
FIRE: 341 06:59:37 -1908.001663* 0.0615
FIRE: 342 06:59:37 -1908.002979* 0.0617
FIRE: 343 06:59:37 -1908.004482* 0.0619
FIRE: 344 06:59:38 -1908.006485* 0.0623
FIRE: 345 06:59:38 -1908.009021* 0.0636
FIRE: 346 06:59:38 -1908.012013* 0.0652
FIRE: 347 06:59:38 -1908.015816* 0.0660
FIRE: 348 06:59:38 -1908.020633* 0.0661
FIRE: 349 06:59:39 -1908.026877* 0.0666
FIRE: 350 06:59:39 -1908.035145* 0.0737
FIRE: 351 06:59:39 -1908.046606* 0.0845
FIRE: 352 06:59:39 -1908.064267* 0.1047
FIRE: 353 06:59:39 -1908.093119* 0.1343
FIRE: 354 06:59:40 -1908.138296* 0.1956
FIRE: 355 06:59:40 -1908.173589* 0.3670
FIRE: 356 06:59:40 -1908.210072* 0.2068
FIRE: 357 06:59:40 -1908.213946* 0.1960
FIRE: 358 06:59:40 -1908.218763* 0.1877
FIRE: 359 06:59:40 -1908.222465* 0.1874
FIRE: 360 06:59:41 -1908.226673* 0.1870
FIRE: 361 06:59:41 -1908.233462* 0.1863
FIRE: 362 06:59:41 -1908.242244* 0.1845
FIRE: 363 06:59:41 -1908.250901* 0.1821
FIRE: 364 06:59:41 -1908.260534* 0.1815
FIRE: 365 06:59:42 -1908.274147* 0.1808
FIRE: 366 06:59:42 -1908.292141* 0.1834
FIRE: 367 06:59:42 -1908.312576* 0.1769
FIRE: 368 06:59:42 -1908.338306* 0.1619
FIRE: 369 06:59:42 -1908.364289* 0.1324
FIRE: 370 06:59:43 -1908.387554* 0.1254
FIRE: 371 06:59:43 -1908.401674* 0.1871
FIRE: 372 06:59:43 -1908.411716* 0.2332
FIRE: 373 06:59:43 -1908.414207* 0.2163
FIRE: 374 06:59:43 -1908.418325* 0.1861
FIRE: 375 06:59:44 -1908.423154* 0.1457
FIRE: 376 06:59:44 -1908.428038* 0.1006
FIRE: 377 06:59:44 -1908.432519* 0.0654
FIRE: 378 06:59:44 -1908.436127* 0.0711
FIRE: 379 06:59:44 -1908.439289* 0.0801
FIRE: 380 06:59:45 -1908.442782* 0.0897
FIRE: 381 06:59:45 -1908.446719* 0.1120
FIRE: 382 06:59:45 -1908.451745* 0.1231
FIRE: 383 06:59:45 -1908.458006* 0.1190
FIRE: 384 06:59:45 -1908.465313* 0.0965
FIRE: 385 06:59:46 -1908.473607* 0.0839
FIRE: 386 06:59:46 -1908.482362* 0.0782
FIRE: 387 06:59:46 -1908.491685* 0.0866
FIRE: 388 06:59:46 -1908.502136* 0.0799
FIRE: 389 06:59:46 -1908.511940* 0.0676
FIRE: 390 06:59:47 -1908.512508* 0.1671
FIRE: 391 06:59:47 -1908.522354* 0.0461
FIRE: 392 06:59:47 -1908.516271* 0.1466
FIRE: 393 06:59:47 -1908.519487* 0.1117
FIRE: 394 06:59:47 -1908.523001* 0.0502
FIRE: 395 06:59:48 -1908.523949* 0.0415
FIRE: 396 06:59:48 -1908.523991* 0.0415
FIRE: 397 06:59:48 -1908.524054* 0.0414
FIRE: 398 06:59:48 -1908.524199* 0.0414
FIRE: 399 06:59:48 -1908.524321* 0.0413
FIRE: 400 06:59:49 -1908.524494* 0.0413
FIRE: 401 06:59:49 -1908.524645* 0.0412
FIRE: 402 06:59:49 -1908.524799* 0.0411
FIRE: 403 06:59:49 -1908.524991* 0.0410
FIRE: 404 06:59:49 -1908.525163* 0.0409
FIRE: 405 06:59:49 -1908.525448* 0.0408
FIRE: 406 06:59:50 -1908.525816* 0.0406
FIRE: 407 06:59:50 -1908.526313* 0.0405
FIRE: 408 06:59:50 -1908.526756* 0.0404
FIRE: 409 06:59:50 -1908.527358* 0.0402
FIRE: 410 06:59:50 -1908.528063* 0.0401
FIRE: 411 06:59:51 -1908.528906* 0.0401
FIRE: 412 06:59:51 -1908.529915* 0.0400
FIRE: 413 06:59:51 -1908.531015* 0.0400
FIRE: 414 06:59:51 -1908.532414* 0.0401
FIRE: 415 06:59:51 -1908.533960* 0.0401
FIRE: 416 06:59:52 -1908.535787* 0.0403
FIRE: 417 06:59:52 -1908.538084* 0.0407
FIRE: 418 06:59:52 -1908.540660* 0.0416
FIRE: 419 06:59:52 -1908.543831* 0.0435
FIRE: 420 06:59:52 -1908.547736* 0.0466
FIRE: 421 06:59:53 -1908.552467* 0.0517
FIRE: 422 06:59:53 -1908.558734* 0.0597
FIRE: 423 06:59:53 -1908.566717* 0.0734
FIRE: 424 06:59:53 -1908.575211* 0.1005
FIRE: 425 06:59:53 -1908.562764* 0.3040
FIRE: 426 06:59:54 -1908.594026* 0.0983
FIRE: 427 06:59:54 -1908.594910* 0.0983
FIRE: 428 06:59:54 -1908.595964* 0.0983
FIRE: 429 06:59:54 -1908.596480* 0.0982
FIRE: 430 06:59:54 -1908.596976* 0.0979
FIRE: 431 06:59:55 -1908.597927* 0.0976
FIRE: 432 06:59:55 -1908.599583* 0.0970
FIRE: 433 06:59:55 -1908.601311* 0.0961
FIRE: 434 06:59:55 -1908.602879* 0.0949
FIRE: 435 06:59:55 -1908.604923* 0.0931
FIRE: 436 06:59:55 -1908.608111* 0.0909
FIRE: 437 06:59:56 -1908.611677* 0.0886
FIRE: 438 06:59:56 -1908.615952* 0.0870
FIRE: 439 06:59:56 -1908.621748* 0.0870
FIRE: 440 06:59:56 -1908.627244* 0.0852
FIRE: 441 06:59:56 -1908.633639* 0.0727
FIRE: 442 06:59:57 -1908.639872* 0.0661
FIRE: 443 06:59:57 -1908.645491* 0.0985
FIRE: 444 06:59:57 -1908.651480* 0.0659
FIRE: 445 06:59:57 -1908.657811* 0.0849
FIRE: 446 06:59:57 -1908.665298* 0.0724
FIRE: 447 06:59:58 -1908.668237* 0.1570
FIRE: 448 06:59:58 -1908.677276* 0.0606
FIRE: 449 06:59:58 -1908.677380* 0.0598
FIRE: 450 06:59:58 -1908.677692* 0.0582
FIRE: 451 06:59:58 -1908.678109* 0.0564
FIRE: 452 06:59:59 -1908.678530* 0.0551
FIRE: 453 06:59:59 -1908.679061* 0.0540
FIRE: 454 06:59:59 -1908.679682* 0.0530
FIRE: 455 06:59:59 -1908.680393* 0.0521
FIRE: 456 06:59:59 -1908.681102* 0.0509
FIRE: 457 07:00:00 -1908.682017* 0.0490
FIRE: 458 07:00:00 -1908.683122* 0.0459
FIRE: 459 07:00:00 -1908.684252* 0.0410
FIRE: 460 07:00:00 -1908.685531* 0.0344
FIRE: 461 07:00:00 -1908.686877* 0.0280
FIRE: 462 07:00:01 -1908.688245* 0.0279
FIRE: 463 07:00:01 -1908.689756* 0.0262
FIRE: 464 07:00:01 -1908.691257* 0.0249
FIRE: 465 07:00:01 -1908.692842* 0.0212
FIRE: 466 07:00:01 -1908.694541* 0.0253
FIRE: 467 07:00:02 -1908.696146* 0.0214
FIRE: 468 07:00:02 -1908.697728* 0.0388
FIRE: 469 07:00:02 -1908.697737* 0.0811
FIRE: 470 07:00:02 -1908.700793* 0.0329
FIRE: 471 07:00:02 -1908.698857* 0.0745
FIRE: 472 07:00:03 -1908.699835* 0.0565
FIRE: 473 07:00:03 -1908.701010* 0.0297
FIRE: 474 07:00:03 -1908.701207* 0.0297
FIRE: 475 07:00:03 -1908.701226* 0.0297
FIRE: 476 07:00:03 -1908.701250* 0.0297
FIRE: 477 07:00:04 -1908.701359* 0.0297
FIRE: 478 07:00:04 -1908.701388* 0.0297
FIRE: 479 07:00:04 -1908.701435* 0.0297
FIRE: 480 07:00:04 -1908.701455* 0.0297
FIRE: 481 07:00:04 -1908.701501* 0.0297
FIRE: 482 07:00:05 -1908.701554* 0.0297
FIRE: 483 07:00:05 -1908.701664* 0.0297
FIRE: 484 07:00:05 -1908.701784* 0.0297
FIRE: 485 07:00:05 -1908.701907* 0.0297
FIRE: 486 07:00:05 -1908.702101* 0.0297
FIRE: 487 07:00:05 -1908.702279* 0.0298
FIRE: 488 07:00:06 -1908.702549* 0.0298
FIRE: 489 07:00:06 -1908.702802* 0.0299
FIRE: 490 07:00:06 -1908.703107* 0.0299
FIRE: 491 07:00:06 -1908.703544* 0.0300
FIRE: 492 07:00:06 -1908.704050* 0.0301
FIRE: 493 07:00:07 -1908.704637* 0.0302
FIRE: 494 07:00:07 -1908.705442* 0.0303
FIRE: 495 07:00:07 -1908.706339* 0.0305
FIRE: 496 07:00:07 -1908.707485* 0.0309
FIRE: 497 07:00:07 -1908.708879* 0.0314
FIRE: 498 07:00:08 -1908.710778* 0.0322
FIRE: 499 07:00:08 -1908.713216* 0.0329
FIRE: 500 07:00:08 -1908.716336* 0.0332
FIRE: 501 07:00:08 -1908.720399* 0.0325
FIRE: 502 07:00:08 -1908.725188* 0.0322
FIRE: 503 07:00:09 -1908.729060* 0.0719
FIRE: 504 07:00:09 -1908.731527* 0.0337
FIRE: 505 07:00:09 -1908.730149* 0.0655
FIRE: 506 07:00:09 -1908.731022* 0.0490
FIRE: 507 07:00:09 -1908.731941* 0.0322
FIRE: 508 07:00:10 -1908.732191* 0.0320
FIRE: 509 07:00:10 -1908.732268* 0.0320
FIRE: 510 07:00:10 -1908.732310* 0.0320
FIRE: 511 07:00:10 -1908.732331* 0.0320
FIRE: 512 07:00:10 -1908.732395* 0.0319
FIRE: 513 07:00:11 -1908.732480* 0.0319
FIRE: 514 07:00:11 -1908.732506* 0.0318
FIRE: 515 07:00:11 -1908.732539* 0.0318
FIRE: 516 07:00:11 -1908.732646* 0.0317
FIRE: 517 07:00:11 -1908.732795* 0.0318
FIRE: 518 07:00:12 -1908.732970* 0.0320
FIRE: 519 07:00:12 -1908.733277* 0.0322
FIRE: 520 07:00:12 -1908.733475* 0.0324
FIRE: 521 07:00:12 -1908.733782* 0.0328
FIRE: 522 07:00:12 -1908.734183* 0.0332
FIRE: 523 07:00:13 -1908.734642* 0.0338
FIRE: 524 07:00:13 -1908.735249* 0.0344
FIRE: 525 07:00:13 -1908.736020* 0.0353
FIRE: 526 07:00:13 -1908.736971* 0.0364
FIRE: 527 07:00:13 -1908.738085* 0.0379
FIRE: 528 07:00:14 -1908.739536* 0.0399
FIRE: 529 07:00:14 -1908.741267* 0.0426
FIRE: 530 07:00:14 -1908.743513* 0.0463
FIRE: 531 07:00:14 -1908.746327* 0.0517
FIRE: 532 07:00:14 -1908.750073* 0.0593
FIRE: 533 07:00:15 -1908.755008* 0.0666
FIRE: 534 07:00:15 -1908.761821* 0.0732
FIRE: 535 07:00:15 -1908.771687* 0.0848
FIRE: 536 07:00:15 -1908.786113* 0.1012
FIRE: 537 07:00:15 -1908.807571* 0.1221
FIRE: 538 07:00:16 -1908.827710* 0.1950
FIRE: 539 07:00:16 -1908.844893* 0.1193
FIRE: 540 07:00:16 -1908.846152* 0.1192
FIRE: 541 07:00:16 -1908.847772* 0.1190
FIRE: 542 07:00:16 -1908.849277* 0.1188
FIRE: 543 07:00:17 -1908.851049* 0.1186
FIRE: 544 07:00:17 -1908.853820* 0.1187
FIRE: 545 07:00:17 -1908.857422* 0.1192
FIRE: 546 07:00:17 -1908.861455* 0.1208
FIRE: 547 07:00:17 -1908.866146* 0.1252
FIRE: 548 07:00:17 -1908.872539* 0.1300
FIRE: 549 07:00:18 -1908.881123* 0.1342
FIRE: 550 07:00:18 -1908.891708* 0.1407
FIRE: 551 07:00:18 -1908.905726* 0.1515
FIRE: 552 07:00:18 -1908.924065* 0.1649
FIRE: 553 07:00:18 -1908.947806* 0.1804
FIRE: 554 07:00:19 -1908.978606* 0.1945
FIRE: 555 07:00:19 -1909.017729* 0.2215
FIRE: 556 07:00:19 -1909.064322* 0.1959
FIRE: 557 07:00:19 -1909.109617* 0.1607
FIRE: 558 07:00:19 -1909.126030* 0.3328
FIRE: 559 07:00:20 -1909.134983* 0.2819
FIRE: 560 07:00:20 -1909.140265* 0.1942
FIRE: 561 07:00:20 -1909.146388* 0.1094
FIRE: 562 07:00:20 -1909.155448* 0.1152
FIRE: 563 07:00:20 -1909.159075* 0.1547
FIRE: 564 07:00:21 -1909.160063* 0.1467
FIRE: 565 07:00:21 -1909.161531* 0.1312
FIRE: 566 07:00:21 -1909.162990* 0.1089
FIRE: 567 07:00:21 -1909.164050* 0.0972
FIRE: 568 07:00:21 -1909.164972* 0.0980
FIRE: 569 07:00:22 -1909.166333* 0.0982
FIRE: 570 07:00:22 -1909.168088* 0.0974
FIRE: 571 07:00:22 -1909.170270* 0.0952
FIRE: 572 07:00:22 -1909.172287* 0.0910
FIRE: 573 07:00:22 -1909.174351* 0.0846
FIRE: 574 07:00:23 -1909.177383* 0.0771
FIRE: 575 07:00:23 -1909.181136* 0.0811
FIRE: 576 07:00:23 -1909.184831* 0.0857
FIRE: 577 07:00:23 -1909.189210* 0.0873
FIRE: 578 07:00:23 -1909.194160* 0.0839
FIRE: 579 07:00:24 -1909.199319* 0.0745
FIRE: 580 07:00:24 -1909.205577* 0.0637
FIRE: 581 07:00:24 -1909.212436* 0.0750
FIRE: 582 07:00:24 -1909.220009* 0.0832
FIRE: 583 07:00:24 -1909.229167* 0.0788
FIRE: 584 07:00:25 -1909.238825* 0.0701
FIRE: 585 07:00:25 -1909.246558* 0.0532
FIRE: 586 07:00:25 -1909.244569* 0.1376
FIRE: 587 07:00:25 -1909.252940* 0.0556
FIRE: 588 07:00:25 -1909.253018* 0.0542
FIRE: 589 07:00:26 -1909.253271* 0.0535
FIRE: 590 07:00:26 -1909.253584* 0.0524
FIRE: 591 07:00:26 -1909.253992* 0.0509
FIRE: 592 07:00:26 -1909.254425* 0.0489
FIRE: 593 07:00:26 -1909.254915* 0.0465
FIRE: 594 07:00:27 -1909.255393* 0.0436
FIRE: 595 07:00:27 -1909.255932* 0.0399
FIRE: 596 07:00:27 -1909.256551* 0.0352
FIRE: 597 07:00:27 -1909.257248* 0.0297
FIRE: 598 07:00:27 -1909.257867* 0.0235
FIRE: 599 07:00:27 -1909.258601* 0.0239
FIRE: 600 07:00:28 -1909.259344* 0.0250
FIRE: 601 07:00:28 -1909.260176* 0.0255
FIRE: 602 07:00:28 -1909.261057* 0.0253
FIRE: 603 07:00:28 -1909.262163* 0.0247
FIRE: 604 07:00:28 -1909.263425* 0.0236
FIRE: 605 07:00:29 -1909.264882* 0.0217
FIRE: 606 07:00:29 -1909.266581* 0.0182
FIRE: 607 07:00:29 -1909.268295* 0.0160
FIRE: 608 07:00:29 -1909.269555* 0.0402
FIRE: 609 07:00:29 -1909.270265* 0.0148
FIRE: 610 07:00:30 -1909.269884* 0.0347
FIRE: 611 07:00:30 -1909.270100* 0.0268
FIRE: 612 07:00:30 -1909.270358* 0.0128
FIRE: 613 07:00:30 -1909.270441* 0.0124
FIRE: 614 07:00:30 -1909.270435* 0.0123
FIRE: 615 07:00:31 -1909.270445* 0.0123
FIRE: 616 07:00:31 -1909.270476* 0.0122
FIRE: 617 07:00:31 -1909.270518* 0.0121
FIRE: 618 07:00:31 -1909.270520* 0.0120
FIRE: 619 07:00:31 -1909.270546* 0.0119
FIRE: 620 07:00:32 -1909.270539* 0.0117
FIRE: 621 07:00:32 -1909.270596* 0.0116
FIRE: 622 07:00:32 -1909.270614* 0.0115
FIRE: 623 07:00:32 -1909.270620* 0.0113
FIRE: 624 07:00:32 -1909.270714* 0.0112
FIRE: 625 07:00:33 -1909.270773* 0.0111
FIRE: 626 07:00:33 -1909.270800* 0.0110
FIRE: 627 07:00:33 -1909.270887* 0.0108
FIRE: 628 07:00:33 -1909.271034* 0.0106
FIRE: 629 07:00:33 -1909.271146* 0.0103
FIRE: 630 07:00:34 -1909.271296* 0.0100
FIRE: 631 07:00:34 -1909.271487* 0.0097
FIRE: 632 07:00:34 -1909.271731* 0.0099
FIRE: 633 07:00:34 -1909.272018* 0.0101
FIRE: 634 07:00:34 -1909.272270* 0.0103
FIRE: 635 07:00:35 -1909.272688* 0.0103
FIRE: 636 07:00:35 -1909.273120* 0.0102
FIRE: 637 07:00:35 -1909.273612* 0.0098
FIRE: 638 07:00:35 -1909.274282* 0.0092
FIRE: 639 07:00:35 -1909.274976* 0.0082
FIRE: 640 07:00:35 -1909.275725* 0.0081
FIRE: 641 07:00:36 -1909.276623* 0.0106
FIRE: 642 07:00:36 -1909.277247* 0.0323
FIRE: 643 07:00:36 -1909.277657* 0.0082
FIRE: 644 07:00:36 -1909.277395* 0.0289
FIRE: 645 07:00:36 -1909.277530* 0.0221
FIRE: 646 07:00:37 -1909.277680* 0.0100
FIRE: 647 07:00:37 -1909.277730* 0.0079
FIRE: 648 07:00:37 -1909.277729* 0.0078
FIRE: 649 07:00:37 -1909.277774* 0.0078
FIRE: 650 07:00:37 -1909.277738* 0.0078
FIRE: 651 07:00:38 -1909.277770* 0.0078
FIRE: 652 07:00:38 -1909.277735* 0.0078
FIRE: 653 07:00:38 -1909.277765* 0.0078
FIRE: 654 07:00:38 -1909.277753* 0.0077
FIRE: 655 07:00:38 -1909.277781* 0.0077
FIRE: 656 07:00:39 -1909.277794* 0.0077
FIRE: 657 07:00:39 -1909.277850* 0.0076
FIRE: 658 07:00:39 -1909.277809* 0.0075
FIRE: 659 07:00:39 -1909.277824* 0.0075
FIRE: 660 07:00:39 -1909.277894* 0.0074
FIRE: 661 07:00:40 -1909.277927* 0.0073
FIRE: 662 07:00:40 -1909.278020* 0.0071
FIRE: 663 07:00:40 -1909.278075* 0.0070
FIRE: 664 07:00:40 -1909.278129* 0.0069
FIRE: 665 07:00:40 -1909.278208* 0.0070
FIRE: 666 07:00:41 -1909.278265* 0.0071
FIRE: 667 07:00:41 -1909.278443* 0.0071
FIRE: 668 07:00:41 -1909.278570* 0.0072
FIRE: 669 07:00:41 -1909.278776* 0.0071
FIRE: 670 07:00:41 -1909.278953* 0.0071
FIRE: 671 07:00:42 -1909.279232* 0.0069
FIRE: 672 07:00:42 -1909.279550* 0.0067
FIRE: 673 07:00:42 -1909.279935* 0.0064
FIRE: 674 07:00:42 -1909.280350* 0.0061
FIRE: 675 07:00:42 -1909.280794* 0.0080
FIRE: 676 07:00:43 -1909.281117* 0.0256
FIRE: 677 07:00:43 -1909.281382* 0.0054
FIRE: 678 07:00:43 -1909.281161* 0.0229
FIRE: 679 07:00:43 -1909.281259* 0.0173
FIRE: 680 07:00:43 -1909.281354* 0.0075
FIRE: 681 07:00:43 -1909.281334* 0.0054
FIRE: 682 07:00:44 -1909.281391* 0.0054
FIRE: 683 07:00:44 -1909.281379* 0.0054
FIRE: 684 07:00:44 -1909.281389* 0.0054
FIRE: 685 07:00:44 -1909.281411* 0.0054
FIRE: 686 07:00:44 -1909.281383* 0.0054
FIRE: 687 07:00:45 -1909.281373* 0.0054
FIRE: 688 07:00:45 -1909.281377* 0.0054
FIRE: 689 07:00:45 -1909.281353* 0.0054
FIRE: 690 07:00:45 -1909.281363* 0.0054
FIRE: 691 07:00:45 -1909.281441* 0.0054
FIRE: 692 07:00:46 -1909.281445* 0.0054
FIRE: 693 07:00:46 -1909.281391* 0.0054
FIRE: 694 07:00:46 -1909.281468* 0.0054
FIRE: 695 07:00:46 -1909.281501* 0.0054
FIRE: 696 07:00:46 -1909.281517* 0.0054
FIRE: 697 07:00:47 -1909.281541* 0.0054
FIRE: 698 07:00:47 -1909.281577* 0.0054
FIRE: 699 07:00:47 -1909.281603* 0.0054
FIRE: 700 07:00:47 -1909.281662* 0.0054
FIRE: 701 07:00:47 -1909.281766* 0.0054
FIRE: 702 07:00:48 -1909.281831* 0.0053
FIRE: 703 07:00:48 -1909.281892* 0.0053
FIRE: 704 07:00:48 -1909.282060* 0.0052
FIRE: 705 07:00:48 -1909.282228* 0.0051
FIRE: 706 07:00:48 -1909.282389* 0.0050
[25]:
SnO2_Pt119 = Trajectory("./SnO2_Pt119.traj")
view_ngl(SnO2_Pt119, representations=["ball+stick"])
[26]:
from ase.io import write
from IPython.display import Image
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
write("output/sno2_pt119_opt.png", SnO2_Pt119[-1], rotation="-90x,0y,0z")
fig, ax = plt.subplots(1, 1, figsize=(5, 5))
ax.imshow(mpimg.imread("output/sno2_pt119_opt.png"))
ax.set_axis_off()
ax.set_title("SnO2 - Pt119 optimized structure")
fig.show()
このように、担体上のNano particle 構造を作成することができました。
ここで、論文で示されているようなchargeの可視化も可能です。 Nano particleの吸着面に近いところでのみ電荷が0からずれていて、核の外側がプラスに、内側がマイナスになっていることが確認できます。
[27]:
v = view_ngl(SnO2_Pt119[-1], show_charge=True)
v.show_charge_label()
v
このように、SnO2担体上にPt Nano particleが吸着している構造を作成することができました。
実際には、本当にこの構造で正しいのか(微粒子の状態で吸着するのか、それとも全体に均質に伸びて吸着するような形のほうが安定なのかなど)の検証が必要となりますが、このTutorialでは省略します。
こういった構造が作成できる事により、ここから更に後述する反応探索やMDなどを組み合わせることで、
様々な面が露出している触媒下での反応
触媒と担体の境界面での反応
なども扱えるようになる可能性があり、より現実に近い状態での触媒反応シミュレーションができる可能性があります。
参考文献
Calculations of Real-System Nanoparticles Using Universal Neural Network Potential PFP
Structural Stability of Ruthenium Nanoparticles: A Density Functional Theory Study
Electronic Structure and Phase Stability of PdPt Nanoparticles
Electronic structure and phase stability of Pt3M (M = Co, Ni, and Cu) bimetallic nanoparticles