ergo
fun-vwn.c File Reference

implementation of VWN functional and its derivatives. More...

#include <math.h>
#include <stddef.h>
#include <stdlib.h>
#include "functionals.h"

Classes

struct  vwn_params
 

Macros

#define _XOPEN_SOURCE   600
 
#define _XOPEN_SOURCE_EXTENDED   1
 
#define __CVERSION__
 
#define VWN_ZERO   1e-35
 

Functions

static int vwn_isgga (void)
 
static int vwn_read (const char *conf_line)
 
static real vwn3_energy (const FunDensProp *dp)
 
static void vwn3_first (FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void vwn3_second (FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void vwn3_third (FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
 
static real vwn_energy (const FunDensProp *dp)
 
static void vwn_first (FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void vwn_second (FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void vwn_third (FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void vwn_fourth (FunFourthFuncDrv *ds, real factor, const FunDensProp *dp)
 
static real vwni_energy (const FunDensProp *dp)
 
static void vwni_first (FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void vwni_second (FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void vwni_third (FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
 
static real vwn3i_energy (const FunDensProp *dp)
 
static void vwn3i_first (FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void vwn3i_second (FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void vwn3i_third (FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void vwn_en_pot (real *enpot, real rho, int order, const struct vwn_params *p)
 
static real par_energy (const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
 
static void par_first (FunFirstFuncDrv *ds, real factor, const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
 
static void par_second (FunSecondFuncDrv *ds, real factor, const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
 
static void par_third (FunThirdFuncDrv *ds, real factor, const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
 
static real spni_energy (const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
 
static void spni_first (FunFirstFuncDrv *ds, real factor, const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
 
static void spni_second (FunSecondFuncDrv *ds, real factor, const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
 

Variables

Functional VWN3Functional
 
Functional VWN5Functional
 
Functional VWNFunctional
 
Functional VWNIFunctional
 
Functional VWN3IFunctional
 
static const struct vwn_params vwn_paramagnetic = { -0.1049800, 0.0621814, 3.72744, 12.9352 }
 
static const struct vwn_params vwn_ferromagnetic = { -0.3250000, 0.0310907, 7.06042, 18.0578 }
 
static const struct vwn_params vwn_interp = { -0.0047584,-0.0337737, 1.13107, 13.0045 }
 
static const struct vwn_params vwn3_paramagnetic = { -0.4092860, 0.0621814, 13.0720, 42.7198 }
 
static const struct vwn_params vwn3_ferromagnetic = { -0.7432940, 0.0310907, 20.1231, 101.578 }
 
static const real SPINPOLF = 1.92366105093154
 
static const real THREEFTHRD2 = 0.584822305543806
 
static const real FOURTHREE = 1.333333333333333
 

Detailed Description

implementation of VWN functional and its derivatives.

(c), Pawel Salek, pawsa.nosp@m.@the.nosp@m.ochem.nosp@m..kth.nosp@m..se, sep 2001, nov 2002

Macro Definition Documentation

#define __CVERSION__
#define _XOPEN_SOURCE   600
#define _XOPEN_SOURCE_EXTENDED   1
#define VWN_ZERO   1e-35

Function Documentation

static real par_energy ( const FunDensProp dp,
const struct vwn_params para,
const struct vwn_params ferro 
)
static
static void par_first ( FunFirstFuncDrv ds,
real  factor,
const FunDensProp dp,
const struct vwn_params para,
const struct vwn_params ferro 
)
static
static real spni_energy ( const FunDensProp dp,
const struct vwn_params para,
const struct vwn_params ferro 
)
static
static void spni_first ( FunFirstFuncDrv ds,
real  factor,
const FunDensProp dp,
const struct vwn_params para,
const struct vwn_params ferro 
)
static
static void spni_second ( FunSecondFuncDrv ds,
real  factor,
const FunDensProp dp,
const struct vwn_params para,
const struct vwn_params ferro 
)
static
static real vwn3_energy ( const FunDensProp dp)
static
static void vwn3_first ( FunFirstFuncDrv ds,
real  factor,
const FunDensProp dp 
)
static
static void vwn3_second ( FunSecondFuncDrv ds,
real  factor,
const FunDensProp dp 
)
static
static void vwn3_third ( FunThirdFuncDrv ds,
real  factor,
const FunDensProp dp 
)
static
static real vwn3i_energy ( const FunDensProp dp)
static
static void vwn3i_first ( FunFirstFuncDrv ds,
real  factor,
const FunDensProp dp 
)
static
static void vwn3i_second ( FunSecondFuncDrv ds,
real  factor,
const FunDensProp dp 
)
static
static void vwn3i_third ( FunThirdFuncDrv ds,
real  factor,
const FunDensProp dp 
)
static

References fun_printf.

static void vwn_en_pot ( real enpot,
real  rho,
int  order,
const struct vwn_params p 
)
static
static real vwn_energy ( const FunDensProp dp)
static
static void vwn_first ( FunFirstFuncDrv ds,
real  factor,
const FunDensProp dp 
)
static
static int vwn_isgga ( void  )
static
static int vwn_read ( const char *  conf_line)
static

References fun_set_hf_weight.

static void vwn_second ( FunSecondFuncDrv ds,
real  factor,
const FunDensProp dp 
)
static
static void vwn_third ( FunThirdFuncDrv ds,
real  factor,
const FunDensProp dp 
)
static
static real vwni_energy ( const FunDensProp dp)
static
static void vwni_first ( FunFirstFuncDrv ds,
real  factor,
const FunDensProp dp 
)
static
static void vwni_second ( FunSecondFuncDrv ds,
real  factor,
const FunDensProp dp 
)
static
static void vwni_third ( FunThirdFuncDrv ds,
real  factor,
const FunDensProp dp 
)
static

References fun_printf.

Variable Documentation

const real FOURTHREE = 1.333333333333333
static
const real SPINPOLF = 1.92366105093154
static
const real THREEFTHRD2 = 0.584822305543806
static
const struct vwn_params vwn3_ferromagnetic = { -0.7432940, 0.0310907, 20.1231, 101.578 }
static
const struct vwn_params vwn3_paramagnetic = { -0.4092860, 0.0621814, 13.0720, 42.7198 }
static
Functional VWN3Functional
Initial value:
= {
"VWN3",
NULL,
}
static void vwn3_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:536
static real vwn3_energy(const FunDensProp *dp)
Definition: fun-vwn.c:530
static void vwn3_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:542
static int vwn_read(const char *conf_line)
Definition: fun-vwn.c:148
static int vwn_isgga(void)
Definition: fun-vwn.c:50
static void vwn3_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:548

Referenced by b3p86g_read(), and ldagauss_read().

Functional VWN3IFunctional
Initial value:
= {
"VWN3I",
NULL,
}
static void vwn3i_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:1033
static int vwn_read(const char *conf_line)
Definition: fun-vwn.c:148
static int vwn_isgga(void)
Definition: fun-vwn.c:50
static void vwn3i_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:1039
static void vwn3i_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:1045
static real vwn3i_energy(const FunDensProp *dp)
Definition: fun-vwn.c:1027

Referenced by b3lypgauss_read().

Functional VWN5Functional
Initial value:
= {
"VWN5",
NULL,
}
static void vwn_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:561
static int vwn_read(const char *conf_line)
Definition: fun-vwn.c:148
static real vwn_energy(const FunDensProp *dp)
Definition: fun-vwn.c:555
static void vwn_fourth(FunFourthFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:579
static int vwn_isgga(void)
Definition: fun-vwn.c:50
static void vwn_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:567
static void vwn_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:573

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

const struct vwn_params vwn_ferromagnetic = { -0.3250000, 0.0310907, 7.06042, 18.0578 }
static
const struct vwn_params vwn_interp = { -0.0047584,-0.0337737, 1.13107, 13.0045 }
static
const struct vwn_params vwn_paramagnetic = { -0.1049800, 0.0621814, 3.72744, 12.9352 }
static
Functional VWNFunctional
Initial value:
= {
"VWN",
NULL,
}
static void vwn_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:561
static int vwn_read(const char *conf_line)
Definition: fun-vwn.c:148
static real vwn_energy(const FunDensProp *dp)
Definition: fun-vwn.c:555
static void vwn_fourth(FunFourthFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:579
static int vwn_isgga(void)
Definition: fun-vwn.c:50
static void vwn_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:567
static void vwn_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:573

Referenced by b3lyp_read(), b3p86_read(), b3pw91_read(), camb3lyp_read(), kt1_read(), kt2_read(), lb94_energy(), lb94_first(), lb94_second(), lb94_third(), lda_energy(), and lda_first().

Functional VWNIFunctional
Initial value:
= {
"VWNI",
NULL,
}
static int vwn_read(const char *conf_line)
Definition: fun-vwn.c:148
static void vwni_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:1021
static void vwni_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:1015
static int vwn_isgga(void)
Definition: fun-vwn.c:50
static real vwni_energy(const FunDensProp *dp)
Definition: fun-vwn.c:1003
static void vwni_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:1009