Population balance model

The evolution of the particle size distribution (PSD) is handled by a population balance model (PBM). The PBM discretizes the distribution into size classes. Particle growth is handled through a Eulerian implementation, where the growth rates are converted into fluxes and the frequencies in each size class is governed by the continuity equation, where $n$ is the frequency in size class $i$, $G$ is the growth rate, $R$ is the particle size and $J_{ext}$ is any external fluxes (such as nucleation).

$$ \frac{dn}{dt} + \frac{d(nG)}{dR} = J_{ext} $$

For discretized size classes, this equation is best handled by calculating the growth rate at the bounds of each size class. Then the frequency of size class $i$ is determined by

$$ n_i^{t+1} = n_i^t + \frac{\Delta t}{\Delta R} (G_{i-1} (\text{sgn}(G_{i-1}) n_{i-1} + \text{sgn}(-G_{i-1}) n_i) - G_i (\text{sgn}(G_i) N_i + \text{sgn}(-G_i) N_{i+1})) $$

Characterizing the PSD can be done through moments. Common moments include the zeroth, first and third moments, where the number density, average length and volume can be found.

$$ M_N = \sum{n_i R_i^N} $$

Adaptive time increment

To ensure stability of the model, the time increment must be limited such that at most, only half the number of particles can leave a given size class. The time increment can be determined by just the growth rate.

$$ \Delta t_{max} = \frac{\Delta R}{2} \frac{1}{\max {\left(\biggr\lvert \frac{dR}{dt} \biggr\rvert \right)}} $$

Particles much smaller than the critical radius will have a large negative growth rate. This will result in a very small time increment. To avoid this, a small fraction of precipitates are allowed to dissolve at each time step.

$$ f_{dissolve} = \frac{\sum\limits_{i=0}^{i=i_{max}}{n_i R_i^3}}{\sum\limits_{i=0}^{i=N}{n_i R_i^3}} $$

Then the maximum growth rate will be search through size classes with radius larger than $R_{i_{max}}$.

Adaptive size classes

When modeling the particle size distribution with fixed size classes, an optimal number and size of bins must be chosen. If the size of the bins are small compared to the largest particle size, the time increment will be greatly limited. On the other hand, too large of a bin size can lead to the PSD not being fully captured. In kawin, the bins are automatically adjusted over the course of a simulation to account for variation in the precipitate sizes.

A few parameters are involved:

  • Minimum particle size ($R_{min}$): this represents the lower bound of the smallest size class and is kept constant
  • Maximum particle size ($R_{max}$): this represents the upper bound of the largest size class
  • Initial number of bins ($B_0$): this is the number of size classes upon initialization
  • Minimum number of bins ($B_{min}$)
  • Maximum number of bins ($B_{max}$)

Adjusting the PSD is done in four methods.

  1. Nucleation

    If the size of a nucleate ($R_{nuc}$) is larger than $R_{max}$, then the PSD will be recreated such that $R_{max} = 5R_{nuc}$. The number of bins will be set to $B_0$.

  2. Adding size classes

    If the largest size class has a precipitate density of at least 1 #/m3, then $B_0/4$ bins will be added at the end of the PSD.

  3. Increasing bin size

    After adding size classes, if the number of bins is greater than $B_{max}$, the PSD will be recreated to have $B_{min}$ bins while keeping the same range of size classes.

  4. Decreasing bin size

    During dissolution, if the largest bin ($R_{filled}$) that has a precipitate density of at least 1 #/m3 is smaller than $0.5R_{max}$, then the PSD will be recreated to have $B_{max}$ bins with the range extending from $[R_{min}, R_{filled}]$.

    Dissolution is assumed to occur when the growth rate of all size classes are negative.

When the PSD has to be recreated, it is done by interpolating the distribution density then scaling to conserved the volume fraction.


  1. M. Perez, M. Dumont and D. Acevedo-Reyes, “Implementation of classical nucleation and growth theories for precipitation” Acta Materialia 56 (2008) p. 2119