CamCASP/PFIT
CamCASP => PFIT
PFIT : Purpose
- Refining local polarizability models against point-to-point polarizabilities calculated with the FDDS (using CamCASP).
- Local polarizabilty models only.
- Assessing polarizability models against the point-to-point polarizabilities.
- Local and non-local models.
- Calculate molecular and distributed <math>C_6</math> coefficients.
- Local and non-local models.
- Now not so relevant (though may still be useful) as the CASIMIR program does this and more.
Comments
It looks like PFIT cannot handle two molecules at once. In that case, why does PROCESS have provision for two molecules when creating the PFIT command files?
- Actually while PFIT does not seem to recognise multiple molecules, it can yet be used to calculate the dispersion coefficient (<math>C_6</math> only) between any quartet of sites. This, in effect, allows dispersion coefficients between sites from any number of molecules to be calculated.
- However, if sites from multiple molecules are present (via the SITES command), the resulting assessment of the polarizabilities using the point-to-point polarizabilities is nonsense as is the total <math>C_6</math> coefficient (which will be calculated assuming each site interacts with every other).
- CAUTION: If sites from multiple molecules are present, they must all have different names. This is true even if the sites belong to the same kind of molecule. For example, for H2 with H2, the four H atoms should have distinct labels (H1A,H2A, H1B, H2B). If not, even the dispersion coefficients between quartets of sites will be wrong.
Assessing Models
Non-Local Models
The PROCESS command file to produce the PFIT command file that follows:
TITLE PROCESS file for H2 ! Usage: process < H2_daTZ.prss Set Global-data CamCASP /home/am592/CamCASP/5.5-dev/ Units BOHR DEGREE Overwrite Echo Off End Molecule H2 Units BOHR H1 1.00 0.00000000 0.00000000 0.00000000 Type H H2 1.00 0.00000000 0.00000000 1.44873600 Type H End Read nonlocal pols for H2 ! Use ascii file OUT/H2_daTZ_0.0005_1000_f11_NL4.pol Use ascii file H2_daTZ_NL4_000.pol Maximum rank 4 Limit rank to 1 Limit rank to 1 for sites +++ H1 H2 Frequencies STATIC ! Use this command to split the P-2-P pol file into 11 parts: ! P2P-Pols <point-2-point pol file> SPLIT End Write File-prefix H2_daTZ PFIT file for H2 with cutoff 0.000001 and penalties End Finish
The penalties option is needed in the PFIT command line to get PROCESS to use only one molecule. This needs to be changed. The file shown next is an edited copy of the output. When using non-local polarizabilities PROCESS will create the file for two molecules (in this case, the first one is repeated). The second molecule has been edited out in the file below. PROCESS needs to be fixed to do this correctly.
Allocate points 2000 batches 1 rank 1 sites 4 parameters 32 End Data H2_daTZ_000.p2p ! Point-to-point pols for this frequency only #include H2_daTZ.sites ! Sites of this molecule #include H2_daTZ.axes ! Axis file Polarizabilities H1 H1 00 00 = H1_H1_00_00_A H1 H1 00 10 = H1_H1_00_10_A H1 H1 10 10 = H1_H1_10_10_A H1 H1 11c 11c = H1_H1_11c_11c_A H1 H1 11s 11s = H1_H1_11s_11s_A H1 H2 00 00 = H1_H2_00_00_A H1 H2 00 10 = H1_H2_00_10_A H1 H2 10 00 = H1_H2_10_00_A H1 H2 10 10 = H1_H2_10_10_A H1 H2 11c 11c = H1_H2_11c_11c_A H1 H2 11s 11s = H1_H2_11s_11s_A H2 H2 00 00 = H2_H2_00_00_A H2 H2 00 10 = H2_H2_00_10_A H2 H2 10 10 = H2_H2_10_10_A H2 H2 11c 11c = H2_H2_11c_11c_A H2 H2 11s 11s = H2_H2_11s_11s_A End Frequencies 0 omega0 0.5 Fix H1_H1_00_00_A +++ 0.00045175 H1_H1_00_10_A +++ 0.00049875 H1_H1_10_10_A +++ 2.02890222 H1_H1_11c_11c_A +++ 1.55715064 H1_H1_11s_11s_A +++ 1.55715064 H1_H2_00_00_A +++ -0.00045175 H1_H2_00_10_A +++ 0.00050214 H1_H2_10_00_A +++ -0.00049877 H1_H2_10_10_A +++ 1.42282188 H1_H2_11c_11c_A +++ 0.95223742 H1_H2_11s_11s_A +++ 0.95223742 H2_H2_00_00_A +++ 0.00045175 H2_H2_00_10_A +++ -0.00050211 H2_H2_10_10_A +++ 2.02889987 H2_H2_11c_11c_A +++ 1.55715064 H2_H2_11s_11s_A +++ 1.55715064 End Start Print parameters total Print Total Origin 0.0 0.0 0.0 Finish
The output looks like:
$ ~/CamCASP/5.5-dev/bin/pfit < NL.data Batch 1: 2000 points Sites H1 0.000000 0.000000 0.000000 *** Warning: type H was not defined H2 0.000000 0.000000 1.448736 1 passes Polarizability parameters Sites Components Coefficient 1 H1_H1_00_00_A H1 H1 00 00 1.000 2 H1_H1_00_10_A H1 H1 00 10 1.000 3 H1_H1_10_10_A H1 H1 10 10 1.000 4 H1_H1_11c_11c_A H1 H1 11c 11c 1.000 5 H1_H1_11s_11s_A H1 H1 11s 11s 1.000 6 H1_H2_00_00_A ... ... 15 H2_H2_11c_11c_A H2 H2 11c 11c 1.000 16 H2_H2_11s_11s_A H2 H2 11s 11s 1.000 Fix H1_H1_00_00_A = 0.00045 Fix H1_H1_00_10_A = 0.00050 Fix H1_H1_10_10_A = 2.02890 Fix H1_H1_11c_11c_A = 1.55715 Fix H1_H1_11s_11s_A = 1.55715 Fix H1_H2_00_00_A = -0.00045 Fix H1_H2_00_10_A = 0.00050 Fix H1_H2_10_00_A = -0.00050 Fix H1_H2_10_10_A = 1.42282 Fix H1_H2_11c_11c_A = 0.95224 Fix H1_H2_11s_11s_A = 0.95224 Fix H2_H2_00_00_A = 0.00045 Fix H2_H2_00_10_A = -0.00050 Fix H2_H2_10_10_A = 2.02890 Fix H2_H2_11c_11c_A = 1.55715 Fix H2_H2_11s_11s_A = 1.55715 Static polarizabilities Response values: Maximum 0.0129773408 Minimum -0.0092483859 Range 0.0222257267 Min. magnitude 0.0000000005 Residuals per cent of range Maximum 0.00091849 4.133 Minimum -0.00169831 -7.641 R.m.s. 0.00007701 0.346 Parameter values H1_H1_00_00_A 0.00045175 H1_H1_00_10_A 0.00049875 H1_H1_10_10_A 2.02890222 H1_H1_11c_11c_A 1.55715064 H1_H1_11s_11s_A 1.55715064 H1_H2_00_00_A -0.00045175 H1_H2_00_10_A 0.00050214 H1_H2_10_00_A -0.00049877 H1_H2_10_10_A 1.42282188 H1_H2_11c_11c_A 0.95223742 H1_H2_11s_11s_A 0.95223742 H2_H2_00_00_A 0.00045175 H2_H2_00_10_A -0.00050211 H2_H2_10_10_A 2.02889987 H2_H2_11c_11c_A 1.55715064 H2_H2_11s_11s_A 1.55715064 Total static molecular polarizability 00 z x y 0.00000 0.00000 0.00000 0.00000 0.00000 6.90149 0.00000 0.00000 0.00000 0.00000 5.01878 0.00000 0.00000 0.00000 0.00000 5.01878 Mean polarizability = 5.64635 Polarizability anisotropy = 1.88272 Total static molecular polarizability 00 z x y 0.00000 0.00000 0.00000 0.00000 0.00000 6.90149 0.00000 0.00000 0.00000 0.00000 5.01878 0.00000 0.00000 0.00000 0.00000 5.01878 Mean polarizability = 5.64635 Polarizability anisotropy = 1.88272
<math>C_6</math> coefficients
Non-Local Models
PROCESS file to create the PFIT command file:
TITLE PROCESS file for H2 ! Usage: process < H2_daTZ.prss Set Global-data CamCASP /home/am592/CamCASP/5.5-dev/ Units BOHR DEGREE Overwrite Echo Off End Molecule H2 Units BOHR H1 1.00 0.00000000 0.00000000 0.00000000 Type H H2 1.00 0.00000000 0.00000000 1.44873600 Type H End Read nonlocal pols for H2 Use ascii file OUT/H2_daTZ_0.0005_1000_f11_NL4.pol Maximum rank 4 Limit rank to 1 Limit rank to 1 for sites +++ H1 H2 Frequencies STATIC + 10 ! Use this command to split the P-2-P pol file into 11 parts: ! P2P-Pols <point-2-point pol file> SPLIT End Write File-prefix H2_daTZ PFIT file for H2 with cutoff 0.000001 Penalties End Finish
Once again, Penalties is needed to get PFIT to work. Needs to be fixed. It seems to me that PFIT can calculate dispersion coefficients for symmetric systems only as only one molecule can be specified. Here's the PFIT command file with the second H2 molecule edited out (same problem as before: PFIT will pass two molecules):
Allocate points 2000 batches 1 rank 1 sites 4 parameters 32 End #include H2_daTZ.sites #include H2_daTZ.axes Polarizabilities H1 H1 00 00 = H1_H1_00_00_A H1 H1 00 10 = H1_H1_00_10_A H1 H1 10 10 = H1_H1_10_10_A H1 H1 11c 11c = H1_H1_11c_11c_A H1 H1 11s 11s = H1_H1_11s_11s_A H1 H2 00 00 = H1_H2_00_00_A H1 H2 00 10 = H1_H2_00_10_A H1 H2 10 00 = H1_H2_10_00_A H1 H2 10 10 = H1_H2_10_10_A H1 H2 11c 11c = H1_H2_11c_11c_A H1 H2 11s 11s = H1_H2_11s_11s_A H2 H2 00 00 = H2_H2_00_00_A H2 H2 00 10 = H2_H2_00_10_A H2 H2 10 10 = H2_H2_10_10_A H2 H2 11c 11c = H2_H2_11c_11c_A H2 H2 11s 11s = H2_H2_11s_11s_A End Frequencies 10 omega0 0.5 Fix H1_H1_00_00_A +++ 0.00045175 0.00045171 0.00045051 0.00044326 +++ 0.00041777 0.00035339 0.00024190 0.00012237 +++ 0.00004416 0.00001055 0.00000050 H1_H1_00_10_A +++ 0.00049875 0.00049855 0.00049298 0.00046039 +++ 0.00035858 0.00016845 -0.00002867 -0.00011454 +++ -0.00005626 -0.00000123 0.00000037 H1_H1_10_10_A +++ 2.02890222 2.02854957 2.01839857 1.95823114 +++ 1.76018408 1.33662374 0.77797354 0.33314837 +++ 0.10305075 0.01938401 0.00074765 ... ... H2_H2_11s_11s_A +++ 1.55715064 1.55691630 1.55016662 1.50999581 +++ 1.37575736 1.07786837 0.66029172 0.30079402 +++ 0.09641797 0.01797880 0.00068924 End Start Print parameters total Integrate total Integrate H1 H1 H1 H1 H1 H1 H1 H2 H1 H1 H2 H2 H1 H2 H1 H1 H1 H2 H1 H2 H1 H2 H2 H2 H2 H2 H1 H1 H2 H2 H1 H2 H2 H2 H2 H2 End Finish
And the output is
Sites H1 0.000000 0.000000 0.000000 *** Warning: type H was not defined H2 0.000000 0.000000 1.448736 1 passes Polarizability parameters Sites Components Coefficient 1 H1_H1_00_00_A H1 H1 00 00 1.000 2 H1_H1_00_10_A H1 H1 00 10 1.000 ... ... 16 H2_H2_11s_11s_A H2 H2 11s 11s 1.000 Fix H1_H1_00_00_A = 0.00045 Fix H1_H1_00_10_A = 0.00050 Fix H1_H1_10_10_A = 2.02890 Fix H1_H1_11c_11c_A = 1.55715 Fix H1_H1_11s_11s_A = 1.55715 Fix H1_H2_00_00_A = -0.00045 Fix H1_H2_00_10_A = 0.00050 Fix H1_H2_10_00_A = -0.00050 Fix H1_H2_10_10_A = 1.42282 Fix H1_H2_11c_11c_A = 0.95224 Fix H1_H2_11s_11s_A = 0.95224 Fix H2_H2_00_00_A = 0.00045 Fix H2_H2_00_10_A = -0.00050 Fix H2_H2_10_10_A = 2.02890 Fix H2_H2_11c_11c_A = 1.55715 Fix H2_H2_11s_11s_A = 1.55715 10 frequencies Frequency omega**2 weight 0.006610i -0.000044 0.066671 0.036175i -0.001309 0.149451 0.095447i -0.009110 0.219086 0.197644i -0.039063 0.269267 0.370417i -0.137209 0.295524 0.674915i -0.455510 0.295524 1.264899i -1.599970 0.269267 2.619245i -6.860443 0.219086 6.910886i -47.760345 0.149451 37.823762i-1430.636998 0.066671 Static polarizabilities Response values: Maximum 0.0000000000 Minimum 0.0000000000 Range 0.0000000000 Min. magnitude 1.0000000000 Residuals per cent of range Maximum 0.00000000 NaN Minimum 0.00000000 NaN R.m.s. NaN NaN Polarizabilities at frequency 0.006610i Response values: ... ... Polarizabilities at frequency 37.823762i Response values: Maximum 0.0000000000 Minimum 0.0000000000 Range 0.0000000000 Min. magnitude 1.0000000000 Residuals per cent of range Maximum 0.00000000 NaN Minimum 0.00000000 NaN R.m.s. NaN NaN Parameter values H1_H1_00_00_A 0.00045175 0.00045171 0.00045051 0.00044326 0.00041777 0.00035339 0.00024190 0.00012237 0.00004416 0.00001055 0.00000050 H1_H1_00_10_A 0.00049875 0.00049855 0.00049298 0.00046039 0.00035858 0.00016845 -0.00002867 -0.00011454 -0.00005626 -0.00000123 0.00000037 ... ... H2_H2_11s_11s_A 1.55715064 1.55691630 1.55016662 1.50999581 1.37575736 1.07786837 0.66029172 0.30079402 0.09641797 0.01797880 0.00068924 Total static molecular polarizability 00 z x y 0.00000 0.00000 0.00000 0.00000 0.00000 6.90149 0.00000 0.00000 0.00000 0.00000 5.01878 0.00000 0.00000 0.00000 0.00000 5.01878 Mean polarizability = 5.64635 Polarizability anisotropy = 1.88272 Isotropic C6 coefficient from molecular polarizability C6(000;00) = 12.766536 Sites: a H1, b H1, c H1, d H1 Casimir-Polder integrals (1/2pi)\int alpha^{a,b}_{t(1,1)}(iv) alpha^{c,d}_{u(1,1)}(iv) dv 00 00 0.617700 00 20 -0.065902 20 00 -0.065902 20 20 0.007409 Dispersion coefficients 00 00 0 1.235400 20 00 2 0.093200 00 20 2 0.093200 20 20 0 0.001482 20 20 2 0.002117 20 20 4 0.022862 Sites: a H1, b H1, c H1, d H2 Casimir-Polder integrals ... ... Sites: a H2, b H2, c H2, d H2 Casimir-Polder integrals (1/2pi)\int alpha^{a,b}_{t(1,1)}(iv) alpha^{c,d}_{u(1,1)}(iv) dv 00 00 0.617700 00 20 -0.065902 20 00 -0.065902 20 20 0.007409 Dispersion coefficients 00 00 0 1.235399 20 00 2 0.093199 00 20 2 0.093199 20 20 0 0.001482 20 20 2 0.002117 20 20 4 0.022862
Notice all the NANs? How can these be suppressed? Seems like PFIT wants to compare the polarizabilities to the point-to-point polarizabilities which are not required and have not been specified.
The NANs can be avoided by giving PFIT the point-to-point polarizability file. The PFIT manual says that polarizabilities are assessed (using the p2p pols) even if the FIX command is used. So use the following line near the start of the PFIT file:
Data OUT/H2_daTZ_lim2.0_4.0_p2000_f11.p2p