On Wed, 2014-01-22 at 15:46 -0500, Kayahan Saritas wrote: > Therefore in input file, dft_input=?B3LYP' can also be written as > dft_input="b3lp+vwn+b3lp+b3lp?. It is ok until here.
it isn't, because there are two keywords "vdw" and "b3lp" for the local correlation part, even if they correspond to the same case. I just fixed it in the svn version. > For B3PW91, three parameters above are the same (... ) but when I write > dft_input="b3lp+vwn+b3lp+ggc? (ggc for gradient corrections of PW91) > I get an error saying dft_input is conflicting because "ggc" conflicts with "b3lp". The code sees a string with "b3lp" in it, finds a matching string in the list of gradient corrections to correlation (see variables exc,corr,gradx,gradc in Modules/funct.f90), then finds a second matching string "ggc" and complains. It wasn't a great idea to label three different things with the same label, but the number of functionals is exceeding the number of available labels (label length is 4 letters) or at least my imagination. > I think I need to use 0.81*ggc actually to represent the B3PW91, but > to me it doesn?t seem possible to modify it without accessing to the > private variables. unfortunately you have to access private variables because there is no other way to set the factor multiplying local correlation. It is much easier to access the factor multiplying local exchange (subroutine set_exx_fraction). > I would be happy if someone could explain how to make a user defined > xc-functional in PWSCF or how the algorithm decides if the case is > conflicting or not. I am not sure it is a good idea to stick to the mechanism I wrote many years ago to label the various functionals: with more and more functionals around, it is becoming a mess. Anyway: see above, then locate in Modules/funct.f90 the part of the code that interprets the label B3LYP (one of the many "special cases"), take inspiration for B3PW91; you will need to introduce another case in "gradc", with the corresponding index "igcc", calculating 0.81*ggc Paolo -- Paolo Giannozzi, Dept. Chemistry&Physics&Environment, Univ. Udine, via delle Scienze 208, 33100 Udine, Italy Phone +39-0432-558216, fax +39-0432-558222
