lp:~albertog/libgridxc/raw-mpi

Created by Alberto Garcia and last modified
Get this branch:
bzr branch lp:~albertog/libgridxc/raw-mpi
Only Alberto Garcia can upload to this branch. If you are Alberto Garcia please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Alberto Garcia
Project:
libGridXC
Status:
Development

Recent revisions

46. By Alberto Garcia

Remove home-made MPI interfaces

45. By Nick Papior

Update sources to F90 form

(Thanks to Nick Papior)

44. By Alberto Garcia

Remove obsolete code from ldaxc

A superfluous test for relativistic LDA exchange had been
left inadvertently in ldaxc. That test is now done in
cellxc and atomxc, and it uses the appropriate procedures
depending on the libxc version.
The fossil code in ldacx prevented proper compilation with
libxc >= 4.0.0.

43. By Nick Papior

Update interpolation code. Avoid allocation checks

The main change is the update of the interpolation.f90 code which is
now the same as in Siesta.

There were a few changes mainly related to allocation/deallocation of
the spline_t. Now the call to generate_spline_master does not store
the data with an optional flag. When the user only wants the d2yd2x
we can skip some overhead of deallocation + copies which should be
beneficial for large calculations.

Other parts of the code have been modified to use assignments to array
sections instead of to whole (allocatable) arrays. This is simply to
tell the compiler to *not* insert LHS reallocation checks.

[(re)Allocation on assignment is a standard F2003 feature that might
impact performance. See:
https://stackoverflow.com/questions/42140832/automatic-array-allocation-upon-assignment-in-fortran]

42. By Alberto Garcia

Fix allocation size in cellxc

(The bug was harmless, as the size used (nf after a loop) was at least
as large as the right one (nXCfuncs).)

41. By Alberto Garcia

Add support for libXC v4 (bug fix)

(Fixed faulty logic in previous commit)

LibGridXC can now work with recent versions of libXC. An interface change
in v4 regarding the relativistic LDA exchange is now automatically handled
by checking the version number of the library pointed to by the LIBXC_ROOT
variable.

Compatibility spans now versions libXC-2.2.3 to libXC-4.2.3.

40. By Alberto Garcia

Add support for libXC v4

LibGridXC can now work with recent versions of libXC. An interface change
in v4 regarding the relativistic LDA exchange is now automatically handled
by checking the version number of the library pointed to by the LIBXC_ROOT
variable.

Compatibility spans now versions libXC-2.2.3 to libXC-4.2.3.

39. By Alberto Garcia

Improvements to building system. Dual serial/mpi hierarchy

- The 'build.sh' script harnesses the standard makefile to build an
  alternative hierarchy of the form

   ROOT
       gridxc.mk, libxc.mk
       serial/
          ...
       mpi/
          ...

  Each of the 'serial' and 'mpi' subdirectories are complete
  installations of libGridXC. The top-level gridxc.mk defines the
  appropriate LIBS and INCFLAGS variables depending on the setting of
  the WITH_MPI variable, that can be set in client makefiles.

- The auxiliary libxc.mk file is automatically installed.

- A local installation is always done (./lib, ./include)

- Simpler makefile for Testers, using local installation

- The fortran.mk file must include FC_SERIAL and FC_PARALLEL symbols.

38. By Alberto Garcia

Fix variable name in non-libxc version

Due to an oversight, the non-libxc code blocks in atomxc and cellxc
were using a non-existent variable name.

37. By Alberto Garcia

Reduce overhead by instantiating libxc objects outside grid loop

By setting up the libxc objects beforehand and passing them to the
worker routines ldaxc and ggaxc, we save the overhead of instantiating
and deinstatiating them at every grid point.

Note that the VDW subsystem is not affected: it does not use libxc
at all.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:libgridxc
This branch contains Public information 
Everyone can see this information.

Subscribers