ESYS13
Revision_
|
00001 00002 /******************************************************* 00003 * 00004 * Copyright (c) 2003-2012 by University of Queensland 00005 * Earth Systems Science Computational Center (ESSCC) 00006 * http://www.uq.edu.au/esscc 00007 * 00008 * Primary Business: Queensland, Australia 00009 * Licensed under the Open Software License version 3.0 00010 * http://www.opensource.org/licenses/osl-3.0.php 00011 * 00012 *******************************************************/ 00013 00014 00015 #if !defined escript_NullDomain_20040604_H 00016 #define escript_NullDomain_20040604_H 00017 #include "system_dep.h" 00018 00019 #include "AbstractDomain.h" 00020 00021 #include <string> 00022 00023 namespace escript { 00024 00040 class NullDomain : public AbstractDomain { 00041 00042 public: 00043 00052 ESCRIPT_DLL_API 00053 NullDomain(); 00054 00060 ESCRIPT_DLL_API 00061 virtual bool isValidFunctionSpaceType(int functionSpaceType) const; 00062 00067 ESCRIPT_DLL_API 00068 virtual std::string getDescription() const; 00069 00074 ESCRIPT_DLL_API 00075 virtual std::string functionSpaceTypeAsString(int functionSpaceType) const; 00076 00082 ESCRIPT_DLL_API 00083 virtual void interpolateOnDomain(escript::Data& target,const escript::Data& source) const; 00084 ESCRIPT_DLL_API 00085 virtual bool probeInterpolationOnDomain(int functionSpaceType_source,int functionSpaceType_target) const; 00086 00092 ESCRIPT_DLL_API 00093 virtual void interpolateACross(escript::Data& target, const escript::Data& source) const; 00094 ESCRIPT_DLL_API 00095 virtual bool probeInterpolationACross(int functionSpaceType_source,const AbstractDomain& targetDomain, int functionSpaceType_target) const; 00096 00101 ESCRIPT_DLL_API 00102 virtual int getContinuousFunctionCode() const; 00103 00108 ESCRIPT_DLL_API 00109 virtual int getFunctionCode() const; 00110 00115 ESCRIPT_DLL_API 00116 virtual int getFunctionOnBoundaryCode() const; 00117 00122 ESCRIPT_DLL_API 00123 virtual int getFunctionOnContactZeroCode() const; 00124 00129 ESCRIPT_DLL_API 00130 virtual int getFunctionOnContactOneCode() const; 00131 00136 ESCRIPT_DLL_API 00137 virtual int getSolutionCode() const; 00138 00143 ESCRIPT_DLL_API 00144 virtual int getReducedSolutionCode() const; 00145 00150 ESCRIPT_DLL_API 00151 virtual int getDiracDeltaFunctionsCode() const; 00152 00159 ESCRIPT_DLL_API 00160 virtual std::pair<int,int> getDataShape(int functionSpaceCode) const; 00161 00168 ESCRIPT_DLL_API 00169 virtual int getTagFromSampleNo(int functionSpaceType, int sampleNo) const; 00170 00176 ESCRIPT_DLL_API 00177 virtual const int* borrowSampleReferenceIDs(int functionSpaceType) const; 00178 00182 ESCRIPT_DLL_API 00183 virtual int getDim() const; 00184 00189 ESCRIPT_DLL_API 00190 virtual bool operator==(const AbstractDomain& other) const; 00191 ESCRIPT_DLL_API 00192 virtual bool operator!=(const AbstractDomain& other) const; 00193 00197 ESCRIPT_DLL_API 00198 virtual 00199 bool canTag(int functionSpaceCode) const; 00200 00206 ESCRIPT_DLL_API 00207 virtual int getNumberOfTagsInUse(int functionSpaceCode) const; 00208 00213 ESCRIPT_DLL_API 00214 virtual const int* borrowListOfTagsInUse(int functionSpaceCode) const; 00215 00216 ESCRIPT_DLL_API 00217 bool supportsContactElements() const; 00218 protected: 00219 00220 private: 00221 00222 }; 00223 00224 } // end of namespace 00225 00226 #endif