/[escript]/branches/diaplayground/escriptcore/src/AbstractContinuousDomain.h
ViewVC logotype

Diff of /branches/diaplayground/escriptcore/src/AbstractContinuousDomain.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 5135 by caltinay, Thu Aug 21 04:32:39 2014 UTC revision 5136 by caltinay, Tue Sep 9 07:13:55 2014 UTC
# Line 43  class Data; Line 43  class Data;
43     NOTE: Most of the virtual functions would be pure virtual except     NOTE: Most of the virtual functions would be pure virtual except
44     boost.python requires a non abstract base class.     boost.python requires a non abstract base class.
45  */  */
46  class AbstractContinuousDomain : public AbstractDomain {  class ESCRIPT_DLL_API AbstractContinuousDomain : public AbstractDomain
47    {
48    
49   public:   public:
50    
# Line 60  class AbstractContinuousDomain : public Line 61  class AbstractContinuousDomain : public
61       Throws:       Throws:
62       Describe any exceptions thrown       Describe any exceptions thrown
63    */    */
   ESCRIPT_DLL_API  
64    AbstractContinuousDomain();    AbstractContinuousDomain();
65    
66    /**    /**
# Line 76  class AbstractContinuousDomain : public Line 76  class AbstractContinuousDomain : public
76       Throws:       Throws:
77       Describe any exceptions thrown       Describe any exceptions thrown
78    */    */
   ESCRIPT_DLL_API  
79    virtual ~AbstractContinuousDomain();    virtual ~AbstractContinuousDomain();
80    
81    /**    /**
# Line 84  class AbstractContinuousDomain : public Line 83  class AbstractContinuousDomain : public
83       Returns true if the given integer is a valid function space type       Returns true if the given integer is a valid function space type
84       for this domain.       for this domain.
85    */    */
   ESCRIPT_DLL_API  
86    virtual bool isValidFunctionSpaceType(int functionSpaceType) const;    virtual bool isValidFunctionSpaceType(int functionSpaceType) const;
87    
88    /**    /**
89       \brief       \brief
90       Return a description for this domain       Return a description for this domain
91    */    */
   ESCRIPT_DLL_API  
92    virtual std::string getDescription() const;    virtual std::string getDescription() const;
93    
94    /**    /**
95       \brief       \brief
96       Return a continuous FunctionSpace code       Return a continuous FunctionSpace code
97    */    */
   ESCRIPT_DLL_API  
98    virtual int getContinuousFunctionCode() const;    virtual int getContinuousFunctionCode() const;
99    
100    /**    /**
101       \brief       \brief
102       Return a continuous on reduced order FunctionSpace code       Return a continuous on reduced order FunctionSpace code
103    */    */
   ESCRIPT_DLL_API  
104    virtual int getReducedContinuousFunctionCode() const;    virtual int getReducedContinuousFunctionCode() const;
105    
106    /**    /**
107       \brief       \brief
108       Return a function FunctionSpace code       Return a function FunctionSpace code
109    */    */
   ESCRIPT_DLL_API  
110    virtual int getFunctionCode() const;    virtual int getFunctionCode() const;
111    
112    /**    /**
113       \brief       \brief
114       Return a function FunctionSpace code with reduced integration order       Return a function FunctionSpace code with reduced integration order
115    */    */
   ESCRIPT_DLL_API  
116    virtual int getReducedFunctionCode() const;    virtual int getReducedFunctionCode() const;
117    
118    /**    /**
119       \brief       \brief
120       Return a function on boundary FunctionSpace code       Return a function on boundary FunctionSpace code
121    */    */
   ESCRIPT_DLL_API  
122    virtual int getFunctionOnBoundaryCode() const;    virtual int getFunctionOnBoundaryCode() const;
123    
124    /**    /**
125       \brief       \brief
126       Return a code for a function on boundary FunctionSpace with reduced integration order       Return a code for a function on boundary FunctionSpace with reduced integration order
127    */    */
   ESCRIPT_DLL_API  
128    virtual int getReducedFunctionOnBoundaryCode() const;    virtual int getReducedFunctionOnBoundaryCode() const;
129    
130    
# Line 141  class AbstractContinuousDomain : public Line 132  class AbstractContinuousDomain : public
132       \brief       \brief
133       Return a FunctionOnContactZero code       Return a FunctionOnContactZero code
134    */    */
   ESCRIPT_DLL_API  
135    virtual int getFunctionOnContactZeroCode() const;    virtual int getFunctionOnContactZeroCode() const;
136    
137    /**    /**
138       \brief       \brief
139       Return a FunctionOnContactZero for reduced integration order code       Return a FunctionOnContactZero for reduced integration order code
140    */    */
   ESCRIPT_DLL_API  
141    virtual int getReducedFunctionOnContactZeroCode() const;    virtual int getReducedFunctionOnContactZeroCode() const;
142    
143    /**    /**
144       \brief       \brief
145       Return a FunctionOnContactOne code       Return a FunctionOnContactOne code
146    */    */
   ESCRIPT_DLL_API  
147    virtual int getFunctionOnContactOneCode() const;    virtual int getFunctionOnContactOneCode() const;
148    
149    /**    /**
150       \brief       \brief
151       Return a FunctionOnContactOne for reduced integration order code       Return a FunctionOnContactOne for reduced integration order code
152    */    */
   ESCRIPT_DLL_API  
153    virtual int getReducedFunctionOnContactOneCode() const;    virtual int getReducedFunctionOnContactOneCode() const;
154    
155    /**    /**
156       \brief       \brief
157       Return a Solution code       Return a Solution code
158    */    */
   ESCRIPT_DLL_API  
159    virtual int getSolutionCode() const;    virtual int getSolutionCode() const;
160    
161    /**    /**
162       \brief       \brief
163       Return a ReducedSolution code       Return a ReducedSolution code
164    */    */
   ESCRIPT_DLL_API  
165    virtual int getReducedSolutionCode() const;    virtual int getReducedSolutionCode() const;
166    
167    /**    /**
168       \brief       \brief
169       Return a DiracDeltaFunctions code       Return a DiracDeltaFunctions code
170    */    */
   ESCRIPT_DLL_API  
171    virtual int getDiracDeltaFunctionsCode() const;    virtual int getDiracDeltaFunctionsCode() const;
172    
173    /**    /**
174       \brief       \brief
175       return the identifier of the matrix type to be used for the global       return the identifier of the matrix type to be used for the global
176       stiffness matrix when a particular solver package       stiffness matrix when particular solver options are used.
      and symmetric matrix is used.  
177    */    */
178    ESCRIPT_DLL_API    virtual int getSystemMatrixTypeId(const boost::python::object& options) const;
   virtual int getSystemMatrixTypeId(const int solver, const int preconditioner, const int package, const bool symmetry) const;  
179    
180    /**    /**
181       \brief       \brief
# Line 201  class AbstractContinuousDomain : public Line 183  class AbstractContinuousDomain : public
183       stiffness matrix when a particular solver package       stiffness matrix when a particular solver package
184       and symmetric matrix is used.       and symmetric matrix is used.
185    */    */
186    ESCRIPT_DLL_API    virtual int getTransportTypeId(int solver, int preconditioner, int package, bool symmetry) const;
   virtual int getTransportTypeId(const int solver, const int preconditioner, const int package, const bool symmetry) const;  
187    
188    /**    /**
189       \brief       \brief
# Line 210  class AbstractContinuousDomain : public Line 191  class AbstractContinuousDomain : public
191       arg has to be defined on this.       arg has to be defined on this.
192       has to be implemented by the Domain Adapter.       has to be implemented by the Domain Adapter.
193    */    */
   ESCRIPT_DLL_API  
194    virtual void setToIntegrals(std::vector<double>& integrals,const escript::Data& arg) const;    virtual void setToIntegrals(std::vector<double>& integrals,const escript::Data& arg) const;
195    
196  //  /**  //  /**
197  //     \brief  //     \brief
198  //     Return the domain as const AbstractContinuousDomain&  //     Return the domain as const AbstractContinuousDomain&
199  //  */  //  */
 //   ESCRIPT_DLL_API  
200  //   static const  AbstractContinuousDomain& asAbstractContinuousDomain(const AbstractDomain& domain);  //   static const  AbstractContinuousDomain& asAbstractContinuousDomain(const AbstractDomain& domain);
201    
202    
# Line 227  class AbstractContinuousDomain : public Line 206  class AbstractContinuousDomain : public
206       \brief       \brief
207       adds a PDE onto the stiffness matrix mat and a rhs       adds a PDE onto the stiffness matrix mat and a rhs
208    */    */
   ESCRIPT_DLL_API  
209    virtual void addPDEToSystem(    virtual void addPDEToSystem(
210                       AbstractSystemMatrix& mat, escript::Data& rhs,                       AbstractSystemMatrix& mat, escript::Data& rhs,
211                       const escript::Data& A, const escript::Data& B, const escript::Data& C,                       const escript::Data& A, const escript::Data& B, const escript::Data& C,
# Line 243  class AbstractContinuousDomain : public Line 221  class AbstractContinuousDomain : public
221  //     \brief  //     \brief
222  //     adds a PDE onto the lumped stiffness matrix matrix  //     adds a PDE onto the lumped stiffness matrix matrix
223  //  */  //  */
 //  ESCRIPT_DLL_API  
224  //  virtual void addPDEToLumpedSystem(  //  virtual void addPDEToLumpedSystem(
225  //                     escript::Data& mat,  //                     escript::Data& mat,
226  //                     const escript::Data& D,  //                     const escript::Data& D,
# Line 253  class AbstractContinuousDomain : public Line 230  class AbstractContinuousDomain : public
230       \brief       \brief
231       adds a PDE onto the stiffness matrix mat and a rhs       adds a PDE onto the stiffness matrix mat and a rhs
232    */    */
   ESCRIPT_DLL_API  
233    virtual void addPDEToRHS(escript::Data& rhs,    virtual void addPDEToRHS(escript::Data& rhs,
234                       const escript::Data& X, const escript::Data& Y,                       const escript::Data& X, const escript::Data& Y,
235                       const escript::Data& y, const escript::Data& y_contact, const escript::Data& y_dirac) const;                       const escript::Data& y, const escript::Data& y_contact, const escript::Data& y_dirac) const;
# Line 262  class AbstractContinuousDomain : public Line 238  class AbstractContinuousDomain : public
238       adds a PDE onto a transport problem       adds a PDE onto a transport problem
239    */    */
240    
   ESCRIPT_DLL_API  
241    virtual void addPDEToTransportProblem(    virtual void addPDEToTransportProblem(
242                       AbstractTransportProblem& tp, escript::Data& source,                       AbstractTransportProblem& tp, escript::Data& source,
243                       const escript::Data& M,                       const escript::Data& M,
# Line 276  class AbstractContinuousDomain : public Line 251  class AbstractContinuousDomain : public
251       \brief       \brief
252      creates a SystemMatrixAdapter stiffness matrix and initializes it with zeros:      creates a SystemMatrixAdapter stiffness matrix and initializes it with zeros:
253    */    */
   ESCRIPT_DLL_API  
254    virtual ASM_ptr newSystemMatrix(    virtual ASM_ptr newSystemMatrix(
255                        const int row_blocksize,                        const int row_blocksize,
256                        const escript::FunctionSpace& row_functionspace,                        const escript::FunctionSpace& row_functionspace,
# Line 289  class AbstractContinuousDomain : public Line 263  class AbstractContinuousDomain : public
263    
264    */    */
265    
   ESCRIPT_DLL_API  
266    virtual ATP_ptr newTransportProblem(    virtual ATP_ptr newTransportProblem(
267                        const int blocksize,                        const int blocksize,
268                        const escript::FunctionSpace& functionspace,                        const escript::FunctionSpace& functionspace,
# Line 299  class AbstractContinuousDomain : public Line 272  class AbstractContinuousDomain : public
272       \brief       \brief
273       Return the number of data points summed across all MPI processes       Return the number of data points summed across all MPI processes
274    */    */
   ESCRIPT_DLL_API  
275    virtual int getNumDataPointsGlobal() const;    virtual int getNumDataPointsGlobal() const;
276    
277    /**    /**
# Line 307  class AbstractContinuousDomain : public Line 279  class AbstractContinuousDomain : public
279       Return the number of data points per sample, and the number of samples as a pair.       Return the number of data points per sample, and the number of samples as a pair.
280       \param functionSpaceCode Input -       \param functionSpaceCode Input -
281    */    */
   ESCRIPT_DLL_API  
282    virtual std::pair<int,dim_t> getDataShape(int functionSpaceCode) const;    virtual std::pair<int,dim_t> getDataShape(int functionSpaceCode) const;
283    
284    /**    /**
285       \brief       \brief
286       assigns new location to the domain       assigns new location to the domain
287    */    */
   ESCRIPT_DLL_API  
288    virtual void setNewX(const escript::Data& arg);    virtual void setNewX(const escript::Data& arg);
289    
290    /**    /**
291       \brief       \brief
292       \param full       \param full
293    */    */
   ESCRIPT_DLL_API  
294    virtual void Print_Mesh_Info(const bool full=false) const;    virtual void Print_Mesh_Info(const bool full=false) const;
295    
296    

Legend:
Removed from v.5135  
changed lines
  Added in v.5136

  ViewVC Help
Powered by ViewVC 1.1.26