license: cc-by-nc-sa-4.0
tags:
- gas-surface-interaction
- normalizing-flow
- real-nvp
- variational-autoencoder
- molecular-dynamics
- piclas
- dsmc
- rarefied-gas-dynamics
- vleo
library_name: piclas
PICLas-ML/GSI - ML Gas-Surface Interaction Models
Machine-learned surface scattering models for PICLas, an open-source 3D particle-based kinetic simulation framework for plasma dynamics and rarefied gas flows.
Models in Repo
This repo contains two model architectures for calculating the scattering of atomic oxygen on an aluminum oxide surface Al₂O₃:
- cRealNVP - a conditional real-valued non-volume-preserving flow, using a detailed-balance loss as a physics constraint
- cVAE - a conditional variational autoencoder
| File | Architecture | Incident Species → Surface → Reflected Species |
|---|---|---|
cRealNVP_MDclassic_O-Al2O3-O.h5 |
Conditional RealNVP (normalizing flow) | O → Al₂O₃ → O |
cVAE_MDclassic_O-Al2O3-O.h5 |
Conditional variational autoencoder | O → Al₂O₃ → O |
File naming convention: <architecture>_<data source>_<species>.h5
- 1st part — model architecture:
cVAEorcRealNVP - 2nd part — source of the non-equilibrium data: MD simulation with a classical potential
- 3rd part — atomic oxygen impacting an aluminum oxide surface; outgoing species is atomic oxygen
Performance comparison:
| cRealNVP | cVAE | |
|---|---|---|
| Accuracy (thermal → 11,000 m/s) | Better overall | Comparable till 10,000 m/s |
| Equilibrium temperature | Converges correctly | Does not converge correctly |
| Sampling speed | Slower | Much faster |
Method
These models were developed as a collaboration within the Collaborative Research Center 1667 ATLAS at the University of Stuttgart. A detailed description of the models and the data is given in arXiv:2606.31928 - Conditional Normalizing Flow for Gas-Surface Scattering from Thermal to Hypersonic Velocities.
Data
Two training data sets are used, both for atomic oxygen impacting an aluminum oxide (Al₂O₃) surface:
- Non-equilibrium data generated from MD simulations
- Equilibrium data generated from Maxwell flux distribution
Non-Equilibrium Data:
- Atomic oxygen impacts on an aluminum oxide surface are simulated with molecular dynamics using classical potentials
- Incident velocity magnitudes: 2,000-10,000 m/s
- Polar angles: 0°-80°
Equlibrium:
- If the gas is in equilibrium with the wall, an incident Maxwell flux must be reflected as the same Maxwell flux
- Maxwell flux samples are added to the training data to cover the equilibrium regime
Model
- In PICLas, scattering is represented through a scattering kernel, i.e., the conditional probability distribution P(v_i → v_r) describing how an incoming velocity transitions to a reflected one.
- To learn this kernel from data, two generative ML models (cVAE and cRealNVP) are trained on the data
Intended use
- Load into PICLas as an ML surrogate GSI scattering model to sample scattered particle velocities
- Valid for: O → Al₂O₃ collisions, from the thermal regime up to 11,000 m/s impact velocity
- Not valid for: other species/materials, conditions far outside the training data, or chemistry beyond what the classical MD potential captures
Usage in PICLas
Example entry in parameter.ini:
Part-Boundary1-SurfaceModel = 0 ! only Scattering: 0
Part-Boundary1-SurfaceModelScattering = 3 ! cVAE: 2, cRealNVP: 3
SurfaceScattering-NumOfMLs = 1
SurfaceScattering-ML1-NumOfBoundaries = 1
SurfaceScattering-ML1-Boundaries = (/1/)
SurfaceScattering-ML1-File = https://huggingface.co/PICLas-ML/GSI/resolve/main/cRealNVP_MDclassic_O-Al2O3-O.h5
The model is downloaded and cached under piclas-ml/gsi/ on first use.
For further information, visit the PICLas documentation.
Citation
If your research leads to a publication, please cite the models using:
@misc{schütte2026conditionalnormalizingflowgassurface,
title={Conditional Normalizing Flow for Gas-Surface Scattering from Thermal to Hypersonic Velocities},
author={Miklas Schütte and Stephen Hocker and Hansjörg Lipp and Johannes Roth and Stefanos Fasoulas and Marcel Pfeiffer},
year={2026},
eprint={2606.31928},
archivePrefix={arXiv},
primaryClass={physics.comp-ph},
url={https://arxiv.org/abs/2606.31928},
}