librpa.hpp Source File#
|
LibRPA
|
librpa.hpp
Go to the documentation of this file.
136void init_global(Switch switch_redirect_stdout = LIBRPA_SWITCH_OFF, const char *redirect_path = "stdout",
479 void set_aux_bare_coulomb_k_2d_block(int ik, int mu_begin, int mu_end, int nu_begin, int nu_end,
670 get_exx_pot_band_k(const Options &opts, const int n_spins, const std::vector<int> &iks_band_this,
693 int i_state_low, int i_state_high, const std::vector<double> &vxc, const std::vector<double> &vexx);
761 get_g0w0_sigc_band_k(const Options &opts, const int n_spins, const std::vector<int> &iks_band_this,
void set_latvec_and_G(const double lat_mat[9], const double G_mat[9])
Set direct and reciprocal lattice vectors.
void set_kgrids_kvec(int nk1, int nk2, int nk3, const std::vector< double > &kvecs, const std::vector< double > &kweights={})
Set loaded SCF k-points from vectors.
void set_aux_bare_coulomb_k_atom_pair_packed(int ik, int I, int J, int naux_mu, int naux_nu, const std::complex< double > *Vq, double vq_threshold)
Set bare Coulomb matrix elements from a packed complex atom-pair matrix.
void set_wfc_packed(int ispin, int ik, int nstates_local, int nbasis_local, const std::complex< double > *wfc)
Set wavefunction coefficients from a packed complex array.
void set_ao_basis_aux(const std::vector< size_t > &nbs_aux, const std::vector< std::vector< int > > &l_shells={})
Set the auxiliary atomic-orbital basis.
G0W0QpeResult get_g0w0_qpe_band_k(const Options &opts, const int n_spins, const std::vector< int > &iks_band_this, int i_state_low, int i_state_high, const std::vector< double > &vxc_band, const std::vector< double > &vexx_band)
Get G0W0 correlation self-energies and quasiparticle energies for band-k states.
void set_kq_mapping(const std::vector< int > &map_q_ks)
Set the mapping from loaded SCF k-points to Coulomb q-points.
double get_rpa_correlation_energy(const Options &opts, std::vector< std::complex< double > > &rpa_corr_ibzk_contrib)
Compute RPA correlation energy.
G0W0QpeResult get_g0w0_qpe_kgrid(const Options &opts, const int n_spins, const std::vector< int > &iks_this, int i_state_low, int i_state_high, const std::vector< double > &vxc, const std::vector< double > &vexx)
Get G0W0 correlation self-energies and quasiparticle energies for k-grid states.
void set_wfc(int ispin, int ik, int nstates_local, int nbasis_local, const double *wfc_real, const double *wfc_imag)
Set wavefunction coefficients from separate real and imaginary arrays.
std::vector< double > get_g0w0_spectral_function_kgrid(const Options &opts, const int n_spins, const std::vector< int > &iks_this, int i_state_low, int i_state_high, const std::vector< double > &omegas, const std::vector< double > &vxc, const std::vector< double > &vexx)
Get G0W0 spectral functions for k-grid states.
void set_dielect_func_imagfreq(const std::vector< double > &omegas_imag, const std::vector< double > &dielect_func)
Set the dielectric function on the imaginary-frequency axis.
void set_aux_cut_coulomb_k_atom_pair(int ik, int I, int J, int naux_mu, int naux_nu, const double *Vq_real_in, const double *Vq_imag_in, double vq_threshold)
Set truncated Coulomb matrix elements in atom-pair format.
G0W0SpectralFunctionResult get_g0w0_spectral_function_with_sigc_band_k(const Options &opts, const int n_spins, const std::vector< int > &iks_band_this, int i_state_low, int i_state_high, const std::vector< double > &omegas, const std::vector< double > &vxc_band, const std::vector< double > &vexx_band)
Get G0W0 spectral functions and continued self-energies for band-k states.
void set_basis_convention(int bloch_phase, int bloch_ratom, LibrpaAngularOrder order, LibrpaRshCoeff nega_m, LibrpaRshCoeff posi_m)
Set basis-convention metadata used by symmetry reductions.
void set_wfc_spinor(int ik, int nstates_local, int nbasis_local, const double *wfc_up_real, const double *wfc_up_imag, const double *wfc_dn_real, const double *wfc_dn_imag)
Set spinor wavefunction coefficients from separate real and imaginary arrays.
void get_imaginary_frequency_grids(const Options &opts, std::vector< double > &omegas, std::vector< double > &weights)
Construct imaginary-frequency grids.
std::vector< std::complex< double > > get_g0w0_sigc_kgrid(const Options &opts, const int n_spins, const std::vector< int > &iks_this, int i_state_low, int i_state_high, const std::vector< double > &vxc, const std::vector< double > &vexx)
Get G0W0 correlation self-energy for k-grid states.
~Handler()
Defatul destructor - automatically frees handler if not already freed.
void set_atoms(const std::vector< int > &types, const std::vector< double > &pos_cart)
Set atom types and Cartesian coordinates.
void set_lri_coeff(LibrpaParallelRouting routing, int I, int J, int nbasis_i, int nbasis_j, int naux_mu, const int R[3], const double *Cs_in, int shrink_aux=0)
Set local RI coefficients.
void set_aux_cut_coulomb_k_atom_pair_packed(int ik, int I, int J, int naux_mu, int naux_nu, const std::complex< double > *Vq, double vq_threshold)
Set truncated Coulomb matrix elements from a packed complex atom-pair matrix.
void set_aux_bare_coulomb_k_atom_pair(int ik, int I, int J, int naux_mu, int naux_nu, const double *Vq_real_in, const double *Vq_imag_in, double vq_threshold)
Set bare Coulomb matrix elements in atom-pair format.
void set_wfc_band_spinor(int ik_band, int nstates_local, int nbasis_local, const double *wfc_up_real, const double *wfc_up_imag, const double *wfc_dn_real, const double *wfc_dn_imag)
Set spinor band-k wavefunctions from separate real and imaginary arrays.
std::vector< double > get_g0w0_spectral_function_band_k(const Options &opts, const int n_spins, const std::vector< int > &iks_band_this, int i_state_low, int i_state_high, const std::vector< double > &omegas, const std::vector< double > &vxc_band, const std::vector< double > &vexx_band)
Get G0W0 spectral functions for band k-point states.
void set_aux_cut_coulomb_k_2d_block_packed(int ik, int mu_begin, int mu_end, int nu_begin, int nu_end, const std::complex< double > *Vq)
Set a truncated Coulomb matrix block from packed complex values.
G0W0SpectralFunctionResult get_g0w0_spectral_function_with_sigc_kgrid(const Options &opts, const int n_spins, const std::vector< int > &iks_this, int i_state_low, int i_state_high, const std::vector< double > &omegas, const std::vector< double > &vxc, const std::vector< double > &vexx)
Get G0W0 spectral functions and continued self-energies for k-grid states.
void set_ao_basis_aux_shrink(const std::vector< size_t > &nbs_aux_shrink, const std::vector< std::vector< int > > &l_shells={})
Set the compressed auxiliary atomic-orbital basis.
void set_aux_bare_coulomb_k_2d_block_packed(int ik, int mu_begin, int mu_end, int nu_begin, int nu_end, const std::complex< double > *Vq)
Set a bare Coulomb matrix block from packed complex values.
void set_aux_cut_coulomb_k_2d_block(int ik, int mu_begin, int mu_end, int nu_begin, int nu_end, const double *Vq_real_in, const double *Vq_imag_in)
Set a truncated Coulomb matrix block.
void set_scf_dimension(int nspins, int nkpts, int nstates, int nbasis, int nspinor=1)
Set mean-field wavefunction dimensions.
void set_wfc_band(int ispin, int ik_band, int nstates_local, int nbasis_local, const double *wfc_real, const double *wfc_imag)
Set band-k wavefunctions from separate real and imaginary arrays.
void set_wfc_spinor_packed(int ik, int nstates_local, int nbasis_local, const std::complex< double > *wfc_up, const std::complex< double > *wfc_dn)
Set spinor wavefunction coefficients from packed complex arrays.
std::vector< std::complex< double > > get_g0w0_sigc_band_k(const Options &opts, const int n_spins, const std::vector< int > &iks_band_this, int i_state_low, int i_state_high, const std::vector< double > &vxc_band, const std::vector< double > &vexx_band)
Get G0W0 correlation self-energy for band k-points.
void set_wfc_band_spinor_packed(int ik_band, int nstates_local, int nbasis_local, const std::complex< double > *wfc_up, const std::complex< double > *wfc_dn)
Set spinor band-k wavefunctions from packed complex values.
void build_g0w0_sigma(const Options &opts)
Build G0W0 self-energy matrix in real space.
void set_wfc_band_packed(int ispin, int ik_band, int nstates_local, int nbasis_local, const std::complex< double > *wfc)
Set band-k wavefunctions from packed complex values.
std::vector< double > get_exx_pot_kgrid(const Options &opts, const int n_spins, const std::vector< int > &iks_this, int i_state_low, int i_state_high)
Get exact-exchange potential for k-grid states.
void build_exx(const Options &opts)
Build exact-exchange matrix in real space.
void set_symmetry_operations(int n_symops, int row_conv, const int *rotmats, const double *trans=nullptr)
Set real-space symmetry operations.
const LibrpaHandler * get_c_handler() const
Get underlying C handler.
Definition librpa.hpp:214
void set_wg_ekb_efermi(int nspins, int nkpts, int nstates, const double *wg, const double *ekb, double efermi)
Set occupation numbers, eigenvalues, and Fermi level.
void set_aux_bare_coulomb_k_2d_block(int ik, int mu_begin, int mu_end, int nu_begin, int nu_end, const double *Vq_real_in, const double *Vq_imag_in)
Set a bare Coulomb matrix block.
void set_ao_basis_wfc(const std::vector< size_t > &nbs_wfc, const std::vector< std::vector< int > > &l_shells={})
Set the wavefunction atomic-orbital basis.
void set_kgrids_kvec(int nk1, int nk2, int nk3, int nkpts, const double *kvecs, const double *kweights=nullptr)
Set loaded SCF k-points from arrays.
void set_band_kvec(int n_kpts_band, const double *kfrac_band)
Set k-points for band-structure calculations.
Handler()
Default constructor (creates null handler).
Definition librpa.hpp:202
std::vector< double > get_exx_pot_band_k(const Options &opts, const int n_spins, const std::vector< int > &iks_band_this, int i_state_low, int i_state_high)
Get exact-exchange potential for band k-points.
void set_velocity_matrix_packed(int n_spins, int n_kpts, int n_states, const std::complex< double > *velocity)
Set velocity matrices from packed complex values.
Handler(MPI_Comm comm)
Construct and initialize handler with MPI communicator.
void set_band_occ_eigval(int n_spins, int n_kpts_band, int n_states, const double *occ, const double *eig)
Set occupation numbers and eigenvalues for band k-points.
void set_velocity_matrix(int n_spins, int n_kpts, int n_states, const double *velocity_real, const double *velocity_imag)
Set velocity matrices from separate real and imaginary arrays.
void set_restart_from_dir(const char *restart_from_dir)
Set directory to read restart checkpoint files from.
Definition librpa.hpp:89
void set_output_dir(const char *output_dir)
Set output directory.
Definition librpa.hpp:82
Enumeration types and constants for LibRPA.
LibrpaAngularOrder
Ordering of real spherical harmonics inside one angular-momentum shell.
Definition librpa_enums.h:53
#define LIBRPA_SWITCH_OFF
Switch value for disabled/off state (equivalent to false).
Definition librpa_enums.h:23
LibrpaRshCoeff
Coefficient-pair convention for one nonzero real spherical harmonic branch.
Definition librpa_enums.h:68
#define LIBRPA_SWITCH_ON
Switch value for enabled/on state (equivalent to true).
Definition librpa_enums.h:26
LibrpaParallelRouting
Parallel routing strategy for distributed memory calculations.
Definition librpa_enums.h:83
LibrpaTimeFreqGrid
Type of time or frequency grid for integration.
Definition librpa_enums.h:101
Handler management for LibRPA instances.
Runtime options for LibRPA calculations.
void librpa_set_output_dir(LibrpaOptions *opts, const char *output_dir)
Set the output directory for LibRPA results.
void librpa_set_restart_from_dir(LibrpaOptions *opts, const char *restart_from_dir)
Set the directory to read restart checkpoint files from.
void librpa_init_options(LibrpaOptions *opts)
Initialize runtime options to default values.
void set_output_level(Verbose output_level)
Set the global LibRPA stdout verbosity.
void init_global(Switch switch_redirect_stdout=LIBRPA_SWITCH_OFF, const char *redirect_path="stdout", Switch switch_process_output=LIBRPA_SWITCH_ON)
Initialize the global LibRPA environment.
LibrpaParallelRouting ParallelRouting
Parallel routing strategy (C++ alias).
Definition librpa.hpp:35
LibrpaTimeFreqGrid TimeFreqGrid
Time/frequency grid type (C++ alias)
Definition librpa.hpp:37
char restart_from_dir[LIBRPA_MAX_STRLEN]
Definition librpa_options.h:55
G0W0 correlation self-energies and quasiparticle energies.
Definition librpa.hpp:47
std::vector< std::complex< double > > sigc
Correlation self-energies.
Definition librpa.hpp:48
G0W0 spectral functions and continued correlation self-energies.
Definition librpa.hpp:54
std::vector< double > spectral_function
Spectral-function values.
Definition librpa.hpp:56
std::vector< std::complex< double > > sigc
Continued correlation self-energies.
Definition librpa.hpp:55
Generated by