Abstract

AbstractThis work develops a new open source application programming interface (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 C++ 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/C++ and emphasizes high‐performance capabilities via parallelization with OpenMP and the C++ 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.

Full Text
Published version (Free)

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