PlasCom2  1.0
XPACC Multi-physics simluation application
halo Class Reference

Detailed Description

Definition at line 411 of file State.H.

#include <State.H>

Classes

struct  messagebuffers
 

Public Member Functions

 halo ()
 
 halo (const pcpp::IndexIntervalType &inGlobalExtent, const pcpp::IndexIntervalType &inPartitionExtent)
 
void SetGridInterval (const pcpp::IndexIntervalType &inExtent)
 
void SetPartitionInterval (const pcpp::IndexIntervalType &inExtent)
 
bool SetFill (bool yesno)
 
bool Fill ()
 
void SetLocalBufferSizes (const std::vector< size_t > &inBufferSizes)
 
void SetLocalPartitionExtent (const pcpp::IndexIntervalType &inExtent)
 
std::vector< pcpp::IndexIntervalTypeCreateRemoteHaloExtents (const pcpp::IndexIntervalType &globalExtent, const pcpp::IndexIntervalType &partitionExtent, std::vector< size_t > &haloSizes)
 
std::vector< pcpp::IndexIntervalTypeCreateRemoteHaloExtents (std::vector< size_t > &haloSizes)
 
std::vector< pcpp::IndexIntervalTypeCreateLocalHaloExtents (const pcpp::IndexIntervalType &globalExtent, const pcpp::IndexIntervalType &partitionExtent, std::vector< size_t > &haloSizes)
 
std::vector< pcpp::IndexIntervalTypeCreateLocalHaloExtents (std::vector< size_t > &haloSizes)
 
void ConfigureHalo (const pcpp::IndexIntervalType &partitionExtent, const std::vector< pcpp::IndexIntervalType > &haloExtents, size_t numHaloVar)
 
void ConfigureHalo (const pcpp::IndexIntervalType &globalExtent, const pcpp::IndexIntervalType &partitionExtent, const std::vector< pcpp::IndexIntervalType > &haloExtents)
 
void ConfigureHalo (const pcpp::IndexIntervalType &globalExtent, const pcpp::IndexIntervalType &partitionExtent)
 
void ConfigureData (const state::base &inState)
 
void ConfigureData (const state::base &inState, const std::vector< int > &selectFields)
 
int CreateThreadSendIndices (int threadId)
 Creates send buffers for each whole local halo extent. More...
 
int CreateThreadRecvIndices (int threadId)
 Create receive buffers for state data from neighboring processors. More...
 
int UnpackSimpleRecvBuffers (int threadId)
 
int PackSimpleSendBuffers (const state::base &inX, int threadId)
 Packs a send buffer with all components of state fields. More...
 
void SetRemoteHaloExtents (const std::vector< pcpp::IndexIntervalType > haloExtents)
 
void SetThreadExtent (int myThreadId, pcpp::IndexIntervalType threadInterval)
 
void SetNumThreads (int numThreadsIn)
 
int NumThreads ()
 
void SetLocalHaloExtents (const std::vector< pcpp::IndexIntervalType > haloExtents)
 
void CreateHaloBuffers ()
 
int CreateSendBuffers (const std::vector< pcpp::RemoteCollisionType > &inCollisions)
 Creates send buffers for intra-grid state communications. More...
 
int CreateRecvBuffers (const std::vector< pcpp::RemoteCollisionType > &inCollisions)
 Create receive buffers for state data from neighboring processors. More...
 
int CreateSimpleSendBuffers ()
 Creates send buffers for each whole local halo extent. More...
 
int CreateSimpleSendIndices ()
 Creates the flat buffer indices for each whole local halo extent. More...
 
int CreateSimpleRecvBuffers ()
 Create receive buffers for state data from neighboring processors. More...
 
int CreateSimpleRecvIndices ()
 
int CreateMessageBuffers (int numComponents)
 
int PackMessageBuffers (const int messageId, const int componentId, const int numComponents, const double *sourceBuffer)
 Pack generic send buffers for specified message. More...
 
int PackMessageBuffers (const int messageId, const int componentId, const int numComponents, const double *sourceBuffer, const int threadId)
 Pack generic send buffers for specified message. More...
 
int SendMessage (const int messageId, const std::vector< int > &neighborRanks, CommunicatorType &inComm)
 
int ReceiveMessage (const int messageId, const std::vector< int > &neighborRanks, CommunicatorType &inComm)
 
