Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #if !defined escript_TestDomain_20090618_H
00016 #define escript_TestDomain_20090618_H
00017 #include "system_dep.h"
00018
00019 #include "AbstractDomain.h"
00020 #include "FunctionSpace.h"
00021
00022 #include <string>
00023
00024 namespace escript {
00025
00042 class TestDomain : public AbstractDomain {
00043
00044 public:
00045
00054 ESCRIPT_DLL_API
00055 TestDomain(int pointspersample, int numsamples);
00056
00057 ESCRIPT_DLL_API
00058 ~TestDomain();
00059
00065 ESCRIPT_DLL_API
00066 virtual bool isValidFunctionSpaceType(int functionSpaceType) const;
00067
00072 ESCRIPT_DLL_API
00073 virtual std::string getDescription() const;
00074
00079 ESCRIPT_DLL_API
00080 virtual std::string functionSpaceTypeAsString(int functionSpaceType) const;
00081
00087 ESCRIPT_DLL_API
00088 virtual void interpolateOnDomain(escript::Data& target,const escript::Data& source) const;
00089 ESCRIPT_DLL_API
00090 virtual bool probeInterpolationOnDomain(int functionSpaceType_source,int functionSpaceType_target) const;
00091
00092 ESCRIPT_DLL_API
00093 bool
00094 commonFunctionSpace(const std::vector<int>& fs, int& resultcode) const;
00095
00100 ESCRIPT_DLL_API
00101 virtual escript::Data getX() const;
00102
00103
00109 ESCRIPT_DLL_API
00110 virtual void interpolateACross(escript::Data& target, const escript::Data& source) const;
00111 ESCRIPT_DLL_API
00112 virtual bool probeInterpolationACross(int functionSpaceType_source,const AbstractDomain& targetDomain, int functionSpaceType_target) const;
00113
00114
00119 ESCRIPT_DLL_API
00120 virtual int getDefaultCode() const;
00121
00122
00127 ESCRIPT_DLL_API
00128 virtual int getContinuousFunctionCode() const;
00129
00134 ESCRIPT_DLL_API
00135 virtual int getFunctionCode() const;
00136
00141 ESCRIPT_DLL_API
00142 virtual int getFunctionOnBoundaryCode() const;
00143
00148 ESCRIPT_DLL_API
00149 virtual int getFunctionOnContactZeroCode() const;
00150
00155 ESCRIPT_DLL_API
00156 virtual int getFunctionOnContactOneCode() const;
00157
00162 ESCRIPT_DLL_API
00163 virtual int getSolutionCode() const;
00164
00169 ESCRIPT_DLL_API
00170 virtual int getReducedSolutionCode() const;
00171
00176 ESCRIPT_DLL_API
00177 virtual int getDiracDeltaFunctionsCode() const;
00178
00185 ESCRIPT_DLL_API
00186 virtual std::pair<int,int> getDataShape(int functionSpaceCode) const;
00187
00194 ESCRIPT_DLL_API
00195 virtual int getTagFromSampleNo(int functionSpaceType, int sampleNo) const;
00196
00202 ESCRIPT_DLL_API
00203 virtual const int* borrowSampleReferenceIDs(int functionSpaceType) const;
00204
00208 ESCRIPT_DLL_API
00209 virtual int getDim() const;
00210
00215 ESCRIPT_DLL_API
00216 virtual bool operator==(const AbstractDomain& other) const;
00217 ESCRIPT_DLL_API
00218 virtual bool operator!=(const AbstractDomain& other) const;
00219
00223 ESCRIPT_DLL_API
00224 virtual
00225 bool canTag(int functionSpaceCode) const;
00226
00232 ESCRIPT_DLL_API
00233 virtual int getNumberOfTagsInUse(int functionSpaceCode) const;
00234
00239 ESCRIPT_DLL_API
00240 virtual const int* borrowListOfTagsInUse(int functionSpaceCode) const;
00241
00242 protected:
00243
00244 private:
00245 int m_samples;
00246 int m_dpps;
00247 int* m_samplerefids;
00248 };
00249
00250 ESCRIPT_DLL_API
00251 FunctionSpace
00252 getTestDomainFunctionSpace(int dpps, int samples);
00253
00254 }
00255
00256 #endif