[DFTB-Plus-User] TD-DFTB result differes in gcc vs ifort binaries
Krishna Mohan G.P.
gpkmohan at yahoo.com
Thu Mar 16 06:20:54 CET 2017
Dear Ben
Many thanks for the quick and useful information.
I have one more question:
It means that the UV-VIS spectra (ie. convoluted Gaussian fitted data of the one electron excitations) will be looks very similar from the GCC and IFORT compiled binaries (I guess). Isn’t it?
However, I (and possibly, many others) would like to see DFTB is free from this artifact in future.
One good sign is this:
the ARPACK example files ie. test fortran files are consistent with gcc and ifort (I have tested even for the Windows OS w.r.t. Linux). So I think that some additional FCFLAGS or some other tricks (https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/597810) will fix the problem (though I am not an expert for this!).
Thanks in advance
Krishna Mohan G P
From: Ben Hourahine <benjamin.hourahine at strath.ac.uk>
To: Krishna Mohan G.P. <gpkmohan at yahoo.com>; User list for DFTB+ related questions <dftb-plus-user at mailman.zfn.uni-bremen.de>
Sent: Wednesday, March 15, 2017 10:31 PM
Subject: Re: [DFTB-Plus-User] TD-DFTB result differes in gcc vs ifort binaries
Hello Krishna, this an artefact of the degeneracy in the transitions. The total transition strengths agree between the different compilers: 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
Summed=>
7.772 0.0000000 5 -> 6+7 1.000 7.772 0.999 7.772 0.0000000 5 -> 6+7 1.000 7.772 0.999 The individual sub-transitions may be of different intensities (and may be between differently labelled sub levels) because its usually arbitrary how degenerate eigenvectors are chosen within their manifold. However, physical properties like total energies or total intensities are invariant to the particular specific implementation of eigensolver.
Regards
Ben
On 15/03/17 15:07, Krishna Mohan G.P. via DFTB-Plus-User wrote:
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 SAME values 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
_______________________________________________________________
_______________________________________________
DFTB-Plus-User mailing list
DFTB-Plus-User at mailman.zfn.uni-bremen.de
https://mailman.zfn.uni-bremen.de/cgi-bin/mailman/listinfo/dftb-plus-user
--
Dr. B. Hourahine, SUPA, Department of Physics,
University of Strathclyde, John Anderson Building,
107 Rottenrow, Glasgow G4 0NG, UK.
+44 141 548 2325, benjamin.hourahine at strath.ac.uk
2013/4 THE Awards Entrepreneurial University of the Year
2012/13 THE Awards UK University of the Year
The University of Strathclyde is a charitable body,
registered in Scotland, number SC015263
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.zfn.uni-bremen.de/pipermail/dftb-plus-user/attachments/20170316/6e122992/attachment.htm>
More information about the DFTB-Plus-User
mailing list