int UnPackMessageBuffers (const int messageId, const int componentId, const int numComponents, double *targetBuffer)
 Unpack generic recv buffers for specified message. More...
 
int UnPackMessageBuffers (const int messageId, const int componentId, const int numComponents, double *targetBuffer, const int threadId)
 
void DestroySendBuffers ()
 
void DestroyHaloBuffers ()
 
void DestroyRecvBuffers ()
 
int UnpackReceiveBuffers ()
 
int UnpackSimpleRecvBuffers ()
 
int PackSendBuffers (const state::base &inState)
 Packs a send buffer with all components of state fields. More...
 
int PackSimpleSendBuffers (const state::base &inState)
 Packs a send buffer with all components of state fields. More...
 
int PackSimpleSendBuffers (double inA, const state::base &inX, const state::base &inY)
 Packs a send buffer with all components of state fields. More...
 
int Send (CommunicatorType &inComm)
 Packs a send buffer with all components of state fields. More...
 
int SimpleSend (std::vector< int > &neighborRanks, CommunicatorType &inComm)
 
int PostReceives (CommunicatorType &inComm)
 
int PostSimpleReceives (std::vector< int > &sourceRanks, CommunicatorType &inComm)
 
int CompleteReceives (CommunicatorType &inComm)
 
int CompleteSimpleReceives (CommunicatorType &inComm)
 
int Wait (CommunicatorType &inComm)
 
void SetNeighbors (const std::vector< bool > &inNeighbors)
 
std::vector< double * > & RecvBuffers ()
 
std::vector< std::vector< double * > > & HaloBuffers ()
 
std::vector< double * > & SendBuffers ()
 
std::vector< std::pair< int, std::vector< size_t > > > & HaloRecvIndices ()
 
std::vector< pcpp::RemoteCollisionType > & SendCollisions ()
 
std::vector< pcpp::RemoteCollisionType > & RecvCollisions ()
 
double * HaloBuffer (int fieldIndex, int directionIndex)
 
std::vector< pcpp::IndexIntervalType > & ThreadExtents ()
 
std::vector< int > & StateFieldIndices ()
 
pcpp::IndexIntervalTypeGlobalExtent ()
 
pcpp::IndexIntervalTypePartitionExtent ()
 
std::vector< pcpp::IndexIntervalType > & RemoteHaloExtents ()
 
std::vector< pcpp::IndexIntervalType > & LocalHaloExtents ()
 
const std::vector< pcpp::IndexIntervalType > & RemoteHaloBufferExtents () const
 
const std::vector< pcpp::IndexIntervalType > & LocalHaloBufferExtents () const
 
std::vector< messagebuffers > & CommunicationBuffers ()
 
const std::vector< std::vector< size_t > > & SendIndices () const
 
const std::vector< std::vector< size_t > > & RecvIndices () const
 
std::vector< int > & PeriodicDirs ()
 
void ReportSimpleBufferContents (std::ostream &outStream)
 
 ~halo ()
 
void DestroyAll ()
 

Public Attributes

int numStateComponents
 
int numStateFields
 
std::vector< int > stateFieldIndices
 
std::vector< int > numFieldComponents
 

Protected Attributes

bool ownSendBuffers
 
bool ownRecvBuffers
 
bool ownHaloBuffers
 
bool haveRecvData
 
bool haveSendData
 
bool doFill
 
int numThreads
 
size_t numPointsBuffer
 
std::vector< int > periodicDirs
 
pcpp::IndexIntervalType globalGridExtent
 
pcpp::IndexIntervalType globalPartitionExtent
 
pcpp::IndexIntervalType localPartitionExtent
 
std::vector< size_t > localBufferSizes
 
std::vector< bool > haveNeighbor
 
std::vector< pcpp::IndexIntervalTyperemoteHaloExtents
 
std::vector< pcpp::IndexIntervalTypelocalHaloExtents
 
std::vector< pcpp::IndexIntervalTypelocalHaloBufferExtents
 
std::vector< pcpp::IndexIntervalTyperemoteHaloBufferExtents
 
std::vector< pcpp::IndexIntervalTypesendExtents
 
std::vector< pcpp::IndexIntervalTypethreadExtents
 
std::vector< pcpp::IndexIntervalTypethreadBufferExtents
 
