この日本語ページは準備中です。 技術的な詳細は英語版が最新かつ正確です。 → English version


Parameter desctiption

[!NOTE] Parameters excluding file paths are not case-sensitive.

All parameters

Parameter Description Type Default
parameter_file Parameter recipe file (command line only) string  
xyzfilename XYZ file string  
gbsfilename Gaussian basis set file string  
auxiliary_gbsfilename Path to auxiliary Gaussian basis set file for RI approximation (auto-generated if omitted) string  
use_spherical Use pure spherical-harmonic basis functions (5D/7F/9G, Molden ordering) instead of Cartesian Gaussians (6D/10F/15G) bool false
verbose Verbose mode bool false
method Method to use (RHF, UHF, ROHF, RKS) string RHF
charge Charge of the molecule int 0
beta_to_alpha Number of shifted electrons from beta-spin to alpha-spin int 0
maxiter Maximum number of SCF iterations int 100
convergence_energy_threshold Energy convergence threshold double 1.0e-6
int1e_method Method to use for one-electron integrals string hybrid
eri_method Method to use for two-electron repulsion integrals string stored
functional DFT exchange-correlation functional (RKS): svwn5, pbe string svwn5
grid_scheme DFT radial grid scheme: treutler, sg1, mura_knowles, gauss_chebyshev, delley string treutler
grid_level DFT grid level 0-9 (PySCF-compatible) int 1
dft_j_backend DFT Coulomb-matrix backend: auto, stored_j, direct_j, ri_j, direct_ri_j string auto
dft_vxc_backend DFT V_xc backend: grouped_v, direct_v, stored_v, aixc_v string grouped_v
dft_partition DFT grid binning: bgm, octree string bgm
dft_bin_capacity DFT grid points per bin int 256
post_hf_method Post-Hartree-Fock method to use (FCI, MP2, SCS_MP2, SOS_MP2, LT_MP2, LT_SOS_MP2, MP3, MP4, CC2, CCSD, CCSD_T, CCSD_DENSITY, DMET_CCSD, DMET_CCSD_T, CIS, ADC2, SOS_ADC2, LT_SOS_ADC2, ADC2X, EOM_MP2, EOM_CC2, EOM_CCSD) string none
n_excited_states Number of excited states to compute int 5
spin_type Spin type for excited states (singlet, triplet) string singlet
adc2_solver Solver for ADC(2) (auto, schur_static, schur_omega, full) string auto
eom_mp2_solver Solver for EOM-MP2 (auto, schur_static, schur_omega, full) string auto
eom_cc2_solver Solver for EOM-CC2 (auto, schur_static, schur_omega, full) string auto
schwarz_screening_threshold Schwarz screening threshold double 1.0e-12
initial_guess Method to use for initial guess string core
convergence_method Method to use for convergence string DIIS
damping_factor Damping factor double 0.9
diis_size Number of previous Fock matrices to store int 8
diis_include_transform Include the transformation matrix in DIIS bool false
rohf_parameter_name ROHF parameter set name string Roothaan
run_type Type of calculation to perform string energy
optimizer Optimization algorithm for geometry optimization string bfgs
mulliken Perform Mulliken population analysis bool false
mayer Perform Mayer bond order analysis bool false
wiberg Perform Wiberg bond order analysis bool false
export_molden Output Molden file (canonical MOs) bool false
export_lmo_molden Output Molden file with Pipek-Mezey localized occupied orbitals (RHF/UHF/ROHF; see DLPNO-CCSD / DLPNO-CCSD(T) parameters) bool false
ecp_filename Path to ECP file for effective core potentials string  
num_gpus Number of GPUs for multi-GPU RI-HF (-1 = auto-detect all available) int -1
dmet_fragments DMET fragment specification (e.g. "{0,6} {1,7}"); empty = auto-detect by X-H bonds string ””
dmet_threshold SVD threshold for DMET bath orbital selection (σ < threshold excluded) double 1.0e-6
dmet_n_tol DMET bisection tolerance on |Σ N_frag − N_elec| (Vayesta-compat: 4.2e-3 for benzene) double 1.0e-5
dmet_mu_refine_ccsd DMET 2-stage μ optimization (Stage 1: HF density, Stage 2: CCSD-relaxed density) bool false
dlpno_preset DLPNO truncation preset (loose / normal / tight / very_tight, ORCA-compatible). See DLPNO-CCSD / DLPNO-CCSD(T) parameters string normal
dlpno_localizer DLPNO occupied localization method (pm / boys / ibo) string pm
dlpno_lmp2_max_iter DLPNO LMP2 / CCSD T2 iter max (shared) int 100
dlpno_lmp2_conv DLPNO LMP2 residual convergence double 1e-8
dlpno_sc_pno_iter DLPNO self-consistent PNO refinement rounds int 1
dlpno_pair_distance_cutoff DLPNO pair distance pre-screening (Bohr) double 15.0
dlpno_verbose DLPNO log verbosity (0/1/2/3) int 1
dlpno_compute_density Build DLPNO Λ + 1-RDM after MP2/CCSD energy (Sub-phase 1+ of DLPNO-CCSD-Λ project, required for DMET integration / properties / dipole) bool false
opt_max_iter Geometry optimization max iterations int 200
opt_grad_threshold Convergence: max gradient component (Hartree/Bohr) double 3.0e-4
opt_rms_grad_threshold Convergence: RMS gradient (Hartree/Bohr) double 2.0e-4
opt_energy_threshold Convergence: energy change (Hartree) double 1.0e-6
opt_disp_threshold Convergence: max displacement (Bohr) double 3.0e-4
opt_step_max Trust-region radius (Bohr) double 0.3

Parameter parameters

Parameter Description Type Default
parameter_file Parameter recipe file (command line only) string  

If the parameter recipe file is given, the parameters are read from the file. The parameters in the recipe file are overwritten by the other parameters. This parameter is used only in the command line.

The contents of the parameter recipe file RHF_OptimalDamping.txt are a text file in which each line contains a parameter name and its value. For example, the contents of the parameter recipe are as follows:

xyzfilename = ../xyz/H2O.xyz
gbsfilename = ../basis/sto-3g.gbs
method = RHF
convergence_method = OptimalDamping

Input parameters

Parameter Description Type Default
xyzfilename Path to XYZ file string  
gbsfilename Path to Gaussian basis set file string  

xyzfilename - Path to XYZ file

If the input molecular is given by Molecule class, this parameter is ignored.

gbsfilename - Path to Gaussian basis set file

If the input basis set is given by BasisSet class, this parameter is ignored. However, if ``sad’’ is used as the initial guess, the basis set is required to set this parameter.

General parameters

Parameter Description Type Default
verbose Verbose mode bool false
method Method to use (RHF, UHF, ROHF, RKS) string RHF

verbose - Verbose mode

  • default: false
  • true - Print additional information
  • false - Do not print additional information

method - Method to use (RHF, UHF, ROHF)

  • default: RHF
  • RHF - Restricted Hartree-Fock
  • UHF - Unrestricted Hartree-Fock
  • ROHF - Restricted Open-Shell Hartree-Fock
  • RKS - 制限 Kohn-Sham(DFT)。DFT parameters を参照

Molecule parameters

Parameter Description Type Default
charge Charge of the molecule int 0
beta_to_alpha Number of shifted electrons from beta-spin to alpha-spin int 0

charge - Charge of the molecule

  • default: 0
  • Charge of the molecule (positive for cations, negative for anions)

beta_to_alpha - Number of shifted electrons from beta-spin to alpha-spin

  • default: 0
  • Number of shifted electrons from beta-spin to alpha-spin

How are the electrons assigned to the alpha and beta spins?

Given parameters:

  • $Z$ - The total number of positive charges in the nucleus of atoms in the molecule (= number of protons)
  • $c$ - The charge of the molecule
  • $u$ - The number of shifted electrons from beta-spin to alpha-spin

The numbers of electrons (alpha- and beta-spin electrons)

  • $N$ - The total number of electrons in the molecule
  • $N_{\alpha}$ - The number of electrons with alpha spin
  • $N_{\beta}$ - The number of electrons with beta spin

