Files
lammps/src/MAKE

This directory and its sub-directories contain machine Makefiles for
LAMMPS.  The use of machine Makefiles and their settings are discussed
in Section 2 of the manual.

If you are new to LAMMPS, try the Makefile.mpi or Makefile.serial file
in this directory first.  I.e. "make mpi" or "make serial".

Then you can try files in the sub-directories with more options you
may need, or that are specific to a machine you are running on.

If none of the existing files work, you can edit a file in either
directory to create your own customized Makefile.machine.  Put it in
the MINE directory with a new suffix if you want to save it or avoid
conflicts with the Makefiles distributed with LAMMPS.

-----------------------------------

This directory has two generic Makefiles which should work as-is on
many platforms.

Makefile.mpi      assumes MPI is installed on your machine
Makefile.serial   build without MPI for serial execution (single core)

Makefile.mpi builds with the mpicxx wrapper provided with all MPI
installations.  It uses a default compiler.  You can see what it is by
type "mpicxx -v".  Makefile.mpi should work with whatever version of
MPI is installed (OpenMPI, MPICH, vendor, etc).

Makefile.serial builds without MPI, using the GNU g++ compiler.  It
uses the dummy MPI library in src/STUBS.  Use
Options/Makefile.icc_serial for the same thing using the Intel icc
compiler instead of g++.

-----------------------------------

The OPTIONS directory has many Makefiles that are examples of
extending either Makefile.mpi or Makefile.serial to enable use of
different Makefile settings, different compilers, different MPIs, and
all the LAMMPS accelerator packages.

--------

These Makefiles derive from src/MAKE/Makefile.mpi with added settings
to illustrate how they can be added to any Makefile.

Makefile.big           use of -DLAMMPS_BIGBIG setting
Makefile.fastmgpt      optimzations for MGPT package
Makefile.fftw          FFTW support for long-range Coulombics (PPPM)
Makefile.jpeg          JPEG support for dump image
Makefile.png           PNG support for dump image

--------

These Makefiles derive from src/MAKE/Makefile.mpi with added support
for each of the accelerator packages available in LAMMPS.

The INTEL/CPU variants require use of the Intel icc (or icpc) compiler
as the compiler wrapped by mpicxx.  Setting this requires a different
syntax for different MPIs.

The KOKKOS/CUDA variants require use of the NVIDIA nvcc compiler as
the compiler wrapped by mpicxx.  Setting this requires a different
syntax for different MPIs.

Makefile.opt                 OPT package, using default MPI
Makefile.omp                 OPENMP package, using default MPI
Makefile.gpu                 GPU package, using default MPI

Makefile.intel_cpu_intelmpi  INTEL package for CPU with Intel MPI
Makefile.intel_cpu_mpich     INTEL package for CPU with MPICH
Makefile.intel_cpu_openmpi   INTEL package for CPU with OpenMPI
Makefile.intel_coprocessor   INTEL package with Xeon Phi support
Makefile.knl                 INTEL package with KNL support

Makefile.kokkos_cuda_mpich   KOKKOS package with GPU support for MPICH
Makefile.kokkos_cuda_openmpi KOKKOS package with GPU support for OpenMPI
Makefile.kokkos_omp          KOKKOS package with OpenMP support
Makefile.kokkos_phi          KOKKOS package with Xeon Phi support

--------

These Makefiles derive from src/MAKE/Makefile.mpi and
src/MAKE/Makefile.serial to use specific compilers.  This is done by
setting the compiler wrapped by mpicxx (different syntax for different
MPIs).  Or it can be done by using the GNU or Intel compiler and
explicitly linking to the appropriate MPI libraries.

Makefile.g++_mpich           MPICH mpicxx wraps the GNU g++ compiler
Makefile.g++_mpich_link      GNU g++ compiler, linked to MPICH
Makefile.g++_openmpi         OpenMPI mpicxx wraps the GNU g++ compiler
Makefile.g++_openmpi_link    GNU g++ compiler, linked to OpenMPI
Makefile.icc_mpich           MPICH mpicxx wraps the Intel icc compiler
Makefile.icc_mpich_link      Intel icc compiler, linked to MPICH
Makefile.icc_openmpi         OpenMPI mpicxx wraps the Intel icc compiler
Makefile.icc_openmpi_link    Intel icc compiler, linked to OpenMPI
Makefile.pgi_mpich_link      Portland group PGI compiler, linked to MPICH

Makefile.g++_serial          serial build (no MPI) with GNU g++ compiler
Makefile.icc_serial          serial build (no MPI) with Intel icc compiler

------------------------------------

The MACHINE sub-directory has many Makefiles, each of which has been
setup for a specific kind of machine or a specific supercomputer.

Examples include:

Makefile.mac        Apple Macintosh
Makefile.xe6        Cray XE6
Makefile.bgq        IBM BG/Q
Makefile.stampede   U Texas "stampede" machine