librpa_input.h Source File

librpa_input.h Source File#

LibRPA: librpa_input.h Source File
LibRPA
librpa_input.h
Go to the documentation of this file.
1#pragma once
6
7#include <stddef.h>
8#include "librpa_enums.h"
9#include "librpa_handler.h"
10
11// C APIs
12#ifdef __cplusplus
13extern "C" {
14#endif
15
25void librpa_set_scf_dimension(LibrpaHandler* h, int nspins, int nkpts, int nstates, int nbasis, int nspinor = 1);
26
37void librpa_set_wg_ekb_efermi(LibrpaHandler* h, int nspins, int nkpts, int nstates,
38 const double* wg, const double* ekb, double efermi);
39
50void librpa_set_wfc(LibrpaHandler* h, int ispin, int ik, int nstates_local, int nbasis_local,
51 const double* wfc_real, const double* wfc_imag);
52
64void librpa_set_wfc_spinor(LibrpaHandler* h, int ik, int nstates_local, int nbasis_local,
65 const double* wfc_up_real, const double* wfc_up_imag,
66 const double* wfc_dn_real, const double* wfc_dn_imag);
67
77void librpa_set_wfc_packed(LibrpaHandler* h, int ispin, int ik, int nstates_local, int nbasis_local,
78 const double* wfc_ri);
79
89void librpa_set_wfc_spinor_packed(LibrpaHandler* h, int ik, int nstates_local,
90 int nbasis_local, const double* wfc_up_ri,
91 const double* wfc_dn_ri);
92
99void librpa_set_ao_basis_wfc(LibrpaHandler* h, int natoms, const size_t* nbs_wfc);
100
107void librpa_set_ao_basis_aux(LibrpaHandler* h, int natoms, const size_t* nbs_aux);
108
115void librpa_set_latvec_and_G(LibrpaHandler* h, const double lat_mat[9], const double G_mat[9]);
116
124void librpa_set_atoms(LibrpaHandler* h, int natoms, const int* types, const double* posi_cart);
125
135void librpa_set_kgrids_kvec(LibrpaHandler* h, int nk1, int nk2, int nk3, const double* kvecs);
136
147void librpa_set_ibz_mapping(LibrpaHandler* h, int nkpts, const int* map_ibzk);
148
163 int nbasis_i, int nbasis_j, int naux_mu, const int R[3],
164 const double* Cs_in);
165
179void librpa_set_aux_bare_coulomb_k_atom_pair(LibrpaHandler* h, int ik, int I, int J, int naux_mu,
180 int naux_nu, const double* Vq_real_in,
181 const double* Vq_imag_in, double vq_threshold);
182
196void librpa_set_aux_cut_coulomb_k_atom_pair(LibrpaHandler* h, int ik, int I, int J, int naux_mu,
197 int naux_nu, const double* Vq_real_in,
198 const double* Vq_imag_in, double vq_threshold);
199
212void librpa_set_aux_bare_coulomb_k_2d_block(LibrpaHandler* h, int ik, int mu_begin, int mu_end,
213 int nu_begin, int nu_end, const double* Vq_real_in,
214 const double* Vq_imag_in);
215
228void librpa_set_aux_cut_coulomb_k_2d_block(LibrpaHandler* h, int ik, int mu_begin, int mu_end,
229 int nu_begin, int nu_end, const double* Vq_real_in,
230 const double* Vq_imag_in);
231
240void librpa_set_dielect_func_imagfreq(LibrpaHandler* h, int nfreq, const double* omegas_imag,
241 const double* dielect_func);
242
250void librpa_set_band_kvec(LibrpaHandler* h, int n_kpts_band, const double* kfrac_band);
251
262void librpa_set_band_occ_eigval(LibrpaHandler* h, int n_spins, int n_kpts_band, int n_states,
263 const double* occ, const double* eig);
264
276void librpa_set_wfc_band(LibrpaHandler* h, int ispin, int ik_band, int nstates_local,
277 int nbasis_local, const double* wfc_real, const double* wfc_imag);
278
290void librpa_set_wfc_band_spinor(LibrpaHandler* h, int ik_band, int nstates_local,
291 int nbasis_local, const double* wfc_up_real, const double* wfc_up_imag,
292 const double* wfc_dn_real, const double* wfc_dn_imag);
293
304void librpa_set_wfc_band_packed(LibrpaHandler* h, int ispin, int ik_band, int nstates_local,
305 int nbasis_local, const double* wfc_ri);
306
317void librpa_set_wfc_band_spinor_packed(LibrpaHandler* h, int ik_band, int nstates_local,
318 int nbasis_local, const double* wfc_up_ri, const double* wfc_dn_ri);
319
326
327#ifdef __cplusplus
328}
329#endif
Enumeration types and constants for LibRPA.
LibrpaParallelRouting
Parallel routing strategy for distributed memory calculations.
Definition librpa_enums.h:58
Handler management for LibRPA instances.
void librpa_set_aux_cut_coulomb_k_atom_pair(LibrpaHandler *h, 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 (atom-pair format).
void librpa_set_wfc_band_spinor(LibrpaHandler *h, 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 wavefunction for band k-point (spinor format, separate real/imag).
void librpa_set_dielect_func_imagfreq(LibrpaHandler *h, int nfreq, const double *omegas_imag, const double *dielect_func)
Set dielectric function on imaginary frequency axis.
void librpa_set_band_occ_eigval(LibrpaHandler *h, 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 librpa_set_aux_bare_coulomb_k_atom_pair(LibrpaHandler *h, 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 (atom-pair format).
void librpa_set_ao_basis_aux(LibrpaHandler *h, int natoms, const size_t *nbs_aux)
Set auxiliary atomic orbital basis size.
void librpa_set_aux_bare_coulomb_k_2d_block(LibrpaHandler *h, 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 bare Coulomb matrix elements (2D block format).
void librpa_set_aux_cut_coulomb_k_2d_block(LibrpaHandler *h, 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 truncated Coulomb matrix elements (2D block format).
void librpa_reset_band_data(LibrpaHandler *h)
Reset band structure input data.
void librpa_set_wfc_packed(LibrpaHandler *h, int ispin, int ik, int nstates_local, int nbasis_local, const double *wfc_ri)
Set wavefunction coefficients (packed complex array).
void librpa_set_atoms(LibrpaHandler *h, int natoms, const int *types, const double *posi_cart)
Set atom types and Cartesian coordinates.
void librpa_set_wfc(LibrpaHandler *h, int ispin, int ik, int nstates_local, int nbasis_local, const double *wfc_real, const double *wfc_imag)
Set wavefunction coefficients (real/imag separate arrays).
void librpa_set_wfc_band_packed(LibrpaHandler *h, int ispin, int ik_band, int nstates_local, int nbasis_local, const double *wfc_ri)
Set wavefunction for band k-point (packed complex).
void librpa_set_wfc_band(LibrpaHandler *h, int ispin, int ik_band, int nstates_local, int nbasis_local, const double *wfc_real, const double *wfc_imag)
Set wavefunction for band k-point (separate real/imag).
void librpa_set_kgrids_kvec(LibrpaHandler *h, int nk1, int nk2, int nk3, const double *kvecs)
Set k-point grid vectors.
void librpa_set_wfc_spinor(LibrpaHandler *h, 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 wavefunction coefficients of spinor format (real/imag separate arrays).
void librpa_set_ibz_mapping(LibrpaHandler *h, int nkpts, const int *map_ibzk)
Set the mapping from full k-point list to the irreducible sector.
void librpa_set_lri_coeff(LibrpaHandler *h, LibrpaParallelRouting routing, int I, int J, int nbasis_i, int nbasis_j, int naux_mu, const int R[3], const double *Cs_in)
Set local RI coefficients.
void librpa_set_ao_basis_wfc(LibrpaHandler *h, int natoms, const size_t *nbs_wfc)
Set atomic orbital basis size for wavefunctions.
void librpa_set_latvec_and_G(LibrpaHandler *h, const double lat_mat[9], const double G_mat[9])
Set direct and reciprocal lattice vectors.
void librpa_set_wg_ekb_efermi(LibrpaHandler *h, int nspins, int nkpts, int nstates, const double *wg, const double *ekb, double efermi)
Set occupation numbers, eigenvalues, and Fermi level of meanfield input.
void librpa_set_scf_dimension(LibrpaHandler *h, int nspins, int nkpts, int nstates, int nbasis, int nspinor=1)
Set meanfield wavefunction dimension.
void librpa_set_wfc_spinor_packed(LibrpaHandler *h, int ik, int nstates_local, int nbasis_local, const double *wfc_up_ri, const double *wfc_dn_ri)
Set wavefunction coefficients (packed complex array).
void librpa_set_band_kvec(LibrpaHandler *h, int n_kpts_band, const double *kfrac_band)
Set k-points for band structure calculations.
void librpa_set_wfc_band_spinor_packed(LibrpaHandler *h, int ik_band, int nstates_local, int nbasis_local, const double *wfc_up_ri, const double *wfc_dn_ri)
Set wavefunction for band k-point (packed complex).
Opaque handle to a LibRPA instance.
Definition librpa_handler.h:26