kMatProjE Module



Contents


Variables

Type Visibility Attributes Name Initial
real(kind=dp), private, allocatable :: kMatProjEContrib(:)
real(kind=dp), public, parameter :: kMatLinFac = 0.25
real(kind=dp), public, parameter :: kMatSqFac = 0.375
real(kind=dp), public, parameter :: kMatParFac = 0.5
type(kMat_t), public :: kMatLin
type(kMat_t), public :: kMatSq
type(kMat_t), public :: kMatAA
type(kMat_t), public :: kMatAB

Derived Types

type, public ::  kMat_t

Components

Type Visibility Attributes Name Initial
integer(kind=MPIArg), private :: shm_win
real(kind=dp), private, pointer :: kMat_p(:)
integer(kind=int64), private :: kMatSize

Type-Bound Procedures

procedure , public :: readKMatFromFile Subroutine
procedure , public :: setupKMat Subroutine
procedure , public :: freeMemory Subroutine
procedure , public :: directElement Function
procedure , public :: exchElement Function
procedure , public :: elementAccess Function

Functions

public function directElement(this, i, j, k, l) result(matel)

Arguments

Type IntentOptional Attributes Name
class(kMat_t) :: this
integer, intent(in) :: i
integer, intent(in) :: j
integer, intent(in) :: k
integer, intent(in) :: l

Return Value real(kind=dp)

public function exchElement(this, i, j, k, l) result(matel)

Arguments

Type IntentOptional Attributes Name
class(kMat_t) :: this
integer, intent(in) :: i
integer, intent(in) :: j
integer, intent(in) :: k
integer, intent(in) :: l

Return Value real(kind=dp)

public function elementAccess(this, index) result(kMatel)

Arguments

Type IntentOptional Attributes Name
class(kMat_t) :: this
integer(kind=int64), intent(in) :: index

Return Value real(kind=dp)

public function determineKMatSize() result(kMatSize)

Arguments

None

Return Value integer(kind=int64)

public function kMat(index) result(val)

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: index

Return Value real(kind=dp)

public function kMatOppSpinCorrection(i, j, k, l) result(matel)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: i
integer, intent(in) :: j
integer, intent(in) :: k
integer, intent(in) :: l

Return Value real(kind=dp)

public function kMatParSpinCorrection(i, j, k, l) result(matel)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: i
integer, intent(in) :: j
integer, intent(in) :: k
integer, intent(in) :: l

Return Value real(kind=dp)

public function spinKMatContrib(i, j, k, l, s1, s2) result(matel)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: i
integer, intent(in) :: j
integer, intent(in) :: k
integer, intent(in) :: l
integer, intent(in) :: s1
integer, intent(in) :: s2

Return Value real(kind=dp)


Subroutines

public subroutine freeMemory(this)

Arguments

Type IntentOptional Attributes Name
class(kMat_t) :: this

public subroutine readKMatFromFile(this, filename)

Arguments

Type IntentOptional Attributes Name
class(kMat_t) :: this
character(len=*) :: filename

public subroutine setupKMat(this)

Arguments

Type IntentOptional Attributes Name
class(kMat_t) :: this

public subroutine freeKMat()

Arguments

None

public subroutine addProjEContrib(nI, nJ, sgn)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer, intent(in) :: nJ(nel)
real(kind=dp), intent(in) :: sgn(lenof_sign)

public subroutine printProjEContrib()

Arguments

None

public subroutine readKMat()

Arguments

None

public subroutine readSpinKMat()

Arguments

None