escript
Revision_
|
00001 00002 /***************************************************************************** 00003 * 00004 * Copyright (c) 2003-2014 by University of Queensland 00005 * http://www.uq.edu.au 00006 * 00007 * Primary Business: Queensland, Australia 00008 * Licensed under the Open Software License version 3.0 00009 * http://www.opensource.org/licenses/osl-3.0.php 00010 * 00011 * Development until 2012 by Earth Systems Science Computational Center (ESSCC) 00012 * Development 2012-2013 by School of Earth Sciences 00013 * Development from 2014 by Centre for Geoscience Computing (GeoComp) 00014 * 00015 *****************************************************************************/ 00016 00017 00018 #if !defined escript_NullDomain_20040604_H 00019 #define escript_NullDomain_20040604_H 00020 #include "system_dep.h" 00021 00022 #include "AbstractDomain.h" 00023 00024 #include <string> 00025 00026 namespace escript { 00027 00043 class NullDomain : public AbstractDomain { 00044 00045 public: 00046 00055 ESCRIPT_DLL_API 00056 NullDomain(); 00057 00063 ESCRIPT_DLL_API 00064 virtual bool isValidFunctionSpaceType(int functionSpaceType) const; 00065 00070 ESCRIPT_DLL_API 00071 virtual std::string getDescription() const; 00072 00077 ESCRIPT_DLL_API 00078 virtual std::string functionSpaceTypeAsString(int functionSpaceType) const; 00079 00085 ESCRIPT_DLL_API 00086 virtual void interpolateOnDomain(escript::Data& target,const escript::Data& source) const; 00087 ESCRIPT_DLL_API 00088 virtual bool probeInterpolationOnDomain(int functionSpaceType_source,int functionSpaceType_target) const; 00089 00095 ESCRIPT_DLL_API 00096 virtual void interpolateACross(escript::Data& target, const escript::Data& source) const; 00097 ESCRIPT_DLL_API 00098 virtual bool probeInterpolationACross(int functionSpaceType_source,const AbstractDomain& targetDomain, int functionSpaceType_target) const; 00099 00104 ESCRIPT_DLL_API 00105 virtual int getContinuousFunctionCode() const; 00106 00111 ESCRIPT_DLL_API 00112 virtual int getFunctionCode() const; 00113 00118 ESCRIPT_DLL_API 00119 virtual int getFunctionOnBoundaryCode() const; 00120 00125 ESCRIPT_DLL_API 00126 virtual int getFunctionOnContactZeroCode() const; 00127 00132 ESCRIPT_DLL_API 00133 virtual int getFunctionOnContactOneCode() const; 00134 00139 ESCRIPT_DLL_API 00140 virtual int getSolutionCode() const; 00141 00146 ESCRIPT_DLL_API 00147 virtual int getReducedSolutionCode() const; 00148 00153 ESCRIPT_DLL_API 00154 virtual int getDiracDeltaFunctionsCode() const; 00155 00162 ESCRIPT_DLL_API 00163 virtual std::pair<int,int> getDataShape(int functionSpaceCode) const; 00164 00171 ESCRIPT_DLL_API 00172 virtual int getTagFromSampleNo(int functionSpaceType, int sampleNo) const; 00173 00179 ESCRIPT_DLL_API 00180 virtual const int* borrowSampleReferenceIDs(int functionSpaceType) const; 00181 00185 ESCRIPT_DLL_API 00186 virtual int getDim() const; 00187 00192 ESCRIPT_DLL_API 00193 virtual bool operator==(const AbstractDomain& other) const; 00194 ESCRIPT_DLL_API 00195 virtual bool operator!=(const AbstractDomain& other) const; 00196 00200 ESCRIPT_DLL_API 00201 virtual 00202 bool canTag(int functionSpaceCode) const; 00203 00209 ESCRIPT_DLL_API 00210 virtual int getNumberOfTagsInUse(int functionSpaceCode) const; 00211 00216 ESCRIPT_DLL_API 00217 virtual const int* borrowListOfTagsInUse(int functionSpaceCode) const; 00218 00219 ESCRIPT_DLL_API 00220 bool supportsContactElements() const; 00221 00222 ESCRIPT_DLL_API 00223 virtual escript::Data randomFill(const DataTypes::ShapeType& shape, 00224 const FunctionSpace& what, long seed, const boost::python::tuple& filter) const; 00225 00226 protected: 00227 00228 private: 00229 00230 }; 00231 00232 } // end of namespace 00233 00234 #endif