swSim  Version 1.0
All Classes Namespaces Files Functions Variables Typedefs Macros
Public Member Functions | Public Attributes | List of all members
swSim::Segmentation Class Reference

Defines data structures for providing Segmentation object to swSim. More...

#include "include/Segmentation.hpp"

Public Member Functions

 Segmentation ()
 Create the Segmentation. More...
 
 Segmentation (swSim::Model &mod, MPI_Comm l_mpi_comm)
 Create the Segmentation with a model and a communicator. More...
 
 Segmentation (swSim::Segmentation &otherSeg)
 Create the Segmentation with another Segmentation. More...
 
 ~Segmentation ()
 Destroy the Segmentation. More...
 
uint64_t SumVector (std::vector< uint64_t > &vec)
 Sums a vector. More...
 
void LoadBalance (std::vector< uint64_t > &planeCounts, int rank, int size)
 Balances the number of slices for each process. More...
 
int MeetTargetCells (std::vector< uint64_t > &planeCounts, int xpos, uint64_t &globalIndexVox, uint64_t target_number_of_cells)
 Determines the number of slices for this process. More...
 
void SetLeftValues (std::vector< uint64_t > &planeCounts, int xpos, uint64_t globalIndexVox)
 Sets the Communication values on the left. More...
 
void SetRightValues (std::vector< uint64_t > &planeCounts, int xpos)
 Sets the Communication values on the right. More...
 
void SetRightValues (std::vector< uint64_t >::size_type planeCountsSize, uint64_t total_cells_remaining)
 Sets the Communication values on the right. More...
 
void MPICreateLeftReceive (std::vector< int32_t > &lrNodes)
 Creates the MPI datatype for recieving from the left. More...
 
void MPICreateLeftSend (std::vector< int32_t > &lsNodes)
 Creates the MPI datatype for sending to the left. More...
 
void MPICreateRightSend (std::vector< int32_t > &rsNodes)
 Creates the MPI datatype for sending to the right. More...
 
void MPICreateRightReceive (std::vector< int32_t > &rrNodes)
 Creates the MPI datatype for recieving from the right. More...
 

Public Attributes

int xIndex0
 the global X index of the first slice for this process More...
 
int xDelta
 the number of YZ slices iin this process More...
 
int neighborLeft
 the rank of this processes left neightbor More...
 
int neighborRight
 the rank of this processes right neightbor More...
 
uint64_t globalIndex0
 the absolute, global index of the first voxel in this process More...
 
uint64_t processVoxels
 the number of voxels in this process More...
 
uint64_t lHaloVoxels
 the number of voxels that are in the left communication halo in this process More...
 
uint64_t rHaloVoxels
 the number of voxels that are in the right communication halo in this process More...
 
MPI_Datatype recieveLeftType
 the MPI data type for recieving data from the left More...
 
MPI_Datatype sendLeftType
 the MPI data type for sending data to the left More...
 
MPI_Datatype recieveRightType
 the MPI data type for recieving data from the right More...
 
MPI_Datatype sendRightType
 the MPI data type for sending data to the right More...
 

Detailed Description

Defines data structures for providing Segmentation object to swSim.

Constructor & Destructor Documentation

◆ Segmentation() [1/3]

swSim::Segmentation::Segmentation ( )

Create the Segmentation.

◆ Segmentation() [2/3]

swSim::Segmentation::Segmentation ( swSim::Model mod,
MPI_Comm  l_mpi_comm 
)

Create the Segmentation with a model and a communicator.

◆ Segmentation() [3/3]

swSim::Segmentation::Segmentation ( swSim::Segmentation otherSeg)

Create the Segmentation with another Segmentation.

◆ ~Segmentation()

swSim::Segmentation::~Segmentation ( )

Destroy the Segmentation.

Member Function Documentation

◆ SumVector()

uint64_t swSim::Segmentation::SumVector ( std::vector< uint64_t > &  vec)

Sums a vector.

◆ LoadBalance()

void swSim::Segmentation::LoadBalance ( std::vector< uint64_t > &  planeCounts,
int  rank,
int  size 
)

Balances the number of slices for each process.

◆ MeetTargetCells()

int swSim::Segmentation::MeetTargetCells ( std::vector< uint64_t > &  planeCounts,
int  xpos,
uint64_t &  globalIndexVox,
uint64_t  target_number_of_cells 
)

Determines the number of slices for this process.

◆ SetLeftValues()

void swSim::Segmentation::SetLeftValues ( std::vector< uint64_t > &  planeCounts,
int  xpos,
uint64_t  globalIndexVox 
)

Sets the Communication values on the left.

◆ SetRightValues() [1/2]

void swSim::Segmentation::SetRightValues ( std::vector< uint64_t > &  planeCounts,
int  xpos 
)

Sets the Communication values on the right.

◆ SetRightValues() [2/2]

void swSim::Segmentation::SetRightValues ( std::vector< uint64_t >::size_type  planeCountsSize,
uint64_t  total_cells_remaining 
)

Sets the Communication values on the right.

◆ MPICreateLeftReceive()

void swSim::Segmentation::MPICreateLeftReceive ( std::vector< int32_t > &  lrNodes)

Creates the MPI datatype for recieving from the left.

◆ MPICreateLeftSend()

void swSim::Segmentation::MPICreateLeftSend ( std::vector< int32_t > &  lsNodes)

Creates the MPI datatype for sending to the left.

◆ MPICreateRightSend()

void swSim::Segmentation::MPICreateRightSend ( std::vector< int32_t > &  rsNodes)

Creates the MPI datatype for sending to the right.

◆ MPICreateRightReceive()

void swSim::Segmentation::MPICreateRightReceive ( std::vector< int32_t > &  rrNodes)

Creates the MPI datatype for recieving from the right.

Member Data Documentation

◆ xIndex0

int swSim::Segmentation::xIndex0

the global X index of the first slice for this process

◆ xDelta

int swSim::Segmentation::xDelta

the number of YZ slices iin this process

◆ neighborLeft

int swSim::Segmentation::neighborLeft

the rank of this processes left neightbor

◆ neighborRight

int swSim::Segmentation::neighborRight

the rank of this processes right neightbor

◆ globalIndex0

uint64_t swSim::Segmentation::globalIndex0

the absolute, global index of the first voxel in this process

◆ processVoxels

uint64_t swSim::Segmentation::processVoxels

the number of voxels in this process

◆ lHaloVoxels

uint64_t swSim::Segmentation::lHaloVoxels

the number of voxels that are in the left communication halo in this process

◆ rHaloVoxels

uint64_t swSim::Segmentation::rHaloVoxels

the number of voxels that are in the right communication halo in this process

◆ recieveLeftType

MPI_Datatype swSim::Segmentation::recieveLeftType

the MPI data type for recieving data from the left

◆ sendLeftType

MPI_Datatype swSim::Segmentation::sendLeftType

the MPI data type for sending data to the left

◆ recieveRightType

MPI_Datatype swSim::Segmentation::recieveRightType

the MPI data type for recieving data from the right

◆ sendRightType

MPI_Datatype swSim::Segmentation::sendRightType

the MPI data type for sending data to the right


The documentation for this class was generated from the following files: