implementation of VWN functional and its derivatives. More...
#include <math.h>
#include <stddef.h>
#include <stdlib.h>
#include "functionals.h"
Classes | |
struct | vwn_params |
Defines | |
#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 struct vwn_params | vwn_paramagnetic |
static struct vwn_params | vwn_ferromagnetic |
static struct vwn_params | vwn_interp |
static struct vwn_params | vwn3_paramagnetic |
static struct vwn_params | vwn3_ferromagnetic |
static const real | SPINPOLF = 1.92366105093154 |
static const real | THREEFTHRD2 = 0.584822305543806 |
static const real | FOURTHREE = 1.333333333333333 |
implementation of VWN functional and its derivatives.
(c), Pawel Salek, pawsa@theochem.kth.se, sep 2001, nov 2002
#define __CVERSION__ |
#define _XOPEN_SOURCE 600 |
#define _XOPEN_SOURCE_EXTENDED 1 |
#define VWN_ZERO 1e-35 |
Referenced by par_energy(), par_first(), par_third(), spni_energy(), and spni_first().
static real par_energy | ( | const FunDensProp * | dp, | |
const struct vwn_params * | para, | |||
const struct vwn_params * | ferro | |||
) | [static] |
References FABS, FOURTHREE, POW, FunDensProp_::rhoa, FunDensProp_::rhob, SPINPOLF, THREEFTHRD2, vwn_en_pot(), vwn_interp, and VWN_ZERO.
Referenced by vwn3_energy(), and vwn_energy().
static void par_first | ( | FunFirstFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp, | |||
const struct vwn_params * | para, | |||
const struct vwn_params * | ferro | |||
) | [static] |
References FunFirstFuncDrv::df0100, FunFirstFuncDrv::df1000, FABS, FOURTHREE, POW, FunDensProp_::rhoa, FunDensProp_::rhob, SPINPOLF, THREEFTHRD2, vwn_en_pot(), vwn_interp, and VWN_ZERO.
Referenced by vwn3_first(), and vwn_first().
static void par_second | ( | FunSecondFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp, | |||
const struct vwn_params * | para, | |||
const struct vwn_params * | ferro | |||
) | [static] |
References FunSecondFuncDrv::df0100, FunSecondFuncDrv::df0200, FunSecondFuncDrv::df1000, FunSecondFuncDrv::df1100, FunSecondFuncDrv::df2000, FOURTHREE, POW, FunDensProp_::rhoa, FunDensProp_::rhob, SPINPOLF, THREEFTHRD2, vwn_en_pot(), and vwn_interp.
Referenced by vwn3_second(), and vwn_second().
static void par_third | ( | FunThirdFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp, | |||
const struct vwn_params * | para, | |||
const struct vwn_params * | ferro | |||
) | [static] |
References FunThirdFuncDrv::df0100, FunThirdFuncDrv::df0200, FunThirdFuncDrv::df0300, FunThirdFuncDrv::df1000, FunThirdFuncDrv::df1100, FunThirdFuncDrv::df1200, FunThirdFuncDrv::df2000, FunThirdFuncDrv::df2100, FunThirdFuncDrv::df3000, FOURTHREE, POW, FunDensProp_::rhoa, FunDensProp_::rhob, SPINPOLF, THREEFTHRD2, vwn_en_pot(), vwn_interp, and VWN_ZERO.
Referenced by vwn3_third(), and vwn_third().
static real spni_energy | ( | const FunDensProp * | dp, | |
const struct vwn_params * | para, | |||
const struct vwn_params * | ferro | |||
) | [static] |
References FABS, FOURTHREE, POW, FunDensProp_::rhoa, FunDensProp_::rhob, SPINPOLF, vwn_en_pot(), vwn_interp, and VWN_ZERO.
Referenced by vwn3i_energy(), and vwni_energy().
static void spni_first | ( | FunFirstFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp, | |||
const struct vwn_params * | para, | |||
const struct vwn_params * | ferro | |||
) | [static] |
References FunFirstFuncDrv::df0100, FunFirstFuncDrv::df1000, FOURTHREE, POW, FunDensProp_::rhoa, FunDensProp_::rhob, SPINPOLF, vwn_en_pot(), and VWN_ZERO.
Referenced by vwn3i_first(), and vwni_first().
static void spni_second | ( | FunSecondFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp, | |||
const struct vwn_params * | para, | |||
const struct vwn_params * | ferro | |||
) | [static] |
References FunSecondFuncDrv::df0100, FunSecondFuncDrv::df0200, FunSecondFuncDrv::df1000, FunSecondFuncDrv::df1100, FunSecondFuncDrv::df2000, FOURTHREE, POW, FunDensProp_::rhoa, FunDensProp_::rhob, SPINPOLF, and vwn_en_pot().
Referenced by vwn3i_second(), and vwni_second().
static real vwn3_energy | ( | const FunDensProp * | dp | ) | [static] |
References par_energy(), vwn3_ferromagnetic, and vwn3_paramagnetic.
static void vwn3_first | ( | FunFirstFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp | |||
) | [static] |
References par_first(), vwn3_ferromagnetic, and vwn3_paramagnetic.
static void vwn3_second | ( | FunSecondFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp | |||
) | [static] |
References par_second(), vwn3_ferromagnetic, and vwn3_paramagnetic.
static void vwn3_third | ( | FunThirdFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp | |||
) | [static] |
References par_third(), vwn3_ferromagnetic, and vwn3_paramagnetic.
static real vwn3i_energy | ( | const FunDensProp * | dp | ) | [static] |
References spni_energy(), vwn3_ferromagnetic, and vwn3_paramagnetic.
static void vwn3i_first | ( | FunFirstFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp | |||
) | [static] |
References spni_first(), vwn3_ferromagnetic, and vwn3_paramagnetic.
static void vwn3i_second | ( | FunSecondFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp | |||
) | [static] |
References spni_second(), vwn3_ferromagnetic, and vwn3_paramagnetic.
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] |
References vwn_params::A, ATAN, B, vwn_params::B, vwn_params::C, LOG, POW, SQRT, and vwn_params::X0.
Referenced by par_energy(), par_first(), par_second(), par_third(), spni_energy(), spni_first(), spni_second(), and vwn_fourth().
static real vwn_energy | ( | const FunDensProp * | dp | ) | [static] |
References par_energy(), vwn_ferromagnetic, and vwn_paramagnetic.
static void vwn_first | ( | FunFirstFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp | |||
) | [static] |
References par_first(), vwn_ferromagnetic, and vwn_paramagnetic.
static void vwn_fourth | ( | FunFourthFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp | |||
) | [static] |
References FunFourthFuncDrv::df0100, FunFourthFuncDrv::df0200, FunFourthFuncDrv::df0300, FunFourthFuncDrv::df0400, FunFourthFuncDrv::df1000, FunFourthFuncDrv::df1100, FunFourthFuncDrv::df1200, FunFourthFuncDrv::df1300, FunFourthFuncDrv::df2000, FunFourthFuncDrv::df2100, FunFourthFuncDrv::df2200, FunFourthFuncDrv::df3000, FunFourthFuncDrv::df3100, FunFourthFuncDrv::df4000, FOURTHREE, POW, FunDensProp_::rhoa, FunDensProp_::rhob, SPINPOLF, THREEFTHRD2, vwn_en_pot(), vwn_ferromagnetic, vwn_interp, and vwn_paramagnetic.
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] |
References par_second(), vwn_ferromagnetic, and vwn_paramagnetic.
static void vwn_third | ( | FunThirdFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp | |||
) | [static] |
References par_third(), vwn_ferromagnetic, and vwn_paramagnetic.
static real vwni_energy | ( | const FunDensProp * | dp | ) | [static] |
References spni_energy(), vwn_ferromagnetic, and vwn_paramagnetic.
static void vwni_first | ( | FunFirstFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp | |||
) | [static] |
References spni_first(), vwn_ferromagnetic, and vwn_paramagnetic.
static void vwni_second | ( | FunSecondFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp | |||
) | [static] |
References spni_second(), vwn_ferromagnetic, and vwn_paramagnetic.
static void vwni_third | ( | FunThirdFuncDrv * | ds, | |
real | factor, | |||
const FunDensProp * | dp | |||
) | [static] |
References fun_printf.
Referenced by par_energy(), par_first(), par_second(), par_third(), spni_energy(), spni_first(), spni_second(), and vwn_fourth().
Referenced by par_energy(), par_first(), par_second(), par_third(), spni_energy(), spni_first(), spni_second(), and vwn_fourth().
const real THREEFTHRD2 = 0.584822305543806 [static] |
Referenced by par_energy(), par_first(), par_second(), par_third(), and vwn_fourth().
struct vwn_params
vwn3_ferromagnetic [static] |
Referenced by vwn3_energy(), vwn3_first(), vwn3_second(), vwn3_third(), vwn3i_energy(), vwn3i_first(), and vwn3i_second().
struct vwn_params
vwn3_paramagnetic [static] |
Referenced by vwn3_energy(), vwn3_first(), vwn3_second(), vwn3_third(), vwn3i_energy(), vwn3i_first(), and vwn3i_second().
{ "VWN3", vwn_isgga, vwn_read, NULL, vwn3_energy, vwn3_first, vwn3_second, vwn3_third }
Referenced by b3p86g_read(), and ldagauss_read().
{ "VWN3I", vwn_isgga, vwn_read, NULL, vwn3i_energy, vwn3i_first, vwn3i_second, vwn3i_third }
Referenced by b3lypgauss_read().
{ "VWN5", vwn_isgga, vwn_read, NULL, vwn_energy, vwn_first, vwn_second, vwn_third, vwn_fourth }
Referenced by lda_fourth(), lda_second(), and lda_third().
struct vwn_params
vwn_ferromagnetic [static] |
Referenced by vwn_energy(), vwn_first(), vwn_fourth(), vwn_second(), vwn_third(), vwni_energy(), vwni_first(), and vwni_second().
struct vwn_params
vwn_interp [static] |
Referenced by par_energy(), par_first(), par_second(), par_third(), spni_energy(), and vwn_fourth().
struct vwn_params vwn_paramagnetic [static] |
Referenced by vwn_energy(), vwn_first(), vwn_fourth(), vwn_second(), vwn_third(), vwni_energy(), vwni_first(), and vwni_second().
{ "VWN", vwn_isgga, vwn_read, NULL, vwn_energy, vwn_first, vwn_second, vwn_third, vwn_fourth }
Referenced by b3lyp_read(), b3p86_read(), b3pw91_read(), camb3lyp_read(), kt1_read(), kt2_read(), lb94_energy(), lb94_first(), lb94_fourth(), lb94_second(), lb94_third(), lda_energy(), and lda_first().
{ "VWNI", vwn_isgga, vwn_read, NULL, vwni_energy, vwni_first, vwni_second, vwni_third }