Welcome to ExCALIBUR-NEPTUNE’s documentation!¶
This will be the main location of the documentation for the whole ExCALIBUR-NEPTUNE project.
Acronyms¶
Acronym |
Description |
---|---|
ACM |
|
ADC |
|
ADM |
Alternating directions method |
AIC |
Akaike information criterion |
ALM |
Augmented Lagrange multiplier |
AMR |
|
AMReX |
|
AND |
|
ANL |
Argonne National Laboratory |
ANN |
Artificial neural network |
ANN |
Artificial neural network |
ANOVA |
Analysis of Variance |
API |
Application Programming Interface |
ARMA |
Autoregressive moving averaoe |
ARMAX |
Autoregressive moving average with exogenous input |
ASQ |
Adaptive sparse quadrature |
ATS |
Advanced Terrestrial Simulator, previously Arctic Terrestrial Simulator |
AUXVAL |
|
BD |
|
BG/L |
|
BIC |
Bayesian information criterion |
BIM |
Empirical interpolation method |
BOX |
|
BP |
|
BPOD |
Balanced proper orthogonal decomposition |
CabanaMD |
|
CCA |
Canonical correlation analysis |
CD |
|
CEA |
|
CESM |
|
CFD |
Computational fluid dynamics |
CI |
|
CNN |
Convolutional neural network |
COGENT |
|
COMPAT |
|
CoSaMP |
Compressive sampling matching pursuit |
COSMO |
|
COSSAN |
|
CPP |
|
CPU |
Central Processing Unit |
CRC |
|
CS |
Compressed sensing |
CSE |
|
CSMP |
|
CTO |
|
CUDA |
Compute Unified Device Architecture |
CWIPI |
|
CWT |
Continuous wavelet transform |
DAG |
Direct Acyclic Graph |
DAKOTA |
|
DCT |
Discrete cosine transform |
DDA |
|
DEIM |
Discrete empirical interpolation method |
DFT |
Discrete Fourier fransform |
DFT |
Discrete Fourier Transform |
DiMDc |
Dynamic mode decomposition with control |
DL |
Deep learning |
DMD |
Dynamic mode decomposition |
DMDc |
Dynamic mode decomposition with control |
DNS |
Direct numerical simulation |
DOE |
Department of Energy |
DOI |
Digital Object Identifier |
DSL |
Domain-Specific Language |
DWT |
Discrete wavelet transform |
ECOG |
Electrocorticography |
ECP |
|
ECP-copa |
|
eDMD |
Extended DMD |
EIRENE |
|
EM |
Expectation maximization |
EOF |
Empirical orthogonal functions |
ERA |
Eigensystem realization algorithm |
ESC |
Extremum-seeking control |
ESI |
|
ESMF |
|
ETS |
|
EU |
European Union |
FACETS |
|
FCI |
Flux-Coordinate Independent (methods) |
FEM |
Finite Element Method |
FEniCS |
|
FFT |
Fast Fourier transform |
FFT |
Fast Fourier Transform |
FFTW |
Fastest Fourier Transform in the West (library) |
FLASH |
|
GA |
General Atomics |
GBD |
|
GBS |
|
GDB |
|
GMM |
Gaussian mixture model |
GMRES |
Generalized Minimal Residual method |
GNU |
GNU’s Not Unix! |
gPC |
Generalised polynomial chaos |
GPU |
Graphics Processing Unit |
GSA |
Global sensitivity analysis |
GUI |
Graphical User Interface |
HAVOK |
Hankel alternative view of Koopman |
HDF5 |
Hierarchical Data Format (version 5) |
HLA |
|
HPC |
High Performance Computing |
HVAR |
|
ICA |
Independent component analysis |
ICON |
|
IEEE |
|
IMAS |
|
IMEX |
Implicit-Explicit Methods |
IO |
|
ITG |
Ion Temperature Gradient |
ITM |
Ion Tearing Mode |
ITPA |
|
JET |
Joint European Torus |
JL |
JohnsonLindensfrauss |
JOREK |
|
KL |
KullbackLeib1er |
KLT |
Karhunen-Loeve transform |
LAD |
Least absolute deviations |
LAMMPS |
Large-scale Atomic/Molecular Massively Parallel Simulator |
LANL |
Los Alamos National Laboratory |
LASH |
|
LASSO |
Least absolute shrinkage and selection operator |
LASSO |
Least Absolute Shrinkage and Selection Operator |
LDA |
Linear discriminant analysis |
LGPL |
GNU Lesser General Public License |
LHSamp |
|
LLNL |
Lawrence Livermore National Laboratory |
LQE |
Linear quadratic estimator |
LQG |
Linear quadratic Gaussian controller |
LQR |
Linear quadratic regulator |
LTI |
Linear time invariant system |
MAP |
Maximium A Posteriori |
MC |
Monte Carlo (methods) |
MCMC |
Markov Chain Monte Carlo |
MCT |
|
MESAGE |
|
MFMA |
|
MFMC |
Multi-fidelity Monte Carlo |
MHD |
Magnetohydrodynamics |
MIMC |
|
MIMO |
Multiple input, multiple output |
MIT |
Massachusetts Institute of Technology |
ML |
Machine Learning |
MLC |
Machine learning control |
MLMC |
Multi-level Monte Carlo |
MLMF |
|
MMF |
|
MOOSE |
|
MOR |
Model Order Reduction |
Most |
Common Acronyms |
MPE |
Missing point estimation |
MPI |
Message Passing Interface |
mrDMD |
Multi-resolution dynamic mode decomposition |
MSSC |
|
MUMPS |
|
MUSCLE 3 |
Multiscale Coupling Library and Environment 3 |
NARMAX |
Nonlinear autoregressive model with exogenous inputs |
NEMO |
|
NEPTUNE |
|
NLS |
Nonlinear Schrdinger equation |
NUCODE |
|
OASIS |
|
OASIS4 |
|
ODE |
Ordinary differential equation |
OKID |
Observer Kalman filter identification |
OLYMPUS |
|
OMFIT |
|
OU |
Oxford University |
OUU |
Optimisation under uncertainty |
OUUWA |
|
PASTIX |
|
PBH |
PopovBelevitchHautus test |
PC |
Polynomial chaos |
PCA |
Principal components analysis |
PCE |
Polynomial chaos expansion |
PCP |
Principal component pursuit |
PDE |
Partial differential equation |
PDE-FIND |
Partial differential equation functional identification of nonlinear dynamics |
Probability distribution function |
|
PFC |
|
PGD |
|
PICPIF |
|
PID |
Proportional-integral-derivative control |
PIV |
Particle image velocimetry |
POD |
Proper orthogonal decomposition |
POOMA |
|
PP20 |
|
PRESET |
|
QA |
|
QCG |
|
QMC |
Quasi-Monte-Carlo |
QoI |
Quantity of interest |
RIP |
Restricted isometry property |
RKF23 |
|
RKHS |
Reproducing kernel Hilbert space |
RNG |
|
RNN |
Recurrent neural network |
ROM |
Reduced order model |
ROM |
Reduced-order model |
RPCA |
Robust principal components analysis |
rSVD |
Randomized SVD |
SAMRAI |
|
SGD |
Stochastic gradient descent |
SIAM |
Society for Industrial and Applied Mathematics |
SINDy |
Sparse identification of nonlinear dynamics |
SISO |
Single input, single output |
SLSQT |
Sequential Least-Squares’ Thresholding |
SMARDDA |
|
SMART |
|
SMITER |
|
SMwiki |
|
SNOWPAC |
Stochastic Nonlinear Optimisation with Path-Augmented Constraints (software package) |
SOL |
Scrape-Off Layer |
SOLEDGE |
|
SOLPS |
|
SRC |
Sparse representation for classification |
SRS |
|
SSA |
Singular spectrum analysis |
STARWALL |
|
STFT |
Short time Fourier transform |
STIXGeneral |
|
STLS |
Sequential thresholded least-squares |
STRUMPACK |
|
SVD |
Singular value decomposition |
SVD |
Singular value decomposition |
SVM |
Support vector machine |
SVM |
|
TAE |
|
TICA |
Time-lagged independent component analysis |
TM |
|
TOKAM |
|
TOKAM3X |
|
TOMS |
|
TRIMEG |
|
TUM |
|
UK |
United Kingdom |
UKAEA |
United Kingdom Atomic Energy Authority |
UKRI |
United Kingdom Research and Innovation |
UQ |
Uncertainty quantification |
US |
|
USA |
|
UTF-8 |
|
VAC |
Variational approach of conformation dynamics |
VDE |
|
VECMAtk |
|
VORPAL |
|
XGC1 |
|
XML |
|
XMSF |
Symbols¶
Symbol |
Description |
---|---|
\([a,b]\) |
arbitrary finite interval |
\(d\) |
number of dimensions over which the integral is performed |
\(f_0\) |
constant in the expansion of \(f\left(x_1,\ldots,x_d\right)\) |
\(f\left(x_1,\ldots,x_d\right)\) |
joint probability distribution |
\(f_i(x_i)\) |
coefficient in the expansion of \(f\left(x_1,\ldots,x_d\right)\) |
\(f_{ij}(x_i,x_j)\) |
coefficient in the expansion of \(f\left(x_1,\ldots,x_d\right)\) |
\(p(x)\) |
probability distributions |
\(r\) |
order of higher order term |
\(x_i\) |
generic parameter or variable |
\({\bf x} =\left(x_1,x_2,\dots,x_d\right)\) |
is a \(d\)-dimensional vector |
\(P(x)\) |
Cumulant probability distribution |
\(\parallel Q \parallel_E\) |
the ‘energy’ norm |
\(S_i\) |
Sobol sensitivity index, gives a normalised measure of the sensitivity of the distribution of \(f\) to the parameter \(x_i\) |
\(S_{ij}\) |
Sobol sensitivity index, gives a normalised measure of the sensitivity of the distribution of \(f\) to the parameters \(x_i\) and \(x_j\) |
\(\mathrm{Var}(f)\) |
variance of the distribution of \(f\) computed by integrating over all variables \(x_i\) |
\(V_i\) |
variance of the distribution of \(f\) as the parameter \(x_i\) varies |
\(V_{ij}\) |
variance of the distribution of \(f\) as the parameters \(x_i\) and \(x_j\) vary |
\(\mathbb{E}\) |
expectation |
\(\mathbb{E}_{x_{k\neq i}}\) |
expectation computed by integrating over all the \(x_k\) except for \(x_i\) |
\(\mathbb{E}_{k\neq i, l\neq j}\) |
expectation computed by integrating over all the \(x_k\) except for \(x_i\) and \(x_j\) |
\(\xi_i\) |
randon number within the unit interval \([0,1]\) |
ExCALIBUR NEPTUNE Charter¶
All members of the ExCALIBUR NEPTUNE team should be aware that to meet the challenges of the NEPTUNE project, and the ExCALIBUR overarching pillars, a distributed team of scientists, software engineers and architecture specialists from different UK institutions will be required to form a community around the NEPTUNE project (and will connect across the overarching ExCALIBUR programme). A high-level objective is to ensure that developed software is of the highest quality, implying a rigid requirement around the production of high-quality documentation and reproducible verification and validation tests for the codebase as it evolves. Since development work may transfer between institutions, it is important that common standards for documentation and testing be available and easy to deploy. The initial NEPTUNE exploratory Proxyapps may be written in a range of languages including for example Python, C++/DPC++, Object Fortran or Julia, however it is envisaged that there will be an emerging steer towards a reduced set of languages and technologies to ensure interoperability across the NEPTUNE software stack, ultimately leading to coupled simulations covering all the physics necessary to deliver an “actionable” simulation for the plasma edge. It is not yet clear for example whether SYCL, Kokkos or OpenMP 5 will offer the most performance portable and sustainable solution for NEPTUNE. The team is therefore expected to be agile and amenable to change once it is clear which are the most promising long–term solutions. For example, a selection of SYCL for the long-term framework/code(s) would force refactoring of any code that is not consistent with a NEPTUNE library and code base instantiated in DPC++, and where feasible, team members should support this process.
Source code for all development should be accessible by the entire NEPTUNE team and all tests should be repeatable by different workers without the need for re-training and/or any possible confusion as to the procedures and metrics needed to declare a test successful.
NEPTUNE will be developed as a sequence of ‘core’ Proxyapps (to be distinguished from other Proxyapps designed to test some novel technique). Core Proxyapps will all need a documentation and testing framework, which must be agreed between all partners for the entire project. This will require developers to work closely with UKAEA and other team members.
A commitment is also expected by all parties to help UKAEA and the Met Office (as SRO for ExCALIBUR) to publicise the project and build a fully connected community across the ExCALIBUR programme, UKRI and Academia, focused upon a team of approximately twenty UK Fusion use case experts. This will be essential for meeting the grand challenge goal of developing a state-of-the-art, Exascale targeted, UK-based plasma physics simulation capability for the tokamak edge plasma (see Science Plan 1).
All Core Proxyapps and related infrastructure/documentation across the NEPTUNE project should meet the demands of the Code Structure and Coordination work package FM-WP4 in so far as the developing project standards:
adopt a consistent choice of definitions (ontology) of objects or equivalently classes,
adhere to clearly defined common file formats and interfaces to components for data input and output.
provide suitably flexible data structures for common use by all developers,
are established through good scientific software engineering best practice,
demonstrate performance portability and exploit agreed DSL-like interfaces where possible targeting Exascale-relevant architectures,
can be integrated into a VVUQ framework and
are embedded within a coordination and benchmarking framework for correctness testing and performance evaluation.
In order to meet Strategic Priorities Fund terms around eligibility, and to steer the project towards a modular platform where developments across all partners can be integrated into an eventual code or platform available for open use by the European fusion community, a requirement is that all ExCALIBUR NEPTUNE Grant beneficiaries make technology / source code developed through the programme (foreground Intellectual Property) available as open source under a programme–wide permissive license (currently selected as 3-clause BSD for core/foundational infrastructure). Government Digital Service guidance (to which the project subscribes), discussing the benefits of open versus closed technology/software/data can be found in: https://www.gov.uk/government/publications/open-source-guidance/when-code-should-be-open-or-closed and https://www.gov.uk/guidance/be-open-and-use-open-source.
GLOSSARY:
Term or Acronym |
Definition |
C++ |
Programming language, see https://isocpp.org/ |
DPC++ |
Data Parallel C++, Intel compiler for C++ with SYCL extension |
DSL |
Domain Specific Language, programming language developed for a specific area of resrearch and development |
Object Fortran |
Programming language, more precisely Fortran 95 or later exploiting object-oriented features of the language, see https://wg5-fortran.org/f2008.html |
Python |
Programming language, see https://python.org/ |
SYCL |
C++ library for portable high performance computing, see https://www.khronos.org/sycl/ |
Kokkos |
C++ library for portable high performance computing https://cfwebprod.sandia.gov/ cfdocs/CompResearch/docs/Kokkos-Multi-CoE.pdf |
OpenMP |
Software for parallel programming |
SRO |
Senior Responsible Owner role in UK government project delivery |
Julia |
Programming language, see https://julialang.org/ |
UKRI |
United Kingdom Research and Innovation, a non-departmental public body encompassing the research councils and Innovate UK |
VVUQ |
Verification, Validation and Uncertainty Quantification |
- 1
W. Arter, L. Anton, D. Samaddar, and R. Akers. ExCALIBUR Fusion Modelling System Science Plan. Technical Report CD/EXCALIBUR-FMS/0001, UKAEA, 2019.
Writing Documentation¶
This documentation is written using reStructuredText (RST) and built using Sphinx on ReadTheDocs. For a good introduction on writing RST, see the reStructuredText primer in the Sphinx docs.