SIRIUS 7.5.0
Electronic structure library and applications
Classes | Enumerations | Functions
sirius_api.cpp File Reference

Fortran API. More...

Go to the source code of this file.

Classes

struct  sirius_context_handler_t
 
struct  sirius_ground_state_handler_t
 
struct  sirius_kpoint_set_handler_t
 

Enumerations

enum class  option_type_t : int {
  INTEGER_TYPE = 1 , LOGICAL_TYPE = 2 , STRING_TYPE = 3 , NUMBER_TYPE = 4 ,
  OBJECT_TYPE = 5 , ARRAY_TYPE = 6 , INTEGER_ARRAY_TYPE = 7 , LOGICAL_ARRAY_TYPE = 8 ,
  NUMBER_ARRAY_TYPE = 9 , STRING_ARRAY_TYPE = 10 , OBJECT_ARRAY_TYPE = 11 , ARRAY_ARRAY_TYPE = 12
}
 

Functions

Simulation_contextget_sim_ctx (void *const *h)
 
template<typename T >
void sirius_option_set_value (Simulation_context &sim_ctx__, std::string section__, std::string name__, T const *values__, int const *max_length__)
 
void sirius_option_set_value (Simulation_context &sim_ctx__, std::string section__, std::string name__, char const *values__, int const *max_length__, bool append__)
 
template<typename T >
void sirius_option_get_value (std::string section__, std::string name__, T *default_value__, int const *max_length__)
 
void sirius_option_get_value (std::string section__, std::string name__, char *default_value__, int const *max_length__, int const *enum_idx__)
 
static void sirius_print_error (int error_code__, std::string msg__="")
 
static void sirius_exit (int error_code__, std::string msg__="")
 
template<typename F >
static void call_sirius (F &&f__, int *error_code__)
 
template<typename T >
auto get_value (T const *ptr__, T v0__=T())
 
DFT_ground_stateget_gs (void *const *h)
 
K_point_setget_ks (void *const *h)
 
static int idx_m_qe (int m__)
 Index of Rlm in QE in the block of lm coefficients for a given l. More...
 
static std::vector< int > atomic_orbital_index_map_QE (Atom_type const &type__)
 Mapping of atomic indices from SIRIUS to QE order. More...
 
static int phase_Rlm_QE (Atom_type const &type__, int xi__)
 
void sirius_initialize (bool const *call_mpi_init__, int *error_code__)
 
void sirius_finalize (bool const *call_mpi_fin__, bool const *call_device_reset__, bool const *call_fftw_fin__, int *error_code__)
 
void sirius_start_timer (char const *name__, int *error_code__)
 
void sirius_stop_timer (char const *name__, int *error_code__)
 
void sirius_print_timers (bool *flatten__, int *error_code__)
 
void sirius_serialize_timers (char const *fname__, int *error_code__)
 
void sirius_context_initialized (void *const *handler__, bool *status__, int *error_code__)
 
void sirius_create_context (int fcomm__, void **handler__, int *fcomm_k__, int *fcomm_band__, int *error_code__)
 
void sirius_import_parameters (void *const *handler__, char const *str__, int *error_code__)
 
void sirius_set_parameters (void *const *handler__, int const *lmax_apw__, int const *lmax_rho__, int const *lmax_pot__, int const *num_fv_states__, int const *num_bands__, int const *num_mag_dims__, double const *pw_cutoff__, double const *gk_cutoff__, int const *fft_grid_size__, int const *auto_rmt__, bool const *gamma_point__, bool const *use_symmetry__, bool const *so_correction__, char const *valence_rel__, char const *core_rel__, double const *iter_solver_tol_empty__, char const *iter_solver_type__, int const *verbosity__, bool const *hubbard_correction__, int const *hubbard_correction_kind__, bool const *hubbard_full_orthogonalization__, char const *hubbard_orbitals__, int const *sht_coverage__, double const *min_occupancy__, char const *smearing__, double const *smearing_width__, double const *spglib_tol__, char const *electronic_structure_method__, int *error_code__)
 
void sirius_get_parameters (void *const *handler__, int *lmax_apw__, int *lmax_rho__, int *lmax_pot__, int *num_fv_states__, int *num_bands__, int *num_spins__, int *num_mag_dims__, double *pw_cutoff__, double *gk_cutoff__, int *fft_grid_size__, int *auto_rmt__, bool *gamma_point__, bool *use_symmetry__, bool *so_correction__, double *iter_solver_tol__, double *iter_solver_tol_empty__, int *verbosity__, bool *hubbard_correction__, double *evp_work_count__, int *num_loc_op_applied__, int *num_sym_op__, char *electronic_structure_method__, int *error_code__)
 
void sirius_add_xc_functional (void *const *handler__, char const *name__, int *error_code__)
 
void sirius_set_mpi_grid_dims (void *const *handler__, int const *ndims__, int const *dims__, int *error_code__)
 
void sirius_set_lattice_vectors (void *const *handler__, double const *a1__, double const *a2__, double const *a3__, int *error_code__)
 
void sirius_initialize_context (void *const *handler__, int *error_code__)
 
void sirius_update_context (void *const *handler__, int *error_code__)
 
void sirius_print_info (void *const *handler__, int *error_code__)
 
void sirius_free_object_handler (void **handler__, int *error_code__)
 
void sirius_set_periodic_function_ptr (void *const *handler__, char const *label__, double *f_mt__, int const *lmmax__, int const *nrmtmax__, int const *num_atoms__, double *f_rg__, int const *size_x__, int const *size_y__, int const *size_z__, int const *offset_z__, int *error_code__)
 
void sirius_set_periodic_function (void *const *handler__, char const *label__, double *f_mt__, int const *lmmax__, int const *nrmtmax__, int const *num_atoms__, double *f_rg__, int const *size_x__, int const *size_y__, int const *size_z__, int const *offset_z__, int *error_code__)
 
void sirius_get_periodic_function (void *const *handler__, char const *label__, double *f_mt__, int const *lmmax__, int const *nrmtmax__, int const *num_atoms__, double *f_rg__, int const *size_x__, int const *size_y__, int const *size_z__, int const *offset_z__, int *error_code__)
 
