Contents
Navigation:
First-order energy scan: MC/DC case
Basis restrictions:
- Main basis must be type MC with spherical GTOs
- Auxiliary basis must be type DC with spherical GTOs.
Important
The full CamCASP input file for the pyridine dimer scan with MC main and DC auxiliary basis sets is located here.
Explanation of key aspects of the input file:
Definition of the molecules
We need to define the molecules with an MC main basis (easy) and a DC auxiliary basis (not hard, but not obvious). Further, the order of the sites in the auxiliary basis sets of the two molecules must be the same. This is best illustrated with a diagram:
For two molecules A and B with sites a1,a2,a3 and b1,b2 (say), we must define the basis sets as follows: A B Main Aux Main Aux a1 a1 b1 a1 a2 a2 b2 a2 a3 a3 a3 b1 b1 b2 b2
The coordinates used in these molecule definitions must be those of the molecules in their reference geometries. In the pyridine dimer example, the two molecules are identical, and have the following coordinates:
pyridine dimer molecule definitions
MOLECULE pyridine1 at 0.0 0.0 0.0 Charge 0 Echo No Hessian format SAPT2006 MO-file vectA-daTZ.data Format BINARY IP 0.500000 a.u. Basis Main Spherical Units Bohr Format GAMESS Type MC H1 1.0 -3.87454677 2.40829326 0.00000000 TYPE H1 #include-camcasp basis/gamess_us/d-aug-cc-pVTZ/H --- H2 1.0 -4.05745524 -2.27382980 0.00000000 TYPE H2 #include-camcasp basis/gamess_us/d-aug-cc-pVTZ/H --- H3 1.0 0.00000000 -4.70080300 0.00000000 TYPE H3 #include-camcasp basis/gamess_us/d-aug-cc-pVTZ/H --- ... C5 6.0 2.14372406 1.30476509 0.00000000 TYPE C1 #include-camcasp basis/gamess_us/d-aug-cc-pVTZ/C --- End Basis Aux Spherical Units Bohr Format TURBOMOLE Type DC H1 1.0 -3.87454677 2.40829326 0.00000000 TYPE H1 Limit G MIN-S-EXP = 0.000 #include-camcasp basis/auxiliary/aug-cc-pVTZ/H --- H2 1.0 -4.05745524 -2.27382980 0.00000000 TYPE H2 Limit G MIN-S-EXP = 0.000 #include-camcasp basis/auxiliary/aug-cc-pVTZ/H --- H3 1.0 0.00000000 -4.70080300 0.00000000 TYPE H3 Limit G MIN-S-EXP = 0.000 #include-camcasp basis/auxiliary/aug-cc-pVTZ/H --- ... C5 6.0 2.14372406 1.30476509 0.00000000 TYPE C1 Limit G MIN-S-EXP = 0.0 #include-camcasp basis/auxiliary/aug-cc-pVTZ/C --- H1 1.0 -3.87454677 2.40829326 0.00000000 TYPE H1 Limit G MIN-S-EXP = 0.000 #include-camcasp basis/auxiliary/aug-cc-pVTZ/H --- H2 1.0 -4.05745524 -2.27382980 0.00000000 TYPE H2 Limit G MIN-S-EXP = 0.000 #include-camcasp basis/auxiliary/aug-cc-pVTZ/H --- H3 1.0 0.00000000 -4.70080300 0.00000000 TYPE H3 Limit G MIN-S-EXP = 0.000 #include-camcasp basis/auxiliary/aug-cc-pVTZ/H --- ... C5 6.0 2.14372406 1.30476509 0.00000000 TYPE C1 Limit G MIN-S-EXP = 0.0 #include-camcasp basis/auxiliary/aug-cc-pVTZ/C --- End END MOLECULE pyridine2 at 0.0 0.0 0.0 Charge 0 Echo No Hessian format SAPT2006 MO-file vectA-daTZ.data Format BINARY IP 0.500000 a.u. Basis Main Spherical Units Bohr Format GAMESS Type MC H1 1.0 -3.87454677 2.40829326 0.00000000 TYPE H1 #include-camcasp basis/gamess_us/d-aug-cc-pVTZ/H --- H2 1.0 -4.05745524 -2.27382980 0.00000000 TYPE H2 #include-camcasp basis/gamess_us/d-aug-cc-pVTZ/H --- H3 1.0 0.00000000 -4.70080300 0.00000000 TYPE H3 #include-camcasp basis/gamess_us/d-aug-cc-pVTZ/H ... --- C5 6.0 2.14372406 1.30476509 0.00000000 TYPE C1 #include-camcasp basis/gamess_us/d-aug-cc-pVTZ/C --- End Basis Aux Spherical Units Bohr Format TURBOMOLE Type DC H1 1.0 -3.87454677 2.40829326 0.00000000 TYPE H1 Limit G MIN-S-EXP = 0.000 #include-camcasp basis/auxiliary/aug-cc-pVTZ/H --- H2 1.0 -4.05745524 -2.27382980 0.00000000 TYPE H2 Limit G MIN-S-EXP = 0.000 #include-camcasp basis/auxiliary/aug-cc-pVTZ/H --- H3 1.0 0.00000000 -4.70080300 0.00000000 TYPE H3 Limit G MIN-S-EXP = 0.000 #include-camcasp basis/auxiliary/aug-cc-pVTZ/H --- ... C5 6.0 2.14372406 1.30476509 0.00000000 TYPE C1 Limit G MIN-S-EXP = 0.0 #include-camcasp basis/auxiliary/aug-cc-pVTZ/C --- H1 1.0 -3.87454677 2.40829326 0.00000000 TYPE H1 Limit G MIN-S-EXP = 0.000 #include-camcasp basis/auxiliary/aug-cc-pVTZ/H --- H2 1.0 -4.05745524 -2.27382980 0.00000000 TYPE H2 Limit G MIN-S-EXP = 0.000 #include-camcasp basis/auxiliary/aug-cc-pVTZ/H --- H3 1.0 0.00000000 -4.70080300 0.00000000 TYPE H3 Limit G MIN-S-EXP = 0.000 #include-camcasp basis/auxiliary/aug-cc-pVTZ/H --- ... C5 6.0 2.14372406 1.30476509 0.00000000 TYPE C1 Limit G MIN-S-EXP = 0.0 #include-camcasp basis/auxiliary/aug-cc-pVTZ/C --- End END
Notice the following:
- The two molecules are identical! They share the same MOs and the same reference geometry.
- That means that the auxiliary basis set for each molecule contains two sets of apparently identical sites. For example, there are two H1 sites, and they are located at the same point in space.
- This is not a problem: In the next set of commands we will pair each molecule with the other. This will allow CamCASP to treat the second set of sites as belonging to the partner molecule, and CamCASP will get the actual coordinates of those sites from the partner molecule.
Partner molecules
This is how we tell CamCASP that each molecule has a partner that will be used to determine the position of the dummy sites in the auxiliary basis set:
Edit pyridine1 Partner-Monomer = pyridine2 Update Geometry End Edit pyridine2 Partner-Monomer = pyridine1 Update Geometry End
After these commands the second set of sites in the auxiliary basis definition of pyridine1 will be paired with the atomic sites of pyridine2, and the first set of sites in the auxiliary basis definition of pyridine2 will be paired with the atomic sites of pyridine1.
DF and DF-INT settings
SET DF REDO-DF-ON-ROTATION True END SET DF Molecule pyridine1 Type OO Eta = 0.0 Lambda = 0.0 Gamma = 0.0 Print only normalization constraints Solver LU END SET DF Molecule pyridine2 Type OO Eta = 0.0 Lambda = 0.0 Gamma = 0.0 Print only normalization constraints Solver LU END Set DF-INTS DF-TYPE-MONOMER OO DF-TYPE-DIMER OO End
We use the SET blocks shown above to alter the default settings in the CamCASP code for this calculation:
REDO-DF-ON-ROTATION True : When using DC-type auxiliary basis sets, the density-fitting step needs to be re-done for every new dimer configuration. This is because the positions of the sites in the auxiliary basis changes. So we set this flag. If set to False, CamCASP will trap the error.
Next we set the density-fitting parameters for this calculation. Since we are after first-order energies only, set the type of density-fitting to OO, i.e., fit occupied-occupied pairs of MOs only.
We do something similar for the DF-Integral module by informing it that the default type of density-fitting will be OO. If this is not done, the code will use the OV default (which includes OO).
Energy settings
Next set the Integral switch = 1 in the energy modules. This causes the code to use the more accurate integrals.
Set E1elst Integral switch = 1 End Set E1exch Integral switch = 1 End
Important
//Integral Accuracy//: When the DF is done accurately - here when the DC-aux basis is used - then it seems that we must use 1-electron integrals computed as accurately as is possible. So we use Integral switch = 1. But if we use a relatively poor DF (as is the case with the MC-MC case when we use the MC-aux basis type), then we need to rely on an error cancellation in the terms that appear in $E^{(1)}_{\rm elst}$. So we need to use Integral switch = 0.
ENERGY-SCAN commands
Finally we set the ENERGY-SCAN commands:
Begin Energy-Scan Probe pyridine1 with pyridine2 Energy E1elst & E1exch Units Bohr ! Debug Points File pyr2-scan.geom --- End
Some comments:
The Probe line tells the energy scan module that pyridine1 is going to be probed by pyridine2. This has the effect of keeping pyridine1 fixed at its reference geometry, while the geometry parameters contained in the pyr2-scan.geom file will be applied to pyridine2.
- The geometry file will be included so it must be present.
The geometries are in file:
UNITS BOHR DEGREE Skip-First-Column ! POINTS 10 ! LABELS INDEX Rx Ry Rz alpha Nx Ny Nz 1 0.136313E+02 0.000000E+00 0.000000E+00 0.180000E+03 0.100000E+01 0.000000E+00 0.000000E+00 2 0.119628E+02 0.000000E+00 0.000000E+00 0.180000E+03 0.100000E+01 0.000000E+00 0.000000E+00 3 0.122605E+02 0.000000E+00 0.000000E+00 0.180000E+03 0.100000E+01 0.000000E+00 0.000000E+00 4 0.134372E+02 0.000000E+00 0.000000E+00 0.180000E+03 0.100000E+01 0.000000E+00 0.000000E+00 5 -0.916710E+01 0.000000E+00 0.529263E+01 0.180000E+03 -0.707107E+00 0.000000E+00 -0.707107E+00 6 -0.972145E+01 0.000000E+00 0.561268E+01 0.180000E+03 -0.707107E+00 0.000000E+00 -0.707107E+00 7 -0.722802E+01 0.000000E+00 0.417310E+01 0.180000E+03 -0.707107E+00 0.000000E+00 -0.707107E+00 8 -0.975164E+01 0.000000E+00 0.563011E+01 0.180000E+03 -0.707107E+00 0.000000E+00 -0.707107E+00 9 0.000000E+00 -0.126520E+02 0.326673E+01 0.600000E+02 0.000000E+00 -0.100000E+01 0.000000E+00 10 0.000000E+00 -0.108432E+02 0.279972E+01 0.600000E+02 0.000000E+00 -0.100000E+01 0.000000E+00
Output
Here is part of the output of the above calculation. I have used REDO-DF-ON-ROTATION FALSE to demonstrate how CamCASP traps and corrects this error.
Begin Energy-Scan Probe pyridine1 with pyridine2 Energy E1elst & E1exch Units Bohr ! Debug Points File pyr2-scan.geom --- UNITS BOHR DEGREE POINTS Skip-First-Column ! POINTS 10 ! LABELS INDEX Rx Ry Rz alpha Nx Ny Nz 1 0.136313E+02 0.000000E+00 0.000000E+00 0.180000E+03 0.100000E+01 0.000000E+00 0.000000E+00 2 0.119628E+02 0.000000E+00 0.000000E+00 0.180000E+03 0.100000E+01 0.000000E+00 0.000000E+00 3 0.122605E+02 0.000000E+00 0.000000E+00 0.180000E+03 0.100000E+01 0.000000E+00 0.000000E+00 4 0.134372E+02 0.000000E+00 0.000000E+00 0.180000E+03 0.100000E+01 0.000000E+00 0.000000E+00 5 -0.916710E+01 0.000000E+00 0.529263E+01 0.180000E+03 -0.707107E+00 0.000000E+00 -0.707107E+00 6 -0.972145E+01 0.000000E+00 0.561268E+01 0.180000E+03 -0.707107E+00 0.000000E+00 -0.707107E+00 7 -0.722802E+01 0.000000E+00 0.417310E+01 0.180000E+03 -0.707107E+00 0.000000E+00 -0.707107E+00 8 -0.975164E+01 0.000000E+00 0.563011E+01 0.180000E+03 -0.707107E+00 0.000000E+00 -0.707107E+00 9 0.000000E+00 -0.126520E+02 0.326673E+01 0.600000E+02 0.000000E+00 -0.100000E+01 0.000000E+00 10 0.000000E+00 -0.108432E+02 0.279972E+01 0.600000E+02 0.000000E+00 -0.100000E+01 0.000000E+00 --- End WARNING: ENERGY-SCAN with a dimer auxiliary basis needs to have: REDO-DF-ON-ROTATION = .true. Setting this here, but it should be set in the DF module. WARNING: in subroutine energy_scan_parser line 719 Setting REDO-DF-ON-ROTATION=.true. INFO = 1 Number of points = 10 Rx Ry Rz alpha Nx Ny Nz E(1)elst E(2)ind E(2)disp E(1)exch E(2)exind E(2)exdisp TotOverlap Eelst-MP Eind-MP Edisp-MP Delta BOHR BOHR BOHR DEGREES --- --- --- KJ/MOL KJ/MOL KJ/MOL KJ/MOL KJ/MOL KJ/MOL KJ/MOL KJ/MOL KJ/MOL KJ/MOL ------------------------------------------------------------------------------ 1 13.6313000 0.0000000 0.0000000 180.0000000 1.0000000 0.0000000 0.0000000 8.1208599E-01 0.0000000E+00 0.0000000E+00 4.7754761E-01 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 2 11.9628000 0.0000000 0.0000000 180.0000000 1.0000000 0.0000000 0.0000000 6.5729689E-01 0.0000000E+00 0.0000000E+00 1.0251847E+01 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 3 12.2605000 0.0000000 0.0000000 180.0000000 1.0000000 0.0000000 0.0000000 1.0223858E+00 0.0000000E+00 0.0000000E+00 5.9771538E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 4 13.4372000 0.0000000 0.0000000 180.0000000 1.0000000 0.0000000 0.0000000 8.8945294E-01 0.0000000E+00 0.0000000E+00 6.8629620E-01 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 5 -9.1671000 0.0000000 5.2926300 180.0000000 -0.7071070 0.0000000 -0.7071070 -1.1622463E+00 0.0000000E+00 0.0000000E+00 3.5327413E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 6 -9.7214500 0.0000000 5.6126800 180.0000000 -0.7071070 0.0000000 -0.7071070 -5.4924311E-01 0.0000000E+00 0.0000000E+00 1.2086289E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 7 -7.2280200 0.0000000 4.1731000 180.0000000 -0.7071070 0.0000000 -0.7071070 -4.5123293E+01 0.0000000E+00 0.0000000E+00 1.4932393E+02 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 8 -9.7516400 0.0000000 5.6301100 180.0000000 -0.7071070 0.0000000 -0.7071070 -5.3223392E-01 0.0000000E+00 0.0000000E+00 1.1407984E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 9 0.0000000 -12.6520000 3.2667300 60.0000000 0.0000000 -1.0000000 0.0000000 -2.4924072E+00 0.0000000E+00 0.0000000E+00 9.7557631E-01 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 10 0.0000000 -10.8432000 2.7997200 60.0000000 0.0000000 -1.0000000 0.0000000 -9.6588506E+00 0.0000000E+00 0.0000000E+00 2.0501909E+01 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 ------------------------------------------------------------------------------ Scan results will be written in file: energy_file.dat