SIRIUS 7.5.0
Electronic structure library and applications
Data Types | Modules | Functions/Subroutines | Variables
sirius.f90 File Reference

Autogenerated Fortran module for the SIRIUS API. More...

Go to the source code of this file.

Data Types

type  sirius::sirius_context_handler
 Opaque wrapper for simulation context handler. More...
 
type  sirius::sirius_ground_state_handler
 Opaque wrapper for DFT ground statee handler. More...
 
type  sirius::sirius_kpoint_set_handler
 Opaque wrapper for K-point set handler. More...
 
interface  sirius::sirius_free_handler
 Free any of the SIRIUS handlers (context, ground state or k-points). More...
 

Modules

module  sirius
 Namespace of the SIRIUS library.
 

Functions/Subroutines

character(kind=c_char, len=1) function, dimension(len_trim(f_string)+1) sirius::string_f2c (f_string)
 Internal function that adds trailing null character to the string to make it C-style. More...
 
character(kind=c_char, len=size(c_string) - 1) function sirius::string_c2f (c_string)
 Internal function that converts C-string (with trailing null character) to the Fortran string. More...
 
subroutine sirius::sirius_initialize (call_mpi_init, error_code)
 Initialize the SIRIUS library. More...
 
subroutine sirius::sirius_finalize (call_mpi_fin, call_device_reset, call_fftw_fin, error_code)
 Shut down the SIRIUS library. More...
 
subroutine sirius::sirius_start_timer (name, error_code)
 Start the timer. More...
 
subroutine sirius::sirius_stop_timer (name, error_code)
 Stop the running timer. More...
 
subroutine sirius::sirius_print_timers (flatten, error_code)
 Print all timers. More...
 
subroutine sirius::sirius_serialize_timers (fname, error_code)
 Save all timers to JSON file. More...
 
subroutine sirius::sirius_context_initialized (handler, status, error_code)
 Check if the simulation context is initialized. More...
 
subroutine sirius::sirius_create_context (fcomm, handler, fcomm_k, fcomm_band, error_code)
 Create context of the simulation. More...
 
subroutine sirius::sirius_import_parameters (handler, str, error_code)
 Import parameters of simulation from a JSON string. More...
 
subroutine sirius::sirius_set_parameters (handler, lmax_apw, lmax_rho, lmax_pot, num_fv_states, num_bands, num_mag_dims, pw_cutoff, gk_cutoff, fft_grid_size, auto_rmt, gamma_point, use_symmetry, so_correction, valence_rel, core_rel, iter_solver_tol_empty, iter_solver_type, verbosity, hubbard_correction, hubbard_correction_kind, hubbard_full_orthogonalization, hubbard_orbitals, sht_coverage, min_occupancy, smearing, smearing_width, spglib_tol, electronic_structure_method, error_code)
 Set parameters of the simulation. More...
 
subroutine sirius::sirius_get_parameters (handler, lmax_apw, lmax_rho, lmax_pot, num_fv_states, num_bands, num_spins, num_mag_dims, pw_cutoff, gk_cutoff, fft_grid_size, auto_rmt, gamma_point, use_symmetry, so_correction, iter_solver_tol, iter_solver_tol_empty, verbosity, hubbard_correction, evp_work_count, num_loc_op_applied, num_sym_op, electronic_structure_method, error_code)
 Get parameters of the simulation. More...
 
subroutine sirius::sirius_add_xc_functional (handler, name, error_code)
 Add one of the XC functionals. More...
 
subroutine sirius::sirius_set_mpi_grid_dims (handler, ndims, dims, error_code)
 Set dimensions of the MPI grid. More...
 
subroutine sirius::sirius_set_lattice_vectors (handler, a1, a2, a3, error_code)
 Set vectors of the unit cell. More...
 
subroutine sirius::sirius_initialize_context (handler, error_code)
 Initialize simulation context. More...
 
subroutine sirius::sirius_update_context (handler, error_code)
 Update simulation context after changing lattice or atomic positions. More...
 
subroutine sirius::sirius_print_info (handler, error_code)
 Print basic info. More...
 
subroutine sirius::sirius_free_object_handler (handler, error_code)
 Free any object handler created by SIRIUS. More...
 
subroutine sirius::sirius_set_periodic_function_ptr (handler, label, f_mt, lmmax, nrmtmax, num_atoms, f_rg, size_x, size_y, size_z, offset_z, error_code)
 Set pointer to density or magnetization. More...
 
subroutine sirius::sirius_set_periodic_function (handler, label, f_mt, lmmax, nrmtmax, num_atoms, f_rg, size_x, size_y, size_z, offset_z, error_code)
 Set values of the periodic function. More...
 
