tkatomtypeobject プログラム仕様

概要: 原子タイプ情報を管理するユーティリティ関数とクラスを提供します。

詳細説明: このモジュールは、原子名、原子番号、電荷、質量などの原子関連データを処理するための ユーティリティ関数と tkAtomTypeObject クラスを定義しています。 INIファイル形式の原子データベースからの情報読み込み機能も含まれており、 原子のプロパティを簡単に取得・管理できるよう設計されています。

関連リンク: tkatomtypeobject.py

tklib.tkcrystal.tkatomtypeobject.Charge2f(charge)[ソース]

概要: 原子電荷を表す文字列を浮動小数点数に変換します。

詳細説明: 入力された電荷が既に数値型(intまたはfloat)の場合は、その値をそのまま返します。 Noneや空文字列の場合は、デフォルト値として0.0を返します。 電荷が文字列形式(例: "2+", "1-")で与えられた場合、正規表現を使用して数値部分と符号を抽出し、 浮動小数点数に変換して返します。

パラメータ:

charge -- str or int or float 変換する電荷。数値、または"+"や"-"を含む文字列(例: "2+", "1-")。

戻り値:

float 変換された電荷の浮動小数点数表現。解析できない場合は0.0。

tklib.tkcrystal.tkatomtypeobject.GetAtomInformation(self, name)[ソース]

概要: get_atom_information 関数のエイリアスです。

詳細説明: get_atom_information 関数と同じ機能を提供し、命名規則の互換性を保ちます。 原子名または原子番号に基づいて詳細な原子情報を取得します。

パラメータ:
  • self -- object メソッドが呼び出されたオブジェクト自身 (クラスメソッドまたはインスタンスメソッドとして使用される場合)。

  • name -- str or int 情報を取得する原子の名前または原子番号。

戻り値:

dict 統合された原子情報を含む辞書。

tklib.tkcrystal.tkatomtypeobject.GetAtomName(AtomicNumber)[ソース]

概要: 原子番号から原子の記号名を取得します。

詳細説明: DBDir 内の nonrel ファイルを読み込み、指定された原子番号に対応する原子記号を検索します。 nonrel ファイルは、原子に関する情報を含む特定のフォーマットのテキストファイルと想定されています。 ファイルが存在しない場合はエラーメッセージを出力し、Noneを返します。 検索に成功した場合、見つかった原子記号名を返します。

パラメータ:

AtomicNumber -- int 検索する原子番号。

戻り値:

str or None 見つかった原子記号名 (例: "H", "Sr")。見つからない場合やファイル読み込みエラーの場合はNone。

tklib.tkcrystal.tkatomtypeobject.ReadAtomDB(name)[ソース]

概要: read_atom_db 関数のエイリアスです。

詳細説明: read_atom_db 関数と同じ機能を提供し、命名規則の互換性を保ちます。 原子データベースファイルから原子情報を読み込みます。

パラメータ:

name -- str or int 読み込む原子の名前(記号)または原子番号。

戻り値:

dict 読み込まれた原子情報を含む辞書。

tklib.tkcrystal.tkatomtypeobject.SplitAtomName(atomname)[ソース]

概要: 原子名の文字列を構成要素に分解します。

詳細説明: "Sr.a[b]2+" のような原子名の文字列を、以下の4つの要素に分解します。 1. 基本原子名 (例: 'Sr.a') 2. 型を含む原子名 (例: '.a') 3. サイトタイプ (例: '[b]') 4. 電荷 (例: '2+') 電荷は正規表現で解析され、浮動小数点数に変換されます。

パラメータ:

atomname -- str 分解する原子名の文字列。例: "Sr.a[b]2+"。

戻り値:

tuple[str, str, str, float] 分解された原子名の構成要素を格納したタプル。 (基本原子名, 型を含む原子名, サイトタイプ, 電荷)の順。 電荷は浮動小数点数として返されます。

tklib.tkcrystal.tkatomtypeobject.get_atom_information(name)[ソース]

概要: 原子名または原子番号に基づいて詳細な原子情報を取得します。

詳細説明: 入力された name が原子番号として解釈できる場合、GetAtomName を使用して原子記号名に変換します。 そうでない場合は、SplitAtomName を使用して原子名の文字列を解析し、基本原子名と電荷を抽出します。 最終的に、抽出された基本原子名 (大文字化されたもの) を使用して ReadAtomDB を呼び出し、 データベースから原子情報を取得します。取得した情報に抽出された電荷を追加して返します。

パラメータ:

name -- str or int 情報を取得する原子の名前(例: "Sr.a[b]2+")または原子番号(例: 38)。

戻り値:

dict 統合された原子情報を含む辞書。辞書にはデータベースからの情報と、 もし原子名から抽出された場合は電荷情報が含まれます。

tklib.tkcrystal.tkatomtypeobject.read_atom_db(name)[ソース]

概要: 原子データベースファイルから原子情報を読み込みます。

