pub struct TileKernelGrid {
pub width: u32,
pub height: u32,
pub params: AcousticParams,
/* private fields */
}Expand description
A simulation grid using tile actors with K2K messaging.
Fields§
§width: u32Grid dimensions in cells.
height: u32§params: AcousticParamsAcoustic simulation parameters.
Implementations§
Source§impl TileKernelGrid
impl TileKernelGrid
Sourcepub async fn new(
width: u32,
height: u32,
params: AcousticParams,
backend: Backend,
) -> Result<Self>
pub async fn new( width: u32, height: u32, params: AcousticParams, backend: Backend, ) -> Result<Self>
Create a new tile-based kernel grid.
Sourcepub async fn with_tile_size(
width: u32,
height: u32,
params: AcousticParams,
backend: Backend,
tile_size: u32,
) -> Result<Self>
pub async fn with_tile_size( width: u32, height: u32, params: AcousticParams, backend: Backend, tile_size: u32, ) -> Result<Self>
Create a new tile-based kernel grid with custom tile size.
Sourcepub async fn step(&mut self) -> Result<()>
pub async fn step(&mut self) -> Result<()>
Perform one simulation step using tile actors with K2K messaging.
Sourcepub fn is_gpu_persistent_enabled(&self) -> bool
pub fn is_gpu_persistent_enabled(&self) -> bool
Check if GPU-persistent mode is enabled.
Sourcepub fn gpu_persistent_backend(&self) -> Option<GpuPersistentBackend>
pub fn gpu_persistent_backend(&self) -> Option<GpuPersistentBackend>
Get which GPU-persistent backend is active.
Sourcepub fn inject_impulse(&mut self, x: u32, y: u32, amplitude: f32)
pub fn inject_impulse(&mut self, x: u32, y: u32, amplitude: f32)
Inject an impulse at the given global grid position.
Sourcepub fn get_pressure_grid(&self) -> Vec<Vec<f32>>
pub fn get_pressure_grid(&self) -> Vec<Vec<f32>>
Get the pressure grid for visualization.
Sourcepub fn max_pressure(&self) -> f32
pub fn max_pressure(&self) -> f32
Get the maximum absolute pressure in the grid.
Sourcepub fn total_energy(&self) -> f32
pub fn total_energy(&self) -> f32
Get total energy in the system.
Sourcepub fn cell_count(&self) -> usize
pub fn cell_count(&self) -> usize
Get the number of cells.
Sourcepub fn tile_count(&self) -> usize
pub fn tile_count(&self) -> usize
Get the number of tile actors.
Sourcepub fn set_speed_of_sound(&mut self, speed: f32)
pub fn set_speed_of_sound(&mut self, speed: f32)
Update acoustic parameters.
Sourcepub fn set_cell_size(&mut self, size: f32)
pub fn set_cell_size(&mut self, size: f32)
Update cell size.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TileKernelGrid
impl !RefUnwindSafe for TileKernelGrid
impl Send for TileKernelGrid
impl Sync for TileKernelGrid
impl Unpin for TileKernelGrid
impl !UnwindSafe for TileKernelGrid
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
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<State, Message> IntoBoot<State, Message> for State
impl<State, Message> IntoBoot<State, Message> for State
Source§fn into_boot(self) -> (State, Task<Message>)
fn into_boot(self) -> (State, Task<Message>)
Turns some type into the initial state of some
Application.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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.