xrd_pymatgen プログラム仕様

X線回折(XRD)パターンシミュレーションスクリプト。

概要:

Pymatgenライブラリを使用して結晶のX線回折パターンをシミュレーションし、結果をプロット・保存します。

詳細説明:

本スクリプトは、CIFファイルから結晶構造を読み込み、指定されたX線源(例: CuKa1)と2θ範囲でXRDパターンを計算します。 計算された個々の回折ピークに対してガウス関数を適用し、指定された半値半幅 (FWHM) でスムージングされたスペクトルを生成します。 結果の回折ピーク情報と生成されたスペクトルデータは、標準出力、指定されたログファイル、およびExcelファイルに保存されます。 また、計算されたスペクトルと個々のピークはmatplotlibによってプロットされ、視覚的に表示されます。 コマンドライン引数により、入力CIFファイル、X線源、2θの最小値・最大値・ステップ、FWHMなどを柔軟に設定できます。

関連リンク:
XRD.xrd_pymatgen.Gaussian(x, x0, whalf)[ソース]

ガウス関数を計算します。

概要:

ピークの中心と半値半幅を用いてガウス分布の値を計算します。 この関数はXRDパターンシミュレーションにおいて、各回折ピークの形状を表現するために使用されます。

:param : param x: float or numpy.ndarray - ガウス関数を評価する点または点の配列。 :param : param x0: float - ガウス関数のピーク中心(位置)。 :param : param whalf: float - ガウス関数の半値半幅 (FWHM)。

戻り値:

returns: float or numpy.ndarray - `x`におけるガウス関数の値。

XRD.xrd_pymatgen.infile = '-M'
WAVELENGTHS = {

"CuKa": 1.54184, "CuKa2": 1.54439, "CuKa1": 1.54056, "CuKb1": 1.39222, "MoKa": 0.71073, "MoKa2": 0.71359, "MoKa1": 0.70930, "MoKb1": 0.63229, "CrKa": 2.29100, "CrKa2": 2.29361, "CrKa1": 2.28970, "CrKb1": 2.08487, "FeKa": 1.93735, "FeKa2": 1.93998, "FeKa1": 1.93604, "FeKb1": 1.75661, "CoKa": 1.79026, "CoKa2": 1.79285, "CoKa1": 1.78896, "CoKb1": 1.63079, "AgKa": 0.560885, "AgKa2": 0.563813, "AgKa1": 0.559421, "AgKb1": 0.497082,

}

XRD.xrd_pymatgen.main()[ソース]

XRDパターンシミュレーションのメイン処理を実行します。

概要:

CIFファイルから結晶構造を読み込み、X線回折パターンを計算して可視化・保存します。

詳細説明:
  1. コマンドライン引数またはデフォルト設定から、入力CIFファイル、X線源、 2θ範囲、スペクトルの半値半幅(FWHM)などのパラメータを読み込みます。

  2. ログファイルおよび出力Excelファイルのパスを設定し、標準出力をログファイルにもリダイレクトします。

  3. Pymatgenの`CifParser`でCIFファイルを解析し、結晶構造オブジェクトを取得します。

  4. `XRDCalculator`を使用して、指定されたX線源と2θ範囲で回折ピークデータを計算します。

  5. 各回折ピークに対して`Gaussian`関数を適用し、スムージングされたXRDスペクトルを生成します。

  6. 計算された回折ピークの詳細と生成されたスペクトルデータを標準出力とExcelファイルに保存します。

  7. matplotlibを使用して、スムージングされたXRDスペクトルと個々の回折ピークをプロットし、表示します。 プロットにはインタラクティブなイベントハンドラが設定されており、カーソル位置のデータ情報を表示できます。

  8. スクリプトの終了時に一時停止します。

パラメータ:

None (コマンドライン引数から設定を読み込みます)

戻り値:

None