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 ergo_real real
 
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

#define ASINH   asinhl

◆ ATAN

#define ATAN   atanl

◆ ERF

#define ERF   erfl

◆ EXP

#define EXP   expl

◆ EXTERN_C

#define EXTERN_C

◆ FABS

#define FABS   fabsl

◆ LOG

#define LOG   logl

◆ POW

#define POW   powl

◆ SQRT

#define SQRT   sqrtl

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)

◆ real

typedef ergo_real real

◆ 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  )

◆ dft_isgga__()

int dft_isgga__ ( void  )

◆ 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, Functional_::name, Functional_::report, 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