|
| subroutine, public | bse_util::mult_b_with_w (fm_mat_s_ij_bse, fm_mat_s_ia_bse, fm_mat_s_bar_ia_bse, fm_mat_s_bar_ij_bse, fm_mat_q_static_bse_gemm, dimen_ri, homo, virtual) |
| | Multiplies B-matrix (RI-3c-Integrals) with W (screening) to obtain \bar{B}.
|
| |
| subroutine, public | bse_util::fm_general_add_bse (fm_out, fm_in, beta, nrow_secidx_in, ncol_secidx_in, nrow_secidx_out, ncol_secidx_out, unit_nr, reordering, mp2_env, row_offset, col_offset) |
| | Adds and reorders full matrices with a combined index structure, e.g. adding W_ij,ab to A_ia, jb which needs MPI communication.
|
| |
| subroutine, public | bse_util::truncate_fm (fm_out, fm_in, ncol_in, nrow_out, ncol_out, unit_nr, mp2_env, nrow_offset, ncol_offset) |
| | Routine for truncating a full matrix as given by the energy cutoffs in the input file. Logic: Matrices have some dimension dimen_RI x nrow_in*ncol_in for the incoming (untruncated) matrix and dimen_RI x nrow_out*ncol_out for the truncated matrix. The truncation is done by resorting the indices via parallel communication.
|
| |
| subroutine, public | bse_util::deallocate_matrices_bse (fm_mat_s_bar_ia_bse, fm_mat_s_bar_ij_bse, fm_mat_s_trunc, fm_mat_s_ij_trunc, fm_mat_s_ab_trunc, fm_mat_q_static_bse_gemm, mp2_env) |
| | ...
|
| |
| subroutine, public | bse_util::comp_eigvec_coeff_bse (fm_work, eig_vals, beta, gamma, do_transpose) |
| | Routine for computing the coefficients of the eigenvectors of the BSE matrix from a multiplication with the eigenvalues.
|
| |
| subroutine, public | bse_util::sort_excitations (idx_prim, idx_sec, eigvec_entries, idx_spin) |
| | Sorts excitation entries by ascending primary index, reordering the secondary index, the eigenvector coefficients and - open shell - the spin index alongside.
|
| |
| subroutine, public | bse_util::estimate_bse_resources (n_ov_joint, unit_nr, bse_abba, para_env, diag_runtime_est) |
| | Roughly estimates the needed runtime and memory during the BSE run.
|
| |
| subroutine, public | bse_util::filter_eigvec_contrib (fm_eigvec, idx_homo, idx_virt, eigvec_entries, i_exc, virtual, num_entries, mp2_env, offsets, virtual_per_spin, idx_spin) |
| | Filters eigenvector entries above a given threshold to describe excitations in the singleparticle basis.
|
| |
| subroutine, public | bse_util::determine_cutoff_indices (eigenval, homo, virtual, homo_red, virt_red, homo_incl, virt_incl, cutoff_occ, cutoff_empty) |
| | Reads cutoffs for BSE from mp2_env and compares to energies in Eigenval to extract reduced homo/virtual and.
|
| |
| subroutine, public | bse_util::get_bse_spin_block_layout (homo_red, virt_red, n_ov, offsets, n_ov_joint) |
| | Spin-block layout for the open-shell (joint) BSE matrix: per-spin OV-pair counts and the block offsets into the joint matrix of dimension n_ov_joint = sum_sigma homo*virtual.
|
| |
| subroutine, public | bse_util::determine_bse_combined_window (eigenval_scf, homo, virtual, cutoff_occ, cutoff_empty, first_active_mo, last_active_mo) |
| | Determine a single combined active-MO window covering all spin channels for open-shell BSE truncation (per-spin determine_cutoff_indices, then union of bounds). Cuts on the DFT axis, as the closed-shell path in truncate_BSE_matrices and linRTBSE's determine_active_mo_window do, so the pipelines truncate to the same active space. CPWARN if the per-spin cutoff candidates differ.
|
| |
| subroutine, public | bse_util::truncate_bse_matrices (fm_mat_s_ia_bse, fm_mat_s_ij_bse, fm_mat_s_ab_bse, fm_mat_s_trunc, fm_mat_s_ij_trunc, fm_mat_s_ab_trunc, eigenval_scf, eigenval, eigenval_reduced, homo, virtual, dimen_ri, unit_nr, bse_lev_virt, homo_red, virt_red, mp2_env, homo_incl_in, virt_incl_in) |
| | Determines indices within the given energy cutoffs and truncates Eigenvalues and matrices.
|
| |
| subroutine, public | bse_util::reshuffle_eigvec (fm_eigvec, fm_eigvec_reshuffled, homo, virtual, n_exc, do_transpose, unit_nr, mp2_env) |
| | ...
|
| |
| subroutine, public | bse_util::print_bse_nto_cubes (qs_env, mos, istate, info_approximation, stride, append_cube, print_section) |
| | Borrowed from the tddfpt module with slight adaptions.
|
| |
| subroutine, public | bse_util::adapt_bse_input_params (homo, virtual, unit_nr, mp2_env, qs_env) |
| | Checks BSE input section and adapts them if necessary.
|
| |
| subroutine, public | bse_util::get_multipoles_mo (fm_multipole_ai_trunc, fm_multipole_ij_trunc, fm_multipole_ab_trunc, qs_env, mo_coeff, rpoint, n_moments, homo_red, virtual_red, context_bse, ispin) |
| | ...
|
| |
| subroutine, public | bse_util::trace_exciton_descr (fm_a, fm_b, fm_c, alpha) |
| | Computes trace of form Tr{A^T B C} for exciton descriptors.
|
| |
| subroutine, public | bse_util::assemble_joint_ov_slab (fm_s_ia, offsets, n_ov, dimen_ri, fm_s_joint) |
| | Column-concatenate per-spin ia-slabs into the joint dimen_RI x n_ov_joint slab. Sigma-block of spin isp occupies columns offsets(isp)+1 .. offsets(isp)+n_ov(isp). fm_S_joint must be pre-created and zeroed by the caller.
|
| |