ergo
fun-pw91x.c File Reference
#include <math.h>
#include <stddef.h>
#include "functionals.h"

Macros

#define __CVERSION__
 

Functions

static int pw91x_isgga (void)
 
static int pw91x_read (const char *conf_line)
 
static real pw91x_energy (const FunDensProp *dp)
 
static void pw91x_first (FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void pw91x_second (FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void pw91x_third (FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void pw91x_fourth (FunFourthFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void pw91x_first_helper (real rhoa, real grada, real *res)
 
static void pw91x_second_helper (real rhoa, real grada, real *res)
 
static void pw91x_third_helper (real rhoa, real grada, real *res)
 
static void pw91x_fourth_helper (real rhoa, real grada, real *res)
 

Variables

Functional Pw91xFunctional
 

Detailed Description

PW91X implementation.

Automatically generated code implementing PW91X functional and its derivatives. It is generated by func-codegen.pl being a part of a "Automatic code generation framework for analytical functional derivative evaluation", Pawel Salek, 2005

This functional is connected by making following changes:

  1. add "extern Functional pw91xFunctional;" to 'functionals.h'
  2. add "&pw91xFunctional," to 'functionals.c'
  3. add "fun-pw91x.c" to 'Makefile.am', 'Makefile.in' or 'Makefile'.

This functional has been generated from following input: ---— cut here ----— This is exchange PW91x functional of

J.P. Perdew, in Proceedings of the 21st Annual International Symposium on the Electronic Structure of Solids, edited by P. Ziesche and H. Eschrig (akademie Verlag, Berlin 1991).

Cx: -3/4*(6/PI)^(1/3); alpha: -3/2*(3/(4*PI))^(1/3); b: 0.0042; c: 1.6455; d: 4; bet: 5*((36*PI)^(-5/3));

x(r,g) := g*r^(-4/3); F0(x):=b*x^2-(b-bet)*x^2*exp(-c*x^2)-10^(-6)*x^d; F1(x):=1+6*b*x*asinh(x)-(10^(-6)*x^d)/(alpha);

F91(x) := alpha - F0(x)/F1(x);

Fb88(x) := alpha - b*x^2/(1 + 6*b*x*asinh(x));

Fd(x) := alpha;

Ex(r,g) := r^(4/3)*F91( x(r,g) );

K(rhoa,grada,rhob,gradb,gradab):= Ex(rhoa,grada) +Ex(rhob,gradb);

------ cut here -------

Macro Definition Documentation

◆ __CVERSION__

#define __CVERSION__

Function Documentation

◆ pw91x_energy()

static real pw91x_energy ( const FunDensProp dp)
static

◆ pw91x_first()

◆ pw91x_first_helper()

static void pw91x_first_helper ( real  rhoa,
real  grada,
real res 
)
static

References ASINH, POW, and SQRT.

Referenced by pw91x_first().

◆ pw91x_fourth()

◆ pw91x_fourth_helper()

static void pw91x_fourth_helper ( real  rhoa,
real  grada,
real res 
)
static

References ASINH, POW, and SQRT.

Referenced by pw91x_fourth().

◆ pw91x_isgga()

static int pw91x_isgga ( void  )
static

◆ pw91x_read()

static int pw91x_read ( const char *  conf_line)
static

References fun_set_hf_weight.

◆ pw91x_second()

◆ pw91x_second_helper()

static void pw91x_second_helper ( real  rhoa,
real  grada,
real res 
)
static

References ASINH, POW, and SQRT.

Referenced by pw91x_second().

◆ pw91x_third()

◆ pw91x_third_helper()

static void pw91x_third_helper ( real  rhoa,
real  grada,
real res 
)
static

References ASINH, POW, and SQRT.

Referenced by pw91x_third().

Variable Documentation

◆ Pw91xFunctional

Functional Pw91xFunctional
pw91x_read
static int pw91x_read(const char *conf_line)
Definition: fun-pw91x.c:110
pw91x_fourth
static void pw91x_fourth(FunFourthFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw91x.c:733
pw91x_isgga
static int pw91x_isgga(void)
Definition: fun-pw91x.c:84
pw91x_third
static void pw91x_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw91x.c:469
pw91x_second
static void pw91x_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw91x.c:307
pw91x_first
static void pw91x_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw91x.c:211
pw91x_energy
static real pw91x_energy(const FunDensProp *dp)
Definition: fun-pw91x.c:119