5.6. [config] セクション

多元系の原子配置やPotts 模型の格子サイズなど,配位に関するパラメータを指定します. 以下のようなファイルフォーマットをしています.

[config]
unitcell = [[8.1135997772, 0.0000000000, 0.0000000000],
            [0.0000000000, 8.1135997772, 0.0000000000],
            [0.0000000000, 0.0000000000, 8.1135997772]]
supercell = [1,1,1]

[[config.base_structure]]
type = "O"
coords = [
    [0.237399980, 0.237399980, 0.237399980],
    [0.762599945, 0.762599945, 0.762599945],
    ## 中略
    [0.262599975, 0.262599975, 0.762599945],
    ]
relaxation = [
  [true, true, true],
    ## 中略
  [false, false, false],
  ]
magnetization = [0.0, 0.5, ...中略..., 0.0]

[[config.defect_structure]]
coords = [
    [0.000000000, 0.000000000, 0.000000000],
    [0.749999940, 0.249999985, 0.499999970],
    ## 中略
    [0.124999993, 0.624999940, 0.124999993],
    ]

[[config.defect_structure.groups]]
name = 'Al'
# species = ['Al']    # default
# coords = [[[0,0,0]]]  # default
# relaxation = [[true, true, true]]  # default
# magnetization = [0.0]  # default
num = 16

[[config.defect_structure.groups]]
name = 'Mg'
# species = ['Mg']    # default
# coords = [[[0,0,0]]]  # default
# relaxation = [[true, true, true]]  # default
# magnetization = [0.0]  # default
num = 8

5.6.1. 入力形式

keyword = values の形式でキーワードとその値を指定します. また,#をつけることでコメントを入力することができます(それ以降の文字は無視されます).

5.6.2. キーワード

