.. index:: GPAW .. _GPAW: GPAW ==== Description ----------- GPAW is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW) method and the atomic simulation environment (ASE). User instructions ----------------- GPAW is available via the modules system. To add it to your environment run: .. code-block:: bash $ module load gpaw/1.2.0 This also sets the GPAW_SETUP_PATH environment variable to point to the 0.9.2 version of the gpaw set of atomic data files. For usage instructions see the extensive `GPAW documentation `_. Source ------ https://wiki.fysik.dtu.dk/gpaw/install.html#getting-the-source-code License ------- GNU General Public License v3 Admin notes ----------- First I modified customize.py to include the following:: compiler = 'icc' libraries = ['mkl_intel_lp64', 'mkl_core', 'mkl_sequential', 'xc'] Then it was compiled and installed with: .. code-block:: bash module load python/2.7.13 ase intel mkl openmpi libxc fftw python setup.py install --prefix=/common/debian/9.1/MPI/intel/2017.4/openmpi/2.1/gpaw/gpaw-1.2.0 Note this was done under the builder account on ramsay after first creating the target directory and giving it ownership, which could be taken back once complete. The atomic data files were downloaded with the following once the bare module had been generated .. code-block:: bash gpaw gpaw install-data /common/debian/9.1/MPI/intel/2017.4/openmpi/2.1/gpaw/gpaw-1.2.0/gpaw-setups To get the environment variable to point to this directory the following was set for the module template:: cmth_std_module() prereq('ase', 'mkl', 'numpy', 'scipy', 'libxc', 'fftw') -- This is an unfortunately hacky way to set the gpaw-setups directory... local gpsdir = pathJoin(get_pkg_root(), 'gpaw-setups') local lfs = require("lfs") for filename in lfs.dir(gpsdir) do -- This cycles through the contents of this directory and saves the last item if filename ~= "." and filename ~= ".." then gpsetups = filename end end setenv('GPAW_SETUP_PATH', pathJoin(gpsdir, gpsetups)) This is maybe not the nicest way to do it, but given that any future installs will most likely only have the most recent set of atomic data files there shouldn't be any issue.