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 initial conditions: a satellite on an orbit in a fixed host potential.
The progenitor’s distribution function is sampled in its own rest frame and placed at the specified position and velocity within the host.
Fields§
§host_potential: Box<dyn Fn([f64; 3]) -> f64 + Send + Sync>Fixed external host potential Phi_host(x). Does not evolve self-consistently.
progenitor: Box<dyn IsolatedEquilibrium>Equilibrium model for the satellite (e.g. Plummer, King).
progenitor_position: [f64; 3]Initial centre-of-mass position of the satellite in the host frame.
progenitor_velocity: [f64; 3]Initial centre-of-mass velocity of the satellite in the host frame.
Implementations§
Source§impl TidalIC
impl TidalIC
Sourcepub 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
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
Create a tidal-stream IC from a host potential, satellite model, and orbital state.
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 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
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>
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