SymPhas: A modular API for phase-field modeling using compile-time symbolic algebra
Autor: | Steven A. Silber |
---|---|
Jazyk: | angličtina |
Rok vydání: | 2021 |
Předmět: | |
Zdroj: | Electronic Thesis and Dissertation Repository Steven A. Silber |
Popis: | The phase-field method is a common approach to qualitative analysis of phase transitions. It allows visualizing the time evolution of a phase transition, providing valuable insight into the underlying microstructure and the dynamical processes that take place. Although the approach is applied in a diverse range of fields, from metal-forming to cardiac modelling, there are a limited number of software tools available that allow simulating any phase-field problem and that are highly accessible. To address this, a new open source API and software package called SymPhas is developed for simulating phase-field and phase-field crystal in 1-, 2- and 3-dimensions. Phase-field models with an arbitrary number of equations of motion may be defined, as well as systems that can be formulated field-theoretically, including reaction-diffusion systems. Moreover, without changing the phase-field problem definition, a solution can be found by multiple different solvers. This is accomplished with a compile-time symbolic algebra library that formulates and allows manipulating mathematical expressions at compile-time, enabling any set of equations of motion to be transformed into a form that an implemented numerical solver can use in computing the time evolution of the phase-field. The compile-time aspect means that this construct can be made highly run-time optimal. To this end, SymPhas also emphasizes high-performance capabilities via template meta-programming and parallelization. The design is based on template meta-programming with a modular approach to facilitate community development and maximize program robustness. Several test cases are developed, including conserved and non-conserved multi-phase-field systems as well as a phase-field crystal model, which are all presented with the respective implementations. The results are generated using the semi-implicit Fourier spectral solver provided with SymPhas. SymPhas is written in C/C++ and has been tested in Linux and Windows environments. |
Databáze: | OpenAIRE |
Externí odkaz: |