New functionals are implemented based upon the automatic code generation (ACG) program [6]. In order to work the program requires the maple mathematics program and an XSLT parser, defined by the variable XSLT in CONFIG.
The format of the input file is an XML file containing all of the
information about the new functional. All density functional XML files
are placed in the directory lib/df and are automatically
activated on the next instance of the make command in the
MOLPRO base directory.
The root element of the XML document is content. At the next
level there are two allowed elements, functional and
alias.
The functional element has an id attribute which is used
as the keyword for the functional in MOLPRO. The allowed elements are
defined in table 8.
ref and alias are allowed. The final
element is maple for which multiple cases are also allowed. A
typical maple expression such as
A:=1.2:is written as
<maple lhs="A">1.2</maple>.To input a Maple procedure such as
add_together:=proc(a,b) a+b end:one should write
<maple lhs="add_together" proc="a,b">a+b</maple>.As an example the Perdew-Wang 1991 GGA exchange functional is given below:
<?xml version="1.0" encoding="ISO-8859-1"?> <content> <functional id="PW91X"> <title>Perdew-Wang 1991 GGA Exchange Functional</title> <ref>PW91APPS</ref> <maple lhs="g">1/2*E(2*rho(s))</maple> <maple lhs="G">1/2*E(2*rho(s))</maple> <maple lhs="E" proc="n"> -3/(4*Pi)*(3*Pi^2)^(1/3)*n^(4/3)*F(S)</maple> <maple lhs="S">chi(s)/(2*(6*Pi^2)^(1/3))</maple> <maple lhs="F" proc="S"> (1+0.19645*S*arcsinh(7.7956*S) + (0.2743-0.1508*exp(-100*S^2))*S^2)/ (1+0.19645*S*arcsinh(7.7956*S)+0.004*S^4) </maple> </functional> </content>
Hybrid functionals are defined through the alias element defined
just after the content level. The elements key,
functional and ref are defined. For example, the B3LYP
functional is defined as:
<?xml version="1.0" encoding="ISO-8859-1"?> <content> <alias> <key id="B3LYP"/> <key id="B3LYP5"/> <functional id="EXACT" factor="0.2d0"/> <functional id="B88" factor="0.72d0"/> <functional id="DIRAC" factor="0.08d0"/> <functional id="LYP" factor="0.81d0"/> <functional id="VWN5" factor="0.19d0"/> </alias> </content>
molpro@molpro.net