subroutine sirius::sirius_get_periodic_function (handler, label, f_mt, lmmax, nrmtmax, num_atoms, f_rg, size_x, size_y, size_z, offset_z, error_code)
 Get values of the periodic function. More...
 
subroutine sirius::sirius_create_kset (handler, num_kpoints, kpoints, kpoint_weights, init_kset, kset_handler, error_code)
 Create k-point set from the list of k-points. More...
 
subroutine sirius::sirius_create_kset_from_grid (handler, k_grid, k_shift, use_symmetry, kset_handler, error_code)
 Create k-point set from a grid. More...
 
subroutine sirius::sirius_create_ground_state (ks_handler, gs_handler, error_code)
 Create a ground state object. More...
 
subroutine sirius::sirius_initialize_kset (ks_handler, count, error_code)
 Initialize k-point set. More...
 
subroutine sirius::sirius_find_ground_state (gs_handler, density_tol, energy_tol, iter_solver_tol, initial_guess, max_niter, save_state, converged, niter, rho_min, error_code)
 Find the ground state. More...
 
subroutine sirius::sirius_check_scf_density (gs_handler, error_code)
 Check the self-consistent density. More...
 
subroutine sirius::sirius_update_ground_state (gs_handler, error_code)
 Update a ground state object after change of atomic coordinates or lattice vectors. More...
 
subroutine sirius::sirius_add_atom_type (handler, label, fname, zn, symbol, mass, spin_orbit, error_code)
 Add new atom type to the unit cell. More...
 
subroutine sirius::sirius_set_atom_type_radial_grid (handler, label, num_radial_points, radial_points, error_code)
 Set radial grid of the atom type. More...
 
subroutine sirius::sirius_set_atom_type_radial_grid_inf (handler, label, num_radial_points, radial_points, error_code)
 Set radial grid of the free atom (up to effectice infinity). More...
 
subroutine sirius::sirius_add_atom_type_radial_function (handler, atom_type, label, rf, num_points, n, l, idxrf1, idxrf2, occ, error_code)
 Add one of the radial functions. More...
 
subroutine sirius::sirius_set_atom_type_hubbard (handler, label, l, n, occ, U, J, alpha, beta, J0, error_code)
 Set the hubbard correction for the atomic type. More...
 
subroutine sirius::sirius_set_atom_type_dion (handler, label, num_beta, dion, error_code)
 Set ionic part of D-operator matrix. More...
 
subroutine sirius::sirius_set_atom_type_paw (handler, label, core_energy, occupations, num_occ, error_code)
 Set PAW related data. More...
 
subroutine sirius::sirius_add_atom (handler, label, position, vector_field, error_code)
 Add atom to the unit cell. More...
 
subroutine sirius::sirius_set_atom_position (handler, ia, position, error_code)
 Set new atomic position. More...
 
subroutine sirius::sirius_set_pw_coeffs (handler, label, pw_coeffs, transform_to_rg, ngv, gvl, comm, error_code)
 Set plane-wave coefficients of a periodic function. More...
 
subroutine sirius::sirius_get_pw_coeffs (handler, label, pw_coeffs, ngv, gvl, comm, error_code)
 Get plane-wave coefficients of a periodic function. More...
 
subroutine sirius::sirius_initialize_subspace (gs_handler, ks_handler, error_code)
 Initialize the subspace of wave-functions. More...
 
subroutine sirius::sirius_find_eigen_states (gs_handler, ks_handler, precompute_pw, precompute_rf, precompute_ri, iter_solver_tol, error_code)
 Find eigen-states of the Hamiltonian. More...
 
subroutine sirius::sirius_generate_initial_density (handler, error_code)
 Generate initial density. More...
 
subroutine sirius::sirius_generate_effective_potential (handler, error_code)
 Generate effective potential and magnetic field. More...
 
subroutine sirius::sirius_generate_density (gs_handler, add_core, transform_to_rg, paw_only, error_code)
 Generate charge density and magnetization. More...
 
subroutine sirius::sirius_set_band_occupancies (ks_handler, ik, ispn, band_occupancies, error_code)
 Set band occupancies. More...
 
subroutine sirius::sirius_get_band_occupancies (ks_handler, ik, ispn, band_occupancies, error_code)
 Set band occupancies. More...
 
subroutine sirius::sirius_get_band_energies (ks_handler, ik, ispn, band_energies, error_code)
 Get band energies. More...
 
subroutine sirius::sirius_get_energy (handler, label, energy, error_code)
 Get one of the total energy components. More...
 
