mcscf_config_t Derived Type

type, public :: mcscf_config_t

Configuration for MCSCF/CASSCF method


Inherited by

type~~mcscf_config_t~~InheritedByGraph type~mcscf_config_t mcscf_config_t type~method_config_t method_config_t type~method_config_t->type~mcscf_config_t mcscf type~driver_config_t driver_config_t type~driver_config_t->type~method_config_t method_config type~many_body_expansion_t many_body_expansion_t type~many_body_expansion_t->type~method_config_t method_config type~many_body_expansion_t->type~driver_config_t driver_config type~gmbe_context_t gmbe_context_t type~gmbe_context_t->type~many_body_expansion_t type~mbe_context_t mbe_context_t type~mbe_context_t->type~many_body_expansion_t

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: ci_convergence = 1.0e-8_dp

CI energy 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

integer, public :: max_macro_iter = 100

Maximum orbital optimization iterations

integer, public :: max_micro_iter = 50

Maximum CI iterations per macro

integer, public :: n_active_electrons = 0

Number of active electrons

integer, public :: n_active_orbitals = 0

Number of active orbitals

integer, public :: n_inactive_orbitals = -1

Inactive orbitals (-1 = auto from nelec)

integer, public :: n_states = 1

Number of states for SA-CASSCF

real(kind=dp), public :: orbital_convergence = 1.0e-6_dp

Orbital gradient threshold

character(len=16), public :: pt2_type = 'nevpt2'

PT2 flavor: “caspt2”, “nevpt2”

real(kind=dp), public, allocatable :: state_weights(:)

State weights (must sum to 1)

logical, public :: use_pt2 = .false.

Apply CASPT2/NEVPT2 after CASSCF


Source Code

   type :: mcscf_config_t
      !! Configuration for MCSCF/CASSCF method

      ! Active space definition
      integer :: n_active_electrons = 0
         !! Number of active electrons
      integer :: n_active_orbitals = 0
         !! Number of active orbitals
      integer :: n_inactive_orbitals = -1
         !! Inactive orbitals (-1 = auto from nelec)

      ! State averaging
      integer :: n_states = 1
         !! Number of states for SA-CASSCF
      real(dp), allocatable :: state_weights(:)
         !! State weights (must sum to 1)

      ! Convergence
      integer :: max_macro_iter = 100
         !! Maximum orbital optimization iterations
      integer :: max_micro_iter = 50
         !! Maximum CI iterations per macro
      real(dp) :: orbital_convergence = 1.0e-6_dp
         !! Orbital gradient threshold
      real(dp) :: ci_convergence = 1.0e-8_dp
         !! CI energy threshold

      ! Perturbative corrections
      logical :: use_pt2 = .false.
         !! Apply CASPT2/NEVPT2 after CASSCF
      character(len=16) :: pt2_type = 'nevpt2'
         !! PT2 flavor: "caspt2", "nevpt2"
      real(dp) :: ipea_shift = 0.25_dp
         !! IPEA shift for CASPT2
      real(dp) :: imaginary_shift = 0.0_dp
         !! Imaginary shift for intruder states
   end type mcscf_config_t