void sirius_create_kset (void *const *handler__, int const *num_kpoints__, double *kpoints__, double const *kpoint_weights__, bool const *init_kset__, void **kset_handler__, int *error_code__)
 
void sirius_create_kset_from_grid (void *const *handler__, int const *k_grid__, int const *k_shift__, bool const *use_symmetry, void **kset_handler__, int *error_code__)
 
void sirius_create_ground_state (void *const *ks_handler__, void **gs_handler__, int *error_code__)
 
void sirius_initialize_kset (void *const *ks_handler__, int *count__, int *error_code__)
 
void sirius_find_ground_state (void *const *gs_handler__, double const *density_tol__, double const *energy_tol__, double const *iter_solver_tol__, bool const *initial_guess__, int const *max_niter__, bool const *save_state__, bool *converged__, int *niter__, double *rho_min__, int *error_code__)
 
void sirius_check_scf_density (void *const *gs_handler__, int *error_code__)
 
void sirius_update_ground_state (void **handler__, int *error_code__)
 
void sirius_add_atom_type (void *const *handler__, char const *label__, char const *fname__, int const *zn__, char const *symbol__, double const *mass__, bool const *spin_orbit__, int *error_code__)
 
void sirius_set_atom_type_radial_grid (void *const *handler__, char const *label__, int const *num_radial_points__, double const *radial_points__, int *error_code__)
 
void sirius_set_atom_type_radial_grid_inf (void *const *handler__, char const *label__, int const *num_radial_points__, double const *radial_points__, int *error_code__)
 
void sirius_add_atom_type_radial_function (void *const *handler__, char const *atom_type__, char const *label__, double const *rf__, int const *num_points__, int const *n__, int const *l__, int const *idxrf1__, int const *idxrf2__, double const *occ__, int *error_code__)
 
void sirius_set_atom_type_hubbard (void *const *handler__, char const *label__, int const *l__, int const *n__, double const *occ__, double const *U__, double const *J__, double const *alpha__, double const *beta__, double const *J0__, int *error_code__)
 
void sirius_set_atom_type_dion (void *const *handler__, char const *label__, int const *num_beta__, double *dion__, int *error_code__)
 
void sirius_set_atom_type_paw (void *const *handler__, char const *label__, double const *core_energy__, double const *occupations__, int const *num_occ__, int *error_code__)
 
void sirius_add_atom (void *const *handler__, char const *label__, double const *position__, double const *vector_field__, int *error_code__)
 
void sirius_set_atom_position (void *const *handler__, int const *ia__, double const *position__, int *error_code__)
 
void sirius_set_pw_coeffs (void *const *handler__, char const *label__, std::complex< double > const *pw_coeffs__, bool const *transform_to_rg__, int const *ngv__, int *gvl__, int const *comm__, int *error_code__)
 
void sirius_get_pw_coeffs (void *const *handler__, char const *label__, std::complex< double > *pw_coeffs__, int const *ngv__, int *gvl__, int const *comm__, int *error_code__)
 
void sirius_initialize_subspace (void *const *gs_handler__, void *const *ks_handler__, int *error_code__)
 
void sirius_find_eigen_states (void *const *gs_handler__, void *const *ks_handler__, bool const *precompute_pw__, bool const *precompute_rf__, bool const *precompute_ri__, double const *iter_solver_tol__, int *error_code__)
 
void sirius_generate_initial_density (void *const *handler__, int *error_code__)
 
void sirius_generate_effective_potential (void *const *handler__, int *error_code__)
 
void sirius_generate_density (void *const *gs_handler__, bool const *add_core__, bool const *transform_to_rg__, bool const *paw_only__, int *error_code__)
 
void sirius_set_band_occupancies (void *const *ks_handler__, int const *ik__, int const *ispn__, double const *band_occupancies__, int *error_code__)
 
void sirius_get_band_occupancies (void *const *ks_handler__, int const *ik__, int const *ispn__, double *band_occupancies__, int *error_code__)
 
void sirius_get_band_energies (void *const *ks_handler__, int const *ik__, int const *ispn__, double *band_energies__, int *error_code__)
 
void sirius_get_energy (void *const *handler__, char const *label__, double *energy__, int *error_code__)
 
void sirius_get_forces (void *const *handler__, char const *label__, double *forces__, int *error_code__)
 
void sirius_get_stress_tensor (void *const *handler__, char const *label__, double *stress_tensor__, int *error_code__)
 
void sirius_get_num_beta_projectors (void *const *handler__, char const *label__, int *num_bp__, int *error_code__)
 
void sirius_get_wave_functions (void *const *ks_handler__, double const *vkl__, int const *spin__, int const *num_gvec_loc__, int const *gvec_loc__, std::complex< double > *evec__, int const *ld__, int const *num_spin_comp__, int *error_code__)
 
void sirius_add_atom_type_aw_descriptor (void *const *handler__, char const *label__, int const *n__, int const *l__, double const *enu__, int const *dme__, bool const *auto_enu__, int *error_code__)
 
void sirius_add_atom_type_lo_descriptor (void *const *handler__, char const *label__, int const *ilo__, int const *n__, int const *l__, double const *enu__, int const *dme__, bool const *auto_enu__, int *error_code__)
 
void sirius_set_atom_type_configuration (void *const *handler__, char const *label__, int const *n__, int const *l__, int const *k__, double const *occupancy__, bool const *core__, int *error_code__)
 
void sirius_generate_coulomb_potential (void *const *handler__, double *vh_el__, int *error_code__)
 
void sirius_generate_xc_potential (void *const *handler__, int *error_code__)
 
void sirius_get_kpoint_inter_comm (void *const *handler__, int *fcomm__, int *error_code__)
 
void sirius_get_kpoint_inner_comm (void *const *handler__, int *fcomm__, int *error_code__)
 
void sirius_get_fft_comm (void *const *handler__, int *fcomm__, int *error_code__)
 
void sirius_get_num_gvec (void *const *handler__, int *num_gvec__, int *error_code__)
 
void sirius_get_gvec_arrays (void *const *handler__, int *gvec__, double *gvec_cart__, double *gvec_len__, int *index_by_gvec__, int *error_code__)
 
