librpa_f03.f90 File Reference

librpa_f03.f90 File Reference#

LibRPA: 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:

implicit none
type(LibrpaOptions) :: opts
type(LibrpaHandler) :: h
! Initialize LibRPA environment
! 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()
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.
void librpa_finalize_global(void)
Finalize the global LibRPA environment.
Fortran 2003 module for LibRPA API.
Definition librpa_f03.f90:40
integer, parameter, public librpa_verbose_info
Informational messages.
Definition librpa_f03.f90:66