subroutine sirius::sirius_get_forces (handler, label, forces, error_code)
 Get one of the total force components. More...
 
subroutine sirius::sirius_get_stress_tensor (handler, label, stress_tensor, error_code)
 Get one of the stress tensor components. More...
 
subroutine sirius::sirius_get_num_beta_projectors (handler, label, num_bp, error_code)
 Get the number of beta-projectors for an atom type. More...
 
subroutine sirius::sirius_get_wave_functions (ks_handler, vkl, spin, num_gvec_loc, gvec_loc, evec, ld, num_spin_comp, error_code)
 Get wave-functions. More...
 
subroutine sirius::sirius_add_atom_type_aw_descriptor (handler, label, n, l, enu, dme, auto_enu, error_code)
 Add descriptor of the augmented wave radial function. More...
 
subroutine sirius::sirius_add_atom_type_lo_descriptor (handler, label, ilo, n, l, enu, dme, auto_enu, error_code)
 Add descriptor of the local orbital radial function. More...
 
subroutine sirius::sirius_set_atom_type_configuration (handler, label, n, l, k, occupancy, core, error_code)
 Set configuration of atomic levels. More...
 
subroutine sirius::sirius_generate_coulomb_potential (handler, vh_el, error_code)
 Generate Coulomb potential by solving Poisson equation. More...
 
subroutine sirius::sirius_generate_xc_potential (handler, error_code)
 Generate XC potential using LibXC. More...
 
subroutine sirius::sirius_get_kpoint_inter_comm (handler, fcomm, error_code)
 Get communicator which is used to split k-points. More...
 
subroutine sirius::sirius_get_kpoint_inner_comm (handler, fcomm, error_code)
 Get communicator which is used to parallise band problem. More...
 
subroutine sirius::sirius_get_fft_comm (handler, fcomm, error_code)
 Get communicator which is used to parallise FFT. More...
 
subroutine sirius::sirius_get_num_gvec (handler, num_gvec, error_code)
 Get total number of G-vectors on the fine grid. More...
 
subroutine sirius::sirius_get_gvec_arrays (handler, gvec, gvec_cart, gvec_len, index_by_gvec, error_code)
 Get G-vector arrays. More...
 
subroutine sirius::sirius_get_num_fft_grid_points (handler, num_fft_grid_points, error_code)
 Get local number of FFT grid points. More...
 
subroutine sirius::sirius_get_fft_index (handler, fft_index, error_code)
 Get mapping between G-vector index and FFT index. More...
 
subroutine sirius::sirius_get_max_num_gkvec (ks_handler, max_num_gkvec, error_code)
 Get maximum number of G+k vectors across all k-points in the set. More...
 
subroutine sirius::sirius_get_gkvec_arrays (ks_handler, ik, num_gkvec, gvec_index, gkvec, gkvec_cart, gkvec_len, gkvec_tp, error_code)
 Get all G+k vector related arrays. More...
 
subroutine sirius::sirius_get_step_function (handler, cfunig, cfunrg, num_rg_points, error_code)
 Get the unit-step function. More...
 
subroutine sirius::sirius_set_h_radial_integrals (handler, ia, lmmax, val, l1, o1, ilo1, l2, o2, ilo2, error_code)
 Set LAPW Hamiltonian radial integrals. More...
 
subroutine sirius::sirius_set_o_radial_integral (handler, ia, val, l, o1, ilo1, o2, ilo2, error_code)
 Set LAPW overlap radial integral. More...
 
subroutine sirius::sirius_set_o1_radial_integral (handler, ia, val, l1, o1, ilo1, l2, o2, ilo2, error_code)
 Set a correction to LAPW overlap radial integral. More...
 
subroutine sirius::sirius_set_radial_function (handler, ia, deriv_order, f, l, o, ilo, error_code)
 Set LAPW radial functions. More...
 
subroutine sirius::sirius_set_equivalent_atoms (handler, equivalent_atoms, error_code)
 Set equivalent atoms. More...
 
subroutine sirius::sirius_update_atomic_potential (handler, error_code)
 Set the new spherical potential. More...
 
subroutine sirius::sirius_option_get_number_of_sections (length, error_code)
 Return the total number of sections defined in the input JSON schema. More...
 
subroutine sirius::sirius_option_get_section_name (elem, section_name, section_name_length, error_code)
 Return the name of a given section. More...
 
subroutine sirius::sirius_option_get_section_length (section, length, error_code)
 Return the number of options in a given section. More...
 
subroutine sirius::sirius_option_get_info (section, elem, key_name, key_name_len, type, length, enum_size, title, title_len, description, description_len, error_code)
 Return information about the option. More...
 
