Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tkphd/ppcproject
RPI CSCI-6360 Parallel Programming & Computing group project
https://github.com/tkphd/ppcproject
grain-growth materials-science mmsp monte-carlo phase-field
Last synced: about 2 months ago
JSON representation
RPI CSCI-6360 Parallel Programming & Computing group project
- Host: GitHub
- URL: https://github.com/tkphd/ppcproject
- Owner: tkphd
- License: gpl-3.0
- Created: 2014-04-08T18:35:46.000Z (over 10 years ago)
- Default Branch: main
- Last Pushed: 2020-06-16T14:59:24.000Z (over 4 years ago)
- Last Synced: 2024-10-11T19:51:29.855Z (3 months ago)
- Topics: grain-growth, materials-science, mmsp, monte-carlo, phase-field
- Language: C++
- Size: 958 KB
- Stars: 2
- Watchers: 3
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
PPCproject
==========RPI CSCI-6360 Parallel Programming & Computing 2014: Group Project
If you wish to contribute to this code, please fork this repository (http://github.com/fifthblackbird/PPCproject) into your GitHub account before cloning.
This is a group project intended to implement POSIX threads and to improve MPI-IO performance in MMSP (http://github.com/mesoscale/mmsp).
The code depends on the Mesoscale Microstructure Simulation Project (MMSP) libraries [1].
The source directory contains code for grain growth simulations using a sparse phase-field model [2] and a Potts Monte Carlo model [3].
Before building this code, download the MMSP source code and create symbolic links to ```MMSP/include``` and ```MMSP/algorithms```.
E.g., if you store MMSP in ~/Downloads/mmsp, run
```
ln -s ~/Downloads/mmsp/include source/include
ln -s ~/Downloads/mmsp/algorithms source/algorithms
```In ```source/```, the Make commands default to the phase-field model:
e.g., ```make``` or ```make parallel``` will build ```graingrowth.out``` or ```parallel_GG.out```, respectively, both of which depend on ```graingrowth.cpp```.To compile the Monte Carlo version, append "mc" to the commands:
e.g., ```make mc``` or ```make parallelmc``` will build ```graingrowth.out``` or ```parallel_MC.out```, respectively, both of which depend on ```graingrowth_MC.cpp```.To build this code on an IBM Blue Gene/Q supercomputer, make sure the IBM xl_r compiler and zlib library are available.
On the Rensselaer Polytechnic Institute BG/Q, AMOS, ```module load xl_r experimental/zlib```.
Then, ```make bgq``` or ```make bgqmc```.The recommended mode for this program is using --nonstop, which will intialize and coarsen a simulation domain.
e.g., use
```
mpirun -np 6 ./parallel_GG.out --nonstop 3 voronoi.000.dat 200 200 4
```
to initialize and save a startup file (```voronoi.000.dat```) and a checkpoint file after 200 steps (```voronoi.200.dat```), using six MPI ranks with 4 pthreads each.
Make sure you have hardware support for 24 threads before running this command!Note that AMOS is big-endian. Most consumer PCs are little-endian.
If you have downloaded a binary data file generated using MMSP on AMOS, ```make wrongendian``` and run it on the file.
Afterwards, you can use standard MMSP utilities (e.g., ```mmsp2vti```) to export a file for visualization.References:
1. J. Gruber and T. Keller. The Mesoscale Microstructure Simulation Project. http://github.com/mesoscale/mmsp
2. I. Steinbach and F. Pezzolla. "A Generalized Field Method for Multiphase Transformations Using Interface Fields."
Physica D 134 (1999) 385-393. DOI: 10.1016/S0167-2789(99)00129-33. S.A. Wright, S.J. Plimpton, T.P. Swiler, R.M. Fye, M.F. Young, and E.A. Holm. "Potts-model grain growth simulations: Parallel algorithms and applications."
SAND Report (1997) 1925.