tkspacegroup プログラム仕様
結晶空間群に関するデータと操作を提供するモジュール。
詳細説明: このモジュールは、空間群の名称、指標、対称操作、格子系などの情報を扱い、 SPGDB (Space Group Database) からの読み込みや解析を行うためのクラス tkSpaceGroup を提供します。 結晶構造データの解析やシミュレーションにおいて、空間群の情報を正確に管理するために使用されます。
関連リンク: tkspacegroup.py 技術ドキュメント
- class tklib.tkcrystal.tkspacegroup.tkSpaceGroup(**args)[ソース]
ベースクラス:
tkSpaceGroupObject空間群のデータを管理し、関連する操作を提供するクラス。
詳細説明: tkSpaceGroupObjectを継承し、空間群の名称、指標、対称操作、格子パラメータ、格子系などを保持・操作します。 SPGDBファイルから空間群情報を読み込み、結晶学的な解析をサポートします。
- AddSymmetryOperation(symop)[ソース]
新しい対称操作を追加する。
詳細説明: 指定された文字列を解析し、対称操作としてリストに追加します。 すでに存在する場合は追加しません。
- パラメータ:
symop -- str: 追加する対称操作を表す文字列。
- 戻り値:
int: 追加後の対称操作の総数。
- AnalyzeLatticeAxis(*, latticesystem='', SearchByLatticeParameter=0, tollatt=1e-05, tolangle=1e-05)[ソース]
格子パラメータに基づいて格子軸の名称を解析し設定する。
詳細説明: 現在の格子パラメータ (a, b, c, alpha, beta, gamma) の値と許容誤差に基づいて、 結晶学的な格子軸(例:cubic, tetragonal, monoclinicなど)を判定し、内部変数に設定します。
- パラメータ:
latticesystem -- str, optional: 既存の格子系名称。デフォルトは空文字列。
SearchByLatticeParameter -- int, optional: 格子パラメータに基づいて検索するかどうかのフラグ。デフォルトは0。
tollatt -- float, optional: 格子定数の比較に使用する許容誤差。デフォルトは1.0e-5。
tolangle -- float, optional: 格子角の比較に使用する許容誤差。デフォルトは1.0e-5。
- 戻り値:
str: 解析された格子軸の名称。
- ClearSymmetryOperation()[ソース]
設定されている対称操作と並進ベクトルをクリアする。
詳細説明: 対称操作リストを空にし、並進ベクトルを '[0, 0, 0]' のみを含む状態にリセットします。 これにより、対称操作と並進の数を更新します。
- DoSymmetryOperation(iop, pos, IsReduce01=1)[ソース]
指定された対称操作を座標に適用する。
詳細説明: 指定されたインデックスの対称操作を、与えられた座標に適用し、新しい座標を計算します。 オプションで結果を0から1の範囲に正規化します。
- パラメータ:
iop -- int: 適用する対称操作のインデックス。
pos -- list[float]: 適用する元の座標 [x, y, z]。
IsReduce01 -- int, optional: 結果を0から1の範囲に正規化するかどうかのフラグ (1:正規化する, 0:しない)。デフォルトは1。
- 戻り値:
list[float] or None: 対称操作適用後の新しい座標 [x', y', z']。入力が無効な場合はNone。
- DoVelocitySymmetryOperation(iop, v, IsReduce01=0)[ソース]
指定された対称操作を速度ベクトルに適用する。
詳細説明: 速度ベクトルに対して DoSymmetryOperation メソッドを呼び出しますが、正規化は行いません。 これは、速度が周期境界条件を考慮しないためです。
- パラメータ:
iop -- int: 適用する対称操作のインデックス。
v -- list[float]: 適用する元の速度ベクトル [vx, vy, vz]。
IsReduce01 -- int, optional: 結果を0から1の範囲に正規化するかどうかのフラグ (0:しない)。常に0が渡されます。
- 戻り値:
list[float] or None: 対称操作適用後の新しい速度ベクトル [vx', vy', vz']。入力が無効な場合はNone。
- GetBravaisLattice()[ソース]
空間群名とLaue群からBravais格子タイプを返す。
詳細説明: 空間群名に含まれる中心化の記号 (P, F, I, A, B, C) とLaue群を組み合わせて、 Bravais格子の記述を生成します。
- 戻り値:
str: Bravais格子の記述文字列 (例: "P(Triclinic)", "FC(Cubic)")。
- GetSpaceGroupList(dbpath='D:\\git\\tkProg\\tkdb\\Databases\\spgra', StopByError=1)[ソース]
空間群データベースからすべての空間群のリストを取得する。
詳細説明: データベースを読み込み、各空間群エントリのSPG番号、セット番号、名称を含む文字列のリストを生成します。
- パラメータ:
dbpath -- str, optional: 空間群データベースファイルのパス。デフォルトは SPGDBPath。
StopByError -- int, optional: エラー時にプログラムを終了するかどうかのフラグ (0:しない, 1:する)。デフォルトは1。
- 戻り値:
list[str] or int: 空間群の情報を整形した文字列のリスト、またはエラー時に0。
- GetiSPGFromSPGName(spgname, dbpath='D:\\git\\tkProg\\tkdb\\Databases\\spgra', StopByError=1)[ソース]
空間群名称から空間群番号とセット番号を取得する。
詳細説明: データベースを検索し、指定された空間群名称に一致するエントリの空間群番号、セット番号、 およびデータベース内のインデックス(カウント)を返します。
- パラメータ:
spgname -- str: 検索する空間群名称。
dbpath -- str, optional: 空間群データベースファイルのパス。デフォルトは SPGDBPath。
StopByError -- int, optional: エラー時にプログラムを終了するかどうかのフラグ (0:しない, 1:する)。デフォルトは1。
- 戻り値:
tuple[int, int, int] or int: (カウント, 空間群番号, セット番号) のタプル。見つからない場合は (-1, -1, -1)。エラー時に0。
- GuessBravaisLattice(tollatt, tolangle, EPSCoord)[ソース]
空間群名と格子パラメータに基づいてBravais格子を推測する。
詳細説明: まず空間群名からF, I, A, B, Cなどの中心化情報をチェックします。 その後、原子サイト情報が存在する場合は、サイトの位置から中心化を判定します。
- パラメータ:
tollatt -- float: 格子定数の許容誤差。
tolangle -- float: 格子角の許容誤差。
EPSCoord -- float: 座標の許容誤差。
- 戻り値:
list[str]: [格子系, Bravais格子タイプ] のリスト。
- LatticeAxis()[ソース]
設定されている格子軸の名称を返す。
詳細説明: lattice_axis メソッドを呼び出して格子軸の名称を取得します。
- 戻り値:
str: 格子軸の名称 (例: 'cubic', 'monoclinic')。
- LatticeParameters()[ソース]
設定されている格子パラメータのリストを返す。
- 戻り値:
list[float]: 格子パラメータ [a, b, c, alpha, beta, gamma]。
- LatticeSystem()[ソース]
設定されている格子系の名称を返す。
詳細説明: 内部変数 __LatticeSystem の値を返します。
- 戻り値:
str or None: 格子系の名称 (例: 'cubic', 'monoclinic')。
- LatticeSystemFromLaueGroup(LaueG)[ソース]
Laue群の名称から格子系を推測し、返す。
詳細説明: 特定のLaue群名に基づいて格子系(例えば、菱面体晶、三方晶、単斜晶など)を判断します。 Laue群名の括弧内の情報は除去されます。
- パラメータ:
LaueG -- str: Laue群の名称。
- 戻り値:
str: 推測された格子系の名称 (小文字)。
- LatticeSystemFromSPGName(SPGName)[ソース]
空間群名称から格子系を推測し、返す。
詳細説明: 空間群名称の特定のキーワード(例: '4', '6', 'R', '2')に基づいて 格子系(例:cubic, hexagonal, rhombohedral, monoclinic)を判断します。
- パラメータ:
SPGName -- str: 空間群の名称。
- 戻り値:
str or None: 推測された格子系の名称 (小文字)。SPGNameが空文字列の場合はNone。
- LaueGroupByRietanIndex(idx=None)[ソース]
RIETANのLaue群インデックスに基づいてLaue群名称を返す。
詳細説明: 1から15までのインデックスに対応するLaue群の名称をリストから取得します。
- パラメータ:
idx -- int, optional: Laue群のインデックス (1-15)。デフォルトはNone。
- 戻り値:
str: 対応するLaue群の名称。インデックスが無効な場合は空文字列。
- ReadNextSpaceGroup(db)[ソース]
データベースファイルから次の空間群エントリを読み込む。
詳細説明: 指定されたデータベースオブジェクトから1つの空間群エントリをパースし、辞書形式で返します。 読み込みはファイルの現在の位置から行われます。
- パラメータ:
db -- tklib.tkfile.tkFile: 空間群データベースファイルオブジェクト。
- 戻り値:
dict or None: 読み込まれた空間群データを含む辞書、またはファイルの終端に達した場合や無効なエントリの場合はNone。
- ReadSpaceGroup(ispg, iset, SettoSelf=0, dbpath='D:\\git\\tkProg\\tkdb\\Databases\\spgra', StopByError=1)[ソース]
空間群番号とセット番号に基づいて空間群データをデータベースから読み込む。
詳細説明: 指定された空間群番号とセット番号に合致するエントリをデータベースから探し、そのデータを返します。 読み込んだデータをオブジェクト自身に設定することもできます。
- パラメータ:
ispg -- int: 検索する空間群番号。
iset -- int: 検索するセット番号。
SettoSelf -- int, optional: 読み込んだデータをこのオブジェクト自身に設定するかどうかのフラグ (0:しない, 1:する)。デフォルトは0。
dbpath -- str, optional: 空間群データベースファイルのパス。デフォルトは SPGDBPath。
StopByError -- int, optional: エラー時にプログラムを終了するかどうかのフラグ (0:しない, 1:する)。デフォルトは1。
- 戻り値:
dict or None: 読み込まれた空間群データを含む辞書 (SettoSelf=0の場合)、または None (見つからない場合やエラー時)。 SettoSelf=1の場合は、このオブジェクト自体にデータが設定され、戻り値は None。
- ReadSpaceGroupFromSPGName(SPGName)[ソース]
空間群名称に基づいて空間群データを読み込む。
詳細説明: 空間群名称から空間群番号とセット番号を特定し、その情報を用いて ReadSpaceGroup メソッドを呼び出します。
- パラメータ:
SPGName -- str: 検索する空間群名称。
- 戻り値:
dict or None: 読み込まれた空間群データを含む辞書、または見つからない場合はNone。
- SetLatticeAxis(*, latticeaxis='', SearchByLatticeParameter=1, tollatt=1e-05, tolangle=1e-05)[ソース]
格子軸を設定し、必要に応じて格子パラメータから推測する。
詳細説明: 明示的に格子軸を設定するか、または SearchByLatticeParameter が有効な場合は 現在の格子パラメータから格子軸を解析し設定します。
- パラメータ:
latticeaxis -- str, optional: 明示的に設定する格子軸名称。デフォルトは空文字列。
SearchByLatticeParameter -- int, optional: 格子パラメータに基づいて格子軸を検索するかどうかのフラグ (0:しない, 1:する)。デフォルトは1。
tollatt -- float, optional: 格子定数の比較に使用する許容誤差。デフォルトは1.0e-5。
tolangle -- float, optional: 格子角の比較に使用する許容誤差。デフォルトは1.0e-5。
- 戻り値:
str or None: 設定または推測された格子軸の名称。現在の格子パラメータが不完全な場合はNone。
- SetLatticeParameters(latt, GuessLatticeSystem=0)[ソース]
格子パラメータを設定し、必要に応じて格子系と格子軸を推測する。
詳細説明: 与えられた格子パラメータ (a, b, c, alpha, beta, gamma) を内部変数に設定します。 GuessLatticeSystem フラグが有効な場合、設定後に格子系を自動的に解析し設定します。
- パラメータ:
latt -- list[float]: 設定する格子パラメータ [a, b, c, alpha, beta, gamma]。
GuessLatticeSystem -- int, optional: 格子系を自動的に推測して設定するかどうかのフラグ (0:しない, 1:する)。デフォルトは0。
- SetLatticeSystem(*, latticesystem='', SearchByLatticeParameter=0, tollatt=1e-05, tolangle=1e-05)[ソース]
格子系を設定し、必要に応じて格子パラメータから推測する。
詳細説明: 明示的に格子系を設定するか、または SearchByLatticeParameter が有効な場合は 現在の格子パラメータから格子系を解析し設定します。空間群名から推測する場合もあります。
- パラメータ:
latticesystem -- str, optional: 明示的に設定する格子系名称。デフォルトは空文字列。
SearchByLatticeParameter -- int, optional: 格子パラメータに基づいて格子系を検索するかどうかのフラグ (0:しない, 1:する)。デフォルトは0。
tollatt -- float, optional: 格子定数の比較に使用する許容誤差。デフォルトは1.0e-5。
tolangle -- float, optional: 格子角の比較に使用する許容誤差。デフォルトは1.0e-5。
- 戻り値:
str or None: 設定または推測された格子系の名称。
- SetP1()[ソース]
空間群をP1 (三斜晶系、空間群番号1) に設定する。
詳細説明: 対称操作をクリアし、空間群名、空間群番号、セット番号をP1に設定します。 基本的な対称操作として 'x,y,z' を追加し、格子系と格子軸を 'triclinic' に設定します。
- SetSPGName(SPGName)[ソース]
空間群名称を設定する。
詳細説明: 与えられた名称から引用符を除去して設定します。
- パラメータ:
SPGName -- str: 設定する空間群名称。
- SetSpaceGroup(SPGName, iSPG, iSet=1)[ソース]
空間群の名称、空間群番号、セット番号をまとめて設定する。
詳細説明: 与えられた名称から引用符を除去し、番号を整数型に変換して設定します。
- パラメータ:
SPGName -- str: 設定する空間群名称。
iSPG -- int: 設定する空間群番号。
iSet -- int: 設定するセット番号。デフォルトは1。
- SetiLaueGroup(iLaueG=None)[ソース]
Laue群のインデックスを設定する。
詳細説明: 与えられたインデックスで内部変数 __iLaueG を更新します。 引数がNoneの場合は何もしません(LaueGroupByRietanIndex が呼び出されますが、その結果は使われません)。
- パラメータ:
iLaueG -- int, optional: 設定するLaue群のインデックス。デフォルトはNone。
- SetiSet(iSet=1)[ソース]
セット番号を設定する。
詳細説明: 与えられた値を整数型に変換して設定します。デフォルト値は1です。
- パラメータ:
iSet -- int: 設定するセット番号。デフォルトは1。
- SymmetryOperation(i)[ソース]
指定されたインデックスの対称操作を返す。
- パラメータ:
i -- int: 取得する対称操作のインデックス。
- 戻り値:
str: 指定されたインデックスの対称操作を表す文字列。
- TranslationVector(i)[ソース]
指定されたインデックスの並進ベクトルを返す。
- パラメータ:
i -- int: 取得する並進ベクトルのインデックス。
- 戻り値:
list[int]: 並進ベクトル [tx, ty, tz]。