ergo
|
PBEc implementation. More...
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 |
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:
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])
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 ----—
#define __CVERSION__ |
|
static |
References FunDensProp_::grada, FunDensProp_::gradab, FunDensProp_::gradb, LOG, POW, FunDensProp_::rhoa, FunDensProp_::rhob, and SQRT.
|
static |
|
static |
|
static |
References fun_set_hf_weight.
|
static |
References FunSecondFuncDrv::df00001, FunSecondFuncDrv::df00002, FunSecondFuncDrv::df0001, FunSecondFuncDrv::df00011, FunSecondFuncDrv::df0002, FunSecondFuncDrv::df0010, FunSecondFuncDrv::df00101, FunSecondFuncDrv::df0011, FunSecondFuncDrv::df0020, FunSecondFuncDrv::df0100, FunSecondFuncDrv::df01001, FunSecondFuncDrv::df0101, FunSecondFuncDrv::df0110, FunSecondFuncDrv::df0200, FunSecondFuncDrv::df1000, FunSecondFuncDrv::df10001, FunSecondFuncDrv::df1001, FunSecondFuncDrv::df1010, FunSecondFuncDrv::df1100, FunSecondFuncDrv::df2000, FunDensProp_::grada, FunDensProp_::gradab, FunDensProp_::gradb, LOG, POW, FunDensProp_::rhoa, FunDensProp_::rhob, and SQRT.
Functional PbecFunctional |
Referenced by pbe0_read(), and pbe_read().