Go to the documentation of this file.
18 #ifndef __ESCRIPT_TESTDOMAIN_H__
19 #define __ESCRIPT_TESTDOMAIN_H__
45 TestDomain(
int pointspersample,
int numsamples,
int dpsize=1);
49 virtual int getMPISize()
const;
50 virtual int getMPIRank()
const;
51 virtual void MPIBarrier()
const;
52 virtual bool onMasterProcessor()
const;
56 virtual bool isValidFunctionSpaceType(
int functionSpaceType)
const;
58 virtual std::string getDescription()
const;
60 virtual std::string functionSpaceTypeAsString(
int functionSpaceType)
const;
64 virtual bool probeInterpolationOnDomain(
int functionSpaceType_source,
int functionSpaceType_target)
const;
66 bool commonFunctionSpace(
const std::vector<int>& fs,
int& resultcode)
const;
74 virtual int getDefaultCode()
const;
75 virtual int getContinuousFunctionCode()
const;
76 virtual int getFunctionCode()
const;
77 virtual int getFunctionOnBoundaryCode()
const;
78 virtual int getFunctionOnContactZeroCode()
const;
79 virtual int getFunctionOnContactOneCode()
const;
80 virtual int getSolutionCode()
const;
81 virtual int getReducedSolutionCode()
const;
82 virtual int getDiracDeltaFunctionsCode()
const;
84 virtual std::pair<int,DataTypes::dim_t> getDataShape(
int functionSpaceCode)
const;
86 virtual int getTagFromSampleNo(
int functionSpaceType,
DataTypes::index_t sampleNo)
const;
88 virtual const DataTypes::dim_t* borrowSampleReferenceIDs(
int functionSpaceType)
const;
90 virtual int getDim()
const;
96 virtual bool canTag(
int functionSpaceCode)
const;
98 virtual int getNumberOfTagsInUse(
int functionSpaceCode)
const;
100 virtual const int* borrowListOfTagsInUse(
int functionSpaceCode)
const;
104 const boost::python::tuple& filter)
const;
106 void addUsedTag(
int t);
107 void clearUsedTags();
108 void assignTags(std::vector<int> t);
109 void resetTagAssignments();
134 #endif // __ESCRIPT_TESTDOMAIN_H__
const DataReady * getReady() const
Definition: Data.h:1786
std::vector< int > tag_assignment
Definition: TestDomain.h:123
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:30
void MPIBarrierWorld()
performs a barrier synchronization across all processors.
Definition: Utils.cpp:377
virtual ~TestDomain()
Definition: TestDomain.cpp:66
virtual int getSolutionCode() const
Definition: TestDomain.cpp:189
NullDomain provides a null value for domain. Needed for the construction of a default FunctionSpace.
Definition: NullDomain.h:41
virtual int getContinuousFunctionCode() const
Definition: TestDomain.cpp:164
Definition: DomainException.h:28
virtual void interpolateAcross(escript::Data &target, const escript::Data &source) const
Interpolates data given on source onto target where source and target are given on different domains.
Definition: TestDomain.cpp:138
virtual bool isValidFunctionSpaceType(int functionSpaceType) const
Returns true if the given integer is a valid function space type for this domain.
Definition: TestDomain.cpp:105
virtual int getTagFromSampleNo(int functionSpaceType, DataTypes::index_t sampleNo) const
Return the tag key for the given sample number.
Definition: TestDomain.cpp:209
Domain_ptr getPtr()
Returns smart pointer which is managing this object. If one does not exist yet it creates one.
Definition: AbstractDomain.cpp:25
void randomFillArray(long seed, double *array, size_t n)
Definition: Random.cpp:75
DataTypes::dim_t m_totalsamples
Definition: TestDomain.h:112
virtual int getFunctionOnContactZeroCode() const
Definition: TestDomain.cpp:179
int m_dpsize
Definition: TestDomain.h:119
(Testing use only) Provides a domain to wrap a collection of values.
Definition: TestDomain.h:43
void assignTags(std::vector< int > t)
Definition: TestDomain.cpp:314
boost::shared_ptr< AbstractDomain > Domain_ptr
Definition: AbstractDomain.h:41
virtual const DataTypes::dim_t * borrowSampleReferenceIDs(int functionSpaceType) const
Returns a borrowed pointer to the sample reference number id list.
Definition: TestDomain.cpp:220
int getMPISizeWorld()
returns the total number of available MPI processes for MPI_COMM_WORLD
Definition: Utils.cpp:94
virtual int getMPIRank() const
return the number MPI rank of this processor
Definition: TestDomain.cpp:76
virtual bool operator!=(const AbstractDomain &other) const
Return true if given domains are not equal.
Definition: TestDomain.cpp:236
Definition: FunctionSpace.h:36
JMPI makeInfo(MPI_Comm comm, bool owncom)
Definition: EsysMPI.cpp:29
const FunctionSpace & getFunctionSpace() const
Return the function space.
Definition: Data.h:463
bool probeInterpolationAcross(int fsType_source, const escript::AbstractDomain &domain, int fsType_target, int dim)
Definition: CrossDomainCoupler.cpp:32
const_Domain_ptr getDomain() const
Returns the function space domain.
Definition: FunctionSpace.cpp:103
virtual escript::JMPI getMPI() const
returns a shared pointer to the MPI information wrapper for this domain
Definition: TestDomain.cpp:98
escript::JMPI myworld
Definition: TestDomain.h:126
TestDomain(int pointspersample, int numsamples, int dpsize=1)
Definition: TestDomain.cpp:37
DataTypes::dim_t m_samples
Definition: TestDomain.h:113
int m_dpps
Definition: TestDomain.h:118
#define MPI_COMM_WORLD
Definition: EsysMPI.h:48
Data represents a collection of datapoints.
Definition: Data.h:64
Definition: DataException.h:28
virtual int getFunctionOnBoundaryCode() const
Definition: TestDomain.cpp:174
virtual escript::Data randomFill(const DataTypes::ShapeType &shape, const FunctionSpace &what, long seed, const boost::python::tuple &filter) const
Fills the data object with filtered random values.
Definition: TestDomain.cpp:279
index_t dim_t
Definition: DataTypes.h:65
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:43
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:72
virtual const int * borrowListOfTagsInUse(int functionSpaceCode) const
Definition: TestDomain.cpp:309
virtual escript::Data getX() const
Returns locations in the domain. The function space is chosen appropriately.
Definition: TestDomain.cpp:251
void resetTagAssignments()
Definition: TestDomain.cpp:328
virtual std::pair< int, DataTypes::dim_t > getDataShape(int functionSpaceCode) const
Returns the number of data points per sample, and the number of samples as a pair.
Definition: TestDomain.cpp:204
virtual int getDefaultCode() const
Definition: TestDomain.cpp:159
void addUsedTag(int t)
Definition: TestDomain.cpp:291
virtual int getMPISize() const
return the number of processors used for this domain
Definition: TestDomain.cpp:71
virtual bool operator==(const AbstractDomain &other) const
Return true if given domains are equal.
Definition: TestDomain.cpp:230
virtual int getReducedSolutionCode() const
Definition: TestDomain.cpp:194
virtual std::string functionSpaceTypeAsString(int functionSpaceType) const
Return a description for the given function space type code.
Definition: TestDomain.cpp:115
virtual bool canTag(int functionSpaceCode) const
Checks if this domain allows tags for the specified functionSpaceCode.
Definition: TestDomain.cpp:241
bool commonFunctionSpace(const std::vector< int > &fs, int &resultcode) const
given a vector of FunctionSpace type codes, pass back a code which then can all be interpolated to.
Definition: TestDomain.cpp:149
virtual void MPIBarrier() const
If compiled for MPI then execute an MPI_Barrier, else do nothing.
Definition: TestDomain.cpp:81
virtual void interpolateOnDomain(escript::Data &target, const escript::Data &source) const
Interpolates data given on source onto target where source and target have to be given on the same do...
Definition: TestDomain.cpp:120
void clearUsedTags()
Definition: TestDomain.cpp:303
FunctionSpace getTestDomainFunctionSpace(int dpps, DataTypes::dim_t samples, int dpsize)
Definition: TestDomain.cpp:338
virtual int getNumberOfTagsInUse(int functionSpaceCode) const
returns the number of tags in use and a pointer to an array with the number of tags in use
Definition: TestDomain.cpp:246
virtual int getDiracDeltaFunctionsCode() const
Definition: TestDomain.cpp:199
DataTypes::dim_t * m_samplerefids
Definition: TestDomain.h:120
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:60
DataTypes::dim_t m_endsample
Definition: TestDomain.h:115
Definition: AbstractContinuousDomain.cpp:23
size_type size() const
Return the number of elements in this DataVectorAlt.
Definition: DataVectorAlt.h:215
virtual DataTypes::RealVectorType & getVectorRW()=0
Provide access to underlying storage. Internal use only!
virtual bool probeInterpolationOnDomain(int functionSpaceType_source, int functionSpaceType_target) const
True if interpolation is possible from source to target.
Definition: TestDomain.cpp:129
virtual int getFunctionOnContactOneCode() const
Definition: TestDomain.cpp:184
virtual bool probeInterpolationAcross(int functionSpaceType_source, const AbstractDomain &targetDomain, int functionSpaceType_target) const
Definition: TestDomain.cpp:143
virtual std::string getDescription() const
Return a description for this domain.
Definition: TestDomain.cpp:110
Base class for all escript domains.
Definition: AbstractDomain.h:51
int getMPIRankWorld()
returns the MPI processor number within MPI_COMM_WORLD
Definition: Utils.cpp:103
virtual bool onMasterProcessor() const
Return true if on MPI master, else false.
Definition: TestDomain.cpp:86
DataTypes::RealVectorType & getExpandedVectorReference(DataTypes::real_t dummy=0)
Ensures that the Data is expanded and returns its underlying vector Does not check for exclusive writ...
Definition: Data.cpp:5841
std::vector< int > mytags
Definition: TestDomain.h:122
virtual int getFunctionCode() const
Definition: TestDomain.cpp:169
virtual int getDim() const
Returns the spatial dimension of the domain.
Definition: TestDomain.cpp:225
static const ShapeType scalarShape
Use this instead of creating empty shape objects for scalars.
Definition: DataTypes.h:47
DataTypes::dim_t m_originsample
Definition: TestDomain.h:114