ValeevGroup / mpqc

The Massively Parallel Quantum Chemistry program, MPQC, computes properties of atoms and molecules from first principles using the time independent Schrödinger equation.
66 stars 24 forks source link

MPQC3 r12 calculation gives wrong result for VT2 term at multiple thread #29

Closed pchong90 closed 9 years ago

pchong90 commented 9 years ago

This happens when using MPQC3 pt2r12 module. The result for VT2 term is wrong when running at multiple thread. It goes back to normal when using density fitting.

Input file: ch2.pt2r12.dat, ch2.pt2r12.rmd2.dat

command: pt2r12 -prefix ch2 -obs cc-pVDZ -cabs cc-pVDZ-F12-CABS -singles true -partitionH dyall_1 -threadgrp '<PthreadThreadGrp>:(num_threads=2)' will give the wrong result in VT2 term. See the output file: wrong.output

if use density fitting, pt2r12 -prefix ch2 -obs cc-pVDZ -cabs cc-pVDZ-F12-CABS -dfbs cc-pVTZ-RI -singles true -partitionH dyall_1 -threadgrp '<PthreadThreadGrp>:(num_threads=2)' will give the corret result. See the output file: correct.output

I did not notice this bug until now because I usually use density fitting. My hypothesis is that something is wrong in the term "R12_m1_G12[0]" which is computed for VT2 term.

Please give me some hints. I will try to solve it.

evaleev commented 9 years ago

GaussianGmEval in libint2 is not reentrant. I'm working on this.