External scientific codes
An external scientific code is an independently maintained implementation: its upstream project owns the solver, and VAFT owns only the integration boundary around it – input preparation, execution, collection, provenance, validation and mapping. None of these codes is a Python dependency of VAFT, and installing VAFT installs none of them. Which Python packages VAFT itself needs is a different question, answered on the software dependencies page.
Every code below passes through the same lifecycle. A native result is never treated as IMAS output: it is kept, and a standardized result exists only where a mapping does. Where a code runs in the production pipelines, its rules are linked into the pipeline lineage explorer; where its adapter imports other VAFT modules, the dependency explorer shows them.
Overview
| Code | Scientific role | Integration | Installation | Adapter | Platforms |
|---|---|---|---|---|---|
| EFIT (with EFUND) | equilibrium reconstruction | Executable, launched as a subprocess | VAFT-managed source build (install/; build dependencies may be fetched) | vaft.code.efit |
Linux, macOS, Windows |
| CHEASE | equilibrium refinement | Executable, launched as a subprocess | VAFT-managed source build (install/; build dependencies may be fetched) | vaft.code.chease |
Linux, macOS, Windows |
| DCON, RDCON, STRIDE and GPEC | MHD stability, 3-D plasma response | Executable, launched as a subprocess | VAFT-managed source build (install/; build dependencies may be fetched) | vaft.code.gpec |
Linux, macOS, Windows |
| GACODE: NEO, TGLF and CGYRO | neoclassical transport, turbulent transport, gyrokinetics | Executable, launched as a subprocess | VAFT-managed source build (install/; build dependencies may be fetched) | vaft.code.gacode |
Linux, macOS |
| MITIM-fusion experimental | integrated transport modelling, flux-matching optimization | Executable, launched as a subprocess | VAFT-managed source build (install/; build dependencies may be fetched) | vaft.code.mitim |
Linux, macOS |
| TGLF neural-network surrogates | turbulent transport | Python library, called in process | Site- or user-managed (VAFT only resolves and runs it) | vaft.code.gacode.tglf.surrogate |
as the site installs it |
| NUBEAM | fast-particle and neutral-beam source modelling | Executable, launched as a subprocess | VAFT-managed source build (install/; build dependencies may be fetched) | vaft.code.nubeam |
Linux, macOS, Windows |
| GENRAY | RF wave propagation and current drive | Executable, launched as a subprocess | VAFT-managed source build (install/; build dependencies may be fetched) | vaft.code.genray |
Linux, macOS |
| TES (RTES) | free-boundary equilibrium | Executable, launched as a subprocess | Site- or user-managed (VAFT only resolves and runs it) | vaft.code.tes |
as the site installs it |
| TokaMaker (OpenFUSIONToolkit) | free-boundary equilibrium | Python library, called in process | Python package (an optional extra) | vaft.code.tokamaker |
wherever the Python package installs |
| NICE experimental | equilibrium reconstruction | Executable, launched as a subprocess | Site- or user-managed (VAFT only resolves and runs it) | vaft.code.nice |
as the site installs it |
| FLARE | magnetic field-line tracing | Executable, launched as a subprocess | Site- or user-managed (VAFT only resolves and runs it) | vaft.code.flare |
as the site installs it |
| TRANSP (reader) read-only | integrated modelling | Reader of finished results | Results reader (VAFT does not run the code) | vaft.code.transp |
wherever its results are |
| PENTRC | neoclassical toroidal viscosity | Executable, launched as a subprocess | VAFT-managed source build (install/; build dependencies may be fetched) | vaft.code.gpec |
Linux, macOS |
No code matches.
What VAFT actually installs for you
| Code | VAFT Python install | VAFT source-build helper | User or site installation | Checker |
|---|---|---|---|---|
| EFIT (with EFUND) | no | yes, from source you supply | no | install/check_efit.py |
| CHEASE | no | yes, from source you supply | no | install/check_chease.py |
| DCON, RDCON, STRIDE and GPEC | no | yes, from source you supply | no | install/check_gpec.py |
| GACODE: NEO, TGLF and CGYRO | no | yes, from source you supply | no | install/check_gacode.py |
| MITIM-fusion | no | yes, from source you supply | no | none |
| TGLF neural-network surrogates | no | no | yes | none |
| NUBEAM | no | yes, from source you supply | no | install/check_nubeam.py |
| GENRAY | no | yes, from source you supply | no | install/check_genray.py |
| TES (RTES) | no | no | yes | none |
| TokaMaker (OpenFUSIONToolkit) | yes, vaft[tokamaker] |
no | no | none |
| NICE | no | no | yes | none |
| FLARE | no | no | yes | none |
| TRANSP (reader) | no | no | not run by VAFT | none |
| PENTRC | no | yes, from source you supply | no | none |
“VAFT source-build helper” means an installer under install/ configures, builds and checks a
source tree; it never downloads EFIT, which you obtain yourself under its users agreement, and
install/README.md says for each code where its source comes from (some installers fetch build
dependencies, such as NUBEAM’s NTCC libraries or Homebrew packages). The installers that keep a
build record write vaft-external-install.json beside the executables – source path and
revision, dirty-tree state, build command, toolchain and the installed files – and the checker
reads it back; each code’s entry below says whether its installers do.
Per-code reference
EFIT (with EFUND)
Distributed by the EFIT-AI collaboration under the EFIT users agreement; VAFT never fetches, mirrors or bundles it.
| Aspect | |
|---|---|
| Scientific role | equilibrium reconstruction |
| VAFT adapter | vaft.code.efit (source) |
| How VAFT runs it | Executable, launched as a subprocess; local subprocess, Slurm, Slurm over ssh |
| Installation | VAFT-managed source build (install/; build dependencies may be fetched); licensed, obtained by registration under a users agreement |
| Configuration | $EFITHOME |
| Build record | vaft-external-install.json from install/install_efit.sh; vaft-external-install.json from install/install_efit_windows.ps1 |
| Installers | install/install_efit.sh, install/install_efit_windows.ps1 |
| Checker | python install/check_efit.py |
| Platforms | Linux, macOS, Windows |
| Native result | k-files in, g-/a-/m-files out (EFUND response tables beside them) |
| Standardized result | equilibrium via the efit stage |
| Production pipeline | routine:generate_kfile, routine:run_efit_reconstruction, routine:generate_efit_ods |
| Install instructions | install/README.md |
| Primary reference | L. L. Lao et al., Nucl. Fusion 25, 1611 (1985) (doi:10.1088/0029-5515/25/11/007) |
CHEASE
| Aspect | |
|---|---|
| Scientific role | equilibrium refinement |
| VAFT adapter | vaft.code.chease (source) |
| How VAFT runs it | Executable, launched as a subprocess; local subprocess, Slurm, Slurm over ssh |
| Installation | VAFT-managed source build (install/; build dependencies may be fetched) |
| Configuration | $CHEASEHOME |
| Build record | vaft-external-install.json from install/install_chease.sh; vaft-external-install.json from install/install_chease_windows.ps1 |
| Installers | install/install_chease.sh, install/install_chease_windows.ps1 |
| Checker | python install/check_chease.py |
| Platforms | Linux, macOS, Windows |
| Native result | EXPEQ in, refined EQDSK and the CHEASE output files out |
| Standardized result | equilibrium via the chease stage |
| Production pipeline | routine:run_chease, routine:generate_chease_ods |
| Install instructions | install/README.md |
| Repository | SPC EPFL GitLab |
| Primary reference | H. Lütjens, A. Bondeson and O. Sauter, Comput. Phys. Commun. 97, 219 (1996) (doi:10.1016/0010-4655(96)00046-X) |
DCON, RDCON, STRIDE and GPEC
| Aspect | |
|---|---|
| Scientific role | MHD stability, 3-D plasma response |
| VAFT adapter | vaft.code.gpec (source) |
| How VAFT runs it | Executable, launched as a subprocess; local subprocess, Slurm, Slurm over ssh |
| Installation | VAFT-managed source build (install/; build dependencies may be fetched) |
| Configuration | $GPECHOME |
| Build record | vaft-external-install.json from install/install_gpec.sh; vaft-external-install.json from install/install_gpec_windows.ps1 |
| Installers | install/install_gpec.sh, install/install_gpec_windows.ps1 |
| Checker | python install/check_gpec.py |
| Platforms | Linux, macOS, Windows |
| Native result | namelists and an EQDSK in, NetCDF/binary stability and response files out |
| Standardized result | mhd_linear, ntms via the mhd_linear stage; mhd_linear, coils_non_axisymmetric via the gpec_ideal stage |
| Production pipeline | routine:run_gpec_module, routine:build_mhd_linear, routine:build_gpec_ideal |
| Install instructions | install/README.md |
| Repository | Princeton University GitHub |
| Method reference | A. H. Glasser, Phys. Plasmas 23, 072505 (2016) (DCON) (doi:10.1063/1.4958328) |
| Primary reference | J.-K. Park, A. H. Boozer and A. H. Glasser, Phys. Plasmas 14, 052110 (2007) (GPEC) (doi:10.1063/1.2732170) |
GACODE: NEO, TGLF and CGYRO
| Aspect | |
|---|---|
| Scientific role | neoclassical transport, turbulent transport, gyrokinetics |
| VAFT adapter | vaft.code.gacode (source) |
| How VAFT runs it | Executable, launched as a subprocess; local subprocess, Slurm, Slurm over ssh |
| Installation | VAFT-managed source build (install/; build dependencies may be fetched) |
| Configuration | $GACODEHOME |
| Build record | not written by these installers |
| Installers | install/gacode/linux.sh, install/gacode/macos.sh |
| Checker | python install/check_gacode.py |
| Platforms | Linux, macOS |
| Native result | input.gacode and per-code inputs in, per-code output files out |
| Standardized result | core_profiles, core_transport via the neoclassical stage |
| Production pipeline | not run by a production pipeline |
| Install instructions | install/README.md |
| Repository | gafusion GitHub |
| Primary reference | E. A. Belli and J. Candy, Plasma Phys. Control. Fusion 50, 095010 (2008) (NEO) (doi:10.1088/0741-3335/50/9/095010) |
| Primary reference | G. M. Staebler, J. E. Kinsey and R. E. Waltz, Phys. Plasmas 14, 055909 (2007) (TGLF) (doi:10.1063/1.2436852) |
| Primary reference | J. Candy, E. A. Belli and R. V. Bravenec, J. Comput. Phys. 324, 73 (2016) (CGYRO) (doi:10.1016/j.jcp.2016.07.039) |
MITIM-fusion
Runs in an isolated interpreter (VAFT_MITIM_PYTHON) that VAFT never imports, against the GACODE build $GACODEHOME names; check it with install_mitim.sh --check-only. PORTALS flux matching is a later stage of #1588.
| Aspect | |
|---|---|
| Scientific role | integrated transport modelling, flux-matching optimization |
| VAFT adapter | vaft.code.mitim (source) |
| How VAFT runs it | Executable, launched as a subprocess; local subprocess, Slurm, Slurm over ssh |
| Installation | VAFT-managed source build (install/; build dependencies may be fetched) |
| Configuration | $VAFT_MITIM_PYTHON |
| Build record | vaft-external-install.json from install/install_mitim.sh |
| Installers | install/install_mitim.sh |
| Checker | none |
| Platforms | Linux, macOS |
| Native result | MITIM driver inputs in its own interpreter, its run directories out |
| Standardized result | none: VAFT keeps the native result only |
| Production pipeline | not run by a production pipeline |
| Install instructions | not documented in install/README.md |
| Repository | MITIM-fusion GitHub |
| Primary reference | P. Rodriguez-Fernandez et al., Nucl. Fusion 64, 076034 (2024) (doi:10.1088/1741-4326/ad4b3d) |
TGLF neural-network surrogates
Models are local files; none is trained on a VEST-like domain.
| Aspect | |
|---|---|
| Scientific role | turbulent transport |
| VAFT adapter | vaft.code.gacode.tglf.surrogate (source) |
| How VAFT runs it | Python library, called in process; in process |
| Installation | Site- or user-managed (VAFT only resolves and runs it) |
| Configuration | $TURBULENTTRANSPORTHOME |
| Build record | none |
| Installers | none in this repository |
| Checker | none |
| Platforms | as the site installs it |
| Native result | ONNX models of TurbulentTransport.jl, evaluated locally |
| Standardized result | none: VAFT keeps the native result only |
| Production pipeline | not run by a production pipeline |
| Install instructions | not documented in install/README.md |
| Repository | TurbulentTransport.jl (models) |
NUBEAM
| Aspect | |
|---|---|
| Scientific role | fast-particle and neutral-beam source modelling |
| VAFT adapter | vaft.code.nubeam (source) |
| How VAFT runs it | Executable, launched as a subprocess; local subprocess, Slurm, Slurm over ssh |
| Installation | VAFT-managed source build (install/; build dependencies may be fetched) |
| Configuration | $NUBEAMHOME |
| Build record | vaft-external-install.json from install/nubeam/linux.sh; vaft-external-install.json from install/nubeam/windows.ps1 |
| Installers | install/nubeam/linux.sh, install/nubeam/macos.sh, install/nubeam/windows.sh, install/nubeam/windows.ps1 |
| Checker | python install/check_nubeam.py |
| Platforms | Linux, macOS, Windows |
| Native result | a Plasma State file in, NUBEAM’s Plasma State and NetCDF out |
| Standardized result | none: VAFT keeps the native result only |
| Production pipeline | not run by a production pipeline |
| Install instructions | install/README.md |
| Homepage | NTCC NUBEAM |
| Primary reference | A. Pankin et al., Comput. Phys. Commun. 159, 157 (2004) (doi:10.1016/j.cpc.2003.11.002) |
GENRAY
| Aspect | |
|---|---|
| Scientific role | RF wave propagation and current drive |
| VAFT adapter | vaft.code.genray (source) |
| How VAFT runs it | Executable, launched as a subprocess; local subprocess, Slurm, Slurm over ssh |
| Installation | VAFT-managed source build (install/; build dependencies may be fetched) |
| Configuration | $GENRAYHOME |
| Build record | vaft-external-install.json from install/install_genray.sh |
| Installers | install/install_genray.sh |
| Checker | python install/check_genray.py |
| Platforms | Linux, macOS |
| Native result | genray.in and an EQDSK in, genray.nc out |
| Standardized result | waves via vaft.code.genray.outputs.genray_to_waves |
| Production pipeline | not run by a production pipeline |
| Install instructions | install/README.md |
| Repository | CompX GitHub |
TES (RTES)
| Aspect | |
|---|---|
| Scientific role | free-boundary equilibrium |
| VAFT adapter | vaft.code.tes (source) |
| How VAFT runs it | Executable, launched as a subprocess; local subprocess, Slurm, Slurm over ssh |
| Installation | Site- or user-managed (VAFT only resolves and runs it); not open source |
| Configuration | $TESHOME |
| Build record | none |
| Installers | none in this repository |
| Checker | none |
| Platforms | as the site installs it |
| Native result | a namelist and cinput in, a g-file and result scalars out |
| Standardized result | equilibrium via vaft.code.tes.outputs.collect_tes_outputs |
| Production pipeline | not run by a production pipeline |
| Install instructions | install/README.md |
| Primary reference | Y. M. Jeon, J. Korean Phys. Soc. 67, 843 (2015) (doi:10.3938/jkps.67.843) |
TokaMaker (OpenFUSIONToolkit)
Located through OFT_* variables rather than a {CODE}HOME.
| Aspect | |
|---|---|
| Scientific role | free-boundary equilibrium |
| VAFT adapter | vaft.code.tokamaker (source) |
| How VAFT runs it | Python library, called in process; in process |
| Installation | Python package (an optional extra) |
| Configuration | pip install "vaft[tokamaker]" |
| Build record | none |
| Installers | none in this repository |
| Checker | none |
| Platforms | wherever the Python package installs |
| Native result | OpenFUSIONToolkit objects in process; a g-file out |
| Standardized result | equilibrium via vaft.code.tokamaker.outputs.collect_tokamaker_outputs |
| Production pipeline | not run by a production pipeline |
| Install instructions | install/README.md |
| Repository | OpenFUSIONToolkit GitHub |
| Primary reference | C. Hansen et al., Comput. Phys. Commun. 298, 109111 (2024) (doi:10.1016/j.cpc.2024.109111) |
NICE
Open source under the LGPL-3.0 (the repository's LICENSE file). Experimental: none of the 34 VEST reference slices reconstructs yet.
| Aspect | |
|---|---|
| Scientific role | equilibrium reconstruction |
| VAFT adapter | vaft.code.nice (source) |
| How VAFT runs it | Executable, launched as a subprocess; local subprocess, Slurm, Slurm over ssh |
| Installation | Site- or user-managed (VAFT only resolves and runs it) |
| Configuration | $NICEHOME |
| Build record | none |
| Installers | none in this repository |
| Checker | none |
| Platforms | as the site installs it |
| Native result | NICE inputs in, its reconstruction files out |
| Standardized result | none: VAFT keeps the native result only |
| Production pipeline | not run by a production pipeline |
| Install instructions | not documented in install/README.md |
| Repository | Inria GitLab |
| Primary reference | J. Blum, C. Boulbe and B. Faugeras, J. Comput. Phys. 231, 960 (2012) (doi:10.1016/j.jcp.2011.04.005) |
FLARE
| Aspect | |
|---|---|
| Scientific role | magnetic field-line tracing |
| VAFT adapter | vaft.code.flare (source) |
| How VAFT runs it | Executable, launched as a subprocess; local subprocess, Slurm, Slurm over ssh |
| Installation | Site- or user-managed (VAFT only resolves and runs it); this repository records no distribution terms |
| Configuration | $FLAREHOME |
| Build record | none |
| Installers | none in this repository |
| Checker | none |
| Platforms | as the site installs it |
| Native result | field-line and mesh files |
| Standardized result | none: VAFT keeps the native result only |
| Production pipeline | not run by a production pipeline |
| Install instructions | not documented in install/README.md |
| Primary reference | H. Frerichs, Nucl. Fusion 64, 106034 (2024) (doi:10.1088/1741-4326/ad7303) |
TRANSP (reader)
VAFT reads TRANSP results; it does not run TRANSP.
| Aspect | |
|---|---|
| Scientific role | integrated modelling |
| VAFT adapter | vaft.code.transp (source) |
| How VAFT runs it | Reader of finished results; reads finished results |
| Installation | Results reader (VAFT does not run the code); not open source |
| Configuration | none (reads result files) |
| Build record | none |
| Installers | none in this repository |
| Checker | none |
| Platforms | as the site installs it |
| Native result | reads a finished run’s .CDF output |
| Standardized result | none: VAFT keeps the native result only |
| Production pipeline | not run by a production pipeline |
| Install instructions | install/README.md |
| Homepage | PPPL TRANSP |
| Primary reference | A. Y. Pankin et al., Comput. Phys. Commun. 312, 109611 (2025) (doi:10.1016/j.cpc.2025.109611) |
PENTRC
Built with the GPEC suite and run in a completed ideal-GPEC cell by vaft.code.gpec.run_pentrc (not a GPECSuiteConfig module); vaft.code.gpec also reads its native output, and vaft.code.pentrc re-exports that reader.
| Aspect | |
|---|---|
| Scientific role | neoclassical toroidal viscosity |
| VAFT adapter | vaft.code.gpec (source) |
| How VAFT runs it | Executable, launched as a subprocess; local subprocess, Slurm, Slurm over ssh |
| Installation | VAFT-managed source build (install/; build dependencies may be fetched) |
| Configuration | $GPECHOME |
| Build record | vaft-external-install.json from install/install_gpec.sh |
| Installers | install/install_gpec.sh |
| Checker | none |
| Platforms | Linux, macOS |
| Native result | pentrc.in and a .kin in a completed ideal-GPEC cell, pentrc_output_n*.nc out |
| Standardized result | none: VAFT keeps the native result only |
| Production pipeline | not run by a production pipeline |
| Install instructions | install/README.md |
| Repository | Princeton University GitHub (in the GPEC suite) |
| Primary reference | N. C. Logan, J.-K. Park et al., Phys. Plasmas 20, 122507 (2013) (doi:10.1063/1.4849395) |