Hi everyone. How can I define BASIS2 for metal atoms?
Unfortunately, all the examples in the manual for BASIS2 are for organic species.
I am not sure if it is necessary to define ECPs for dual basis sets, and if so, how?
For example, I wanted to test this in a simple molecule on IQmol server, but I encountered an error:
$molecule
0 1
Au -0.82178220 0.42574257 0.00000000
H 0.81821780 0.42574257 0.00000000
$end
$rem
JOBTYPE opt
METHOD b3lyp
BASIS GEN
ECP def2-ecp
BASIS2 BASIS2_GEN
DUAL_BASIS_ENERGY true
$end
$basis
H 0
6-31g(d)
****
Au 0
def2-SVP
****
$end
$basis2
H 0
sto-3g
****
Au 0
def2-SVP
****
$end
the error:
SCF time: CPU 0.54 s wall 0.54 s
SCF energy in the small basis set = -136.35786439
Total energy in the small basis set = -136.35786439
OvProjection to generate starting density matrix.
Q-Chem fatal error occurred in module scfman/GuessC2.C, line 163:
You are using a basis2 that is not a subset of the target basis. Please choose a different basis2. If you are just generating a starting guess via basis2, please set dual_basis_energy=false.
Please submit a crash report at Q-Chem Crash Reporter
or by this input:
$rem
JOBTYPE opt
METHOD b3lyp
BASIS GEN
ECP GEN
BASIS2 BASIS2_GEN
DUAL_BASIS_ENERGY true
$end
$basis
H 0
6-31g(d)
****
Au 0
def2-SVP
****
$end
$ecp
Au 0
def2-ECP
****
$end
$basis2
H 0
sto-3g
****
Au 0
def2-mSVP
****
$end
the error:
Checking the input file for inconsistencies... ...done.
Reading auxiliary files from /opt/qchem/qc611/qcaux (QCAUX)
Shorthand not supported for def2-ECP '/opt/qchem/qc611/qcaux/ecps/def2-ecp.ecp'
Q-Chem fatal error occurred in module qparser/ParseQInput.C, line 1175:
File error in QParser
Please submit a crash report at q-chem.com/reporter
These are two different issues. Before I describe them, one possible point of confusion is that BASIS2 is used in two different contexts. It can be used for basis-set projection (converge the SCF in a smaller BASIS2 then project that solution into the target BASIS as a guess). Alternatively, it can be used for the dual-basis SCF approach where the SCF is converged in BASIS2 and then a single Roothaan step is performed in the target BASIS, to obtain an estimate of the converged SCF energy in the target BASIS. When you set DUAL_BASIS_ENERGY = TRUE, you are asking for the latter approach whereas the former doesn’t require any keywords beyond BASIS2. The dual-basis strategy is designed to work only when BASIS2 is a proper subset of BASIS, because they can be implemented much more efficiently in that case. So in your first example, Q-Chem is complaining that you didn’t choose a BASIS2 that is a proper subset of BASIS. An example that works for me is
$molecule
0 1
Au -0.82178220 0.42574257 0.00000000
H 0.81821780 0.42574257 0.00000000
$end
$rem
JOBTYPE opt
METHOD b3lyp
BASIS GEN
ECP def2-ecp
BASIS2 BASIS2_GEN
DUAL_BASIS_ENERGY true
$end
$basis
H 0
6-31G**
****
Au 0
def2-SVP
****
$end
$basis2
H 0
6-31G*
****
Au 0
def2-SVP
****
$end
Although in some sense this may miss what you are trying to do, if you intend the target basis to be quite small. In that case you’re better off avoiding the dual-basis strategy. Again, if you’re just trying to use BASIS2 as a guess, and your ultimate goal is a converged SCF in BASIS, then just delete DUAL_BASIS_ENERGY.
In your second example, I think for some reason it doesn’t like the use of def2-ECP in the $ecp section. I don’t have time to investigate in detail right now but that makes some sense to me, because “def2-ECP” is really a shorthand macro for “use the appropriate ECP for a Karlsruhe basis set”, and that macro may have been defined for parsing $rem but not for $ecp. I suggest that you try replacing the $ecp section with full specification of the $ecp for the particular Karlsruhe basis set of interest, which you can obtain either from $QCAUX or from the basis set exchange.
Hi John,
Thank you for your time in responding the question. Your response helped me understand the matter.
However, I was hoping to speed up the calculations. Using such a large BASIS2 does not seem to aid in achieving that goal.
I am wondering if there is another strategy to speed up these calculations by Qchem.
Specifically, I am referring to inorganic molecules with about 100 to 200 atoms, using the 6-31G* basis set for organic atoms and LANL2DZ or SDD for the metals.
I was giving that BASIS2 choice just as an example, wasn’t clear to me what you were trying to do. It sounds like what you want is a BASIS = GEN, specify the basis sets that you want (you can get the SDD info from basis set exchange even if it’s not known to Q-Chem by name). Then do the same for ECP=GEN and specify all the projectors in a $ecp section.