[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-0001.html>


More information about the DFTB-Plus-User mailing list