diff --git a/Readme.html b/Readme.html index c22a9d7..667e5fe 100644 --- a/Readme.html +++ b/Readme.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- +複数の時間ステップからなる時間ステップの構造データから、動径分布関数 \(g(r)\) 、積算配位数 \(CN(r)\) 、構造因子 \(S(Q)\) を計算するプログラムです。 @@ -283,16 +285,16 @@ Triclinicなセルでも計算できます。原子ペア毎の\(S(Q)\) を計
拡張子で入力ファイルのformatを判断しています。
dumpコマンドで生成したファイルで、拡張子は.trajectryです。1ス テップ目で原子のならび決めて、2ステップ目以降は、同じ原子の並びとし @@ -301,22 +303,22 @@ dumpコマンドで生成したファイルで、拡張子は.trajectryです。 のため、以下のようにdumpとdump_modifyで元素記号の出力し、idでsortし ておく必要があります。
-+dump 1 all custom 10 hoge.lammpstrj id type element x y z dump_modify 1 element Si O sort id
xyz形式で、拡張子は.xyzまたは.10です。す。1行目に原子数、2行目に Step数と、格子定数を記述しておきます。alpha, beta, gammaがない場合 は、90, 90, 90とします。3行目以降にデータがならびます。2ステップ目 以降も同じ形式でデータを並べます。
-+420 Step 225837 18.4116484 18.4116484 18.4116484 90 90 90 Si 10.560073 17.438902 6.614775 @@ -330,41 +332,41 @@ O 17.812448 0.110128 0.3462461
4つのファイルに拡張子を追加して出力します。basenameは、指定しなけれ ば、インプットファイルと同じになります。
拡張子はcnです。原子ペア毎の \(CN(r)\) が保存されています。
拡張子はgrです。原子ペア毎の \(g(r)\) と全原子 \(G(r)\) が保存されています。
拡張子はsqです。原子ペア毎の \(S(Q)\) とX線と中性子で観測される \(S(Q)\) が保存されています。
プログラムはCで作成しています。Cのコンパイラを準備してmakeしてください。 ダウンロードして単にmakeしてください。 @@ -386,25 +388,25 @@ O 17.812448 0.110128 0.3462461 dump2sq-1.0.tar.gz
-+make
並列計算のために、環境変数をセットしてスレッド数を指定しておく。
-+export OMP_NUM_THREADS=4example以下のglass.lammpstrjを引数で渡して実行してみます。
-+dump2sq example/glass.lammpstrj@@ -412,7 +414,7 @@ dump2sq example/glass.lammpstrj さの半分としています。プログラムが実行されると、次のように出力されて、 4つのファイルが出力されます。
-+basename: example/glass Maximum cell length = 17.284100 Rmax = 8.642050 @@ -441,7 +443,7 @@ example/glass.sq was generated. 値です。GRmaxは、セルサイズを超えても計算できますが、物理的な意味は ないでしょう。 -+./dump2sq -h usage: dump2sq [options] inputfile inputfile format @@ -461,22 +463,23 @@ options:
-元素を指定して、原子散乱因子と中性子散乱長をプロットする。 +元素を指定して、原子散乱因子と中性子散乱長をプロットする。引数に元 +素名を複数していできる。
Qの刻みを変えて再計算するために、dump2sqで生成したgrファイルから S(Q)を計算しなおす。結晶のパターンを計算するために、\(2\theta\) で\(Q\) @@ -485,6 +488,40 @@ defaultで波長は、CuのK alpha線の1.54183 Åとしている。 \[ Q = \frac{4\pi}{\lambda}\sin(\theta) \] +計算した$S(Q)$はpngとxlsxを生成する +
++dump2sqで生成された*.cnと*.coeffから$I(q)$を計算するCプログラム。 +openmpでスレッド並列する。f*fは足していない。sincのwindow関数をかけ +る。コンパイルは、 +
++gcc -fopenmp -O3 -Wall cn2Iq.c -o cn2Iq ++
+実行は、*.cnと*.coeffを渡す。I(q)は標準出力に出力されうr. +
++./cn2Iq fort.cn fort.cn.coeff ++
+複数のcnファイルやxslxに保存したい場合は、cn2Iq.pyを使う。 +
++subprocessでCのcn2Iqを呼び出して、I(Q)のpngとxlsxを生成する。Qの範囲 +またはthetaの範囲を指定できる。