18 #ifndef __ESCRIPT_ABSTRACTDOMAIN_H__ 19 #define __ESCRIPT_ABSTRACTDOMAIN_H__ 26 #include <boost/python/tuple.hpp> 58 const_Domain_ptr getPtr()
const;
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__ 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:31
boost::shared_ptr< AbstractDomain > Domain_ptr
Definition: AbstractDomain.h:36
Definition: AbstractContinuousDomain.cpp:22
virtual ~AbstractDomain()
Destructor for AbstractDomain.
Definition: AbstractDomain.h:64
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:71
#define REFCOUNT_BASE_CLASS(x)
Definition: Pointers.h:30
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:42
Typedefs and macros for reference counted storage.
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:59
int StatusType
Definition: AbstractDomain.h:48
Data represents a collection of datapoints.
Definition: Data.h:63
int MPI_Comm
Definition: EsysMPI.h:41
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:29
Base class for all escript domains.
Definition: AbstractDomain.h:45
boost::shared_ptr< const AbstractDomain > const_Domain_ptr
Definition: AbstractDomain.h:39
index_t dim_t
Definition: DataTypes.h:64