std::vector< pcpp::RemoteCollisionTypesendCollisions
 
std::vector< std::vector< size_t > > sendIndices
 
std::vector< std::vector< std::vector< size_t > > > threadSendIndices
 
std::vector< std::vector< std::vector< size_t > > > threadSendBufferIndices
 
std::vector< pcpp::RemoteCollisionTyperecvCollisions
 
std::vector< std::vector< size_t > > recvIndices
 
std::vector< std::pair< int, std::vector< size_t > > > haloRecvIndices
 
std::vector< std::vector< std::vector< size_t > > > threadRecvIndices
 
std::vector< std::vector< std::vector< size_t > > > threadRecvBufferIndices
 
std::vector< std::vector< std::vector< size_t > > > threadHaloBufferIndices
 
std::vector< messagebufferscommunicationBuffers
 
std::vector< double * > sendBuffers
 
std::vector< double * > recvBuffers
 
std::vector< std::vector< double * > > haloBuffers
 stores the state variable values in the halo zones More...
 
Collaboration diagram for halo:

Constructor & Destructor Documentation

◆ halo() [1/2]

halo ( )
inline

Definition at line 431 of file State.H.

◆ halo() [2/2]

halo ( const pcpp::IndexIntervalType inGlobalExtent,
const pcpp::IndexIntervalType inPartitionExtent 
)
inline

Definition at line 435 of file State.H.

◆ ~halo()

~halo ( )
inline

Definition at line 636 of file State.H.

Member Function Documentation

◆ CommunicationBuffers()

std::vector<messagebuffers>& CommunicationBuffers ( )
inline

Definition at line 630 of file State.H.

◆ CompleteReceives()

int CompleteReceives ( CommunicatorType inComm)

Definition at line 1536 of file State.C.

References CommunicatorObject::WaitAll().

Here is the call graph for this function:

◆ CompleteSimpleReceives()

int CompleteSimpleReceives ( CommunicatorType inComm)

Definition at line 1553 of file State.C.

References CommunicatorObject::WaitAll().

Referenced by TestHaloParallel(), and TestHaloPeriodic().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConfigureData() [1/2]

void ConfigureData ( const state::base inState)

Definition at line 1513 of file State.C.

References base::StateFieldIndices().

Referenced by TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), and TestHaloThreaded().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConfigureData() [2/2]

void ConfigureData ( const state::base inState,
const std::vector< int > &  selectFields 
)

Definition at line 1519 of file State.C.

References dataset::Meta().

Here is the call graph for this function:

◆ ConfigureHalo() [1/3]

void ConfigureHalo ( const pcpp::IndexIntervalType partitionExtent,
const std::vector< pcpp::IndexIntervalType > &  haloExtents,
size_t  numHaloVar 
)

Definition at line 67 of file State.C.

◆ ConfigureHalo() [2/3]

void ConfigureHalo ( const pcpp::IndexIntervalType globalExtent,
const pcpp::IndexIntervalType partitionExtent,
const std::vector< pcpp::IndexIntervalType > &  haloExtents 
)

Definition at line 220 of file State.C.

◆ ConfigureHalo() [3/3]

void ConfigureHalo ( const pcpp::IndexIntervalType globalExtent,
const pcpp::IndexIntervalType partitionExtent 
)

Definition at line 230 of file State.C.

◆ CreateHaloBuffers()

void CreateHaloBuffers ( )

Definition at line 238 of file State.C.

References sizeextent::NNodes().

Referenced by TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), and TestHaloThreaded().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateLocalHaloExtents() [1/2]

std::vector< pcpp::IndexIntervalType > CreateLocalHaloExtents ( const pcpp::IndexIntervalType globalExtent,
const pcpp::IndexIntervalType partitionExtent,
std::vector< size_t > &  haloSizes 
)

Definition at line 155 of file State.C.

Referenced by TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), and TestHaloThreaded().

Here is the caller graph for this function:

◆ CreateLocalHaloExtents() [2/2]

std::vector< pcpp::IndexIntervalType > CreateLocalHaloExtents ( std::vector< size_t > &  haloSizes)

Definition at line 214 of file State.C.

◆ CreateMessageBuffers()

◆ CreateRecvBuffers()

int CreateRecvBuffers ( const std::vector< pcpp::RemoteCollisionType > &  inCollisions)

