SymPhas --General purpose software for phase-field, phase-field crystal and reaction-diffusion simulations
Abstract
This work develops a new open source API and software package called \textit{SymPhas} for simulations of phase-field, phase-field crystal and reaction-diffusion models, supporting up to three dimensions and an arbitrary number of fields. \textit{SymPhas} delivers two novel program capabilities: 1) User specification of models from the associated dynamical equations in an unconstrained form and 2) extensive support for integrating user-developed discrete-grid-based numerical solvers into the API. The capability to specify general phase-field models is primarily achieved by developing a novel symbolic algebra functionality that can formulate mathematical expressions at compile time, is able to apply rules of symbolic algebra such as distribution, factoring and automatic simplification, and support user-driven expression tree manipulation. A modular design based on the CC++ template meta-programming paradigm is applied to the symbolic algebra library and general API implementation to minimize application runtime and increase the accessibility of the API for third party development. \textit{SymPhas} is written in C/CC++ and emphasizes high-performance capabilities via parallelization with OpenMP and the CC++ standard library. \textit{SymPhas} is equipped with a forward Euler solver and a semi-implicit Fourier spectral solver. Sample implementations and simulations of several phase-field models are presented, generated using the semi-implicit Fourier spectral solver.
Cite
@article{arxiv.2109.02598,
title = {SymPhas --General purpose software for phase-field, phase-field crystal and reaction-diffusion simulations},
author = {Steven A. Silber and Mikko Karttunen},
journal= {arXiv preprint arXiv:2109.02598},
year = {2021}
}