ergo
functionals.h File Reference

Functional library interface. More...

#include "config.h"
#include "realtype.h"

Go to the source code of this file.

Classes

struct  FunFirstFuncDrv
struct  FunSecondFuncDrv
struct  FunThirdFuncDrv
struct  FunFourthFuncDrv
struct  FunDensProp_
struct  Functional_

Macros

#define EXTERN_C
#define ASINH   asinhl
#define ATAN   atanl
#define ERF   erfl
#define EXP   expl
#define FABS   fabsl
#define LOG   logl
#define POW   powl
#define SQRT   sqrtl

Typedefs

typedef struct Functional_ Functional
typedef struct FunDensProp_ FunDensProp
typedef int(* IsGGAFunc) (void)
typedef int(* ReadInputFunc) (const char *conf_string)
typedef void(* ReportFunc) (void)
typedef real(* EnergyFunc) (const FunDensProp *dens_prop)
typedef void(* FirstOrderFun) (FunFirstFuncDrv *ds, real factor, const FunDensProp *dns_prp)
typedef void(* SecondOrderFun) (FunSecondFuncDrv *ds, real factor, const FunDensProp *dens_prop)
typedef void(* ThirdOrderFun) (FunThirdFuncDrv *ds, real factor, const FunDensProp *dens_prop)
typedef void(* FourthOrderFun) (FunFourthFuncDrv *ds, real factor, const FunDensProp *dens_prop)

Enumerations

enum  FunError { FUN_OK , FUN_UNKNOWN , FUN_CONF_ERROR }

Functions

EXTERN_C enum FunError fun_select_by_name (const char *conf_string)
int dft_get_cam_param (real *alpha, real *beta, real *mu)
EXTERN_C void drv1_clear (FunFirstFuncDrv *gga)
EXTERN_C void drv2_clear (FunSecondFuncDrv *gga)
EXTERN_C void drv3_clear (FunThirdFuncDrv *gga)
EXTERN_C void drv4_clear (FunFourthFuncDrv *gga)
int fun_true (void)
int fun_false (void)
EXTERN_C void dftlistfuncs_ (void)
EXTERN_C void dftlistfuncs_using_printf_ (void)
int dft_isgga_ (void)
int dft_isgga__ (void)
EXTERN_C void dftreport_ (void)
 dftreport: report the selected functional and its configuration.
EXTERN_C int fun_get_cam_param (real *alpha, real *beta, real *mu)

Variables

Functionalselected_func
int(* fun_printf )(const char *fmt,...)
void(* fun_set_hf_weight )(real w)
real(* fun_get_hf_weight )(void)
void(* fun_set_cam_param )(real w, real b)
Functional BeckeFunctional
Functional KTFunctional
Functional LB94Functional
Functional LYPFunctional
Functional OPTXFunctional
Functional P86cFunctional
Functional PW86xFunctional
Functional Pw91xFunctional
Functional Pw91cFunctional
Functional PW92cFunctional
Functional PZ81Functional
Functional PbecFunctional
Functional PbexFunctional
Functional SlaterFunctional
Functional VWN3Functional
Functional VWN5Functional
Functional VWNIFunctional
Functional VWN3IFunctional
Functional VWNFunctional
Functional XAlphaFunctional
Functional B3LYPFunctional
Functional B3LYPGaussFunctional
Functional B3P86Functional
Functional B3P86GFunctional
Functional B3PW91Functional
Functional BHandHFunctional
Functional BHandHLYPFunctional
Functional BLYPFunctional
Functional BP86Functional
Functional BPW91Functional
Functional Camb3lypFunctional
Functional CamFunctional
Functional CombineFunctional
Functional GGAKeyFunctional
Functional HseFunctional
Functional KT1Functional
Functional KT2Functional
Functional KT3Functional
Functional LDAFunctional
Functional OLYPFunctional
Functional PBE0Functional
Functional PBEFunctional
Functional SVWN3Functional
Functional SVWN5Functional
Functionalavailable_functionals []

Detailed Description

Functional library interface.

The variables, structures and functions related to computation of functional and their derivatives. (c) Pawel Salek, pawsa.nosp@m.@the.nosp@m.ochem.nosp@m..kth.nosp@m..se. 2001.07.13

NOTE1: the derivatives are computed with respect to the density, and SQUARE of the density gradient. This is a choice. It stems from the fact that the factors involved in the derivative vector distribution depend on the square of the density gradient.

NOTE2: C version is included once per file, Fortran version - multiple times.

Macro Definition Documentation

◆ ASINH

◆ ATAN

#define ATAN   atanl

Referenced by vwn_en_pot().

◆ ERF

#define ERF   erfl

◆ EXP

◆ EXTERN_C

#define EXTERN_C

◆ FABS

◆ LOG

◆ POW

◆ SQRT

Typedef Documentation

◆ EnergyFunc

typedef real(* EnergyFunc) (const FunDensProp *dens_prop)

◆ FirstOrderFun

typedef void(* FirstOrderFun) (FunFirstFuncDrv *ds, real factor, const FunDensProp *dns_prp)

◆ FourthOrderFun

typedef void(* FourthOrderFun) (FunFourthFuncDrv *ds, real factor, const FunDensProp *dens_prop)

◆ Functional

typedef struct Functional_ Functional

◆ FunDensProp

typedef struct FunDensProp_ FunDensProp

◆ IsGGAFunc

typedef int(* IsGGAFunc) (void)

◆ ReadInputFunc

typedef int(* ReadInputFunc) (const char *conf_string)

◆ ReportFunc

typedef void(* ReportFunc) (void)

◆ SecondOrderFun

typedef void(* SecondOrderFun) (FunSecondFuncDrv *ds, real factor, const FunDensProp *dens_prop)