Create receive buffers for state data from neighboring processors.

Parameters
inCollisionsMust have extents wrt global indexing

Definition at line 504 of file State.C.

References sizeextent::GetFlatIndices(), sizeextent::NNodes(), and sizeextent::Overlap().

Here is the call graph for this function:

◆ CreateRemoteHaloExtents() [1/2]

std::vector< pcpp::IndexIntervalType > CreateRemoteHaloExtents ( const pcpp::IndexIntervalType globalExtent,
const pcpp::IndexIntervalType partitionExtent,
std::vector< size_t > &  haloSizes 
)

Definition at line 78 of file State.C.

Referenced by TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), and TestHaloThreaded().

Here is the caller graph for this function:

◆ CreateRemoteHaloExtents() [2/2]

std::vector< pcpp::IndexIntervalType > CreateRemoteHaloExtents ( std::vector< size_t > &  haloSizes)

Definition at line 147 of file State.C.

◆ CreateSendBuffers()

int CreateSendBuffers ( const std::vector< pcpp::RemoteCollisionType > &  inCollisions)

Creates send buffers for intra-grid state communications.

Parameters
globalExtentis the global extent of the local partition
inCollisionsextents must be wrt global indices

Definition at line 481 of file State.C.

◆ CreateSimpleRecvBuffers()

int CreateSimpleRecvBuffers ( )

Create receive buffers for state data from neighboring processors.

Parameters
inCollisionsMust have extents wrt global indexing

Definition at line 554 of file State.C.

References sizeextent::GetFlatIndices(), and sizeextent::InitSimple().

Referenced by TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), and TestHaloThreaded().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateSimpleRecvIndices()

int CreateSimpleRecvIndices ( )

Definition at line 601 of file State.C.

References sizeextent::GetFlatIndices(), and sizeextent::InitSimple().

Here is the call graph for this function:

◆ CreateSimpleSendBuffers()

int CreateSimpleSendBuffers ( )

Creates send buffers for each whole local halo extent.

Definition at line 347 of file State.C.

References bufferInterval, sizeextent::GetFlatIndices(), and sizeextent::InitSimple().

Referenced by TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), and TestHaloThreaded().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateSimpleSendIndices()

int CreateSimpleSendIndices ( )

Creates the flat buffer indices for each whole local halo extent.

Definition at line 305 of file State.C.

References bufferInterval, sizeextent::GetFlatIndices(), and sizeextent::InitSimple().

Here is the call graph for this function:

◆ CreateThreadRecvIndices()

int CreateThreadRecvIndices ( int  threadId)

Create receive buffers for state data from neighboring processors.

Parameters
inCollisionsMust have extents wrt global indexing

Definition at line 826 of file State.C.

References sizeextent::GetFlatIndices(), sizeextent::InitSimple(), sizeextent::NNodes(), numComponents, and sizeextent::Overlap().

Referenced by TestHaloThreaded().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateThreadSendIndices()

int CreateThreadSendIndices ( int  threadId)

Creates send buffers for each whole local halo extent.

Definition at line 397 of file State.C.

References bufferInterval, sizeextent::GetFlatIndices(), sizeextent::InitSimple(), sizeextent::NNodes(), and sizeextent::Overlap().

Referenced by TestHaloThreaded().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DestroyAll()

void DestroyAll ( )
inline

Definition at line 639 of file State.H.

◆ DestroyHaloBuffers()

void DestroyHaloBuffers ( )

Definition at line 278 of file State.C.

◆ DestroyRecvBuffers()

void DestroyRecvBuffers ( )

Definition at line 291 of file State.C.

◆ DestroySendBuffers()

void DestroySendBuffers ( )

Definition at line 265 of file State.C.

◆ Fill()

bool Fill ( )
inline

Definition at line 445 of file State.H.

◆ GlobalExtent()

pcpp::IndexIntervalType& GlobalExtent ( )
inline

Definition at line 623 of file State.H.

Referenced by TestHaloBasic(), TestHaloParallel(), and TestHaloThreaded().

Here is the caller graph for this function:

◆ HaloBuffer()

double* HaloBuffer ( int  fieldIndex,
int  directionIndex 
)
inline

Definition at line 619 of file State.H.

◆ HaloBuffers()

std::vector<std::vector<double *> >& HaloBuffers ( )
inline

