ESYS13  Revision_
NullDomain.h
Go to the documentation of this file.
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