pub struct ZeldovichSingleMode {
pub mean_density: f64,
pub amplitude: f64,
pub wavenumber: f64,
pub sigma_v: f64,
}Expand description
Single-mode Zel’dovich pancake IC for validation tests.
Uses a sinusoidal perturbation v_0(x) = -A sin(k x_1) along the first spatial axis only. The analytic caustic time t_c = 1/(Ak) makes this ideal for convergence studies against exact solutions.
Fields§
§mean_density: f64Mean comoving matter density rho_bar.
amplitude: f64Perturbation amplitude A controlling the velocity field strength.
wavenumber: f64Perturbation wavenumber k (radians per unit length).
sigma_v: f64Velocity-space Gaussian width sigma_v for the cold-stream representation.
Implementations§
Source§impl ZeldovichSingleMode
impl ZeldovichSingleMode
Sourcepub fn sample_on_grid(
&self,
domain: &Domain,
progress: Option<&StepProgress>,
) -> PhaseSpaceSnapshot
pub fn sample_on_grid( &self, domain: &Domain, progress: Option<&StepProgress>, ) -> PhaseSpaceSnapshot
Sample the single-mode Zel’dovich distribution onto a 6D grid.
f(x,v) = rho_bar / ((2pi)^{3/2} sigma_v^3) exp(-(v - v_0(x))^2 / (2 sigma_v^2)) where v_0(x) = (-A sin(k x_1), 0, 0).
An optional progress handle reports intra-step progress to the TUI.
Auto Trait Implementations§
impl Freeze for ZeldovichSingleMode
impl RefUnwindSafe for ZeldovichSingleMode
impl Send for ZeldovichSingleMode
impl Sync for ZeldovichSingleMode
impl Unpin for ZeldovichSingleMode
impl UnsafeUnpin for ZeldovichSingleMode
impl UnwindSafe for ZeldovichSingleMode
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