Definition at line 609 of file State.H.

Referenced by TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), and TestHaloThreaded().

Here is the caller graph for this function:

◆ HaloRecvIndices()

std::vector<std::pair<int,std::vector<size_t> > >& HaloRecvIndices ( )
inline

Definition at line 613 of file State.H.

◆ LocalHaloBufferExtents()

const std::vector<pcpp::IndexIntervalType>& LocalHaloBufferExtents ( ) const
inline

Definition at line 628 of file State.H.

◆ LocalHaloExtents()

std::vector<pcpp::IndexIntervalType>& LocalHaloExtents ( )
inline

Definition at line 626 of file State.H.

Referenced by TestHaloBasic(), and TestHaloParallel().

Here is the caller graph for this function:

◆ NumThreads()

int NumThreads ( )
inline

Definition at line 542 of file State.H.

Referenced by TestHaloThreaded().

Here is the caller graph for this function:

◆ PackMessageBuffers() [1/2]

int PackMessageBuffers ( const int  messageId,
const int  componentId,
const int  numComponents,
const double *  sourceBuffer 
)

Pack generic send buffers for specified message.

For the message specified by messageId, pack a message starting at componentId, and packing numComponents components from the data contained in sourceBuffer. The sourceBuffer is assumed to have a size indicated by the numPointsBuffer, which came from bufferSizes - both member data. The specific source buffer indices are pulled from member data item sendIndices, which must have been setup already by calling CreateSimpleSendIndices.

Definition at line 666 of file State.C.

References numComponents, and numPointsBuffer.

◆ PackMessageBuffers() [2/2]

int PackMessageBuffers ( const int  messageId,
const int  componentId,
const int  numComponents,
const double *  sourceBuffer,
const int  threadId 
)

Pack generic send buffers for specified message.

For the message specified by messageId, pack a message starting at componentId, and packing numComponents components from the data contained in sourceBuffer. The sourceBuffer is assumed to have a size indicated by the numPointsBuffer, which came from bufferSizes - both member data. The specific source buffer indices are pulled from member data item sendIndices, which must have been setup already by calling CreateSimpleSendIndices.

Definition at line 697 of file State.C.

References numComponents, and numPointsBuffer.

◆ PackSendBuffers()

int PackSendBuffers ( const state::base inState)

Packs a send buffer with all components of state fields.

Definition at line 1070 of file State.C.

References databuffer::Data(), dataset::Data(), dataset::Meta(), metadata::ncomp, databuffer::NItems(), numComponents, and base::StateFieldIndices().

Here is the call graph for this function:

◆ PackSimpleSendBuffers() [1/3]

int PackSimpleSendBuffers ( const state::base inX,
int  threadId 
)

Packs a send buffer with all components of state fields.

Definition at line 1301 of file State.C.

References databuffer::Data(), dataset::Data(), dataset::Meta(), metadata::ncomp, databuffer::NItems(), and numComponents.

Referenced by TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), and TestHaloThreaded().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PackSimpleSendBuffers() [2/3]

int PackSimpleSendBuffers ( const state::base inState)

Packs a send buffer with all components of state fields.

Definition at line 1254 of file State.C.

References databuffer::Data(), dataset::Data(), dataset::Meta(), metadata::ncomp, databuffer::NItems(), and numComponents.

Here is the call graph for this function:

◆ PackSimpleSendBuffers() [3/3]

int PackSimpleSendBuffers ( double  inA,
const state::base inX,
const state::base inY 
)

Packs a send buffer with all components of state fields.

Packs a send buffer with all components of state fields

Definition at line 1204 of file State.C.

References databuffer::Data(), dataset::Data(), dataset::Meta(), metadata::ncomp, databuffer::NItems(), and numComponents.

Here is the call graph for this function:

◆ PartitionExtent()

pcpp::IndexIntervalType& PartitionExtent ( )
inline

Definition at line 624 of file State.H.

Referenced by TestHaloBasic(), TestHaloParallel(), and TestHaloThreaded().

Here is the caller graph for this function:

◆ PeriodicDirs()

std::vector<int>& PeriodicDirs ( )
inline

Definition at line 633 of file State.H.

◆ PostReceives()

int PostReceives ( CommunicatorType inComm)

Definition at line 1432 of file State.C.

References CommunicatorObject::ARecvBuf(), CommunicatorObject::NProc(), and numPoints.

