Multi-scale Integrated Modeling

Whole-device modeling, at its heart, is multiscale, integrated modeling. There are very few laboratory plasmas that are not characterized by an extraordinary range of spatio-temporal scales, very often best described with distinct physics models that must be integrated. Sometimes this integration happens within a single code or namespace, but there are also prominent examples of distinct modules which were once stand-alone simulation codes, now coupled together within a single simulation or optimization loop. PPPL has active teams engaged in whole-device modeling of tokamaks (especially transport and MHD), stellarators (especially optimization), open configurations (such as magnetic mirrors), and low-temperature plasma reactors that are used to etch the smallest features on modern semiconductor components. 

Current projects

PROJECT (Associated MIM/CSD staff)

DEGAS2 (Wilkie)

GS2 (Dorland)

MMM (Pankin)

NUBEAM (Gorelenkova, Goliyad)

SIMSOPT 

STELLOPT 

TRANSP (Breslau, Gorelenkova, Goliyad, Pankin)

TRINITY (Dorland)

UFILES (Breslau, Gorelenkova, Pankin, Sachdev)

Code integration resources

AToM Advanced Tokamak Modeling Environment 

CorFu Coderunner Fusion Optimisation Framework

IMAS/IDS Integrated Modeling and Analysis Suite/Interface Data Structure

NTCC National Transport Code Collaboration (includes EZcdf, IFS/PPPL, JSOLVER, PEDESTAL, PSPLINE)

PPPL Plasma State Shared repository for time-evolving plasma simulation data

Collaborators

Group (Associated MIM/CSD staff)

General Atomics Theory group 

GS2 group UKAEA, University of York, University of Oxford  (Dorland)

Landreman's stellarator group at the University of Maryland  (Dorland)

Lehigh University

Simons Foundation Hidden Symmetries project

Developer resources

CI/CD with GitLab CI and GitHub Actions

Containerization with Docker and Singularity

f2py  Make Fortran callable from python

GitFlow  Git branching model with SemVer 

Semantic Versioning 

Strategies for Legacy Codes  Encapsulate, modularize, rewrite