Table of Contents
Fetching ...

FreeBird.jl: An Extensible Toolbox for Simulating Interfacial Phase Equilibria

Ray Yang, Junchi Chen, Douglas Thibodeaux, Robert B. Wexler

TL;DR

FreeBird.jl tackles the need for fast, reproducible benchmarking of interfacial phase behavior across atomistic and lattice models. It provides a modular, extensible Julia toolbox that unifies energy evaluation and multiple sampling algorithms (Metropolis MC, Wang-Landau, Nested Sampling, and exact enumeration) within a common data-structure framework. The paper demonstrates cross-method consistency for Lennard-Jones clusters and lattice models, validating FreeBird.jl as a benchmarking platform for interfacial thermodynamics. This work enables rigorous method-to-method comparisons and lays the groundwork for future integration with ML potentials and GPU acceleration to accelerate materials design at interfaces.

Abstract

We present FreeBird, an extensible Julia-based platform for computational studies of phase equilibria at generic interfaces. The package supports a range of system configurations, from atomistic solid surfaces to coarse-grained lattice$-$gas models, with energies evaluated using classical interatomic potentials or lattice Hamiltonians. Both atomistic and lattice systems accommodate single- or multi-component mixtures with flexibly definable surface and lattice geometries. Implemented sampling algorithms include nested sampling, Wang$-$Landau sampling, Metropolis Monte Carlo, and, for tractable lattice systems, exact enumeration. Leveraging Julia's type hierarchies and multiple dispatch, FreeBird provides a modular interface that allows seamless integration of system definitions, energy evaluators, and sampling schemes. Designed for flexibility, extensibility, and performance, FreeBird offers a versatile framework for exploring the thermodynamics of interfacial phenomena.

FreeBird.jl: An Extensible Toolbox for Simulating Interfacial Phase Equilibria

TL;DR

FreeBird.jl tackles the need for fast, reproducible benchmarking of interfacial phase behavior across atomistic and lattice models. It provides a modular, extensible Julia toolbox that unifies energy evaluation and multiple sampling algorithms (Metropolis MC, Wang-Landau, Nested Sampling, and exact enumeration) within a common data-structure framework. The paper demonstrates cross-method consistency for Lennard-Jones clusters and lattice models, validating FreeBird.jl as a benchmarking platform for interfacial thermodynamics. This work enables rigorous method-to-method comparisons and lays the groundwork for future integration with ML potentials and GPU acceleration to accelerate materials design at interfaces.

Abstract

We present FreeBird, an extensible Julia-based platform for computational studies of phase equilibria at generic interfaces. The package supports a range of system configurations, from atomistic solid surfaces to coarse-grained latticegas models, with energies evaluated using classical interatomic potentials or lattice Hamiltonians. Both atomistic and lattice systems accommodate single- or multi-component mixtures with flexibly definable surface and lattice geometries. Implemented sampling algorithms include nested sampling, WangLandau sampling, Metropolis Monte Carlo, and, for tractable lattice systems, exact enumeration. Leveraging Julia's type hierarchies and multiple dispatch, FreeBird provides a modular interface that allows seamless integration of system definitions, energy evaluators, and sampling schemes. Designed for flexibility, extensibility, and performance, FreeBird offers a versatile framework for exploring the thermodynamics of interfacial phenomena.

Paper Structure

This paper contains 30 sections, 5 equations, 9 figures, 1 table.

Figures (9)

  • Figure 1: Schematic overview of the FreeBird.jl data structure. To perform a sampling calculation, the required settings are specified in SamplingParameters. Typically, either a live set or a single initial walker, containing the embedded system description, is used. The system is represented by an AbstractSystem or AbstractLattice, wrapped by an AbstractWalker. Energies are evaluated using an AbstractPotential or AbstractHamiltonian, which is attached to the live set or walker. Optional data output behavior is configured via a DataSavingStrategy.
  • Figure 2: Julia code demonstrating the generation of three AtomWalker objects for systems containing five hydrogen atoms in a cubic box, including visualization, multi-component splitting with partial freezing, and batch wrapping via broadcasting. Some output is truncated.
  • Figure 3: Julia code for constructing a Lennard-Jones potential and combining it with the walkers from Figure \ref{['code:walkers']} to create a live set (LJAtomWalkers). Energies correspond to the initial configurations; output is shown in full.
  • Figure 4: Julia code for constructing a single-component square lattice (sl) and a two-component triangular lattice (ml) with four occupied sites. The two-component system assigns particles [1,2] to the first component and [3,4] to the second.
  • Figure 5: Julia code for constructing a GenericLatticeHamiltonian with specified on-site, nearest-neighbor, and next-nearest-neighbor interaction energies.
  • ...and 4 more figures