pub struct PartitionedSolverInitializer {
pub unit_index: usize,
pub vertex_num: VertexNum,
pub edge_num: usize,
pub owning_range: VertexRange,
pub owning_interface: Option<PartitionUnitWeak>,
pub interfaces: Vec<(PartitionUnitWeak, Vec<(VertexIndex, bool)>)>,
pub weighted_edges: Vec<(VertexIndex, VertexIndex, Weight, EdgeIndex)>,
pub virtual_vertices: Vec<VertexIndex>,
}Fields§
§unit_index: usizeunit index
vertex_num: VertexNumthe number of all vertices (including those partitioned into other serial modules)
edge_num: usizethe number of all edges (including those partitioned into other serial modules)
owning_range: VertexRangevertices exclusively owned by this partition; this part must be a continuous range
owning_interface: Option<PartitionUnitWeak>applicable when all the owning vertices are partitioned (i.e. this belongs to a fusion unit)
interfaces: Vec<(PartitionUnitWeak, Vec<(VertexIndex, bool)>)>if applicable, parent interface comes first, then the grandparent interface, … note that some ancestor might be skipped because it has no mirrored vertices; we skip them because if the partition is in a chain, most of them would only have to know two interfaces on the left and on the right; nothing else necessary. (unit_index, list of vertices owned by this ancestor unit and should be mirrored at this partition and whether it’s virtual)
weighted_edges: Vec<(VertexIndex, VertexIndex, Weight, EdgeIndex)>weighted edges, where the first vertex index is within the range [vertex_index_bias, vertex_index_bias + vertex_num) and the second is either in [vertex_index_bias, vertex_index_bias + vertex_num) or inside
virtual_vertices: Vec<VertexIndex>the virtual vertices
Trait Implementations§
Source§impl Clone for PartitionedSolverInitializer
impl Clone for PartitionedSolverInitializer
Source§fn clone(&self) -> PartitionedSolverInitializer
fn clone(&self) -> PartitionedSolverInitializer
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for PartitionedSolverInitializer
impl !RefUnwindSafe for PartitionedSolverInitializer
impl Send for PartitionedSolverInitializer
impl Sync for PartitionedSolverInitializer
impl Unpin for PartitionedSolverInitializer
impl !UnwindSafe for PartitionedSolverInitializer
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)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