Here is the call graph for this function:

◆ PostSimpleReceives()

int PostSimpleReceives ( std::vector< int > &  sourceRanks,
CommunicatorType inComm 
)

Definition at line 1456 of file State.C.

References CommunicatorObject::ARecvBuf(), and numPoints.

Referenced by TestHaloParallel(), and TestHaloPeriodic().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReceiveMessage()

int ReceiveMessage ( const int  messageId,
const std::vector< int > &  neighborRanks,
CommunicatorType inComm 
)

Definition at line 742 of file State.C.

References CommunicatorObject::ARecvBuf(), numComponents, and CommunicatorObject::WaitAll().

Here is the call graph for this function:

◆ RecvBuffers()

std::vector<double *>& RecvBuffers ( )
inline

Definition at line 607 of file State.H.

Referenced by TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), and TestHaloThreaded().

Here is the caller graph for this function:

◆ RecvCollisions()

std::vector<pcpp::RemoteCollisionType>& RecvCollisions ( )
inline

Definition at line 617 of file State.H.

◆ RecvIndices()

const std::vector<std::vector<size_t> >& RecvIndices ( ) const
inline

Definition at line 632 of file State.H.

◆ RemoteHaloBufferExtents()

const std::vector<pcpp::IndexIntervalType>& RemoteHaloBufferExtents ( ) const
inline

Definition at line 627 of file State.H.

◆ RemoteHaloExtents()

std::vector<pcpp::IndexIntervalType>& RemoteHaloExtents ( )
inline

Definition at line 625 of file State.H.

Referenced by TestHaloBasic(), and TestHaloParallel().

Here is the caller graph for this function:

◆ ReportSimpleBufferContents()

void ReportSimpleBufferContents ( std::ostream &  outStream)

Definition at line 1565 of file State.C.

References sizeextent::NNodes(), and pcpp::report::StructuredBufferContents().

Here is the call graph for this function:

◆ Send()

int Send ( CommunicatorType inComm)

Packs a send buffer with all components of state fields.

Definition at line 1408 of file State.C.

References CommunicatorObject::ASendBuf(), CommunicatorObject::NProc(), and numPoints.

Here is the call graph for this function:

◆ SendBuffers()

std::vector<double *>& SendBuffers ( )
inline

Definition at line 611 of file State.H.

Referenced by TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), and TestHaloThreaded().

Here is the caller graph for this function:

◆ SendCollisions()

std::vector<pcpp::RemoteCollisionType>& SendCollisions ( )
inline

Definition at line 615 of file State.H.

◆ SendIndices()

const std::vector<std::vector<size_t> >& SendIndices ( ) const
inline

Definition at line 631 of file State.H.

◆ SendMessage()

int SendMessage ( const int  messageId,
const std::vector< int > &  neighborRanks,
CommunicatorType inComm 
)

Definition at line 722 of file State.C.

References CommunicatorObject::ASendBuf(), and numComponents.

Here is the call graph for this function:

◆ SetFill()

bool SetFill ( bool  yesno)
inline

Definition at line 444 of file State.H.

◆ SetGridInterval()

void SetGridInterval ( const pcpp::IndexIntervalType inExtent)
inline

Definition at line 441 of file State.H.

◆ SetLocalBufferSizes()

void SetLocalBufferSizes ( const std::vector< size_t > &  inBufferSizes)
inline

Definition at line 447 of file State.H.

References numPointsBuffer.

◆ SetLocalHaloExtents()

void SetLocalHaloExtents ( const std::vector< pcpp::IndexIntervalType haloExtents)
inline

Definition at line 545 of file State.H.

References sizeextent::Copy(), and numComponents.

Referenced by TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), and TestHaloThreaded().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetLocalPartitionExtent()

void SetLocalPartitionExtent ( const pcpp::IndexIntervalType inExtent)
inline

Definition at line 456 of file State.H.

◆ SetNeighbors()

void SetNeighbors ( const std::vector< bool > &  inNeighbors)
inline

Definition at line 604 of file State.H.

Referenced by TestHaloPeriodic().

Here is the caller graph for this function:

◆ SetNumThreads()

void SetNumThreads ( int  numThreadsIn)
inline

Definition at line 531 of file State.H.

Referenced by TestHaloThreaded().

