Fhkl プログラム仕様

X線回折に関連する原子散乱因子、異常散乱因子、結晶構造因子の計算および表示を行うスクリプト。

このスクリプトは、指定された原子の原子散乱因子 (ASF) や異常散乱因子スペクトルのプロット、 またはCIFファイルから読み込んだ結晶の構造因子 (Fhkl) の計算と表示、 さらには結晶構造情報の表示を行います。 モードはコマンドライン引数またはスクリプト内のグローバル変数で制御されます。

関連リンク: 1. 概要

XRD.Fhkl.anom() None

指定された原子の異常散乱因子スペクトルを計算し、グラフとして表示します。

グローバル変数 target_atom, WLmin, WLmax, wl_value, scale を使用します。 tkAtomType オブジェクトから異常散乱因子のデータを読み込み、 指定された波長範囲でスペクトルをプロットします。 特定の波長 wl_value における異常散乱因子の値も表示します。

XRD.Fhkl.asf() None

指定された原子の原子散乱因子(Atomic Scattering Factor, ASF)を計算し、グラフとして表示します。

グローバル変数 target_atom, xray_source, smin, smax, ns, s_value, scale を使用します。 tkAtomType オブジェクトから原子散乱因子のデータを読み込み、 指定された散乱ベクトル s の範囲で ASF を計算し、プロットします。 特定の s_value における ASF の値も表示します。

XRD.Fhkl.cal_Fhkl(cry: tkCrystal, xray_source: str | float) list[dict]

指定された結晶構造とX線源に基づいて、ミラー指数範囲内の結晶構造因子を計算します。

hmin から hmax、kmin から kmax、lmin から lmax の範囲で全てのミラー指数について 回折角、散乱ベクトル、2θ角、原子散乱因子、そして結晶構造因子 Fhkl を計算します。 計算結果は2θ角でソートされて返されます。

パラメータ:
  • cry -- tkCrystal 結晶構造情報を持つtkCrystalオブジェクト。

  • xray_source -- str | float X線源の名前(例: 'CuKa1')または波長(nm)。

戻り値:

list[dict] 各ミラー指数に対する回折情報と結晶構造因子を含む辞書のリスト。 各辞書は'hkl' (tuple), 'dhkl' (float), 'Q2' (float), 'Fhkl' (complex) のキーを持ちます。

XRD.Fhkl.cal_Fhkl_single(cry: tkCrystal, hkl: list[int], xray_source: str | float) None

指定されたミラー指数とX線源について、結晶構造因子を計算しプロットします。

特定のミラー指数 hkl に対して回折角、散乱ベクトル、2θ角、そして結晶構造因子 Fhkl を計算します。 また、指定された散乱ベクトル範囲で各原子種の原子散乱因子を計算し、グラフとして表示します。 計算された Fhkl の値も標準出力に出力されます。

パラメータ:
  • cry -- tkCrystal 結晶構造情報を持つtkCrystalオブジェクト。

  • hkl -- list[int] 計算対象のミラー指数 [h, k, l]

  • xray_source -- str | float X線源の名前(例: 'CuKa1')または波長(nm)。

戻り値:

None 計算結果を標準出力に表示し、原子散乱因子のグラフをプロットしてユーザーの入力を待ちます。

XRD.Fhkl.exec_Fhkl() None

CIFファイルから結晶構造を読み込み、指定されたミラー指数に対する結晶構造因子を計算し表示します。

グローバル変数 ciffile, xray_source, hkl を使用して、CIFファイルを解析し、 結晶構造情報を取得します。その後、cal_Fhkl_single 関数を呼び出して 結晶構造因子を計算し、結果を標準出力に表示し、原子散乱因子のグラフをプロットします。

XRD.Fhkl.inf() None

指定されたCIFファイルから結晶構造情報を読み込み、その詳細を標準出力に表示します。

グローバル変数 ciffile, single, findvalidstructure を使用します。 CIFファイルを読み込み、tkCIF オブジェクトと tkCrystal オブジェクトが提供する Print() および PrintInf() メソッドを呼び出して、 読み込まれた結晶構造に関する詳細情報(格子パラメータ、原子の種類、原子サイトなど)を出力します。

XRD.Fhkl.main() None

スクリプトのメインエントリポイント。コマンドライン引数に基づいて処理モードを選択し実行します。

updatevars() を呼び出してコマンドライン引数を解析し、 グローバル変数 mode に応じて asf(), anom(), exec_Fhkl(), inf() の いずれかの関数を実行します。 無効なモードが指定された場合はエラーメッセージを表示し、終了します。

XRD.Fhkl.updatevars()

コマンドライン引数に基づいてグローバル変数を更新します。

sys.argv から引数を解析し、mode, ciffile, target_atom, xray_source, smin, smax, ns, s_value, WLmin, WLmax, wl_value, hkl, scale などのグローバル変数の値を上書きします。 無効なモードが指定された場合はエラーメッセージを表示し、終了します。

XRD.Fhkl.usage()

スクリプトの利用方法とコマンドライン引数の例を表示します。

各モード (asf, anom, F, inf) の使用例と、それに続く引数のフォーマットを標準出力に表示します。