Skip to content

Methodology

Nasr Ghoniem edited this page Oct 3, 2026 · 4 revisions

Methodology

This page summarizes the formulation. The full derivation is in the framework manuscript, in the folder docs/Formulation/cluster_dynamics_framework/ of the repository.

The master equation

For every tracked cluster species $a$ the code integrates

$$\frac{dc_a}{dt} = G_a + \sum_r S_{ar} J_r(c) - D_a c_a$$

Symbol Meaning
$c_a$ concentration of species $a$, as an atomic fraction
$G_a$ cascade source
$J_r$ flux of the elementary reaction $r$
$S_{ar}$ stoichiometric coefficient of reaction $r$ for species $a$
$D_a$ loss rate at fixed sinks: network dislocations, grain boundaries, precipitates

Sizes are atom counts, energies are in eV, and the temperature is in K.

The Reaction Admissibility Graph

The master equation is not written by hand for each material. A material is declared as a Reaction Admissibility Graph (RAG), and the right-hand side is assembled by walking that graph.

A cluster is identified by the four-tuple $\sigma = (\chi, n, p, c)$:

  • $\chi \in \lbrace -1, +1 \rbrace$ is the polarity: vacancy type or interstitial type
  • $n$ is the size
  • $p$ is the population, for example glissile ½⟨111⟩ loops, sessile ⟨100⟩ loops or bulk cavities
  • $c$ is the composition of trapped solutes

The model is the labelled multidigraph $\mathcal{G} = (V, E, \nu, k)$, where $V$ is the set of admissible cluster vertices, $E$ is the set of admissible elementary reactions, $\nu$ is the stoichiometric action of each edge, and $k$ is the rate-kernel library.

The ten edge classes

Each edge belongs to exactly one of ten abstract classes.

# Edge class Action
1 GROWTH same-polarity monomer absorption, $n \to n+1$
2 SHRINKAGE opposite-polarity monomer impingement, $n \to n-1$
3 DISSOCIATION thermal monomer emission, $n \to n-1$
4 RECOMBINATION cross-polarity monomer annihilation
5 ANNIHILATION cross-polarity binary (cluster-cluster) hyperedge
6 INTER_POPULATION $p \to p'$ at fixed size and composition
7 SOLUTE_TRAPPING trapping and detrapping, $c \to c \pm e_s$
8 COALESCENCE same-polarity binary growth
9 SOURCE cascade injection, with no precursor vertex
10 SINK absorption at a fixed sink

Each class carries a fixed stoichiometric contract. Because the sign pattern of $S_{ar}$ is structural, conservation of the signed defect content $q = \chi n$ holds by construction for every intra-host reaction.

Two-layer architecture

Layer Location Content
1, abstract core py_utils/core/, cpp_utils/core/ cluster identifier, edge classes, graph container, graph walker, state layout, reductions
2, material model py_utils/materials/eurofer97/, cpp_utils/materials/eurofer97/ the EUROFER-97 populations, its admissible vertices and edges, and its rate kernels

The core carries no bcc-Fe or EUROFER-97 assumption. The Python graph walker is the executable specification that the production C++ kernel must agree with.

State-space reductions

Two independent reductions keep the system tractable at engineering doses.

Helium-vacancy loading

Case Cascade Treatment Number of equations
Case 1 fusion the helium content of a cavity class is replaced by its mean field $I + 2V + 1$
Case 2 fission the loading decouples into a scalar inventory $I + V + 2$

Logarithmic bin moments

Sizes up to $i_{\rm discrete}$ (and $v_{\rm discrete}$ for vacancies) keep one ODE per size. Larger sizes are grouped into logarithmic bins $\mathcal{B}_k$ that carry $P$ moments each:

$$\mu_k^{(0)} = \sum_{n \in \mathcal{B}_k} c_n, \qquad \mu_k^{(1)} = \sum_{n \in \mathcal{B}_k} n c_n, \qquad \mu_k^{(2)} = \sum_{n \in \mathcal{B}_k} n^2 c_n$$

shape_function $P$ Closure
constant 1 piecewise constant
linear 2 hat function
lognormal 3 log-normal shape

The discrete formulation is recovered exactly when the number of bins is zero.

More detail

  • The Doxygen API reference has a page on each of these subjects, with links to the classes. It is built locally; the Documentation section of the README gives the command.
  • The README describes the cascade source, the transport model, the reaction kernels and the energetics.

Clone this wiki locally