solver.type != "potts" の場合

  • 格子の指定

    • unitcell

      形式 : list型

      説明 : 格子ベクトル \(\bf{a}, \bf{b}, \bf{c}\) を, リスト形式で [ \(\bf{a}, \bf{b}, \bf{c}\) ] として指定します.

    • supercell

      形式 : list型

      説明 : 超格子の大きさをリスト形式で [ \(\bf{a}, \bf{b}, \bf{c}\) ] 指定します.

    • init_structure

      形式 : str型

      説明 : モンテカルロサンプリングの初期構造ファイル(POSCAR やCIF 形式など)を指定します. 指定しなかった場合,ランダムに生成されます.

    • constraint_module

      形式 : bool型

      説明 : 配位に対して拘束条件を課すかどうかを指定します.デフォルト値は false です.

      true の場合,拘束条件はユーザが定義する関数で与えます.この関数は constraint_module.py 内に constraint_func という関数名で配置し,pymatgen.core.Structure 型の構造データを引数にとりbool型の値を返す関数として定義します.また, shuffle を行う際に構造データからエネルギー値を計算する constraint_energy 関数を定義して使用することもできます.

    • constraint

      形式 : str型

      説明 : 配位に対する拘束条件を与えるユーザ定義関数を指定します.指定しない場合は拘束条件を課しません.デフォルト値は指定なしです.

      拘束条件は,任意のモジュール内に配置された,pymatgen.core.Structure型の構造データを引数にとりbool型の値を返す関数として定義します. constraint パラメータには関数名を "モジュール名.関数名" の形式で指定します. constraint_moduletrue に指定されている場合は, constraint パラメータの指定が優先されます.

  • [[config.base_structure]] セクション

    typecoords によりモンテカルロ計算で動かさない原子種とその座標を指定します. 原子種が複数ある場合には,複数の [[config.base_strucure]] セクションを指定します.

    • type

      形式 : str型

      説明 : 原子種を指定します.

    • coords

      形式 : listのlist もしくは 文字列

      説明 : 座標を指定します. 3次元座標を表す3要素のリストをN 個(原子の数)だけ並べたリストか,座標を N 行 3列に並べた文字列で指定します.

    • relaxation

      形式 : listのlist もしくは 文字列

      説明 : 原子・空間次元ごとに,構造最適化を行うかどうかを指定します. 真偽値("true" or "false")を表す3要素のリストをN 個(原子の数)だけ並べたリストか,真偽値を N 行 3列に並べた文字列で指定します. デフォルトはすべて "true" です.

    • magnetization

      形式 : list

      説明 : 原子ごとに磁化(up/down 電子個数差)を指定します. デフォルトはすべて 0.0 です.

  • [[config.defect_structure]] セクション

    モンテカルロで更新する原子が入る座標 (coords)と入りうる原子(団) (group) を指定します.

    • coords

      形式 : listのlist もしくは 文字列

      説明 : 原子が入る座標を指定します. 3次元座標を表す3要素のリストをN 個(原子の数)だけ並べたリストか,座標を N 行 3列に並べた文字列で指定します.

    • [[config.defect_structure.groups]] セクション

      モンテカルロで更新する原子グループの情報を指定します.

      • name

        形式 : str型

        説明 : 原子グループの名前を指定します.

      • species

        形式 : list型

        説明 : 原子グループに属する原子種を指定します. デフォルト値は name で指定したものがひとつだけ含まれたリストです. また,空のリストを用いて欠陥を表現できます.

      • coords

        形式 : listのlistのlist

        説明 : 原子グループ中の各原子の座標を,局所回転の向きごとに指定します. 3次元座標を表す3要素のリストをN 個(原子の数)だけ並べたリストをさらに向きごとにならべた,3重のリストとして指定します. たとえば原子の数が2つあり,回転の方向としてx,y,z 向きの3種類考える場合には,

        coords = [
        [ # dir-1
        [0.0, 0.0, 0.0], [0.5, 0.0, 0.0]
        ],
        [ # dir-2
        [0.0, 0.0, 0.0], [0.0, 0.5, 0.0]
        ],
        [ # dir-3
        [0.0, 0.0, 0.0], [0.0, 0.0, 0.5]
        ],
        ]
        

        のように指定します. デフォルト値は [[[0.0, 0.0, 0.0]]] なので,原子が一つしかない場合には一般に省略可能です.

      • relaxation

        形式 : listのlist もしくは 文字列

        説明 : 原子・空間次元ごとに,構造最適化を行うかどうかを指定します. 真偽値("true" or "false")を表す3要素のリストをN 個(原子の数)だけ並べたリストか,真偽値を N 行 3列に並べた文字列で指定します. デフォルトはすべて "true" です.

      • magnetization

        形式 : list

        説明 : 原子ごとに磁化(up/down 電子個数差)を指定します. デフォルトはすべて 0.0 です.

      • num

        形式 : int型

        説明 : この原子グループの数を指定します.

  • [[config.chemical_potential]] セクション

    グランドカノニカルサンプリングにおいて,原子種や原子グループに対する化学ポテンシャルを指定します.

    • species

      形式 : str型 もしくは str型のリスト

      説明 : 原子種または原子グループの名前を指定します.複数の原子種・原子グループにまとめて同じ値を設定する場合は,それらをリストで指定します.

    • mu

      形式 : float型

      説明 : species に対応する化学ポテンシャルの値を指定します.

  • [[config.grandcanonical_move]] セクション

    グランドカノニカルサンプリングにおいて,原子種または原子グループの増減や,原子種の入れ替えが起きる場合の入れ替わる原子種を指定します.指定方法は以下のとおりです.

    • 原子種または原子グループの増減

      • species

        形式 : str型 もしくは str型のリスト

        説明 : 原子種または原子グループの名前を指定します.複数の原子種・原子グループを同時に増減させる場合は,それらをリストで指定します.同種の原子種を複数個指定することもできます.

    • 原子種の入れ替え

      • from, to

        形式 : str型 もしくは str型のリスト

        説明 : 入れ替わる原子種または原子グループの名前を from A to B の形で指定します. from B to A の入れ替えも自動的に考慮されます. from, to で指定する原子種の数は同じで,同一の defect sublattice に配置されているとします.

    grandcanonical_move の指定がないときは, chemical_potential に記述される原子種・原子グループまたはその組が増減する指定が自動的に挿入されます. 一方, grandcanonical_move の指定が一つでもあれば,その操作のみが行われます.

solver.type = "potts" の場合

  • Q

    形式 : 自然数

    説明 : Potts 模型でスピンが取りうる状態の数.

  • L

    形式 : 自然数のリスト

    説明 : 超立方格子のサイズ.