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 SymPhas for simulations of phase-field, phase-field crystal and reaction-diffusion models, supporting up to three dimensions and an arbitrary number of fields. 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. SymPhas is written in C/CC++ and emphasizes high-performance capabilities via parallelization with OpenMP and the CC++ standard library. 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.
Turn this paper into a lesson
ArcXiv compiles a structured reading guide from this paper's metadata: plain-English importance, contributions, prerequisite concepts, which sections to read first, flashcards, and a quiz. Grounded in the abstract, never invented.