Abstract

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 summaryProgram Title: OpenPhaseProgram Files doi:http://dx.doi.org/10.17632/2mnv2fvkkk.1Licensing provisions: GPLv3Programming 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

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.