詳細説明: 指定された原子名(または原子番号)に対応するINIファイルを AtomDBDir ディレクトリから探し、 その内容を辞書として読み込みます。ファイル名は *-{原子名}.ini の形式と想定されます。 特別なケースとして、'D' (Deuterium) が指定された場合は、'H' の情報を使用し、質量を2.014に設定します。 見つかったINIファイルの各キーの値を浮動小数点数に変換しようと試みます。

パラメータ:

name -- str or int 読み込む原子の名前(記号、例: "Sr", "H")または原子番号。

戻り値:

dict 読み込まれた原子情報を含む辞書。ファイルが見つからない場合は空の辞書を返します。 エラー発生時はメッセージを出力して終了します。

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

ベースクラス: tkObject

概要: 特定の原子タイプに関する情報を保持・管理するオブジェクトです。

詳細説明: tkObject を継承し、原子名、電荷、質量、原子番号などの原子の基本的なプロパティを カプセル化します。原子タイプ文字列の解析、原子データベースからの情報取得、 および関連プロパティへのアクセス機能を提供します。

関連リンク: tkatomtypeobject.py

AtomName(DelPar=0)[ソース]

概要: 設定されている完全な原子タイプ文字列を返します。

詳細説明: AtomType メソッドと同じ機能を提供します。 オブジェクトに設定されている完全な原子タイプ文字列を返します。 DelPar 引数は現在このメソッドでは機能に影響を与えません。

パラメータ:

DelPar -- int 現在はこの引数は使用されません。常に完全な原子タイプ文字列を返します。

戻り値:

str or None 設定されている原子タイプ文字列。設定されていない場合はNone。

AtomNameOnly(DelPar=0)[ソース]

概要: サイトタイプや電荷を含まない原子の基本名を返します。

詳細説明: AtomTypeOnly メソッドと同じ機能を提供します。 現在オブジェクトに設定されている原子タイプ文字列から、サイトタイプや電荷を除いた 純粋な原子記号名を抽出して返します。

パラメータ:

DelPar -- int 0以外の場合、サイトタイプ情報も削除して基本原子名のみを返します。 デフォルトは0。

戻り値:

str 基本原子名。

AtomType()[ソース]

概要: 設定されている完全な原子タイプ文字列を返します。

詳細説明: オブジェクトに設定されている内部属性 __AtomType の値をそのまま返します。 この文字列には、原子記号、サイトタイプ、電荷など、全ての情報が含まれる可能性があります。

戻り値:

str or None 設定されている原子タイプ文字列。設定されていない場合はNone。

AtomTypeOnly(DelPar=0)[ソース]

概要: サイトタイプや電荷を含まない原子の基本名を返します。

詳細説明: 現在オブジェクトに設定されている原子タイプ文字列 (__AtomType) を SplitAtomName を使用して解析し、サイトタイプや電荷を除いた純粋な原子記号名 (例: "Sr" from "Sr.a[b]2+") を抽出して返します。 DelPar が真 (0以外) の場合、サイトタイプ情報も削除され、基本原子名のみが返されます。

パラメータ:

DelPar -- int 0以外の場合、サイトタイプ情報も削除して基本原子名のみを返します。 デフォルトは0。

戻り値:

str 基本原子名。例: "Sr"。

AtomicMass()[ソース]

概要: オブジェクトに設定されている原子の質量を返します。

詳細説明: Mass メソッドと同じ機能を提供します。 原子の質量を取得します。

戻り値:

float 原子の質量。

AtomicNumber()[ソース]

概要: オブジェクトに設定されている原子の原子番号を返します。

詳細説明: もし内部属性 __AtomicNumber が既に設定されていれば、その値を返します。 設定されていない場合は、AtomTypeOnly メソッドで原子の基本名を取得し、 グローバルな ReadAtomDB 関数(またはクラスの ReadAtomDB メソッド)を呼び出して 原子データベースから原子番号 ('Z') 情報を取得します。 取得した原子番号情報を __AtomicNumber にキャッシュし、その値を返します。 原子番号情報が取得できない場合はNoneを返します。

戻り値:

int or None 原子の原子番号。取得できない場合はNone。

Charge()[ソース]

概要: オブジェクトに設定されている原子の電荷を返します。

詳細説明: もし内部属性 __Charge が既に設定されていれば、その値を Charge2f で 浮動小数点数に変換して返します。 __Charge が設定されていない場合は、オブジェクトの原子タイプ文字列 (_AtomType - 注: __AtomType の誤記の可能性) を SplitAtomName で解析し、電荷を抽出して __Charge に設定後、その値を返します。 電荷が抽出できない場合は0.0を返します。

戻り値:

float 原子に割り当てられた電荷の浮動小数点数表現。

FillAtomTypeData()[ソース]

概要: 原子タイプに関連する詳細情報をデータベースから取得し、オブジェクトのプロパティに設定します。