void sirius_get_num_fft_grid_points (void *const *handler__, int *num_fft_grid_points__, int *error_code__)
 
void sirius_get_fft_index (void *const *handler__, int *fft_index__, int *error_code__)
 
void sirius_get_max_num_gkvec (void *const *ks_handler__, int *max_num_gkvec__, int *error_code__)
 
void sirius_get_gkvec_arrays (void *const *ks_handler__, int *ik__, int *num_gkvec__, int *gvec_index__, double *gkvec__, double *gkvec_cart__, double *gkvec_len, double *gkvec_tp__, int *error_code__)
 
void sirius_get_step_function (void *const *handler__, std::complex< double > *cfunig__, double *cfunrg__, int *num_rg_points__, int *error_code__)
 
void sirius_set_h_radial_integrals (void *const *handler__, int *ia__, int *lmmax__, double *val__, int *l1__, int *o1__, int *ilo1__, int *l2__, int *o2__, int *ilo2__, int *error_code__)
 
void sirius_set_o_radial_integral (void *const *handler__, int *ia__, double *val__, int *l__, int *o1__, int *ilo1__, int *o2__, int *ilo2__, int *error_code__)
 
void sirius_set_o1_radial_integral (void *const *handler__, int *ia__, double *val__, int *l1__, int *o1__, int *ilo1__, int *l2__, int *o2__, int *ilo2__, int *error_code__)
 
void sirius_set_radial_function (void *const *handler__, int const *ia__, int const *deriv_order__, double const *f__, int const *l__, int const *o__, int const *ilo__, int *error_code__)
 
void sirius_set_equivalent_atoms (void *const *handler__, int *equivalent_atoms__, int *error_code__)
 
void sirius_update_atomic_potential (void *const *handler__, int *error_code__)
 
void sirius_option_get_number_of_sections (int *length__, int *error_code__)
 
void sirius_option_get_section_name (int elem__, char *section_name__, int section_name_length__, int *error_code__)
 
void sirius_option_get_section_length (char const *section__, int *length__, int *error_code__)
 
void sirius_option_get_info (char const *section__, int elem__, char *key_name__, int key_name_len__, int *type__, int *length__, int *enum_size__, char *title__, int title_len__, char *description__, int description_len__, int *error_code__)
 
void sirius_option_get (char const *section__, char const *name__, int const *type__, void *data_ptr__, int const *max_length__, int const *enum_idx__, int *error_code__)
 
void sirius_option_set (void *const *handler__, char const *section__, char const *name__, int const *type__, void const *data_ptr__, int const *max_length__, bool const *append__, int *error_code__)
 
void sirius_dump_runtime_setup (void *const *handler__, char *filename__, int *error_code__)
 
void sirius_get_fv_eigen_vectors (void *const *handler__, int const *ik__, std::complex< double > *fv_evec__, int const *ld__, int const *num_fv_states__, int *error_code__)
 
void sirius_get_fv_eigen_values (void *const *handler__, int const *ik__, double *fv_eval__, int const *num_fv_states__, int *error_code__)
 
void sirius_get_sv_eigen_vectors (void *const *handler__, int const *ik__, std::complex< double > *sv_evec__, int const *num_bands__, int *error_code__)
 
void sirius_set_rg_values (void *const *handler__, char const *label__, int const *grid_dims__, int const *local_box_origin__, int const *local_box_size__, int const *fcomm__, double const *values__, bool const *transform_to_pw__, int *error_code__)
 
void sirius_get_rg_values (void *const *handler__, char const *label__, int const *grid_dims__, int const *local_box_origin__, int const *local_box_size__, int const *fcomm__, double *values__, bool const *transform_to_rg__, int *error_code__)
 
void sirius_get_total_magnetization (void *const *handler__, double *mag__, int *error_code__)
 
void sirius_get_num_kpoints (void *const *handler__, int *num_kpoints__, int *error_code__)
 
void sirius_get_kpoint_properties (void *const *handler__, int const *ik__, double *weight__, double *coordinates__, int *error_code__)
 
void sirius_set_callback_function (void *const *handler__, char const *label__, void(*fptr__)(), int *error_code__)
 
void sirius_nlcg (void *const *handler__, void *const *ks_handler__, int *error_code__)
 
void sirius_nlcg_params (void *const *handler__, void *const *ks_handler__, double const *temp__, char const *smearing__, double const *kappa__, double const *tau__, double const *tol__, int const *maxiter__, int const *restart__, char const *processing_unit__, bool *converged__, int *error_code__)
 
void sirius_add_hubbard_atom_pair (void *const *handler__, int *const atom_pair__, int *const translation__, int *const n__, int *const l__, const double *const coupling__, int *error_code__)
 
void sirius_create_H0 (void *const *handler__, int *error_code__)
 
void sirius_linear_solver (void *const *handler__, double const *vkq__, int const *num_gvec_kq_loc__, int const *gvec_kq_loc__, std::complex< double > *dpsi__, std::complex< double > *psi__, double *eigvals__, std::complex< double > *dvpsi__, int const *ld__, int const *num_spin_comp__, double const *alpha_pv__, int const *spin__, int const *nbnd_occ__, double const *tol__, int *niter__, int *error_code__)
 
void sirius_generate_d_operator_matrix (void *const *handler__, int *error_code__)
 
void sirius_save_state (void **handler__, const char *file_name__, int *error_code__)
 
void sirius_load_state (void **handler__, const char *file_name__, int *error_code__)
 
void sirius_set_density_matrix (void **handler__, int const *ia__, std::complex< double > *dm__, int const *ld__, int *error_code__)
 

Detailed Description

Fortran API.

Definition in file sirius_api.cpp.

Enumeration Type Documentation

◆ option_type_t

enum class option_type_t : int
strong

Definition at line 65 of file sirius_api.cpp.

Function Documentation

◆ get_sim_ctx()

Simulation_context & get_sim_ctx ( void *const *  h)

Definition at line 302 of file sirius_api.cpp.

◆ sirius_option_set_value() [1/2]