are calculated as follows:

  • $N = Z - c$
  • $N_{\alpha} = \left\lceil \frac{N}{2} \right\rceil + u$
  • $N_{\beta} = \left\lfloor \frac{N}{2} \right\rfloor - u$

When the number of electrons is odd, the number of alpha-spin electrons is greater than the number of beta-spin electrons by one. If any of the following conditions are met, an exception is thrown:

  • $N < 1$ (no electrons in the molecule)
  • $N_{\beta} < 0$ (the number of beta-spin electrons is negative)

SCF parameters

Parameter Description Type Default
maxiter Maximum number of SCF iterations int 100
convergence_energy_threshold Energy convergence threshold double 1.0e-6
int1e_method Method to use for one-electron integrals string hybrid
eri_method Method to use for two-electron repulsion integrals string stored
schwarz_screening_threshold Schwarz screening threshold double 1.0e-12
initial_guess Method to use for initial guess string core
convergence_method Method to use for convergence string DIIS
damping_factor Damping factor double 0.9
diis_size Number of previous Fock matrices to store int 8
diis_include_transform Include the transformation matrix in DIIS bool false
rohf_parameter_name ROHF parameter set name string Roothaan
post_hf_method Post-Hartree-Fock method to use string none

maxiter - Maximum number of SCF iterations

  • default: 100
  • Maximum number of SCF iterations to perform

convergence_energy_threshold - Energy convergence threshold

  • default: 1.0e-6
  • Energy convergence threshold for the SCF iterations

int1e_method - Method to use for one-electrion integrals (overlap integrals, kinetic energy integrals, and nuclear attraction integrals)

  • default: hybrid
  • md: McMurchie-Davidson algorithm
  • os: Obara-Saika algorithm

eri_method - Method to use for two-electron repulsion integrals

  • default: stored
  • stored - Two-electron repulsion integrals are stored in the device memory
  • RI - Resolution of the Identity (RI) approximation is used for the two-electron repulsion integrals (ERIs)
  • Direct - Direct calculation of the two-electron repulsion integrals (ERIs) without any approximation (Direct-SCF)
  • Direct_RI - Resolution of the Identity (RI) approximation, but three-center ERIs are directly computed without storing

auxiliary_gbsfilename - Auxiliary basis set file for RI approximation

  • default: (empty)
  • When eri_method is RI or Direct_RI, an auxiliary basis set is required.
  • If a file path is specified (e.g., -ag ../auxiliary_basis/cc-pvdz-rifit.gbs), the auxiliary basis is loaded from the file.
  • If omitted, the auxiliary basis is automatically generated from the primary basis using the product basis approach:
    1. Collect all primitive Gaussian exponents ${\alpha_i}$ from the primary basis for each element
    2. Generate pairwise sums $\alpha_i + \alpha_j$ ($i \le j$)
    3. Remove near-duplicate exponents (keep only if consecutive exponents differ by a factor of $\ge 2$)
    4. Create uncontracted auxiliary functions (coefficient = 1.0) for angular momenta $L = 0, 1, \ldots, 2L_{\max}$, where $L_{\max}$ is the maximum angular momentum in the primary basis
  • The auto-generated auxiliary basis provides a quick approximation but is less accurate than purpose-built auxiliary basis sets (e.g., cc-pVDZ-RIFIT). Use explicit auxiliary basis files for production calculations.

use_spherical - Cartesian vs spherical-harmonic basis functions

  • default: false (Cartesian)
  • false — Cartesian Gaussians: 6 d-functions, 10 f-functions, 15 g-functions (GANSU2’s native representation).
  • true — pure spherical harmonics: 5 d-functions, 7 f-functions, 9 g-functions, in Molden m-ordering (e.g. d: 0, +1, −1, +2, −2). Use this to reproduce standard cc-pVnZ results from ORCA / PySCF / NWChem, which default to spherical functions for d and higher shells. For example, cc-pVDZ benzene RHF matches the ORCA spherical-d reference to ≤ 1e-9 Ha.
  • Integrals are always computed in the Cartesian basis and then transformed to the spherical basis, so s and p shells are unchanged.
  • Supported with --use_spherical 1: RHF / UHF / ROHF energy (stored, RI, multi-GPU distributed RI, Direct-RI / Semi-Direct-RI); RI post-HF (MP2, SCS/SOS-MP2, CCSD, CIS, EOM, ADC(2), DLPNO, STEOM); THC; all initial guesses (core / gwh / sad / minao for RHF; core / gwh / sad for UHF/ROHF); ECP; analytical energy gradient and geometry optimization (stored and RI, single- and multi-GPU); analytical Hessian and vibrational frequencies; Molden export; Mulliken / dipole analysis.
  • Cartesian-only (a clear error is raised under --use_spherical 1): Direct-SCF and Hash ERIs, and the (experimental, Cartesian-unvalidated) MP2 gradient. Run these in Cartesian (omit --use_spherical).

post_hf_method - Post-Hartree-Fock method to use

  • default: none

Method names are case-insensitive. Hyphen variants are accepted (scs-mp2 ≡ scs_mp2, adc2-x ≡ adc2x, dmet-ccsd(t) ≡ dmet_ccsd_t, etc.).

