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

Different energies with Libint2 nproc(MPI)>1 on localdf branch #11

Closed evaleev closed 10 years ago

evaleev commented 10 years ago

Example failing input. Doesn't fail every time, but when it does, it fails before it gets to the first iteration. You can comment out the do_threaded on line 221 of cadfclhf.cc and uncomment the for loop to see that it works with this part removed, but still gives different answers depending on the number of MPI tasks.

dfkernel = "coulomb"

bsname = "cc-pVTZ" dfbsname = "cc-pVTZ/JKFIT"

molecule = $:h2o

mpqc:( mole = $:camole checkpoint = no savestate = no )

h2o: ( units = bohr symmetry = c1 { atoms geometry } = { O [ -0.00000000 -0.11130487 -0.00000000 ] H [ -1.53256789 0.88382491 0.00000000 ] H [ 1.53256789 0.88382491 0.00000000 ] } )

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

camole: ( integrals:() pair_screening_thresh = 1e-89 full_screening_thresh = 1e-69 distance_screening_thresh = 1e-69 full_screening_expon = 1.5 do_linK = yes linK_use_distance = yes linK_block_rho = no print_screening_stats = 2 print_iteration_timings = yes use_norms_nu = yes use_norms_sigma = yes xml_screening_data = yes use_extents = yes use_max_extents = no well_separated_thresh = 1e-2 xml_debug = no %density_reset_frequency = 3

mdf_basis: ( molecule = $:molecule name = $:dfbsname ) df_basis:( molecule = $..:molecule basis = $..:mdf_basis )

% Function value_accuracy = 1e-7 gradient_accuracy = 1e-6

% MolecularEnergy input molecule = $:molecule mbasis: ( molecule = $:molecule name = $:bsname ) basis:( molecule = $..:molecule basis = $..:mbasis )

%extrap:( % n = 10 %)

maxiter = 50

guess_wavefunction:( molecule = $:molecule mbasis: ( molecule = $:molecule name = "STO-3G" ) basis:( molecule = $..:molecule basis = $..:mbasis ) ) )

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%guess: ( % integral_storage=32000000 % integrals:() % value_accuracy = 1e-8 % molecule = $:molecule % % mbasis: ( % molecule = $:molecule % name = "STO-3G" % ) % basis:( % molecule = $..:molecule % basis = $..:mbasis % ) %)

% % Local Variables: % mode: keyval % End:

evaleev commented 10 years ago

@dhollman seems to be related to the use of DF in the SOAD guess when Libint2 is available.

evaleev commented 10 years ago

This seems to be multiple bugs in one. I fixed the Libint2-specific issue ... the different results with multiple MPI ranks and multiple threads appear with IntV3 for me also. Closing #11 , will spin out the remaining problem as a new issue