Target molecule#

このセクションでは計算対象の分子についての設定を行います。 この設定は、Target Periodic Systemの設定と排他的です。

Geometry#

計算対象の分子構造をデカルト座標またはZ-matrix記法で指定できます。未指定の場合はエラーが発生します。

Atoms#

分子を構成する原子核をリストとして入力します。

Coordinates#

atomsに入力した原子核のリストの順番に対応した座標のリストで、1つの分子構造を指定します。 分子の座標は単位をÅとして入力します。

Geometry format#

各原子の座標の記法を以下の選択肢の中から指定します。 入力がない場合はCARTESIANがデフォルトとなります。

  • CARTESIAN (デフォルト)

  • Z_MATRIX

Basis set#

PySCF でサポートされている基底関数が設定できます。未指定の場合はエラーが発生します。 このフィールドは atom_specific_basis が設定されている場合には設定することができません。

Charge#

分子の電荷(デフォルトは0)

Multiplicity#

求めたい状態のスピン多重度 \(2S+1\) の値。未指定の場合若しくは電子数と矛盾が生じる場合はエラーが発生します。

HF charge#

Hartree-Fock計算時使われる電荷(デフォルトはchargeと同じ)

HF multiplicity#

Hartree-Fock計算時使われるスピン多重度 \(2S+1\) の値(デフォルトはmultiplicityと同じ)

initial HF molecular orbital#

HF計算用の初期分子軌道(外側のリスト:各分子軌道を構成する基底関数の係数、内側のリスト:分子軌道)

\(S_z\)#

求めたい状態の\(z\)方向スピン \(S_z\) の値(デフォルトは設定されたスピン多重度 \(2S+1\)\(S\) と同じ値)

Number of excited states#

求めたい励起状態の数 (デフォルトは0)

Complete active space#

活性空間の軌道数と電子数を設定することで完全活性空間casを指定できます。

  • active_orb: 活性空間の軌道数

  • active_ele: 活性空間内の電子数

  • cas_list: 活性空間に含める軌道番号(0から開始)のリスト。入力がない場合はHOMO,LUMO周辺から活性軌道が選ばれます。

Density fitting#

デフォルトでは基底関数のサイズによっては計算ができない(エラー終了してしまう)ことがあり、そのような場合は密度フィッティング近似を有効にすることで計算できる場合があります。 密度フィッティングでは2電子積分において、2つの原子軌道の積を補助基底関数で展開し、誤差の自己反発積分を最小にするようにその係数を決定しています。

補助基底関数は入力した基底関数(basis)に対応する最適なものが自動で選択されます。 本プログラムではコレスキー分解された原子軌道積分の3階テンソル\(((ij|kl)=V_{ij,x}V_{kl,x})\)を用いて、分子軌道積分に変換しています。 以下のオプションをtrueに設定することで密度フィッティングを有効にすることができます。

  • density_fitting

Molecular orbital format#

Hartree-Fork計算によって得られる分子軌道データの出力形式を以下のオプションから選択可能です。 軌道最適化を伴うVQEや、CASCI, CASSCF計算では指定した形式で最適化された軌道も出力します。 デフォルトでは分子軌道データを出力しません。

  • MOLDEN

Cartesian basis functions#

PySCFで使用されるd軌道とf軌道の基底関数として、\(S_z\) 固有状態の既約表現(5d, 7f)の代わりに、デカルト基底関数(6d, 10f)を用います。

  • cart_basis: trueの場合デカルト基底関数を使用します(デフォルトはfalse)。

Effective core potentials#

PySCFに渡す有効コアポテンシャルは、dictsのリストとして指定することができます。

  • ecp: 原子とそれに対応する有効核ポテンシャルを、dictsのリストとして、 atom フィールドと basis フィールドによって設定します。

  • atom: 有効核ポテンシャルを設定したい原子

  • basis: 有効核ポテンシャルを表現するための基底 (例: "crenbs""lanl2dz" など)

Atom specific basis#

PySCFが使用する基底セットは、各原子に対してディクションのリストとして指定できます(有効核ポテンシャルと同様)。 このフィールドは basis が設定されている場合には設定することができません。

  • atom_specific_basis: 原子種およびそれに対応する基底関数を、dictsのリストとして、 atom フィールドと basis フィールドによって設定します。

  • atom: 原子種(例:Na``Cu``など)

  • basis: 基底関数 (例: "sto-3g""6311++g**" など)

FCIDUMP#

注:実験的機能であり、予告なく変更や廃止される可能性があります。

分子軌道の電子積分をFCIDUMP形式(文字列)で与えることで、VQE計算に使うハミルトニアンを生成できます。 その場合、分子物性は計算できません。

  • fcidump

入力例#

"target_molecule": {
  "geometry": {
    "atoms": ["Na", "H"],
    "coordinates": [
      [0, 0, 0], [0, 0, 0.7]
    ],
    "geometry_format": "CARTESIAN",
  },
  "basis": "sto-3g",
  "charge": 0,
  "multiplicity": 1,
  "hf_charge": 0,
  "hf_multiplicity": 1,
  "initial_hf_molecular_orbital":
    "mo_coeff": [
     [
       0.5445586947820809,
       1.2620659398031695
     ],
     [
       0.5445586947820809,
       -1.2620659398031695
     ],
  "sz_number": 0,
  "num_excited_states": 0,
  "cas": {
    "active_ele": 2,
    "active_orb": 2,
    "cas_list": [0, 1]
  },
  "density_fitting": true,
  "molecular_orbital_format": "MOLDEN",
  "fcidump": "&FCI NORB=   2,NELEC= 2,MS2=0,\n ORBSYM=1,1,\n ISYM=1,\n&END\n0.6823895331520424    1    1    1    1\n0.6707327783087587    1    1    2    2\n0.1790005760614067    2    1    2    1\n0.6707327783087588    2    2    1    1\n0.7051056321727837    2    2    2    2\n-1.277853006156875    1    1  0  0\n-0.4482996961016371    2    2  0  0\n0.7559674441714287  0  0  0  0",
  "cart_basis": false
  "ecp": [
    {
      "atom": "Na",
      "basis": "lanl2dz",
    },
  ]
}