Repository navigation
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.
For every tracked cluster species
| Symbol | Meaning |
|---|---|
| concentration of species |
|
| cascade source | |
| flux of the elementary reaction |
|
| stoichiometric coefficient of reaction |
|
| 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 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
-
$\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
Each edge belongs to exactly one of ten abstract classes.
| # | Edge class | Action |
|---|---|---|
| 1 | GROWTH |
same-polarity monomer absorption, |
| 2 | SHRINKAGE |
opposite-polarity monomer impingement, |
| 3 | DISSOCIATION |
thermal monomer emission, |
| 4 | RECOMBINATION |
cross-polarity monomer annihilation |
| 5 | ANNIHILATION |
cross-polarity binary (cluster-cluster) hyperedge |
| 6 | INTER_POPULATION |
|
| 7 | SOLUTE_TRAPPING |
trapping and detrapping, |
| 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
| 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.
Two independent reductions keep the system tractable at engineering doses.
| Case | Cascade | Treatment | Number of equations |
|---|---|---|---|
| Case 1 | fusion | the helium content of a cavity class is replaced by its mean field | |
| Case 2 | fission | the loading decouples into a scalar inventory |
Sizes up to
shape_function |
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.
- 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.
Using the code
The model
Project
Links