00001 00002 /******************************************************* 00003 * 00004 * Copyright (c) 2003-2009 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_AbstractContinuousDomain_20040528_H 00016 #define escript_AbstractContinuousDomain_20040528_H 00017 00018 #include "system_dep.h" 00019 #include "AbstractDomain.h" 00020 00021 #include <string> 00022 #include <vector> 00023 00024 namespace escript { 00025 00026 // 00027 // Forward declaration 00028 class Data; 00029 00040 class AbstractContinuousDomain : public AbstractDomain { 00041 00042 public: 00043 00057 ESCRIPT_DLL_API 00058 AbstractContinuousDomain(); 00059 00073 ESCRIPT_DLL_API 00074 virtual ~AbstractContinuousDomain(); 00075 00081 ESCRIPT_DLL_API 00082 virtual bool isValidFunctionSpaceType(int functionSpaceType) const; 00083 00088 ESCRIPT_DLL_API 00089 virtual std::string getDescription() const; 00090 00095 ESCRIPT_DLL_API 00096 virtual int getContinuousFunctionCode() const; 00097 00102 ESCRIPT_DLL_API 00103 virtual int getReducedContinuousFunctionCode() const; 00104 00109 ESCRIPT_DLL_API 00110 virtual int getFunctionCode() const; 00111 00116 ESCRIPT_DLL_API 00117 virtual int getReducedFunctionCode() const; 00118 00123 ESCRIPT_DLL_API 00124 virtual int getFunctionOnBoundaryCode() const; 00125 00130 ESCRIPT_DLL_API 00131 virtual int getReducedFunctionOnBoundaryCode() const; 00132 00133 00138 ESCRIPT_DLL_API 00139 virtual int getFunctionOnContactZeroCode() const; 00140 00145 ESCRIPT_DLL_API 00146 virtual int getReducedFunctionOnContactZeroCode() const; 00147 00152 ESCRIPT_DLL_API 00153 virtual int getFunctionOnContactOneCode() const; 00154 00159 ESCRIPT_DLL_API 00160 virtual int getReducedFunctionOnContactOneCode() const; 00161 00166 ESCRIPT_DLL_API 00167 virtual int getSolutionCode() const; 00168 00173 ESCRIPT_DLL_API 00174 virtual int getReducedSolutionCode() const; 00175 00180 ESCRIPT_DLL_API 00181 virtual int getDiracDeltaFunctionCode() const; 00182 00189 ESCRIPT_DLL_API 00190 virtual int getSystemMatrixTypeId(const int solver, const int preconditioner, const int package, const bool symmetry) const; 00191 00198 ESCRIPT_DLL_API 00199 virtual int getTransportTypeId(const int solver, const int preconditioner, const int package, const bool symmetry) const; 00200 00207 ESCRIPT_DLL_API 00208 virtual void setToIntegrals(std::vector<double>& integrals,const escript::Data& arg) const; 00209 00214 // ESCRIPT_DLL_API 00215 // static const AbstractContinuousDomain& asAbstractContinuousDomain(const AbstractDomain& domain); 00216 00217 protected: 00218 00219 private: 00220 00221 }; 00222 00223 } // end of namespace 00224 00225 #endif