MPI-SCATCI 2.0
An MPI version of SCATCI
Loading...
Searching...
No Matches
CSF_module::CSFManager Type Reference

Configuration state function factory. More...

Public Member Functions

procedure, public initialize (this, option, orbital)
 Reads the CSFs.
procedure, public print (this, csf)
procedure, public create_csfs (this, csf, orbital_sequence, num_ci_target_sym, continuum_projection)
 This subroutine seperates out the CSFs and creates individual objects out of them.
procedure, public toggle_determinant (this, det0, det1, nints)
procedure, public finalize (this)
 Release all memory used by the instance.

Public Attributes

integer(longint), dimension(:,:), allocatable int64dtrs
 Unpacked determinants as a bit array (spin-orbital occupation numbers).
real(wp), dimension(:), allocatable coeffdtrs
 Coefficients of determinants stored in int64dtrs.
integer int64_win = -1
 MPI-3 shared memory window ID for int64dtrs.
integer coeffs_win = -1
 MPI-3 shared memory window ID for coeffs.
integer megul
 CONGEN output unit with generated configuration state functions.
integer num_csfs
 Old name: NOCSF - # of CSFs.
integer length_coeff
integer length_dtrs
integer, dimension(:), pointer num_dtr_csf_out
 Old Name: NODO - Number of determinants in CSF in output.
integer, dimension(:), allocatable index_dtrs
 Old Name: INDO - Index of determinants.
integer, dimension(:), allocatable index_coeffs
 Old Name: ICDO - index of coefficients.
integer, dimension(:), allocatable packed_dtrs
 Old Name: NDO - Packed slater determinants.
real(wp), dimension(:), allocatable coeffs
 Old Name: NCO - coeffcients.
class(options), pointer option_ptr
integer largest_num_configs
integer num_mo
integer num_so
integer num_electrons
integer nints
 Number of integers forming the shared determinant storage (bit array).
integer, dimension(:), allocatable orbitals
integer, dimension(:), allocatable spin
integer, dimension(:), allocatable reference_dtrs
integer(longint), dimension(:), allocatable ref_int64dtrs
class(orbitaltable), pointer pt_orb

Detailed Description

Configuration state function factory.

Authors
A Al-Refaie, J Benda
Date
2017 - 2019

This is a central object that takes care of reading and storing all configurations state functions (CSFs) generated by CONGEN. The determinants forming the CSFs are compressed to a long bit array, which can be shared by all processes in a MPI group. The manager class creates instances of CSFObject (individual CSFs) and CSFOrbital (individual determinants). Both of them just effectively address into shared arrays manager by this object.

Definition at line 63 of file CSF_module.F90.

Member Function/Subroutine Documentation

◆ create_csfs()

procedure, public CSF_module::CSFManager::create_csfs ( class(csfmanager), intent(inout), target this,
type(csfobject), dimension(:), intent(inout), allocatable, target csf,
integer, dimension(this % num_csfs) orbital_sequence,
integer, dimension(:), intent(in) num_ci_target_sym,
integer, dimension(:), intent(in) continuum_projection )

This subroutine seperates out the CSFs and creates individual objects out of them.

Authors
A Al-Refaie, J Benda
Date
2017 - 2019

The unpacked determinants forming each CSF are stored as bit fields in CSFManager::int64dtrs (potentially shared across the MPI processes participating in the diagonalization) of length equal to the number of spin-orbitals and values 0 and 1 representing absence or presence of an electron in the spin-orbital. The coefficients of these determinants are then adjusted to be compatible with ascending order of spin-orbitals in the determinant (may result in sign flip).

Parameters
[in,out]thisManager object to update.
[in,out]CSFConfiguration set to construct (will be allocated).
[in]orbital_sequencePointer to orbital sequence (KPT).
[in]num_ci_target_symNumber of CI components of each target symmetry (NCTGT).
[in]continuum_projectionLambda value of the continuum orbitals associated with each target state (MCONT).

Definition at line 104 of file CSF_module.F90.

◆ finalize()

procedure, public CSF_module::CSFManager::finalize ( class(csfmanager), intent(inout), target this)

Release all memory used by the instance.

Authors
J Benda
Date
2019 - 2022
Parameters
[in,out]thisManager object to update.

Definition at line 106 of file CSF_module.F90.

◆ initialize()

procedure, public CSF_module::CSFManager::initialize ( class(csfmanager), intent(inout) this,
class(options), intent(in) option,
class(orbitaltable), intent(in), target orbital )

Reads the CSFs.

Authors
A Al-Refaie
Date
2017

Reads all configurations from CONGEN output using the SCATCI's RDWF routine and stores them in the CONGEN format. The translation from CONGEN format to MPI-SCATCI internal (bitset) representation is done in create_csfs.

