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

Macros

#define __CVERSION__
 

Functions

static int pbec_isgga (void)
 
static int pbec_read (const char *conf_line)
 
static real pbec_energy (const FunDensProp *dp)
 
static void pbec_first (FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
 
static void pbec_second (FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
 

Variables

Functional PbecFunctional
 

Detailed Description

PBEc implementation.

Automatically generated code implementing PBEC 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 pbecFunctional;" to 'functionals.h'
  2. add "&pbecFunctional," to 'functionals.c'
  3. add "fun-pbec.c" to 'Makefile.am', 'Makefile.in' or 'Makefile'.

This functional has been generated from following input: ---— cut here ----— parameter fuer PW92C c:1.709921; T:[0.031091,0.015545,0.016887]; U:[0.21370,0.20548,0.11125]; V:[7.5957,14.1189,10.357]; W:[3.5876,6.1977,3.6231]; X:[1.6382,3.3662,0.88026]; Y:[0.49294,0.62517,0.49671]; P:[1,1,1];

funktionen fuer PW92C r(a,b):=(3/(4*PI*(a+b)))^(1/3); zet(a,b):=(a-b)/(a+b); omega(z):=((1+z)^(4/3)+(1-z)^(4/3)-2)/(2^(4/3)-2); en(r,t,u,v,w,x,y,p):=-2*t*(1+u*r) log(1+1/(2*t*(v*sqrt(r)+w*r+x*r^(3/2)+y*r^(p+1))));

eps(a,b) := en(r(a,b),T[1],U[1],V[1],W[1],X[1],Y[1],P[1])

  • en(r(a,b),T[3],U[3],V[3],W[3],X[3],Y[3],P[3]) omega(zet(a,b))*(1-(zet(a,b))^4)/c
  • (en(r(a,b),T[2],U[2],V[2],W[2],X[2],Y[2],P[2])
    -en(r(a,b),T[1],U[1],V[1],W[1],X[1],Y[1],P[1])) omega(zet(a,b))*(zet(a,b))^4;

parameter fuer pbec iota:0.0716; nu:16/PI*(3*PI^2)^(1/3); kappa:0.004235; lamda:nu*kappa; Z:-0.001667; Xi:23.266; Phi:0.007389; Lamda:8.723; Upsilon:0.472;

funktionen fuer pbec u(a,b) := ((1+zet(a,b))^(2/3)+(1-zet(a,b)^(2/3)))/2;

u(a,b) := 0.5*((2*a)^(2/3)+(2*b)^(2/3))/(a+b)^(2/3); theta(r):= 10^(-3)*(2.568+Xi*r+Phi*r^2) /(1+Lamda*r+Upsilon*r^2+10*Phi*r^3); phi(r) := theta(r)-Z; sigma(ga,gb,gab) := ga*ga+gb*gb+2*gab; d(a,b,ga,gb,gab) := sqrt(sigma(ga,gb,gab)) /(4*u(a,b)*(3/PI)^(1/6)*(a+b)^(7/6)); A(a,b) := 2*iota/(lamda*(exp(-2*iota*eps(a,b)/(lamda^2*(u(a,b))^3))-1)); L(d,a,b) := (u(a,b))^3*lamda^2/(2*iota) log((1+2*(iota*(d^2+A(a,b)*d^4)) /(lamda*(1+A(a,b)*d^2+(A(a,b))^2*d^4))));

kernel K(rhoa,grada,rhob,gradb,gradab):= (rhoa+rhob)*(eps(rhoa,rhob)+ L(d(rhoa,rhob,grada,gradb,gradab),rhoa,rhob));

---— cut here ----—

Macro Definition Documentation

◆ __CVERSION__

#define __CVERSION__

Function Documentation

◆ pbec_energy()

◆ pbec_first()

◆ pbec_isgga()

static int pbec_isgga ( void  )
static

◆ pbec_read()

static int pbec_read ( const char *  conf_line)
static

References fun_set_hf_weight.

◆ pbec_second()

Variable Documentation

◆ PbecFunctional

Functional PbecFunctional
Initial value:

Referenced by pbe0_read(), and pbe_read().

pbec_read
static int pbec_read(const char *conf_line)
Definition: fun-pbec.c:133
pbec_first
static void pbec_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pbec.c:219
pbec_isgga
static int pbec_isgga(void)
Definition: fun-pbec.c:111
pbec_energy
static real pbec_energy(const FunDensProp *dp)
Definition: fun-pbec.c:140
pbec_second
static void pbec_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pbec.c:430