Ground-state correlation methods
Value Description
none No post-HF method applied (HF only)
FCI Full Configuration Interaction. Exact within the basis. Cost grows factorially — only feasible for very small systems. Runs single-GPU by default; when GANSU2 is built with -DENABLE_MPI=ON and launched under mpirun on more than one rank, the FCI vector is sharded across ranks/GPUs by the distributed solver (fci_mpi), making determinant spaces that exceed a single GPU’s memory reachable (see Multi-node / multi-GPU Full-CI)
MP2 Møller–Plesset perturbation theory of 2nd order. Spin-orbital form: $E_{\mathrm{MP2}} = \tfrac{1}{4}\sum_{ijab} \frac{|\langle ij||ab\rangle|^2}{\varepsilon_i+\varepsilon_j-\varepsilon_a-\varepsilon_b}$ with antisymmetrized $\langle ij||ab\rangle = (ia|jb) - (ib|ja)$. Closed-shell (RMP2) reduces to $\sum_{ijab}\frac{(ia|jb)\,[2(ia|jb)-(ib|ja)]}{\varepsilon_i+\varepsilon_j-\varepsilon_a-\varepsilon_b}$. Splits into opposite-spin (OS) and same-spin (SS) components
SCS_MP2 Spin-Component-Scaled MP2 (Grimme 2003). $E = c_{\mathrm{OS}} E_{\mathrm{OS}} + c_{\mathrm{SS}} E_{\mathrm{SS}}$ with $c_{\mathrm{OS}} = 6/5$, $c_{\mathrm{SS}} = 1/3$. More accurate than MP2 at the same cost
SOS_MP2 Scaled Opposite-Spin MP2 (Jung & Head-Gordon 2004). Drops the same-spin term and rescales: $E = 1.3 \cdot E_{\mathrm{OS}}$. Same-spin omission removes the exchange integral path, enabling cheaper algorithms
LT_MP2 Laplace-Transform MP2. Replaces the orbital-energy denominator with $\frac{1}{x} \approx \sum_k w_k e^{-t_k x}$ (double-exponential quadrature). Decouples occupied/virtual indices, useful for RI-MP2 acceleration. Aliases: lt-mp2, laplace_mp2
LT_SOS_MP2 Laplace transform applied to SOS-MP2. The combination of opposite-spin-only and Laplace decoupling gives $\mathcal{O}(N^4)$ scaling with RI. Aliases: lt-sos-mp2, laplace_sos_mp2
MP3 MP3. Adds 3rd-order doubles correction over MP2. $\mathcal{O}(N^6)$
MP4 MP4 (full: SDQ + (T) contributions). $\mathcal{O}(N^7)$. Alias: mp4
CC2 Coupled-Cluster with approximate doubles. Doubles are kept at MP1 quality but coupled iteratively to singles. $\mathcal{O}(N^5)$
CCSD Coupled-Cluster with Singles and Doubles. $\mathcal{O}(N^6)$. Iterative
CCSD_T CCSD(T) — CCSD plus perturbative triples evaluated once at the converged CCSD amplitudes. The “gold standard” for ground-state correlation. $\mathcal{O}(N^7)$ for the (T) step
CCSD_DENSITY CCSD + Λ-equation solve + 1-RDM construction. Used internally by DMET and for natural-orbital / property analysis. Same energy as CCSD; adds Λ + 1-RDM cost
DMET_CCSD Density Matrix Embedding Theory with CCSD as the impurity solver. Auto-fragmentation by X–H bonds (or dmet_fragments manual spec). See DMET-CCSD parameters
DMET_CCSD_T DMET-CCSD plus per-fragment perturbative triples evaluated at the converged $\mu_{\mathrm{DMET}}$. Aliases: dmet-ccsd_t, dmet_ccsd(t), dmet-ccsd(t), dmet_ccsdt
DLPNO_CCSD Domain-based Local Pair Natural Orbital CCSD (Riplinger & Neese 2013, 2016). Closed-shell RHF only; requires RI. Pipek-Mezey occupied LMOs → PAO + per-LMO atom domains → per-pair PNO truncation → strong/weak-pair partitioning. Aliases: dlpno-ccsd. See DLPNO-CCSD / DLPNO-CCSD(T) parameters
DLPNO_CCSD_T DLPNO-CCSD plus perturbative triples evaluated on per-triple TNO bases via batched GPU kernels. PySCF-equivalent 6-W formulation. Aliases: dlpno-ccsd_t, dlpno_ccsd(t), dlpno-ccsd(t), dlpno_ccsdt
Excited-state methods
Value Description
CIS Configuration Interaction Singles. Diagonalizes $\langle\Phi_i^a|H-E_0|\Phi_j^b\rangle$. Lowest-cost excited-state method ($\mathcal{O}(N^4)$); generally over-estimates excitation energies by ~1 eV
ADC2 Algebraic Diagrammatic Construction of 2nd order, strict variant ADC(2)-s. M22 (doubles–doubles block) is purely diagonal: $D_2 = \varepsilon_a + \varepsilon_b - \varepsilon_i - \varepsilon_j$
SOS_ADC2 Scaled-Opposite-Spin ADC(2). Same-spin doubles dropped, OS scaled. Aliases: sos-adc2, sos_adc(2)
LT_SOS_ADC2 SOS-ADC(2) with Laplace-transformed denominators — $\mathcal{O}(N^4)$ with RI + Laplace quadrature. Aliases: lt-sos-adc2, lt_sos_adc(2)
ADC2X ADC(2) extended (adc(2)-x). M22 includes first-order off-diagonal terms (oooo, vvvv, voov), giving lower (more accurate) excitation energies than ADC(2)-s. Always uses the full Davidson solver. Aliases: adc2-x, adc(2)-x
EOM_MP2 Equation-of-Motion MP2 (≈ ADC(2) but Stanton–Bartlett style). M22 has off-diagonal couplings via T2
EOM_CC2 Equation-of-Motion CC2. Doubles kept at CC2 quality. M22 is exactly diagonal — Schur complement is exact (no approximation in schur_omega)
EOM_CCSD Equation-of-Motion CCSD. Most accurate single-reference excited-state method available here
THC_SOS_ADC2 Tensor Hypercontraction SOS-ADC(2) with Laplace transform (O(N^3) sigma build). LS-THC factorisation $V_{\mu\nu\lambda\sigma}!\approx!\sum_{PQ}X^P_\mu X^P_\nu Z_{PQ}X^Q_\lambda X^Q_\sigma$ on a Becke–Lebedev grid. Schur-folded Davidson + ω-iter. Set --eri_method ri (with auxiliary basis) for the memory-light Phase 2.3 RI-Z path; --eri_method stored works at small scales. See THC parameters. Aliases: thc-sos-adc2, thc_sos_adc(2)
IP_EOM_CCSD Ionization-Potential EOM-CCSD — $(N-1)$-electron ionized states on top of the CCSD reference (ionization potentials / cationic states). RHF closed-shell only; stored or RI. Aliases: ip-eom-ccsd, ipeom_ccsd, ipeom-ccsd
EA_EOM_CCSD Electron-Affinity EOM-CCSD — $(N+1)$-electron attached states (electron affinities / anionic states). RHF closed-shell only; stored or RI. Aliases: ea-eom-ccsd, eaeom_ccsd, eaeom-ccsd
STEOM_CCSD Similarity-Transformed EOM-CCSD (Nooijen–Bartlett). Diagonalizes the doubly similarity-transformed Hamiltonian in the singles space, capturing double excitations at singles cost. Automatically runs CIS-NTO + IP-EOM-CCSD + EA-EOM-CCSD as prerequisites. RHF closed-shell only. Aliases: steom-ccsd, steomccsd
DLPNO_STEOM_CCSD Local (linear-scaling-oriented) STEOM-CCSD. The DLPNO-CCSD ground state is back-transformed to the canonical basis and fed to canonical CIS-NTO + IP/EA-EOM + STEOM. RHF closed-shell; requires RI. Aliases: dlpno-steom-ccsd, dlpno_steom, dlpnosteom
CIS_NTO State-averaged CIS with a natural-transition-orbital (NTO) active space. Primarily the STEOM prerequisite (P0); can also be run standalone. Alias: cis-nto

For excited-state methods, see the Excited state parameters section for n_excited_states, spin_type, and per-method solver (adc2_solver, eom_mp2_solver, eom_cc2_solver).

schwarz_screening_threshold - schwarz screening threshold

  • default: 1.0e-12
  • Schwarz screening threshold for the two-electron repulsion integrals (ERIs)

Schwarz screening is used to reduce the computational cost of the two-electron repulsion integrals (ERIs). Schwarz inequality is applied to the two-electron repulsion integrals (ERIs) to reduce the computational cost. Schwarz inequality is given by the following inequality:

\left|(\mu\nu|\lambda\sigma)\right| \le \sqrt{(\mu\nu|\mu\nu)} \sqrt{(\lambda\sigma|\lambda\sigma)}

where $(\mu\nu|\lambda\sigma)$ is the two-electron repulsion integral (ERI) of the basis functions $\phi_{\mu}$, $\phi_{\nu}$, $\phi_{\lambda}$, and $\phi_{\sigma}$:

(\mu\nu|\lambda\sigma)=\iint \phi_{\mu}(\mathbf{r}_1) \phi_{\nu}(\mathbf{r}_1) \frac{1}{\mathbf{r}_{12}} \phi_{\lambda}(\mathbf{r}_2) \phi_{\sigma}(\mathbf{r}_2) d\mathbf{r}_1 d\mathbf{r}_2

Using Schwarz inequality, the two-electron repulsion integrals (ERIs) are calculated if $\sqrt{(\mu\nu|\mu\nu)} \sqrt{(\lambda\sigma|\lambda\sigma)}$ is greater than the Schwarz screening threshold. Otherwise, the two-electron repulsion integrals (ERIs) are set to zero.

initial_guess - Method to use for initial guess

  • default: core
  • core - Core Hamiltonian is used as the initial guess of the Fock matrix
  • gwh - Generalized Wolfsberg-Helmholz method (GWH) is used as the initial guess of the Fock matrix
  • sad - Superposition of Atomic Densities (SAD) is used as the initial guess of the Fock matrix
  • density - Given density matrix is used as the initial guess of the Fock matrix
  • minao - Minimal ANO (ANO-RCC-MB) projection initial guess (RHF)

convergence_method - Method to use for convergence

  • default: DIIS
  • Damping - Damping method with constant damping factor
  • OptimalDamping - Damping method with optimal damping factor (RHF, ROHF)
  • DIIS - Direct Inversion of the Iterative Subspace (DIIS)
  • SOSCF - Second-Order SCF (DIIS→SOSCF automatic switching, RHF)
  • ADIIS - Augmented DIIS (RHF)
  • EDIIS - Energy DIIS (RHF)
  • AEDIIS - Automatic EDIIS→ADIIS→DIIS switching (RHF)

damping_factor - Damping factor for DIIS

  • default: 0.9
  • Damping factor for damping method

diis_size - Number of previous Fock matrices to store

  • default: 8
  • Number of previous Fock matrices to store for DIIS convergence algorithm

