====== Installation of CPPAW on MacOS ======
Up to [[:package:installation:installation|Installation]]
FIXME Someone should verify that this description is complete and correct. Then this fixme can be removed.
==== Xcode ====
- MacOS has the compiler "gfortran" and the libraries "LAPACK" and "BLAS" already installed as system libraries. Important is to install "Xcode" from the Appstore. (Sign the license after opening it from the application folder.)
- Check if the "Xcode Command Line Tools" are installed on your system. You can check this [[https://mac.install.guide/commandlinetools/2.html|guide]] on how to do it. The libraries ''BLAS'' and ''LAPACK'' are part of the [[https://developer.apple.com/documentation/accelerate|Accelerate]] framework and are therefore already available on your machine.
==== Homebrew ====
- Homebrew is a package manager for software on MacOS. If it is not already installed, follow the instructions on the [[https://brew.sh/|Homebrew website]] or in this [[https://mac.install.guide/homebrew/index.html|installation guide]]. Note that the Homebrew default installation directory is now ''/opt/homebrew/'' and not part of the default shell ''$PATH'' (compared to ''usr/local'' on Intel Macs). At the end of its installation Homebrew should show two commands to add it to ''$PATH''. Copy and paste them in the command line.
- Install required libraries
brew install gcc
brew install open-mpi
brew install fftw --with-fortran
brew install libxc
brew install grace
brew install --cask xquartz
* gcc: GNU Compiler Collection containing ''gfortran''
* open-mpi: Message Passing Interface (MPI) library for parallel computation
* fftw: library performing fast discrete Fourier transforms
* libxc: library for density functionals. The libxc library has to be built with the parameters "''-DDISABLE_KXC=OFF''" and "''-DDISABLE_LXC=OFF''" as options for cmake.
* grace: plotting tool used for data analysis
* xquartz: support for X11 on MacOS
==== CP-PAW ====
- Unpack the CP-PAW distribution into a directory, whose path will be called ''$PAWDIR'' in the following and is the top directory of the distribution.
- Add the directory ''$PAWDIR/bin/osx_gfortran_accellerate'' to your ''$PATH'' variable in your ~/.zshrc. export PATH=$PATH:$PAWDIR/bin/osx_gfortran_accellerate
- Create a file [[:package:installation:macosparmsfile|"parms.osx_gfortran_accelerate"]] in ''$PAWDIR''.
- Execute in ''$PAWDIR''
autoconf
configure --with-parmfile=parms.osx_gfortran_accelerate
make -j8
''autoconf'' uses the file "configure.ac" to construct the "configure" file. You can skip this step, if a configure file is already present. After the ''configure'' command, you should get some information that ends with ''done!---configuration completed successfully!''. If not, inspect the error messages and fix them. The ''make'' command may take a considerable time, if you set up the code for the first time. You can try to speed the process up using the parallel make with the option "make -j10 all". "-j" specifies the number of processes that may run in parallel. However, be prepared if to restart make up a few times.
- Codesign: When you try to remotely execute unsigned code under macos, it will ask you for permission. This is painful when you run parallel code. Therefore it is advisable to sign the parallel executables. This is a fairly complicated procedure, which you need to look up. (FIXME This section could be expanded.)
- Increase the stack size and the core-dump size by including the following commands in your ''~/.zshrc''
ulimit -s 65532
ulimit -c unlimited
- Restart your console or use ''source ~/.zshrc''.
- Check if the code is available by running ''which paw_fast.x''.