1. 30 May, 2017 1 commit
    • Andreas Marek's avatar
      Rename of "solve" method to "eigenvectors" · 0bbb7437
      Andreas Marek authored
      The public "solve" method has been renamed "eigenvectors" since it
      computes the eigenvalues and (at least parts of) the eigenvectors
      
      Another routine "eigenvalues" will just compute the eigenvalues
      0bbb7437
  2. 22 May, 2017 1 commit
  3. 19 May, 2017 2 commits
  4. 16 May, 2017 2 commits
    • Lorenz Huedepohl's avatar
      Adapt legacy interface to new API · ac061bca
      Lorenz Huedepohl authored
      The legacy API is has been (internally) ported to use the new interface.
      The intent is that users of the legacy API do not have to change their
      codes.
      
      Next step is to completely adapt the .gitlab-ci.yml file
      ac061bca
    • Lorenz Huedepohl's avatar
      Working version of ELPA with new API · 3e42d4be
      Lorenz Huedepohl authored
      Still missing is the compatibility layer, currently it only compiles
      when configure is called with
      
        --disable-legacy
      
      Also, a more general solution to parameter passing via environment
      variables would be nice.
      3e42d4be
  5. 28 Apr, 2017 1 commit
  6. 20 Apr, 2017 1 commit
  7. 19 Apr, 2017 1 commit
    • Andreas Marek's avatar
      Fix errors in tests for new interface · a953004b
      Andreas Marek authored
      Actually, the complex cases have not been checked so far.
      Furthermore, there has been an inconsistency between setting
      
      set("gpu",1)
      
      and *NOT* setting a GPU kernel via the set mechanism. Then, the
      default kernel (which is *NOT* GPU) has been used
      a953004b
  8. 10 Apr, 2017 1 commit
  9. 08 Apr, 2017 1 commit
  10. 07 Apr, 2017 2 commits
  11. 04 Apr, 2017 1 commit
  12. 03 Apr, 2017 2 commits
    • Lorenz Huedepohl's avatar
      Initial version of new ELPA API · f91c0b4b
      Lorenz Huedepohl authored
      This attempt at a new, more flexible API for ELPA should hopefully
      result in less ABI/API breaking changes in the future.
      
      The new API features a generic key/value system for options that can be
      extended without changing any exported symbols or function signatures,
      so that new, optional features do not influence existing usage of ELPA.
      
      We hope this makes life easier for users of ELPA - at least in the long
      run when they migrated to this newest of ABI changes :)
      
      Example usage (explicit documentation to be done in a future commit):
      
         if (elpa_init(20170403) /= ELPA_OK) then
           error stop "ELPA API version not supported"
         endif
      
         e = elpa_create(na, nev, na_rows, na_cols, nblk, mpi_comm_world, my_prow, my_pcol, success)
      
         call e%set("solver", ELPA_SOLVER_2STAGE)
         call e%set("real_kernel", ELPA_2STAGE_REAL_GENERIC)
      
         call e%solve(a, ev, z, success)
      
         call e%destroy()
      
         call elpa_uninit()
      f91c0b4b
    • Lorenz Huedepohl's avatar
      Improve crazy assert macro · 4de50074
      Lorenz Huedepohl authored
      4de50074
  13. 16 Feb, 2017 1 commit
  14. 31 Jan, 2017 1 commit
  15. 16 Jan, 2017 1 commit
  16. 11 Nov, 2016 1 commit
  17. 01 Nov, 2016 1 commit
  18. 18 Oct, 2016 1 commit
  19. 11 Oct, 2016 1 commit
  20. 09 Aug, 2016 1 commit
  21. 02 Jul, 2016 3 commits
  22. 13 May, 2016 1 commit
  23. 25 Apr, 2016 1 commit
  24. 18 Mar, 2016 1 commit
    • Andreas Marek's avatar
      Allow ELPA to be build with single and double precision symbols in one · 647aa5a8
      Andreas Marek authored
      library
      
      It the configure option "--enable-single-precision" is specified,
      ELPA will also be build for single precision usage. The double precision
      and single precision will be available at the same time with names
      "solve_evp_real_1stage_double" or "solve_evp_real_1stage_single" and
      so on...
      
      This change immplied some major refactoring of the ELPA code:
      1.) functions/procedures had to be renamed with suffix "_double"
      
      2.) If necessary the same functions have to be available with suffix
      "_single"
      
      3.) Variable kind definitions have to be consistent with the
      intented use
      
      To avoid uneccessary code duplication this is done (most of the time)
      with preprocessor string substitution.
      
      The documentation has been updated.
      
      NOT SUPPORTED are at the moment:
      
      - single precision usage of ELPA2 with kernels, others than "generic"
        and "generic_simple"
      
      - single precision usage of GPU
      647aa5a8
  25. 04 Mar, 2016 1 commit
  26. 26 Feb, 2016 2 commits
  27. 24 Feb, 2016 3 commits
    • Andreas Marek's avatar
      Add migration notice · 31a03aa2
      Andreas Marek authored
      31a03aa2
    • Andreas Marek's avatar
      Template for print messages of test programs · 296e4f48
      Andreas Marek authored
      The test programs include the same template now, the
      printed messages are thus unified
      296e4f48
    • Andreas Marek's avatar
      Optional build of ELPA without MPI · 49f119aa
      Andreas Marek authored
      The configure flag "--enable-shared-memory-only" triggers a build
      of ELPA without MPI support:
      
      - all MPI calls are skipped (or overloaded)
      - all calls to scalapack functions are replaced by the corresponding
        lapack calls
      - all calls to blacs are skipped
      
      Using ELPA without MPI gives the same results as using ELPA with 1 MPI
      task!
      
      This version is not yet optimized for performance, here and there some
      unecessary copies are done.
      
      Ths version is intended for users, who do not have MPI in their
      application but still would like to use ELPA on one compute node
      49f119aa
  28. 17 Feb, 2016 1 commit
    • Andreas Marek's avatar
      Single precision support for ELPA2 · 940b8f26
      Andreas Marek authored
      ELPA2 can now be build (as ELPA1) for single precision calculations.
      The ELPA2 kernles which are implemented in assembler, C, or C++ have NOT
      yet been ported.
      
      Thus at the moment only the GENERIC and GENERIC_SIMPLE kernels support
      single precision calculations
      940b8f26
  29. 12 Feb, 2016 1 commit
    • Andreas Marek's avatar
      Single precision support for ELPA2 · 56043bdc
      Andreas Marek authored
      ELPA2 can now be build (as ELPA1) for single precision calculations.
      The ELPA2 kernles which are implemented in assembler, C, or C++ have NOT
      yet been ported.
      
      Thus at the moment only the GENERIC and GENERIC_SIMPLE kernels support
      single precision calculations
      56043bdc
  30. 04 Jan, 2016 1 commit
    • Andreas Marek's avatar
      Started to remove depecrated Fortran variable declerations · 0a05f7d3
      Andreas Marek authored
      The Fortran variable declerations "variable type*[4,8,16]" is non
      Fortran standard. It might cause problem in the future.
      Furthermore, the usage of Fortran and C togehther is more clean
      if variables are defined according to C variable types.
      
      This is done, now for all the test programs
      0a05f7d3
  31. 16 Dec, 2015 1 commit
    • Andreas Marek's avatar
      Add interface to unify C and Fortran names · bb046d1c
      Andreas Marek authored
      This commit does not change the interfaces defined in ELPA_2015.11.001 !
      All functionality is available via the interface names and definitions
      as in ELPA_2015.11.001
      
      But some new interfaces have been added, in order to unfiy the
      references from C and Fortran codes:
      
      - The procedures to create the ELPA (row/column) communicators are now
        available from C _and_ Fortran with the name "get_elpa_communicators".
        The old Fortran name "get_elpa_row_col_comms" and the old C name
        "elpa_get_communicators" are from now on deprecated but still available
      
      - The 1-stage solver routines are available from C _and_ Fortran via
        the names "solve_evp_real_1stage" and "solve_evp_complex_1stage".
        The old Fortran names "solve_evp_real" and "solve_evp_complex" are
        from now on deprecated but still functional.
      
      All documentation (man pages, doxygen, and example test programs) have
      been changed accordingly.
      
      This commit implies a change in the API versioning number, but no
      changes to codes calling ELPA (if they have been already updated to the
      API of ELPA_2015.11.001)
      bb046d1c