MPI-SCATCI  2.0
An MPI version of SCATCI
Todo List
Module slepcdavidsondiagonalizer_module
Stub only, no actual functionality implemented.
Subprogram ci_hamiltonian_module::build_target_ci_hamiltonian_fast (this, matrix_elements)
Fix this so the results are correct.
Module hamiltonian_module
Rewrite the idiag = 0 matrix evaluation into a more easily handled form and chenge variable naming to be less confusing.
Module options_module
Sort the read namelist inputs by nciset to avoid error in positioning on output!
Subprogram options_module::read_congen (this)
Switch from old name list way into newer more robust input reading (use input.f90 like in TROVE?)
Subprogram postprocessing_module::write_boundary_data (this, nrmset, opts, rform, prop, solution)
At the moment, this subroutine is called (and boundary amplitudes written) by master processs only, which holds all boundary amplitudes. In cases with many channels and many inner region eigenstates, the size of the boundary amplitude matrices can, hypothetically, become too large for a single process to manage (either because of memory or I/O bandwidth limitations). It will then be necessary to keep the amplitudes distributed (in get_boundary_data) and write them using MPI I/O similarly as in write_rmt_data. Note that in this case we are writing a SEQUENTIAL rather than a STREAM file, so the binary data written need to be split into chunks of size at most 2 GiB, each of them immediately preceded by a "bookmark" 32-bit integer with the length of the chunk in bytes, and followed by a similar bookmark with the same value, but with positive sign when that chunk is the last one in the record, or negative sign when that chunk is yet followed by another chunk within the same record. While not elaborated in the Fortran standard, this seems to be the universal storage scheme used in SEQUENTIAL UNFORMATTED files by GNU, Intel and Cray compilers.
Subprogram postprocessing_module::write_rmt_data (input, inner_properties, target_properties, solutions, intf)
At the moment, the subroutine assumes that all inner states have the same spin.