Files
dump2sq/gr2sq.py
T
2022-08-31 19:25:58 +09:00

1179 lines
49 KiB
Python
Executable File

#!/usr/bin/env python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import os
import re
import argparse
par = argparse.ArgumentParser(description="test")
par.add_argument('grfile')
par.add_argument('-q', '--qrange', nargs=2, default=None, type=float)
par.add_argument('-t', '--trange', nargs=2, default=[10, 120], type=float)
par.add_argument('--pnt', default=1001, type=int)
par.add_argument('--lmd', default=1.54183, type=float)
par.add_argument('-p', '--plot', default=False, action='store_true')
args = par.parse_args()
lmd = {}
lmd["Cu Ka1"] = 1.54059 # Cu Kalpha1
lmd["Cu Ka2"] = 1.54432 # Cu Kalpha2
lmd["Cu Ka"] = (lmd["Cu Ka1"] + 0.5*lmd["Cu Ka2"])/1.5
elems = """ H H' D He Li Be B C N O F Ne Na Mg Al Si P S Cl
Ar K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br
Kr Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I
Xe Cs Ba La Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb
Lu Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn Fr Ra
Ac Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr H1- Li1+
Be2+ Cval O1- O2- F1- Na1+ Mg2+ Al3+ Sival Si4+ Cl1- K1+
Ca2+ Sc3+ Ti2+ Ti3+ Ti4+ V2+ V3+ V5+ Cr2+ Cr3+ Mn2+ Mn3+
Mn4+ Fe2+ Fe3+ Co2+ Co3+ Ni2+ Ni3+ Cu1+ Cu2+ Zn2+ Ga3+
Ge4+ Br1- Rb1+ Sr2+ Y3+ Zr4+ Nb3+ Nb5+ Mo3+ Mo5+ Mo6+ Ru3+
Ru4+ Rh3+ Rh4+ Pd2+ Pd4+ Ag1+ Ag2+ Cd2+ In3+ Sn2+ Sn4+
Sb3+ Sb5+ I1- Cs1+ Ba2+ La3+ Ce3+ Ce4+ Pr3+ Pr4+ Nd3+ Pm3+
Sm3+ Eu2+ Eu3+ Gd3+ Tb3+ Dy3+ Ho3+ Er3+ Tm3+ Yb2+ Yb3+
Lu3+ Hf4+ Ta5+ W6+ Os4+ Ir3+ Ir4+ Pt2+ Pt4+ Au1+ Au3+ Hg1+
Hg2+ Tl1+ Tl3+ Pb2+ Pb4+ Bi3+ Bi5+ Ra2+ Ac3+ Th4+ U3+ U4+
U6+ Np3+ Np4+ Np6+ Pu3+ Pu4+ Pu6+"""
F = {e: {} for e in elems.split()}
F["H"]["A"] = [0.413048, 0.294953, 0.187491, 0.080701, 0.023736]
F["H"]["B"] = [15.569946, 32.398468, 5.711404, 61.889874, 1.334118]
F["H"]["C"] = 4.9e-05
F["H'"]["A"] = [0.493002, 0.322912, 0.140191, 0.040810, 0.000000]
F["H'"]["B"] = [10.510900, 26.125700, 3.142360, 57.799700, 0.000000]
F["H'"]["C"] = 0.003038
F["D"]["A"] = [0.413048, 0.294953, 0.187491, 0.080701, 0.023736]
F["D"]["B"] = [15.569946, 32.398468, 5.711404, 61.889874, 1.334118]
F["D"]["C"] = 4.9e-05
F["He"]["A"] = [0.732354, 0.753896, 0.283819, 0.190003, 0.039139]
F["He"]["B"] = [11.553918, 4.595831, 1.546299, 26.463964, 0.377523]
F["He"]["C"] = 0.000487
F["Li"]["A"] = [0.974637, 0.158472, 0.811855, 0.262416, 0.790108]
F["Li"]["B"] = [4.334946, 0.342451, 97.102966, 201.363831, 1.409234]
F["Li"]["C"] = 0.002542
F["Be"]["A"] = [1.533712, 0.638283, 0.601052, 0.106139, 1.118414]
F["Be"]["B"] = [42.662079, 0.595420, 99.106499, 0.151340, 1.843093]
F["Be"]["C"] = 0.002511
F["B"]["A"] = [2.085185, 1.064580, 1.062788, 0.140515, 0.641784]
F["B"]["B"] = [23.494068, 1.137894, 61.238976, 0.114886, 0.399036]
F["B"]["C"] = 0.003823
F["C"]["A"] = [2.657506, 1.078079, 1.490909, -4.241070, 0.713791]
F["C"]["B"] = [14.780758, 0.776775, 42.086842, -0.000294, 0.239535]
F["C"]["C"] = 4.297983
F["N"]["A"] = [11.893780, 3.277479, 1.858092, 0.858927, 0.912985]
F["N"]["B"] = [0.000158, 10.232723, 30.344690, 0.656065, 0.217287]
F["N"]["C"] = -11.804902
F["O"]["A"] = [2.960427, 2.508818, 0.637853, 0.722838, 1.142756]
F["O"]["B"] = [14.182259, 5.936858, 0.112726, 34.958481, 0.390240]
F["O"]["C"] = 0.027014
F["F"]["A"] = [3.511943, 2.772244, 0.678385, 0.915159, 1.089261]
F["F"]["B"] = [10.687859, 4.380466, 0.093982, 27.255203, 0.313066]
F["F"]["C"] = 0.032557
F["Ne"]["A"] = [4.183749, 2.905726, 0.520513, 1.135641, 1.228065]
F["Ne"]["B"] = [8.175457, 3.252536, 0.063295, 21.813910, 0.224952]
F["Ne"]["C"] = 0.025576
F["Na"]["A"] = [4.910127, 3.081783, 1.262067, 1.098938, 0.560991]
F["Na"]["B"] = [3.281434, 9.119178, 0.102763, 132.013947, 0.405878]
F["Na"]["C"] = 0.079712
F["Mg"]["A"] = [4.708971, 1.194814, 1.558157, 1.170413, 3.239403]
F["Mg"]["B"] = [4.875207, 108.506081, 0.111516, 48.292408, 1.928171]
F["Mg"]["C"] = 0.126842
F["Al"]["A"] = [4.730796, 2.313951, 1.541980, 1.117564, 3.154754]
F["Al"]["B"] = [3.628931, 43.051167, 0.095960, 108.932388, 1.555918]
F["Al"]["C"] = 0.139509
F["Si"]["A"] = [5.275329, 3.191038, 1.511514, 1.356849, 2.519114]
F["Si"]["B"] = [2.631338, 33.730728, 0.081119, 86.288643, 1.170087]
F["Si"]["C"] = 0.145073
F["P"]["A"] = [1.950541, 4.146930, 1.494560, 1.522042, 5.729711]
F["P"]["B"] = [0.908139, 27.044952, 0.071280, 67.520187, 1.981173]
F["P"]["C"] = 0.155233
F["S"]["A"] = [6.372157, 5.154568, 1.473732, 1.635073, 1.209372]
F["S"]["B"] = [1.514347, 22.092528, 0.061373, 55.445176, 0.646925]
F["S"]["C"] = 0.154722
F["Cl"]["A"] = [1.446071, 6.870609, 6.151801, 1.750347, 0.634168]
F["Cl"]["B"] = [0.052357, 1.193165, 18.343416, 46.398396, 0.401005]
F["Cl"]["C"] = 0.146773
F["Ar"]["A"] = [7.188004, 6.638454, 0.454180, 1.929593, 1.523654]
F["Ar"]["B"] = [0.956221, 15.339877, 15.339862, 39.043823, 0.062409]
F["Ar"]["C"] = 0.265954
F["K"]["A"] = [8.163991, 7.146945, 1.070140, 0.877316, 1.486434]
F["K"]["B"] = [12.816323, 0.808945, 210.327011, 39.597652, 0.052821]
F["K"]["C"] = 0.253614
F["Ca"]["A"] = [8.593655, 1.477324, 1.436254, 1.182839, 7.113258]
F["Ca"]["B"] = [10.460644, 0.041891, 81.390381, 169.847839, 0.688098]
F["Ca"]["C"] = 0.196255
F["Sc"]["A"] = [1.476566, 1.487278, 1.600187, 9.177463, 7.099750]
F["Sc"]["B"] = [53.131023, 0.035325, 137.319489, 9.098031, 0.602102]
F["Sc"]["C"] = 0.157765
F["Ti"]["A"] = [9.818524, 1.522646, 1.703101, 1.768774, 7.082555]
F["Ti"]["B"] = [8.001879, 0.029763, 39.885422, 120.157997, 0.532405]
F["Ti"]["C"] = 0.102473
F["V"]["A"] = [10.473575, 1.547881, 1.986381, 1.865616, 7.056250]
F["V"]["B"] = [7.081940, 0.026040, 31.909672, 108.022842, 0.474882]
F["V"]["C"] = 0.067744
F["Cr"]["A"] = [11.007069, 1.555477, 2.985293, 1.347855, 7.034779]
F["Cr"]["B"] = [6.366281, 0.023987, 23.244839, 105.774498, 0.429369]
F["Cr"]["C"] = 0.06551
F["Mn"]["A"] = [11.709542, 1.733414, 2.673141, 2.023368, 7.003180]
F["Mn"]["B"] = [5.597120, 0.017800, 21.788420, 89.517914, 0.383054]
F["Mn"]["C"] = -0.147293
F["Fe"]["A"] = [12.311098, 1.876623, 3.066177, 2.070451, 6.975185]
F["Fe"]["B"] = [5.009415, 0.014461, 18.743040, 82.767876, 0.346506]
F["Fe"]["C"] = -0.304931
F["Co"]["A"] = [12.914510, 2.481908, 3.466894, 2.106351, 6.960892]
F["Co"]["B"] = [4.507138, 0.009126, 16.438129, 76.987320, 0.314418]
F["Co"]["C"] = -0.936572
F["Ni"]["A"] = [13.521865, 6.947285, 3.866028, 2.135900, 4.284731]
F["Ni"]["B"] = [4.077277, 0.286763, 14.622634, 71.966080, 0.004437]
F["Ni"]["C"] = -2.762697
F["Cu"]["A"] = [14.014192, 4.784577, 5.056806, 1.457971, 6.932996]
F["Cu"]["B"] = [3.738280, 0.003744, 13.034982, 72.554794, 0.265666]
F["Cu"]["C"] = -3.254477
F["Zn"]["A"] = [14.741002, 6.907748, 4.642337, 2.191766, 38.424042]
F["Zn"]["B"] = [3.388232, 0.243315, 11.903689, 63.312130, 0.000397]
F["Zn"]["C"] = -36.915829
F["Ga"]["A"] = [15.758946, 6.841123, 4.121016, 2.714681, 2.395246]
F["Ga"]["B"] = [3.121754, 0.226057, 12.482196, 66.203621, 0.007238]
F["Ga"]["C"] = -0.847395
F["Ge"]["A"] = [16.540613, 1.567900, 3.727829, 3.345098, 6.785079]
F["Ge"]["B"] = [2.866618, 0.012198, 13.432163, 58.866047, 0.210974]
F["Ge"]["C"] = 0.018726
F["As"]["A"] = [17.025642, 4.503441, 3.715904, 3.937200, 6.790175]
F["As"]["B"] = [2.597739, 0.003012, 14.272119, 50.437996, 0.193015]
F["As"]["C"] = -2.984117
F["Se"]["A"] = [17.354071, 4.653248, 4.259489, 4.136455, 6.749163]
F["Se"]["B"] = [2.349787, 0.002550, 15.579460, 45.181202, 0.177432]
F["Se"]["C"] = -3.160982
F["Br"]["A"] = [17.550570, 5.411882, 3.937180, 3.880645, 6.707793]
F["Br"]["B"] = [2.119226, 16.557184, 0.002481, 42.164009, 0.162121]
F["Br"]["C"] = -2.492088
F["Kr"]["A"] = [17.655279, 6.848105, 4.171004, 3.446760, 6.685200]
F["Kr"]["B"] = [1.908231, 16.606236, 0.001598, 39.917473, 0.146896]
F["Kr"]["C"] = -2.810592
F["Rb"]["A"] = [8.123134, 2.138042, 6.761702, 1.156051, 17.679546]
F["Rb"]["B"] = [15.142385, 33.542667, 0.129372, 224.132507, 1.713368]
F["Rb"]["C"] = 1.139548
F["Sr"]["A"] = [17.730219, 9.795867, 6.099763, 2.620025, 0.600053]
F["Sr"]["B"] = [1.563060, 14.310868, 0.120574, 135.771317, 0.120574]
F["Sr"]["C"] = 1.140251
F["Y"]["A"] = [17.792040, 10.253252, 5.714949, 3.170516, 0.918251]
F["Y"]["B"] = [1.429691, 13.132816, 0.112173, 108.197029, 0.112173]
F["Y"]["C"] = 1.131787
F["Zr"]["A"] = [17.859772, 10.911038, 5.821115, 3.512513, 0.746965]
F["Zr"]["B"] = [1.310692, 12.319285, 0.104353, 91.777542, 0.104353]
F["Zr"]["C"] = 1.124859
F["Nb"]["A"] = [17.958399, 12.063054, 5.007015, 3.287667, 1.531019]
F["Nb"]["B"] = [1.211590, 12.246687, 0.098615, 75.011948, 0.098615]
F["Nb"]["C"] = 1.123452
F["Mo"]["A"] = [6.236218, 17.987711, 12.973127, 3.451426, 0.210899]
F["Mo"]["B"] = [0.090780, 1.108310, 11.468720, 66.684151, 0.090780]
F["Mo"]["C"] = 1.10877
F["Tc"]["A"] = [17.840963, 3.428236, 1.373012, 12.947364, 6.335469]
F["Tc"]["B"] = [1.005729, 41.901382, 119.320541, 9.781542, 0.083391]
F["Tc"]["C"] = 1.074784
F["Ru"]["A"] = [6.271624, 17.906738, 14.123269, 3.746008, 0.908235]
F["Ru"]["B"] = [0.077040, 0.928222, 9.555345, 35.860680, 123.552246]
F["Ru"]["C"] = 1.043992
F["Rh"]["A"] = [6.216648, 17.919739, 3.854252, 0.840326, 15.173498]
F["Rh"]["B"] = [0.070789, 0.856121, 33.889484, 121.686691, 9.029517]
F["Rh"]["C"] = 0.995452
F["Pd"]["A"] = [6.121511, 4.784063, 16.631683, 4.318258, 13.246773]
F["Pd"]["B"] = [0.062549, 0.784031, 8.751391, 34.489983, 0.784031]
F["Pd"]["C"] = 0.883099
F["Ag"]["A"] = [6.073874, 17.155437, 4.173344, 0.852238, 17.988686]
F["Ag"]["B"] = [0.055333, 7.896512, 28.443739, 110.376106, 0.716809]
F["Ag"]["C"] = 0.756603
F["Cd"]["A"] = [6.080986, 18.019468, 4.018197, 1.303510, 17.974669]
F["Cd"]["B"] = [0.048990, 7.273646, 29.119284, 95.831207, 0.661231]
F["Cd"]["C"] = 0.603504
F["In"]["A"] = [6.196477, 18.816183, 4.050479, 1.638929, 17.962912]
F["In"]["B"] = [0.042072, 6.695665, 31.009790, 103.284348, 0.610714]
F["In"]["C"] = 0.333097
F["Sn"]["A"] = [19.325171, 6.281571, 4.498866, 1.856934, 17.917318]
F["Sn"]["B"] = [6.118104, 0.036915, 32.529045, 95.037186, 0.565651]
F["Sn"]["C"] = 0.119024
F["Sb"]["A"] = [5.394956, 6.549570, 19.650681, 1.827820, 17.867832]
F["Sb"]["B"] = [33.326523, 0.030974, 5.564929, 87.130966, 0.523992]
F["Sb"]["C"] = -0.290506
F["Te"]["A"] = [6.660302, 6.940756, 19.847015, 1.557175, 17.802427]
F["Te"]["B"] = [33.031654, 0.025750, 5.065547, 84.101616, 0.487660]
F["Te"]["C"] = -0.806668
F["I"]["A"] = [19.884502, 6.736593, 8.110516, 1.170953, 17.548716]
F["I"]["B"] = [4.628591, 0.027754, 31.849096, 84.406387, 0.463550]
F["I"]["C"] = -0.448811
F["Xe"]["A"] = [19.978920, 11.774945, 9.332182, 1.244749, 17.737501]
F["Xe"]["B"] = [4.143356, 0.010142, 28.796200, 75.280685, 0.413616]
F["Xe"]["C"] = -6.065902
F["Cs"]["A"] = [17.418674, 8.314444, 10.323193, 1.383834, 19.876251]
F["Cs"]["B"] = [0.399828, 0.016872, 25.605827, 233.339676, 3.826915]
F["Cs"]["C"] = -2.322802
F["Ba"]["A"] = [19.747343, 17.368477, 10.465718, 2.592602, 11.003653]
F["Ba"]["B"] = [3.481823, 0.371224, 21.226641, 173.834274, 0.010719]
F["Ba"]["C"] = -5.183497
F["La"]["A"] = [19.966019, 27.329655, 11.018425, 3.086696, 17.335455]
F["La"]["B"] = [3.197408, 0.003446, 19.955492, 141.381973, 0.341817]
F["La"]["C"] = -21.745489
F["Ce"]["A"] = [17.355122, 43.988499, 20.546650, 3.130670, 11.353665]
F["Ce"]["B"] = [0.328369, 0.002047, 3.088196, 134.907654, 18.832960]
F["Ce"]["C"] = -38.386017
F["Pr"]["A"] = [21.551311, 17.161730, 11.903859, 2.679103, 9.564197]
F["Pr"]["B"] = [2.995675, 0.312491, 17.716705, 152.192825, 0.010468]
F["Pr"]["C"] = -3.871068
F["Nd"]["A"] = [17.331244, 62.783924, 12.160097, 2.663483, 22.239950]
F["Nd"]["B"] = [0.300269, 0.001320, 17.026001, 148.748993, 2.910268]
F["Nd"]["C"] = -57.189842
F["Pm"]["A"] = [17.286388, 51.560162, 12.478557, 2.675515, 22.960947]
F["Pm"]["B"] = [0.286620, 0.001550, 16.223755, 143.984512, 2.796480]
F["Pm"]["C"] = -45.973682
F["Sm"]["A"] = [23.700363, 23.072214, 12.777782, 2.684217, 17.204367]
F["Sm"]["B"] = [2.689539, 0.003491, 15.495437, 139.862473, 0.274536]
F["Sm"]["C"] = -17.452166
F["Eu"]["A"] = [17.186195, 37.156837, 13.103387, 2.707246, 24.419271]
F["Eu"]["B"] = [0.261678, 0.001995, 14.787360, 134.816299, 2.581883]
F["Eu"]["C"] = -31.586687
F["Gd"]["A"] = [24.898117, 17.104952, 13.222581, 3.266152, 48.995213]
F["Gd"]["B"] = [2.435028, 0.246961, 13.996325, 110.863091, 0.001383]
F["Gd"]["C"] = -43.505684
F["Tb"]["A"] = [25.910013, 32.344139, 13.765117, 2.751404, 17.064405]
F["Tb"]["B"] = [2.373912, 0.002034, 13.481969, 125.836510, 0.236916]
F["Tb"]["C"] = -26.851971
F["Dy"]["A"] = [26.671785, 88.687576, 14.065445, 2.768497, 17.067781]
F["Dy"]["B"] = [2.282593, 0.000665, 12.920230, 121.937187, 0.225531]
F["Dy"]["C"] = -83.279831
F["Ho"]["A"] = [27.150190, 16.999819, 14.059334, 3.386979, 46.546471]
F["Ho"]["B"] = [2.169660, 0.215414, 12.213148, 100.506783, 0.001211]
F["Ho"]["C"] = -41.165253
F["Er"]["A"] = [28.174887, 82.493271, 14.624002, 2.802756, 17.018515]
F["Er"]["B"] = [2.120995, 0.000640, 11.915256, 114.529938, 0.207519]
F["Er"]["C"] = -77.135223
F["Tm"]["A"] = [28.925894, 76.173798, 14.904704, 2.814812, 16.998117]
F["Tm"]["B"] = [2.046203, 0.000656, 11.465375, 111.411980, 0.199376]
F["Tm"]["C"] = -70.839813
F["Yb"]["A"] = [29.676760, 65.624069, 15.160854, 2.830288, 16.997850]
F["Yb"]["B"] = [1.977630, 0.000720, 11.044622, 108.139153, 0.192110]
F["Yb"]["C"] = -60.313812
F["Lu"]["A"] = [30.122866, 15.099346, 56.314899, 3.540980, 16.943729]
F["Lu"]["B"] = [1.883090, 10.342764, 0.000780, 89.559250, 0.183849]
F["Lu"]["C"] = -51.049416
F["Hf"]["A"] = [30.617033, 15.145351, 54.933548, 4.096253, 16.896156]
F["Hf"]["B"] = [1.795613, 9.934469, 0.000739, 76.189705, 0.175914]
F["Hf"]["C"] = -49.719837
F["Ta"]["A"] = [31.066359, 15.341823, 49.278297, 4.577665, 16.828321]
F["Ta"]["B"] = [1.708732, 9.618455, 0.000760, 66.346199, 0.168002]
F["Ta"]["C"] = -44.119026
F["W"]["A"] = [31.507900, 15.682498, 37.960129, 4.885509, 16.792112]
F["W"]["B"] = [1.629485, 9.446448, 0.000898, 59.980675, 0.160798]
F["W"]["C"] = -32.864574
F["Re"]["A"] = [31.888456, 16.117104, 42.390297, 5.211669, 16.767591]
F["Re"]["B"] = [1.549238, 9.233474, 0.000689, 54.516373, 0.152815]
F["Re"]["C"] = -37.412682
F["Os"]["A"] = [32.210297, 16.678440, 48.559906, 5.455839, 16.735533]
F["Os"]["B"] = [1.473531, 9.049695, 0.000519, 50.210201, 0.145771]
F["Os"]["C"] = -43.677956
F["Ir"]["A"] = [32.004436, 1.975454, 17.070105, 15.939454, 5.990003]
F["Ir"]["B"] = [1.353767, 81.014175, 0.128093, 7.661196, 26.659403]
F["Ir"]["C"] = 4.018893
F["Pt"]["A"] = [31.273891, 18.445440, 17.063745, 5.555933, 1.575270]
F["Pt"]["B"] = [1.316992, 8.797154, 0.124741, 40.177994, 1.316997]
F["Pt"]["C"] = 4.050394
F["Au"]["A"] = [16.777390, 19.317156, 32.979683, 5.595453, 10.576854]
F["Au"]["B"] = [0.122737, 8.621570, 1.256902, 38.008820, 0.000601]
F["Au"]["C"] = -6.279078
F["Hg"]["A"] = [16.839890, 20.023823, 28.428564, 5.881564, 4.714706]
F["Hg"]["B"] = [0.115905, 8.256927, 1.195250, 39.247227, 1.195250]
F["Hg"]["C"] = 4.076478
F["Tl"]["A"] = [16.630795, 19.386616, 32.808571, 1.747191, 6.356862]
F["Tl"]["B"] = [0.110704, 7.181401, 1.119730, 90.660263, 26.014978]
F["Tl"]["C"] = 4.066939
F["Pb"]["A"] = [16.419567, 32.738590, 6.530247, 2.342742, 19.916475]
F["Pb"]["B"] = [0.105499, 1.055049, 25.025890, 80.906593, 6.664449]
F["Pb"]["C"] = 4.049824
F["Bi"]["A"] = [16.282274, 32.725136, 6.678302, 2.694750, 20.576559]
F["Bi"]["B"] = [0.101180, 1.002287, 25.714146, 77.057549, 6.291882]
F["Bi"]["C"] = 4.040914
F["Po"]["A"] = [16.289164, 32.807171, 21.095163, 2.505901, 7.254589]
F["Po"]["B"] = [0.098121, 0.966265, 6.046622, 76.598068, 28.096128]
F["Po"]["C"] = 4.046556
F["At"]["A"] = [16.011461, 32.615547, 8.113899, 2.884082, 21.377867]
F["At"]["B"] = [0.092639, 0.904416, 26.543257, 68.372963, 5.499512]
F["At"]["C"] = 3.995684
F["Rn"]["A"] = [16.070229, 32.641106, 21.489658, 2.299218, 9.480184]
F["Rn"]["B"] = [0.090437, 0.876409, 5.239687, 69.188477, 27.632641]
F["Rn"]["C"] = 4.020977
F["Fr"]["A"] = [16.007385, 32.663830, 21.594351, 1.598497, 11.121192]
F["Fr"]["B"] = [0.087031, 0.840187, 4.954467, 199.805801, 26.905106]
F["Fr"]["C"] = 4.003472
F["Ra"]["A"] = [32.563690, 21.396671, 11.298093, 2.834688, 15.914965]
F["Ra"]["B"] = [0.801980, 4.590666, 22.758972, 160.404388, 0.083544]
F["Ra"]["C"] = 3.981773
F["Ac"]["A"] = [15.914053, 32.535042, 21.553976, 11.433394, 3.612409]
F["Ac"]["B"] = [0.080511, 0.770669, 4.352206, 21.381622, 130.500748]
F["Ac"]["C"] = 3.939212
F["Th"]["A"] = [15.784024, 32.454899, 21.849222, 4.239077, 11.736191]
F["Th"]["B"] = [0.077067, 0.735137, 4.097976, 109.464111, 20.512138]
F["Th"]["C"] = 3.922533
F["Pa"]["A"] = [32.740208, 21.973675, 12.957398, 3.683832, 15.744058]
F["Pa"]["B"] = [0.709545, 4.050881, 19.231543, 117.255005, 0.074040]
F["Pa"]["C"] = 3.886066
F["U"]["A"] = [15.679275, 32.824306, 13.660459, 3.687261, 22.279434]
F["U"]["B"] = [0.071206, 0.681177, 18.236156, 112.500038, 3.930325]
F["U"]["C"] = 3.854444
F["Np"]["A"] = [32.999901, 22.638077, 14.219973, 3.672950, 15.683245]
F["Np"]["B"] = [0.657086, 3.854918, 17.435474, 109.464485, 0.068033]
F["Np"]["C"] = 3.769391
F["Pu"]["A"] = [33.281178, 23.148544, 15.153755, 3.031492, 15.704215]
F["Pu"]["B"] = [0.634999, 3.856168, 16.849735, 121.292038, 0.064857]
F["Pu"]["C"] = 3.6642
F["Am"]["A"] = [33.435162, 23.657259, 15.576339, 3.027023, 15.746100]
F["Am"]["B"] = [0.612785, 3.792942, 16.195778, 117.757004, 0.061755]
F["Am"]["C"] = 3.54116
F["Cm"]["A"] = [15.804837, 33.480801, 24.150198, 3.655563, 15.499866]
F["Cm"]["B"] = [0.058619, 0.590160, 3.674720, 100.736191, 15.408296]
F["Cm"]["C"] = 3.39084
F["Bk"]["A"] = [15.889072, 33.625286, 24.710381, 3.707139, 15.839268]
F["Bk"]["B"] = [0.055503, 0.569571, 3.615472, 97.694786, 14.754303]
F["Bk"]["C"] = 3.213169
F["Cf"]["A"] = [33.794075, 25.467693, 16.048487, 3.657525, 16.008982]
F["Cf"]["B"] = [0.550447, 3.581973, 14.357388, 96.064972, 0.052450]
F["Cf"]["C"] = 3.005326
F["Es"]["A"] = [0.000000, 0.000000, 0.000000, 0.000000, 0.000000]
F["Es"]["B"] = [0.000000, 0.000000, 0.000000, 0.000000, 0.000000]
F["Es"]["C"] = 0.0
F["Fm"]["A"] = [0.000000, 0.000000, 0.000000, 0.000000, 0.000000]
F["Fm"]["B"] = [0.000000, 0.000000, 0.000000, 0.000000, 0.000000]
F["Fm"]["C"] = 0.0
F["Md"]["A"] = [0.000000, 0.000000, 0.000000, 0.000000, 0.000000]
F["Md"]["B"] = [0.000000, 0.000000, 0.000000, 0.000000, 0.000000]
F["Md"]["C"] = 0.0
F["No"]["A"] = [0.000000, 0.000000, 0.000000, 0.000000, 0.000000]
F["No"]["B"] = [0.000000, 0.000000, 0.000000, 0.000000, 0.000000]
F["No"]["C"] = 0.0
F["Lr"]["A"] = [0.000000, 0.000000, 0.000000, 0.000000, 0.000000]
F["Lr"]["B"] = [0.000000, 0.000000, 0.000000, 0.000000, 0.000000]
F["Lr"]["C"] = 0.0
F["H1-"]["A"] = [0.702260, 0.763666, 0.248678, 0.261323, 0.023017]
F["H1-"]["B"] = [23.945604, 74.897919, 6.773289, 233.583450, 1.337531]
F["H1-"]["C"] = 0.000425
F["Li1+"]["A"] = [0.432724, 0.549257, 0.376575, -0.336481, 0.976060]
F["Li1+"]["B"] = [0.260367, 1.042836, 7.885294, 0.260368, 3.042539]
F["Li1+"]["C"] = 0.001764
F["Be2+"]["A"] = [3.055430, -2.372617, 1.044914, 0.544233, 0.381737]
F["Be2+"]["B"] = [0.001226, 0.001227, 1.542106, 0.456279, 4.047479]
F["Be2+"]["C"] = -0.653773
F["Cval"]["A"] = [1.258489, 0.728215, 1.119856, 2.168133, 0.705239]
F["Cval"]["B"] = [10.683769, 0.208177, 0.836097, 24.603704, 58.954273]
F["Cval"]["C"] = 0.019722
F["O1-"]["A"] = [3.106934, 3.235142, 1.148886, 0.783981, 0.676953]
F["O1-"]["B"] = [19.868080, 6.960252, 0.170043, 65.693512, 0.630757]
F["O1-"]["C"] = 0.046136
F["O2-"]["A"] = [3.990247, 2.300563, 0.607200, 1.907882, 1.167080]
F["O2-"]["B"] = [16.639956, 5.636819, 0.108493, 47.299709, 0.379984]
F["O2-"]["C"] = 0.025429
F["F1-"]["A"] = [0.457649, 3.841561, 1.432771, 0.801876, 3.395041]
F["F1-"]["B"] = [0.917243, 5.507803, 0.164955, 51.076206, 15.821679]
F["F1-"]["C"] = 0.069525
F["Na1+"]["A"] = [3.148690, 4.073989, 0.767888, 0.995612, 0.968249]
F["Na1+"]["B"] = [2.594987, 6.046925, 0.070139, 14.122657, 0.217037]
F["Na1+"]["C"] = 0.0453
F["Mg2+"]["A"] = [3.062918, 4.135106, 0.853742, 1.036792, 0.852520]
F["Mg2+"]["B"] = [2.015803, 4.417941, 0.065307, 9.669710, 0.187818]
F["Mg2+"]["C"] = 0.058851
F["Al3+"]["A"] = [4.132015, 0.912049, 1.102425, 0.614876, 3.219136]
F["Al3+"]["B"] = [3.528641, 7.378344, 0.133708, 0.039065, 1.644728]
F["Al3+"]["C"] = 0.019397
F["Sival"]["A"] = [2.879033, 3.072960, 1.515981, 1.390030, 4.995051]
F["Sival"]["B"] = [1.239713, 38.706276, 0.081481, 93.616333, 2.770293]
F["Sival"]["C"] = 0.14603
F["Si4+"]["A"] = [3.676722, 3.828496, 1.258033, 0.419024, 0.720421]
F["Si4+"]["B"] = [1.446851, 3.013144, 0.064397, 0.206254, 5.970222]
F["Si4+"]["C"] = 0.097266
F["Cl1-"]["A"] = [1.061802, 7.139886, 6.524271, 2.355626, 35.829403]
F["Cl1-"]["B"] = [0.144727, 1.171795, 19.467655, 60.320301, 0.000436]
F["Cl1-"]["C"] = -34.916603
F["K1+"]["A"] = [17.609339, 1.494873, 7.150305, 10.899569, 15.808228]
F["K1+"]["B"] = [18.840979, 0.053453, 0.812940, 22.264105, 14.351593]
F["K1+"]["C"] = 0.257164
F["Ca2+"]["A"] = [8.501441, 12.880483, 9.765095, 7.156669, 0.711160]
F["Ca2+"]["B"] = [10.525848, -0.004033, 0.010692, 0.684443, 27.231771]
F["Ca2+"]["C"] = -21.013187
F["Sc3+"]["A"] = [7.104348, 1.511488, -53.669773, 38.404816, 24.532240]
F["Sc3+"]["B"] = [0.601957, 0.033386, 12.572138, 10.859736, 14.125230]
F["Sc3+"]["C"] = 0.118642
F["Ti2+"]["A"] = [7.040119, 1.496285, 9.657304, 0.006534, 1.649561]
F["Ti2+"]["B"] = [0.537072, 0.031914, 8.009958, 201.800293, 24.039482]
F["Ti2+"]["C"] = 0.150362
F["Ti3+"]["A"] = [36.587933, 7.230255, -9.086077, 2.084594, 17.294008]
F["Ti3+"]["B"] = [0.000681, 0.522262, 5.262317, 15.881716, 6.149805]
F["Ti3+"]["C"] = -35.111282
F["Ti4+"]["A"] = [45.355537, 7.092900, 7.483858, -43.498817, 1.678915]
F["Ti4+"]["B"] = [9.252186, 0.523046, 13.082852, 10.193876, 0.023064]
F["Ti4+"]["C"] = -0.110628
F["V2+"]["A"] = [7.754356, 2.064100, 2.576998, 2.011404, 7.126177]
F["V2+"]["B"] = [7.066315, 0.014993, 7.066308, 22.055786, 0.467568]
F["V2+"]["C"] = -0.533379
F["V3+"]["A"] = [9.958480, 1.596350, 1.483442, -10.846044, 17.332867]
F["V3+"]["B"] = [6.763041, 0.056895, 17.750029, 0.328826, 0.388013]
F["V3+"]["C"] = 0.474921
F["V5+"]["A"] = [15.575018, 8.448095, 1.612040, -9.721855, 1.534029]
F["V5+"]["B"] = [0.682708, 5.566640, 10.527077, 0.907961, 0.066667]
F["V5+"]["C"] = 0.552676
F["Cr2+"]["A"] = [10.598877, 1.565858, 2.728280, 0.098064, 6.959321]
F["Cr2+"]["B"] = [6.151846, 0.023519, 17.432816, 54.002388, 0.426301]
F["Cr2+"]["C"] = 0.04987
F["Cr3+"]["A"] = [7.989310, 1.765079, 2.627125, 1.829380, 6.980908]
F["Cr3+"]["B"] = [6.068867, 0.018342, 6.068887, 16.309284, 0.420864]
F["Cr3+"]["C"] = -0.192123
F["Mn2+"]["A"] = [11.287712, 26.042414, 3.058096, 0.090258, 7.088306]
F["Mn2+"]["B"] = [5.506225, 0.000774, 16.158575, 54.766354, 0.375580]
F["Mn2+"]["C"] = -24.566132
F["Mn3+"]["A"] = [6.926972, 2.081342, 11.128379, 2.375107, -0.419287]
F["Mn3+"]["B"] = [0.378315, 0.015054, 5.379957, 14.429586, 0.004939]
F["Mn3+"]["C"] = -0.093713
F["Mn4+"]["A"] = [12.409131, 7.466993, 1.809947, -12.138477, 10.780248]
F["Mn4+"]["B"] = [0.300400, 0.112814, 12.520756, 0.168653, 5.173237]
F["Mn4+"]["C"] = 0.672146
F["Fe2+"]["A"] = [11.776765, 11.165097, 3.533495, 0.165345, 7.036932]
F["Fe2+"]["B"] = [4.912232, 0.001748, 14.166556, 42.381958, 0.341324]
F["Fe2+"]["C"] = -9.676919
F["Fe3+"]["A"] = [9.721638, 63.403847, 2.141347, 2.629274, 7.033846]
F["Fe3+"]["B"] = [4.869297, 0.000293, 4.867602, 13.539076, 0.338520]
F["Fe3+"]["C"] = -61.930725
F["Co2+"]["A"] = [6.993840, 26.285812, 12.254289, 0.246114, 4.017407]
F["Co2+"]["B"] = [0.310779, 0.000684, 4.400528, 35.741447, 12.536393]
F["Co2+"]["C"] = -24.796852
F["Co3+"]["A"] = [6.861739, 2.678570, 12.281889, 3.501741, -0.179384]
F["Co3+"]["B"] = [0.309794, 0.008142, 4.331703, 11.914167, 11.914167]
F["Co3+"]["C"] = -1.147345
F["Ni2+"]["A"] = [12.519017, 37.832058, 4.387257, 0.661552, 6.949072]
F["Ni2+"]["B"] = [3.933053, 0.000442, 10.449184, 23.860998, 0.283723]
F["Ni2+"]["C"] = -36.344471
F["Ni3+"]["A"] = [13.579366, 1.902844, 12.859268, 3.811005, -6.838595]
F["Ni3+"]["B"] = [0.313140, 0.012621, 3.906407, 10.894311, 0.344379]
F["Ni3+"]["C"] = -0.317618
F["Cu1+"]["A"] = [12.960763, 16.342150, 1.110102, 5.520682, 6.915452]
F["Cu1+"]["B"] = [3.576010, 0.000975, 29.523218, 10.114283, 0.261326]
F["Cu1+"]["C"] = -14.84932
F["Cu2+"]["A"] = [11.895569, 16.344978, 5.799817, 1.048804, 6.789088]
F["Cu2+"]["B"] = [3.378519, 0.000924, 8.133653, 20.526524, 0.254741]
F["Cu2+"]["C"] = -14.878383
F["Zn2+"]["A"] = [13.340772, 10.428857, 5.544489, 0.762295, 6.869172]
F["Zn2+"]["B"] = [3.215913, 0.001413, 8.542680, 21.891756, 0.239215]
F["Zn2+"]["C"] = -8.945248
F["Ga3+"]["A"] = [13.123875, 35.288189, 6.126979, 0.611551, 6.724807]
F["Ga3+"]["B"] = [2.809960, 0.000323, 6.831534, 16.784311, 0.212002]
F["Ga3+"]["C"] = -33.875122
F["Ge4+"]["A"] = [6.876636, 6.779091, 9.969591, 3.135857, 0.152389]
F["Ge4+"]["B"] = [2.025174, 0.176650, 3.573822, 7.685848, 16.677574]
F["Ge4+"]["C"] = 1.086542
F["Br1-"]["A"] = [17.714310, 6.466926, 6.947385, 4.402674, -0.697279]
F["Br1-"]["B"] = [2.122554, 19.050768, 0.152708, 58.690361, 58.690372]
F["Br1-"]["C"] = 1.152674
F["Rb1+"]["A"] = [17.684320, 7.761588, 6.680874, 2.668883, 0.070974]
F["Rb1+"]["B"] = [1.710209, 14.919863, 0.128542, 31.654478, 0.128543]
F["Rb1+"]["C"] = 1.133263
F["Sr2+"]["A"] = [17.694973, 1.275762, 6.154252, 9.234786, 0.515995]
F["Sr2+"]["B"] = [1.550888, 30.133041, 0.118774, 13.821799, 0.118774]
F["Sr2+"]["C"] = 1.125309
F["Y3+"]["A"] = [46.660366, 10.369686, 4.623042, -62.170834, 17.471146]
F["Y3+"]["B"] = [-0.019971, 13.180257, 0.176398, -0.016727, 1.467348]
F["Y3+"]["C"] = 19.023842
F["Zr4+"]["A"] = [6.802956, 17.699253, 10.650647, -0.248108, 0.250338]
F["Zr4+"]["B"] = [0.096228, 1.296127, 11.240715, -0.219259, -0.219021]
F["Zr4+"]["C"] = 0.827902
F["Nb3+"]["A"] = [17.714323, 1.675213, 7.483963, 8.322464, 11.143573]
F["Nb3+"]["B"] = [1.172419, 30.102791, 0.080255, -0.002983, 10.456687]
F["Nb3+"]["C"] = -8.339573
F["Nb5+"]["A"] = [17.580206, 7.633277, 10.793497, 0.180884, 67.837921]
F["Nb5+"]["B"] = [1.165852, 0.078558, 9.507652, 31.621656, -0.000438]
F["Nb5+"]["C"] = -68.02478
F["Mo3+"]["A"] = [7.447050, 17.778122, 11.886068, 1.997905, 1.789626]
F["Mo3+"]["B"] = [0.072000, 1.073145, 9.834720, 28.221746, -0.011674]
F["Mo3+"]["C"] = -1.898764
F["Mo5+"]["A"] = [7.929879, 17.667669, 11.515987, 0.500402, 77.444084]
F["Mo5+"]["B"] = [0.068856, 1.068064, 9.046229, 26.558945, -0.000473]
F["Mo5+"]["C"] = -78.056595
F["Mo6+"]["A"] = [34.757683, 9.653037, 6.584769, -18.628115, 2.490594]
F["Mo6+"]["B"] = [1.301770, 7.123843, 0.094097, 1.617443, 12.335434]
F["Mo6+"]["C"] = 1.141916
F["Ru3+"]["A"] = [17.894758, 13.579529, 10.729251, 2.474095, 48.227997]
F["Ru3+"]["B"] = [0.902827, 8.740579, 0.045125, 24.764954, -0.001699]
F["Ru3+"]["C"] = -51.905243
F["Ru4+"]["A"] = [17.845776, 13.455084, 10.229087, 1.653524, 14.059795]
F["Ru4+"]["B"] = [0.901070, 8.482392, 0.045972, 23.015272, -0.004889]
F["Ru4+"]["C"] = -17.241762
F["Rh3+"]["A"] = [17.758621, 14.569813, 5.298320, 2.533579, 0.879753]
F["Rh3+"]["B"] = [0.841779, 8.319533, 0.069050, 23.709131, 0.069050]
F["Rh3+"]["C"] = 0.960843
F["Rh4+"]["A"] = [17.716188, 14.446654, 5.185801, 1.703448, 0.989992]
F["Rh4+"]["B"] = [0.840572, 8.100647, 0.068995, 22.357307, 0.068995]
F["Rh4+"]["C"] = 0.959941
F["Pd2+"]["A"] = [6.122282, 15.651012, 3.513508, 9.060790, 8.771199]
F["Pd2+"]["B"] = [0.062424, 8.018296, 24.784275, 0.776457, 0.776457]
F["Pd2+"]["C"] = 0.879336
F["Pd4+"]["A"] = [6.152421, -96.069023, 31.622141, 81.578255, 17.801403]
F["Pd4+"]["B"] = [0.063951, 11.090354, 13.466152, 9.758302, 0.783014]
F["Pd4+"]["C"] = 0.915874
F["Ag1+"]["A"] = [6.091192, 4.019526, 16.948174, 4.258638, 13.889437]
F["Ag1+"]["B"] = [0.056305, 0.719340, 7.758938, 27.368349, 0.719340]
F["Ag1+"]["C"] = 0.785127
F["Ag2+"]["A"] = [6.401808, 48.699802, 4.799859, -32.332523, 16.356710]
F["Ag2+"]["B"] = [0.068167, 0.942270, 20.639496, 1.100365, 6.883131]
F["Ag2+"]["C"] = 1.068247
F["Cd2+"]["A"] = [6.093711, 43.909691, 17.041306, -39.675117, 17.958918]
F["Cd2+"]["B"] = [0.050624, 8.654143, 15.621396, 11.082067, 0.667591]
F["Cd2+"]["C"] = 0.664795
F["In3+"]["A"] = [6.206277, 18.497746, 3.078131, 10.524613, 7.401234]
F["In3+"]["B"] = [0.041357, 6.605563, 18.792250, 0.608082, 0.608082]
F["In3+"]["C"] = 0.293677
F["Sn2+"]["A"] = [6.353672, 4.770377, 14.672025, 4.235959, 18.002131]
F["Sn2+"]["B"] = [0.034720, 6.167891, 6.167879, 29.006456, 0.561774]
F["Sn2+"]["C"] = -0.042519
F["Sn4+"]["A"] = [15.445732, 6.420892, 4.562980, 1.713385, 18.033537]
F["Sn4+"]["B"] = [6.280898, 0.033144, 6.280899, 17.983601, 0.557980]
F["Sn4+"]["C"] = -0.172219
F["Sb3+"]["A"] = [10.189171, 57.461918, 19.356573, 4.862206, -45.394096]
F["Sb3+"]["B"] = [0.089485, 0.375256, 5.357987, 22.153736, 0.297768]
F["Sb3+"]["C"] = 1.516108
F["Sb5+"]["A"] = [17.920622, 6.647932, 12.724075, 1.555545, 7.600591]
F["Sb5+"]["B"] = [0.522315, 0.029487, 5.718210, 16.433775, 5.718204]
F["Sb5+"]["C"] = -0.445371
F["I1-"]["A"] = [20.010330, 17.835524, 8.104130, 2.231118, 9.158548]
F["I1-"]["B"] = [4.565931, 0.444266, 32.430672, 95.149040, 0.014906]
F["I1-"]["C"] = -3.341004
F["Cs1+"]["A"] = [19.939056, 24.967621, 10.375884, 0.454243, 17.660248]
F["Cs1+"]["B"] = [3.770511, 0.004040, 25.311275, 76.537766, 0.384730]
F["Cs1+"]["C"] = -19.394306
F["Ba2+"]["A"] = [19.750200, 17.513683, 10.884892, 0.321585, 65.149834]
F["Ba2+"]["B"] = [3.430748, 0.361590, 21.358307, 70.309402, 0.001418]
F["Ba2+"]["C"] = -59.618172
F["La3+"]["A"] = [19.688887, 17.345703, 11.356296, 0.099418, 82.358124]
F["La3+"]["B"] = [3.146211, 0.339586, 18.753832, 90.345459, 0.001072]
F["La3+"]["C"] = -76.846909
F["Ce3+"]["A"] = [26.593231, 85.866432, -6.677695, 12.111847, 17.401903]
F["Ce3+"]["B"] = [3.280381, 0.001012, 4.313575, 17.868504, 0.326962]
F["Ce3+"]["C"] = -80.313423
F["Ce4+"]["A"] = [17.457533, 25.659941, 11.691037, 19.695251, -16.994749]
F["Ce4+"]["B"] = [0.311812, -0.003793, 16.568687, 2.886395, -0.008931]
F["Ce4+"]["C"] = -3.515096
F["Pr3+"]["A"] = [20.879841, 36.035797, 12.135341, 0.283103, 17.167803]
F["Pr3+"]["B"] = [2.870897, 0.002364, 16.615236, 53.909359, 0.306993]
F["Pr3+"]["C"] = -30.500784
F["Pr4+"]["A"] = [17.496082, 21.538509, 20.403114, 12.062211, -7.492043]
F["Pr4+"]["B"] = [0.294457, -0.002742, 2.772886, 15.804613, -0.013556]
F["Pr4+"]["C"] = -9.016722
F["Nd3+"]["A"] = [17.120077, 56.038139, 21.468307, 10.000671, 2.905866]
F["Nd3+"]["B"] = [0.291295, 0.001421, 2.743681, 14.581367, 22.485098]
F["Nd3+"]["C"] = -50.541992
F["Pm3+"]["A"] = [22.221066, 17.068142, 12.805423, 0.435687, 52.238770]
F["Pm3+"]["B"] = [2.635767, 0.277039, 14.927315, 45.768017, 0.001455]
F["Pm3+"]["C"] = -46.767181
F["Sm3+"]["A"] = [15.618565, 19.538092, 13.398946, -4.358811, 24.490461]
F["Sm3+"]["B"] = [0.006001, 0.306379, 14.979594, 0.748825, 2.454492]
F["Sm3+"]["C"] = -9.714854
F["Eu2+"]["A"] = [23.899035, 31.657497, 12.955752, 1.700576, 16.992199]
F["Eu2+"]["B"] = [2.467332, 0.002230, 13.625002, 35.089481, 0.253136]
F["Eu2+"]["C"] = -26.204315
F["Eu3+"]["A"] = [17.758327, 33.498665, 24.067188, 13.436883, -9.019134]
F["Eu3+"]["B"] = [0.244474, -0.003901, 2.487526, 14.568011, -0.015628]
F["Eu3+"]["C"] = -19.768026
F["Gd3+"]["A"] = [24.344999, 16.945311, 13.866931, 0.481674, 93.506378]
F["Gd3+"]["B"] = [2.333971, 0.239215, 12.982995, 43.876347, 0.000673]
F["Gd3+"]["C"] = -88.147179
F["Tb3+"]["A"] = [24.878252, 16.856016, 13.663937, 1.279671, 39.271294]
F["Tb3+"]["B"] = [2.223301, 0.227290, 11.812528, 29.910065, 0.001527]
F["Tb3+"]["C"] = -33.950317
F["Dy3+"]["A"] = [16.864344, 90.383461, 13.675473, 1.687078, 25.540651]
F["Dy3+"]["B"] = [0.216275, 0.000593, 11.121207, 26.250975, 2.135930]
F["Dy3+"]["C"] = -85.15065
F["Ho3+"]["A"] = [16.837524, 63.221336, 13.703766, 2.061602, 26.202621]
F["Ho3+"]["B"] = [0.206873, 0.000796, 10.500283, 24.031883, 2.055060]
F["Ho3+"]["C"] = -58.026505
F["Er3+"]["A"] = [16.810127, 22.681061, 13.864114, 2.294506, 26.864477]
F["Er3+"]["B"] = [0.198293, 0.002126, 9.973341, 22.836388, 1.979442]
F["Er3+"]["C"] = -17.51346
F["Tm3+"]["A"] = [16.787500, 15.350905, 14.182357, 2.299111, 27.573771]
F["Tm3+"]["B"] = [0.190852, 0.003036, 9.602934, 22.526880, 1.912862]
F["Tm3+"]["C"] = -10.192087
F["Yb2+"]["A"] = [28.443794, 16.849527, 14.165081, 3.445311, 28.308853]
F["Yb2+"]["B"] = [1.863896, 0.183811, 9.225469, 23.691355, 0.001463]
F["Yb2+"]["C"] = -23.214935
F["Yb3+"]["A"] = [28.191629, 16.828087, 14.167848, 2.744962, 23.171774]
F["Yb3+"]["B"] = [1.842889, 0.182788, 9.045957, 20.799847, 0.001759]
F["Yb3+"]["C"] = -18.103676
F["Lu3+"]["A"] = [28.828693, 16.823227, 14.247617, 3.079559, 25.647667]
F["Lu3+"]["B"] = [1.776641, 0.175560, 8.575531, 19.693701, 0.001453]
F["Lu3+"]["C"] = -20.626528
F["Hf4+"]["A"] = [29.267378, 16.792543, 14.785310, 2.184128, 23.791996]
F["Hf4+"]["B"] = [1.697911, 0.168313, 8.190025, 18.277578, 0.001431]
F["Hf4+"]["C"] = -18.820383
F["Ta5+"]["A"] = [29.539469, 16.741854, 15.182070, 1.642916, 16.437447]
F["Ta5+"]["B"] = [1.612934, 0.160460, 7.654408, 17.070732, 0.001858]
F["Ta5+"]["C"] = -11.542459
F["W6+"]["A"] = [29.729357, 17.247808, 15.184488, 1.154652, 0.739335]
F["W6+"]["B"] = [1.501648, 0.140803, 6.880573, 14.299601, 14.299618]
F["W6+"]["C"] = 3.945157
F["Os4+"]["A"] = [17.113485, 15.792370, 23.342392, 4.090271, 7.671292]
F["Os4+"]["B"] = [0.131850, 7.288542, 1.389307, 19.629425, 1.389307]
F["Os4+"]["C"] = 3.98839
F["Ir3+"]["A"] = [31.537575, 16.363338, 15.597141, 5.051404, 1.436935]
F["Ir3+"]["B"] = [1.334144, 7.451918, 0.127514, 21.705648, 0.127515]
F["Ir3+"]["C"] = 4.009459
F["Ir4+"]["A"] = [30.391249, 16.146996, 17.019068, 4.458904, 0.975372]
F["Ir4+"]["B"] = [1.328519, 7.181766, 0.127337, 19.060146, 1.328519]
F["Ir4+"]["C"] = 4.006865
F["Pt2+"]["A"] = [31.986849, 17.249048, 15.269374, 5.760234, 1.694079]
F["Pt2+"]["B"] = [1.281143, 7.625512, 0.123571, 24.190826, 0.123571]
F["Pt2+"]["C"] = 4.032512
F["Pt4+"]["A"] = [41.932713, 16.339224, 17.653894, 6.012420, -12.036877]
F["Pt4+"]["B"] = [1.111409, 6.466086, 0.128917, 16.954155, 0.778721]
F["Pt4+"]["C"] = 4.094551
F["Au1+"]["A"] = [32.124306, 16.716476, 16.814100, 7.311565, 0.993064]
F["Au1+"]["B"] = [1.216073, 7.165378, 0.118715, 20.442486, 53.095985]
F["Au1+"]["C"] = 4.040792
F["Au3+"]["A"] = [31.704271, 17.545767, 16.819551, 5.522640, 0.361725]
F["Au3+"]["B"] = [1.215561, 7.220506, 0.118812, 20.050970, 1.215562]
F["Au3+"]["C"] = 4.042679
F["Hg1+"]["A"] = [28.866837, 19.277540, 16.776051, 6.281459, 3.710289]
F["Hg1+"]["B"] = [1.173967, 7.583842, 0.115351, 29.055994, 1.173968]
F["Hg1+"]["C"] = 4.06843
F["Hg2+"]["A"] = [32.411079, 18.690371, 16.711773, 9.974835, -3.847611]
F["Hg2+"]["B"] = [1.162980, 7.329806, 0.114518, 22.009489, 22.009493]
F["Hg2+"]["C"] = 4.052869
F["Tl1+"]["A"] = [32.295044, 16.570049, 17.991013, 1.535355, 7.554591]
F["Tl1+"]["B"] = [1.101544, 0.110020, 6.528559, 52.495068, 20.338634]
F["Tl1+"]["C"] = 4.05403
F["Tl3+"]["A"] = [32.525639, 19.139185, 17.100321, 5.891115, 12.599463]
F["Tl3+"]["B"] = [1.094966, 6.900992, 0.103667, 18.489614, -0.001401]
F["Tl3+"]["C"] = -9.256075
F["Pb2+"]["A"] = [27.392647, 16.496822, 19.984501, 6.813923, 5.233910]
F["Pb2+"]["B"] = [1.058874, 0.106305, 6.708123, 24.395554, 1.058874]
F["Pb2+"]["C"] = 4.065623
F["Pb4+"]["A"] = [32.505657, 20.014240, 14.645661, 5.029499, 1.760138]
F["Pb4+"]["B"] = [1.047035, 6.670321, 0.105279, 16.525040, 0.105279]
F["Pb4+"]["C"] = 4.044678
F["Bi3+"]["A"] = [32.461437, 19.438683, 16.302486, 7.322662, 0.431704]
F["Bi3+"]["B"] = [0.997930, 6.038867, 0.101338, 18.371586, 46.361046]
F["Bi3+"]["C"] = 4.043703
F["Bi5+"]["A"] = [16.734028, 20.580494, 9.452623, 61.155834, -34.041023]
F["Bi5+"]["B"] = [0.105076, 4.773282, 11.762162, 1.211775, 1.619408]
F["Bi5+"]["C"] = 4.113663
F["Ra2+"]["A"] = [4.986228, 32.474945, 21.947443, 11.800013, 10.807292]
F["Ra2+"]["B"] = [0.082597, 0.791468, 4.608034, 24.792431, 0.082597]
F["Ra2+"]["C"] = 3.956572
F["Ac3+"]["A"] = [15.584983, 32.022125, 21.456327, 0.757593, 12.341252]
F["Ac3+"]["B"] = [0.077438, 0.739963, 4.040735, 47.525002, 19.406845]
F["Ac3+"]["C"] = 3.838984
F["Th4+"]["A"] = [15.515445, 32.090691, 13.996399, 12.918157, 7.635514]
F["Th4+"]["B"] = [0.074499, 0.711663, 3.871044, 18.596891, 3.871044]
F["Th4+"]["C"] = 3.831122
F["U3+"]["A"] = [15.360309, 32.395657, 21.961290, 1.325894, 14.251453]
F["U3+"]["B"] = [0.067815, 0.654643, 3.643409, 39.604965, 16.330570]
F["U3+"]["C"] = 3.706622
F["U4+"]["A"] = [15.355091, 32.235306, 0.557745, 14.396367, 21.751173]
F["U4+"]["B"] = [0.067789, 0.652613, 42.354237, 15.908239, 3.553231]
F["U4+"]["C"] = 3.705863
F["U6+"]["A"] = [15.333844, 31.770849, 21.274414, 13.872636, 0.048519]
F["U6+"]["B"] = [0.067644, 0.646384, 3.317894, 14.650250, 75.339699]
F["U6+"]["C"] = 3.700591
F["Np3+"]["A"] = [15.378152, 32.572132, 22.206125, 1.413295, 14.828381]
F["Np3+"]["B"] = [0.064613, 0.631420, 3.561936, 37.875511, 15.546129]
F["Np3+"]["C"] = 3.60337
F["Np4+"]["A"] = [15.373926, 32.423019, 21.969994, 0.662078, 14.969350]
F["Np4+"]["B"] = [0.064597, 0.629658, 3.476389, 39.438942, 15.135764]
F["Np4+"]["C"] = 3.603039
F["Np6+"]["A"] = [15.359986, 31.992825, 21.412458, 0.066574, 14.568174]
F["Np6+"]["B"] = [0.064528, 0.624505, 3.253441, 67.658318, 13.980832]
F["Np6+"]["C"] = 3.600942
F["Pu3+"]["A"] = [15.356004, 32.769127, 22.680210, 1.351055, 15.416232]
F["Pu3+"]["B"] = [0.060590, 0.604663, 3.491509, 37.260635, 14.981921]
F["Pu3+"]["C"] = 3.428895
F["Pu4+"]["A"] = [15.416219, 32.610569, 22.256662, 0.719495, 15.518152]
F["Pu4+"]["B"] = [0.061456, 0.607938, 3.411848, 37.628792, 14.464360]
F["Pu4+"]["C"] = 3.480408
F["Pu6+"]["A"] = [15.436506, 32.289719, 14.726737, 15.012391, 7.024677]
F["Pu6+"]["B"] = [0.061815, 0.606541, 3.245363, 13.616438, 3.245364]
F["Pu6+"]["C"] = 3.502325
elems = """ H 1H 2H 3H He 4He Li 7Li Be B 11B C 12C 13C N 14N 15N O 16O 17O
18O F Ne 20Ne 21Ne 22Ne Na Mg 24Mg 25Mg 26Mg Al Si 28Si 29Si 30Si P S
32S 33S 34S 36S Cl 35Cl 37Cl Ar 36Ar 38Ar 40Ar K 39K 40K 41K Ca 40Ca
42Ca 43Ca 44Ca 46Ca 48Ca Sc Ti 46Ti 47Ti 48Ti 49Ti 50Ti V 50V 51V Cr
50Cr 52Cr 53Cr 54Cr Mn Fe 54Fe 56Fe 57Fe 58Fe Co Ni 58Ni 60Ni 61Ni
62Ni 64Ni Cu 63Cu 65Cu Zn 64Zn 66Zn 67Zn 68Zn 70Zn Ga 69Ga 71Ga Ge
70Ge 72Ge 73Ge 74Ge 76Ge As Se 74Se 76Se 77Se 78Se 80Se 82Se Br 79Br
81Br Kr 86Kr Rb 85Rb 87Rb Sr 84Sr 86Sr 87Sr 88Sr Y Zr 90Zr 91Zr 92Zr
94Zr 96Zr Nb Mo 92Mo 94Mo 95Mo 96Mo 97Mo 98Mo 100Mo Ru Rh Pd 102Pd
104Pd 105Pd 106Pd 108Pd 110Pd Ag 107Ag 109Ag 106Cd 108Cd 110Cd 111Cd
112Cd 114Cd 116Cd 113In Sn 112Sn 114Sn 115Sn 116Sn 117Sn 118Sn 119Sn
120Sn 122Sn 124Sn Sb 121Sb 123Sb Te 120Te 122Te 124Te 125Te 126Te
128Te 130Te I Xe Cs Ba 130Ba 132Ba 134Ba 135Ba 136Ba 137Ba 138Ba La
138La 139La Ce 136Ce 138Ce 140Ce 142Ce Pr Nd 142Nd 143Nd 144Nd 145Nd
146Nd 148Nd 150Nd Pm 144Sm 147Sm 148Sm 150Sm 152Sm 154Sm 153Eu 152Gd
154Gd 156Gd 158Gd 160Gd Tb 156Dy 158Dy 160Dy 161Dy 162Dy 163Dy Ho Er
162Er 164Er 166Er 167Er 168Er 170Er Tm Yb 170Yb 171Yb 172Yb 173Yb
174Yb 176Yb Lu 175Lu Hf 174Hf 176Hf 177Hf 178Hf 179Hf 180Hf Ta 180Ta
181Ta W 180W 182W 183W 184W 186W Re 185Re 187Re Os 184Os 186Os 187Os
188Os 189Os 190Os 192Os Ir Pt 190Pt 192Pt 194Pt 195Pt 196Pt 198Pt Au
Hg 196Hg 199Hg Tl 203Tl 205Tl Pb 204Pb 206Pb 207Pb 208Pb Bi Ra Th U
233U 234U 235U 238U 238Pu 239Pu 240Pu 242Pu Am 244Cm 246Cm 248Cm"""
ND = {}
ND["H"] = -3.7390
ND["1H"] = -3.7406
ND["2H"] = 6.671
ND["3H"] = -1.04
ND["He"] = 3.26
ND["4He"] = 3.26
ND["Li"] = -1.90
ND["7Li"] = -2.22
ND["Be"] = 7.79
ND["B"] = 6.65
ND["11B"] = 6.65
ND["C"] = 6.6460
ND["12C"] = 6.6511
ND["13C"] = 6.19
ND["N"] = 9.36
ND["14N"] = 9.37
ND["15N"] = 6.44
ND["O"] = 5.803
ND["16O"] = 5.803
ND["17O"] = 5.78
ND["18O"] = 5.84
ND["F"] = 5.654
ND["Ne"] = 4.566
ND["20Ne"] = 4.631
ND["21Ne"] = 6.66
ND["22Ne"] = 3.87
ND["Na"] = 3.63
ND["Mg"] = 5.375
ND["24Mg"] = 5.66
ND["25Mg"] = 3.62
ND["26Mg"] = 4.89
ND["Al"] = 3.449
ND["Si"] = 4.1491
ND["28Si"] = 4.107
ND["29Si"] = 4.70
ND["30Si"] = 4.58
ND["P"] = 5.13
ND["S"] = 2.847
ND["32S"] = 2.804
ND["33S"] = 4.74
ND["34S"] = 3.48
ND["36S"] = 3.
ND["Cl"] = 9.5770
ND["35Cl"] = 11.65
ND["37Cl"] = 3.08
ND["Ar"] = 1.909
ND["36Ar"] = 24.90
ND["38Ar"] = 3.5
ND["40Ar"] = 1.830
ND["K"] = 3.67
ND["39K"] = 3.74
ND["40K"] = 3.
ND["41K"] = 2.69
ND["Ca"] = 4.70
ND["40Ca"] = 4.80
ND["42Ca"] = 3.36
ND["43Ca"] = -1.56
ND["44Ca"] = 1.42
ND["46Ca"] = 3.6
ND["48Ca"] = 0.39
ND["Sc"] = 12.29
ND["Ti"] = -3.438
ND["46Ti"] = 4.93
ND["47Ti"] = 3.63
ND["48Ti"] = -6.08
ND["49Ti"] = 1.04
ND["50Ti"] = 6.18
ND["V"] = -0.3824
ND["50V"] = 7.6
ND["51V"] = -0.402
ND["Cr"] = 3.635
ND["50Cr"] = -4.50
ND["52Cr"] = 4.920
ND["53Cr"] = -4.20
ND["54Cr"] = 4.55
ND["Mn"] = -3.73
ND["Fe"] = 9.45
ND["54Fe"] = 4.2
ND["56Fe"] = 9.94
ND["57Fe"] = 2.3
ND["58Fe"] = 15.
ND["Co"] = 2.49
ND["Ni"] = 10.3
ND["58Ni"] = 14.4
ND["60Ni"] = 2.8
ND["61Ni"] = 7.60
ND["62Ni"] = -8.7
ND["64Ni"] = -0.37
ND["Cu"] = 7.718
ND["63Cu"] = 6.43
ND["65Cu"] = 10.61
ND["Zn"] = 5.680
ND["64Zn"] = 5.22
ND["66Zn"] = 5.97
ND["67Zn"] = 7.56
ND["68Zn"] = 6.03
ND["70Zn"] = 6.
ND["Ga"] = 7.288
ND["69Ga"] = 7.88
ND["71Ga"] = 6.40
ND["Ge"] = 8.185
ND["70Ge"] = 10.0
ND["72Ge"] = 8.51
ND["73Ge"] = 5.02
ND["74Ge"] = 7.58
ND["76Ge"] = 8.2
ND["As"] = 6.58
ND["Se"] = 7.970
ND["74Se"] = 0.8
ND["76Se"] = 12.2
ND["77Se"] = 8.25
ND["78Se"] = 8.24
ND["80Se"] = 7.48
ND["82Se"] = 6.34
ND["Br"] = 6.795
ND["79Br"] = 6.80
ND["81Br"] = 6.79
ND["Kr"] = 7.81
ND["86Kr"] = 8.1
ND["Rb"] = 7.09
ND["85Rb"] = 7.03
ND["87Rb"] = 7.23
ND["Sr"] = 7.02
ND["84Sr"] = 7.
ND["86Sr"] = 5.67
ND["87Sr"] = 7.40
ND["88Sr"] = 7.15
ND["Y"] = 7.75
ND["Zr"] = 7.16
ND["90Zr"] = 6.4
ND["91Zr"] = 8.7
ND["92Zr"] = 7.4
ND["94Zr"] = 8.2
ND["96Zr"] = 5.5
ND["Nb"] = 7.054
ND["Mo"] = 6.715
ND["92Mo"] = 6.91
ND["94Mo"] = 6.80
ND["95Mo"] = 6.91
ND["96Mo"] = 6.20
ND["97Mo"] = 7.24
ND["98Mo"] = 6.58
ND["100Mo"] = 6.73
ND["Ru"] = 7.03
ND["Rh"] = 5.88
ND["Pd"] = 5.91
ND["102Pd"] = 7.7
ND["104Pd"] = 7.7
ND["105Pd"] = 5.5
ND["106Pd"] = 6.4
ND["108Pd"] = 4.1
ND["110Pd"] = 7.7
ND["Ag"] = 5.922
ND["107Ag"] = 7.555
ND["109Ag"] = 4.165
ND["106Cd"] = 5.
ND["108Cd"] = 5.4
ND["110Cd"] = 5.9
ND["111Cd"] = 6.5
ND["112Cd"] = 6.4
ND["114Cd"] = 7.5
ND["116Cd"] = 6.3
ND["113In"] = 5.39
ND["Sn"] = 6.225
ND["112Sn"] = 6.
ND["114Sn"] = 6.2
ND["115Sn"] = 6.
ND["116Sn"] = 5.93
ND["117Sn"] = 6.48
ND["118Sn"] = 6.07
ND["119Sn"] = 6.12
ND["120Sn"] = 6.49
ND["122Sn"] = 5.74
ND["124Sn"] = 5.97
ND["Sb"] = 5.57
ND["121Sb"] = 5.71
ND["123Sb"] = 5.38
ND["Te"] = 5.80
ND["120Te"] = 5.3
ND["122Te"] = 3.8
ND["124Te"] = 7.96
ND["125Te"] = 5.02
ND["126Te"] = 5.56
ND["128Te"] = 5.89
ND["130Te"] = 6.02
ND["I"] = 5.28
ND["Xe"] = 4.92
ND["Cs"] = 5.42
ND["Ba"] = 5.07
ND["130Ba"] = -3.6
ND["132Ba"] = 7.8
ND["134Ba"] = 5.7
ND["135Ba"] = 4.67
ND["136Ba"] = 4.91
ND["137Ba"] = 6.83
ND["138Ba"] = 4.84
ND["La"] = 8.24
ND["138La"] = 8.
ND["139La"] = 8.24
ND["Ce"] = 4.84
ND["136Ce"] = 5.80
ND["138Ce"] = 6.70
ND["140Ce"] = 4.84
ND["142Ce"] = 4.75
ND["Pr"] = 4.58
ND["Nd"] = 7.69
ND["142Nd"] = 7.7
ND["143Nd"] = 14.
ND["144Nd"] = 2.8
ND["145Nd"] = 14.
ND["146Nd"] = 8.7
ND["148Nd"] = 5.7
ND["150Nd"] = 5.3
ND["Pm"] = 3.2
ND["144Sm"] = -3.
ND["147Sm"] = 14.
ND["148Sm"] = -3.
ND["150Sm"] = 14.
ND["152Sm"] = -5.0
ND["154Sm"] = 9.3
ND["153Eu"] = 8.22
ND["152Gd"] = 10.
ND["154Gd"] = 10.
ND["156Gd"] = 6.3
ND["158Gd"] = 9.
ND["160Gd"] = 9.15
ND["Tb"] = 7.38
ND["156Dy"] = 6.1
ND["158Dy"] = 6.
ND["160Dy"] = 6.7
ND["161Dy"] = 10.3
ND["162Dy"] = -1.4
ND["163Dy"] = 5.0
ND["Ho"] = 8.01
ND["Er"] = 7.79
ND["162Er"] = 8.8
ND["164Er"] = 8.2
ND["166Er"] = 10.6
ND["167Er"] = 3.0
ND["168Er"] = 7.4
ND["170Er"] = 9.6
ND["Tm"] = 7.07
ND["Yb"] = 12.43
ND["170Yb"] = 6.77
ND["171Yb"] = 9.66
ND["172Yb"] = 9.43
ND["173Yb"] = 9.56
ND["174Yb"] = 19.3
ND["176Yb"] = 8.72
ND["Lu"] = 7.21
ND["175Lu"] = 7.24
ND["Hf"] = 7.7
ND["174Hf"] = 10.9
ND["176Hf"] = 6.61
ND["177Hf"] = 0.8
ND["178Hf"] = 5.9
ND["179Hf"] = 7.46
ND["180Hf"] = 13.2
ND["Ta"] = 6.91
ND["180Ta"] = 7.
ND["181Ta"] = 6.91
ND["W"] = 4.86
ND["180W"] = 5.
ND["182W"] = 6.97
ND["183W"] = 6.53
ND["184W"] = 7.48
ND["186W"] = -0.72
ND["Re"] = 9.2
ND["185Re"] = 9.0
ND["187Re"] = 9.3
ND["Os"] = 10.7
ND["184Os"] = 10.
ND["186Os"] = 11.6
ND["187Os"] = 10.
ND["188Os"] = 7.6
ND["189Os"] = 10.7
ND["190Os"] = 11.0
ND["192Os"] = 11.5
ND["Ir"] = 10.6
ND["Pt"] = 9.60
ND["190Pt"] = 9.0
ND["192Pt"] = 9.9
ND["194Pt"] = 10.55
ND["195Pt"] = 8.83
ND["196Pt"] = 9.89
ND["198Pt"] = 7.8
ND["Au"] = 7.63
ND["Hg"] = 12.692
ND["196Hg"] = 30.3
ND["199Hg"] = 16.9
ND["Tl"] = 8.776
ND["203Tl"] = 6.99
ND["205Tl"] = 9.52
ND["Pb"] = 9.405
ND["204Pb"] = 9.90
ND["206Pb"] = 9.22
ND["207Pb"] = 9.28
ND["208Pb"] = 9.50
ND["Bi"] = 8.532
ND["Ra"] = 0
ND["Th"] = 10.31
ND["U"] = 8.417
ND["233U"] = 1.
ND["234U"] = 12.4
ND["235U"] = 10.47
ND["238U"] = 8.402
ND["238Pu"] = 0
ND["239Pu"] = 1.3
ND["240Pu"] = 0
ND["242Pu"] = 0
ND["Am"] = 2.
ND["244Cm"] = 0
ND["246Cm"] = 0
ND["248Cm"] = 0
class Data():
def __init__(self, grfile):
self.grfile = grfile
self.bsae, _ = os.path.splitext(grfile)
self.p = pd.DataFrame(columns=["n", "c"])
self.SetData()
self.CalSq()
self.CalTotalSq()
def SetVolume(self, length, angle):
a, b, c = length[0], length[1], length[2]
alpha, beta, gamma = [a*np.pi/180 for a in angle]
c_alpha = np.cos(alpha)
c_beta = np.cos(beta)
c_gamma = np.cos(gamma)
s_alpha = np.sin(alpha)
s_beta = np.sin(beta)
s_gamma = np.sin(gamma)
v1 = [a, 0, 0]
v2 = [b*c_gamma, b*s_gamma, 0]
v3 = [c*c_beta,
c/s_gamma*(c_alpha - c_gamma*c_beta),
c*np.sqrt(1-c_beta**2-1/s_gamma**2 *
(c_alpha - c_gamma*c_beta)**2)]
M = np.array([v1, v2, v3])
self.volume = v1[0] * v2[1] * v3[2]
def SetData(self):
with open(self.grfile) as o:
body = o.read() + "\n"
length = re.search("Box length: \((.+?)\)", body).group(1)
angle = re.search("Box angle: \((.+?)\)", body).group(1)
length = [float(v) for v in length.split()]
angle = [float(v) for v in angle.split()]
self.SetVolume(length, angle)
obj = re.search("# ALL ATOMIC TYPE(.+?)#-----", body, re.DOTALL)
lines = obj.group(1).replace("#", "").strip().split("\n")
for i, line in enumerate(lines):
elem, n = line.replace(":", "").split()
idx = f"{elem}{i}"
self.p.loc[elem, "n"] = int(n)
self.p["c"] = self.p["n"]/self.p["n"].sum()
self.p["rho"] = self.p["n"]/self.volume
self.rho = self.p["n"].sum() / self.volume
data = re.search("# (r.+?)\n\n", body, re.DOTALL)
data = data.group(1)
lines = data.split("\n")
columns = lines[0].split()
data = np.array(" ".join(lines[1:]).split(), dtype=float)
data = data.reshape(-1, len(columns))
self.gr = pd.DataFrame(data, columns=columns)
self.pairs = self.gr.columns[1:-1]
def CalSq(self):
columns = np.append(["Q", "2theta"], self.pairs)
self.sq = pd.DataFrame(columns=columns)
if args.qrange is None:
tmin, tmax = sorted(args.trange)
t = np.linspace(tmin, tmax, args.pnt)
q = 4*np.pi/args.lmd * np.sin(0.5*t*np.pi/180)
else:
qmin, qmax = sorted([args.qrange[0], args.qrange[1]])
q = np.linspace(qmin, qmax, args.pnt)
self.sq["Q"] = q
t = args.lmd/4/np.pi * self.sq["Q"]
self.sq["2theta"] = 2*np.arcsin(t[t < 1]) * 180/np.pi
r = np.array(self.gr["r"])
dr = self.gr["r"][1] - self.gr["r"][0]
coeff = 4*np.pi*self.rho/q
for pair in self.pairs:
print(f"FT: {pair} ...")
gr = np.array(self.gr[pair])
y = r * (gr - 1) * np.sin(q.reshape(-1, 1) * r) * dr
y = coeff * np.sum(y, axis=1)
self.sq[pair] = y
def CalcXcoeff(self, q_, a):
q = q_**2/(16*np.pi**2)
f = (F[a]["A"][0] * np.exp(-F[a]["B"][0]*q) +
F[a]["A"][1] * np.exp(-F[a]["B"][1]*q) +
F[a]["A"][2] * np.exp(-F[a]["B"][2]*q) +
F[a]["A"][3] * np.exp(-F[a]["B"][3]*q) +
F[a]["A"][4] * np.exp(-F[a]["B"][4]*q) +
F[a]["C"])
f = np.array(f)
b = ND[a]
return f, b
def CalTotalSq(self):
Xcoe = pd.DataFrame()
Ncoe = pd.DataFrame()
Xcoe["Q"] = self.sq["Q"]
Ncoe["Q"] = self.sq["Q"]
for pair in self.pairs:
a, _ = pair.split("-")
fi, bi = self.CalcXcoeff(self.sq["Q"], a)
Xcoe[a] = fi
Ncoe[a] = bi
coe = np.array(Ncoe.iloc[:, 1:]) * np.array(self.p.loc[:, "c"])
Ncoe["cf"] = coe.sum(axis=1)
coe = np.array(Xcoe.iloc[:, 1:]) * np.array(self.p.loc[:, "c"])
Xcoe["cf"] = coe.sum(axis=1)
self.sq["XRD"] = np.zeros(self.sq.shape[0])
self.sq["ND"] = np.zeros(self.sq.shape[0])
for pair in self.pairs:
a, b = pair.split("-")
n = 1.0 if a == b else 2.0
ci = self.p.loc[a, "c"]
cj = self.p.loc[b, "c"]
c_xrd = n * ci * cj * Xcoe[a] * Xcoe[b] / Xcoe["cf"]**2
self.sq["XRD"] += c_xrd * self.sq[pair]
c_nd = n * ci * cj * Ncoe[a] * Ncoe[b] / Ncoe["cf"]**2
self.sq["ND"] += c_nd * self.sq[pair]
def OutputSq(self):
fig, ax = plt.subplots()
if args.qrange is None:
x = 2*np.arcsin(args.lmd / 4 / np.pi * self.sq["Q"])*180/np.pi
label = "$2\\theta$/deg."
else:
x = self.sq["Q"]
label = "$Q/{\\rm \\AA^{-1}}$"
ax.plot(x, self.sq["XRD"])
ax.set_xlabel(label)
base, _ = os.path.splitext(self.grfile)
fig.savefig(f"{base}.png")
print(f"{base}.png was created.")
with pd.ExcelWriter(f"{base}.xlsx") as o:
self.sq.to_excel(o, sheet_name="S(Q)", index=False)
print(f"{base}.xlsx was created.")
if args.plot is True:
plt.show()
d = Data(args.grfile)
d.OutputSq()