C++ mpi module for stochmagnet_main Package
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
SMOMPI_OneMasterMacroCellsNetwork Class Reference

This class describes a macro cell network for one master core implementation. More...

#include <SMOMPI_OneMasterMacroCellsNetwork.h>

Inheritance diagram for SMOMPI_OneMasterMacroCellsNetwork:
Inheritance graph
[legend]
Collaboration diagram for SMOMPI_OneMasterMacroCellsNetwork:
Collaboration graph
[legend]

Public Member Functions

virtual CORE_UniquePointer< SM_MacroCellsNetworknewInstance () const override
 create a New instance of this More...
 
virtual tMemSize getMemorySize () const
 return the memory size of the class and the memory size of all its attributes/associations More...
 
virtual tMemSize getContentsMemorySize () const
 return the memory size of the included associations More...
 
const tMPICoreId & getMasterCoreId () const
 get the master core id
 
void setMasterCoreId (const tMPICoreId &coreId)
 set the master core id More...
 
const std::valarray< tInteger > & getBoundingBoxMacroCellsIndex () const
 return the index of the macro cell within the not empty macro cells list of the boundig box More...
 
tInteger getBoundingBoxMacroCellsNumber () const
 return the number of not empty macro cells of the bouning box More...
 
const SM_RealFieldgetBoundingBoxMacroCellsMassCenter () const
 get the mass center on all not empty macro cells of the bouding box of macro cells More...
 
const std::valarray< tReal > & getBoundingBoxMacroCellsVolume () const
 get the volume on all not empty macro cells of the bouding box of macro cells More...
 
virtual void computeMacroCells (const SM_Material &material, const SM_Network &network) override
 compute the macro cells of the network More...
 
virtual void computeMacroCellsMassCenter (const SM_Material &material, const SM_Network &network) override
 compute the macro cells of the network More...
 
virtual tString toString () const override
 return string representaton of the operator
 
- Public Member Functions inherited from SM_MacroCellsNetwork
void setMacroCellMargin (const tReal &w)
 set margin More...
 
const tReal & getMacroCellMargin () const
 get margin More...
 
void setMacroCellSize (const std::array< tReal, SM_Constants::DIM > &H)
 set the macro cell size in angstrom More...
 
void setMacroCellSize (const std::vector< tReal > &H)
 set the macro cell size in angstrom More...
 
const std::array< tReal, SM_Constants::DIM > & getMacroCellSize () const
 get the macro cell size
 
void setMacroCellsNumber (const tInteger &n)
 set the number of macro cells
 
const tInteger & getMacroCellsNumber () const
 get the number of macro cells
 
const SM_RealFieldgetMacroCellsMassCenter () const
 get the mass center of the macro cells for reading
 
SM_RealFieldgetMacroCellsMassCenter ()
 get the mass center of the macro cells for writing
 
const std::valarray< tInteger > & getMacroCellsList () const
 get the index of macro cell containing each particle p

 
std::valarray< tInteger > & getMacroCellsList ()
 get the index of macro cell containing each particle p

 
const std::valarray< tReal > & getMacroCellsVolume () const
 get volume of macro cells in Angstrom
 
std::valarray< tReal > & getMacroCellsVolume ()
 get volume of macro cells in Angstrom
 
const tReal & getMacroCellVolume (const tInteger &m) const
 get volume of macro cell at index m in Angstrom More...
 
const tInteger & getMacroCellIndex (const tInteger &p) const
 get the local index of the macro cell containing particle p More...
 
- Public Member Functions inherited from SM_Object
 SM_Object (void)
 create
 
virtual ~SM_Object (void)
 destroy
 
- Public Member Functions inherited from CORE_Object
template<class T >
std::shared_ptr< T > getSharedPointer ()
 return the shared pointer for this More...
 
template<class T >
std::shared_ptr< const T > getConstSharedPointer () const
 return a const shared pointer for this More...
 