詳細説明: AtomTypeOnly メソッドで原子の基本名を取得し、GetAtomInformation メソッドを呼び出して データベースから詳細な原子情報を取得します。 取得した情報の中から電荷 ('charge') と質量 ('mass') が存在すれば、それぞれ オブジェクトの __Charge (または SetCharge) および __AtomicMass (または SetAtomicMass) 属性を更新します。

戻り値:

None

GetAtomInformation(name)[ソース]

概要: get_atom_information メソッドのエイリアスです。

詳細説明: get_atom_information メソッドと同じ機能を提供し、命名規則の互換性を保ちます。 原子名または原子番号に基づいて詳細な原子情報を取得します。

パラメータ:

name -- str or int 情報を取得する原子の名前または原子番号。

戻り値:

dict 統合された原子情報を含む辞書。

GetAtomName(AtomicNumber)[ソース]

概要: 原子番号から原子の記号名を取得します。

詳細説明: グローバルな GetAtomName 関数を呼び出して、指定された原子番号に対応する原子記号を検索し取得します。 このメソッドは、クラス内で GetAtomName 機能を使用するためのラッパーとして機能します。

パラメータ:

AtomicNumber -- int 検索する原子番号。

戻り値:

str or None 見つかった原子記号名。見つからない場合はNone。

Mass()[ソース]

概要: オブジェクトに設定されている原子の質量を返します。

詳細説明: もし内部属性 __AtomicMass が既に設定されていれば、その値を返します。 設定されていない場合は、AtomTypeOnly メソッドで原子の基本名を取得し、 GetAtomInformation メソッドを呼び出して原子データベースから質量情報を取得します。 取得した質量情報を __AtomicMass にキャッシュし、その値を返します。 質量情報が取得できない場合は0.0を返します。

戻り値:

float 原子の質量。取得できない場合は0.0。

ReadAtomDB(name)[ソース]

概要: read_atom_db メソッドのエイリアスです。

詳細説明: read_atom_db メソッドと同じ機能を提供し、命名規則の互換性を保ちます。 原子データベースファイルから原子情報を読み込みます。

パラメータ:

name -- str or int 読み込む原子の名前(記号)または原子番号。

戻り値:

dict 読み込まれた原子情報を含む辞書。

SetAtomType(type=None, charge=None)[ソース]

概要: オブジェクトの原子タイプと電荷を設定します。

詳細説明: オブジェクトの内部属性 __AtomType に指定された type を設定します。 charge が明示的に指定されていない場合、SplitAtomName 関数を使用して type 文字列から電荷を抽出し、__Charge 属性に設定します。

パラメータ:
  • type -- str, optional 設定する原子タイプ。例: "Sr.a[b]2+"。デフォルトはNone。

  • charge -- float, optional 設定する電荷。この値が指定された場合は、原子タイプ文字列からの電荷抽出は行われません。 デフォルトはNone。

戻り値:

None

SplitAtomName(atomname)[ソース]

概要: 原子名の文字列を構成要素に分解します。

詳細説明: グローバルな SplitAtomName 関数を呼び出して原子名を基本名、サイトタイプ、電荷などの部分に分解します。 このメソッドは、クラス内で SplitAtomName 機能を使用するためのラッパーとして機能します。

パラメータ:

atomname -- str 分解する原子名の文字列。

戻り値:

tuple[str, str, str, float] (基本原子名, 型を含む原子名, サイトタイプ, 電荷) のタプル。

get_atom_information(name)[ソース]

概要: 原子名または原子番号に基づいて詳細な原子情報を取得します。

詳細説明: 入力された name が原子番号として解釈できる場合、GetAtomName を使用して原子記号名に変換します。 そうでない場合は、SplitAtomName を使用して原子名の文字列を解析し、基本原子名と電荷を抽出します。 最終的に、抽出された基本原子名 (大文字化されたもの) を使用して ReadAtomDB を呼び出し、 データベースから原子情報を取得します。取得した情報に抽出された電荷を追加して返します。

パラメータ:

name -- str or int 情報を取得する原子の名前(例: "Sr.a[b]2+")または原子番号(例: 38)。

戻り値:

dict 統合された原子情報を含む辞書。辞書にはデータベースからの情報と、 もし原子名から抽出された場合は電荷情報が含まれます。

read_atom_db(name)[ソース]

概要: 原子データベースファイルから原子情報を読み込みます。

詳細説明: 指定された原子名(または原子番号)に対応するINIファイルを AtomDBDir ディレクトリから探し、 その内容を辞書として読み込みます。ファイル名は *-{原子名}.ini の形式と想定されます。 特別なケースとして、'D' (Deuterium) が指定された場合は、'H' の情報を使用し、質量を2.014に設定します。 見つかったINIファイルの各キーの値を浮動小数点数に変換しようと試みます。

パラメータ:

name -- str or int 読み込む原子の名前(記号、例: "Sr", "H")または原子番号。

戻り値:

dict 読み込まれた原子情報を含む辞書。ファイルが見つからない場合は空の辞書を返します。