17 #if !defined escript_AbstractDomain_20040609_H
18 #define escript_AbstractDomain_20040609_H
20 #ifdef BADPYTHONMACROS
27 #undef BADPYTHONMACROS
36 #include <boost/python/dict.hpp>
37 #include <boost/python/list.hpp>
38 #include "esysUtils/Esys_MPI.h"
72 const_Domain_ptr getPtr()
const;
119 virtual ~AbstractDomain();
126 virtual int getMPISize()
const;
133 virtual int getMPIRank()
const;
141 virtual void MPIBarrier()
const;
148 virtual bool onMasterProcessor()
const;
170 virtual bool isValidFunctionSpaceType(
int functionSpaceType)
const;
177 virtual std::string getDescription()
const;
184 virtual std::string functionSpaceTypeAsString(
int functionSpaceType)
const;
193 virtual int getDim()
const;
200 virtual bool operator==(
const AbstractDomain& other)
const;
202 virtual bool operator!=(
const AbstractDomain& other)
const;
211 virtual void write(
const std::string& filename)
const;
220 virtual void dump(
const std::string& filename)
const;
232 virtual std::pair<int,int> getDataShape(
int functionSpaceCode)
const;
241 virtual int getTagFromSampleNo(
int functionSpaceType,
int sampleNo)
const;
250 virtual void setTagMap(
const std::string& name,
int tag);
258 virtual int getTag(
const std::string& name)
const;
266 virtual bool isValidTagName(
const std::string& name)
const;
273 virtual std::string showTagNames()
const;
281 virtual const int* borrowSampleReferenceIDs(
int functionSpaceType)
const;
305 virtual bool probeInterpolationOnDomain(
int functionSpaceType_source,
int functionSpaceType_target)
const;
314 virtual signed char preferredInterpolationOnDomain(
int functionSpaceType_source,
int functionSpaceType_target)
const;
324 commonFunctionSpace(
const std::vector<int>& fs,
int& resultcode)
const;
335 virtual bool probeInterpolationACross(
int functionSpaceType_source,
const AbstractDomain& targetDomain,
int functionSpaceType_target)
const;
406 virtual bool ownSample(
int fs_code,
index_t id)
const;
414 virtual void setTags(
const int functionSpaceType,
const int newTag,
const escript::Data& mask)
const;
424 virtual bool isCellOriented(
int functionSpaceCode)
const;
435 virtual StatusType getStatus()
const;
443 void throwStandardException(
const std::string& functionName)
const;
450 virtual int getNumberOfTagsInUse(
int functionSpaceCode)
const;
453 virtual const int* borrowListOfTagsInUse(
int functionSpaceCode)
const;
459 virtual bool canTag(
int functionspacecode)
const;
466 virtual int getApproximationOrder(
const int functionSpaceCode)
const;
469 virtual bool supportsContactElements()
const;