Builds and advances the externally imposed antenna potential.
More...
#include "antenna.hpp"
|
| 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.
|
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}\).
◆ add_antenna_source()
| void orb5x::AntennaModule::add_antenna_source |
( |
int | step | ) |
|
|
static |
Advance the antenna field for a global timestep.
- Parameters
-
| [in] | step | Zero-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()
Evaluate the configured analytic antenna source at one point.
- Parameters
-
| [in] | s | Normalized radial coordinate. |
| [in] | chi | Poloidal angle [rad]. |
| [in] | phi | Toroidal angle [rad]. |
| [in] | time | Normalized 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_module | Field 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] | fname | Input 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] | time | Normalized simulation time \(t\Omega_i\). |
◆ phi_antenna
Antenna electrostatic potential and its B-spline/grid representations.
The documentation for this class was generated from the following file: