modified output.c to increase float number
This commit is contained in:
+72
-66
@@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2022-08-31 水 19:04 -->
|
||||
<!-- 2022-08-31 水 19:16 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>dump2sq</title>
|
||||
@@ -251,27 +251,27 @@
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org76c8c19">はじめに</a></li>
|
||||
<li><a href="#org3646915">入力ファイル</a>
|
||||
<li><a href="#orgeb837bb">はじめに</a></li>
|
||||
<li><a href="#orge530adf">入力ファイル</a>
|
||||
<ul>
|
||||
<li><a href="#org29f6517">LAMMPS</a></li>
|
||||
<li><a href="#org8b634bb">XYZ</a></li>
|
||||
<li><a href="#org6c95ed4">LAMMPS</a></li>
|
||||
<li><a href="#orgcf443dd">XYZ</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org39f07e8">出力ファイル</a>
|
||||
<li><a href="#org552aa9b">出力ファイル</a>
|
||||
<ul>
|
||||
<li><a href="#orgd46ce4e">積算配位数</a></li>
|
||||
<li><a href="#org0c47f5e">動径分布関数</a></li>
|
||||
<li><a href="#org3650f5e">構造因子</a></li>
|
||||
<li><a href="#org5ea7d6f">原子散乱因子と中性子散乱長</a></li>
|
||||
<li><a href="#org8f480d7">積算配位数</a></li>
|
||||
<li><a href="#org71f4deb">動径分布関数</a></li>
|
||||
<li><a href="#org04b4e35">構造因子</a></li>
|
||||
<li><a href="#orgc6deece">原子散乱因子と中性子散乱長</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org34fb617">インストール</a></li>
|
||||
<li><a href="#org0e462aa">使い方</a></li>
|
||||
<li><a href="#org5bf6dd9">misc</a>
|
||||
<li><a href="#org822ec7b">インストール</a></li>
|
||||
<li><a href="#orgacb531f">使い方</a></li>
|
||||
<li><a href="#org2bf0441">misc</a>
|
||||
<ul>
|
||||
<li><a href="#org8da4ec6">coeffploter.py</a></li>
|
||||
<li><a href="#orgbc8b4dc">gr2sq.py</a></li>
|
||||
<li><a href="#org021e9c0">coeffploter.py</a></li>
|
||||
<li><a href="#org21eefca">gr2sq.py</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -281,9 +281,9 @@
|
||||
<br />
|
||||
</p>
|
||||
|
||||
<div id="outline-container-org76c8c19" class="outline-2">
|
||||
<h2 id="org76c8c19">はじめに</h2>
|
||||
<div class="outline-text-2" id="text-org76c8c19">
|
||||
<div id="outline-container-orgeb837bb" class="outline-2">
|
||||
<h2 id="orgeb837bb">はじめに</h2>
|
||||
<div class="outline-text-2" id="text-orgeb837bb">
|
||||
<p>
|
||||
複数の時間ステップからなる時間ステップの構造データから、動径分布関数
|
||||
\(g(r)\) 、積算配位数 \(CN(r)\) 、構造因子 \(S(Q)\) を計算するプログラムです。
|
||||
@@ -306,16 +306,16 @@ Triclinicなセルでも計算できます。原子ペア毎の\(S(Q)\) を計
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3646915" class="outline-2">
|
||||
<h2 id="org3646915">入力ファイル</h2>
|
||||
<div class="outline-text-2" id="text-org3646915">
|
||||
<div id="outline-container-orge530adf" class="outline-2">
|
||||
<h2 id="orge530adf">入力ファイル</h2>
|
||||
<div class="outline-text-2" id="text-orge530adf">
|
||||
<p>
|
||||
拡張子で入力ファイルのformatを判断しています。
|
||||
</p>
|
||||
</div>
|
||||
<div id="outline-container-org29f6517" class="outline-3">
|
||||
<h3 id="org29f6517">LAMMPS</h3>
|
||||
<div class="outline-text-3" id="text-org29f6517">
|
||||
<div id="outline-container-org6c95ed4" class="outline-3">
|
||||
<h3 id="org6c95ed4">LAMMPS</h3>
|
||||
<div class="outline-text-3" id="text-org6c95ed4">
|
||||
<p>
|
||||
dumpコマンドで生成したファイルで、拡張子は.trajectryです。1ス
|
||||
テップ目で原子のならび決めて、2ステップ目以降は、同じ原子の並びとし
|
||||
@@ -324,22 +324,22 @@ dumpコマンドで生成したファイルで、拡張子は.trajectryです。
|
||||
のため、以下のようにdumpとdump_modifyで元素記号の出力し、idでsortし
|
||||
ておく必要があります。
|
||||
</p>
|
||||
<pre class="example" id="orged3296d">
|
||||
<pre class="example" id="org88f2c0e">
|
||||
dump 1 all custom 10 hoge.lammpstrj id type element x y z
|
||||
dump_modify 1 element Si O sort id
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org8b634bb" class="outline-3">
|
||||
<h3 id="org8b634bb">XYZ</h3>
|
||||
<div class="outline-text-3" id="text-org8b634bb">
|
||||
<div id="outline-container-orgcf443dd" class="outline-3">
|
||||
<h3 id="orgcf443dd">XYZ</h3>
|
||||
<div class="outline-text-3" id="text-orgcf443dd">
|
||||
<p>
|
||||
xyz形式で、拡張子は.xyzまたは.10です。す。1行目に原子数、2行目に
|
||||
Step数と、格子定数を記述しておきます。alpha, beta, gammaがない場合
|
||||
は、90, 90, 90とします。3行目以降にデータがならびます。2ステップ目
|
||||
以降も同じ形式でデータを並べます。
|
||||
</p>
|
||||
<pre class="example" id="org6a56237">
|
||||
<pre class="example" id="org334c727">
|
||||
420
|
||||
Step 225837 18.4116484 18.4116484 18.4116484 90 90 90
|
||||
Si 10.560073 17.438902 6.614775
|
||||
@@ -353,41 +353,41 @@ O 17.812448 0.110128 0.3462461
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org39f07e8" class="outline-2">
|
||||
<h2 id="org39f07e8">出力ファイル</h2>
|
||||
<div class="outline-text-2" id="text-org39f07e8">
|
||||
<div id="outline-container-org552aa9b" class="outline-2">
|
||||
<h2 id="org552aa9b">出力ファイル</h2>
|
||||
<div class="outline-text-2" id="text-org552aa9b">
|
||||
<p>
|
||||
4つのファイルに拡張子を追加して出力します。basenameは、指定しなけれ
|
||||
ば、インプットファイルと同じになります。
|
||||
</p>
|
||||
</div>
|
||||
<div id="outline-container-orgd46ce4e" class="outline-3">
|
||||
<h3 id="orgd46ce4e">積算配位数</h3>
|
||||
<div class="outline-text-3" id="text-orgd46ce4e">
|
||||
<div id="outline-container-org8f480d7" class="outline-3">
|
||||
<h3 id="org8f480d7">積算配位数</h3>
|
||||
<div class="outline-text-3" id="text-org8f480d7">
|
||||
<p>
|
||||
拡張子はcnです。原子ペア毎の \(CN(r)\) が保存されています。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org0c47f5e" class="outline-3">
|
||||
<h3 id="org0c47f5e">動径分布関数</h3>
|
||||
<div class="outline-text-3" id="text-org0c47f5e">
|
||||
<div id="outline-container-org71f4deb" class="outline-3">
|
||||
<h3 id="org71f4deb">動径分布関数</h3>
|
||||
<div class="outline-text-3" id="text-org71f4deb">
|
||||
<p>
|
||||
拡張子はgrです。原子ペア毎の \(g(r)\) と全原子 \(G(r)\) が保存されています。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org3650f5e" class="outline-3">
|
||||
<h3 id="org3650f5e">構造因子</h3>
|
||||
<div class="outline-text-3" id="text-org3650f5e">
|
||||
<div id="outline-container-org04b4e35" class="outline-3">
|
||||
<h3 id="org04b4e35">構造因子</h3>
|
||||
<div class="outline-text-3" id="text-org04b4e35">
|
||||
<p>
|
||||
拡張子はsqです。原子ペア毎の \(S(Q)\) とX線と中性子で観測される \(S(Q)\) が保存されています。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org5ea7d6f" class="outline-3">
|
||||
<h3 id="org5ea7d6f">原子散乱因子と中性子散乱長</h3>
|
||||
<div class="outline-text-3" id="text-org5ea7d6f">
|
||||
<div id="outline-container-orgc6deece" class="outline-3">
|
||||
<h3 id="orgc6deece">原子散乱因子と中性子散乱長</h3>
|
||||
<div class="outline-text-3" id="text-orgc6deece">
|
||||
<p>
|
||||
拡張子はcoeffです。中性子散乱長と原子散乱因子を出力します。原子散乱
|
||||
因子は、<a href="https://www.szfki.hu/~nphys/rmc++/downloads.html">xcoeff.f</a>から抽出しています。中性子散乱長は、<a href="https://www.ncnr.nist.gov/resources/n-lengths/">NIST</a>のデータを
|
||||
@@ -397,9 +397,9 @@ O 17.812448 0.110128 0.3462461
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org34fb617" class="outline-2">
|
||||
<h2 id="org34fb617">インストール</h2>
|
||||
<div class="outline-text-2" id="text-org34fb617">
|
||||
<div id="outline-container-org822ec7b" class="outline-2">
|
||||
<h2 id="org822ec7b">インストール</h2>
|
||||
<div class="outline-text-2" id="text-org822ec7b">
|
||||
<p>
|
||||
プログラムはCで作成しています。Cのコンパイラを準備してmakeしてください。
|
||||
ダウンロードして単にmakeしてください。
|
||||
@@ -409,25 +409,25 @@ O 17.812448 0.110128 0.3462461
|
||||
<a href="dump2sq-1.0.tar.gz">dump2sq-1.0.tar.gz</a>
|
||||
</p>
|
||||
|
||||
<pre class="example" id="org33a749e">
|
||||
<pre class="example" id="org7d80d2a">
|
||||
make
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0e462aa" class="outline-2">
|
||||
<h2 id="org0e462aa">使い方</h2>
|
||||
<div class="outline-text-2" id="text-org0e462aa">
|
||||
<div id="outline-container-orgacb531f" class="outline-2">
|
||||
<h2 id="orgacb531f">使い方</h2>
|
||||
<div class="outline-text-2" id="text-orgacb531f">
|
||||
<p>
|
||||
並列計算のために、環境変数をセットしてスレッド数を指定しておく。
|
||||
</p>
|
||||
<pre class="example" id="orgbb8d7d8">
|
||||
<pre class="example" id="org04f1aac">
|
||||
export OMP_NUM_THREADS=4
|
||||
</pre>
|
||||
<p>
|
||||
example以下のglass.lammpstrjを引数で渡して実行してみます。
|
||||
</p>
|
||||
<pre class="example" id="org51289f7">
|
||||
<pre class="example" id="org58222f0">
|
||||
dump2sq example/glass.lammpstrj
|
||||
</pre>
|
||||
<p>
|
||||
@@ -435,7 +435,7 @@ dump2sq example/glass.lammpstrj
|
||||
さの半分としています。プログラムが実行されると、次のように出力されて、
|
||||
4つのファイルが出力されます。
|
||||
</p>
|
||||
<pre class="example" id="org70a2314">
|
||||
<pre class="example" id="org53f3b1c">
|
||||
basename: example/glass
|
||||
Maximum cell length = 17.284100
|
||||
Rmax = 8.642050
|
||||
@@ -464,7 +464,7 @@ example/glass.sq was generated.
|
||||
値です。GRmaxは、セルサイズを超えても計算できますが、物理的な意味は
|
||||
ないでしょう。
|
||||
</p>
|
||||
<pre class="example" id="org289f362">
|
||||
<pre class="example" id="org7cf8256">
|
||||
./dump2sq -h
|
||||
usage: dump2sq [options] inputfile
|
||||
inputfile format
|
||||
@@ -484,24 +484,30 @@ options:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org5bf6dd9" class="outline-2">
|
||||
<h2 id="org5bf6dd9">misc</h2>
|
||||
<div class="outline-text-2" id="text-org5bf6dd9">
|
||||
<div id="outline-container-org2bf0441" class="outline-2">
|
||||
<h2 id="org2bf0441">misc</h2>
|
||||
<div class="outline-text-2" id="text-org2bf0441">
|
||||
</div>
|
||||
<div id="outline-container-org8da4ec6" class="outline-3">
|
||||
<h3 id="org8da4ec6">coeffploter.py</h3>
|
||||
<div class="outline-text-3" id="text-org8da4ec6">
|
||||
<div id="outline-container-org021e9c0" class="outline-3">
|
||||
<h3 id="org021e9c0">coeffploter.py</h3>
|
||||
<div class="outline-text-3" id="text-org021e9c0">
|
||||
<p>
|
||||
元素を指定して、原子散乱因子と中性子散乱長をプロットする。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbc8b4dc" class="outline-3">
|
||||
<h3 id="orgbc8b4dc">gr2sq.py</h3>
|
||||
<div class="outline-text-3" id="text-orgbc8b4dc">
|
||||
<div id="outline-container-org21eefca" class="outline-3">
|
||||
<h3 id="org21eefca">gr2sq.py</h3>
|
||||
<div class="outline-text-3" id="text-org21eefca">
|
||||
<p>
|
||||
Qの刻みを変えて再計算するために、dump2sqで生成したgrファイルからS(Q)を計算しなおす。結晶のパターンを計算するために、\(2\theta\) で\(Q\) を指定して計算することもできる。
|
||||
Qの刻みを変えて再計算するために、dump2sqで生成したgrファイルから
|
||||
S(Q)を計算しなおす。結晶のパターンを計算するために、\(2\theta\) で\(Q\)
|
||||
を指定して計算することもできる。\(\theta\) と\(Q\) の関係は以下のとおり。
|
||||
defaultで波長は、CuのK alpha線の1.54183 Åとしている。
|
||||
\[
|
||||
Q = \frac{4\pi}{\lambda}\sin(\theta)
|
||||
\]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -509,7 +515,7 @@ Qの刻みを変えて再計算するために、dump2sqで生成したgrファ
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: 大窪 貴洋</p>
|
||||
<p class="date">Created: 2022-08-31 水 19:04</p>
|
||||
<p class="date">Created: 2022-08-31 水 19:16</p>
|
||||
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
+12
@@ -146,4 +146,16 @@ example/glass.sq was generated.
|
||||
-o --output=%s Output basename [basename]
|
||||
#+end_example
|
||||
|
||||
* misc
|
||||
** coeffploter.py
|
||||
元素を指定して、原子散乱因子と中性子散乱長をプロットする。
|
||||
|
||||
** gr2sq.py
|
||||
Qの刻みを変えて再計算するために、dump2sqで生成したgrファイルから
|
||||
S(Q)を計算しなおす。結晶のパターンを計算するために、$2\theta$ で$Q$
|
||||
を指定して計算することもできる。$\theta$ と$Q$ の関係は以下のとおり。
|
||||
defaultで波長は、CuのK alpha線の1.54183 Åとしている。
|
||||
$$
|
||||
Q = \frac{4\pi}{\lambda}\sin(\theta)
|
||||
$$
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ 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=1000>, type=int)
|
||||
par.add_argument('--pnt', default=1001, type=int)
|
||||
par.add_argument('--lmd', default=1.54183, type=float)
|
||||
args = par.parse_args()
|
||||
|
||||
@@ -1102,6 +1102,8 @@ class Data():
|
||||
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
|
||||
@@ -1164,4 +1166,5 @@ class Data():
|
||||
|
||||
|
||||
d = Data(args.grfile)
|
||||
|
||||
d.PlotSq()
|
||||
|
||||
@@ -74,9 +74,9 @@ void OutputCN(COMMAND *com, HEAD *head, TYPE *type, DATASET *cn){
|
||||
fprintf(f, "%15s\n", "Total");
|
||||
|
||||
for (i=0; i<cn->n; i++){
|
||||
fprintf(f, "%14e", cn->x[i]);
|
||||
fprintf(f, "%24.16e", cn->x[i]);
|
||||
for (j=0; j<cn->m; j++) {
|
||||
fprintf(f, " %14e", cn_[i][j]);
|
||||
fprintf(f, " %24.16e", cn_[i][j]);
|
||||
}
|
||||
fprintf(f, "\n");
|
||||
}
|
||||
@@ -97,9 +97,9 @@ void OutputGr(COMMAND *com, HEAD *head, TYPE *type, DATASET *gr){
|
||||
fprintf(f, "%15s\n", "Total");
|
||||
|
||||
for (i=0; i<gr->n; i++){
|
||||
fprintf(f, "%14e", gr->x[i]);
|
||||
fprintf(f, "%24.16e", gr->x[i]);
|
||||
for (j=0; j<gr->m; j++) {
|
||||
fprintf(f, " %14e", gr->y[i][j]);
|
||||
fprintf(f, " %24.16e", gr->y[i][j]);
|
||||
}
|
||||
fprintf(f, "\n");
|
||||
}
|
||||
@@ -125,9 +125,9 @@ void OutputSQ(COMMAND *com, HEAD *head, TYPE *type, DATASET *sq){
|
||||
fprintf(f, "\n");
|
||||
/* データ */
|
||||
for (i=0; i<sq->n; i++){
|
||||
fprintf(f, "%14e", sq->x[i]);
|
||||
fprintf(f, "%24.16e", sq->x[i]);
|
||||
for (j=0; j<sq->m; j++){
|
||||
fprintf(f, " %14e", sq->y[i][j]);
|
||||
fprintf(f, " %24.16e", sq->y[i][j]);
|
||||
}
|
||||
fprintf(f, "\n");
|
||||
}
|
||||
@@ -156,9 +156,9 @@ void OutputCoeff(COMMAND *com, HEAD *head, TYPE *type, DATASET *sq){
|
||||
}
|
||||
fprintf(f, "\n");
|
||||
for (i=0; i<sq->n; i++){
|
||||
fprintf(f, " %12.6f", sq->x[i]);
|
||||
fprintf(f, " %24.16e", sq->x[i]);
|
||||
for (j=0; j<type->types; j++){
|
||||
fprintf(f, " %12.6f", type->XRDcoeff[i][j]);
|
||||
fprintf(f, " %24.16e", type->XRDcoeff[i][j]);
|
||||
}
|
||||
fprintf(f, "\n");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user