Escript  Revision_4320
NullDomain.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2013 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 since 2012 by School of Earth Sciences
13 *
14 *****************************************************************************/
15 
16 
17 #if !defined escript_NullDomain_20040604_H
18 #define escript_NullDomain_20040604_H
19 #include "system_dep.h"
20 
21 #include "AbstractDomain.h"
22 
23 #include <string>
24 
25 namespace escript {
26 
42 class NullDomain : public AbstractDomain {
43 
44  public:
45 
55  NullDomain();
56 
63  virtual bool isValidFunctionSpaceType(int functionSpaceType) const;
64 
70  virtual std::string getDescription() const;
71 
77  virtual std::string functionSpaceTypeAsString(int functionSpaceType) const;
78 
85  virtual void interpolateOnDomain(escript::Data& target,const escript::Data& source) const;
87  virtual bool probeInterpolationOnDomain(int functionSpaceType_source,int functionSpaceType_target) const;
88 
95  virtual void interpolateACross(escript::Data& target, const escript::Data& source) const;
97  virtual bool probeInterpolationACross(int functionSpaceType_source,const AbstractDomain& targetDomain, int functionSpaceType_target) const;
98 
104  virtual int getContinuousFunctionCode() const;
105 
111  virtual int getFunctionCode() const;
112 
118  virtual int getFunctionOnBoundaryCode() const;
119 
125  virtual int getFunctionOnContactZeroCode() const;
126 
132  virtual int getFunctionOnContactOneCode() const;
133 
139  virtual int getSolutionCode() const;
140 
146  virtual int getReducedSolutionCode() const;
147 
153  virtual int getDiracDeltaFunctionsCode() const;
154 
162  virtual std::pair<int,int> getDataShape(int functionSpaceCode) const;
163 
171  virtual int getTagFromSampleNo(int functionSpaceType, int sampleNo) const;
172 
179  virtual const int* borrowSampleReferenceIDs(int functionSpaceType) const;
180 
185  virtual int getDim() const;
186 
192  virtual bool operator==(const AbstractDomain& other) const;
194  virtual bool operator!=(const AbstractDomain& other) const;
195 
200  virtual
201  bool canTag(int functionSpaceCode) const;
202 
209  virtual int getNumberOfTagsInUse(int functionSpaceCode) const;
210 
216  virtual const int* borrowListOfTagsInUse(int functionSpaceCode) const;
217 
219  bool supportsContactElements() const;
220  protected:
221 
222  private:
223 
224 };
225 
226 } // end of namespace
227 
228 #endif