I am trying to run an NMR calculation (job type ISSC) for a molecule using the pcJ-n basis set, but my molecule has Ca atoms in each which is not supported by the above basis set. However, I only want the NMR coupling constants between P atoms, which are supported by the basis set. Is there a way to tell QChem to run the calculation only for the P atoms? I know Gaussian has a way to do it, but not sure about QChem.
Alternatively, is there a better basis set than pcJ-n for NMR calculations in QChem that might have Ca atoms supported as well?
I looked through the code, and it currently isn’t possible to select specific atoms for an ISSC run (though it looks like there is an undocumented way to do so for shieldings/shifts). I’ll put in a feature request for selecting subsets of atoms in ISSC. In the meantime, since pcJ-n is not defined for calcium, you can mix and match basis sets like so using the general basis input (8.5.1 Overview‣ 8.5 Mixed Basis Sets ‣ Chapter 8 Basis Sets and Effective Core Potentials ‣ Q-Chem 5.4 User’s Manual)
$rem
jobtype issc
method hf
basis gen
$end
$molecule
0 1
Ca 2.81343 -3.22749 2.71476
Ca -1.18876 -0.30736 -1.97198
Ca 5.04563 3.67766 -0.66224
O 2.83385 0.39279 -2.72926
O 3.64367 -0.55338 -0.55430
O 3.75225 1.96110 -0.99206
O 5.32642 0.56811 -2.08342
P 3.87663 0.52137 -1.62484
O -0.23198 -0.21618 1.90887
O 0.38196 -0.61820 -0.41335
O 1.89145 0.81014 1.04391
O 1.73272 -1.69715 1.53290
P 0.97099 -0.40866 1.02748
$end
$basis
Ca 0
def2-svp
****
O 0
pcj-1
****
P 0
pcj-1
****
$end
where this is not a scientific endorsement of def2-SVP for calcium. You probably only need a basis set there (and on all atoms you aren’t interested in spin-spin couplings for) that adequately describes the valence region, since representing the core region is more important for ISSC and NMR in general.
Thank you for the reply. For some reason I didn’t get a notification of your reply, hence the delay. Thanks for putting in the feature request. Mixing matching the basis sets like you did does make sense! I hadn’t thought about that. And yes, using a small basis set for Ca and O would make sense. Thanks for the suggestion.
I’ve implemented it like so for the upcoming 6.0 release:
$comment
ISSC: only oxygens
$end
$molecule
0 1
O 0.0000 0.6981 -0.0504
O 0.0000 -0.6981 -0.0504
H 0.8712 0.8912 0.4034
H -0.8712 -0.8912 0.4034
$end
$rem
jobtype issc
method pbe
basis pcj-2
$end
$spin-spin
0 1
$end
As far as I can tell, aside from their exclusion syntax and being able to pass element symbols, it works similar to Gaussian: given a set of zero-based indices for nuclei, compute all ISSCs for all unique pairs within those indices. Another possibility would be to only compute explicitly given pairs, but I’m not sure if that’s more or less useful without some additional feedback.
There will also be a manual section that covers this.
Thank you for this, it is exactly what I was looking for! As for computing explicitly for given pairs, I do think that would be useful for certain types of applications and calculations (at least as far as my work is considered). But, I can only speak for myself. In any case, what you have implemented here is perfect for now. I very much appreciate this.
After reviewing a number of other input sections that Q-Chem has that take ranges of atoms, this is going to change from zero-based indexing to one-based indexing for 6.1.0.