Skip to main content

ParallelBuilder

Trait ParallelBuilder 

Source
pub trait ParallelBuilder: Builder {
    type ParallelMesh<'a, C: Communicator + 'a>: ParallelMesh<C = C>
       where Self: 'a;

    // Required methods
    fn create_parallel_mesh_root<'a, C: Communicator>(
        &self,
        comm: &'a C,
        partitioner: GraphPartitioner,
    ) -> Self::ParallelMesh<'a, C>;
    fn create_parallel_mesh<'a, C: Communicator>(
        &self,
        comm: &'a C,
        root_rank: i32,
    ) -> Self::ParallelMesh<'a, C>;
}
Expand description

MPI parallelized mesh builder

Required Associated Types§

Source

type ParallelMesh<'a, C: Communicator + 'a>: ParallelMesh<C = C> where Self: 'a

Parallel mesh type

Required Methods§

Source

fn create_parallel_mesh_root<'a, C: Communicator>( &self, comm: &'a C, partitioner: GraphPartitioner, ) -> Self::ParallelMesh<'a, C>

Create a parallel mesh (call from root)

Source

fn create_parallel_mesh<'a, C: Communicator>( &self, comm: &'a C, root_rank: i32, ) -> Self::ParallelMesh<'a, C>

Create a parallel mesh (call from other processes)

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<B: Builder + GeometryBuilder + TopologyBuilder + MeshBuilder> ParallelBuilder for B
where Vec<B::T>: Buffer, B::T: Equivalence, Vec<B::EntityDescriptor>: Buffer, B::EntityDescriptor: Equivalence, B::Mesh: Sync,

Source§

type ParallelMesh<'a, C: Communicator + 'a> = ParallelMeshImpl<'a, C, <B as Builder>::Mesh> where Self: 'a