Here is the caller graph for this function:

◆ SetPartitionInterval()

void SetPartitionInterval ( const pcpp::IndexIntervalType inExtent)
inline

Definition at line 442 of file State.H.

◆ SetRemoteHaloExtents()

void SetRemoteHaloExtents ( const std::vector< pcpp::IndexIntervalType haloExtents)
inline

Definition at line 485 of file State.H.

References sizeextent::Copy(), and sizeextent::NNodes().

Referenced by TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), and TestHaloThreaded().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetThreadExtent()

void SetThreadExtent ( int  myThreadId,
pcpp::IndexIntervalType  threadInterval 
)
inline

Definition at line 514 of file State.H.

Referenced by TestHaloThreaded().

Here is the caller graph for this function:

◆ SimpleSend()

int SimpleSend ( std::vector< int > &  neighborRanks,
CommunicatorType inComm 
)

Definition at line 1115 of file State.C.

References CommunicatorObject::ASendBuf(), sizeextent::NNodes(), and numPoints.

Referenced by TestHaloParallel(), and TestHaloPeriodic().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StateFieldIndices()

std::vector<int>& StateFieldIndices ( )
inline

Definition at line 622 of file State.H.

Referenced by TestHaloBasic(), and TestHaloParallel().

Here is the caller graph for this function:

◆ ThreadExtents()

std::vector<pcpp::IndexIntervalType>& ThreadExtents ( )
inline

Definition at line 621 of file State.H.

Referenced by TestHaloThreaded().

Here is the caller graph for this function:

◆ UnPackMessageBuffers() [1/2]

int UnPackMessageBuffers ( const int  messageId,
const int  componentId,
const int  numComponents,
double *  targetBuffer 
)

Unpack generic recv buffers for specified message.

For the message specified by messageId, unpack a message starting at componentId, and unpacking numComponents components from the data contained in the message receive buffers into the targetBuffer. The targetBuffer is assumed to have a size indicated by the numPointsBuffer, which came from bufferSizes - both member data. The specific target buffer indices are pulled from member data item recvIndices, which must have been setup already by calling CreateSimpleRecvIndices.

Definition at line 777 of file State.C.

References numComponents, and numPointsBuffer.

◆ UnPackMessageBuffers() [2/2]

int UnPackMessageBuffers ( const int  messageId,
const int  componentId,
const int  numComponents,
double *  targetBuffer,
const int  threadId 
)

Definition at line 798 of file State.C.

References numComponents, and numPointsBuffer.

◆ UnpackReceiveBuffers()

int UnpackReceiveBuffers ( )

Definition at line 926 of file State.C.

References numComponents.

Referenced by TestHaloBasic().

Here is the caller graph for this function:

◆ UnpackSimpleRecvBuffers() [1/2]

int UnpackSimpleRecvBuffers ( int  threadId)

Definition at line 1009 of file State.C.

References numComponents.

Referenced by TestHaloThreaded().

Here is the caller graph for this function:

◆ UnpackSimpleRecvBuffers() [2/2]

int UnpackSimpleRecvBuffers ( )

Definition at line 963 of file State.C.

References numComponents.

◆ Wait()

int Wait ( CommunicatorType inComm)

Definition at line 1545 of file State.C.

References CommunicatorObject::WaitAll().

Here is the call graph for this function:

Member Data Documentation

◆ communicationBuffers

std::vector<messagebuffers> communicationBuffers
protected

Definition at line 697 of file State.H.

◆ doFill

bool doFill
protected

Definition at line 652 of file State.H.

◆ globalGridExtent

pcpp::IndexIntervalType globalGridExtent
protected

Definition at line 661 of file State.H.

◆ globalPartitionExtent

pcpp::IndexIntervalType globalPartitionExtent
protected

Definition at line 662 of file State.H.

◆ haloBuffers

std::vector< std::vector<double *> > haloBuffers
protected

stores the state variable values in the halo zones

The haloBuffers has sizes [NFields][6][NumPointsHalo*NumFieldComponents]. There is a separate buffer for each state field that is large enough to hold all the components of that field.

Definition at line 706 of file State.H.

◆ haloRecvIndices

std::vector<std::pair<int,std::vector<size_t> > > haloRecvIndices
protected

Definition at line 686 of file State.H.

◆ haveNeighbor

std::vector<bool> haveNeighbor
protected

