|
MPI-SCATCI 2.0
An MPI version of SCATCI
|
Solution writer. More...


Public Member Functions | |
| procedure, public | construct (this, opts) |
| Set up solution handler. | |
| procedure, public | write_header (this, option, integrals) |
| Start writing eigenvector record. | |
| procedure, public | export_header (this, option, integrals) |
| Write basic information into a CI vector. | |
| procedure, public | export_eigenvalues (this, eigenvalues, diagonals, num_eigenpairs, vec_dimen, ei, iphz) |
| Write eigevalues and phases to supplied arrays. | |
| procedure, public | shift_eigenvalues (this, output_eigenvalues, num_eigenpairs) |
| Shift eigenvalues according to the NAMELIST input ESHIFT. | |
| procedure, public | handle_eigenvalues (this, eigenvalues, diagonals, num_eigenpairs, vec_dimen) |
| Save Hamiltonian eigen-energies to disk file. | |
| procedure, public | handle_eigenvector (this, eigenvector, vec_dimen) |
| Save Hamiltonian eigen-vectors to disk file. | |
| procedure, public | finalize_solutions (this, option) |
| Finalize writing the eigenvector disk file. | |
| procedure, public | read_from_file (this, option) |
| Import eigensolution from file. | |
| procedure, public | destroy (this) |
| Release resources. | |
Public Attributes | |
| integer | io_unit = 25 |
| integer | symmetry_type |
| integer | num_eigenpairs |
| real(wp), dimension(:), allocatable | energy_shifts |
| real(wp) | core_energy |
| real(wp) | energy_shift |
| integer, dimension(:), allocatable | phase |
| integer | size_phase |
| integer | vec_dimen |
| integer | nciset |
| integer | current_eigenvector = 0 |
| integer | print_all_eigs = 0 |
Solution writer.
Provides a comfortable interface to eigenvector disk output. By default writes the fort.25 file.
Definition at line 57 of file SolutionHandler_module.F90.
| procedure, public SolutionHandler_module::SolutionHandler::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 71 of file SolutionHandler_module.F90.
| procedure, public SolutionHandler_module::SolutionHandler::destroy | ( | class(solutionhandler), intent(inout) | this | ) |
Release resources.
Release all allocated memory (phases and the CDENPROP data vector).
Definition at line 80 of file SolutionHandler_module.F90.
| procedure, public SolutionHandler_module::SolutionHandler::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 74 of file SolutionHandler_module.F90.
| procedure, public SolutionHandler_module::SolutionHandler::export_header | ( | 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 73 of file SolutionHandler_module.F90.
| procedure, public SolutionHandler_module::SolutionHandler::finalize_solutions | ( | 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 78 of file SolutionHandler_module.F90.
| procedure, public SolutionHandler_module::SolutionHandler::handle_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 76 of file SolutionHandler_module.F90.
| procedure, public SolutionHandler_module::SolutionHandler::handle_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 77 of file SolutionHandler_module.F90.
| procedure, public SolutionHandler_module::SolutionHandler::read_from_file | ( | class(solutionhandler) | this, |
| class(options), intent(in) | option ) |
Import eigensolution from file.
Instead of calculating the eigenpairs, simple read them from a file written earlier. Store them in a distributed CIvect structure for processing in CDENPROP.
Definition at line 79 of file SolutionHandler_module.F90.
| procedure, public SolutionHandler_module::SolutionHandler::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 75 of file SolutionHandler_module.F90.
| procedure, public SolutionHandler_module::SolutionHandler::write_header | ( | 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 72 of file SolutionHandler_module.F90.
| real(wp) SolutionHandler_module::SolutionHandler::core_energy |
Definition at line 62 of file SolutionHandler_module.F90.
| integer SolutionHandler_module::SolutionHandler::current_eigenvector = 0 |
Definition at line 68 of file SolutionHandler_module.F90.
| real(wp) SolutionHandler_module::SolutionHandler::energy_shift |
Definition at line 63 of file SolutionHandler_module.F90.
| real(wp), dimension(:), allocatable SolutionHandler_module::SolutionHandler::energy_shifts |
Definition at line 61 of file SolutionHandler_module.F90.
| integer SolutionHandler_module::SolutionHandler::io_unit = 25 |
Definition at line 58 of file SolutionHandler_module.F90.
| integer SolutionHandler_module::SolutionHandler::nciset |
Definition at line 67 of file SolutionHandler_module.F90.
| integer SolutionHandler_module::SolutionHandler::num_eigenpairs |
Definition at line 60 of file SolutionHandler_module.F90.
| integer, dimension(:), allocatable SolutionHandler_module::SolutionHandler::phase |
Definition at line 64 of file SolutionHandler_module.F90.
| integer SolutionHandler_module::SolutionHandler::print_all_eigs = 0 |
Definition at line 69 of file SolutionHandler_module.F90.
| integer SolutionHandler_module::SolutionHandler::size_phase |
Definition at line 65 of file SolutionHandler_module.F90.
| integer SolutionHandler_module::SolutionHandler::symmetry_type |
Definition at line 59 of file SolutionHandler_module.F90.
| integer SolutionHandler_module::SolutionHandler::vec_dimen |
Definition at line 66 of file SolutionHandler_module.F90.