Difference between revisions of "CamCASP/Bugs/9"
import>Am592 |
import>Am592 |
||
Line 166: | Line 166: | ||
==Example 2: Pyridine symmetry-broken dimer== |
==Example 2: Pyridine symmetry-broken dimer== |
||
− | As mentioned above, the inconsistencies seen with DALTON could have arisen from |
+ | As mentioned above, the inconsistencies seen with DALTON could have arisen from linear dependencies in the basis functions. But I also considered the option that the problems could have arisen because of the high symmetry of the dimer. There were reasons for this: |
+ | * The runs that failed we those that involved high-symmetry dimers. Either D2h or C2v. |
||
+ | * Both were run on Tati. |
||
+ | * mmp12 had only asymmetric dimers. |
||
+ | * There have been cases (Ar, Cl-) where DALTON has produced odd results (Ar was fine with NWChem). |
||
+ | |||
+ | As will be seen, the problem probably has nothing to do with symmetry. |
||
+ | |||
+ | The asymmetric dimer was a modification of the D2h structure used above. Here is the important bit from the CLUSTER file: |
||
+ | <pre> |
||
+ | ! Destroying D2h symm by changing pyr_1 angle from 87.662 to... |
||
+ | Rotate pyr_1 by 80.662 about 0.903185 0.406195 0.138788 |
||
+ | Place pyr_1 at 3.05962985 0.49181025 -3.1654741 |
||
+ | Rotate pyr_2 by 102.564 about -0.924575 -0.123188 0.360537 |
||
+ | Place pyr_2 at 1.23588445 0.07067905 6.99504475 |
||
+ | </pre> |
||
+ | |||
+ | ===PBE0/noAC Sadlej MC+=== |
||
+ | Summary of results: |
||
+ | <pre> |
||
+ | PBE0/noAC Sadlej/MC+ Integral switch = 1 |
||
+ | ========================================================== |
||
+ | Tati mmp12 |
||
+ | --------------------- --------------------- |
||
+ | ALDA+CHF ALDAX+CHF ALDA+CHF ALDAX+CHF |
||
+ | Case (T1) (T2) (M1) (M2) |
||
+ | ========================================================== |
||
+ | Units: a.u. |
||
+ | E_A -249.3678 -248.0366 |
||
+ | Gap_A 0.2394 0.2410 |
||
+ | NucRep_A 207.1565 207.1565 |
||
+ | E_B -249.3679 -248.0367 |
||
+ | Gap_B 0.2394 0.2410 |
||
+ | NucRep_B 207.1565 207.1565 |
||
+ | ---------------------------------------------------------- |
||
+ | Units: cm-1 |
||
+ | E1elst -2765.39 -2765.39 -2792.00 -2792.00 |
||
+ | E1exch 5010.05 5010.05 4966.78 4966.78 |
||
+ | E2ind,pol -1663.49 -2443.05 -1699.21 -1668.20 |
||
+ | E2ind,ex 1121.74 1642.95 1165.83 1144.55 |
||
+ | E2disp,pol -2361.21 -2437.08 -2328.53 -2327.98 |
||
+ | E2disp,ex 377.82 389.96 375.12 375.03 |
||
+ | ---------------------------------------------------------- |
||
+ | E2int -280.48 -602.56 -312.02 -301.81 |
||
+ | %diff +10.1% -93.1% 0.0% +3.3% |
||
+ | ========================================================== |
||
+ | |||
+ | </pre> |
||
+ | Conclusions: |
||
+ | * DFT energies: The differences are very disturbing. The nuclear |
||
+ | repulsion energies are identical - as they should be for a symmetric |
||
+ | dimer. But DFT energies differ by more than 1.3 a.u. This is absurdly |
||
+ | large. There certainly is a problem with DALTON. Possibly |
||
+ | compiler-induced. Needs to be re-compiled with other compilers. |
||
+ | * ALDA+CHF: The differences in T1 and M1 are significant, but |
||
+ | not excessive. These could well be due to the differences in the |
||
+ | DALTON DFT calculations. |
||
+ | * ALDAX+CHF: Here's where we see a large difference in energies. |
||
+ | E2ind,pol in T2 is wrong. Have a look at the breakup from the T2 |
||
+ | calculation: |
||
+ | <pre> |
||
+ | E^{2}_{ind} = -2443.0533 CM-1 |
||
+ | E^{2}_{ind}(A) = -1618.2230 CM-1 |
||
+ | E^{2}_{ind}(B) = -824.83034 CM-1 |
||
+ | E^{2}_{ind}(UC) = -1630.2294 CM-1 |
||
+ | E^{2}_{ind}(UC)(A) = -810.98495 CM-1 |
||
+ | E^{2}_{ind}(UC)(B) = -819.24447 CM-1 |
||
+ | |||
+ | Compare this with M2: |
||
+ | E^{2}_{ind} = -1668.2009 CM-1 |
||
+ | E^{2}_{ind}(A) = -825.01692 CM-1 |
||
+ | E^{2}_{ind}(B) = -843.18401 CM-1 |
||
+ | E^{2}_{ind}(UC) = -1659.0578 CM-1 |
||
+ | E^{2}_{ind}(UC)(A) = -824.93893 CM-1 |
||
+ | E^{2}_{ind}(UC)(B) = -834.11883 CM-1 |
||
+ | </pre> |
||
+ | What could have caused the problem with E^{2}_{ind}(A) ? |
Revision as of 18:11, 15 November 2011
CamCASP => Bugs => Errors in Second-order Energies
Background
Way back in 2010, while developing a potential for molecule XVI (part of the 2010 Blind test), we had encountered large errors in the second-order energies for dimers of this molecule. Sally had alerted us to this (she was developing the potential with my help). She had realised there was a problem as there were significant outliers in the total energies and dispersion energies when compared with our fits. Closer investigation revealed that the contributions to the dispersion energy at imaginary frequency were erratic, and in some cases, even changed sign (they should all be of one sign and decay as <math> 1/(w^2+w_0^2)</math>), where <math>w_0</math> is a characteristic frequency). At that point we brushed aside the problem as there wasn't time to investigate it. But we knew that it was related to the new propagator module that allows us to calculate the FDDS entirely within CamCASP using the ALDAX+CHF model.
Recently, I have encountered the problem yet again, this time with the pyridine dimer. As before, the calculations involve the new propagator module with the ALDAX+CHF model. Unfortunately, this seems to be a large-system problem. Calculations on smaller systems or large systems with smaller (less-diffuse) basis sets have not exhibited the problem. Nor has there been a problem with calculations using the ALDAX propagator.
Here I present a summary of my investigations with a few pyridine dimer systems.
Details
Unless stated, the calculations use the parameters defined here.
CamCASP:
trunk rev 22218
DALTON
Version 2 with patches from Rafal. Also includes changes suggested by Anthony to get it to compile with ifort. See CamCASP/Compilation for details. Tati: compiled with Goto2 library mmp12: compiled with ATLAS
Default run parameters:
Integral switch = 1 PBE0 ALDAX+CHF Standard integration grids
Machines used:
Tati: ifort Version 11.1 BLAS/LAPACK: Goto2 mmp12: ifort Version 12.0.5 BLAS/LAPACK: ATLAS 3.8.4 with LAPACK additions from Netlib Compiled with Gfortran 4.5 or 4.6 (probably 4.5) Gfortran: Versions 4.5.4 and 4.6.1
Example 1: Pyridine <math>D_{2h}</math> dimer
Click here for a generic CLUSTER file
Sadlej/MC+/AC
Second-order energies
mmp12: ALDA+CHF : -1628.32 -2316.07 ALDAX+CHF: -1546.89 -2324.97 ALDAX : -1460.61 -2065.68 --------------------------------- tati*: ALDAX+CHF: -311.77 -1138.50 --------------------------------- * Original run: PBE0/AC Integral switch = 0 ifort 11.1 CamCASP: Compiled >= Aug 05 2011 Rev. 22175
- The calculations on mmp12 are sensible.
- E2disp: Very good agreement between ALDA+CHF and ALDAX+CHF (0.4%). Errors large for ALDAX, but this is to be expected as we have used PBE0 for MOs, so we must have 25% of CHF.
- E2ind: This time ALDAX+CHF is not a good approximation. It turns out that the total induction energy from ALDA+CHF and ALDAX+CHF is not too bad: -549.63 cm-1 from ALDA+CHF and -522.14 cm-1 from ALDAX+CHF. A -5% error with ALDAX+CHF. I had overlooked this in my tests of ALDAX+CHF.
- The results on Tati are clearly nonsense. Here are some details of that run:
DATADIR: CamCASP/tests/bugs/kernel-bugs/bug-1-aldx-chf/pyr2/pyr2-sadlej-mcP-original/ File: $DATADIR/OUT/pot1721-Min13-s0.95-aldax-chf.out INDUCTION CALCULATION Parameters same. Skipping DF for pyr_1 OV DF finished for pyr_1 E^{2}_{ind}(UC) = -1634.523269 CM-1 E^{2}_{ind}(UC)(A) = -817.260620 CM-1 E^{2}_{ind}(UC)(B) = -817.262648 CM-1 E^{2}_{ind} = -311.774657 CM-1 E^{2}_{ind}(A) = -194.440126 CM-1 E^{2}_{ind}(B) = -117.334532 CM-1 Density-fitted propagator was used. Propagator type : cks --------------------------------- E^{2}_{ind,exch} = 207.525965 CM-1 E^{2}_{ind,exch}(A) = 129.424747 CM-1 E^{2}_{ind,exch}(B) = 78.101219 CM-1 E^{2}_{ind,exch}(UC) = 1087.984745 CM-1 E^{2}_{ind,exch}(UC)(A) = 543.991362 CM-1 E^{2}_{ind,exch}(UC)(B) = 543.993383 CM-1 --------------------------------- --------------------------------- Quad points and XI at each point: i OMEGA XI --------------------------------- 1 0.006610 -0.903720E-02 2 0.036175 0.100213E+00 3 0.095447 -0.197757E-01 4 0.197644 -0.154010E-01 5 0.370417 -0.103565E-01 6 0.674915 -0.495012E-02 7 1.264899 -0.114417E-02 8 2.619245 -0.200620E-03 9 6.910886 -0.698310E-05 10 37.823762 -0.109340E-07 --------------------------------- E^{2}_{disp} = -1138.500450 CM-1 E^{2}_{disp}(UC) = -3550.241639 CM-1 Density-fitted propagator was used. Propagator type : cks --------------------------------- E^{2}_{disp,exch} = 180.486265 CM-1 E^{2}_{disp,exch}(UC) = 562.819148 CM-1 ---------------------------------
It is worth looking at the details of this calculation:
- XI(w) should be monotonic with w. It is not.
- The induction energy in the coupled and un-coupled approximations are typically similar for systems like pyridine with a moderately sized HOMO-LUMO gap, but they are dramatically off.
- Symmetry has broken. This is a <math>D_{2h}</math> symmetry dimer. E2ind(A) and E2ind(B) should be the same. The uncoupled energies are, but not the coupled.
PUZZLE 1: The last observation is puzzling. Both the coupled and uncoupled expressions for the induction involve virtual orbitals. why has only the coupled calculation broken symmetry?
First-order energies
Here are first-order energies from runs on the two machines. They should be identical. Same inputs/settings. Only compilers and libraries differ.
========================== E1elst E1exch -------------------------- mmp12 -2792.27 4812.59 Tati -2798.89 4947.78 ==========================
How do we understand this? Look at the DALTON DFT energies...
DALTON energies
MonA MonB -------------------------- mmp12 -248.0367 -248.0367 (yes, this is a symmetric config) tati -249.3680 -249.3680 (D2h symm so monomers are identical) ==========================
This is amazing. The DFT solutions on these two machines are really very different. And these results are reproducible. Possible causes:
- Basis too diffuse/large. Uses mid-bonds. Perhaps this leads to linear-dependencies and oddities in the MOs. But how does this explain PUZZLE 1?
- DALTON parameters (in the *.dal files) could be the cause of the problem. We should allow orbital-space truncation by reducing .CMOMAX and increasing .AO DELETE.
- Compile on Tati with the new version of ifort and the ATLAS library.
Cross-runs: MOs from Tati with CamCASP on mmp12
As a cross-check I ran CamCASP on mmp12 using MOs from Tati. If there was a problem with the MOs from Tati I should have obtained the same CamCASP results on mmp12 as on Tati. This is the case:
Results in /bug-1-aldx-chf/pyr2/pyr2-sadlej-mcP-original/ Two runs: 2GB and 4GB memory. E2ind E2disp ---------------------------- 2GB -307.57 -1050.56 4GB -307.57 -1050.56 ----------------------------
I ran this job with two memory settings to ensure that this was not a large-job-small-memory problem as we have encountered on some occasions.
Example 2: Pyridine symmetry-broken dimer
As mentioned above, the inconsistencies seen with DALTON could have arisen from linear dependencies in the basis functions. But I also considered the option that the problems could have arisen because of the high symmetry of the dimer. There were reasons for this:
- The runs that failed we those that involved high-symmetry dimers. Either D2h or C2v.
- Both were run on Tati.
- mmp12 had only asymmetric dimers.
- There have been cases (Ar, Cl-) where DALTON has produced odd results (Ar was fine with NWChem).
As will be seen, the problem probably has nothing to do with symmetry.
The asymmetric dimer was a modification of the D2h structure used above. Here is the important bit from the CLUSTER file:
! Destroying D2h symm by changing pyr_1 angle from 87.662 to... Rotate pyr_1 by 80.662 about 0.903185 0.406195 0.138788 Place pyr_1 at 3.05962985 0.49181025 -3.1654741 Rotate pyr_2 by 102.564 about -0.924575 -0.123188 0.360537 Place pyr_2 at 1.23588445 0.07067905 6.99504475
PBE0/noAC Sadlej MC+
Summary of results:
PBE0/noAC Sadlej/MC+ Integral switch = 1 ========================================================== Tati mmp12 --------------------- --------------------- ALDA+CHF ALDAX+CHF ALDA+CHF ALDAX+CHF Case (T1) (T2) (M1) (M2) ========================================================== Units: a.u. E_A -249.3678 -248.0366 Gap_A 0.2394 0.2410 NucRep_A 207.1565 207.1565 E_B -249.3679 -248.0367 Gap_B 0.2394 0.2410 NucRep_B 207.1565 207.1565 ---------------------------------------------------------- Units: cm-1 E1elst -2765.39 -2765.39 -2792.00 -2792.00 E1exch 5010.05 5010.05 4966.78 4966.78 E2ind,pol -1663.49 -2443.05 -1699.21 -1668.20 E2ind,ex 1121.74 1642.95 1165.83 1144.55 E2disp,pol -2361.21 -2437.08 -2328.53 -2327.98 E2disp,ex 377.82 389.96 375.12 375.03 ---------------------------------------------------------- E2int -280.48 -602.56 -312.02 -301.81 %diff +10.1% -93.1% 0.0% +3.3% ==========================================================
Conclusions:
- DFT energies: The differences are very disturbing. The nuclear
repulsion energies are identical - as they should be for a symmetric dimer. But DFT energies differ by more than 1.3 a.u. This is absurdly large. There certainly is a problem with DALTON. Possibly compiler-induced. Needs to be re-compiled with other compilers.
- ALDA+CHF: The differences in T1 and M1 are significant, but
not excessive. These could well be due to the differences in the DALTON DFT calculations.
- ALDAX+CHF: Here's where we see a large difference in energies.
E2ind,pol in T2 is wrong. Have a look at the breakup from the T2 calculation:
E^{2}_{ind} = -2443.0533 CM-1 E^{2}_{ind}(A) = -1618.2230 CM-1 E^{2}_{ind}(B) = -824.83034 CM-1 E^{2}_{ind}(UC) = -1630.2294 CM-1 E^{2}_{ind}(UC)(A) = -810.98495 CM-1 E^{2}_{ind}(UC)(B) = -819.24447 CM-1 Compare this with M2: E^{2}_{ind} = -1668.2009 CM-1 E^{2}_{ind}(A) = -825.01692 CM-1 E^{2}_{ind}(B) = -843.18401 CM-1 E^{2}_{ind}(UC) = -1659.0578 CM-1 E^{2}_{ind}(UC)(A) = -824.93893 CM-1 E^{2}_{ind}(UC)(B) = -834.11883 CM-1
What could have caused the problem with E^{2}_{ind}(A) ?