template<class T >
tBoolean isInstanceOf () const
 test if the clas T is an instance of this class More...
 
tString getClassName () const
 return the name of the class More...
 
tString getPointerString () const
 retrun the pointer of the class as a string More...
 
tString getIdentityString () const
 retrun the string identification of the class More...
 

Static Public Member Functions

static CORE_UniquePointer< SelfClassNew ()
 return a new unique instnace of class This More...
 
static tBoolean WaitForBoundingBoxMacroCellsIndexFromNeighborCore (const MPI_Environment &mpiEnv, tMPICoreId &c, const tMPITag &tag, tMPICount &nValues, std::valarray< tInteger > &boundingBoxMacroCellsIndex, tMPIBoolean &isAvaliable, tMPIStatus &status, std::map< tMPICoreId, tBoolean > &isDataReceivedFromCore)
 wait for receiveing the map boundingBoxMacroCellsIndex [0,nMCs[ -> [0,nBBMCs[ from the core c with tag. More...
 
static tBoolean WaitForWeightFieldFromNeighborCore (const MPI_Environment &mpiEnv, tMPICoreId &c, const tMPITag &tagIndices, tMPICount &nIndices, std::valarray< tInteger > &boundingBoxMacroCellsIndex, const tMPITag &tagX, tMPICount &sX, std::valarray< tReal > &X, const tMPITag &tagW, tMPICount &nW, std::valarray< tInteger > &W, tMPIBoolean &isAvaliable, tMPIStatus &status, std::array< tMPIRequest, 3 > &requests, std::map< tMPICoreId, tBoolean > &isDataReceivedFromCore)
 wait for receiving the map boundingBoxMacroCellsIndex [0,nMCs[ -> [0,nBBMCs[ and fields (W,X) from the core c with tag. More...
 
static tBoolean WaitForFieldFromNeighborCore (const MPI_Environment &mpiEnv, tMPICoreId &c, const tMPITag &tagIndices, tMPICount &nIndices, std::valarray< tInteger > &boundingBoxMacroCellsIndex, const tMPITag &tagX, tMPICount &sX, std::valarray< tReal > &X, tMPIBoolean &isAvaliable, tMPIStatus &status, std::array< tMPIRequest, 2 > &requests, std::map< tMPICoreId, tBoolean > &isDataReceivedFromCore)
 wait for receiving the map boundingBoxMacroCellsIndex [0,nMCs[ -> [0,nBBMCs[ and fields X from the core c with tag. More...
 
static void SumReduceField (const MPI_Environment &mpiEnv, const tMPICoreId &masterCoreId, const tMPITag &tagX, const std::valarray< tInteger > &BBMacroCellsIndexMap, const SM_RealField &Xc, const std::valarray< tInteger > &Wc, SM_RealField &X, std::valarray< tInteger > &W, std::valarray< tInteger > &coreBBMacroCellsIndex, std::valarray< tReal > &corePX, std::valarray< tInteger > &corePW)
 make the sum reduction of the field Xc into X (Wc into W) with the map BBMacroCellsIndexMap More...
 
static void SumReduceField (const MPI_Environment &mpiEnv, const tMPICoreId &masterCoreId, const tMPITag &tagX, const std::valarray< tInteger > &BBMacroCellsIndexMap, const SM_RealField &Xc, SM_RealField &X, std::valarray< tInteger > &coreBBMacroCellsIndex, std::valarray< tReal > &corePX)
 make the sum reduction of the field Xc into X with the map BBMacroCellsIndexMap More...
 
static void ScatterField (const MPI_Environment &mpiEnv, const tMPICoreId &masterCoreId, const tMPITag &tagX, const SM_RealField &X, const std::valarray< tInteger > &BBMacroCellsIndexMap, SM_RealField &Xc, std::valarray< tInteger > &coreBBMacroCellsIndex, std::valarray< tReal > &coreX)
 scatter he field X into Xc with the map BBMacroCellsIndexMap More...
 
static void ISendFieldToCore (const MPI_Environment &mpiEnv, const tMPICoreId &c, const tMPICount &nMCs, const tInteger *BBMacroCellsIndexMap, const SM_RealField &X, const tMPITag &tagX, tMPIRequest &request, tReal *vXc)
 non blocking end message to send selected values of X with the map BMacroCellsIndexMap to values of Xc More...
 
static void SelectFieldValues (const tMPICount &nMCs, const tInteger *BBMacroCellsIndexMap, const SM_RealField &X, tReal *Xs)
 selected value from X with map BBMacroCellsIndex, More...
 
- Static Public Member Functions inherited from CORE_Object
static tBoolean EnableMemoryStack (const tBoolean &isMemoryChecked)
 enable the memory stack More...
 
static void EnableMemoryStack ()
 enable the memory stack
 
static void DisableMemoryStack ()
 disable the memory stack
 
static tBoolean IsMemoryStackEnabled ()
 return trur if the memory stack is enabled
 
static tString MemoryStackToString ()
 get the memory stack in string More...
 
static tIndex GetRegisteredClassesNumber ()
 get the memory stack in string More...
 

Protected Member Functions

 SMOMPI_OneMasterMacroCellsNetwork (void)
 create a network class
 
virtual ~SMOMPI_OneMasterMacroCellsNetwork (void)
 destroy
 
virtual void computeBoundingBoxMacroCells (const SM_Material &material, const SM_Network &network, const std::array< tReal, SM_Constants::DIM > &P, const std::array< tReal, SM_Constants::DIM > &Q) override
 compute the macro cells of the network More...
 
- Protected Member Functions inherited from SM_MacroCellsNetwork
 SM_MacroCellsNetwork (void)
 create a network class
 
virtual ~SM_MacroCellsNetwork (void)
 destroy
 
- Protected Member Functions inherited from CORE_Object
 CORE_Object ()
 build an instance of the object
 
virtual ~CORE_Object ()
 destroy the instance of object std

 

Additional Inherited Members

- Static Protected Member Functions inherited from SM_MacroCellsNetwork
static tInteger ComputeMacroCells (const SM_Material &material, const SM_Network &network, const std::array< tReal, SM_Constants::DIM > &P, const std::array< tReal, SM_Constants::DIM > &Q, const std::array< tReal, SM_Constants::DIM > &macroCellSize, const tReal &margin, const tReal &epsVW, std::valarray< tReal > &MCsVolume, std::valarray< tInteger > &macroCellsList)
 compute the macro cells points and magnetization More...
 
static void EliminateEmptyMacroCells (const tReal &epsVM, std::valarray< tReal > &gMCVolume, std::valarray< tReal > &lMCVolume, std::valarray< tInteger > &gMCLocalIndices)
 eliminate empty macro cells form lists More...
 
static void BuildParticlesListOrderedPerMacroCells (const SM_Network &network, const tInteger &nMacroCells, const std::valarray< tInteger > &macroCellsPList, std::valarray< tInteger > &particlesMCList, std::valarray< tInteger > &particlesMCListOffset)
 build the particles list for all not empty macro cells More...
 
static void ConvertIndices (const std::valarray< tInteger > &indicesConverter, std::valarray< tInteger > &indicesList)
 convert indices More...
 
static void ConvertIndices (const std::valarray< tInteger > &indicesConverter, const tInteger &n, tInteger *iIndicesList)
 convert indices More...
 
static void ComputeMacroCellX (const tInteger &nParticles, const tReal *iX, const tInteger *iMacroCellsList, SM_RealField &C, std::valarray< tInteger > &nMCParticles)
 compute the sum of coordinantes of the particles in each macro cell More...
 
static void MeanX (const tInteger &n, const tInteger *iNs, tReal *iX)
 compute the macro cells points and magnetization More...
 

Detailed Description

This class describes a macro cell network for one master core implementation.

Author
Stephane Despreaux
Version
2.0

Member Function Documentation

◆ computeBoundingBoxMacroCells()

void SMOMPI_OneMasterMacroCellsNetwork::computeBoundingBoxMacroCells ( const SM_Material material,
const SM_Network network,
const std::array< tReal, SM_Constants::DIM > &  P,
const std::array< tReal, SM_Constants::DIM > &  Q 
)
overrideprotectedvirtual

compute the macro cells of the network

Parameters
[in]material:material data
[in]network: network of the macro cells
[in]Pmin point of the box to compute macro cells
[in]Qmax point of the box to compute macro cells

Reimplemented from SM_MacroCellsNetwork.

◆ computeMacroCells()

void SMOMPI_OneMasterMacroCellsNetwork::computeMacroCells ( const SM_Material material,
const SM_Network network 
)
overridevirtual

compute the macro cells of the network

Parameters
[in]material:material data
[in]network: network of the macro cells

Reimplemented from SM_MacroCellsNetwork.

◆ computeMacroCellsMassCenter()

void SMOMPI_OneMasterMacroCellsNetwork::computeMacroCellsMassCenter ( const SM_Material material,
const SM_Network network 
)
overridevirtual

compute the macro cells of the network

Parameters
[in]material:material data
[in]network: network of the macro cells

Reimplemented from SM_MacroCellsNetwork.

◆ getBoundingBoxMacroCellsIndex()

const std::valarray<tInteger>& SMOMPI_OneMasterMacroCellsNetwork::getBoundingBoxMacroCellsIndex ( ) const
inline

return the index of the macro cell within the not empty macro cells list of the boundig box

Returns
return the index of the macro cell within the not empty macro cells list of the boundig box

◆ getBoundingBoxMacroCellsMassCenter()

const SM_RealField& SMOMPI_OneMasterMacroCellsNetwork::getBoundingBoxMacroCellsMassCenter ( ) const
inline

get the mass center on all not empty macro cells of the bouding box of macro cells

Returns
the mass center on all not empty macro cells of the bouding box of macro cells

◆ getBoundingBoxMacroCellsNumber()

tInteger SMOMPI_OneMasterMacroCellsNetwork::getBoundingBoxMacroCellsNumber ( ) const
inline

return the number of not empty macro cells of the bouning box

Returns
the number of not empty macro cells of the bouning box

◆ getBoundingBoxMacroCellsVolume()

const std::valarray<tReal>& SMOMPI_OneMasterMacroCellsNetwork::getBoundingBoxMacroCellsVolume ( ) const
inline

get the volume on all not empty macro cells of the bouding box of macro cells

Returns
the volume on all not empty macro cells of the bouding box of macro cells

◆ getContentsMemorySize()

virtual tMemSize SMOMPI_OneMasterMacroCellsNetwork::getContentsMemorySize ( ) const
inlinevirtual

return the memory size of the included associations

Returns
the memory size of the storage in bytes 1 Kb = 1024 bytes 1 Mb = 1024 Kb 1 Gb = 1024 Mb 1 Tb = 1024 Gb 1 Hb = 1024 Tb

Reimplemented from SM_MacroCellsNetwork.

◆ getMemorySize()

virtual tMemSize SMOMPI_OneMasterMacroCellsNetwork::getMemorySize ( ) const
inlinevirtual

return the memory size of the class and the memory size of all its attributes/associations

Returns
the memory size of the class and the memory size of its attributes/associations in bytes The mamory size is :
  • the added size of the base classes which contains:
    • the primary attributes size depends on the order: (first delare the smallest attributes size
    • all virtual functions costs <pointer-size> (4 32xor 8 64x) bytes by virtual function
    • virtual inherihtance will increase of (4 or 8) bytes
  • we add the size of the contains values of the attributes : for example the size of a string is the length of the string 1 octet = 1 byte 1 Ko = 1024 bytes 1 Mo = 1024 Ko 1 Go = 1024 Mo

Reimplemented from SM_MacroCellsNetwork.

◆ ISendFieldToCore()

void SMOMPI_OneMasterMacroCellsNetwork::ISendFieldToCore ( const MPI_Environment mpiEnv,
const tMPICoreId &  c,
const tMPICount &  nMCs,
const tInteger *  BBMacroCellsIndexMap,
const SM_RealField X,
const tMPITag &  tagX,
tMPIRequest &  request,
tReal *  vXc 
)
static

non blocking end message to send selected values of X with the map BMacroCellsIndexMap to values of Xc

Parameters
[in]mpiEnv: mpi environment
[in]c: core to send data
[in]nMCssize of data defined on core (vXc & BBMacroCellsIndexMap)
[in]BBMacroCellsIndexMap: map Ic: [0,nMCs[ -> [0,nBBMCs[ of size nMCs from core c \( I_c[l_m]=b_m \)
[in]X: values of the field X:[0,nBBMCs[ -> RxRxR in the core masterCoreId
[in]tagX: tag of the mpi-messages
[out]request: request of the non blocking mpi-message
[out]vXc: values of X of size nMCs defineed in core c \( X_c[l_m]=X[I_c[l_m]] \)

◆ New()

static CORE_UniquePointer<SelfClass> SMOMPI_OneMasterMacroCellsNetwork::New ( )
inlinestatic

return a new unique instnace of class This

Returns
an unique pointer of the operator

◆ newInstance()

virtual CORE_UniquePointer<SM_MacroCellsNetwork> SMOMPI_OneMasterMacroCellsNetwork::newInstance ( ) const
inlineoverridevirtual

create a New instance of this

Returns
an unique pointer to the instance

Implements SM_MacroCellsNetwork.

◆ ScatterField()

void SMOMPI_OneMasterMacroCellsNetwork::ScatterField ( const MPI_Environment mpiEnv,
const tMPICoreId &  masterCoreId,
const tMPITag &  tagX,
const SM_RealField X,
const std::valarray< tInteger > &  BBMacroCellsIndexMap,
SM_RealField Xc,
std::valarray< tInteger > &  coreBBMacroCellsIndex,
std::valarray< tReal > &  coreX 
)
static

scatter he field X into Xc with the map BBMacroCellsIndexMap

Parameters
[in]mpiEnv: mpi environment
[in]masterCoreIdid of the master core where X is defined
[in]tagX: tag of the mpi-messages
[in]Xvalues of the field X:[0,nBBMCs[ -> RxRxR in the core masterCoreId
[in]BBMacroCellsIndexMapmap Ic: [0,nMCs[ -> [0,nBBMCs[ of size nMCs from core c \( I_c[l_m]=b_m \)
[out]Xcvalues of the field Xc:[0,nMCs[ -> RxRxR in the core c \( X_c[l_m]=X[b_m] \)
[out]coreBBMacroCellsIndexwork array to receive I data of core c of size nMCs which depends on core c
[out]coreXwork array to send Xc data to core c of size D x nMCs where nMCs depends on core c

◆ SelectFieldValues()

void SMOMPI_OneMasterMacroCellsNetwork::SelectFieldValues ( const tMPICount &  nMCs,
const tInteger *  BBMacroCellsIndexMap,
const SM_RealField X,
tReal *  Xs 
)
static

selected value from X with map BBMacroCellsIndex,

Parameters
[in]nMCssize of data to selectd from X
[in]BBMacroCellsIndexMapmap I: [0,nMCs[ -> [0,nBBMCs[ of size nMCs \( I[l_m]=b_m \)
[in]Xvalues of the field X:[0,nBBMCs[ -> RxRxR
[out]Xs: selected values \(X_s[l_m]=X[b_m] \) with \( b_m=I[l_m]\)

◆ setMasterCoreId()

void SMOMPI_OneMasterMacroCellsNetwork::setMasterCoreId ( const tMPICoreId &  coreId)
inline

set the master core id

Parameters
[in]coreidid of the master core

◆ SumReduceField() [1/2]

void SMOMPI_OneMasterMacroCellsNetwork::SumReduceField ( const MPI_Environment mpiEnv,
const tMPICoreId &  masterCoreId,
const tMPITag &  tagX,
const std::valarray< tInteger > &  BBMacroCellsIndexMap,
const SM_RealField Xc,
const std::valarray< tInteger > &  Wc,
SM_RealField X,
std::valarray< tInteger > &  W,
std::valarray< tInteger > &  coreBBMacroCellsIndex,
std::valarray< tReal > &  corePX,
std::valarray< tInteger > &  corePW 
)
static

make the sum reduction of the field Xc into X (Wc into W) with the map BBMacroCellsIndexMap

Parameters
[in]mpiEnv: mpi environment
[in]masterCoreIdid of the master core where X and W is defined
[in]tagX: tag of the mpi-messages
[in]BBMacroCellsIndexMapreceived map Ic: [0,nMCs[ -> [0,nBBMCs[ of size nMCs from core c \( I_c[l_m]=b_m \)
[in]Xcvalues of the field Xc:[0,nMCs[ -> RxRxR in the core c
[in]Wcvalues of the vector Wc:[0,nMCs[ -> N in the core c
[out]Xvalues of the reduced field X:[0,nBBMCs[ -> RxRxR in the core masterCoreId \( X[b_m]=\sum_{c} C_c[l_m] \)
[out]Wvalues of the reduced vector W:[0,nBBMCs[ -> N in the core c : \( W[b_m]=\sum_{c} W_c[l_m] \)
[out]coreBBMacroCellsIndexwork array to receive I data of core c of size nMCs which depends on core c
[out]corePXwork array to receive Xc data of core c of size D x nMCs where nMCs depends on core c
[out]corePWwork array to receive Wc data of core c of size nMCs where nMCs depends on core c

◆ SumReduceField() [2/2]

void SMOMPI_OneMasterMacroCellsNetwork::SumReduceField ( const MPI_Environment mpiEnv,
const tMPICoreId &  masterCoreId,
const tMPITag &  tagX,
const std::valarray< tInteger > &  BBMacroCellsIndexMap,
const SM_RealField Xc,
SM_RealField X,
std::valarray< tInteger > &  coreBBMacroCellsIndex,
std::valarray< tReal > &  corePX 
)
static

make the sum reduction of the field Xc into X with the map BBMacroCellsIndexMap

Parameters
[in]mpiEnv: mpi environment
[in]masterCoreIdid of the master core where X and W is defined
[in]tagX: tag of the mpi-messages
[in]BBMacroCellsIndexMapreceived map Ic: [0,nMCs[ -> [0,nBBMCs[ of size nMCs from core c \( I_c[l_m]=b_m \)
[in]Xcvalues of the field Xc:[0,nMCs[ -> RxRxR in the core c
[out]Xvalues of the reduced field X:[0,nBBMCs[ -> RxRxR in the core masterCoreId \( X[b_m]=\sum_{c} C_c[l_m] \)
[out]coreBBMacroCellsIndexwork array to receive I data of core c of size nMCs which depends on core c
[out]corePXwork array to receive Xc data of core c of size D x nMCs where nMCs depends on core c

◆ WaitForBoundingBoxMacroCellsIndexFromNeighborCore()

tBoolean SMOMPI_OneMasterMacroCellsNetwork::WaitForBoundingBoxMacroCellsIndexFromNeighborCore ( const MPI_Environment mpiEnv,
tMPICoreId &  c,
const tMPITag &  tag,
tMPICount &  nValues,
std::valarray< tInteger > &  boundingBoxMacroCellsIndex,
tMPIBoolean &  isAvaliable,
tMPIStatus &  status,
std::map< tMPICoreId, tBoolean > &  isDataReceivedFromCore 
)
static

wait for receiveing the map boundingBoxMacroCellsIndex [0,nMCs[ -> [0,nBBMCs[ from the core c with tag.

Parameters
[in]mpiEnv: mpi environment
[out]cindex of the core from which the data are received
[in]tagtag of the mpi-message to received
[out]nValuesnumber of values of the received mpi-message
[out]boundingBoxMacroCellsIndexreceived map [0,nMCs[ -> [0,nBBMCs[ of size nMCs from core c
[out]isAvaliableindicates if the mpi-message is avaliable
[out]statusdata on the mpi-message
[out]isDataReceivedFromCorelist of cores from which the data are received

◆ WaitForFieldFromNeighborCore()

tBoolean SMOMPI_OneMasterMacroCellsNetwork::WaitForFieldFromNeighborCore ( const MPI_Environment mpiEnv,
tMPICoreId &  c,
const tMPITag &  tagIndices,
tMPICount &  nIndices,
std::valarray< tInteger > &  boundingBoxMacroCellsIndex,
const tMPITag &  tagX,
tMPICount &  sX,
std::valarray< tReal > &  X,
tMPIBoolean &  isAvaliable,
tMPIStatus &  status,
std::array< tMPIRequest, 2 > &  requests,
std::map< tMPICoreId, tBoolean > &  isDataReceivedFromCore 
)
static

wait for receiving the map boundingBoxMacroCellsIndex [0,nMCs[ -> [0,nBBMCs[ and fields X from the core c with tag.

Parameters
[in]mpiEnv: mpi environment
[out]cindex of the core from which the data are received
[in]tagItag of the map mpi-message to received
[out]nIndicesnumber of values of the received mpi-message
[out]boundingBoxMacroCellsIndexreceived map [0,nMCs[ -> [0,nBBMCs[ of size nMCs from core c
[in]tagXtag of the X-field mpi-message to received
[out]sXnumber of values of the X-field mpi-message to received
[out]Xvalues of the X-field mpi-message to received
[out]isAvaliableindicates if the mpi-message is avaliable
[out]statusdata on the mpi-message
[out]requestsreauest of the non-blocking messages
[out]isDataReceivedFromCorelist of cores from which the data are received

◆ WaitForWeightFieldFromNeighborCore()

tBoolean SMOMPI_OneMasterMacroCellsNetwork::WaitForWeightFieldFromNeighborCore ( const MPI_Environment mpiEnv,
tMPICoreId &  c,
const tMPITag &  tagIndices,
tMPICount &  nIndices,
std::valarray< tInteger > &  boundingBoxMacroCellsIndex,
const tMPITag &  tagX,
tMPICount &  sX,
std::valarray< tReal > &  X,
const tMPITag &  tagW,
tMPICount &  nW,
std::valarray< tInteger > &  W,
tMPIBoolean &  isAvaliable,
tMPIStatus &  status,
std::array< tMPIRequest, 3 > &  requests,
std::map< tMPICoreId, tBoolean > &  isDataReceivedFromCore 
)
static

wait for receiving the map boundingBoxMacroCellsIndex [0,nMCs[ -> [0,nBBMCs[ and fields (W,X) from the core c with tag.

Parameters
[in]mpiEnv: mpi environment
[out]cindex of the core from which the data are received
[in]tagItag of the map mpi-message to received
[out]nIndicesnumber of values of the received mpi-message
[out]boundingBoxMacroCellsIndexreceived map [0,nMCs[ -> [0,nBBMCs[ of size nMCs from core c
[in]tagXtag of the X-field mpi-message to received
[out]sXnumber of values of the X-field mpi-message to received
[out]Xvalues of the X-field mpi-message to received
[in]tagWtag of the W-vector mpi-message to received
[out]nWnumber of values of the W-vector mpi-message to received
[out]Wvalues of the W-vector mpi-message to received
[out]isAvaliableindicates if the mpi-message is avaliable
[out]statusdata on the mpi-message
[out]requestsrequest of the non-blocking messages
[out]isDataReceivedFromCorelist of cores from which the data are received

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