template<typename T >
void sirius_option_set_value ( Simulation_context sim_ctx__,
std::string  section__,
std::string  name__,
T const *  values__,
int const *  max_length__ 
)

Definition at line 83 of file sirius_api.cpp.

◆ sirius_option_set_value() [2/2]

void sirius_option_set_value ( Simulation_context sim_ctx__,
std::string  section__,
std::string  name__,
char const *  values__,
int const *  max_length__,
bool  append__ 
)

Definition at line 111 of file sirius_api.cpp.

◆ sirius_option_get_value() [1/2]

template<typename T >
void sirius_option_get_value ( std::string  section__,
std::string  name__,
T *  default_value__,
int const *  max_length__ 
)

Definition at line 140 of file sirius_api.cpp.

◆ sirius_option_get_value() [2/2]

void sirius_option_get_value ( std::string  section__,
std::string  name__,
char *  default_value__,
int const *  max_length__,
int const *  enum_idx__ 
)

Definition at line 173 of file sirius_api.cpp.

◆ sirius_print_error()

static void sirius_print_error ( int  error_code__,
std::string  msg__ = "" 
)
inlinestatic

Definition at line 219 of file sirius_api.cpp.

◆ sirius_exit()

static void sirius_exit ( int  error_code__,
std::string  msg__ = "" 
)
inlinestatic

Definition at line 248 of file sirius_api.cpp.

◆ call_sirius()

template<typename F >
static void call_sirius ( F &&  f__,
int *  error_code__ 
)
static

Definition at line 260 of file sirius_api.cpp.

◆ get_value()

template<typename T >
auto get_value ( T const *  ptr__,
v0__ = T() 
)

Definition at line 296 of file sirius_api.cpp.

◆ get_gs()

DFT_ground_state & get_gs ( void *const *  h)

Definition at line 311 of file sirius_api.cpp.

◆ get_ks()

K_point_set & get_ks ( void *const *  h)

Definition at line 320 of file sirius_api.cpp.

◆ idx_m_qe()

static int idx_m_qe ( int  m__)
inlinestatic

Index of Rlm in QE in the block of lm coefficients for a given l.

Definition at line 330 of file sirius_api.cpp.

◆ atomic_orbital_index_map_QE()

static std::vector< int > atomic_orbital_index_map_QE ( Atom_type const &  type__)
inlinestatic

Mapping of atomic indices from SIRIUS to QE order.

Definition at line 337 of file sirius_api.cpp.

◆ phase_Rlm_QE()

static int phase_Rlm_QE ( Atom_type const &  type__,
int  xi__ 
)
inlinestatic

Definition at line 352 of file sirius_api.cpp.

◆ sirius_initialize()

void sirius_initialize ( bool const *  call_mpi_init__,
int *  error_code__ 
)

Definition at line 375 of file sirius_api.cpp.

◆ sirius_finalize()

void sirius_finalize ( bool const *  call_mpi_fin__,
bool const *  call_device_reset__,
bool const *  call_fftw_fin__,
int *  error_code__ 
)

Definition at line 409 of file sirius_api.cpp.

◆ sirius_start_timer()

void sirius_start_timer ( char const *  name__,
int *  error_code__ 
)

Definition at line 454 of file sirius_api.cpp.

◆ sirius_stop_timer()

void sirius_stop_timer ( char const *  name__,
int *  error_code__ 
)

Definition at line 475 of file sirius_api.cpp.

◆ sirius_print_timers()

void sirius_print_timers ( bool *  flatten__,
int *  error_code__ 
)

Definition at line 496 of file sirius_api.cpp.

◆ sirius_serialize_timers()

void sirius_serialize_timers ( char const *  fname__,
int *  error_code__ 
)

Definition at line 527 of file sirius_api.cpp.

◆ sirius_context_initialized()

void sirius_context_initialized ( void *const *  handler__,
bool *  status__,
int *  error_code__ 
)

Definition at line 558 of file sirius_api.cpp.

◆ sirius_create_context()

void sirius_create_context ( int  fcomm__,
void **  handler__,
int *  fcomm_k__,
int *  fcomm_band__,
int *  error_code__ 
)

Definition at line 601 of file sirius_api.cpp.

◆ sirius_import_parameters()

void sirius_import_parameters ( void *const *  handler__,
char const *  str__,
int *  error_code__ 
)

Definition at line 634 of file sirius_api.cpp.

◆ sirius_set_parameters()

void sirius_set_parameters ( void *const *  handler__,
int const *  lmax_apw__,
int const *  lmax_rho__,
int const *  lmax_pot__,
int const *  num_fv_states__,
int const *  num_bands__,
int const *  num_mag_dims__,
double const *  pw_cutoff__,
double const *  gk_cutoff__,
int const *  fft_grid_size__,
int const *  auto_rmt__,
bool const *  gamma_point__,
bool const *  use_symmetry__,
bool const *  so_correction__,
char const *  valence_rel__,
char const *  core_rel__,
double const *  iter_solver_tol_empty__,
char const *  iter_solver_type__,
int const *  verbosity__,
bool const *  hubbard_correction__,
int const *  hubbard_correction_kind__,
bool const *  hubbard_full_orthogonalization__,
char const *  hubbard_orbitals__,
int const *  sht_coverage__,
double const *  min_occupancy__,
char const *  smearing__,
double const *  smearing_width__,
double const *  spglib_tol__,
char const *  electronic_structure_method__,
int *  error_code__ 
)

Definition at line 772 of file sirius_api.cpp.

◆ sirius_get_parameters()

void sirius_get_parameters ( void *const *  handler__,
int *  lmax_apw__,
int *  lmax_rho__,
int *  lmax_pot__,
int *  num_fv_states__,
int *  num_bands__,
int *  num_spins__,
int *  num_mag_dims__,
double *  pw_cutoff__,
double *  gk_cutoff__,
int *  fft_grid_size__,
int *  auto_rmt__,
bool *  gamma_point__,
bool *  use_symmetry__,
bool *  so_correction__,
double *  iter_solver_tol__,
double *  iter_solver_tol_empty__,
int *  verbosity__,
bool *  hubbard_correction__,
double *  evp_work_count__,
int *  num_loc_op_applied__,
int *  num_sym_op__,
char *  electronic_structure_method__,
int *  error_code__ 
)

