escript  Revision_
Classes | Namespaces | Defines | Typedefs | Functions
Esys_MPI.h File Reference
#include "system_dep.h"
#include "types.h"
#include <sstream>

Go to the source code of this file.

Classes

struct  Esys_MPIInfo
 Struct that holds MPI communicator, rank, size and a tag counter. More...

Namespaces

namespace  esysUtils

Defines

#define MPI_INT   6
#define MPI_DOUBLE   11
#define MPI_COMM_WORLD   91
#define ESYS_MPI_TODO   { fprintf( stdout, "\nTODO : %s:%d\n", __FILE__, __LINE__); MPI_Finalize(); exit(1); }
#define ESYS_MPI_INC_COUNTER(V, I)   {(V).msg_tag_counter=((V).msg_tag_counter+(I))%1010201;}
#define ESYS_MPI_SET_COUNTER(V, I)   {(V).msg_tag_counter=(I)%1010201;}

Typedefs

typedef int MPI_Comm
typedef int MPI_Request
typedef int MPI_Status
typedef int Esys_MPI_rank
typedef struct Esys_MPIInfo Esys_MPIInfo

Functions

Esys_MPIInfoEsys_MPIInfo_alloc (MPI_Comm comm)
void Esys_MPIInfo_free (Esys_MPIInfo *)
Esys_MPIInfoEsys_MPIInfo_getReference (Esys_MPIInfo *in)
int Esys_MPIInfo_initialized (void)
index_t Esys_MPIInfo_mod (index_t n, index_t k)
dim_t Esys_MPIInfo_setDistribution (Esys_MPIInfo *in, index_t min_id, index_t max_id, index_t *distribution)
void Esys_MPIInfo_Split (Esys_MPIInfo *mpi_info, dim_t n, dim_t *local_N, index_t *offset)
bool Esys_MPIInfo_noError (Esys_MPIInfo *mpi_info)
std::string esysUtils::appendRankToFileName (const std::string &fileName, int mpiSize, int mpiRank)
 Appends MPI rank to a file name if MPI size > 1.
bool esysUtils::getSplitWorld ()
void esysUtils::splitWorld ()

Define Documentation

#define ESYS_MPI_INC_COUNTER (   V,
 
)    {(V).msg_tag_counter=((V).msg_tag_counter+(I))%1010201;}
#define ESYS_MPI_SET_COUNTER (   V,
 
)    {(V).msg_tag_counter=(I)%1010201;}
#define ESYS_MPI_TODO   { fprintf( stdout, "\nTODO : %s:%d\n", __FILE__, __LINE__); MPI_Finalize(); exit(1); }
#define MPI_COMM_WORLD   91
#define MPI_DOUBLE   11
#define MPI_INT   6

Referenced by paso::SystemMatrix::borrowMainDiagonalPointer(), escript::Data::calc_maxGlobalDataPoint(), escript::Data::calc_minGlobalDataPoint(), paso::SystemMatrix::copyRemoteCoupleBlock(), finley::NodeFile::createDenseDOFLabeling(), finley::NodeFile::createDenseNodeLabeling(), finley::NodeFile::createDenseReducedLabeling(), finley::NodeFile::createDOFMappingAndCoupling(), finley::NodeFile::createNodeMappings(), finley::ElementFile::distributeByRankOfDOF(), Dudley_ElementFile_distributeByRankOfDOF(), Dudley_ElementFile_setElementDistribution(), Dudley_Mesh_createDOFMappingAndCoupling(), Dudley_Mesh_createNodeFileMappings(), Dudley_Mesh_optimizeDOFDistribution(), Dudley_Mesh_optimizeDOFLabeling(), Dudley_Mesh_read(), Dudley_Mesh_resolveNodeIds(), Dudley_NodeFile_createDenseDOFLabeling(), Dudley_NodeFile_createDenseNodeLabeling(), Dudley_NodeFile_createDenseReducedDOFLabeling(), Dudley_NodeFile_createDenseReducedNodeLabeling(), Dudley_NodeFile_gather_global(), Dudley_NodeFile_setGlobalDOFRange(), Dudley_NodeFile_setGlobalIdRange(), Dudley_NodeFile_setGlobalNodeIDIndexRange(), Dudley_NodeFile_setGlobalReducedDegreeOfFreedomRange(), Dudley_NodeFile_setGlobalReducedNodeIDIndexRange(), Dudley_Util_setValuesInUse(), escript::DataConstant::dump(), escript::DataExpanded::dump(), dudley::MeshAdapter::dump(), finley::MeshAdapter::dump(), escript::DataTagged::dump(), paso::SystemMatrix::extendedRowsForST(), finley::NodeFile::gather_global(), finley::NodeFile::getGlobalDOFRange(), finley::NodeFile::getGlobalIdRange(), finley::NodeFile::getGlobalNodeIDIndexRange(), escript::getMPIWorldMax(), escript::getMPIWorldSum(), paso::TransportProblem::getSafeTimeStepSize(), escript::Data::interpolateFromTable1D(), escript::Data::interpolateFromTable2D(), escript::Data::interpolateFromTable3D(), weipa::EscriptDataset::loadData(), weipa::EscriptDataset::loadDomain(), escript::Data::matrixInverse(), paso::SystemMatrix::mergeSystemMatrix(), paso::Distribution::numPositives(), esysUtils::FileWriter::openFile(), finley::Mesh::optimizeDOFDistribution(), finley::Mesh::optimizeDOFLabeling(), paso::Preconditioner_AMG_alloc(), paso::Preconditioner_AMG_buildInterpolationOperator(), paso::Preconditioner_AMG_buildInterpolationOperatorBlock(), paso::Preconditioner_AMG_CopyRemoteData(), paso::Preconditioner_AMG_extendB(), paso::Preconditioner_AMG_getProlongation(), paso::Preconditioner_AMG_getRestriction(), finley::NodeFile::prepareLabeling(), weipa::VisItControl::publishData(), finley::Mesh::read(), finley::Mesh::resolveNodeIds(), escript::saveDataCSV(), weipa::EscriptDataset::saveVTKsingle(), weipa::EscriptDataset::setDomain(), weipa::EscriptDataset::setExternalDomain(), finley::Mesh::setOrders(), escript::Data::setTupleForGlobalDataPoint(), finley::util::setValuesInUse(), paso::ReactiveSolver::solve(), escript::Data::toString(), weipa::EscriptDataset::updateSampleDistribution(), and ripley::RipleyDomain::updateTagsInUse().


Typedef Documentation

typedef int Esys_MPI_rank
typedef struct Esys_MPIInfo Esys_MPIInfo
typedef int MPI_Comm
typedef int MPI_Request
typedef int MPI_Status

Function Documentation

int Esys_MPIInfo_initialized ( void  )

References ESYS_MPI_ERROR, Esys_setError(), and TRUE.

bool Esys_MPIInfo_noError ( Esys_MPIInfo mpi_info)
dim_t Esys_MPIInfo_setDistribution ( Esys_MPIInfo in,
index_t  min_id,
index_t  max_id,
index_t distribution 
)
void Esys_MPIInfo_Split ( Esys_MPIInfo mpi_info,
dim_t  n,
dim_t local_N,
index_t offset 
)