Definition at line 102 of file CSF_module.F90.

◆ print()

procedure, public CSF_module::CSFManager::print ( class(csfmanager), intent(in) this,
class(csfobject), dimension(:), intent(in) csf )

Definition at line 103 of file CSF_module.F90.

◆ toggle_determinant()

procedure, public CSF_module::CSFManager::toggle_determinant ( class(csfmanager), intent(in) this,
integer det0,
integer(longint), dimension(nints) det1,
integer, intent(in) nints )

Definition at line 105 of file CSF_module.F90.

Member Data Documentation

◆ coeffdtrs

real(wp), dimension(:), allocatable CSF_module::CSFManager::coeffdtrs

Coefficients of determinants stored in int64dtrs.

Definition at line 69 of file CSF_module.F90.

◆ coeffs

real(wp), dimension(:), allocatable CSF_module::CSFManager::coeffs

Old Name: NCO - coeffcients.

Definition at line 85 of file CSF_module.F90.

◆ coeffs_win

integer CSF_module::CSFManager::coeffs_win = -1

MPI-3 shared memory window ID for coeffs.

Definition at line 73 of file CSF_module.F90.

◆ index_coeffs

integer, dimension(:), allocatable CSF_module::CSFManager::index_coeffs

Old Name: ICDO - index of coefficients.

Definition at line 83 of file CSF_module.F90.

◆ index_dtrs

integer, dimension(:), allocatable CSF_module::CSFManager::index_dtrs

Old Name: INDO - Index of determinants.

Definition at line 82 of file CSF_module.F90.

◆ int64_win

integer CSF_module::CSFManager::int64_win = -1

MPI-3 shared memory window ID for int64dtrs.

Definition at line 72 of file CSF_module.F90.

◆ int64dtrs

integer(longint), dimension(:,:), allocatable CSF_module::CSFManager::int64dtrs

Unpacked determinants as a bit array (spin-orbital occupation numbers).

Definition at line 68 of file CSF_module.F90.

◆ largest_num_configs

integer CSF_module::CSFManager::largest_num_configs

Definition at line 88 of file CSF_module.F90.

◆ length_coeff

integer CSF_module::CSFManager::length_coeff

Definition at line 77 of file CSF_module.F90.

◆ length_dtrs

integer CSF_module::CSFManager::length_dtrs

Definition at line 78 of file CSF_module.F90.

◆ megul

integer CSF_module::CSFManager::megul

CONGEN output unit with generated configuration state functions.

Definition at line 75 of file CSF_module.F90.

◆ nints

integer CSF_module::CSFManager::nints

Number of integers forming the shared determinant storage (bit array).

Definition at line 94 of file CSF_module.F90.

◆ num_csfs

integer CSF_module::CSFManager::num_csfs

Old name: NOCSF - # of CSFs.

Definition at line 76 of file CSF_module.F90.

◆ num_dtr_csf_out

integer, dimension(:), pointer CSF_module::CSFManager::num_dtr_csf_out

Old Name: NODO - Number of determinants in CSF in output.

Definition at line 79 of file CSF_module.F90.

◆ num_electrons

integer CSF_module::CSFManager::num_electrons

Definition at line 93 of file CSF_module.F90.

◆ num_mo

integer CSF_module::CSFManager::num_mo

Definition at line 91 of file CSF_module.F90.

◆ num_so

integer CSF_module::CSFManager::num_so

Definition at line 92 of file CSF_module.F90.

◆ option_ptr

class(options), pointer CSF_module::CSFManager::option_ptr

Definition at line 87 of file CSF_module.F90.

◆ orbitals

integer, dimension(:), allocatable CSF_module::CSFManager::orbitals

Definition at line 96 of file CSF_module.F90.

◆ packed_dtrs

integer, dimension(:), allocatable CSF_module::CSFManager::packed_dtrs

Old Name: NDO - Packed slater determinants.

Definition at line 84 of file CSF_module.F90.

◆ pt_orb

class(orbitaltable), pointer CSF_module::CSFManager::pt_orb

Definition at line 100 of file CSF_module.F90.

◆ ref_int64dtrs

integer(longint), dimension(:), allocatable CSF_module::CSFManager::ref_int64dtrs

Definition at line 99 of file CSF_module.F90.

◆ reference_dtrs

integer, dimension(:), allocatable CSF_module::CSFManager::reference_dtrs

Definition at line 98 of file CSF_module.F90.

◆ spin

integer, dimension(:), allocatable CSF_module::CSFManager::spin

Definition at line 97 of file CSF_module.F90.


The documentation for this type was generated from the following file:
  • /scratch.ssd/codes/ukrmol-in-git/source/mpi-ci-diag/Modules/Hamiltonian/CSF_module.F90