escript  Revision_4925
NullDomain.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2014 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 2012-2013 by School of Earth Sciences
13 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 
18 #if !defined escript_NullDomain_20040604_H
19 #define escript_NullDomain_20040604_H
20 #include "system_dep.h"
21 
22 #include "AbstractDomain.h"
23 
24 #include <string>
25 
26 namespace escript {
27 
43 class NullDomain : public AbstractDomain {
44 
45  public:
46 
56  NullDomain();
57 
64  virtual bool isValidFunctionSpaceType(int functionSpaceType) const;
65 
71  virtual std::string getDescription() const;
72 
78  virtual std::string functionSpaceTypeAsString(int functionSpaceType) const;
79 
86  virtual void interpolateOnDomain(escript::Data& target,const escript::Data& source) const;
88  virtual bool probeInterpolationOnDomain(int functionSpaceType_source,int functionSpaceType_target) const;
89 
96  virtual void interpolateACross(escript::Data& target, const escript::Data& source) const;
98  virtual bool probeInterpolationACross(int functionSpaceType_source,const AbstractDomain& targetDomain, int functionSpaceType_target) const;
99 
105  virtual int getContinuousFunctionCode() const;
106 
112  virtual int getFunctionCode() const;
113 
119  virtual int getFunctionOnBoundaryCode() const;
120 
126  virtual int getFunctionOnContactZeroCode() const;
127 
133  virtual int getFunctionOnContactOneCode() const;
134 
140  virtual int getSolutionCode() const;
141 
147  virtual int getReducedSolutionCode() const;
148 
154  virtual int getDiracDeltaFunctionsCode() const;
155 
163  virtual std::pair<int,int> getDataShape(int functionSpaceCode) const;
164 
172  virtual int getTagFromSampleNo(int functionSpaceType, int sampleNo) const;
173 
180  virtual const int* borrowSampleReferenceIDs(int functionSpaceType) const;
181 
186  virtual int getDim() const;
187 
193  virtual bool operator==(const AbstractDomain& other) const;
195  virtual bool operator!=(const AbstractDomain& other) const;
196 
201  virtual
202  bool canTag(int functionSpaceCode) const;
203 
210  virtual int getNumberOfTagsInUse(int functionSpaceCode) const;
211 
217  virtual const int* borrowListOfTagsInUse(int functionSpaceCode) const;
218 
220  bool supportsContactElements() const;
221 
223  virtual escript::Data randomFill(const DataTypes::ShapeType& shape,
224  const FunctionSpace& what, long seed, const boost::python::tuple& filter) const;
225 
226  protected:
227 
228  private:
229 
230 };
231 
232 } // end of namespace
233 
234 #endif
Give a short description of what FunctionSpace does.
Definition: FunctionSpace.h:46
virtual int getDiracDeltaFunctionsCode() const
Return a FunctionSpace.
Definition: NullDomain.cpp:114
bool supportsContactElements() const
Definition: NullDomain.cpp:183
virtual const int * borrowListOfTagsInUse(int functionSpaceCode) const
returns a pointer to an array with the tags used. For this class the answer will always be {0} ...
Definition: NullDomain.cpp:178
virtual bool isValidFunctionSpaceType(int functionSpaceType) const
Returns true if the given integer is a valid function space type for this domain. ...
Definition: NullDomain.cpp:36
virtual int getTagFromSampleNo(int functionSpaceType, int sampleNo) const
Return the tag key for the given sample number.
Definition: NullDomain.cpp:128
virtual int getContinuousFunctionCode() const
Return a continuous FunctionSpace.
Definition: NullDomain.cpp:79
NullDomain provides a null value for domain. Needed for the construction of a default FunctionSpace...
Definition: NullDomain.h:43
virtual bool probeInterpolationACross(int functionSpaceType_source, const AbstractDomain &targetDomain, int functionSpaceType_target) const
Definition: NullDomain.cpp:74
virtual int getDim() const
Returns the spatial dimension of the domain.
Definition: NullDomain.cpp:144
virtual int getFunctionCode() const
Return a function FunctionSpace.
Definition: NullDomain.cpp:84
virtual std::pair< int, int > getDataShape(int functionSpaceCode) const
Return the number of data points per sample, and the number of samples as a pair. ...
Definition: NullDomain.cpp:119
virtual const int * borrowSampleReferenceIDs(int functionSpaceType) const
Return a borrowed pointer to the sample reference number id list.
Definition: NullDomain.cpp:137
virtual void interpolateACross(escript::Data &target, const escript::Data &source) const
Interpolates data given on source onto target where source and target are given on different domains...
Definition: NullDomain.cpp:69
virtual bool operator==(const AbstractDomain &other) const
Return true if given domains are equal.
Definition: NullDomain.cpp:151
virtual void interpolateOnDomain(escript::Data &target, const escript::Data &source) const
Interpolates data given on source onto target where source and target have to be given on the same do...
Definition: NullDomain.cpp:51
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:38
virtual bool probeInterpolationOnDomain(int functionSpaceType_source, int functionSpaceType_target) const
True if interpolation is possible from source to target.
Definition: NullDomain.cpp:60
virtual bool operator!=(const AbstractDomain &other) const
Definition: NullDomain.cpp:161
virtual bool canTag(int functionSpaceCode) const
Checks if this domain allows tags for the specified functionSpaceCode.
Definition: NullDomain.cpp:168
virtual std::string getDescription() const
Return a description for this domain.
Definition: NullDomain.cpp:41
Data represents a collection of datapoints.
Definition: Data.h:71
virtual escript::Data randomFill(const DataTypes::ShapeType &shape, const FunctionSpace &what, long seed, const boost::python::tuple &filter) const
Fills the data object with filtered random values.
Definition: NullDomain.cpp:188
virtual int getFunctionOnBoundaryCode() const
Return a function on boundary FunctionSpace.
Definition: NullDomain.cpp:89
virtual int getReducedSolutionCode() const
Return a FunctionSpace.
Definition: NullDomain.cpp:109
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:64
virtual int getNumberOfTagsInUse(int functionSpaceCode) const
return the number of tags in use. For this class the answer is always 1(the default tag)...
Definition: NullDomain.cpp:173
Definition: AbstractDomain.h:62
virtual int getSolutionCode() const
Return a FunctionSpace.
Definition: NullDomain.cpp:104
virtual int getFunctionOnContactOneCode() const
Return a FunctionSpace.
Definition: NullDomain.cpp:99
virtual std::string functionSpaceTypeAsString(int functionSpaceType) const
Return a description for the given function space type code.
Definition: NullDomain.cpp:46
virtual int getFunctionOnContactZeroCode() const
Return a FunctionSpace.
Definition: NullDomain.cpp:94
NullDomain()
Default constructor for NullDomain.
Definition: NullDomain.cpp:33