|
MPI-SCATCI 2.0
An MPI version of SCATCI
|
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 |
Configuration state function factory.
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.
| 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.
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).
| [in,out] | this | Manager object to update. |
| [in,out] | CSF | Configuration set to construct (will be allocated). |
| [in] | orbital_sequence | Pointer to orbital sequence (KPT). |
| [in] | num_ci_target_sym | Number of CI components of each target symmetry (NCTGT). |
| [in] | continuum_projection | Lambda value of the continuum orbitals associated with each target state (MCONT). |
Definition at line 104 of file CSF_module.F90.
| procedure, public CSF_module::CSFManager::finalize | ( | class(csfmanager), intent(inout), target | this | ) |
Release all memory used by the instance.
| [in,out] | this | Manager object to update. |
Definition at line 106 of file CSF_module.F90.
| 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.
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.
| 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.
| 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.
| real(wp), dimension(:), allocatable CSF_module::CSFManager::coeffdtrs |
Coefficients of determinants stored in int64dtrs.
Definition at line 69 of file CSF_module.F90.
| real(wp), dimension(:), allocatable CSF_module::CSFManager::coeffs |
Old Name: NCO - coeffcients.
Definition at line 85 of file CSF_module.F90.
| integer CSF_module::CSFManager::coeffs_win = -1 |
MPI-3 shared memory window ID for coeffs.
Definition at line 73 of file CSF_module.F90.
| integer, dimension(:), allocatable CSF_module::CSFManager::index_coeffs |
Old Name: ICDO - index of coefficients.
Definition at line 83 of file CSF_module.F90.
| integer, dimension(:), allocatable CSF_module::CSFManager::index_dtrs |
Old Name: INDO - Index of determinants.
Definition at line 82 of file CSF_module.F90.
| integer CSF_module::CSFManager::int64_win = -1 |
MPI-3 shared memory window ID for int64dtrs.
Definition at line 72 of file CSF_module.F90.
| 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.
| integer CSF_module::CSFManager::largest_num_configs |
Definition at line 88 of file CSF_module.F90.
| integer CSF_module::CSFManager::length_coeff |
Definition at line 77 of file CSF_module.F90.
| integer CSF_module::CSFManager::length_dtrs |
Definition at line 78 of file CSF_module.F90.
| integer CSF_module::CSFManager::megul |
CONGEN output unit with generated configuration state functions.
Definition at line 75 of file CSF_module.F90.
| integer CSF_module::CSFManager::nints |
Number of integers forming the shared determinant storage (bit array).
Definition at line 94 of file CSF_module.F90.
| integer CSF_module::CSFManager::num_csfs |
Old name: NOCSF - # of CSFs.
Definition at line 76 of file CSF_module.F90.
| 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.
| integer CSF_module::CSFManager::num_electrons |
Definition at line 93 of file CSF_module.F90.
| integer CSF_module::CSFManager::num_mo |
Definition at line 91 of file CSF_module.F90.
| integer CSF_module::CSFManager::num_so |
Definition at line 92 of file CSF_module.F90.
| class(options), pointer CSF_module::CSFManager::option_ptr |
Definition at line 87 of file CSF_module.F90.
| integer, dimension(:), allocatable CSF_module::CSFManager::orbitals |
Definition at line 96 of file CSF_module.F90.
| integer, dimension(:), allocatable CSF_module::CSFManager::packed_dtrs |
Old Name: NDO - Packed slater determinants.
Definition at line 84 of file CSF_module.F90.
| class(orbitaltable), pointer CSF_module::CSFManager::pt_orb |
Definition at line 100 of file CSF_module.F90.
| integer(longint), dimension(:), allocatable CSF_module::CSFManager::ref_int64dtrs |
Definition at line 99 of file CSF_module.F90.
| integer, dimension(:), allocatable CSF_module::CSFManager::reference_dtrs |
Definition at line 98 of file CSF_module.F90.
| integer, dimension(:), allocatable CSF_module::CSFManager::spin |
Definition at line 97 of file CSF_module.F90.