WBM Model (Wheeler-Boettinger-McFadden)

Overview

The WBM model is designed for dilute alloy solidification. It couples phase field evolution with solute diffusion using a mixture rule for free energy.

Reference: Wheeler, Boettinger, McFadden, Phys. Rev. A 45, 7424 (1992)

Mathematical Formulation

Total Free Energy

\[F = \int \left[ f(\phi, c, T) + \frac{\kappa}{2} |\nabla\phi|^2 \right] dV\]

Bulk Free Energy (Mixture Rule)

\[f = h(\phi) f_S(c, T) + (1 - h(\phi)) f_L(c, T) + W g(\phi)\]

Phase Field Equation

\[\frac{\partial \phi}{\partial t} = M_\phi \left[ \kappa \nabla^2 \phi - h'(\phi)(f_S - f_L) - W g'(\phi) \right]\]

Concentration Equation

\[\frac{\partial c}{\partial t} = \nabla \cdot \left[ D(\phi) \nabla c \right]\]

where diffusivity interpolates between phases:

\[D(\phi) = h(\phi) D_S + (1 - h(\phi)) D_L\]

Quick Example

Basic Usage

using PhaseFields

# Create model
model = WBMModel(
    M_φ = 1.0,      # Phase field mobility
    κ = 1.0,        # Gradient coefficient
    W = 1.0,        # Barrier height
    D_s = 1e-13,    # Solid diffusivity [m²/s]
    D_l = 1e-9      # Liquid diffusivity [m²/s]
)

# Free energies (parabolic for testing)
f_s = ParabolicFreeEnergy(A=1.0, c_eq=0.2)
f_l = ParabolicFreeEnergy(A=1.0, c_eq=0.8)

# Compute driving force
φ = 0.5
c = 0.5
Δf = wbm_driving_force(f_s, f_l, c)

# Interpolated diffusivity
D = wbm_diffusivity(model, φ)

Interface Properties

# Interface width (from κ and W)
W_int = wbm_interface_width(model)

# Interface energy
σ = wbm_interface_energy(model)

With CALPHAD

using PhaseFields
using OpenCALPHAD

db = read_tdb("AgCu.TDB")
T = 1000.0

model, f_s, f_l = create_calphad_wbm_model(db, T, "FCC_A1", "LIQUID")

API Reference

PhaseFields.WBMModelType
WBMModel

Wheeler-Boettinger-McFadden model for binary alloy solidification.

The WBM model uses a single concentration field with phase-dependent free energy: f(φ,c) = h(φ)·fS(c) + (1-h(φ))·fL(c) + W·g(φ)

Evolution equations:

Phase field:   ∂φ/∂t = M_φ[κ∇²φ - h'(φ)(f_S - f_L) - W·g'(φ)]
Concentration: ∂c/∂t = ∇·[D(φ)·∇c]

Fields

  • M_φ::Float64: Phase field mobility [m³/(J·s)]
  • κ::Float64: Gradient energy coefficient [J/m]
  • W::Float64: Barrier height [J/m³]
  • D_s::Float64: Solid diffusivity [m²/s]
  • D_l::Float64: Liquid diffusivity [m²/s]

Example

model = WBMModel(M_φ=1.0, κ=1.0, W=1.0, D_s=1e-13, D_l=1e-9)

Comparison with KKS

  • WBM: Single concentration field, c = cS = cL at interface (simpler but interface-width dependent)
  • KKS: Separate phase concentrations with equal chemical potential (thermodynamically consistent)

Reference

Wheeler, Boettinger, McFadden, Phys. Rev. A 45, 7424 (1992)

source
PhaseFields.wbm_bulk_free_energyFunction
wbm_bulk_free_energy(f_s, f_l, φ, c, W)

Compute the bulk free energy density for WBM model.

f(φ,c) = h(φ)·f_S(c) + (1-h(φ))·f_L(c) + W·g(φ)

Arguments

  • f_s: Solid phase free energy function
  • f_l: Liquid phase free energy function
  • φ: Phase field value (0=liquid, 1=solid)
  • c: Concentration
  • W: Barrier height [J/m³]

Returns

  • Bulk free energy density [J/m³]
source
PhaseFields.wbm_chemical_potentialFunction
wbm_chemical_potential(f_s, f_l, φ, c)

Compute the chemical potential for WBM model.

μ = ∂f/∂c = h(φ)·μ_S(c) + (1-h(φ))·μ_L(c)

Arguments

  • f_s: Solid phase free energy function
  • f_l: Liquid phase free energy function
  • φ: Phase field value
  • c: Concentration

Returns

  • Chemical potential [J/mol]
source
PhaseFields.wbm_driving_forceFunction
wbm_driving_force(f_s, f_l, φ, c, W)

Compute the phase field driving force for WBM model.

∂f/∂φ = h'(φ)·(f_S(c) - f_L(c)) + W·g'(φ)

Arguments

  • f_s: Solid phase free energy function
  • f_l: Liquid phase free energy function
  • φ: Phase field value
  • c: Concentration
  • W: Barrier height [J/m³]

Returns

  • Driving force ∂f/∂φ [J/m³]
source
PhaseFields.wbm_phase_rhsFunction
wbm_phase_rhs(model, φ, ∇²φ, c, f_s, f_l)

Compute the right-hand side of the WBM phase field equation.

∂φ/∂t = M_φ[κ∇²φ - h'(φ)(f_S - f_L) - W·g'(φ)]
      = M_φ[κ∇²φ - ∂f/∂φ]

Arguments

  • model: WBMModel parameters
  • φ: Phase field value
  • ∇²φ: Laplacian of phase field
  • c: Concentration
  • f_s: Solid phase free energy function
  • f_l: Liquid phase free energy function

Returns

  • Time derivative ∂φ/∂t
source
PhaseFields.wbm_concentration_rhsFunction
wbm_concentration_rhs(model, φ, ∇²c)

Compute the right-hand side of the WBM concentration equation (simplified form).

∂c/∂t = ∇·[D(φ)·∇c] ≈ D(φ)·∇²c  (for slowly varying D)

Arguments

  • model: WBMModel parameters
  • φ: Phase field value (for diffusivity interpolation)
  • ∇²c: Laplacian of concentration

Returns

  • Time derivative ∂c/∂t
source
PhaseFields.wbm_diffusivityFunction
wbm_diffusivity(model, φ)

Compute effective diffusivity using interpolation.

D(φ) = h(φ)·D_s + (1-h(φ))·D_l

Returns

  • Effective diffusivity at this phase field value [m²/s]
source
PhaseFields.wbm_interface_widthFunction
wbm_interface_width(model)

Estimate the equilibrium interface width from model parameters.

δ ≈ √(κ/W)

Reference

Wheeler 1992, Eq. 32: δ = ε√(2/W), where κ = ε²/2

source
PhaseFields.wbm_interface_energyFunction
wbm_interface_energy(model)

Estimate the interface energy from model parameters.

σ ≈ √(κ·W) / (6√2)

Reference

Wheeler 1992, Eq. 28: σ = ε√W / (6√2), where κ = ε²/2

source

See Also