Fhkl プログラム仕様
X線回折に関連する原子散乱因子、異常散乱因子、結晶構造因子の計算および表示を行うスクリプト。
このスクリプトは、指定された原子の原子散乱因子 (ASF) や異常散乱因子スペクトルのプロット、 またはCIFファイルから読み込んだ結晶の構造因子 (Fhkl) の計算と表示、 さらには結晶構造情報の表示を行います。 モードはコマンドライン引数またはスクリプト内のグローバル変数で制御されます。
関連リンク: Fhkl.py 技術ドキュメント
- crystal.Fhkl.anom() None[ソース]
指定された原子の異常散乱因子スペクトルを計算し、グラフとして表示します。
グローバル変数 target_atom, WLmin, WLmax, wl_value, scale を使用します。 tkAtomType オブジェクトから異常散乱因子のデータを読み込み、 指定された波長範囲でスペクトルをプロットします。 特定の波長 wl_value における異常散乱因子の値も表示します。
- crystal.Fhkl.asf() None[ソース]
指定された原子の原子散乱因子(Atomic Scattering Factor, ASF)を計算し、グラフとして表示します。
グローバル変数 target_atom, xray_source, smin, smax, ns, s_value, scale を使用します。 tkAtomType オブジェクトから原子散乱因子のデータを読み込み、 指定された散乱ベクトル s の範囲で ASF を計算し、プロットします。 特定の s_value における ASF の値も表示します。
- crystal.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) のキーを持ちます。
- crystal.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 計算結果を標準出力に表示し、原子散乱因子のグラフをプロットしてユーザーの入力を待ちます。
- crystal.Fhkl.exec_Fhkl() None[ソース]
CIFファイルから結晶構造を読み込み、指定されたミラー指数に対する結晶構造因子を計算し表示します。
グローバル変数 ciffile, xray_source, hkl を使用して、CIFファイルを解析し、 結晶構造情報を取得します。その後、cal_Fhkl_single 関数を呼び出して 結晶構造因子を計算し、結果を標準出力に表示し、原子散乱因子のグラフをプロットします。
- crystal.Fhkl.inf() None[ソース]
指定されたCIFファイルから結晶構造情報を読み込み、その詳細を標準出力に表示します。
グローバル変数 ciffile, single, findvalidstructure を使用します。 CIFファイルを読み込み、tkCIF オブジェクトと tkCrystal オブジェクトが提供する Print() および PrintInf() メソッドを呼び出して、 読み込まれた結晶構造に関する詳細情報(格子パラメータ、原子の種類、原子サイトなど)を出力します。
- crystal.Fhkl.main() None[ソース]
スクリプトのメインエントリポイント。コマンドライン引数に基づいて処理モードを選択し実行します。
updatevars() を呼び出してコマンドライン引数を解析し、 グローバル変数 mode に応じて asf(), anom(), exec_Fhkl(), inf() の いずれかの関数を実行します。 無効なモードが指定された場合はエラーメッセージを表示し、終了します。