18 #ifndef __ESCRIPT_ABSTRACTDOMAIN_H__ 19 #define __ESCRIPT_ABSTRACTDOMAIN_H__ 24 #include <esysUtils/Esys_MPI.h> 26 #include <boost/python/tuple.hpp> 58 const_Domain_ptr getPtr()
const;
70 virtual int getMPISize()
const = 0;
76 virtual int getMPIRank()
const = 0;
82 virtual void MPIBarrier()
const = 0;
88 virtual bool onMasterProcessor()
const = 0;
96 virtual MPI_Comm getMPIComm()
const = 0;
103 virtual bool isValidFunctionSpaceType(
int functionSpaceType)
const = 0;
109 virtual std::string getDescription()
const = 0;
115 virtual std::string functionSpaceTypeAsString(
int functionSpaceType)
const = 0;
123 virtual int getDim()
const = 0;
129 virtual bool operator==(
const AbstractDomain& other)
const = 0;
135 virtual bool operator!=(
const AbstractDomain& other)
const = 0;
143 virtual void write(
const std::string& filename)
const = 0;
151 virtual void dump(
const std::string& filename)
const = 0;
164 virtual std::pair<int,dim_t> getDataShape(
int functionSpaceCode)
const = 0;
172 virtual int getTagFromSampleNo(
int functionSpaceType,
index_t sampleNo)
const = 0;
180 virtual void setTagMap(
const std::string& name,
int tag) = 0;
187 virtual int getTag(
const std::string& name)
const = 0;
194 virtual bool isValidTagName(
const std::string& name)
const;
200 virtual std::string showTagNames()
const = 0;
208 virtual const dim_t* borrowSampleReferenceIDs(
int functionSpaceType)
const = 0;
230 virtual bool probeInterpolationOnDomain(
int functionSpaceType_source,
231 int functionSpaceType_target)
const = 0;
242 virtual signed char preferredInterpolationOnDomain(
243 int functionSpaceType_source,
244 int functionSpaceType_target)
const = 0;
254 commonFunctionSpace(
const std::vector<int>& fs,
int& resultcode)
const = 0;
265 const AbstractDomain& targetDomain,
266 int functionSpaceType_target)
const = 0;
329 virtual bool ownSample(
int fs_code,
index_t id)
const = 0;
336 virtual void setTags(
int functionSpaceType,
int newTag,
const escript::Data& mask)
const = 0;
345 virtual bool isCellOriented(
int functionSpaceCode)
const = 0;
355 virtual StatusType getStatus()
const;
362 void throwStandardException(
const std::string& functionName)
const;
369 virtual int getNumberOfTagsInUse(
int functionSpaceCode)
const = 0;
371 virtual const int* borrowListOfTagsInUse(
int functionSpaceCode)
const = 0;
376 virtual bool canTag(
int functionspacecode)
const = 0;
381 virtual int getApproximationOrder(
const int functionSpaceCode)
const = 0;
383 virtual bool supportsContactElements()
const = 0;
388 virtual bool supportsFilter(
const boost::python::tuple& t)
const;
395 const boost::python::tuple& filter)
const = 0;
400 #endif // __ESCRIPT_ABSTRACTDOMAIN_H__ Definition: FunctionSpace.h:34
#define POINTER_WRAPPER_CLASS(x)
Definition: Pointers.h:32
bool probeInterpolationAcross(int fsType_source, const escript::AbstractDomain &domain, int fsType_target, int dim)
Definition: CrossDomainCoupler.cpp:36
boost::shared_ptr< AbstractDomain > Domain_ptr
Definition: AbstractDomain.h:36
Definition: AbstractContinuousDomain.cpp:24
virtual ~AbstractDomain()
Destructor for AbstractDomain.
Definition: AbstractDomain.h:64
#define REFCOUNT_BASE_CLASS(x)
Definition: Pointers.h:29
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:38
int MPI_Comm
Definition: Esys_MPI.h:38
Typedefs and macros for reference counted storage.
int StatusType
Definition: AbstractDomain.h:48
Data represents a collection of datapoints.
Definition: Data.h:68
int index_t
Definition: types.h:24
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:54
index_t dim_t
Definition: types.h:27
Base class for all escript domains.
Definition: AbstractDomain.h:45
boost::shared_ptr< const AbstractDomain > const_Domain_ptr
Definition: AbstractDomain.h:39