lp:~nickpapior/libgridxc/reshape

Created by Nick Papior and last modified
Get this branch:
bzr branch lp:~nickpapior/libgridxc/reshape
Only Nick Papior can upload to this branch. If you are Nick Papior please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Nick Papior
Project:
libGridXC
Status:
Merged

Recent revisions

32. By Nick Papior

Removed all references to reshape for large arrays

The RESHAPE intrinsic will in many cases create a temporary
array to ensure that the array is consecutive in memory, and
then perform the copy. However, when dealing with large arrays
this becomes very heavy on memory and it is better to force a linear
copy on the arrays.
To relieve this a new module is added which implements two routines:

 array_copy (for copying data)
 array_add (for adding data)

both implements different dimensions such that one may go from:

  1D -> 4D
  4D -> 1D

which is very convenient in the present code due to buffer arrays in
MPI calls.

Secondly, two calls to MPI_AllGather was adding an unnecessary
buffer for recieving. However, when memory is consecutive there is
no need to use a buffer array, we simply pass, by reference the first
memory segment and MPI treats it as a consecutive segment.

The above changes has been tested on test4 with the same result.

This should fix lp:1665294

31. By Nick Papior

Fixed compilation without LibXC

In xcmod the dummy function: process_libxc_spec had an
erroneous call to array specs. This has been fixed.

In gridxc the setXC_libxc_ids was not wrapped in a
  ifdef LIBXC
pre-processor statement. This is now fixed.

30. By Alberto Garcia

Enhance the libxc interface

The "setxc" suite has been extended:

- A new routine setxc_libxc_ids provides a simpler interface to setxc
  when the libxc codes are known. For example:

  call setxc_libxc_ids(2,[101, 130])

  sets up PBE exchange and correlation.

- New extended "author" string codes for libxc functionals of the form

  LIBXC-NNNN-SYMBOLIC_NAME

  where the symbolic name is optional if NNNN is a valid libxc code,
  or is used to determine the code if NNNN is zero. So:

  LIBXC-0101
  LIBXC-0000-GGA_X_PBE

  are valid specifications for PBE exchange.

  The 'setxc' internal structures hold the actual libxc code in the
  numeric field.

29. By Alberto Garcia

Make 'comm' argument mandatory in MPI version

This change will trigger an error if a serial version
of the library is used in a MPI program, or viceversa.

Update Testers/makefile to discover whether a serial
or parallel version of the library is used.

modified:
  Testers/makefile
  src/gridxc_config.F90

28. By Alberto Garcia

Make the building system more robust and streamlined

VPATH mechanism
LIBXC support
MPI support

removed:
  extra/lib-arch.mpi.make
  extra/serial-lib-arch.make
  gridxc.mk
added:
  extra/fortran.mk
  extra/libxc.mk
  src/config.sh
  src/gridxc.mk.in
renamed:
  src/Testers/ => Testers/
modified:
  00_README
  Testers/makefile
  src/MPI_instr/Makefile
  src/MPI_instr/mpi_instr.f90
  src/gridxc_config.F90
  src/ldaxc.F
  src/makefile

27. By Alberto Garcia

Fix inconsistency in libxc interface for combined functionals

This fixes bug lp:1587887

26. By Alberto Garcia

Apply minimum-density fix for nc case

Thanks to Ramón Cuadrado for the fix in ggaxc.F

25. By Alberto Garcia

Fix MPI issue of redundant interfaces

An obscure problem with ambiguous generic interfaces has been solved
by using a new file 'mpi__include' which exports only a reduced set
of mpi symbols.

24. By Alberto Garcia

Update building mechanism

- New subdirectory 'src'.
- Simple 'install' target for local installation.
- Updated README file.
- New gridxc.mk symbol file.

23. By Alberto Garcia

Update license file

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