Definition at line 666 of file State.H.

◆ haveRecvData

bool haveRecvData
protected

Definition at line 650 of file State.H.

◆ haveSendData

bool haveSendData
protected

Definition at line 651 of file State.H.

◆ localBufferSizes

std::vector<size_t> localBufferSizes
protected

Definition at line 664 of file State.H.

◆ localHaloBufferExtents

std::vector<pcpp::IndexIntervalType> localHaloBufferExtents
protected

Definition at line 669 of file State.H.

◆ localHaloExtents

std::vector<pcpp::IndexIntervalType> localHaloExtents
protected

Definition at line 668 of file State.H.

◆ localPartitionExtent

pcpp::IndexIntervalType localPartitionExtent
protected

Definition at line 663 of file State.H.

◆ numFieldComponents

std::vector<int> numFieldComponents

Definition at line 429 of file State.H.

Referenced by TestHaloBasic(), and TestHaloThreaded().

◆ numPointsBuffer

size_t numPointsBuffer
protected

Definition at line 654 of file State.H.

◆ numStateComponents

int numStateComponents

Definition at line 424 of file State.H.

Referenced by TestHaloBasic(), TestHaloParallel(), TestHaloPeriodic(), and TestHaloThreaded().

◆ numStateFields

int numStateFields

Definition at line 425 of file State.H.

Referenced by TestHaloBasic(), TestHaloParallel(), and TestHaloThreaded().

◆ numThreads

int numThreads
protected

Definition at line 653 of file State.H.

◆ ownHaloBuffers

bool ownHaloBuffers
protected

Definition at line 649 of file State.H.

◆ ownRecvBuffers

bool ownRecvBuffers
protected

Definition at line 648 of file State.H.

◆ ownSendBuffers

bool ownSendBuffers
protected

Definition at line 644 of file State.H.

◆ periodicDirs

std::vector<int> periodicDirs
protected

Definition at line 657 of file State.H.

◆ recvBuffers

std::vector<double *> recvBuffers
protected

Definition at line 699 of file State.H.

◆ recvCollisions

std::vector<pcpp::RemoteCollisionType> recvCollisions
protected

Definition at line 684 of file State.H.

◆ recvIndices

std::vector<std::vector<size_t> > recvIndices
protected

Definition at line 685 of file State.H.

◆ remoteHaloBufferExtents

std::vector<pcpp::IndexIntervalType> remoteHaloBufferExtents
protected

Definition at line 670 of file State.H.

◆ remoteHaloExtents

std::vector<pcpp::IndexIntervalType> remoteHaloExtents
protected

Definition at line 667 of file State.H.

◆ sendBuffers

std::vector<double *> sendBuffers
protected

Definition at line 698 of file State.H.

◆ sendCollisions

std::vector<pcpp::RemoteCollisionType> sendCollisions
protected

Definition at line 678 of file State.H.

◆ sendExtents

std::vector<pcpp::IndexIntervalType> sendExtents
protected

Definition at line 671 of file State.H.

◆ sendIndices

std::vector<std::vector<size_t> > sendIndices
protected

Definition at line 679 of file State.H.

◆ stateFieldIndices

std::vector<int> stateFieldIndices

Definition at line 428 of file State.H.

◆ threadBufferExtents

std::vector<pcpp::IndexIntervalType> threadBufferExtents
protected

Definition at line 674 of file State.H.

◆ threadExtents

std::vector<pcpp::IndexIntervalType> threadExtents
protected

Definition at line 673 of file State.H.

◆ threadHaloBufferIndices

std::vector<std::vector<std::vector<size_t> > > threadHaloBufferIndices
protected

Definition at line 690 of file State.H.

◆ threadRecvBufferIndices

std::vector<std::vector<std::vector<size_t> > > threadRecvBufferIndices
protected

Definition at line 689 of file State.H.

◆ threadRecvIndices

std::vector<std::vector<std::vector<size_t> > > threadRecvIndices
protected

Definition at line 688 of file State.H.

◆ threadSendBufferIndices

std::vector<std::vector<std::vector<size_t> > > threadSendBufferIndices
protected

Definition at line 681 of file State.H.

◆ threadSendIndices

std::vector<std::vector<std::vector<size_t> > > threadSendIndices
protected

Definition at line 680 of file State.H.


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