MPI-SCATCI 2.0
An MPI version of SCATCI
Loading...
Searching...
No Matches
SolutionHandler_module::SolutionHandler Type Reference

Solution writer. More...

Inheritance diagram for SolutionHandler_module::SolutionHandler:
Collaboration diagram for SolutionHandler_module::SolutionHandler:

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

Detailed Description

Solution writer.

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

Provides a comfortable interface to eigenvector disk output. By default writes the fort.25 file.

Definition at line 57 of file SolutionHandler_module.F90.

Member Function/Subroutine Documentation

◆ construct()

procedure, public SolutionHandler_module::SolutionHandler::construct ( class(solutionhandler) this,
class(options), intent(in) opts )

Set up solution handler.

Authors
A Al-Refaie
Date
2017

Initialize internal parameters, most notably the number of the output unit.

Definition at line 71 of file SolutionHandler_module.F90.

◆ destroy()

procedure, public SolutionHandler_module::SolutionHandler::destroy ( class(solutionhandler), intent(inout) this)

Release resources.

Authors
J Benda
Date
2019

Release all allocated memory (phases and the CDENPROP data vector).

Definition at line 80 of file SolutionHandler_module.F90.

◆ export_eigenvalues()

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.

Authors
A Al-Refaie
Date
2017

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.

◆ export_header()

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.

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

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.

◆ finalize_solutions()

procedure, public SolutionHandler_module::SolutionHandler::finalize_solutions ( class(solutionhandler) this,
class(options), intent(in) option )

Finalize writing the eigenvector disk file.

Authors
J Benda
Date
2019

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.

◆ handle_eigenvalues()

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.

Authors
A Al-Refaie
Date
2017

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.

◆ handle_eigenvector()

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.

Authors
A Al-Refaie
Date
2017

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.

◆ read_from_file()

procedure, public SolutionHandler_module::SolutionHandler::read_from_file ( class(solutionhandler) this,
class(options), intent(in) option )

Import eigensolution from file.

Authors
J Benda
Date
2022 - 2025

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.

◆ shift_eigenvalues()

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.

Authors
T Meltzer
Date
2020

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.

◆ write_header()

procedure, public SolutionHandler_module::SolutionHandler::write_header ( class(solutionhandler) this,
class(options), intent(in) option,
class(baseintegral), intent(in) integrals )

Start writing eigenvector record.

Authors
A Al-Refaie
Date
2017

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.

Member Data Documentation

◆ core_energy

real(wp) SolutionHandler_module::SolutionHandler::core_energy

Definition at line 62 of file SolutionHandler_module.F90.

◆ current_eigenvector

integer SolutionHandler_module::SolutionHandler::current_eigenvector = 0

Definition at line 68 of file SolutionHandler_module.F90.

◆ energy_shift

real(wp) SolutionHandler_module::SolutionHandler::energy_shift

Definition at line 63 of file SolutionHandler_module.F90.

◆ energy_shifts

real(wp), dimension(:), allocatable SolutionHandler_module::SolutionHandler::energy_shifts

Definition at line 61 of file SolutionHandler_module.F90.

◆ io_unit

integer SolutionHandler_module::SolutionHandler::io_unit = 25

Definition at line 58 of file SolutionHandler_module.F90.

◆ nciset

integer SolutionHandler_module::SolutionHandler::nciset

Definition at line 67 of file SolutionHandler_module.F90.

◆ num_eigenpairs

integer SolutionHandler_module::SolutionHandler::num_eigenpairs

Definition at line 60 of file SolutionHandler_module.F90.

◆ phase

integer, dimension(:), allocatable SolutionHandler_module::SolutionHandler::phase

Definition at line 64 of file SolutionHandler_module.F90.

◆ print_all_eigs

integer SolutionHandler_module::SolutionHandler::print_all_eigs = 0

Definition at line 69 of file SolutionHandler_module.F90.

◆ size_phase

integer SolutionHandler_module::SolutionHandler::size_phase

Definition at line 65 of file SolutionHandler_module.F90.

◆ symmetry_type

integer SolutionHandler_module::SolutionHandler::symmetry_type

Definition at line 59 of file SolutionHandler_module.F90.

◆ vec_dimen

integer SolutionHandler_module::SolutionHandler::vec_dimen

Definition at line 66 of file SolutionHandler_module.F90.


The documentation for this type was generated from the following file: