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_i>-<wall>-<species_r>.h5
<architecture>— model architecture:cVAEorcRealNVP<data source>— source of the non-equilibrium data: MD simulation with a classical potential<species_i>— incident species, e.g.Oatomic oxygen<wall>— wall material:Al2O3aluminum oxide<species_r>— reflected species, e.g.Oatomic 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
The model must be downloaded manually from piclas-ml/gsi/.
In parameter.ini, provide the path to the model file (path/to/filename.h5) for each machine-learning (ML) model that is used.
Example entry in parameter.ini:
! Boundary settings (repeat for each boundary that uses an ML model)
Part-Boundary1-SurfaceModel = 0 ! Scattering only: 0
Part-Boundary1-SurfaceModelScattering = 2 ! cVAE: 2, cRealNVP: 3
Part-Boundary2-SurfaceModel = 0 ! Scattering only: 0
Part-Boundary2-SurfaceModelScattering = 3 ! cVAE: 2, cRealNVP: 3
Part-Boundary3-SurfaceModel = 0 ! Scattering only: 0
Part-Boundary3-SurfaceModelScattering = 3 ! cVAE: 2, cRealNVP: 3
! ML model definitions
SurfaceScattering-NumOfMLs = 2
SurfaceScattering-ML1-NumOfBoundaries = 1 ! Must equal the length of ML1-Boundaries
SurfaceScattering-ML1-Boundaries = (/1/) ! IDs of the boundaries that use this model
SurfaceScattering-ML1-File = path/to/file1.h5
SurfaceScattering-ML2-NumOfBoundaries = 2 ! Must equal the length of ML2-Boundaries
SurfaceScattering-ML2-Boundaries = (/2, 3/) ! IDs of the boundaries that use this model
SurfaceScattering-ML2-File = path/to/file2.h5
For further information, visit the PICLas documentation.
Citation
If your research leads to a publication, please cite the models using journal publication:
@article{Schuette2026,
author={Miklas Schütte and Stephen Hocker and Hansjörg Lipp and Johannes Roth and Stefanos Fasoulas and Marcel Pfeiffer},
title={Conditional Normalizing Flow for Gas-Surface Scattering from Thermal to Hypersonic Velocities},
journal = {Physics of Fluids},
volume={38},
number = {9},
year={2026},
month={09},
doi={10.1063/5.0350421}
}
or the preprint:
@misc{Schuette2026,
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},
}