MPI-SCATCI
2.0
An MPI version of SCATCI
|
Solution handler module. More...
Data Types | |
type | solutionhandler |
Solution writer. More... | |
Functions/Subroutines | |
subroutine | construct (this, opts) |
Set up solution handler. More... | |
subroutine | destroy (this) |
Release resources. More... | |
subroutine | write_header_sol (this, option, integrals) |
Start writing eigenvector record. More... | |
subroutine | export_header_sol (this, option, integrals) |
Write basic information into a CI vector. More... | |
subroutine | shift_eigenvalues (this, output_eigenvalues, num_eigenpairs) |
Shift eigenvalues according to the NAMELIST input ESHIFT. More... | |
subroutine | write_eigenvalues (this, eigenvalues, diagonals, num_eigenpairs, vec_dimen) |
Save Hamiltonian eigen-energies to disk file. More... | |
subroutine | export_eigenvalues (this, eigenvalues, diagonals, num_eigenpairs, vec_dimen, ei, iphz) |
Write eigevalues and phases to supplied arrays. More... | |
subroutine | write_eigenvector (this, eigenvector, vec_dimen) |
Save Hamiltonian eigen-vectors to disk file. More... | |
subroutine | finalize_solutions_sol (this, option) |
Finalize writing the eigenvector disk file. More... | |
Solution handler module.
Manages the eigevalue and eigenvector output. These are passed to individual subroutines by the caller; solution handler itself contains just a little basic information.
subroutine solutionhandler_module::construct | ( | class(solutionhandler) | this, |
class(options), intent(in) | opts | ||
) |
Set up solution handler.
Initialize internal parameters, most notably the number of the output unit.
Definition at line 89 of file SolutionHandler_module.f90.
subroutine solutionhandler_module::destroy | ( | class(solutionhandler), intent(inout) | this | ) |
Release resources.
Release all allocated memory (phases and the CDENPROP data vector).
Definition at line 120 of file SolutionHandler_module.f90.
subroutine solutionhandler_module::export_eigenvalues | ( | class(solutionhandler) | this, |
real(wp), dimension(num_eigenpairs), intent(in) | eigenvalues, | ||
real(wp), dimension(vec_dimen), intent(in) | diagonals, | ||
integer, intent(in) | num_eigenpairs, | ||
integer, intent(in) | vec_dimen, | ||
real(wp), dimension(:), allocatable | ei, | ||
integer, dimension(:), allocatable | iphz | ||
) |
Write eigevalues and phases to supplied arrays.
Copies (a subset of) eigenvalues and phases stored in the calling objecst to supplied arrays. This is used when preparing diagonalization data for processing in CDENPROP.
Definition at line 414 of file SolutionHandler_module.f90.
subroutine solutionhandler_module::export_header_sol | ( | class(solutionhandler) | this, |
class(options), intent(in) | option, | ||
class(baseintegral), intent(in) | integrals | ||
) |
Write basic information into a CI vector.
Store general data related to the eigenvectors (like global quantum numbers, nuclear information and number of eigenvectors) to the provided CDENPROP data vector. This is used when passing data from MPI-SCATCI directly to the CDENPROP library.
Definition at line 244 of file SolutionHandler_module.f90.
subroutine solutionhandler_module::finalize_solutions_sol | ( | class(solutionhandler) | this, |
class(options), intent(in) | option | ||
) |
Finalize writing the eigenvector disk file.
To avoid concurrent, conflicting accesses to the disk file in case that multiple datasets are to be written to it, by different processes, MPI-SCATCI uses a semaphore system. Once a process finishes writing its results into a dataset, it notifies the next process in line that wants to write to the same file unit (but into the subsequent dataset).
Definition at line 487 of file SolutionHandler_module.f90.
subroutine solutionhandler_module::shift_eigenvalues | ( | class(solutionhandler) | this, |
real(wp), dimension(num_eigenpairs), intent(inout) | output_eigenvalues, | ||
integer, intent(in) | num_eigenpairs | ||
) |
Shift eigenvalues according to the NAMELIST input ESHIFT.
Shift eigenvalues according to the NAMELIST input ESHIFT. This subroutine is called only when some of the energy_shifts is non-zero.
Definition at line 340 of file SolutionHandler_module.f90.
subroutine solutionhandler_module::write_eigenvalues | ( | class(solutionhandler) | this, |
real(wp), dimension(num_eigenpairs), intent(in) | eigenvalues, | ||
real(wp), dimension(vec_dimen), intent(in) | diagonals, | ||
integer, intent(in) | num_eigenpairs, | ||
integer, intent(in) | vec_dimen | ||
) |
Save Hamiltonian eigen-energies to disk file.
Continues the output operation commenced in write_header_sol by writing the phase information, eigenvalues and diagonals(?).
Definition at line 372 of file SolutionHandler_module.f90.
subroutine solutionhandler_module::write_eigenvector | ( | class(solutionhandler) | this, |
real(wp), dimension(vec_dimen), intent(in) | eigenvector, | ||
integer, intent(in) | vec_dimen | ||
) |
Save Hamiltonian eigen-vectors to disk file.
Completes the output operation commenced in write_header_sol by writing the eigenvectors (one per a call).
Definition at line 452 of file SolutionHandler_module.f90.
subroutine solutionhandler_module::write_header_sol | ( | class(solutionhandler) | this, |
class(options), intent(in) | option, | ||
class(baseintegral), intent(in) | integrals | ||
) |
Start writing eigenvector record.
Opens or rewinds the output file, positions it to the beginning of the requested record and writes basic information about the solution, excluding phase information, eigenvalues and eigenvectors.
Definition at line 145 of file SolutionHandler_module.f90.