Go to the documentation of this file.
18 #ifndef __ESCRIPT_ABSTRACTDOMAIN_H__
19 #define __ESCRIPT_ABSTRACTDOMAIN_H__
26 #include <boost/python/tuple.hpp>
48 typedef int StatusType;
70 virtual JMPI getMPI()
const = 0;
76 virtual int getMPISize()
const = 0;
82 virtual int getMPIRank()
const = 0;
88 virtual void MPIBarrier()
const = 0;
94 virtual bool onMasterProcessor()
const = 0;
102 virtual MPI_Comm getMPIComm()
const = 0;
109 virtual bool isValidFunctionSpaceType(
int functionSpaceType)
const = 0;
115 virtual std::string getDescription()
const = 0;
121 virtual std::string functionSpaceTypeAsString(
int functionSpaceType)
const = 0;
129 virtual int getDim()
const = 0;
149 virtual void write(
const std::string& filename)
const = 0;
157 virtual void dump(
const std::string& filename)
const = 0;
170 virtual std::pair<int,DataTypes::dim_t> getDataShape(
int functionSpaceCode)
const = 0;
178 virtual int getTagFromSampleNo(
int functionSpaceType,
DataTypes::index_t sampleNo)
const = 0;
186 virtual void setTagMap(
const std::string& name,
int tag) = 0;
193 virtual int getTag(
const std::string& name)
const = 0;
200 virtual bool isValidTagName(
const std::string& name)
const;
206 virtual std::string showTagNames()
const = 0;
214 virtual const DataTypes::dim_t* borrowSampleReferenceIDs(
int functionSpaceType)
const = 0;
236 virtual bool probeInterpolationOnDomain(
int functionSpaceType_source,
237 int functionSpaceType_target)
const = 0;
248 virtual signed char preferredInterpolationOnDomain(
249 int functionSpaceType_source,
250 int functionSpaceType_target)
const = 0;
260 commonFunctionSpace(
const std::vector<int>& fs,
int& resultcode)
const = 0;
272 int functionSpaceType_target)
const = 0;
342 virtual void setTags(
int functionSpaceType,
int newTag,
const escript::Data& mask)
const = 0;
351 virtual bool isCellOriented(
int functionSpaceCode)
const = 0;
361 virtual StatusType getStatus()
const;
368 void throwStandardException(
const std::string& functionName)
const;
375 virtual int getNumberOfTagsInUse(
int functionSpaceCode)
const = 0;
377 virtual const int* borrowListOfTagsInUse(
int functionSpaceCode)
const = 0;
382 virtual bool canTag(
int functionspacecode)
const = 0;
387 virtual int getApproximationOrder(
const int functionSpaceCode)
const = 0;
389 virtual bool supportsContactElements()
const = 0;
394 virtual bool supportsFilter(
const boost::python::tuple& t)
const;
401 const boost::python::tuple& filter)
const = 0;
406 #endif // __ESCRIPT_ABSTRACTDOMAIN_H__
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:28
#define POINTER_WRAPPER_CLASS(x)
Definition: Pointers.h:31
virtual bool isValidTagName(const std::string &name) const
Returns True if name is a defined tag name.
Definition: AbstractDomain.cpp:64
void throwStandardException(const std::string &functionName) const
Throw a standard exception. This function is called if any attempt is made to use a base class functi...
Definition: AbstractDomain.cpp:54
Domain_ptr getPtr()
Returns smart pointer which is managing this object. If one does not exist yet it creates one.
Definition: AbstractDomain.cpp:36
int StatusType
Definition: AbstractDomain.h:59
boost::shared_ptr< AbstractDomain > Domain_ptr
Definition: AbstractDomain.h:47
Definition: FunctionSpace.h:45
bool probeInterpolationAcross(int fsType_source, const escript::AbstractDomain &domain, int fsType_target, int dim)
Definition: CrossDomainCoupler.cpp:30
#define REFCOUNT_BASE_CLASS(x)
Definition: Pointers.h:29
virtual StatusType getStatus() const
Returns a status indicator of the domain. The status identifier should be unique over the live time i...
Definition: AbstractDomain.cpp:59
Typedefs and macros for reference counted storage.
Data represents a collection of datapoints.
Definition: Data.h:62
index_t dim_t
Definition: DataTypes.h:87
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:65
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:70
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:82
Definition: AbstractContinuousDomain.cpp:22
virtual bool supportsFilter(const boost::python::tuple &t) const
true if this domain can handle to specified tuple of filter options.
Definition: AbstractDomain.cpp:69
int MPI_Comm
Definition: EsysMPI.h:40
Base class for all escript domains.
Definition: AbstractDomain.h:56
boost::shared_ptr< const AbstractDomain > const_Domain_ptr
Definition: AbstractDomain.h:50