tkatomtype プログラム仕様

tkatomtypeモジュール

概要: 原子タイプに関する情報や散乱因子を扱うモジュール。 詳細説明: このモジュールは、元素の基本情報、シャノンイオン半径、異常散乱因子などのデータを読み込み、

原子の散乱因子を計算する機能を提供します。

関連リンク: tkatomtype.py ライブラリ ドキュメント

tklib.tkcrystal.tkatomtype.read_SX1_potential(dbpath)[ソース]

概要: SX1ポテンシャルデータベースからデータを読み込む。 詳細説明: 指定されたファイルからSX1ポテンシャルデータを読み込み、元素名をキーとした辞書として返す。

各要素には質量、電荷、ポテンシャル係数(ai, bi, ci)、原子半径(ARAD)が含まれる。

パラメータ:

dbpath -- str: SX1ポテンシャルデータベースファイルのパス。

戻り値:

dict: 読み込まれたSX1ポテンシャルデータの辞書。

tklib.tkcrystal.tkatomtype.read_atom_inf_csv(file_path=None)[ソース]

概要: 元素周期表の情報をCSVファイルから読み込む。 詳細説明: 指定されたCSVファイルから元素の基本情報を読み込み、辞書のリストとして返す。

シンボルはNFKC正規化される。

パラメータ:

file_path -- str, optional: 読み込むCSVファイルのパス。Noneの場合、`atom_inf_db_path`を使用。

戻り値:

list[dict] or None: 読み込まれた原子情報の辞書リスト。ファイルが見つからない、またはエラーが発生した場合はNone。

tklib.tkcrystal.tkatomtype.read_shannon_ionic_radii(file_path=None)[ソース]

概要: Shannonのイオン半径データベースからデータを読み込む。 詳細説明: 指定されたファイルからShannonのイオン半径データをパースし、各レコードを辞書として含むリストで返す。

`ION`フィールドは原子名と電荷に分割される。

パラメータ:

file_path -- str, optional: Shannonのイオン半径データファイルのパス。Noneの場合、`shannon_ir_db_path`を使用。

戻り値:

list[dict] or None: 読み込まれたイオン半径データの辞書リスト。`Record#`が見つからない場合はNone。

class tklib.tkcrystal.tkatomtype.tkAtomType(atomtype=None, charge=0.0, **args)[ソース]

ベースクラス: tkAtomTypeObject

概要: 原子タイプに関する情報と散乱因子を管理するクラス。 詳細説明: `tkAtomTypeObject`を継承し、原子の異常散乱因子(ASFDC)や異常分散因子(MAC)のデータを読み込み、

それらを利用して散乱因子を計算する機能を提供する。

パラメータ:
  • atomtype -- str, optional: 原子タイプ名。

  • charge -- float, optional: 原子電荷。

  • args -- dict: `tkAtomTypeObject`に渡される追加のキーワード引数。

ASFDCAtomName()[ソース]

概要: 異常散乱因子 (ASFDC) が読み込まれた原子名を返す。 詳細説明: ReadASFParameters メソッドによってASFDCパラメータが読み込まれた原子名を返す。 :returns: str or None: ASFDCが読み込まれた原子名、またはまだ読み込まれていない場合はNone。

ASFDCParameters()[ソース]

概要: 異常散乱因子 (ASFDC) のパラメータを返す。 詳細説明: ReadASFParameters メソッドによって読み込まれたASFDCパラメータのリストを返す。 :returns: list or None: ASFDCパラメータのリスト、またはまだ読み込まれていない場合はNone。

AnomalousScatteringFactor(wl)[ソース]

概要: 指定された波長における異常分散因子 f1 と f2 を補間して取得する。 詳細説明: ReadAnomalousScatteringFactor で読み込まれたデータを利用し、

線形補間によって指定された波長`wl`に対応するf1とf2の値を計算して返す。

パラメータ:

wl -- float: 波長 (nm)。

戻り値:

tuple[float, float]: (f1, f2) のタプル。

ReadASFParameters(AtomName=None, asfdcfile='D:\\git\\tkProg\\tkdb\\Databases\\asfdc', XraySource=None, StopByError=1)[ソース]

概要: ASFDC (Atomic Scattering Factor for DC) パラメータをファイルから読み込む。 詳細説明: 指定されたファイルから特定の原子タイプに対するASFDCパラメータを読み込み、内部属性に設定する。

X線源が指定された場合は、異常分散因子の値も考慮に入れる。

パラメータ:
  • AtomName -- str, optional: パラメータを読み込む原子名。Noneの場合、オブジェクト自身の`AtomType`を使用。

  • asfdcfile -- str, optional: ASFDCデータベースファイルのパス。デフォルトは`ASFDCPath`。

  • XraySource -- str or float, optional: X線源のタイプ (例: 'Cr', 'Cu', 'Mo'など) または波長 (float)。異常分散因子を適用するために使用される。

  • StopByError -- int, optional: エラー発生時にプログラムを終了するかどうか (1: 終了, 0: 継続)。デフォルトは1。

戻り値:

list or None: 読み込まれたASFDCパラメータのリスト。エラーが発生した場合はNone。

ReadAnomalousScatteringFactor(AtomName=None)[ソース]

概要: 異常分散因子 (Anomalous Scattering Factor) のデータをファイルから読み込む。 詳細説明: 指定された原子タイプに対応する異常分散因子のデータベースファイル (.dat) から、

エネルギー(eV)、波長(nm)、f1、f2のデータを読み込み、内部属性に設定する。

パラメータ:

AtomName -- str, optional: データを読み込む原子名。Noneの場合、オブジェクト自身の`AtomType`を使用。

戻り値:

tuple: (xE, xwl, yf1, yf2, dbpath) のタプル。 - xE (numpy.ndarray): エネルギーのNumPy配列 (eV)。 - xwl (list): 波長のリスト (nm)。 - yf1 (numpy.ndarray): f1のNumPy配列。 - yf2 (numpy.ndarray): f2のNumPy配列。 - dbpath (str): 読み込んだデータベースファイルのパス。

asf(s, StopByError=1)[ソース]

概要: 原子散乱因子 (atomic scattering factor) を計算する。 詳細説明: 指定された`s`値 (sin(theta)/lambda) に基づいて原子散乱因子を計算する。

異常分散因子が利用可能な場合は、それらも考慮に入れる。

パラメータ:
  • s -- float: sin(theta) / lambda の値 (単位: nm^-1)。

  • StopByError -- int, optional: ReadASFParameters 呼び出し時にエラー発生で終了するかどうか。デフォルトは1。

戻り値:

float or complex: 計算された原子散乱因子。異常分散因子が存在する場合は複素数となる。