pub struct TidalIC {
pub host_potential: Box<dyn Fn([f64; 3]) -> f64 + Send + Sync>,
pub progenitor: Box<dyn IsolatedEquilibrium>,
pub progenitor_position: [f64; 3],
pub progenitor_velocity: [f64; 3],
}Expand description
Tidal stream IC: progenitor cluster on an orbit in an external host potential.
Fields§
§host_potential: Box<dyn Fn([f64; 3]) -> f64 + Send + Sync>Fixed external host potential Φ_host(x). Does not evolve self-consistently.
progenitor: Box<dyn IsolatedEquilibrium>§progenitor_position: [f64; 3]§progenitor_velocity: [f64; 3]Implementations§
Source§impl TidalIC
impl TidalIC
pub fn new( host_potential: Box<dyn Fn([f64; 3]) -> f64 + Send + Sync>, progenitor: Box<dyn IsolatedEquilibrium>, progenitor_position: [f64; 3], progenitor_velocity: [f64; 3], ) -> Self
Sourcepub fn sample_on_grid(&self, domain: &Domain) -> PhaseSpaceSnapshot
pub fn sample_on_grid(&self, domain: &Domain) -> PhaseSpaceSnapshot
Sample progenitor f centred on (progenitor_position, progenitor_velocity).
At each (x, v) grid point: compute position and velocity relative to the progenitor centre, evaluate energy in progenitor’s rest frame, then use the progenitor’s distribution function.
Sourcepub fn escape_velocity(&self, r: f64) -> f64
pub fn escape_velocity(&self, r: f64) -> f64
Compute escape velocity from host potential at given galactocentric radius r. Particles with velocity > v_esc at radius r are tidal debris.
Auto Trait Implementations§
impl Freeze for TidalIC
impl !RefUnwindSafe for TidalIC
impl !Send for TidalIC
impl !Sync for TidalIC
impl Unpin for TidalIC
impl UnsafeUnpin for TidalIC
impl !UnwindSafe for TidalIC
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