escript  Revision_4925
TestDomain.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2014 by University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development 2012-2013 by School of Earth Sciences
13 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 
18 #if !defined escript_TestDomain_20090618_H
19 #define escript_TestDomain_20090618_H
20 #include "system_dep.h"
21 
22 #include "AbstractDomain.h"
23 #include "FunctionSpace.h"
24 
25 #include <string>
26 
27 namespace escript {
28 
45 class TestDomain : public AbstractDomain {
46 
47  public:
48 
58  TestDomain(int pointspersample, int numsamples, int dpsize=1);
59 
61  ~TestDomain();
62 
69  virtual bool isValidFunctionSpaceType(int functionSpaceType) const;
70 
76  virtual std::string getDescription() const;
77 
83  virtual std::string functionSpaceTypeAsString(int functionSpaceType) const;
84 
91  virtual void interpolateOnDomain(escript::Data& target,const escript::Data& source) const;
93  virtual bool probeInterpolationOnDomain(int functionSpaceType_source,int functionSpaceType_target) const;
94 
96  bool
97  commonFunctionSpace(const std::vector<int>& fs, int& resultcode) const;
98 
104  virtual escript::Data getX() const;
105 
106 
113  virtual void interpolateACross(escript::Data& target, const escript::Data& source) const;
115  virtual bool probeInterpolationACross(int functionSpaceType_source,const AbstractDomain& targetDomain, int functionSpaceType_target) const;
116 
117 
123  virtual int getDefaultCode() const;
124 
125 
131  virtual int getContinuousFunctionCode() const;
132 
138  virtual int getFunctionCode() const;
139 
145  virtual int getFunctionOnBoundaryCode() const;
146 
152  virtual int getFunctionOnContactZeroCode() const;
153 
159  virtual int getFunctionOnContactOneCode() const;
160 
166  virtual int getSolutionCode() const;
167 
173  virtual int getReducedSolutionCode() const;
174 
180  virtual int getDiracDeltaFunctionsCode() const;
181 
189  virtual std::pair<int,int> getDataShape(int functionSpaceCode) const;
190 
198  virtual int getTagFromSampleNo(int functionSpaceType, int sampleNo) const;
199 
206  virtual const int* borrowSampleReferenceIDs(int functionSpaceType) const;
207 
212  virtual int getDim() const;
213 
219  virtual bool operator==(const AbstractDomain& other) const;
221  virtual bool operator!=(const AbstractDomain& other) const;
222 
227  virtual
228  bool canTag(int functionSpaceCode) const;
229 
236  virtual int getNumberOfTagsInUse(int functionSpaceCode) const;
237 
243  virtual const int* borrowListOfTagsInUse(int functionSpaceCode) const;
244 
246  virtual escript::Data randomFill(const DataTypes::ShapeType& shape,
247  const FunctionSpace& what, long seed, const boost::python::tuple& filter) const;
248 
249  protected:
250 
251  private:
252  int m_samples; // number of samples
253  int m_dpps; // data points per sample
254  int m_dpsize; // how big are the datapoints?
255  int* m_samplerefids; // sample reference ids
256 };
257 
260 getTestDomainFunctionSpace(int dpps, int samples, int dpsize);
261 
262 } // end of namespace
263 
264 #endif
virtual int getDim() const
Returns the spatial dimension of the domain.
Definition: TestDomain.cpp:181
Give a short description of what FunctionSpace does.
Definition: FunctionSpace.h:46
TestDomain(int pointspersample, int numsamples, int dpsize=1)
Default constructor for TestDomain.
Definition: TestDomain.cpp:33
virtual bool operator==(const AbstractDomain &other) const
Return true if given domains are equal.
Definition: TestDomain.cpp:189
virtual int getContinuousFunctionCode() const
Return a continuous FunctionSpace.
Definition: TestDomain.cpp:121
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:73
int m_dpsize
Definition: TestDomain.h:254
virtual int getTagFromSampleNo(int functionSpaceType, int sampleNo) const
Return the tag key for the given sample number.
Definition: TestDomain.cpp:166
virtual bool probeInterpolationOnDomain(int functionSpaceType_source, int functionSpaceType_target) const
True if interpolation is possible from source to target.
Definition: TestDomain.cpp:82
(Testing use only) Provides a domain to wrap a collection of values.
Definition: TestDomain.h:45
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:38
virtual int getNumberOfTagsInUse(int functionSpaceCode) const
return the number of tags in use. For this class the answer is always 1(the default tag)...
Definition: TestDomain.cpp:211
~TestDomain()
Definition: TestDomain.cpp:53
virtual std::pair< int, int > getDataShape(int functionSpaceCode) const
Return the number of data points per sample, and the number of samples as a pair. ...
Definition: TestDomain.cpp:161
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:257
virtual int getReducedSolutionCode() const
Return a FunctionSpace.
Definition: TestDomain.cpp:151
int m_samples
Definition: TestDomain.h:252
int m_dpps
Definition: TestDomain.h:253
virtual int getSolutionCode() const
Return a FunctionSpace.
Definition: TestDomain.cpp:146
virtual int getFunctionCode() const
Return a function FunctionSpace.
Definition: TestDomain.cpp:126
virtual bool isValidFunctionSpaceType(int functionSpaceType) const
Returns true if the given integer is a valid function space type for this domain. ...
Definition: TestDomain.cpp:58
Data represents a collection of datapoints.
Definition: Data.h:71
virtual int getFunctionOnContactZeroCode() const
Return a FunctionSpace.
Definition: TestDomain.cpp:136
virtual bool probeInterpolationACross(int functionSpaceType_source, const AbstractDomain &targetDomain, int functionSpaceType_target) const
Definition: TestDomain.cpp:96
virtual escript::Data getX() const
Returns locations in the domain.
Definition: TestDomain.cpp:221
virtual const int * borrowListOfTagsInUse(int functionSpaceCode) const
returns a pointer to an array with the tags used. For this class the answer will always be {0} ...
Definition: TestDomain.cpp:216
virtual std::string functionSpaceTypeAsString(int functionSpaceType) const
Return a description for the given function space type code.
Definition: TestDomain.cpp:68
virtual std::string getDescription() const
Return a description for this domain.
Definition: TestDomain.cpp:63
int * m_samplerefids
Definition: TestDomain.h:255
FunctionSpace getTestDomainFunctionSpace(int dpps, int samples, int dpsize)
Definition: TestDomain.cpp:270
virtual bool operator!=(const AbstractDomain &other) const
Definition: TestDomain.cpp:199
virtual bool canTag(int functionSpaceCode) const
Checks if this domain allows tags for the specified functionSpaceCode.
Definition: TestDomain.cpp:206
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:102
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:64
virtual const int * borrowSampleReferenceIDs(int functionSpaceType) const
Return a borrowed pointer to the sample reference number id list.
Definition: TestDomain.cpp:174
Definition: AbstractDomain.h:62
virtual int getFunctionOnBoundaryCode() const
Return a function on boundary FunctionSpace.
Definition: TestDomain.cpp:131
virtual int getDefaultCode() const
Return a continuous FunctionSpace.
Definition: TestDomain.cpp:116
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:91
virtual int getDiracDeltaFunctionsCode() const
Return a FunctionSpace.
Definition: TestDomain.cpp:156
virtual int getFunctionOnContactOneCode() const
Return a FunctionSpace.
Definition: TestDomain.cpp:141