Definition at line 991 of file sirius_api.cpp.

◆ sirius_add_xc_functional()

void sirius_add_xc_functional ( void *const *  handler__,
char const *  name__,
int *  error_code__ 
)

Definition at line 1095 of file sirius_api.cpp.

◆ sirius_set_mpi_grid_dims()

void sirius_set_mpi_grid_dims ( void *const *  handler__,
int const *  ndims__,
int const *  dims__,
int *  error_code__ 
)

Definition at line 1129 of file sirius_api.cpp.

◆ sirius_set_lattice_vectors()

void sirius_set_lattice_vectors ( void *const *  handler__,
double const *  a1__,
double const *  a2__,
double const *  a3__,
int *  error_code__ 
)

Definition at line 1169 of file sirius_api.cpp.

◆ sirius_initialize_context()

void sirius_initialize_context ( void *const *  handler__,
int *  error_code__ 
)

Definition at line 1197 of file sirius_api.cpp.

◆ sirius_update_context()

void sirius_update_context ( void *const *  handler__,
int *  error_code__ 
)

Definition at line 1224 of file sirius_api.cpp.

◆ sirius_print_info()

void sirius_print_info ( void *const *  handler__,
int *  error_code__ 
)

Definition at line 1251 of file sirius_api.cpp.

◆ sirius_free_object_handler()

void sirius_free_object_handler ( void **  handler__,
int *  error_code__ 
)

Definition at line 1278 of file sirius_api.cpp.

◆ sirius_set_periodic_function_ptr()

void sirius_set_periodic_function_ptr ( void *const *  handler__,
char const *  label__,
double *  f_mt__,
int const *  lmmax__,
int const *  nrmtmax__,
int const *  num_atoms__,
double *  f_rg__,
int const *  size_x__,
int const *  size_y__,
int const *  size_z__,
int const *  offset_z__,
int *  error_code__ 
)

Definition at line 1346 of file sirius_api.cpp.

◆ sirius_set_periodic_function()

void sirius_set_periodic_function ( void *const *  handler__,
char const *  label__,
double *  f_mt__,
int const *  lmmax__,
int const *  nrmtmax__,
int const *  num_atoms__,
double *  f_rg__,
int const *  size_x__,
int const *  size_y__,
int const *  size_z__,
int const *  offset_z__,
int *  error_code__ 
)

Definition at line 1427 of file sirius_api.cpp.

◆ sirius_get_periodic_function()

void sirius_get_periodic_function ( void *const *  handler__,
char const *  label__,
double *  f_mt__,
int const *  lmmax__,
int const *  nrmtmax__,
int const *  num_atoms__,
double *  f_rg__,
int const *  size_x__,
int const *  size_y__,
int const *  size_z__,
int const *  offset_z__,
int *  error_code__ 
)

Definition at line 1522 of file sirius_api.cpp.

◆ sirius_create_kset()

void sirius_create_kset ( void *const *  handler__,
int const *  num_kpoints__,
double *  kpoints__,
double const *  kpoint_weights__,
bool const *  init_kset__,
void **  kset_handler__,
int *  error_code__ 
)

Definition at line 1598 of file sirius_api.cpp.

◆ sirius_create_kset_from_grid()

void sirius_create_kset_from_grid ( void *const *  handler__,
int const *  k_grid__,
int const *  k_shift__,
bool const *  use_symmetry,
void **  kset_handler__,
int *  error_code__ 
)

Definition at line 1649 of file sirius_api.cpp.

◆ sirius_create_ground_state()

void sirius_create_ground_state ( void *const *  ks_handler__,
void **  gs_handler__,
int *  error_code__ 
)

Definition at line 1693 of file sirius_api.cpp.

◆ sirius_initialize_kset()

void sirius_initialize_kset ( void *const *  ks_handler__,
int *  count__,
int *  error_code__ 
)

Definition at line 1724 of file sirius_api.cpp.

◆ sirius_find_ground_state()

void sirius_find_ground_state ( void *const *  gs_handler__,
double const *  density_tol__,
double const *  energy_tol__,
double const *  iter_solver_tol__,
bool const *  initial_guess__,
int const *  max_niter__,
bool const *  save_state__,
bool *  converged__,
int *  niter__,
double *  rho_min__,
int *  error_code__ 
)

Definition at line 1791 of file sirius_api.cpp.

◆ sirius_check_scf_density()

void sirius_check_scf_density ( void *const *  gs_handler__,
int *  error_code__ 
)

Definition at line 1861 of file sirius_api.cpp.

◆ sirius_update_ground_state()

void sirius_update_ground_state ( void **  handler__,
int *  error_code__ 
)

Definition at line 1888 of file sirius_api.cpp.

◆ sirius_add_atom_type()

void sirius_add_atom_type ( void *const *  handler__,
char const *  label__,
char const *  fname__,
int const *  zn__,
char const *  symbol__,
double const *  mass__,
bool const *  spin_orbit__,
int *  error_code__ 
)

Definition at line 1938 of file sirius_api.cpp.

◆ sirius_set_atom_type_radial_grid()

void sirius_set_atom_type_radial_grid ( void *const *  handler__,
char const *  label__,
int const *  num_radial_points__,
double const *  radial_points__,
int *  error_code__ 
)

Definition at line 1996 of file sirius_api.cpp.

◆ sirius_set_atom_type_radial_grid_inf()

void sirius_set_atom_type_radial_grid_inf ( void *const *  handler__,
char const *  label__,
int const *  num_radial_points__,
double const *  radial_points__,
int *  error_code__ 
)

Definition at line 2037 of file sirius_api.cpp.

◆ sirius_add_atom_type_radial_function()

void sirius_add_atom_type_radial_function ( void *const *  handler__,
char const *  atom_type__,
char const *  label__,
double const *  rf__,
int const *  num_points__,
int const *  n__,
int const *  l__,
int const *  idxrf1__,
int const *  idxrf2__,
double const *  occ__,
int *  error_code__ 
)

Definition at line 2102 of file sirius_api.cpp.

