Go to the documentation of this file.
19 #ifndef __ESCRIPT_ABSTRACTDOMAIN_H__
20 #define __ESCRIPT_ABSTRACTDOMAIN_H__
27 #include <boost/python/tuple.hpp>
28 #ifdef ESYS_HAVE_BOOST_NUMPY
29 #include <boost/python/numpy.hpp>
53 typedef int StatusType;
75 virtual JMPI getMPI()
const = 0;
81 virtual int getMPISize()
const = 0;
87 virtual int getMPIRank()
const = 0;
93 virtual void MPIBarrier()
const = 0;
99 virtual bool onMasterProcessor()
const = 0;
107 virtual MPI_Comm getMPIComm()
const = 0;
114 virtual bool isValidFunctionSpaceType(
int functionSpaceType)
const = 0;
120 virtual std::string getDescription()
const = 0;
126 virtual std::string functionSpaceTypeAsString(
int functionSpaceType)
const = 0;
134 virtual int getDim()
const = 0;
154 virtual void write(
const std::string& filename)
const = 0;
162 virtual void dump(
const std::string& filename)
const = 0;
175 virtual std::pair<int,DataTypes::dim_t> getDataShape(
int functionSpaceCode)
const = 0;
183 virtual int getTagFromSampleNo(
int functionSpaceType,
DataTypes::index_t sampleNo)
const = 0;
191 virtual void setTagMap(
const std::string& name,
int tag) = 0;
198 virtual int getTag(
const std::string& name)
const = 0;
205 virtual bool isValidTagName(
const std::string& name)
const;
211 virtual std::string showTagNames()
const = 0;
219 virtual const DataTypes::dim_t* borrowSampleReferenceIDs(
int functionSpaceType)
const = 0;
241 virtual bool probeInterpolationOnDomain(
int functionSpaceType_source,
242 int functionSpaceType_target)
const = 0;
253 virtual signed char preferredInterpolationOnDomain(
254 int functionSpaceType_source,
255 int functionSpaceType_target)
const = 0;
265 commonFunctionSpace(
const std::vector<int>& fs,
int& resultcode)
const = 0;
277 int functionSpaceType_target)
const = 0;
285 #ifdef ESYS_HAVE_BOOST_NUMPY
290 virtual boost::python::numpy::ndarray getNumpyX()
const = 0;
355 virtual void setTags(
int functionSpaceType,
int newTag,
const escript::Data& mask)
const = 0;
364 virtual bool isCellOriented(
int functionSpaceCode)
const = 0;
374 virtual StatusType getStatus()
const;
381 void throwStandardException(
const std::string& functionName)
const;
388 virtual int getNumberOfTagsInUse(
int functionSpaceCode)
const = 0;
390 virtual const int* borrowListOfTagsInUse(
int functionSpaceCode)
const = 0;
395 virtual bool canTag(
int functionspacecode)
const = 0;
400 virtual int getApproximationOrder(
const int functionSpaceCode)
const = 0;
402 virtual bool supportsContactElements()
const = 0;
407 virtual bool supportsFilter(
const boost::python::tuple& t)
const;
414 const boost::python::tuple& filter)
const = 0;
419 #endif // __ESCRIPT_ABSTRACTDOMAIN_H__
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:30
#define POINTER_WRAPPER_CLASS(x)
Definition: Pointers.h:33
virtual bool isValidTagName(const std::string &name) const
Returns True if name is a defined tag name.
Definition: AbstractDomain.cpp:67
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:57
int StatusType
Definition: AbstractDomain.h:67
boost::shared_ptr< AbstractDomain > Domain_ptr
Definition: AbstractDomain.h:55
Definition: FunctionSpace.h:49
bool probeInterpolationAcross(int fsType_source, const escript::AbstractDomain &domain, int fsType_target, int dim)
Definition: CrossDomainCoupler.cpp:32
#define REFCOUNT_BASE_CLASS(x)
Definition: Pointers.h:31
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:62
Typedefs and macros for reference counted storage.
Data represents a collection of datapoints.
Definition: Data.h:64
index_t dim_t
Definition: DataTypes.h:93
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:71
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:72
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:88
Definition: AbstractContinuousDomain.cpp:23
Domain_ptr getPtr()
Returns smart pointer which is managing this object. If one does not exist yet it creates one.
Definition: AbstractDomain.cpp:39
virtual bool supportsFilter(const boost::python::tuple &t) const
true if this domain can handle to specified tuple of filter options.
Definition: AbstractDomain.cpp:72
int MPI_Comm
Definition: EsysMPI.h:42
Base class for all escript domains.
Definition: AbstractDomain.h:64
boost::shared_ptr< const AbstractDomain > const_Domain_ptr
Definition: AbstractDomain.h:58