/[escript]/trunk/escript/src/AbstractContinuousDomain.h
ViewVC logotype

Annotation of /trunk/escript/src/AbstractContinuousDomain.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2089 - (hide annotations)
Mon Nov 24 06:07:29 2008 UTC (10 years, 11 months ago) by jfenwick
File MIME type: text/plain
File size: 5069 byte(s)
Resolve mantis issue 216.

Removed the asAbstractContinuousDomain(X) member which did not take cast 
failure into account.
Rewrote the few places where it was used.



1 elspeth 615
2 ksteube 1312 /*******************************************************
3 ksteube 1811 *
4     * Copyright (c) 2003-2008 by University of Queensland
5     * Earth Systems Science Computational Center (ESSCC)
6     * http://www.uq.edu.au/esscc
7     *
8     * Primary Business: Queensland, Australia
9     * Licensed under the Open Software License version 3.0
10     * http://www.opensource.org/licenses/osl-3.0.php
11     *
12     *******************************************************/
13 ksteube 1312
14 ksteube 1811
15 jgs 117 #if !defined escript_AbstractContinuousDomain_20040528_H
16 jgs 82 #define escript_AbstractContinuousDomain_20040528_H
17    
18 woo409 757 #include "system_dep.h"
19 jgs 474 #include "AbstractDomain.h"
20 jgs 117
21 jgs 82 #include <string>
22     #include <vector>
23    
24     namespace escript {
25 jgs 117
26 jgs 82 //
27     // Forward declaration
28 jgs 480 class Data;
29 jgs 117
30 jgs 82 /**
31     \brief
32     AbstractContinuousDomain, base class for continuous domains.
33    
34     Description:
35     AbstractContinuousDomain, base class for continuous domains.
36 jgs 117
37 jgs 82 NOTE: Most of the virtual functions would be pure virtual except
38     boost.python requires a non abstract base class.
39     */
40 jgs 117 class AbstractContinuousDomain : public AbstractDomain {
41 jgs 82
42     public:
43    
44     /**
45     \brief
46     Default constructor for AbstractContinuousDomain
47    
48     Description:
49     Default constructor for AbstractContinuousDomain
50    
51     Preconditions:
52     Describe any preconditions
53    
54     Throws:
55     Describe any exceptions thrown
56     */
57 woo409 757 ESCRIPT_DLL_API
58 jgs 82 AbstractContinuousDomain();
59 jgs 149
60     /**
61 jgs 82 \brief
62     Destructor for AbstractContinuousDomain
63    
64     Description:
65     Destructor for AbstractContinuousDomain
66    
67     Preconditions:
68     Describe any preconditions
69    
70     Throws:
71     Describe any exceptions thrown
72     */
73 woo409 757 ESCRIPT_DLL_API
74 jgs 82 virtual ~AbstractContinuousDomain();
75 jgs 149
76 jgs 82 /**
77     \brief
78     Returns true if the given integer is a valid function space type
79     for this domain.
80     */
81 woo409 757 ESCRIPT_DLL_API
82 jgs 82 virtual bool isValidFunctionSpaceType(int functionSpaceType) const;
83 jgs 149
84 jgs 82 /**
85     \brief
86     Return a description for this domain
87     */
88 woo409 757 ESCRIPT_DLL_API
89 jgs 82 virtual std::string getDescription() const;
90 jgs 149
91 jgs 82 /**
92     \brief
93     Return a continuous FunctionSpace code
94     */
95 woo409 757 ESCRIPT_DLL_API
96 jgs 82 virtual int getContinuousFunctionCode() const;
97 jgs 149
98 jgs 82 /**
99     \brief
100 gross 1062 Return a continuous on reduced order FunctionSpace code
101     */
102     ESCRIPT_DLL_API
103     virtual int getReducedContinuousFunctionCode() const;
104    
105     /**
106     \brief
107 gross 1059 Return a function FunctionSpace code
108 jgs 82 */
109 woo409 757 ESCRIPT_DLL_API
110 jgs 82 virtual int getFunctionCode() const;
111 jgs 149
112 jgs 82 /**
113     \brief
114 gross 1059 Return a function FunctionSpace code with reduced integration order
115     */
116     ESCRIPT_DLL_API
117     virtual int getReducedFunctionCode() const;
118    
119     /**
120     \brief
121 jgs 82 Return a function on boundary FunctionSpace code
122     */
123 woo409 757 ESCRIPT_DLL_API
124 jgs 82 virtual int getFunctionOnBoundaryCode() const;
125 jgs 149
126 jgs 82 /**
127     \brief
128 gross 1059 Return a code for a function on boundary FunctionSpace with reduced integration order
129     */
130     ESCRIPT_DLL_API
131     virtual int getReducedFunctionOnBoundaryCode() const;
132    
133    
134     /**
135     \brief
136 jgs 82 Return a FunctionOnContactZero code
137     */
138 woo409 757 ESCRIPT_DLL_API
139 jgs 82 virtual int getFunctionOnContactZeroCode() const;
140 jgs 149
141 jgs 82 /**
142     \brief
143 gross 1059 Return a FunctionOnContactZero for reduced integration order code
144     */
145     ESCRIPT_DLL_API
146     virtual int getReducedFunctionOnContactZeroCode() const;
147    
148     /**
149     \brief
150 jgs 82 Return a FunctionOnContactOne code
151     */
152 woo409 757 ESCRIPT_DLL_API
153 jgs 82 virtual int getFunctionOnContactOneCode() const;
154 jgs 149
155 jgs 82 /**
156     \brief
157 gross 1059 Return a FunctionOnContactOne for reduced integration order code
158     */
159     ESCRIPT_DLL_API
160     virtual int getReducedFunctionOnContactOneCode() const;
161    
162     /**
163     \brief
164 jgs 82 Return a Solution code
165     */
166 woo409 757 ESCRIPT_DLL_API
167 jgs 82 virtual int getSolutionCode() const;
168 jgs 149
169 jgs 82 /**
170     \brief
171     Return a ReducedSolution code
172     */
173 woo409 757 ESCRIPT_DLL_API
174 jgs 82 virtual int getReducedSolutionCode() const;
175 jgs 149
176 jgs 82 /**
177     \brief
178     Return a DiracDeltaFunction code
179     */
180 woo409 757 ESCRIPT_DLL_API
181 jgs 82 virtual int getDiracDeltaFunctionCode() const;
182 jgs 149
183 jgs 102 /**
184     \brief
185 jgs 149 return the identifier of the matrix type to be used for the global
186 jgs 150 stiffness matrix when a particular solver package
187 jgs 102 and symmetric matrix is used.
188     */
189 woo409 757 ESCRIPT_DLL_API
190 gross 1859 virtual int getSystemMatrixTypeId(const int solver, const int preconditioner, const int package, const bool symmetry) const;
191 jgs 149
192 jgs 117 /**
193 jgs 82 \brief
194 gross 1859 return the identifier of the matrix type to be used for the global
195     stiffness matrix when a particular solver package
196     and symmetric matrix is used.
197     */
198     ESCRIPT_DLL_API
199     virtual int getTransportTypeId(const int solver, const int preconditioner, const int package, const bool symmetry) const;
200    
201     /**
202     \brief
203 jgs 82 copies the integrals of the function defined by arg into integrals.
204     arg has to be defined on this.
205     has to be implemented by the Domain Adapter.
206     */
207 woo409 757 ESCRIPT_DLL_API
208 jgs 82 virtual void setToIntegrals(std::vector<double>& integrals,const escript::Data& arg) const;
209 jgs 149
210 jgs 82 /**
211     \brief
212     Return the domain as const AbstractContinuousDomain&
213     */
214 jfenwick 2089 // ESCRIPT_DLL_API
215     // static const AbstractContinuousDomain& asAbstractContinuousDomain(const AbstractDomain& domain);
216 jgs 82
217     protected:
218    
219     private:
220 jgs 117
221 jgs 82 };
222    
223     } // end of namespace
224 jgs 117
225 jgs 82 #endif

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26