Rémi Delaporte-Mathurin1,2, James Dark2, Ian Wojtowicz3, Jørgen S. Dokken4
and the FESTIM community
1NeutroGen Technologies 2MIT Plasma Science and Fusion Center 3University of Minnesota 4Simula Research Laboratory
4th RCM, CRP Hydrogen Permeation in Fusion-relevant Materials | IAEA, Vienna | 28 October 2026
One framework for solids, liquids, gases and the interfaces between them
mobile hydrogen: diffusion, drift, sources
one equation per species
import festim as F
model = F.HydrogenTransportProblem()
model.mesh = F.Mesh1D(np.linspace(0, 1e-3, 1001))
steel = F.Material(D_0=1e-7, E_D=0.2)
bulk = F.VolumeSubdomain1D(1, borders=[0, 1e-3], material=steel)
left = F.SurfaceSubdomain1D(1, x=0)
right = F.SurfaceSubdomain1D(2, x=1e-3)
model.subdomains = [bulk, left, right]
T = F.Species("T")
model.species = [T]
model.temperature = 600
model.boundary_conditions = [
F.FixedConcentrationBC(left, value=1e20, species=T),
F.FixedConcentrationBC(right, value=0, species=T),
]
model.exports = [F.SurfaceFlux(field=T, surface=right)]
model.initialise()
model.run()Atomistic modelling
Each trap energy gives its own TDS peak
Ion- and plasma-driven
Retention in an ITER divertor monoblock
Gas-driven permeation
Tritium permeator probe in a flowing liquid
Retention
Automated fitting of trap parameters to TDS
Retention: microstructure
Hydrogen in a polycrystalline microstructure
Neutron-irradiated materials
Self-damaged W, 0 to 2.5 dpa: FESTIM vs TDS
HISP, an open-source workflow built on FESTIM, with the ITER Organization: how much tritium stays in the wall, and how well can we get it out?
■ tungsten ■ boron co-deposit
HISP wall bins, from the open data
Plasma code outputs
fluxes, heat loads
Wall split in bins
first wall + divertor
1D FESTIM model
per bin, W or B
2-week DT scenarios
baking, GDC, DD
→
→
→
OpenMC: tritium source
OpenFOAM: velocity
FESTIM: tritium
Neutronics and CFD fields passed straight into FESTIM, no file conversion
ARC breeding blanket: ~243 mg tritium inventory | Dark, Sircar, Bae, Dokken & Delaporte-Mathurin, arXiv:2608.05398
And up to the fuel cycle: FESTIM components plug into PathSim system models
NEW
Permeation rigs, purged gaps, gloveboxes: a wall feeding a gas volume whose pressure feeds back on the wall.
Two membranes with a pumped gap. Pump on: gap pressure 25 Pa → 0, hydrogen reaching the second membrane down ~5 orders of magnitude.
NEW
Subdomains can now be one dimension lower than the mesh: grain boundaries, thin films, barrier coatings.
Here: hydrogen reaches depth through the boundary network long before the bulk front arrives.
Microstructure effects on retention and permeation, without meshing every boundary in 3D
Much of this built by FESTIM Fellow Ian Wojtowicz (U. Minnesota)
Can be used to simulate trapping at interfaces!
One grain boundary as a 1D manifold, no cells of its own: 4.5× the flux through the top of the square
79 Voronoi grains, DGB = 1000 Dgrain: hydrogen runs ahead along the boundaries
Both run in the browser, nothing to install: festim-workshop.readthedocs.io
NEW
Hydrogen does not only follow its own gradient: it drifts with temperature, electric potential, stress, and flow.
Soret (thermodiffusion)
Electromigration
Stress-assisted diffusion
Advection
Long requested by users. Each drift is one more term in the weak form, so it works with multi-material, manifolds, enclosures and coupled heat transfer.
One defect, several hydrogen atoms, each level with its own binding energy.
Each level is a species, linked by reactions. Works for mixed isotopes in the same trap too.
Binding energy per occupancy level: straight from atomistic modelling
H. Yang et al., in preparation
Every case is a runnable script. The report rebuilds from them, in public.
BACKUP
ClLiF salt, 14 MeV D-T neutrons
TBR = 2.4×10-3 per source neutron
2D FESTIM: calibrated on 4 runs, predicts 2 withheld runs
Salt / Inconel interface far from LTE: Da < 0.02
87 to 95% of outer-vessel tritium (runs 3, 4) was bred in earlier runs
R. Delaporte-Mathurin et al., Nucl. Fusion 66 (2026) 076046 | H. Yang et al., preprint (2026) | data: github.com/LIBRA-project
30+ contributors
30+ institutions
8k forum views / month
Apache 2.0
NumFOCUS affiliated
Interactive tutorials, nothing to install: festim-workshop.readthedocs.io
conda install -c conda-forge festim | Monthly dev meetings, open to all | Discourse and Slack
FESTIM, TMAP8, TESSIM-X: interfaces modelled by local thermodynamic equilibrium (LTE)
Sieverts / Sieverts (metal / metal)
Sieverts / Henry (metal / salt)
Three hidden assumptions:
A1 fast interfacial equilibration
A2 a single exchange pathway
A3 carrier species known on each side
Motivated by W/Cu (DFT + rate equations): under a net flux, the interface steady state is not equilibrium
Y. Silva-Solís, J. Denis, E. A. Hodille, Y. Ferro, Phys. Rev. Mater. 10 (2026) 045404
A2 and A3 fail at metal / molten salt interfaces
and they matter more than A1
one reversible, mass-action rate per channel
detailed balance: same data as LTE
LTE = fast-kinetics limit of a single channel
Only new input: the magnitude of k+
bulk resistance over interface resistance
Metal / metal with Da ≫ 1: LTE is a safe approximation
R: 2 H ⇄ H2 quadratic
F: H + F ⇄ HF linear
fluorine activity set by the salt redox state
branching ratio, kinetic
apparent exponent, 1 to 2
Near B ≈ 1 no algebraic interface law exists, however fast the kinetics
Same metal, same salt: the exponent sits anywhere between 0.5 and 1
A measured exponent reflects the salt redox state, not an intrinsic salt property
R. Delaporte-Mathurin & J. Dark, When chemical potential continuity fails: kinetic interface models for hydrogen isotope transport, arXiv:2608.26231
30 tungsten diffusivities in HTM: which one do you use?
470+
properties
49
materials
160+
sources
D, S, permeability, surface rates; each traceable to its paper. Python API, dashboard, JSON release.
Overhaul planned
FAIR
persistent IDs, open schema, rich metadata
Transparent
raw data and fitting choices kept with every value
Open
community contributions, reviewed in public
Beyond Arrhenius
trap energies, damage-induced trap densities
Lesson learnt: literature reviews carry typos and propagate errors
BACKUP
Ag solubility: a 2020 review is >100× below the original paper
CuCrZr diffusivity: the ITER fit misses the data it cites
Making mistakes in a review: easy. Catching them in peer review: almost impossible.
From review
BACKUP
Review #1: H solubility in 316L steel
Review #2, citing review #1
ES in #1
13.1
kJ/mol
→
ES in #2
11.7
kJ/mol
Same story in HTM for V alloys, Incoloy, Li, LiPb, steels... Every value must be traced back to the original paper.
Once printed, an error is permanent and gets copied
BACKUP
Unit conversion errors
→
Keep original values and units; convert automatically
Second-hand references
→
Only data from the original paper, with its DOI
Fitting errors
→
Publish the raw data points, not only D0 and ED
Missing context
→
Isotope, T range, material state, pressure exponent, redox
Errors fixed in print forever
→
Open, versioned data that can be corrected
What the HTM overhaul builds in, and what any data effort should aim for
Questions?
festim.readthedocs.io | festim-workshop.readthedocs.io
Try it in your browser: the workshop tutorials run on Binder, no install
Fellowship: festim.readthedocs.io/en/latest/fellowship.html
Interface models: arXiv:2608.26231
Open Source Software for Fusion Energy
Madison, Wisconsin, USA
Call for proposals closes
11 Nov 2026
Early-bird tickets
17 Dec 2026
Hands-on tutorials, talks, posters, lightning talks, Meet the Maintainer
Travel grants available
OSSFE 2026, Munich
120+
attendees
30+
countries
12
tutorials
ossfe.org | submit at cfp.ossfe.org