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