ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
orb5x::IslandModule Class Reference

Builds and evaluates a prescribed static helical magnetic-island perturbation. More...

#include "island.hpp"

Static Public Member Functions

static void destroyStaticViews ()
 Release island-owned Kokkos views before Kokkos::finalize().
 
static Real get_atilde (Real ps, Real pchi, Real pphi)
 Evaluate the normalized parallel-vector-potential perturbation.
 
static Real get_btilde (Real ps, Real pchi, Real pphi)
 Evaluate the normalized magnetic perturbation.
 
static Real get_helical (Real ps, Real pchi, Real pphi)
 Evaluate normalized helical flux at a flux-coordinate point.
 
static void helical_dealloc ()
 Release helical source and potential arrays after island construction/output.
 
static void island_builder ()
 Initialize, project, and differentiate the configured static magnetic island.
 
static void profis (const Kokkos::View< Real * > &r, const Kokkos::View< Real * > &z, int iflag, Kokkos::View< Real ** > &isrz, Kokkos::View< Real ** > &srz, Kokkos::View< Real ** > &iscp, Kokkos::View< Real ** > &htest)
 Sample the island perturbation on cylindrical and flux-coordinate planes.
 

Detailed Description

Builds and evaluates a prescribed static helical magnetic-island perturbation.

The module deposits the analytic island source, solves its B-spline mass projection, folds poloidal periodicity, and exposes helical flux, magnetic perturbation, and vector potential to particle and diagnostic paths. Coordinates use normalized \(s=\sqrt{\psi}\) and angles in radians.

Fortran reference island.F90, module island.

Member Function Documentation

◆ destroyStaticViews()

static void orb5x::IslandModule::destroyStaticViews ( )
static

Release island-owned Kokkos views before Kokkos::finalize().

◆ get_atilde()

static Real orb5x::IslandModule::get_atilde ( Real  ps,
Real  pchi,
Real  pphi 
)
static

Evaluate the normalized parallel-vector-potential perturbation.

Parameters
[in]psNormalized radial coordinate \(s\).
[in]pchiPoloidal angle, in radians.
[in]pphiToroidal angle, in radians.
Returns
Interpolated \(\widetilde A_\parallel\) in ORB5X normalization.

◆ get_btilde()

static Real orb5x::IslandModule::get_btilde ( Real  ps,
Real  pchi,
Real  pphi 
)
static

Evaluate the normalized magnetic perturbation.

Parameters
[in]psNormalized radial coordinate \(s\).
[in]pchiPoloidal angle, in radians.
[in]pphiToroidal angle, in radians.
Returns
Interpolated \(\widetilde B\) in normalized magnetic-field units.

◆ get_helical()

static Real orb5x::IslandModule::get_helical ( Real  ps,
Real  pchi,
Real  pphi 
)
static

Evaluate normalized helical flux at a flux-coordinate point.

Parameters
[in]psNormalized radial coordinate \(s\).
[in]pchiPoloidal angle, in radians.
[in]pphiToroidal angle, in radians.
Returns
Interpolated normalized helical-flux perturbation.

◆ helical_dealloc()

static void orb5x::IslandModule::helical_dealloc ( )
static

Release helical source and potential arrays after island construction/output.

◆ island_builder()

static void orb5x::IslandModule::island_builder ( )
static

Initialize, project, and differentiate the configured static magnetic island.

◆ profis()

static void orb5x::IslandModule::profis ( const Kokkos::View< Real * > &  r,
const Kokkos::View< Real * > &  z,
int  iflag,
Kokkos::View< Real ** > &  isrz,
Kokkos::View< Real ** > &  srz,
Kokkos::View< Real ** > &  iscp,
Kokkos::View< Real ** > &  htest 
)
static

Sample the island perturbation on cylindrical and flux-coordinate planes.

Parameters
[in]rMajor-radius sample coordinates.
[in]zVertical sample coordinates.
[in]iflag1 selects island potential; 2 selects helical flux.
[out]isrzSelected perturbation on the \((R,Z)\) plane.
[out]srzNormalized poloidal flux \(s^2\) on the same plane.
[out]iscpIsland potential on an \((s,\varphi)\) plane.
[out]htestMagnetic-field perturbation on the flux-coordinate plane.
Fortran reference island.F90:profis.

The documentation for this class was generated from the following file: