ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
Loading...
Searching...
No Matches
orb5x::AntennaModule Class Reference

Builds and advances the externally imposed antenna potential. More...

#include "antenna.hpp"

Collaboration diagram for orb5x::AntennaModule:

Static Public Member Functions

static void add_antenna_source (int step)
 Advance the antenna field for a global timestep.
static void destroyStaticViews ()
 Release static Kokkos allocations before Kokkos::finalize().
static Real get_antenna_source (Real s, Real chi, Real phi, Real time)
 Evaluate the configured analytic antenna source at one point.
static void init_antenna (FieldsModule *fields_module=nullptr)
 Initialize antenna metadata, storage, and the configured radial profile.
static void init_field ()
 Assemble and solve the antenna field at the required temporal phases.
static void load_antenna_config (const std::string &fname)
 Load scalar antenna settings from a simple key = value file.
static void update_field (Real time)
 Reconstruct the instantaneous antenna potential from cached phases.

Static Public Attributes

static FieldType phi_antenna
 Antenna electrostatic potential and its B-spline/grid representations.

Detailed Description

Builds and advances the externally imposed antenna potential.

The antenna converts the configured radial envelope and poloidal/toroidal mode spectrum into a B-spline field compatible with FieldsModule. It solves the selected quasineutrality/mass-matrix problem at two temporal phases and combines those cached fields during the timestep. This is the C++ analogue of antenna_mod in antenna.F90 and consumes the process-wide AntennaVariables populated by ReadInput.

Note
ORB5X coordinates and time are normalized: \(s\) is the normalized flux-surface radius, angles are radians, and time is in \(\Omega_i^{-1}\).

Member Function Documentation

◆ add_antenna_source()

void orb5x::AntennaModule::add_antenna_source ( int step)
static

Advance the antenna field for a global timestep.

Parameters
[in]stepZero-based global timestep; converted to time with basic->dt.

◆ destroyStaticViews()

void orb5x::AntennaModule::destroyStaticViews ( )
static

Release static Kokkos allocations before Kokkos::finalize().

◆ get_antenna_source()

Real orb5x::AntennaModule::get_antenna_source ( Real s,
Real chi,
Real phi,
Real time )
static

Evaluate the configured analytic antenna source at one point.

Parameters
[in]sNormalized radial coordinate.
[in]chiPoloidal angle [rad].
[in]phiToroidal angle [rad].
[in]timeNormalized time \(t\Omega_i\).
Returns
Radial-envelope times mode-spectrum times temporal coefficient, in the normalized potential/source units of the configured amplitudes; zero when the antenna is disabled.

◆ init_antenna()

void orb5x::AntennaModule::init_antenna ( FieldsModule * fields_module = nullptr)
static

Initialize antenna metadata, storage, and the configured radial profile.

Parameters
[in]fields_moduleField subsystem used to allocate phi_antenna; may be null only for the disabled/incomplete initialization path.

References orb5x::fields_module.

◆ init_field()

void orb5x::AntennaModule::init_field ( )
static

Assemble and solve the antenna field at the required temporal phases.

Populates phi_antenna and, for nonzero frequency, field_t0_bspl and field_tquarter_bspl. The selected antenna type chooses the quasineutrality or mass matrix, following init_field in antenna.F90.

◆ load_antenna_config()

void orb5x::AntennaModule::load_antenna_config ( const std::string & fname)
static

Load scalar antenna settings from a simple key = value file.

Parameters
[in]fnameInput file path. Missing files terminate the run.
Note
Mode arrays remain owned by AntennaVariables and are not parsed here.

◆ update_field()

void orb5x::AntennaModule::update_field ( Real time)
static

Reconstruct the instantaneous antenna potential from cached phases.

Parameters
[in]timeNormalized simulation time \(t\Omega_i\).

Member Data Documentation

◆ phi_antenna

FieldType orb5x::AntennaModule::phi_antenna
static

Antenna electrostatic potential and its B-spline/grid representations.


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