diis_include_transform - Includes the transformation matrix in DIIS

  • default: false
  • true - Include the transformation matrix in DIIS for calculation of the error matrix $e$:
    • $e = X(FPS-SPF)X^T$
    • where $F$ is the Fock matrix, $P$ is the density matrix, and $S$ is the overlap matrix, and $X$ is the transformation matrix
  • false - Do not include the transformation matrix for calculation of the error matrix $e$
    • $e = FPS - SPF$

rohf_parameter_name - ROHF parameter set name

  • default: Roothaan
  • Parameter set name in computing the ROHF Fock matrix
Parameter set name $A^{CC}$ $B^{CC}$ $A^{OO}$ $B^{OO}$ $A^{VV}$ $B^{VV}$
Roothaan $-1/2$ $3/2$ $1/2$ $1/2$ $3/2$ $-1/2$
McWeeny-Diercksen $1/3$ $2/3$ $1/3$ $1/3$ $2/3$ $1/3$
Davidson $1/2$ $1/2$ $1$ $0$ $1$ $0$
Guest-Saunders $1/2$ $1/2$ $1/2$ $1/2$ $1/2$ $1/2$
Binkley-Pople-Dobosh $1/2$ $1/2$ $1$ $0$ $0$ $1$
Faegri-Manne $1/2$ $1/2$ $1$ $0$ $1/2$ $1/2$
Goddard $1/2$ $1/2$ $1/2$ $0$ $1/2$ $1/2$
Plakhutin-Gorelik-Breslavskaya $0$ $1$ $1$ $0$ $1$ $0$

mulliken - Perform Mulliken population analysis

  • default: false
  • true - Perform Mulliken population analysis after the SCF calculation
  • false - Do not perform Mulliken population analysis

mayer - Perform Mayer bond order analysis

  • default: false
  • true - Perform Mayer bond order analysis after the SCF calculation
  • false - Do not perform Mayer bond order analysis

wiberg - Perform Wiberg bond order analysis

  • default: false
  • true - Perform Wiberg bond order analysis after the SCF calculation
  • false - Do not perform Wiberg bond order analysis

export_molden - Export Molden file

  • default: false
  • true - Export Molden file after the SCF calculation (output filename: output.molden)
  • false - Do not output Molden file

export_lmo_molden - Export Pipek-Mezey localized occupied orbitals

  • default: false
  • true - Localize occupied MOs via Pipek-Mezey and write them to output_lmo.molden. Occupied block contains the LMOs (C_LMO = C_occ · U); virtual block keeps the canonical orbitals. For UHF, α and β are localized independently. For ROHF, doubly-occupied and singly-occupied subspaces are localized separately so closed-shell core and open-shell electrons do not mix. The orbital energies written for each LMO are the diagonal Fock-in-LMO-basis values $\varepsilon_i^{\mathrm{LMO}} = \sum_k U_{ki} ^2 \cdot \varepsilon_k^{\mathrm{can}}$ (exact since canonical $F$ is diagonal in the canonical MO basis).
  • false - Do not export localized orbitals

Compatible Molden viewers: MOrbVis, Avogadro, Jmol, VMD, Pegamoid.

DFT parameters(DFT パラメータ)

--method rks で制限 Kohn-Sham DFT を選択します。RKS は RHF の SCF 機構(初期推定・DIIS/SOSCF・収束判定)をそのまま使い、Fock 行列の交換項を数値積分した交換相関ポテンシャル $V_{xc}$ に置き換えます。閉殻のみ対応で、UKS / ROKS、ハイブリッド汎関数、meta-GGA、DFT 解析勾配は未実装です。

Parameter Description Type Default
functional 交換相関汎関数: svwn5(LDA、別名 lda, svwn), pbe(GGA) string svwn5
grid_scheme 動径求積: treutler, sg1, mura_knowles, gauss_chebyshev, delley string treutler
grid_level グリッド密度 0–9(PySCF 互換のレベル表、sg1 では無視) int 1
dft_j_backend Coulomb 行列 (J) の構築法: auto, stored_j, direct_j, ri_j, direct_ri_j string auto
dft_vxc_backend $V_{xc}$ の構築法: grouped_v, direct_v, stored_v, aixc_v string grouped_v
dft_partition $V_{xc}$ 構築時のグリッド点の空間分割: bgm, octree string bgm
dft_bin_capacity 1 ビンあたりの最大グリッド点数 int 256

functional - 交換相関汎関数

  • default: svwn5
  • svwn5 - Slater 交換 + VWN5 相関(LDA)
  • pbe - Perdew-Burke-Ernzerhof 交換相関(GGA)

grid_scheme / grid_level - 分子積分グリッド

  • PySCF と同じ Becke 分割の原子中心グリッド(同じ動径・角度レベル表、NWChem 方式の角度プルーニング)です。grid_level は PySCF の grids.level と同じ意味で、同じレベルなら PySCF とエネルギーを直接比較できます(PySCF の既定はレベル 3)。
  • 目安: 水はレベル 1 で約 1 万点、レベル 3 で約 3.4 万点。ベンゼンはレベル 1 で約 4.6 万点、レベル 3 で約 14.4 万点。
  • sg1 は固定の SG-1 グリッドで grid_level を無視します。

dft_j_backend - Coulomb 行列の構築法

  • default: auto — eri_method に追従します: stored → stored_j, ri → ri_j, direct_ri → direct_ri_j, direct → direct_j。
  • stored_j - 保存した $n_{ao}^4$ の ERI テンソルから J を作る(eri_method stored の RHF と同じメモリ量)
  • direct_j - 密度差スクリーニング付きの on-the-fly J。高速カーネルは s/p 殻の組だけで、d 以上は汎用の遅いカーネルに落ちる(ベンゼン/6-31G(d)、A100 で SCF 1 回 8.6 s、stored_j なら 0.3 s)
  • ri_j / direct_ri_j - $B$ テンソルを保存する/保存しない RI-J。どちらも補助基底(-ag)が必要。MP2 用補助基底(*-rifit.gbs)では RI-J の誤差が大きい(ベンゼンで約 9 mEh。同じ補助基底の PySCF の density-fitted RKS と一致)ので、絶対エネルギーが要るときは JK-fit 補助基底を使うこと。

dft_vxc_backend - 交換相関ポテンシャルの構築法

  • default: grouped_v
  • grouped_v - グリッド点を空間的にビン分け(dft_partition)し、ビンごとに AO をスクリーニングして密度と $V_{xc}$ の縮約をバッチ cuBLAS GEMM で行う。既定の分割 bgm(bond-group Morton: 各結合を囲む 6 シードのケージを主キーにし、その中を Morton 順に並べる)は細長い分子で各ビンの有効 AO 数を素の Morton 曲線より 20〜35 % 減らす。octree は代替
  • direct_v / stored_v - 参照実装。stored_v は $n_{grid} \times n_{ao}$ の AO 行列全体をデバイスに保持する。3 つとも $10^{-12}$ Eh で一致
  • aixc_v - アンカー付き差分 XC(anchored incremental XC)。数回のフルグリッド構築の後、多くの SCF ステップでは密度の変化分だけを代表点 20 % のサブグリッドで評価(control variate で補正)し、周期的にフルグリッドで再アンカーする。収束受理の直前には必ずフルグリッドで $V_{xc}$ を作り直す。A100・grid level 6・PBE(ナフタレン〜DHA、190〜520 基底)で $V_{xc}$ 構築 1 回の平均時間が grouped_v の 2.3〜2.6 分の 1 になり、収束エネルギーは $6 \times 10^{-7}$ Eh 以内で一致する。SCF 反復は 0〜10 回増えるので、SCF 全体での得は 1 反復に占める $V_{xc}$ の割合(グリッドが細かい・GGA)で決まる

例

# PBE / cc-pVDZ、PySCF レベル 3 のグリッド
gansu2 -x ../xyz/H2O.xyz -g cc-pvdz --method rks --functional pbe --grid_level 3

# LDA + RI-J(補助基底が必要)
gansu2 -x ../xyz/Benzene.xyz -g 6-31g_st --method rks --functional svwn5 --eri_method ri -ag ../auxiliary_basis/cc-pvdz-rifit.gbs

検証: cart=True かつ同じ grid_level の PySCF と、H2O(STO-3G, 6-31G, cc-pVDZ)とベンゼン(6-31G, 6-31G(d))の全エネルギーが PBE で約 $10^{-7}$ Eh、SVWN5 で $7 \times 10^{-7}$ Eh 以内で一致します。

Excited state parameters

Parameter Description Type Default
n_excited_states Number of excited states to compute int 5
spin_type Spin type for excited states string singlet
adc2_solver Solver for ADC(2) string auto
eom_mp2_solver Solver for EOM-MP2 string auto
eom_cc2_solver Solver for EOM-CC2 string auto

These parameters are used when post_hf_method is set to an excited state method (CIS, ADC2, ADC2X, EOM_MP2, EOM_CC2, EOM_CCSD).

n_excited_states - Number of excited states to compute

  • default: 5
  • Number of lowest excited states to compute. Must not exceed the singles dimension (nocc × nvir).

spin_type - Spin type for excited states

  • default: singlet
  • singlet - Compute singlet excited states (default). Oscillator strengths are computed.
  • triplet - Compute triplet excited states. Oscillator strengths are zero (spin-forbidden electric dipole transitions from singlet ground state).
  • Supported methods: CIS, ADC2, ADC2X. For triplet states, only the M11 block (CIS + ISR correction) differs from singlet; M12, M21, D2, and M22 are identical.

adc2_solver - Solver for ADC(2)

  • default: auto
  • auto - Automatically selects full or schur_omega based on available GPU memory (80% threshold)
  • full - Full Davidson in singles+doubles space. Exact but requires more GPU memory.
  • schur_omega - ω-dependent Schur complement with self-consistent iteration. M_eff(ω) = M11 + M12·(ωI − D2)⁻¹·M21. Iterates each root until ω converges.
  • schur_static - Single Schur complement at ω=0. M_eff = M11 − M12·D2⁻¹·M21. Fastest but least accurate.

eom_mp2_solver - Solver for EOM-MP2

  • default: auto
  • auto - Automatically selects full or schur_omega based on available GPU memory (80% threshold)
  • full - Full Davidson in singles+doubles space. Exact but may encounter near-zero eigenvalues from the doubles null space.
  • schur_omega - ω-dependent Schur complement with self-consistent iteration. Builds dense M_eff(ω) matrix and uses non-symmetric eigendecomposition. More accurate than schur_static.
  • schur_static - Approximate Schur complement at ω=0 using Davidson. M22 off-diagonal (t2×r2 coupling) is ignored. Fast but approximate.

eom_cc2_solver - Solver for EOM-CC2

  • default: auto
  • auto - Automatically selects full or schur_omega based on available GPU memory (80% threshold)
  • full - Full Davidson in singles+doubles space. Exact. M22 is diagonal so no null space issues (unlike EOM-MP2).
  • schur_omega - ω-dependent Schur complement with self-consistent Davidson iteration. EXACT (M22 is purely diagonal, no approximation). Default and recommended.
  • schur_static - Schur complement at ω=0 using Davidson. EXACT Schur (no M22 approximation) but ω=0 approximation remains.

Note: For EOM-CC2, M22 is exactly diagonal, so the Schur complement introduces NO approximation (unlike EOM-MP2 where M22 off-diagonal terms are ignored). The only approximation in schur_static is the ω=0 assumption.

ADC(2)-s vs ADC(2)-x

ADC(2) has two variants:

  ADC(2)-s (adc2) ADC(2)-x (adc2x)
M11 (singles) CIS + ISR + self-energy Same as ADC(2)-s
M12, M21 (coupling) Coupling blocks Same as ADC(2)-s
M22 (doubles) Diagonal only: D2 = ε_a+ε_b−ε_i−ε_j D2 + first-order off-diagonal terms (oooo, vvvv, voov)

ADC(2)-x includes explicit electron correlation in the doubles space, generally giving lower (more accurate) excitation energies. ADC(2)-x always uses the full Davidson solver.

# CIS with 10 excited states
gansu2 -x ../xyz/H2O.xyz -g sto-3g --post_hf_method cis --n_excited_states 10

# ADC(2) with auto solver selection (default)
gansu2 -x ../xyz/H2O.xyz -g cc-pvdz --post_hf_method adc2

# ADC(2)-x (extended)
gansu2 -x ../xyz/H2O.xyz -g cc-pvdz --post_hf_method adc2x

# ADC(2) with explicit full Davidson solver
gansu2 -x ../xyz/H2O.xyz -g cc-pvdz --post_hf_method adc2 --adc2_solver full

# Triplet excited states
gansu2 -x ../xyz/H2O.xyz -g cc-pvdz --post_hf_method cis --spin_type triplet
gansu2 -x ../xyz/H2O.xyz -g cc-pvdz --post_hf_method adc2 --spin_type triplet
gansu2 -x ../xyz/H2O.xyz -g cc-pvdz --post_hf_method adc2x --spin_type triplet

# EOM-MP2 with schur_omega solver
gansu2 -x ../xyz/H2O.xyz -g cc-pvdz --post_hf_method eom_mp2 --eom_mp2_solver schur_omega

# EOM-CC2 with full Davidson solver
gansu2 -x ../xyz/H2O.xyz -g cc-pvdz --post_hf_method eom_cc2 --eom_cc2_solver full

# EOM-CCSD
gansu2 -x ../xyz/H2O.xyz -g cc-pvdz --post_hf_method eom_ccsd

Geometry optimization parameters

Parameter Short Description Type Default
run_type -r Type of calculation string energy
optimizer   Optimization algorithm string bfgs

run_type - Type of calculation to perform

  • default: energy
  • energy - Single-point energy calculation only
  • gradient - Single-point energy calculation followed by analytical energy gradient evaluation
  • optimize - Geometry optimization using analytical energy gradients (BFGS by default)
  • hessian - Single-point energy followed by analytical Hessian and harmonic vibrational frequencies (mass-weighted normal modes, IR intensities). Translational/rotational modes are projected out
# Single-point energy (default)
gansu2 -x ../xyz/H2O.xyz -g sto-3g

# Energy gradient
gansu2 -x ../xyz/H2O.xyz -g sto-3g -r gradient

# Geometry optimization
gansu2 -x ../xyz/H2O.xyz -g sto-3g -r optimize

# Analytical Hessian + vibrational frequencies
gansu2 -x ../xyz/H2O.xyz -g sto-3g -r hessian

optimizer - Optimization algorithm for geometry optimization

  • default: bfgs

This parameter is used only when run_type is set to optimize.

Quasi-Newton methods

Quasi-Newton methods build and update an approximate inverse Hessian matrix $H^{-1}$ to determine the search direction $\mathbf{p} = -H^{-1} \mathbf{g}$. All quasi-Newton methods use Armijo backtracking line search with a trust radius.

Value Algorithm Hessian update formula
bfgs Broyden-Fletcher-Goldfarb-Shanno $H’^{-1} = H^{-1} + \frac{(\mathbf{s}^T \mathbf{y} + \mathbf{y}^T H^{-1} \mathbf{y})}{(\mathbf{s}^T \mathbf{y})^2} \mathbf{s}\mathbf{s}^T - \frac{H^{-1}\mathbf{y}\mathbf{s}^T + \mathbf{s}\mathbf{y}^T H^{-1}}{\mathbf{s}^T \mathbf{y}}$
dfp Davidon-Fletcher-Powell $H’^{-1} = H^{-1} + \frac{\mathbf{s}\mathbf{s}^T}{\mathbf{y}^T\mathbf{s}} - \frac{H^{-1}\mathbf{y}\mathbf{y}^T H^{-1}}{\mathbf{y}^T H^{-1}\mathbf{y}}$
sr1 Symmetric Rank-1 $H’^{-1} = H^{-1} + \frac{(\mathbf{s}-H^{-1}\mathbf{y})(\mathbf{s}-H^{-1}\mathbf{y})^T}{(\mathbf{s}-H^{-1}\mathbf{y})^T\mathbf{y}}$

where $\mathbf{s} = \mathbf{x}{k+1} - \mathbf{x}_k$ (position change) and $\mathbf{y} = \mathbf{g}{k+1} - \mathbf{g}_k$ (gradient change).

  • BFGS is the most robust and widely used method. Maintains positive definiteness of the Hessian.
  • DFP is the dual of BFGS. Updates the Hessian directly rather than the inverse. Generally less robust than BFGS.
  • SR1 can capture negative curvature in the Hessian, which may be useful for transition state searches. Does not guarantee positive definiteness.
The Hessian update is skipped when the curvature condition is not met ($\mathbf{s}^T\mathbf{y} \le 10^{-10}$ for BFGS/DFP, or $ (\mathbf{s}-H^{-1}\mathbf{y})^T\mathbf{y} < 10^{-8} |\mathbf{y}| |\mathbf{s}-H^{-1}\mathbf{y}|$ for SR1).
Conjugate gradient methods

Conjugate gradient methods determine the search direction as $\mathbf{d}k = -\mathbf{g}_k + \beta_k \mathbf{d}{k-1}$, where $\beta_k$ is the conjugate gradient coefficient. These methods do not require storage of an $N \times N$ Hessian matrix, making them memory-efficient for large systems. All CG methods use Armijo backtracking line search with a trust radius.

Value Algorithm $\beta_k$
cg-fr Fletcher-Reeves $\beta_k = \frac{|\mathbf{g}_{k+1}|^2}{|\mathbf{g}_k|^2}$
cg-pr Polak-Ribière $\beta_k = \frac{\mathbf{g}{k+1}^T(\mathbf{g}{k+1} - \mathbf{g}_k)}{|\mathbf{g}_k|^2}$
cg-hs Hestenes-Stiefel $\beta_k = \frac{\mathbf{g}{k+1}^T(\mathbf{g}{k+1} - \mathbf{g}k)}{\mathbf{d}_k^T(\mathbf{g}{k+1} - \mathbf{g}_k)}$
cg-dy Dai-Yuan $\beta_k = \frac{|\mathbf{g}{k+1}|^2}{\mathbf{d}_k^T(\mathbf{g}{k+1} - \mathbf{g}_k)}$

Automatic restart: When $\beta_k < 0$, the method restarts with steepest descent ($\beta_k = 0$). Descent check: If $\mathbf{g}_k^T \mathbf{d}_k \ge 0$ (not a descent direction), the search direction is reset to $-\mathbf{g}_k$.

GDIIS (Geometry Direct Inversion in the Iterative Subspace)
Value Algorithm
gdiis GDIIS

GDIIS combines quasi-Newton steps with DIIS extrapolation. It maintains an internal BFGS inverse Hessian and a subspace of recent geometries and error vectors. At each step, the error vector $\mathbf{e}_i = -H^{-1}\mathbf{g}_i$ is computed and the DIIS equation

\min_{\mathbf{c}} \sum_{ij} c_i B_{ij} c_j \quad \text{subject to} \quad \sum_i c_i = 1

is solved, where $B_{ij} = \mathbf{e}i \cdot \mathbf{e}_j$. The new geometry is obtained as $\mathbf{x}{\mathrm{new}} = \sum_i c_i (\mathbf{x}_i + \mathbf{e}_i)$.

GDIIS does not use line search (the step is directly accepted). The maximum subspace size is 6.

Steepest descent
Value Algorithm
sd Steepest Descent

The search direction is simply $\mathbf{p} = -\mathbf{g}$. Uses Armijo backtracking line search with a trust radius. Convergence is slow due to zigzag behavior, but it is useful for debugging.

Convergence criteria

The geometry optimization uses four convergence criteria:

Criterion Threshold Description
Max gradient $3.0 \times 10^{-4}$ Hartree/Bohr Maximum gradient component
RMS gradient $2.0 \times 10^{-4}$ Hartree/Bohr Root mean square of gradient
Energy change $1.0 \times 10^{-6}$ Hartree Absolute energy change between steps
Max displacement $3.0 \times 10^{-4}$ Bohr Maximum atomic displacement

Convergence is declared when both gradient criteria (max and RMS) are satisfied, or when both energy change and max displacement criteria are satisfied. The maximum number of optimization steps is 200 and the trust radius is 0.3 Bohr.

Translational and rotational invariance

At each optimization step, the translational and rotational components are projected out from the gradient and the search direction using Gram-Schmidt orthogonalization against the 6 (or 5 for linear molecules) basis vectors spanning the translational and rotational degrees of freedom.

Output control

run_type SCF iterations Profiler SAD log Gradient
energy displayed displayed displayed -
gradient displayed displayed displayed displayed
optimize suppressed suppressed suppressed used internally
# Geometry optimization with BFGS (default)
gansu2 -x ../xyz/H2O.xyz -g sto-3g -r optimize

# Geometry optimization with Polak-Ribière conjugate gradient
gansu2 -x ../xyz/H2O.xyz -g sto-3g -r optimize --optimizer cg-pr

# Geometry optimization with GDIIS
gansu2 -x ../xyz/H2O.xyz -g sto-3g -r optimize --optimizer gdiis

# UHF geometry optimization with SAD initial guess
gansu2 -x ../xyz/O2.xyz -g sto-3g -m UHF --initial_guess sad -r optimize

DMET-CCSD parameters

Parameter Description Type Default
dmet_fragments Fragment specification (e.g. "{0,6} {1,7}"); empty = auto-detect by X-H bonds string ””
dmet_threshold SVD threshold for bath orbital selection (σ < threshold excluded) double 1.0e-6
dmet_n_tol Bisection tolerance on |Σ N_frag − N_elec| double 1.0e-5
dmet_mu_refine_ccsd 2-stage μ optimization (HF density → CCSD-relaxed density) bool false

DMET-CCSD partitions the molecule into atom-localized fragments, builds a Schmidt-decomposed embedding cluster (fragment AOs + bath orbitals) for each, and solves CCSD on each cluster independently. A global chemical potential μ is bisected to satisfy the embedded-fragment density-consistency condition Σ N_frag = N_elec. Equivalent fragments are detected via embedding-Hamiltonian eigenvalue matching and reused.

For DMET-CCSD(T), pass --post_hf_method dmet_ccsd_t (or dmet-ccsd_t, dmet_ccsdt, dmet_ccsd(t)). The (T) perturbative-triples correction is computed per fragment at the converged μ_DMET using canonical denominators (small |f_ov| at the converged μ makes the canonical-(T) approximation acceptable), then summed across fragments with equivalent-fragment reuse.

dmet_fragments - Fragment specification

Empty string (default) triggers automatic detection: each heavy atom becomes a fragment, and each hydrogen joins its nearest heavy-atom fragment within 2.6 Bohr (≈ 1.38 Å). For example, benzene (C6H6) auto-detects 6 CH fragments.

Manual specification uses brace notation, atoms 0-indexed:

# 6 CH pairs in benzene (atoms C0/H6, C1/H7, ...)
gansu2 -x ../xyz/Benzene.xyz -g sto-3g --post_hf_method dmet \
    --dmet_fragments "{0,6} {1,7} {2,8} {3,9} {4,10} {5,11}"

dmet_threshold - SVD threshold

Bath orbitals are constructed from the SVD of C_lo_occ[frag_AOs, :]. Singular values σ < dmet_threshold are excluded as numerical noise; σ ≥ 1 − 1e-12 are core orbitals (excluded from the active cluster, counted in n_core).

dmet_n_tol - Bisection tolerance

Bisection of μ stops when |Σ_F N_frag(μ) − N_elec| < dmet_n_tol. Default 1e-5 enforces strict density consistency. For Vayesta-compatible loose convergence (4.2e-3 for benzene, matching Vayesta’s max_elec_err = 1e-4 × N_elec), pass --dmet_n_tol 4.2e-3 (yields earlier termination, slightly different μ_DMET).

dmet_mu_refine_ccsd - 2-stage μ optimization

  • false (default): single-stage CCSD-density bisection. Runs CCSD/Lambda/dm1 at every μ evaluation; the relaxed dm1 trace defines N_frag(μ).
  • true: two-stage refinement. Stage 1 performs HF-density bisection (fast, μ-continuous). Stage 2 refines around μ_HF* using CCSD-relaxed dm1 in a tight bracket. Falls back to Stage 1 result if Stage 2 hits a discontinuity (e.g. heteroatom OH fragments). Recommended only for paper-quality match with external DMET implementations; default is sufficient for most uses.

DMET-STEOM CIS-guided automatic fragment extraction

For the excited-state driver (post_hf_method=dmet_steom), the chromophore fragment can be extracted automatically from the excitation itself instead of being specified by hand. A full-system state-averaged CIS-NTO is computed up front; each atom is scored by its occupation-weighted hole+particle NTO Löwdin population, and the chromophore is the greedy set of atoms that reaches the coverage target (capped by the cluster orbital budget). This is distinct from the ground-state dmet_fragments above — it is only consulted on the dmet_steom path, and an explicit dmet_fragments always takes priority.

Parameter Description Type Default
dmet_steom_auto_fragment Auto-extract the chromophore fragment from CIS-NTO per-atom weights bool false
dmet_steom_auto_coverage Cumulative per-atom NTO coverage target T double 0.92
dmet_steom_auto_atom_floor Per-atom NTO weight floor f (atoms below this are not candidates) double 0.01
dmet_steom_auto_budget Cluster orbital budget B (est. n_emb); 0 = auto per solver (canonical 460 / dlpno 700) int 0
dmet_steom_auto_include_h Attach bonded H to selected heavy atoms (default off: env C–H σ is covered by the Schmidt bath) bool false
dmet_steom_auto_n_cis CIS state count for the extraction; 0 = auto (max(steom_n_root_cis, n_excited_states+4)) int 0
dmet_steom_auto_max_expand Max gauge-triggered fragment-expansion rounds (Phase B) int 1
dmet_steom_auto_focus_states Build the extraction NTO from only the lowest N CIS roots (0 = average over all n_cis); focuses the fragment on the target π→π, avoiding n→π contamination (RI path only) int 0
dmet_steom_auto_json Path to write per-state per-atom NTO localization as JSON (Phase C: for external state grouping / job splitting); empty = off (RI path only) string ””
dmet_steom_auto_xyz Path to write the auto-selected chromophore fragment as an .xyz (paper / visualization); empty = off string ””

The dmet_steom_auto_json output is consumed by script/dmet_steom_group_states.py, which clusters the excited states by where they localize (cosine similarity of the per-atom vectors), writes one fragment .xyz per spatial group, and emits a separate DMET-STEOM job per group — so spatially distinct excitations (e.g. an anthraquinone π→π* and a remote n→π*) are solved in independent clean clusters instead of one scattered state-average fragment.

The extraction prints a per-atom NTO weight table, the selected atoms with achieved coverage, and warnings when the selection is floor-sensitive, hits the orbital budget, is delocalized (above-floor atoms cannot reach the target → degenerates toward full STEOM), or spans more than three disconnected regions (likely a mix of spatially distinct excitations). The hoisted CIS-NTO is reused by the downstream NTO-bath gauge/augmentation (no recompute).

# CIS-guided auto fragment for DMET-STEOM (no manual --dmet_fragments)
gansu2 -x ../xyz/large_molecular/Doxorubicin.xyz -g cc-pvdz --eri_method ri \
    -ag ../auxiliary_basis/cc-pvdz-rifit.gbs \
    --post_hf_method dmet_steom --n_excited_states 5 \
    --dmet_steom_auto_fragment 1 --dmet_cluster_solver dlpno --num_gpus 4
# Auto fragment detection, default tight tol
gansu2 -x ../xyz/Benzene.xyz -g sto-3g --eri_method ri \
    -ag ../auxiliary_basis/cc-pvdz-rifit.gbs \
    --post_hf_method dmet --num_gpus 4

# DMET-CCSD(T) — adds perturbative triples per fragment at μ_DMET
gansu2 -x ../xyz/Benzene.xyz -g sto-3g --eri_method ri \
    -ag ../auxiliary_basis/cc-pvdz-rifit.gbs \
    --post_hf_method dmet_ccsd_t --num_gpus 4

# Vayesta-compatible loose tolerance for benchmarking
gansu2 -x ../xyz/Benzene.xyz -g sto-3g --eri_method ri \
    -ag ../auxiliary_basis/cc-pvdz-rifit.gbs \
    --post_hf_method dmet --dmet_n_tol 4.2e-3

# Verbose per-fragment diagnostics (for debugging)
GANSU_DMET_VERBOSE=1 gansu2 ... --post_hf_method dmet

DLPNO-CCSD / DLPNO-CCSD(T) parameters

Parameter Description Type Default
dlpno_preset Truncation preset (loose, normal, tight, very_tight) — sets all t_cut_* cutoffs to ORCA-compatible values string normal
dlpno_localizer Occupied localization method (pm, boys, ibo) string pm
dlpno_t_cut_pno PNO occupation cutoff. -1 = use preset value double -1
dlpno_t_cut_do PAO redundancy threshold (overlap eigenvalue). -1 = preset double -1
dlpno_t_cut_pairs Strong/weak pair MP2 cutoff in Ha. -1 = preset double -1
dlpno_t_cut_mkn Boughton-Pulay Mulliken cumulative threshold for domain selection. -1 = preset double -1
dlpno_t_cut_triples Triple screening threshold for (T). -1 = preset double -1
dlpno_t_cut_tno TNO occupation cutoff for (T). -1 = preset double -1
dlpno_pair_distance_cutoff Pair distance pre-screening cutoff in Bohr. 0 = off double 15.0
dlpno_max_iter DLPNO-CCSD residual max iterations int 50
dlpno_diis_size DIIS subspace size for DLPNO-CCSD int 6
dlpno_localizer_max_sweep Pipek-Mezey / Boys Jacobi sweep upper bound int 200
dlpno_localizer_conv Localizer functional ΔL convergence threshold double 1e-10
dlpno_lmp2_max_iter LMP2 / CCSD T2 dressing iter max (shared cap) int 100
dlpno_lmp2_conv LMP2 residual convergence (max|R|) double 1e-8
dlpno_sc_pno_iter Self-consistent PNO refinement rounds (0 = single-shot from semi-canonical guess) int 1
dlpno_pno_os_only PNO selection from opposite-spin amplitudes only (use with SOS-MP2 scaling) bool false
dlpno_verbose 0=summary, 1=phase, 2=per-pair profile, 3=residual int 1
export_lmo_molden Write Pipek-Mezey localized occupied MOs to output_lmo.molden bool false

DLPNO-CCSD and DLPNO-CCSD(T) (Riplinger, Neese, Pinski, Sandhoefer 2013/2016) achieve near-canonical CCSD(T) accuracy at near-linear scaling by exploiting four nested locality layers: (1) occupied LMOs (Pipek-Mezey), (2) projected atomic orbitals (PAO) + per-LMO atom domains, (3) per-pair PNO truncation, and (4) strong/weak-pair partitioning where weak pairs are reduced to MP2.

This release implements the closed-shell RHF variant; UHF / ROHF DLPNO is not yet available. The RI back-end (--eri_method ri plus an -ag <aux>) is required.

dlpno_preset — ORCA-compatible preset values

Preset t_cut_pno t_cut_do t_cut_pairs t_cut_triples t_cut_tno
loose 1.0e-6 2.0e-2 1.0e-3 1.0e-6 1.0e-9
normal 3.33e-7 1.0e-2 1.0e-4 1.0e-7 1.0e-9
tight 1.0e-7 5.0e-3 1.0e-5 1.0e-8 1.0e-10
very_tight 1.0e-8 2.0e-3 1.0e-6 1.0e-9 1.0e-10

Individual dlpno_t_cut_* parameters override the preset when set to a non-negative value.

Examples

# DLPNO-CCSD on water hexamer (normal preset)
gansu2 -x ../xyz/large_molecular/water_hexamer.xyz -g cc-pvdz \
    --eri_method ri -ag ../auxiliary_basis/cc-pvdz-rifit.gbs \
    --post_hf_method dlpno_ccsd --dlpno_preset normal --num_gpus 8

# DLPNO-CCSD(T) with tight preset for benchmarking
gansu2 -x ../xyz/large_molecular/water_hexamer.xyz -g cc-pvdz \
    --eri_method ri -ag ../auxiliary_basis/cc-pvdz-rifit.gbs \
    --post_hf_method dlpno_ccsd_t --dlpno_preset tight --num_gpus 8

