mcscf_options_t Derived Type

type, public :: mcscf_options_t

MCSCF/CASSCF calculation options


Inherited by

type~~mcscf_options_t~~InheritedByGraph type~mcscf_options_t mcscf_options_t type~mcscf_method_t mcscf_method_t type~mcscf_method_t->type~mcscf_options_t options

Components

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


Source Code

   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