librpa_f03.f90 File Reference#
|
LibRPA
|
librpa_f03.f90 File Reference
Fortran 2003 binding for LibRPA. More...
Data Types | |
| type | librpa_f03::librpaoptions |
| High-level Fortran wrapper for runtime options. More... | |
| type | librpa_f03::librpahandler |
| High-level Fortran wrapper for LibRPA handler. More... | |
Modules | |
| module | librpa_f03 |
| Fortran 2003 module for LibRPA API. | |
Variables | |
| integer, parameter, public | librpa_f03::dp = ${LIBRPA_FORTRAN_DP} |
| Double precision kind for user data. | |
| integer, parameter, public | librpa_f03::librpa_max_strlen = 200 |
| Maximum length for string parameters. | |
Verbosity levels | |
Controls the amount of output during computation. | |
| integer, parameter, public | librpa_f03::librpa_verbose_debug = 4 |
| Debug output. | |
| integer, parameter, public | librpa_f03::librpa_verbose_warn = 3 |
| Warnings and above. | |
| integer, parameter, public | librpa_f03::librpa_verbose_info = 2 |
| Informational messages. | |
| integer, parameter, public | librpa_f03::librpa_verbose_critical = 1 |
| Critical errors only. | |
| integer, parameter, public | librpa_f03::librpa_verbose_silent = 0 |
| No output. | |
Parallel routing strategies | |
Specifies how computation is distributed across MPI processes. | |
| integer, parameter, public | librpa_f03::librpa_routing_unset = LIBRPA_UNSET |
| Unset. | |
| integer, parameter, public | librpa_f03::librpa_routing_auto = LIBRPA_AUTO |
| Auto-select. | |
| integer, parameter, public | librpa_f03::librpa_routing_rtau = 0 |
| Real-space tau decomposition. | |
| integer, parameter, public | librpa_f03::librpa_routing_atompair = 1 |
| Atom-pair parallelization. | |
| integer, parameter, public | librpa_f03::librpa_routing_libri = 2 |
| Use LibRI for RI basis. | |
Time-frequency grid types | |
Different grid types for numerical integration. | |
| integer, parameter, public | librpa_f03::librpa_tfgrid_unset = LIBRPA_UNSET |
| Unset. | |
| integer, parameter, public | librpa_f03::librpa_tfgrid_gl = 0 |
| Gauss-Legendre. | |
| integer, parameter, public | librpa_f03::librpa_tfgrid_gci = 1 |
| Gauss-Chebyshev type I. | |
| integer, parameter, public | librpa_f03::librpa_tfgrid_gcii = 2 |
| Gauss-Chebyshev type II. | |
| integer, parameter, public | librpa_f03::librpa_tfgrid_minimax = 3 |
| Minimax grid. | |
| integer, parameter, public | librpa_f03::librpa_tfgrid_evenspaced = 4 |
| Evenly spaced. | |
| integer, parameter, public | librpa_f03::librpa_tfgrid_evenspaced_tf = 5 |
| Evenly spaced in time-frequency. | |
Switch values | |
Boolean switch as integer type (compatible with C). | |
Type definitions | |
| subroutine, public | librpa_f03::librpa_init_global (sw_redirect, redirect_path, sw_process) |
| Initialize the global computing environment of LibRPA. | |
| subroutine, public | librpa_f03::librpa_finalize_global () |
| Release all internal data and finalize the global computing environment of LibRPA. | |
| integer function, public | librpa_f03::librpa_get_major_version () |
| Get major version number. | |
| integer function, public | librpa_f03::librpa_get_minor_version () |
| Get minor version number. | |
| integer function, public | librpa_f03::librpa_get_patch_version () |
| Get patch version number. | |
| subroutine, public | librpa_f03::librpa_test () |
| Run internal self-tests. | |
| subroutine, public | librpa_f03::librpa_print_profile () |
| Print profiling information. | |
Detailed Description
Fortran 2003 binding for LibRPA.
This module provides Fortran interfaces to LibRPA functionality for performing RPA correlation energy, exact exchange, and G0W0 calculations.
Usage
Typical workflow:
use librpa_f03
implicit none
type(LibrpaOptions) :: opts
type(LibrpaHandler) :: h
! Initialize LibRPA environment
call librpa_init_global()
! Initialize options
call opts%init()
opts%output_level = librpa_verbose_info
! Create handler
call h%init(mpi_comm_world)
! Set input data
call h%set_scf_dimension(nspins, nkpts, nstates, nbasis)
! ... set more input data ...
! Perform calculation
ec = h%get_rpa_correlation_energy(h, opts, nkpts_ibz, contrib_ibzk(:))
! Clean up
call h%free()
call librpa_finalize_global()
void librpa_init_global(LibrpaSwitch switch_redirect_stdout=LIBRPA_SWITCH_OFF, const char *redirect_path="stdout", LibrpaSwitch switch_process_output=LIBRPA_SWITCH_ON)
Initialize the global LibRPA environment.
integer, parameter, public librpa_verbose_info
Informational messages.
Definition librpa_f03.f90:66
Generated by