pub struct ParallelBugIntegrator {
pub config: ParallelBugConfig,
pub g: f64,
/* private fields */
}Expand description
Parallel BUG integrator: computes all 6 leaf K-steps simultaneously via rayon.
Spatial leaves (x1, x2, x3) and velocity leaves (v1, v2, v3) are updated concurrently within each Strang sub-step, then applied respecting sibling constraints. Falls back to standard Strang splitting for non-HT representations.
Fields§
§config: ParallelBugConfigBUG truncation, rank, rejection, and conservation settings.
g: f64Gravitational constant G.
Implementations§
Source§impl ParallelBugIntegrator
impl ParallelBugIntegrator
Sourcepub fn new(g: f64, config: ParallelBugConfig) -> Self
pub fn new(g: f64, config: ParallelBugConfig) -> Self
Create a new parallel BUG integrator with the given gravitational constant and config.
Trait Implementations§
Source§impl TimeIntegrator for ParallelBugIntegrator
impl TimeIntegrator for ParallelBugIntegrator
Source§fn advance(
&mut self,
repr: &mut dyn PhaseSpaceRepr,
solver: &dyn PoissonSolver,
advector: &dyn Advector,
dt: f64,
) -> Result<StepProducts, CausticError>
fn advance( &mut self, repr: &mut dyn PhaseSpaceRepr, solver: &dyn PoissonSolver, advector: &dyn Advector, dt: f64, ) -> Result<StepProducts, CausticError>
Advance the simulation by one timestep Δt. Read more
Source§fn max_dt(&self, repr: &dyn PhaseSpaceRepr, cfl_factor: f64) -> f64
fn max_dt(&self, repr: &dyn PhaseSpaceRepr, cfl_factor: f64) -> f64
Compute the maximum stable Δt given current state and CFL constraints.
Source§fn last_step_timings(&self) -> Option<&StepTimings>
fn last_step_timings(&self) -> Option<&StepTimings>
Return timing breakdown from the most recent
advance() call.
Default returns None; instrumented integrators override this.Source§fn set_progress(&mut self, progress: Arc<StepProgress>)
fn set_progress(&mut self, progress: Arc<StepProgress>)
Attach shared progress state for intra-step TUI visibility.
Default is a no-op; integrators that support progress override this.
Source§fn suggested_dt(&self) -> Option<f64>
fn suggested_dt(&self) -> Option<f64>
Return a suggested Δt from the adaptive controller (if any).
Default returns
None; adaptive integrators override this.Auto Trait Implementations§
impl Freeze for ParallelBugIntegrator
impl RefUnwindSafe for ParallelBugIntegrator
impl Send for ParallelBugIntegrator
impl Sync for ParallelBugIntegrator
impl Unpin for ParallelBugIntegrator
impl UnsafeUnpin for ParallelBugIntegrator
impl UnwindSafe for ParallelBugIntegrator
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
Mutably borrows from an owned value. Read more
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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