Author Topic: ricc2 with ridft  (Read 10563 times)

brijesh

  • Jr. Member
  • **
  • Posts: 18
  • Karma: +0/-0
ricc2 with ridft
« on: February 28, 2013, 03:33:42 PM »
Dear All,
I am trying to do ground state ricc2 calculation after ridft calculation. Here is the error I received :


WARNING: an $rij but no $rik flag found
WARNING: $rij is ignored by ricc2!
 B-LYP functional
 exchange:    LDA + Becke (B88)
 correlation: Lee-Yang-Parr (LYP)
Error: You are running a MP2 or CC2 starting from a DFT wavefunction!!!


Any help is appreciated.
Thank you, Brijesh

Hauke

  • Full Member
  • ***
  • Posts: 37
  • Karma: +0/-0
Re: ricc2 with ridft
« Reply #1 on: February 28, 2013, 06:35:03 PM »
A post-HF-method like MP2, CC... needs a converged HF-run.
To get this you have to run dscf (one could also use ridft to do RI-SCF, but this has to be done without the $dft section and $rik instead of $rij for the Coulomb- and Exchange-fitting) before you can start ricc2. You can set up this HF calculation by using define after the ridft calculation to deactivate dft, rij ... but maybe it is more "secure" to set up the HF calculation in a new folder and just to use the coord file.
Did you had a look in the tutorial where the way how to set up an HF calculation is described.


brijesh

  • Jr. Member
  • **
  • Posts: 18
  • Karma: +0/-0
Re: ricc2 with ridft
« Reply #2 on: February 28, 2013, 06:40:34 PM »
Thank you.
 I could run the calculation after dscf run.   

best regards
Brijesh

Arnim

  • Developers
  • Sr. Member
  • *
  • Posts: 253
  • Karma: +0/-0
Re: ricc2 with ridft
« Reply #3 on: March 01, 2013, 10:48:59 AM »
JFYI.
You can also perform a RI-HF calculation with RI-J (the $rij key), not only with RI-K ($rik).

Arnim

Hauke

  • Full Member
  • ***
  • Posts: 37
  • Karma: +0/-0
Re: ricc2 with ridft
« Reply #4 on: March 04, 2013, 01:20:00 PM »
You can also perform a RI-HF calculation with RI-J (the $rij key), not only with RI-K ($rik).

Do you have experience using RI-HF with just Coulomb-fitting (the $rij key)? The tutorial (section 6.6) sounds to me like just $rij ist not sufficient for RI-HF and one should use Coulomb- and Exchange-fitting ($jkbas).

Quote
1. Coulomb-Fitting ($jbas). Basis sets declared in this data-group are needed for RI-DFT calculations, where only the Coulomb part of the Fock operator is approximated. They can be kept rather small.
2.Coulomb- and Exchange-Fitting ($jkbas). If additionally the exchange part of the Fock operator needs to be approximated (RI-SCF calculations), a larger fitting basis is needed. It also can be used for RI-DFT runs (if the accuracy of the $jbas auxiliary basis is not satisfactory for you).

uwe

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 560
  • Karma: +0/-0
Re: ricc2 with ridft
« Reply #5 on: March 11, 2013, 12:32:12 PM »
Hello,

the tutorial does no say that $rij is not sufficient for Hartree-Fock, it says that if you want to describe the exchange (K) with RI, then you should not use the auxiliary basis set for RI-J but the larger one for RI-K.

In Hartree-Fock there are two contributions: Coulomb (J) and exchange (K). For each of them, RI can be switched on or off individually:

  • J and K without RI - this is to perform a usual, conventional Hartree-Fock calculation
  • J with RI and K without RI - here only the Coulomb part is approximated with RI, the exchange is done conventionally, but with an algorithm which is kind of linear scaling (see also what I wrote here: http://www.turbo-forum.com/index.php?topic=774.0). This is what Arnim was referring to. Since the exchange is not approximated, the auxiliary basis set for RI is used only for RI-J.
  • J without RI and K with RI - this is a combination which is not recommended and does not make sense, because you need as much time for the exact Coulomb part J as for the whole conventional Hartree-Fock calculation, so RI does not speed up anything in this case.
  • both J and K with RI - in this case, special and larger auxilibary basis sets for RI-K are used for both J and K (jkbas). This is done automatically if you switch on RI-K in define (switch rijk to on in the general menu).

Regards,

Uwe

Hauke

  • Full Member
  • ***
  • Posts: 37
  • Karma: +0/-0
Re: ricc2 with ridft
« Reply #6 on: March 11, 2013, 03:30:42 PM »
Thanks for making this clear to me (I misunderstood the "needs" in "If additionally the exchange part of the Fock operator needs to be approximated (RI-SCF calculations), a larger fitting basis is needed.").

Do you (or somebody else) has experience/recommendation when to use dscf or ridft (RI-J-HF (+ marij) or RI-JK-HF (+ marij))  for HF calculations?
Here you wroth that
Quote
RI-JK is faster than non-RI calculation only for mid-sized molecules with large basis sets. It has mainly been developed as a pre-step for RI-MP2 and RI-CC2 where large basis sets are the default. If RI-JK is used for small basis sets like SVP, it can be much slower than the non-RI or the RI-J calculation!! [...] Use RI-JK - if the number of basis functions is not too high (depends on the amount of memory you have, roughly 1000-1500 basis sets is usually the limit where the non-RI calculation gets more efficient again).
Is this still up to date? What is about RI-J-HF?
When thinking about RI-HF as first steps for a RI-MP2 or RI-CC2 calculation I'm still concerned about the missing density check (see here, in my tests this is true for RI-J-HF and RI-JK-HF in parallel mode. Or can somebody show me a way/dispel my doubts) but for "just" HF calculations I don't check the density be default anyway ... So I'm thinking about always using RI-J-HF + marij (like I always use RI-DFT + marij instead of just DFT). Can I do so without worrying about molecule size or is there a region where this is slower than non-RI HF?

I hope it's ok that we discuss about this topic in the Ricc2 subforum. If not you can of course shift this post into a new thread in the dscf/ridft subfolder.
« Last Edit: March 11, 2013, 03:34:53 PM by Hauke »