pub struct TransportSolver {
pub profiles: RadialProfiles,
pub chi: Array1<f64>,
pub dt: f64,
pub pedestal: PedestalModel,
pub toroidal_mode_amplitudes: Vec<f64>,
pub toroidal_coupling_gain: f64,
pub neoclassical: Option<NeoclassicalParams>,
}Expand description
1.5D radial transport solver.
Fields§
§profiles: RadialProfiles§chi: Array1<f64>§dt: f64§pedestal: PedestalModel§toroidal_mode_amplitudes: Vec<f64>§toroidal_coupling_gain: f64§neoclassical: Option<NeoclassicalParams>Optional neoclassical transport model (replaces constant CHI_BASE).
Implementations§
Source§impl TransportSolver
impl TransportSolver
Sourcepub fn set_neoclassical(
&mut self,
params: NeoclassicalParams,
) -> FusionResult<()>
pub fn set_neoclassical( &mut self, params: NeoclassicalParams, ) -> FusionResult<()>
Configure the neoclassical transport model (Chang-Hinton 1982).
When set, replaces the constant CHI_BASE with q-profile-dependent neoclassical χ_i.
Sourcepub fn set_toroidal_mode_spectrum(
&mut self,
amplitudes: &[f64],
gain: f64,
) -> FusionResult<()>
pub fn set_toroidal_mode_spectrum( &mut self, amplitudes: &[f64], gain: f64, ) -> FusionResult<()>
Configure low-order toroidal mode spectrum n=1..N for reduced transport closure.
The solver remains 1.5D; this adds a radial transport multiplier using spectral
energy from low-order n != 0 modes to mimic toroidal asymmetry effects.
Sourcepub fn update_transport_model(&mut self, p_aux_mw: f64) -> FusionResult<()>
pub fn update_transport_model(&mut self, p_aux_mw: f64) -> FusionResult<()>
Update thermal diffusivity using Bohm/Gyro-Bohm + EPED-like pedestal.
χ = χ_base + χ_turb · max(0, |∇T| - threshold) Pedestal barrier starts at ρ = 1 - Δ_ped and suppresses edge transport in H-mode.
Sourcepub fn evolve_profiles(&mut self, p_aux_mw: f64) -> FusionResult<()>
pub fn evolve_profiles(&mut self, p_aux_mw: f64) -> FusionResult<()>
Evolve temperature profiles by one time step (explicit Euler).
∂T/∂t = (1/r)∂(r χ ∂T/∂r)/∂r + S_heat - S_rad
Sourcepub fn inject_impurities(&mut self, erosion_rate: f64) -> FusionResult<()>
pub fn inject_impurities(&mut self, erosion_rate: f64) -> FusionResult<()>
Inject impurities (erosion model). Python lines 39-66.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TransportSolver
impl RefUnwindSafe for TransportSolver
impl Send for TransportSolver
impl Sync for TransportSolver
impl Unpin for TransportSolver
impl UnwindSafe for TransportSolver
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more