Parallel multiphase field simulations with OpenPhase

Autor: O. Shchyglo, Ingo Steinbach, Reza Darvishi Kamachali, Alexander Monas, Marvin Tegeler, Godehard Sutmann
Rok vydání: 2017
Předmět:
Zdroj: Computer Physics Communications. 215:173-187
ISSN: 0010-4655
DOI: 10.1016/j.cpc.2017.01.023
Popis: The open-source software project OpenPhase allows the three-dimensional simulation of microstructural evolution using the multiphase field method. The core modules of OpenPhase and their implementation as well as their parallelization for a distributed-memory setting are presented. Especially communication and load-balancing strategies are discussed. Synchronization points are avoided by an increased halo-size, i.e. additional layers of ghost cells, which allow multiple stencil operations without data exchange. Load-balancing is considered via graph-partitioning and sub-domain decomposition. Results are presented for performance benchmarks as well as for a variety of applications, e.g. grain growth in polycrystalline materials , including a large number of phase fields as well as Mg–Al alloy solidification. Program summary Program Title: OpenPhase Program Files doi: http://dx.doi.org/10.17632/2mnv2fvkkk.1 Licensing provisions: GPLv3 Programming language: C++ Nature of problem: OpenPhase[1] allows the simulation of microstructure evolution during materials processing using the multiphase field method. In order to allow an arbitrary number of phase fields active parameter tracking is used, which can cause load imbalances in parallel computations. Solution method: OpenPhase solves the phase field equations using an explicit finite difference scheme. The parallel version of OpenPhase provides load-balancing using over-decomposition of the computational domain and graph-partitioning. Adaptive sub-domain sizes are used to minimize the computational overhead of the over-decomposition, while allowing appropriate load-balance. Additional comments including Restrictions and Unusual features: The distributed-memory parallelism in OpenPhase uses MPI. Shared-memory parallelism is implemented using OpenMP. The library uses C++11 features and therefore requires GCC version 4.7 or higher. [1] www.openphase.de
Databáze: OpenAIRE