4.6 Article

SymPhas-General Purpose Software for Phase-Field, Phase-Field Crystal, and Reaction-Diffusion Simulations

Journal

ADVANCED THEORY AND SIMULATIONS
Volume 5, Issue 1, Pages -

Publisher

WILEY-V C H VERLAG GMBH
DOI: 10.1002/adts.202100351

Keywords

application programming interface; generic programming; phase-field modeling; reaction-diffusion modeling; symbolic algebra

Funding

  1. Natural Sciences and Engineering Research Council of Canada (NSERC)
  2. Canada Research Chairs Program
  3. Mitacs

Ask authors/readers for more resources

SymPhas is a new open source API and software package for simulations of phase-field, phase-field crystal, and reaction-diffusion models, supporting multiple dimensions and arbitrary number of fields. It allows user specification of models and integration of user-developed numerical solvers, utilizing symbolic algebra functionality for specifying general phase-field models and modular design for efficiency. The emphasis is on high-performance capabilities through parallelization and equipped with multiple solvers for different applications.
This 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.

Authors

I am an author on this paper
Click your name to claim this paper and add it to your profile.

Reviews

Primary Rating

4.6
Not enough ratings

Secondary Ratings

Novelty
-
Significance
-
Scientific rigor
-
Rate this paper

Recommended

No Data Available
No Data Available