◆ sirius_set_atom_type_hubbard()

void sirius_set_atom_type_hubbard ( void *const *  handler__,
char const *  label__,
int const *  l__,
int const *  n__,
double const *  occ__,
double const *  U__,
double const *  J__,
double const *  alpha__,
double const *  beta__,
double const *  J0__,
int *  error_code__ 
)

Definition at line 2219 of file sirius_api.cpp.

◆ sirius_set_atom_type_dion()

void sirius_set_atom_type_dion ( void *const *  handler__,
char const *  label__,
int const *  num_beta__,
double *  dion__,
int *  error_code__ 
)

Definition at line 2262 of file sirius_api.cpp.

◆ sirius_set_atom_type_paw()

void sirius_set_atom_type_paw ( void *const *  handler__,
char const *  label__,
double const *  core_energy__,
double const *  occupations__,
int const *  num_occ__,
int *  error_code__ 
)

Definition at line 2307 of file sirius_api.cpp.

◆ sirius_add_atom()

void sirius_add_atom ( void *const *  handler__,
char const *  label__,
double const *  position__,
double const *  vector_field__,
int *  error_code__ 
)

Definition at line 2358 of file sirius_api.cpp.

◆ sirius_set_atom_position()

void sirius_set_atom_position ( void *const *  handler__,
int const *  ia__,
double const *  position__,
int *  error_code__ 
)

Definition at line 2398 of file sirius_api.cpp.

◆ sirius_set_pw_coeffs()

void sirius_set_pw_coeffs ( void *const *  handler__,
char const *  label__,
std::complex< double > const *  pw_coeffs__,
bool const *  transform_to_rg__,
int const *  ngv__,
int *  gvl__,
int const *  comm__,
int *  error_code__ 
)

Definition at line 2448 of file sirius_api.cpp.

◆ sirius_get_pw_coeffs()

void sirius_get_pw_coeffs ( void *const *  handler__,
char const *  label__,
std::complex< double > *  pw_coeffs__,
int const *  ngv__,
int *  gvl__,
int const *  comm__,
int *  error_code__ 
)

Definition at line 2571 of file sirius_api.cpp.

◆ sirius_initialize_subspace()

void sirius_initialize_subspace ( void *const *  gs_handler__,
void *const *  ks_handler__,
int *  error_code__ 
)

Definition at line 2662 of file sirius_api.cpp.

◆ sirius_find_eigen_states()

void sirius_find_eigen_states ( void *const *  gs_handler__,
void *const *  ks_handler__,
bool const *  precompute_pw__,
bool const *  precompute_rf__,
bool const *  precompute_ri__,
double const *  iter_solver_tol__,
int *  error_code__ 
)

Definition at line 2710 of file sirius_api.cpp.

◆ sirius_generate_initial_density()

void sirius_generate_initial_density ( void *const *  handler__,
int *  error_code__ 
)

Definition at line 2753 of file sirius_api.cpp.

◆ sirius_generate_effective_potential()

void sirius_generate_effective_potential ( void *const *  handler__,
int *  error_code__ 
)

Definition at line 2779 of file sirius_api.cpp.

◆ sirius_generate_density()

void sirius_generate_density ( void *const *  gs_handler__,
bool const *  add_core__,
bool const *  transform_to_rg__,
bool const *  paw_only__,
int *  error_code__ 
)

Definition at line 2817 of file sirius_api.cpp.

◆ sirius_set_band_occupancies()

void sirius_set_band_occupancies ( void *const *  ks_handler__,
int const *  ik__,
int const *  ispn__,
double const *  band_occupancies__,
int *  error_code__ 
)

Definition at line 2864 of file sirius_api.cpp.

◆ sirius_get_band_occupancies()

void sirius_get_band_occupancies ( void *const *  ks_handler__,
int const *  ik__,
int const *  ispn__,
double *  band_occupancies__,
int *  error_code__ 
)

Definition at line 2906 of file sirius_api.cpp.

◆ sirius_get_band_energies()

void sirius_get_band_energies ( void *const *  ks_handler__,
int const *  ik__,
int const *  ispn__,
double *  band_energies__,
int *  error_code__ 
)

Definition at line 2948 of file sirius_api.cpp.

◆ sirius_get_energy()

void sirius_get_energy ( void *const *  handler__,
char const *  label__,
double *  energy__,
int *  error_code__ 
)

Definition at line 2986 of file sirius_api.cpp.

◆ sirius_get_forces()

void sirius_get_forces ( void *const *  handler__,
char const *  label__,
double *  forces__,
int *  error_code__ 
)

Definition at line 3052 of file sirius_api.cpp.

◆ sirius_get_stress_tensor()

void sirius_get_stress_tensor ( void *const *  handler__,
char const *  label__,
double *  stress_tensor__,
int *  error_code__ 
)

Definition at line 3109 of file sirius_api.cpp.

◆ sirius_get_num_beta_projectors()

void sirius_get_num_beta_projectors ( void *const *  handler__,
char const *  label__,
int *  num_bp__,
int *  error_code__ 
)

Definition at line 3168 of file sirius_api.cpp.

◆ sirius_get_wave_functions()

void sirius_get_wave_functions ( void *const *  ks_handler__,
double const *  vkl__,
int const *  spin__,
int const *  num_gvec_loc__,
int const *  gvec_loc__,
std::complex< double > *  evec__,
int const *  ld__,
int const *  num_spin_comp__,
int *  error_code__ 
)
  • G vector of host code *‍/

Definition at line 3225 of file sirius_api.cpp.

◆ sirius_add_atom_type_aw_descriptor()

void sirius_add_atom_type_aw_descriptor ( void *const *  handler__,
char const *  label__,
int const *  n__,
int const *  l__,
double const *  enu__,
int const *  dme__,
bool const *  auto_enu__,
int *  error_code__ 
)

Definition at line 3441 of file sirius_api.cpp.

◆ sirius_add_atom_type_lo_descriptor()

void sirius_add_atom_type_lo_descriptor ( void *const *  handler__,
char const *  label__,
int const *  ilo__,
int const *  n__,
int const *  l__,
double const *  enu__,
int const *  dme__,
bool const *  auto_enu__,
int *  error_code__ 
)

Definition at line 3497 of file sirius_api.cpp.

◆ sirius_set_atom_type_configuration()

void sirius_set_atom_type_configuration ( void *const *  handler__,
char const *  label__,
int const *  n__,
int const *  l__,
int const *  k__,
double const *  occupancy__,
bool const *  core__,
int *  error_code__ 
)

Definition at line 3550 of file sirius_api.cpp.

◆ sirius_generate_coulomb_potential()

void sirius_generate_coulomb_potential ( void *const *  handler__,
double *  vh_el__,
int *  error_code__ 
)

Definition at line 3582 of file sirius_api.cpp.

◆ sirius_generate_xc_potential()

void sirius_generate_xc_potential ( void *const *  handler__,
int *  error_code__ 
)

Definition at line 3616 of file sirius_api.cpp.

◆ sirius_get_kpoint_inter_comm()

void sirius_get_kpoint_inter_comm ( void *const *  handler__,
int *  fcomm__,
int *  error_code__ 
)

Definition at line 3646 of file sirius_api.cpp.

◆ sirius_get_kpoint_inner_comm()

void sirius_get_kpoint_inner_comm ( void *const *  handler__,
int *  fcomm__,
int *  error_code__ 
)

Definition at line 3676 of file sirius_api.cpp.

◆ sirius_get_fft_comm()

void sirius_get_fft_comm ( void *const *  handler__,
int *  fcomm__,
int *  error_code__ 
)

Definition at line 3706 of file sirius_api.cpp.

◆ sirius_get_num_gvec()

void sirius_get_num_gvec ( void *const *  handler__,
int *  num_gvec__,
int *  error_code__ 
)

Definition at line 3736 of file sirius_api.cpp.

◆ sirius_get_gvec_arrays()

void sirius_get_gvec_arrays ( void *const *  handler__,
int *  gvec__,
double *  gvec_cart__,
double *  gvec_len__,
int *  index_by_gvec__,
int *  error_code__ 
)

Definition at line 3778 of file sirius_api.cpp.

◆ sirius_get_num_fft_grid_points()

void sirius_get_num_fft_grid_points ( void *const *  handler__,
int *  num_fft_grid_points__,
int *  error_code__ 
)

Definition at line 3847 of file sirius_api.cpp.

◆ sirius_get_fft_index()

void sirius_get_fft_index ( void *const *  handler__,
int *  fft_index__,
int *  error_code__ 
)

Definition at line 3877 of file sirius_api.cpp.

◆ sirius_get_max_num_gkvec()

void sirius_get_max_num_gkvec ( void *const *  ks_handler__,
int *  max_num_gkvec__,
int *  error_code__ 
)

Definition at line 3910 of file sirius_api.cpp.

◆ sirius_get_gkvec_arrays()

void sirius_get_gkvec_arrays ( void *const *  ks_handler__,
int *  ik__,
int *  num_gkvec__,
int *  gvec_index__,
double *  gkvec__,
double *  gkvec_cart__,
double *  gkvec_len,
double *  gkvec_tp__,
int *  error_code__ 
)

Definition at line 3964 of file sirius_api.cpp.

◆ sirius_get_step_function()

void sirius_get_step_function ( void *const *  handler__,
std::complex< double > *  cfunig__,
double *  cfunrg__,
int *  num_rg_points__,
int *  error_code__ 
)

Definition at line 4038 of file sirius_api.cpp.

◆ sirius_set_h_radial_integrals()

void sirius_set_h_radial_integrals ( void *const *  handler__,
int *  ia__,
int *  lmmax__,
double *  val__,
int *  l1__,
int *  o1__,
int *  ilo1__,
int *  l2__,
int *  o2__,
int *  ilo2__,
int *  error_code__ 
)

Definition at line 4123 of file sirius_api.cpp.

◆ sirius_set_o_radial_integral()

void sirius_set_o_radial_integral ( void *const *  handler__,
int *  ia__,
double *  val__,
int *  l__,
int *  o1__,
int *  ilo1__,
int *  o2__,
int *  ilo2__,
int *  error_code__ 
)

Definition at line 4203 of file sirius_api.cpp.

◆ sirius_set_o1_radial_integral()

void sirius_set_o1_radial_integral ( void *const *  handler__,
int *  ia__,
double *  val__,
int *  l1__,
int *  o1__,
int *  ilo1__,
int *  l2__,
int *  o2__,
int *  ilo2__,
int *  error_code__ 
)

Definition at line 4286 of file sirius_api.cpp.

◆ sirius_set_radial_function()

void sirius_set_radial_function ( void *const *  handler__,
int const *  ia__,
int const *  deriv_order__,
double const *  f__,
int const *  l__,
int const *  o__,
int const *  ilo__,
int *  error_code__ 
)

Definition at line 4359 of file sirius_api.cpp.

◆ sirius_set_equivalent_atoms()

void sirius_set_equivalent_atoms ( void *const *  handler__,
int *  equivalent_atoms__,
int *  error_code__ 
)

Definition at line 4423 of file sirius_api.cpp.

◆ sirius_update_atomic_potential()

void sirius_update_atomic_potential ( void *const *  handler__,
int *  error_code__ 
)

Definition at line 4449 of file sirius_api.cpp.

◆ sirius_option_get_number_of_sections()

void sirius_option_get_number_of_sections ( int *  length__,
int *  error_code__ 
)

Definition at line 4475 of file sirius_api.cpp.

◆ sirius_option_get_section_name()

void sirius_option_get_section_name ( int  elem__,
char *  section_name__,
int  section_name_length__,
int *  error_code__ 
)

Definition at line 4508 of file sirius_api.cpp.

◆ sirius_option_get_section_length()

void sirius_option_get_section_length ( char const *  section__,
int *  length__,
int *  error_code__ 
)

Definition at line 4551 of file sirius_api.cpp.

◆ sirius_option_get_info()

void sirius_option_get_info ( char const *  section__,
int  elem__,
char *  key_name__,
int  key_name_len__,
int *  type__,
int *  length__,
int *  enum_size__,
char *  title__,
int  title_len__,
char *  description__,
int  description_len__,
int *  error_code__ 
)

Definition at line 4619 of file sirius_api.cpp.

◆ sirius_option_get()

void sirius_option_get ( char const *  section__,
char const *  name__,
int const *  type__,
void *  data_ptr__,
int const *  max_length__,
int const *  enum_idx__,
int *  error_code__ 
)

Definition at line 4735 of file sirius_api.cpp.

◆ sirius_option_set()

void sirius_option_set ( void *const *  handler__,
char const *  section__,
char const *  name__,
int const *  type__,
void const *  data_ptr__,
int const *  max_length__,
bool const *  append__,
int *  error_code__ 
)

Definition at line 4813 of file sirius_api.cpp.

◆ sirius_dump_runtime_setup()

void sirius_dump_runtime_setup ( void *const *  handler__,
char *  filename__,
int *  error_code__ 
)

Definition at line 4871 of file sirius_api.cpp.

◆ sirius_get_fv_eigen_vectors()

void sirius_get_fv_eigen_vectors ( void *const *  handler__,
int const *  ik__,
std::complex< double > *  fv_evec__,
int const *  ld__,
int const *  num_fv_states__,
int *  error_code__ 
)

Definition at line 4915 of file sirius_api.cpp.

◆ sirius_get_fv_eigen_values()

void sirius_get_fv_eigen_values ( void *const *  handler__,
int const *  ik__,
double *  fv_eval__,
int const *  num_fv_states__,
int *  error_code__ 
)

Definition at line 4956 of file sirius_api.cpp.

◆ sirius_get_sv_eigen_vectors()

void sirius_get_sv_eigen_vectors ( void *const *  handler__,
int const *  ik__,
std::complex< double > *  sv_evec__,
int const *  num_bands__,
int *  error_code__ 
)

Definition at line 5001 of file sirius_api.cpp.

◆ sirius_set_rg_values()

void sirius_set_rg_values ( void *const *  handler__,
char const *  label__,
int const *  grid_dims__,
int const *  local_box_origin__,
int const *  local_box_size__,
int const *  fcomm__,
double const *  values__,
bool const *  transform_to_pw__,
int *  error_code__ 
)

Definition at line 5058 of file sirius_api.cpp.

◆ sirius_get_rg_values()

void sirius_get_rg_values ( void *const *  handler__,
char const *  label__,
int const *  grid_dims__,
int const *  local_box_origin__,
int const *  local_box_size__,
int const *  fcomm__,
double *  values__,
bool const *  transform_to_rg__,
int *  error_code__ 
)

Definition at line 5191 of file sirius_api.cpp.

◆ sirius_get_total_magnetization()

void sirius_get_total_magnetization ( void *const *  handler__,
double *  mag__,
int *  error_code__ 
)

Definition at line 5299 of file sirius_api.cpp.

◆ sirius_get_num_kpoints()

void sirius_get_num_kpoints ( void *const *  handler__,
int *  num_kpoints__,
int *  error_code__ 
)

Definition at line 5342 of file sirius_api.cpp.

◆ sirius_get_kpoint_properties()

void sirius_get_kpoint_properties ( void *const *  handler__,
int const *  ik__,
double *  weight__,
double *  coordinates__,
int *  error_code__ 
)

Definition at line 5380 of file sirius_api.cpp.

◆ sirius_set_callback_function()

void sirius_set_callback_function ( void *const *  handler__,
char const *  label__,
void(*)()  fptr__,
int *  error_code__ 
)

Definition at line 5422 of file sirius_api.cpp.

◆ sirius_nlcg()

void sirius_nlcg ( void *const *  handler__,
void *const *  ks_handler__,
int *  error_code__ 
)

Definition at line 5483 of file sirius_api.cpp.

◆ sirius_nlcg_params()

void sirius_nlcg_params ( void *const *  handler__,
void *const *  ks_handler__,
double const *  temp__,
char const *  smearing__,
double const *  kappa__,
double const *  tau__,
double const *  tol__,
int const *  maxiter__,
int const *  restart__,
char const *  processing_unit__,
bool *  converged__,
int *  error_code__ 
)

Definition at line 5598 of file sirius_api.cpp.

◆ sirius_add_hubbard_atom_pair()

void sirius_add_hubbard_atom_pair ( void *const *  handler__,
int *const  atom_pair__,
int *const  translation__,
int *const  n__,
int *const  l__,
const double *const  coupling__,
int *  error_code__ 
)

Definition at line 5716 of file sirius_api.cpp.

◆ sirius_create_H0()

void sirius_create_H0 ( void *const *  handler__,
int *  error_code__ 
)

Definition at line 5786 of file sirius_api.cpp.

◆ sirius_linear_solver()

void sirius_linear_solver ( void *const *  handler__,
double const *  vkq__,
int const *  num_gvec_kq_loc__,
int const *  gvec_kq_loc__,
std::complex< double > *  dpsi__,
std::complex< double > *  psi__,
double *  eigvals__,
std::complex< double > *  dvpsi__,
int const *  ld__,
int const *  num_spin_comp__,
double const *  alpha_pv__,
int const *  spin__,
int const *  nbnd_occ__,
double const *  tol__,
int *  niter__,
int *  error_code__ 
)

Definition at line 5866 of file sirius_api.cpp.

◆ sirius_generate_d_operator_matrix()

void sirius_generate_d_operator_matrix ( void *const *  handler__,
int *  error_code__ 
)

Definition at line 6051 of file sirius_api.cpp.

◆ sirius_save_state()

void sirius_save_state ( void **  handler__,
const char *  file_name__,
int *  error_code__ 
)

Definition at line 6080 of file sirius_api.cpp.

◆ sirius_load_state()

void sirius_load_state ( void **  handler__,
const char *  file_name__,
int *  error_code__ 
)

Definition at line 6113 of file sirius_api.cpp.

◆ sirius_set_density_matrix()

void sirius_set_density_matrix ( void **  handler__,
int const *  ia__,
std::complex< double > *  dm__,
int const *  ld__,
int *  error_code__ 
)

Definition at line 6153 of file sirius_api.cpp.