# Detailed per-section profile (debug)
gansu2 ... --post_hf_method dlpno_ccsd_t --dlpno_verbose 2

# Export Pipek-Mezey localized orbitals for visualization
gansu2 -x ../xyz/Benzene.xyz -g cc-pvdz --export_lmo_molden 1

THC parameters

Used by --post_hf_method thc_sos_adc2. The grid+collocation+LS-THC infrastructure also serves the placeholder thc_mp2 / thc_sos_mp2 paths.

Parameter Description Type Default
thc_n_radial Treutler–Ahlrichs M3 radial points per atom int 50
thc_lebedev_order Lebedev angular order: 110, 194, or 302 int 194
thc_n_laplace Laplace quadrature points (SOS-MP2 / SOS-ADC(2)) int 12
thc_rel_cutoff LS-THC SVD relative cutoff for the rank of M real 1e-7
thc_sos_c_os Opposite-spin scaling factor for SOS-MP2 (ADC(2) uses internal 1.17) real 1.3
thc_density_threshold Drop grid points with electron density ρ ≤ threshold (Phase 2.3 (B)). 0 disables real 0
thc_b3a3 Master switch for B3-exchange + A3-Coulomb Schur corrections (Phase 2.2b). Off by default — present implementation over-corrects by ~1.5 eV (LS-THC structural limit) bool false
thc_b3 Per-term toggle for B3 (only consulted when thc_b3a3=true) bool true
thc_a3 Per-term toggle for A3 (only consulted when thc_b3a3=true) bool true
  • Default (Coulomb-only Schur) — gives CIS-level excitation energies; matches RI-Coulomb-only-SOS-Schur up to grid quality. Production-ready
  • B3+A3 enabled — implementation is complete but over-corrects (LS-THC structural). Use only for debugging / benchmarking. Per-term toggles thc_b3 / thc_a3 allow isolated study
  • RI-Z path — --eri_method ri -ag <aux_basis> selects the memory-light Phase 2.3 (A) path; the LS-THC core $Z$ is built from the RI 3-index tensor without ever materialising the analytic 4-index ERI. Multi-GPU is supported via auto-gather of d_B_local_ to GPU 0
  • Density pruning — --thc_density_threshold 1e-8 typical. Drops grid points where the SCF density falls below threshold; preserves excitation-energy precision (8-digit agreement in H2O/sto-3g testing) and reduces N_g 3–10 %

Memory budget

Per-GPU RAM cost on benzene/cc-pVDZ scale:

Buffer Size n=15/L=194 (N_g=33232)
3 × N_g² Y, ZY, T (Coulomb) 26.5 GB
Z replica LS-THC core 8.8 GB
3 × N_g² extra B3+A3 (Z_occ, W, U) 26.5 GB
Other (M, F, MT, X_mo, …) ov × N_g · O(1) ~1 GB

A100 80 GB fits Coulomb-only at thc_n_radial 20–25 / lebedev 194 and Coulomb+B3+A3 at thc_n_radial 15 / lebedev 194 for benzene-class systems.

Example

# Production: Phase 2.3 RI-Z + density pruning, Coulomb-only
gansu2 -x ../xyz/large_molecular/Benzene.xyz -g cc-pvdz -m RHF \
    --eri_method ri -ag ../auxiliary_basis/cc-pvdz-rifit.gbs \
    --post_hf_method thc_sos_adc2 \
    --n_excited_states 5 \
    --thc_n_radial 15 --thc_lebedev_order 194 --thc_n_laplace 8 \
    --thc_density_threshold 1e-8

# Diagnostic: B3+A3 with per-term toggles
gansu2 -x ../xyz/H2O.xyz -g sto-3g -m RHF \
    --post_hf_method thc_sos_adc2 --thc_b3a3 true --thc_b3 true --thc_a3 false

Hardware / backend parameters

Parameter Description Type Default
num_gpus Number of GPUs for multi-GPU RI-HF int -1
–cpu Run entirely on CPU (no GPU required) flag off
–list-basis List available built-in basis sets and exit flag —

num_gpus - Number of GPUs for multi-GPU RI-HF

  • default: -1 (auto-detect all visible GPUs)
  • Multi-GPU parallelism is currently implemented for RI-HF (eri_method = RI) and DMET fragment-parallel execution. Other ERI methods (stored, Direct) run on a single GPU regardless of this setting
  • Set to a positive integer to cap the number of GPUs used (e.g. --num_gpus 2 on a 4-GPU node)
  • For DMET, fragments are distributed across GPUs in Replicated mode (each GPU holds the full RI tensor) when memory permits; otherwise Distributed mode is used (RI tensor sharded by aux index, NCCL AllReduce for Fock build)
# Single-GPU RI-HF
gansu2 -x ../xyz/large_molecular/fullerene.xyz -g sto-3g \
    --eri_method ri -ag ../auxiliary_basis/cc-pvdz-rifit.gbs

# 4-GPU RI-HF
gansu2 -x ../xyz/large_molecular/fullerene.xyz -g sto-3g \
    --eri_method ri -ag ../auxiliary_basis/cc-pvdz-rifit.gbs --num_gpus 4

# Multi-GPU DMET-CCSD(T) on water hexamer
gansu2 -x ../xyz/H2O_hexamer_prism_opt.xyz -g sto-3g \
    --eri_method ri -ag ../auxiliary_basis/def2-svp-rifit.gbs \
    --post_hf_method dmet_ccsd_t --num_gpus 4

–cpu - CPU-only execution

  • default: off (GPU is used)
  • When the --cpu flag is passed, GANSU2 runs entirely on CPU using OpenMP-parallelized integral and tensor kernels. No NVIDIA GPU is required
  • Supported: HF (RHF/UHF/ROHF), gradients, Hessians, all post-HF methods (MP2/3/4, CCSD, CCSD(T), CIS, ADC(2), EOM-CCSD, FCI), DMET-CCSD
  • Performance is substantially lower than the GPU path; use for development, debugging, or environments without CUDA
gansu2 -x ../xyz/H2O.xyz -g sto-3g --cpu
gansu2 -x ../xyz/H2O.xyz -g sto-3g -r hessian --cpu
gansu2 -x ../xyz/H2O.xyz -g cc-pvdz --post_hf_method ccsd --cpu

–list-basis - List available basis sets

  • Prints the names of all built-in basis sets shipped under basis/ and exits without running a calculation
  • Useful for discovering the exact basis name to pass to -g
gansu2 --list-basis

ECP parameters

Parameter Description Type Default
ecp_filename Path to ECP (Effective Core Potential) file string (none)

ecp_filename - Effective Core Potential file

  • default: (empty)
  • Most basis-set files already embed their ECP — if the .gbs passed to -g contains XX-ECP blocks (e.g. lanl2dz.gbs has Cl/Br/I, def2-svp.gbs has I/Ir/Pt), the ECP is loaded and applied automatically; no --ecp_filename is needed. Which elements get an ECP is basis-dependent (e.g. def2 uses ECPs only for Z ≥ 37, so Br stays all-electron in def2-SVP but I uses a 28-electron-core ECP).
  • --ecp_filename is the alternate route: load an ECP from a separate file (Gaussian-style ECP block convention, matching Basis Set Exchange). Useful when the basis .gbs has only orbital exponents.
  • When an ECP is active, the listed elements’ core electrons are replaced by a parameterized potential ([ECP] N core electrons replaced ... is printed) and the effective nuclear charge / electron count are reduced accordingly. Useful for heavy elements where relativistic / large-core effects matter.
  • Works with both Cartesian and spherical (--use_spherical) bases, for energy and gradient.
# ECP embedded in the basis (no --ecp_filename needed)
gansu2 -x ../xyz/HI.xyz -g def2-svp                    # I: 28-core ECP, all-electron H
gansu2 -x ../xyz/HI.xyz -g def2-svp --use_spherical 1  # same, spherical basis

# ECP from a separate file
gansu2 -x ../xyz/heavy_atom.xyz -g cc-pvdz --ecp_filename ../basis/cc-pvdz-pp.ecp

This site uses Just the Docs, a documentation theme for Jekyll.