subroutine sirius::sirius_option_get (section, name, type, data_ptr, max_length, enum_idx, error_code)
 Return the default value of the option as defined in the JSON schema. More...
 
subroutine sirius::sirius_option_set (handler, section, name, type, data_ptr, max_length, append, error_code)
 Set the value of the option name in a (internal) json dictionary. More...
 
subroutine sirius::sirius_dump_runtime_setup (handler, filename, error_code)
 Dump the runtime setup in a file. More...
 
subroutine sirius::sirius_get_fv_eigen_vectors (handler, ik, fv_evec, ld, num_fv_states, error_code)
 Get the first-variational eigen vectors. More...
 
subroutine sirius::sirius_get_fv_eigen_values (handler, ik, fv_eval, num_fv_states, error_code)
 Get the first-variational eigen values. More...
 
subroutine sirius::sirius_get_sv_eigen_vectors (handler, ik, sv_evec, num_bands, error_code)
 Get the second-variational eigen vectors. More...
 
subroutine sirius::sirius_set_rg_values (handler, label, grid_dims, local_box_origin, local_box_size, fcomm, values, transform_to_pw, error_code)
 Set the values of the function on the regular grid. More...
 
subroutine sirius::sirius_get_rg_values (handler, label, grid_dims, local_box_origin, local_box_size, fcomm, values, transform_to_rg, error_code)
 Get the values of the function on the regular grid. More...
 
subroutine sirius::sirius_get_total_magnetization (handler, mag, error_code)
 Get the total magnetization of the system. More...
 
subroutine sirius::sirius_get_num_kpoints (handler, num_kpoints, error_code)
 Get the total number of kpoints. More...
 
subroutine sirius::sirius_get_kpoint_properties (handler, ik, weight, coordinates, error_code)
 Get the kpoint properties. More...
 
subroutine sirius::sirius_set_callback_function (handler, label, fptr, error_code)
 Set callback function to compute various radial integrals. More...
 
subroutine sirius::sirius_nlcg (handler, ks_handler, error_code)
 Robust wave function optimizer. More...
 
subroutine sirius::sirius_nlcg_params (handler, ks_handler, temp, smearing, kappa, tau, tol, maxiter, restart, processing_unit, converged, error_code)
 Robust wave function optimizer. More...
 
subroutine sirius::sirius_add_hubbard_atom_pair (handler, atom_pair, translation, n, l, coupling, error_code)
 Add a non-local Hubbard interaction V for a pair of atoms. More...
 
subroutine sirius::sirius_create_h0 (handler, error_code)
 Generate H0. More...
 
subroutine sirius::sirius_linear_solver (handler, vkq, num_gvec_kq_loc, gvec_kq_loc, dpsi, psi, eigvals, dvpsi, ld, num_spin_comp, alpha_pv, spin, nbnd_occ, tol, niter, error_code)
 Interface to linear solver. More...
 
subroutine sirius::sirius_generate_d_operator_matrix (handler, error_code)
 Generate D-operator matrix. More...
 
subroutine sirius::sirius_save_state (gs_handler, file_name, error_code)
 Save DFT ground state (density and potential) More...
 
subroutine sirius::sirius_load_state (handler, file_name, error_code)
 Save DFT ground state (density and potential) More...
 
subroutine sirius::sirius_set_density_matrix (handler, ia, dm, ld, error_code)
 Set density matrix. More...
 
subroutine sirius::sirius_free_handler_ctx (handler, error_code)
 
subroutine sirius::sirius_free_handler_ks (handler, error_code)
 
subroutine sirius::sirius_free_handler_dft (handler, error_code)
 

Variables

integer, parameter, public sirius::sirius_integer_type = 1
 
integer, parameter, public sirius::sirius_logical_type = 2
 
integer, parameter, public sirius::sirius_string_type = 3
 
integer, parameter, public sirius::sirius_number_type = 4
 
integer, parameter, public sirius::sirius_object_type = 5
 
integer, parameter, public sirius::sirius_array_type = 6
 
integer, parameter, public sirius::sirius_integer_array_type = 7
 
integer, parameter, public sirius::sirius_logical_array_type = 8
 
integer, parameter, public sirius::sirius_number_array_type = 9
 
integer, parameter, public sirius::sirius_string_array_type = 10
 
integer, parameter, public sirius::sirius_object_array_type = 11
 
integer, parameter, public sirius::sirius_array_array_type = 12
 

Detailed Description

Autogenerated Fortran module for the SIRIUS API.

Definition in file sirius.f90.