SD_spin_purification_mod Module



Contents


Variables

Type Visibility Attributes Name Initial
type(Possible_SD_SpinPurificationMethods_t), public, parameter :: possible_purification_methods = Possible_SD_SpinPurificationMethods_t()
type(SD_SpinPurificationMethods_t), public, allocatable :: SD_spin_purification
real(kind=dp), public, allocatable :: spin_pure_J

Interfaces

public interface S2_expval_exc

  • private pure function S2_expval_exc_Excite_0_t(nI, exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: nI(:)

    The bra Slater determinant in nI format.

    type(Excite_0_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element. It is real even for complex NECI.

  • private pure function S2_expval_exc_Excite_1_t(nI, exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: nI(:)

    The bra Slater determinant in nI format.

    type(Excite_1_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element is always exactly zero

  • private pure function S2_expval_exc_Excite_2_t(nI, exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: nI(:)

    The bra Slater determinant in nI format.

    type(Excite_2_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element. It is real even for complex NECI.

  • private pure function S2_expval_exc_Excite_3_t(nI, exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: nI(:)

    The bra Slater determinant in nI format.

    type(Excite_3_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element is always exactly zero

public interface nI_invariant_S2_expval_exc

  • private pure function nI_invariant_S2_expval_exc_Excite_1_t(exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    type(Excite_1_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element is always exactly zero

  • private pure function nI_invariant_S2_expval_exc_Excite_2_t(exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    type(Excite_2_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element. It is real even for complex NECI.

  • private pure function nI_invariant_S2_expval_exc_Excite_3_t(exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    type(Excite_3_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element is always exactly zero

public interface ladder_op_exc

  • private pure function ladder_op_exc_Excite_0_t(nI, exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: nI(:)

    The bra Slater determinant in nI format.

    type(Excite_0_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element. It is real even for complex NECI.

  • private pure function ladder_op_exc_Excite_1_t(nI, exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: nI(:)

    The bra Slater determinant in nI format.

    type(Excite_1_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element is always exactly zero

  • private pure function ladder_op_exc_Excite_2_t(nI, exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: nI(:)

    The bra Slater determinant in nI format.

    type(Excite_2_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element. It is real even for complex NECI.

  • private pure function ladder_op_exc_Excite_3_t(nI, exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: nI(:)

    The bra Slater determinant in nI format.

    type(Excite_3_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element is always exactly zero

public interface nI_invariant_ladder_op_exc

  • private pure function nI_invariant_ladder_op_exc_Excite_1_t(exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    type(Excite_1_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element is always exactly zero

  • private pure function nI_invariant_ladder_op_exc_Excite_2_t(exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    type(Excite_2_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element. It is real even for complex NECI.

  • private pure function nI_invariant_ladder_op_exc_Excite_3_t(exc) result(res)

    Evaluates

    Arguments

    Type IntentOptional Attributes Name
    type(Excite_3_t), intent(in) :: exc

    Return Value real(kind=dp)

    The matrix element is always exactly zero


Derived Types

type, public, extends(EnumBase_t) ::  SD_SpinPurificationMethods_t

Components

Type Visibility Attributes Name Initial
integer, public :: val

Type-Bound Procedures

generic, public :: operator(==) => eq_EnumBase_t
generic, public :: operator(/=) => neq_EnumBase_t

Components

Type Visibility Attributes Name Initial
type(SD_SpinPurificationMethods_t), public :: FULL_S2 = SD_SpinPurificationMethods_t(1)
type(SD_SpinPurificationMethods_t), public :: ONLY_LADDER = SD_SpinPurificationMethods_t(2)
type(SD_SpinPurificationMethods_t), public :: TRUNCATED_LADDER = SD_SpinPurificationMethods_t(3)

Functions

public pure function S2_expval(nI, nJ) result(res)

Evaluates

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(:)

The bra Slater determinant in nI format.

integer, intent(in) :: nJ(:)

The ket Slater determinant in nI format.

Return Value real(kind=dp)

The matrix element. It is real even for complex NECI.

public pure function dyn_S2_expval_exc(nI, exc) result(res)

Evaluates

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(:)

The bra Slater determinant in nI format.

class(Excitation_t), intent(in) :: exc

An excitation.

Return Value real(kind=dp)

public pure function dyn_ladder_op_exc(nI, exc) result(res)

Evaluates

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(:)

The bra Slater determinant in nI format.

class(Excitation_t), intent(in) :: exc

An excitation.

Return Value real(kind=dp)

private pure function nI_invariant_ladder_op_exc_Excite_1_t(exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
type(Excite_1_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element is always exactly zero

private pure function nI_invariant_ladder_op_exc_Excite_2_t(exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
type(Excite_2_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element. It is real even for complex NECI.

private pure function nI_invariant_ladder_op_exc_Excite_3_t(exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
type(Excite_3_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element is always exactly zero

private pure function ladder_op_exc_Excite_0_t(nI, exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(:)

The bra Slater determinant in nI format.

type(Excite_0_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element. It is real even for complex NECI.

private pure function ladder_op_exc_Excite_1_t(nI, exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(:)

The bra Slater determinant in nI format.

type(Excite_1_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element is always exactly zero

private pure function ladder_op_exc_Excite_2_t(nI, exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(:)

The bra Slater determinant in nI format.

type(Excite_2_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element. It is real even for complex NECI.

private pure function ladder_op_exc_Excite_3_t(nI, exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(:)

The bra Slater determinant in nI format.

type(Excite_3_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element is always exactly zero

private pure function nI_invariant_S2_expval_exc_Excite_1_t(exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
type(Excite_1_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element is always exactly zero

private pure function nI_invariant_S2_expval_exc_Excite_2_t(exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
type(Excite_2_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element. It is real even for complex NECI.

private pure function nI_invariant_S2_expval_exc_Excite_3_t(exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
type(Excite_3_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element is always exactly zero

private pure function S2_expval_exc_Excite_0_t(nI, exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(:)

The bra Slater determinant in nI format.

type(Excite_0_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element. It is real even for complex NECI.

private pure function S2_expval_exc_Excite_1_t(nI, exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(:)

The bra Slater determinant in nI format.

type(Excite_1_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element is always exactly zero

private pure function S2_expval_exc_Excite_2_t(nI, exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(:)

The bra Slater determinant in nI format.

type(Excite_2_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element. It is real even for complex NECI.

private pure function S2_expval_exc_Excite_3_t(nI, exc) result(res)

Evaluates

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(:)

The bra Slater determinant in nI format.

type(Excite_3_t), intent(in) :: exc

Return Value real(kind=dp)

The matrix element is always exactly zero

public pure function get_open_shell(nI) result(res)

Return only the SOMOs.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(:)

Determinant in nI format.

Return Value integer, allocatable, (:)

The singly occupied orbitals. Result can be empty, i.e. allocated but size == 0.

public elemental function spin_momentum(s) result(res)

Return the angular momentum for a spin quantum number s.

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: s

The spin quantum number.

Return Value real(kind=dp)

public elemental function spin_q_num(spin_momentum) result(res)

Return the spin quantum number for a given angular momentum.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: spin_momentum

The spin angular momentum.

Return Value real(kind=dp)