pub struct SlfmmMatvecWorkspace {
pub multipoles: Array2<Complex64>,
pub locals: Array2<Complex64>,
pub dof_buffer: Array1<Complex64>,
pub num_clusters: usize,
pub num_sphere_points: usize,
pub num_dofs: usize,
}Expand description
Workspace for batched SLFMM matvec operations
Pre-allocates all necessary buffers to avoid allocations in hot path
Fields§
§multipoles: Array2<Complex64>Workspace for multipole expansions: [num_clusters, num_sphere_points]
locals: Array2<Complex64>Workspace for local expansions: [num_clusters, num_sphere_points]
dof_buffer: Array1<Complex64>Workspace for DOF scatter/gather: [num_dofs]
num_clusters: usizeNumber of clusters
num_sphere_points: usizeNumber of sphere integration points
num_dofs: usizeNumber of DOFs
Implementations§
Auto Trait Implementations§
impl Freeze for SlfmmMatvecWorkspace
impl RefUnwindSafe for SlfmmMatvecWorkspace
impl Send for SlfmmMatvecWorkspace
impl Sync for SlfmmMatvecWorkspace
impl Unpin for SlfmmMatvecWorkspace
impl UnwindSafe for SlfmmMatvecWorkspace
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> 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