This article is focus on the compile the PPM library on widows, using Intel Fortran compiler.
The acronym PPM stands for Parallel Particle Mesh library. PPM is a software layer between the Message Passing Interface (MPI) and codes for simulations of physical systems using hybrid particle-mesh methods. The library is developed based on a unifying formulation for the simulations of discrete and continuous systems using particles. In this formulation the well known grid-free character of the method is relaxed by the introduction of a mesh for the reinitialization of the particles, the computation of the field equations, and the discretization of differential operators.
The wiki website is : http://chaton.inf.ethz.ch/ppm/index.php/Main_Page.
2.Libraries used in PPM library.
The PPM library used four libraries:MPI, fftw, metis,vizing. Before compile PPM library, the above four libraries needed to be compiled.
3.1 compile MPI library:
The MPICH2 is used as MPI library, which can be downloaded from the website.http://www.mcs.anl.gov/research/projects/mpich2/ install the MPICH then the MPI library is installed.
3.2 metis library:
metis library is the demoain decomposssion library. the source file can be download at http://glaros.dtc.umn.edu/gkhome/metis/metis/download The metis install introduction is based on linux, for windows. The Microsoft visual studio is used to compile the metis library.
(1) Create a static library in MS
(2) " #define __VC__" at the first line of "metis.h". Then the libaray will use rand instead of srand48 and drand48 function.
(3) comment the word "extern "c" " in file "balance.c", this is becuase "extern "c" " is the keyword in c++, there is no "extern "c"" in c standard.
(4) make sure that the run time library is "multi threaded", by default the MS us " multi threaded DLL"
3.2 vizing library:
the vizing library is called by PPM library for neighboring communication. download the vizing library. and create the static library as the metis library.
(1) make sure that the run time library is "multi threaded", by default the MS us " multi threaded DLL"