16 #ifndef __RIPLEY_DOMAIN_H__
17 #define __RIPLEY_DOMAIN_H__
19 #include <boost/python/tuple.hpp>
21 #include <ripley/Ripley.h>
22 #include <ripley/RipleyException.h>
23 #include <escript/AbstractContinuousDomain.h>
24 #include <escript/Data.h>
25 #include <escript/FunctionSpace.h>
58 virtual int getMPISize()
const {
return m_mpiInfo->size; }
64 virtual int getMPIRank()
const {
return m_mpiInfo->rank; }
72 MPI_Barrier(m_mpiInfo->comm);
93 return m_mpiInfo->comm;
104 virtual bool isValidFunctionSpaceType(
int fsType)
const;
110 virtual std::string functionSpaceTypeAsString(
int fsType)
const;
116 virtual int getDim()
const {
return m_numDim; }
127 return !(operator==(other));
136 virtual std::pair<int,int> getDataShape(
int fsType)
const;
144 int getTagFromSampleNo(
int fsType,
int sampleNo)
const;
152 virtual void setTagMap(
const std::string& name,
int tag) {
153 m_tagMap[name] = tag;
161 virtual int getTag(
const std::string& name)
const {
162 if (m_tagMap.find(name) != m_tagMap.end()) {
163 return m_tagMap.find(name)->second;
175 return (m_tagMap.find(name)!=m_tagMap.end());
182 virtual std::string showTagNames()
const;
203 virtual bool probeInterpolationOnDomain(
int fsType_source,
int fsType_target)
const;
212 virtual signed char preferredInterpolationOnDomain(
int fsType_source,
int fsType_target)
const;
221 commonFunctionSpace(
const std::vector<int>& fs,
int& resultcode)
const;
273 virtual void setTags(
const int fsType,
const int newTag,
const escript::Data& mask)
const;
280 virtual bool isCellOriented(
int fsType)
const;
294 virtual int getNumberOfTagsInUse(
int fsType)
const;
300 virtual const int* borrowListOfTagsInUse(
int fsType)
const;
306 virtual bool canTag(
int fsType)
const;
417 virtual int getSystemMatrixTypeId(
const int solver,
const int preconditioner,
const int package,
const bool symmetry)
const;
428 virtual int getTransportTypeId(
const int solver,
const int preconditioner,
const int package,
const bool symmetry)
const;
477 const int column_blocksize,
486 const int type)
const;
493 virtual void Print_Mesh_Info(
const bool full=
false)
const;
509 virtual std::string getDescription()
const = 0;
516 void dump(
const std::string& filename)
const = 0;
523 const int* borrowSampleReferenceIDs(
int fsType)
const = 0;
543 const std::vector<int>& first,
544 const std::vector<int>& numValues,
545 const std::vector<int>& multiplier)
const = 0;
550 std::string varname,
const std::vector<int>& first,
551 const std::vector<int>& numValues,
552 const std::vector<int>& multiplier)
const = 0;
557 std::string filename,
558 int byteOrder,
int dataType)
const = 0;
564 virtual bool ownSample(
int fsType,
index_t id)
const = 0;
570 virtual int getNumDataPointsGlobal()
const = 0;
576 virtual const int* getNumNodesPerDim()
const = 0;
582 virtual const int* getNumElementsPerDim()
const = 0;
589 virtual const int* getNumFacesPerBoundary()
const = 0;
595 virtual IndexVector getNodeDistribution()
const = 0;
601 virtual const int* getNumSubdivisionsPerDim()
const = 0;
607 virtual double getLocalCoordinate(
int index,
int dim)
const = 0;
613 virtual boost::python::tuple getGridParameters()
const = 0;
634 void updateTagsInUse(
int fsType)
const;
646 void createCouplePatterns(
const std::vector<IndexVector>& colIndices,
657 virtual dim_t getNumNodes()
const = 0;
660 virtual dim_t getNumElements()
const = 0;
663 virtual dim_t getNumDOF()
const = 0;
666 virtual dim_t getNumFaceElements()
const = 0;
673 virtual void assembleCoordinates(
escript::Data& arg)
const = 0;
735 bool reducedColOrder)
const = 0;
743 bool reduced)
const = 0;
766 #endif // __RIPLEY_DOMAIN_H__