1 #ifndef __XIOS_CDomain__
2 #define __XIOS_CDomain__
26 class CDomainAttributes;
34 # include "domain_attribute.conf"
42 , public CDomainAttributes
52 EVENT_ID_DATA_INDEX, EVENT_ID_SERVER_ATTRIBUT
64 CDomain(
const CDomain & domain);
65 CDomain(
const CDomain *
const domain);
67 static CDomain* createDomain();
70 void assignMesh(
const StdString,
const int);
77 void checkAttributes(
void);
78 void checkAttributesOnClient();
79 void checkAttributesOnClientAfterTransformation();
80 void checkEligibilityForCompressedOutput(
void);
82 void sendCheckedAttributes();
84 bool hasTransformation();
85 void solveInheritanceTransformation();
86 TransMapTypes getAllTransformations();
87 void redistribute(
int nbLocalDomain);
88 void duplicateTransformation(CDomain*);
92 const std::set<StdString> & getRelFiles(
void)
const;
93 bool IsWritten(
const StdString & filename)
const;
94 bool isWrittenCompressed(
const StdString& filename)
const;
96 int getNumberWrittenIndexes(MPI_Comm writtenCom);
97 int getTotalNumberWrittenIndexes(MPI_Comm writtenCom);
98 int getOffsetWrittenIndexes(MPI_Comm writtenCom);
99 CArray<int,1>& getCompressedIndexToWriteOnServer(MPI_Comm writtenCom);
101 std::map<int, StdSize> getAttributesBufferSize(
CContextClient* client,
bool bufferForWriting =
false);
103 bool isEmpty(
void)
const;
104 bool isDistributed(
void)
const;
105 bool isCompressible(
void)
const;
107 std::vector<int> getNbGlob();
108 bool isEqual(CDomain* domain);
114 void addRelFile(
const StdString & filename);
115 void addRelFileCompressed(
const StdString& filename);
117 void computeWrittenIndex();
118 void computeWrittenCompressedIndex(MPI_Comm);
127 bool distributionAttributesHaveValue()
const;
129 size_t getGlobalWrittenSize() ;
131 virtual ~CDomain(
void);
160 void checkDomain(
void);
161 void checkLocalIDomain(
void);
162 void checkLocalJDomain(
void);
164 void checkMask(
void);
165 void checkDomainData(
void);
166 void checkCompression(
void);
168 void checkBounds(
void);
169 void checkArea(
void);
172 void setTransformations(
const TransMapTypes&);
173 void computeNGlobDomain();
174 void sendAttributes();
176 void sendDistributionAttributes();
179 void sendDataIndex();
180 void convertLonLatValue();
181 void fillInRectilinearLonLat();
182 void fillInCurvilinearLonLat();
183 void fillInUnstructuredLonLat();
185 static void recvDistributionAttributes(
CEventServer& event);
191 void recvDistributionAttributes(
CBufferIn& buffer);
192 void recvIndex(std::map<int, CBufferIn*>& rankBuffers);
193 void recvLon(std::map<int, CBufferIn*>& rankBuffers);
194 void recvLat(std::map<int, CBufferIn*>& rankBuffers);
195 void recvArea(std::map<int, CBufferIn*>& rankBuffers);
196 void recvDataIndex(std::map<int, CBufferIn*>& rankBuffers);
198 void completeLonLatClient(
void);
199 void computeConnectedClients();
215 std::map<int, std::unordered_map<int, vector<size_t> > >
indSrv_;
232 static bool initializeTransformationMap(std::map<StdString, ETranformationType>& m);
249 #endif //__XIOS_CDomain__
static bool _dummyTransformationMapList
std::map< int, std::map< int, size_t > > connectedDataSize_
bool isCompressible_
True if and only if the data defined on the domain can be outputted in a compressed way...
enum xios::transformation_type ETranformationType
////////////////////// Définitions ////////////////////// ///
#define END_DECLARE_ATTRIBUTE_MAP(type)
bool hasBoundsLonInReadFile_
CArray< bool, 1 > localMask
CArray< bool, 1 > domainMask
bool hasBoundsLatInReadFile_
std::vector< int > indexesToWrite
Description of index distribution on server(s).
#define DECLARE_REF_FUNC(type, name_)
TransMapTypes transformationMap_
std::vector< int > recvClientRanks_
CTransformation< CDomain >::TransformationMapTypes TransMapTypes
CArray< double, 2 > bounds_lonvalue
CArray< double, 1 > lonvalue
std::map< int, map< int, int > > nbSenders
#define BEGIN_DECLARE_ATTRIBUTE_MAP(type)
CArray< double, 1 > areavalue
A context can be both on client and on server side.
////////////////////// Déclarations ////////////////////// ///
bool isClientAfterTransformationChecked
std::map< int, std::unordered_map< int, vector< size_t > > > indSrv_
CDomainAttributes RelAttributes
domainDest_ computeLocalMask()
Declaration of class CMesh.
std::set< StdString > relFilesCompressed
static std::map< StdString, ETranformationType > transformationMapList_
Macros to add functions used to solve references in class CDomain, CAxis and CField.
enum xios::_node_type ENodeType
////////////////////// Définitions ////////////////////// ///
std::unordered_map< size_t, size_t > globalLocalIndexMap_
std::map< int, CArray< int, 1 > > indGlob_
std::map< int, std::vector< int > > connectedServerRank_
CObjectTemplate< CDomain > SuperClass
typedef ///
std::map< int, CArray< int, 1 > > compressedIndexToWriteOnServer
std::set< CContextClient * > clientsSet
std::map< int, int > totalNumberWrittenIndexes_
CArray< int, 1 > localIndexToWriteOnServer
CDomainAttributes SuperClassAttribute
std::list< CContextClient * > clients