◆ ThirdOrderFun

typedef void(* ThirdOrderFun) (FunThirdFuncDrv *ds, real factor, const FunDensProp *dens_prop)

Enumeration Type Documentation

◆ FunError

enum FunError
Enumerator
FUN_OK 
FUN_UNKNOWN 
FUN_CONF_ERROR 

Function Documentation

◆ dft_get_cam_param()

int dft_get_cam_param ( real * alpha,
real * beta,
real * mu )

◆ dft_isgga_()

int dft_isgga_ ( void )

References selected_func.

◆ dft_isgga__()

int dft_isgga__ ( void )

References selected_func.

◆ dftlistfuncs_()

EXTERN_C void dftlistfuncs_ ( void )

◆ dftlistfuncs_using_printf_()

EXTERN_C void dftlistfuncs_using_printf_ ( void )

◆ dftreport_()

EXTERN_C void dftreport_ ( void )

dftreport: report the selected functional and its configuration.

References fun_printf, and selected_func.

Referenced by es_run().

◆ drv1_clear()

◆ drv2_clear()

EXTERN_C void drv2_clear ( FunSecondFuncDrv * gga)

Referenced by dftpot1_(), test_second(), and test_third().

◆ drv3_clear()

◆ drv4_clear()

EXTERN_C void drv4_clear ( FunFourthFuncDrv * gga)

Referenced by test_fourth().

◆ fun_false()

int fun_false ( void )
extern

◆ fun_get_cam_param()

EXTERN_C int fun_get_cam_param ( real * alpha,
real * beta,
real * mu )

◆ fun_select_by_name()

EXTERN_C enum FunError fun_select_by_name ( const char * conf_string)

◆ fun_true()

int fun_true ( void )
extern

Variable Documentation

◆ available_functionals

◆ B3LYPFunctional

Functional B3LYPFunctional
extern

◆ B3LYPGaussFunctional

Functional B3LYPGaussFunctional
extern

◆ B3P86Functional

Functional B3P86Functional
extern

◆ B3P86GFunctional

Functional B3P86GFunctional
extern

◆ B3PW91Functional

Functional B3PW91Functional
extern

◆ BeckeFunctional

◆ BHandHFunctional

Functional BHandHFunctional
extern

◆ BHandHLYPFunctional

Functional BHandHLYPFunctional
extern

◆ BLYPFunctional

Functional BLYPFunctional
extern

◆ BP86Functional

Functional BP86Functional
extern

◆ BPW91Functional

Functional BPW91Functional
extern

◆ Camb3lypFunctional

Functional Camb3lypFunctional
extern

Referenced by fun_get_cam_param().

◆ CamFunctional

Functional CamFunctional
extern

Referenced by cam_read(), and fun_get_cam_param().

◆ CombineFunctional

Functional CombineFunctional
extern

◆ fun_get_hf_weight

real(* fun_get_hf_weight) (void) ( void )
extern

◆ fun_printf

int(* fun_printf) (const char *fmt,...) ( const char * fmt,
... )
extern

◆ fun_set_cam_param

void(* fun_set_cam_param) (real w, real b) ( real w,
real b )
extern

Referenced by camb3lyp_read(), and dft_setfunc().

◆ fun_set_hf_weight

◆ GGAKeyFunctional

Functional GGAKeyFunctional
extern

◆ HseFunctional

Functional HseFunctional
extern

Referenced by fun_get_cam_param().

◆ KT1Functional

Functional KT1Functional
extern

◆ KT2Functional

Functional KT2Functional
extern

◆ KT3Functional

Functional KT3Functional
extern

◆ KTFunctional

Functional KTFunctional
extern

Referenced by kt1_read(), kt2_read(), and kt3_read().

◆ LB94Functional

Functional LB94Functional
extern

◆ LDAFunctional

Functional LDAFunctional
extern

◆ LYPFunctional

◆ OLYPFunctional

Functional OLYPFunctional
extern

◆ OPTXFunctional

Functional OPTXFunctional
extern

Referenced by kt3_read(), and olyp_read().

◆ P86cFunctional

Functional P86cFunctional
extern

Referenced by b3p86_read(), b3p86g_read(), and bp86_read().

◆ PBE0Functional

Functional PBE0Functional
extern

◆ PbecFunctional

Functional PbecFunctional
extern

Referenced by pbe0_read(), and pbe_read().

◆ PBEFunctional

Functional PBEFunctional
extern

◆ PbexFunctional

Functional PbexFunctional
extern

Referenced by pbe0_read(), and pbe_read().

◆ PW86xFunctional

Functional PW86xFunctional
extern

◆ Pw91cFunctional

Functional Pw91cFunctional
extern

Referenced by b3pw91_read(), and bpw91_read().

◆ Pw91xFunctional

Functional Pw91xFunctional
extern

◆ PW92cFunctional

Functional PW92cFunctional
extern

◆ PZ81Functional

Functional PZ81Functional
extern

Referenced by bp86_read().

◆ selected_func

◆ SlaterFunctional

◆ SVWN3Functional

Functional SVWN3Functional
extern

◆ SVWN5Functional

Functional SVWN5Functional
extern

◆ VWN3Functional

Functional VWN3Functional
extern

Referenced by b3p86g_read(), and ldagauss_read().

◆ VWN3IFunctional

Functional VWN3IFunctional
extern

Referenced by b3lypgauss_read().

◆ VWN5Functional

Functional VWN5Functional
extern

Referenced by lda_fourth(), lda_second(), and lda_third().

◆ VWNFunctional

◆ VWNIFunctional

Functional VWNIFunctional
extern

◆ XAlphaFunctional

Functional XAlphaFunctional
extern