Commit f91c0b4b authored by Lorenz Huedepohl's avatar Lorenz Huedepohl
Browse files

Initial version of new ELPA API

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()
parent 5e313282