lp:~nickpapior/libgridxc/reshape
- Get this branch:
- bzr branch lp:~nickpapior/libgridxc/reshape
Branch merges
- Alberto Garcia: Approve
-
Diff: 1476 lines (+1102/-75)8 files modifiedsrc/array.F90 (+974/-0)
src/gridxc.F90 (+2/-0)
src/makefile (+39/-24)
src/mesh3d.F90 (+46/-35)
src/moreParallelSubs.F90 (+38/-13)
src/sorting.f (+1/-1)
src/xcmod.F90 (+1/-1)
version.info (+1/-1)
Related bugs
Bug #1665294: Temporary arrays on large grids -> seg-fault | Undecided | Fix Released |
Related blueprints
Branch information
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 -> 1Dwhich 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 supportremoved:
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.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp:libgridxc