XGCa
|
#include "sml.hpp"
#include "toroidal_average.hpp"
#include "moments.hpp"
#include "electric_field.hpp"
#include "loop_voltage_diag.hpp"
Go to the source code of this file.
Functions | |
void | f_current_drive (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, Plasma &plasma, const Moments &f0_moments, const DomainDecomposition< DeviceType > &pol_decomp, ElectricField< DeviceType > &electric_field, const MagneticField< DeviceType > &magnetic_field, LoopVolDiagnostics &loop_vol_diag) |
void f_current_drive | ( | const Simulation< DeviceType > & | sml, |
const Grid< DeviceType > & | grid, | ||
Plasma & | plasma, | ||
const Moments & | f0_moments, | ||
const DomainDecomposition< DeviceType > & | pol_decomp, | ||
ElectricField< DeviceType > & | electric_field, | ||
const MagneticField< DeviceType > & | magnetic_field, | ||
LoopVolDiagnostics & | loop_vol_diag | ||
) |
Drives electron current such that the plasma current required by the Grad-Shafranov equilibrium magnetic field is maintained. The plasma current is \(j_{\parallel,0} = \hat{\boldsymbol{b}}\cdot\left(\nabla\times\boldsymbol{B}_0\right)/\mu_0 \), or \(j_{\parallel,0} = \sum_s (q_s n_s u_{\parallel,s}) \). Therefore, \(u_{\parallel,e}=j_{\parallel,0}-\sum_{ions}(q_s n_s u_{\parallel,s}) \). The actual electron flow is stored in f0_moments.u_local). Any difference between the targeted and actual flow is damped away with an exponential damping \(\partial u/\partial t = \gamma (u_{target}-u_{actual}) \).
[in] | sml | Simulation object (runtime parameters), class Simulation |
[in] | grid | Grid object, class Grid |
[in,out] | plasma | XGC plasma object; class plasma |
[in] | f0_moments | Current low-order plasma moments, struct Moments |
[in] | pol_decomp | Domain decomposition object (patch boundaries, etc.), class DomainDecomposition |
[in] | loop_vol_diag | Diagnostic ouput object for the loop voltage, class LoopVolDiagnostics |