averaging Module

averaging module This module consists of tools that are required for averaging occupations scheme for averaging within different MO subspaces as specified by the strutures P%av_occ(:)



Functions

public function is_occupied(p, f, n_occ, oi) result(res)

function is_occupied: P: Parameter structure N_occ: occ array oi: orbital index returns TRUE if there might be a statistical chance for occupancy in orbital oi otherwise FALSE

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
type(wf_data), intent(in) :: f
integer, intent(in) :: n_occ(:)
integer :: oi

Return Value logical

public function has_hole(p, f, n_occ, oi) result(res)

function has_hole: P: Parameter structure N_occ: occ array oi: orbital index returns TRUE if there might be a statistical chance for a hole in orbital oi otherwise FALSE

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
type(wf_data), intent(in) :: f
integer, intent(in) :: n_occ(:)
integer, intent(in) :: oi

Return Value logical

public function is_equivalent_occ(f, occ1, occ2) result(res)

returns true if occ1 and occ2 are equivalent through averaging

Arguments

Type IntentOptional Attributes Name
type(wf_data), intent(in) :: f
integer, intent(in) :: occ1(:)
integer, intent(in) :: occ2(:)

Return Value logical

public function is_equivalent(p, f, part, hole) result(res)

function is_equivalent: N_occ: occ array part: orbital index hole: orbital index returns TRUE if orbital part and orbital hole are equivalent otherwise FALSE

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
type(wf_data), intent(in) :: f
integer :: part
integer :: hole

Return Value logical

public function is_pair_occupied(p, f, n_occ, oi, oj) result(res)

function is_pair_occupied: P: Parameter structure N_occ: occ array oi: orbital index oj: orbital index returns TRUE if there is a statistical chance that orbital oi and oj are both occupied otherwise FALSE

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
type(wf_data), intent(in) :: f
integer, intent(in) :: n_occ(:)
integer, intent(in) :: oi
integer, intent(in) :: oj

Return Value logical

public function stat_factor_pair_occupied(p, f, n_occ, oi, oj) result(prob)

function stat_factor_pair_occupied P: Parameter structure N_occ: occ array oi: orbital index oj: orbital index returns the statistical factor that a spin-orbital pair oi, oj is occupied

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
type(wf_data), intent(in) :: f
integer, intent(in) :: n_occ(:)
integer :: oi
integer :: oj

Return Value real(kind=long)

public function stat_factor_part_hole_pair(p, f, n_occ, oi, oj) result(prob)

function stat_factor_part_hole_pair P: Parameter structure N_occ: occ array oi: orbital index for particle oj: orbital index for hole returns the statistical factor that a spin-orbital pair oi, oj has an electron in oi and a hole in oj Notes that : stat_factor_part_hole_pair(oi,oj) = stat_factor_occupied(oi) - stat_factor_pair_occupied(oi,oj)

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
type(wf_data), intent(in) :: f
integer, intent(in) :: n_occ(:)
integer :: oi
integer :: oj

Return Value real(kind=long)

public function stat_factor_not_occupied(p, f, n_occ, oi) result(factor)

return the statistical factor that orbital oi is not occupied basically 1 - f_occ/2

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
type(wf_data), intent(in) :: f
integer, intent(in) :: n_occ(:)
integer, intent(in) :: oi

Return Value real(kind=long)

public function stat_factor_occupied(p, f, n_occ, oi) result(factor)

return the statistical factor that orbital oi is occupied basically f_occ/2

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
type(wf_data), intent(in) :: f
integer, intent(in) :: n_occ(:)
integer, intent(in) :: oi

Return Value real(kind=long)


Subroutines

public subroutine averaged_occs(f, n_occ, occs)

subroutine averaged_occs: returns an array of occupations that describe the occupation patterns which are averaged, using the averaging scheme given in F%av_occ(:) and the occupation N_occ(:)

Arguments

Type IntentOptional Attributes Name
type(wf_data), intent(in) :: f
integer, intent(in) :: n_occ(:)
integer, intent(out), allocatable :: occs(:,:)