[DFTB-Plus-User] TD-DFTB result differes in gcc vs ifort binaries
Krishna Mohan G.P.
gpkmohan at yahoo.com
Wed Mar 15 16:07:29 CET 2017
Dear List
I was compiling the new dftb 1.3.1 version with GCC (5.4.1) and ifort (intel parallel_studio_xe_2016_update3).
Both the binarys are OK, but for the Time Dependent DFTB calculations, these binaries are NOT giving consistent result (it is also true for the 1.3.0 version):
For example, I ran NO example (as you can see in the autotest folder...), and both the ifort and gcc binaries give the SAMEvalues for the SCC, as:
>> Charges saved for restart in charges.bin
Total Energy: -5.6213762107 H -152.9654 eV Total Mermin free energy: -5.6215518162 H -152.9702 eV
But if you compare, TDDFTB files, say, EXC.DAT file, it differs!
gcc EXC.DAT------------------------------------------ ifort EXC.DAT -------------------------------------------- w [eV] Osc.Str. Transition Weight KS [eV] D<S*S> w [eV] Osc.Str. Transition Weight KS [eV] D<S*S>
7.478 0.0020987 3 -> 7 0.578 8.534 1.703 7.478 0.0020987 3 -> 6 0.486 8.534 1.703 7.772 0.0000000 5 -> 6 1.000 7.772 0.054 7.772 0.0000000 5 -> 6 1.000 7.772 0.712 7.772 0.0000000 5 -> 7 1.000 7.772 0.945 7.772 0.0000000 5 -> 7 1.000 7.772 0.287 7.793 0.0000000 5 -> 6 0.838 7.793 0.999 7.793 0.0000000 5 -> 6 0.730 7.793 0.999 7.793 0.0000000 5 -> 7 0.838 7.793 0.999 7.793 0.0000000 5 -> 7 0.730 7.793 0.999 8.534 0.0000000 4 -> 7 0.987 8.534 0.999 8.534 0.0000000 4 -> 7 0.734 8.534 0.999 8.534 0.0000000 4 -> 6 0.821 8.534 0.999 8.534 0.0000000 3 -> 7 0.690 8.534 0.999 8.534 0.0000000 3 -> 6 0.996 8.534 0.999 8.534 0.0000000 3 -> 7 0.727 8.534 0.999 8.636 0.0000000 3 -> 6 0.623 8.636 0.500 8.636 0.0000000 3 -> 6 0.922 8.636 0.963 8.636 0.0000000 4 -> 6 0.990 8.636 0.005 8.636 0.0000000 4 -> 7 0.963 8.636 0.088 8.636 0.0000000 3 -> 7 0.987 8.636 0.993 8.636 0.0000000 3 -> 6 0.749 8.636 0.447 11.652 0.4997199 3 -> 6 0.600 8.636 -0.231 11.652 0.4997199 3 -> 7 0.633 8.636 -0.231 13.175 0.0000000 2 -> 7 0.807 13.175 0.999 13.175 0.0000000 2 -> 7 0.992 13.175 0.999 13.175 0.0000000 2 -> 6 0.807 13.175 0.999 13.175 0.0000000 2 -> 6 0.992 13.175 0.999 13.244 0.0000000 2 -> 6 0.973 13.244 0.046 13.244 0.0000000 2 -> 6 0.884 13.244 0.995 13.244 0.0000000 2 -> 7 0.973 13.244 0.953 13.244 0.0000000 2 -> 7 0.884 13.244 0.004 24.369 0.0000000 1 -> 7 1.000 24.369 0.999 24.369 0.0000000 1 -> 6 1.000 24.369 0.999 24.369 0.0000000 1 -> 6 1.000 24.369 0.999 24.369 0.0000000 1 -> 7 1.000 24.369 0.999
For brevity I am NOT showing a full comparison of other files (see below for the attachement for SPX and TRA files generated by gcc and ifort binaries).
I suspect that it is because of ARPACK libraries. In both cases I compiled ARPACK source (ofcourse with Patch for updating ) with GCC and IFORT (using default settings).
My Linux is SuSE 13.2 32 bit; and for GCC version of binary I use SuSE's <lapack , atlas , f77blas , cblas , atlas > static libraries, and for IFORT version I use, libmkl_intel.a libmkl_intel_thread.a libmkl_core.a apart from the ARPACK .a file compiled by the ifort/gcc.
My Final make shows:
gfortran -fopenmp -o dftb+ dftb+.o shift.o accuracy.o common_types.o allocate.o geoopt.o conjgrad.o linmin.o constants.o diis.o diis_mixer.o lapackroutines.o lapack.o message.o stepdesc.o mainio.o sparse2dense.o memman.o periodic.o sort.o bisection.o linkedlist.o simple_algebra.o blasroutines.o blas.o fifo.o fileid.o charmanip.o linresp.o nonscc.o sk.o slako_cont.o slako_eq_grid.o interpolation.o scc.o coulomb.o error_function.o extcharge.o charge_constraints.o short_gamma.o linresp_grad.o qm.o taggedout.o linresp_common.o arpack.o eigensolver.o initprogram.o stressTensor.o rep_cont.o rep_poly.o rep_spline.o dummy_thermostat.o md_common.o ranlux.o dispersions.o disp_uff_data.o disp_slaterkirkwood.o disp_common.o dispersion_iface.o disp_uff.o disp_dftd3.o dftd3.o orbital_equiv.o nhc_thermostat.o energies.o temp_profile.o simple_mixer.o numericalDerivs.o thirdorder.o charges.o thermostat.o berendsen_thermostat.o andersen_thermostat.o spin.o broyden_mixer.o md_integrator.o velocity_verlet.o inputdata_.o ipisocket.o fsockets.o logger.o optarg.o xlbomd.o ext_lagrangian.o type_geometry.o etemp.o hermite.o fact.o intrinsicpr.o mixer_adt.o anderson_mixer.o scc_init.o dftb_pls_u.o populations.o constraints.o angmomentum.o potentials.o formatout.o xmlf90.o eigenvects.o parser.o stringlist.o hsdutils2.o hsdparser.o xmlutils.o hsdutils.o tokenreader.o unitconversion.o general_list.o oldcompat.o wrapped_pointers.o type_geometry_hsd.o old_sk_data.o densitymatrix.o pipekmezey.o repulsive.o spinorbit.o forces.o -L./_dir_extlib_xmlf90 -lxmlf90 -L./_dir_extlib_fsockets -lfsockets -L/usr/lib -llapack -L/usr/lib/atlas -lf77blas -lcblas -latlas libarpack_lingcc5.4.1.a -L./_dir_extlib_dftd3 -ldftd3 -lgomp
[NOTE: lapack/blas/atlas is supplied by SUSE]
********************************************************************************
ifort -static -o dftb+ dftb+.o shift.o accuracy.o common_types.o allocate.o geoopt.o conjgrad.o linmin.o constants.o diis.o diis_mixer.o lapackroutines.o lapack.o message.o stepdesc.o mainio.o sparse2dense.o memman.o periodic.o sort.o bisection.o linkedlist.o simple_algebra.o blasroutines.o blas.o fifo.o fileid.o charmanip.o linresp.o nonscc.o sk.o slako_cont.o slako_eq_grid.o interpolation.o scc.o coulomb.o error_function.o extcharge.o charge_constraints.o short_gamma.o linresp_grad.o qm.o taggedout.o linresp_common.o arpack.o eigensolver.o initprogram.o stressTensor.o rep_cont.o rep_poly.o rep_spline.o dummy_thermostat.o md_common.o ranlux.o dispersions.o disp_uff_data.o disp_slaterkirkwood.o disp_common.o dispersion_iface.o disp_uff.o disp_dftd3.o dftd3.o orbital_equiv.o nhc_thermostat.o energies.o temp_profile.o simple_mixer.o numericalDerivs.o thirdorder.o charges.o thermostat.o berendsen_thermostat.o andersen_thermostat.o spin.o broyden_mixer.o md_integrator.o velocity_verlet.o inputdata_.o ipisocket.o fsockets.o logger.o optarg.o xlbomd.o ext_lagrangian.o type_geometry.o etemp.o hermite.o fact.o intrinsicpr.o mixer_adt.o anderson_mixer.o scc_init.o dftb_pls_u.o populations.o constraints.o angmomentum.o potentials.o formatout.o xmlf90.o eigenvects.o parser.o stringlist.o hsdutils2.o hsdparser.o xmlutils.o hsdutils.o tokenreader.o unitconversion.o general_list.o oldcompat.o wrapped_pointers.o type_geometry_hsd.o old_sk_data.o densitymatrix.o pipekmezey.o repulsive.o spinorbit.o forces.o -L./_dir_extlib_xmlf90 -lxmlf90 -L./_dir_extlib_fsockets -lfsockets -L/home/krishnamohan/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/ia32_lin -Wl,--start-group -lmkl_intel -lmkl_intel_thread -lmkl_core -Wl,--end-group libarpack_linifort16.a -L./_dir_extlib_dftd3 -ldftd3 -liomp5
Also using ARPACK's example(TEST) Fortran files, I checked both of my GCC and IFORT ARPACK libraries and it give SAME result as one can expected!
So I really wonder what is really happening inside the dftb's TD-DFTB part ?
I really think that it is not the case of 32 bit machine or using SuSE's default ATLAS/BLAS libraries.
If someone can give an information it will be very useful.
With thanks in advance
Dr. Krishna Mohan G P
________________________________________________________________________________
dftb_in.hsd, gccEXC, gccSPX, gccTRA are saved in:
https://drive.google.com/file/d/0Bxq8JRPh0W1UZlVjNm5tRkU3U00/view?usp=sharing
https://drive.google.com/file/d/0Bxq8JRPh0W1UVHZQa1FCM0dMSDQ/view?usp=sharing
https://drive.google.com/file/d/0Bxq8JRPh0W1UVUtfZHRnMkJsZTQ/view?usp=sharing
https://drive.google.com/file/d/0Bxq8JRPh0W1UMmRVclViN0JLTDg/view?usp=sharing
Also, the ifortEXC, ifortSPX and ifort TRA are saved in:
https://drive.google.com/file/d/0Bxq8JRPh0W1UOEl2YUR2ZUxGWnc/view?usp=sharing
https://drive.google.com/file/d/0Bxq8JRPh0W1UNWZFR2x3LU5IYWs/view?usp=sharing
https://drive.google.com/file/d/0Bxq8JRPh0W1UN2VJblVPR0g5UFE/view?usp=sharing
_______________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.zfn.uni-bremen.de/pipermail/dftb-plus-user/attachments/20170315/de2c982e/attachment.htm>
More information about the DFTB-Plus-User
mailing list