mp2_energy_t Derived Type

type, public :: mp2_energy_t

Container for MP2 energy components (SS/OS)


Inherited by

type~~mp2_energy_t~~InheritedByGraph type~mp2_energy_t mp2_energy_t type~energy_t energy_t type~energy_t->type~mp2_energy_t mp2 type~calculation_result_t calculation_result_t type~calculation_result_t->type~energy_t energy

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: os = 0.0_dp

Opposite-spin correlation energy (Hartree)

real(kind=dp), public :: ss = 0.0_dp

Same-spin correlation energy (Hartree)


Type-Bound Procedures

procedure, public :: check_stability => mp2_check_stability

Check for positive energies (instability)

  • private subroutine mp2_check_stability(this)

    Check for positive MP2 correlation energies (instability warning) Correlation energies should be negative; positive values indicate instability

    Arguments

    Type IntentOptional Attributes Name
    class(mp2_energy_t), intent(in) :: this

procedure, public :: reset => mp2_reset

Reset both components to zero

  • private subroutine mp2_reset(this)

    Reset both MP2 components to zero

    Arguments

    Type IntentOptional Attributes Name
    class(mp2_energy_t), intent(inout) :: this

procedure, public :: scs => mp2_scs

Compute SCS-MP2 correlation

  • private pure function mp2_scs(this) result(scs_energy)

    Compute SCS-MP2 (Spin-Component Scaled MP2) correlation energy SCS-MP2 uses: E_SCS = (1/3)E_SS + 1.2E_OS

    Arguments

    Type IntentOptional Attributes Name
    class(mp2_energy_t), intent(in) :: this

    Return Value real(kind=dp)

procedure, public :: total => mp2_total

Compute total MP2 correlation

  • private pure function mp2_total(this) result(total)

    Compute total MP2 correlation energy

    Arguments

    Type IntentOptional Attributes Name
    class(mp2_energy_t), intent(in) :: this

    Return Value real(kind=dp)

Source Code

   type :: mp2_energy_t
      !! Container for MP2 energy components (SS/OS)
      real(dp) :: ss = 0.0_dp  !! Same-spin correlation energy (Hartree)
      real(dp) :: os = 0.0_dp  !! Opposite-spin correlation energy (Hartree)
   contains
      procedure :: total => mp2_total           !! Compute total MP2 correlation
      procedure :: scs => mp2_scs               !! Compute SCS-MP2 correlation
      procedure :: reset => mp2_reset           !! Reset both components to zero
      procedure :: check_stability => mp2_check_stability  !! Check for positive energies (instability)
   end type mp2_energy_t