MCSCF/CASSCF calculation options
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=32), | public | :: | basis_set | = | 'sto-3g' |
Basis set name |
|
| real(kind=dp), | public | :: | ci_tol | = | 1.0e-8_dp |
CI energy convergence threshold |
|
| real(kind=dp), | public | :: | energy_tol | = | 1.0e-8_dp |
Energy convergence threshold |
|
| real(kind=dp), | public | :: | imaginary_shift | = | 0.0_dp |
Imaginary shift for intruder states |
|
| real(kind=dp), | public | :: | ipea_shift | = | 0.25_dp |
IPEA shift for CASPT2 (Hartree) |
|
| integer, | public | :: | max_macro_iter | = | 100 |
Maximum macro (orbital optimization) iterations |
|
| integer, | public | :: | max_micro_iter | = | 50 |
Maximum CI iterations per macro step |
|
| integer, | public | :: | n_active_electrons | = | 0 |
Number of active electrons (CAS) |
|
| integer, | public | :: | n_active_orbitals | = | 0 |
Number of active orbitals (CAS) |
|
| integer, | public | :: | n_inactive_orbitals | = | -1 |
Number of inactive (doubly occupied) orbitals -1 means auto-determine from nelec and active electrons |
|
| integer, | public | :: | n_states | = | 1 |
Number of states for state-averaged CASSCF |
|
| character(len=16), | public | :: | orbital_optimizer | = | 'super-ci' |
Orbital optimizer: “super-ci”, “newton-raphson”, “ah” (augmented Hessian) |
|
| real(kind=dp), | public | :: | orbital_tol | = | 1.0e-6_dp |
Orbital gradient convergence threshold |
|
| character(len=16), | public | :: | pt2_type | = | 'nevpt2' |
PT2 type: “caspt2”, “nevpt2” |
|
| logical, | public | :: | spherical | = | .true. |
Use spherical (true) or Cartesian (false) basis |
|
| real(kind=dp), | public, | allocatable | :: | state_weights(:) |
Weights for state averaging (must sum to 1) |
||
| logical, | public | :: | use_pt2 | = | .false. |
Apply perturbative correction after CASSCF |
|
| logical, | public | :: | verbose | = | .false. |
Print iteration details |
type :: mcscf_options_t !! MCSCF/CASSCF calculation options character(len=32) :: basis_set = 'sto-3g' !! Basis set name logical :: spherical = .true. !! Use spherical (true) or Cartesian (false) basis logical :: verbose = .false. !! Print iteration details ! Active space definition integer :: n_active_electrons = 0 !! Number of active electrons (CAS) integer :: n_active_orbitals = 0 !! Number of active orbitals (CAS) integer :: n_inactive_orbitals = -1 !! Number of inactive (doubly occupied) orbitals !! -1 means auto-determine from nelec and active electrons ! State-averaging integer :: n_states = 1 !! Number of states for state-averaged CASSCF real(dp), allocatable :: state_weights(:) !! Weights for state averaging (must sum to 1) ! Convergence settings integer :: max_macro_iter = 100 !! Maximum macro (orbital optimization) iterations integer :: max_micro_iter = 50 !! Maximum CI iterations per macro step real(dp) :: orbital_tol = 1.0e-6_dp !! Orbital gradient convergence threshold real(dp) :: energy_tol = 1.0e-8_dp !! Energy convergence threshold real(dp) :: ci_tol = 1.0e-8_dp !! CI energy convergence threshold ! Orbital optimization algorithm character(len=16) :: orbital_optimizer = 'super-ci' !! Orbital optimizer: "super-ci", "newton-raphson", "ah" (augmented Hessian) ! Perturbative corrections logical :: use_pt2 = .false. !! Apply perturbative correction after CASSCF character(len=16) :: pt2_type = 'nevpt2' !! PT2 type: "caspt2", "nevpt2" real(dp) :: ipea_shift = 0.25_dp !! IPEA shift for CASPT2 (Hartree) real(dp) :: imaginary_shift = 0.0_dp !! Imaginary shift for intruder states end type mcscf_options_t