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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2089 - (show annotations)
Mon Nov 24 06:07:29 2008 UTC (10 years, 10 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
2 /*******************************************************
3 *
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
14
15 #if !defined escript_AbstractContinuousDomain_20040528_H
16 #define escript_AbstractContinuousDomain_20040528_H
17
18 #include "system_dep.h"
19 #include "AbstractDomain.h"
20
21 #include <string>
22 #include <vector>
23
24 namespace escript {
25
26 //
27 // Forward declaration
28 class Data;
29
30 /**
31 \brief
32 AbstractContinuousDomain, base class for continuous domains.
33
34 Description:
35 AbstractContinuousDomain, base class for continuous domains.
36
37 NOTE: Most of the virtual functions would be pure virtual except
38 boost.python requires a non abstract base class.
39 */
40 class AbstractContinuousDomain : public AbstractDomain {
41
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 ESCRIPT_DLL_API
58 AbstractContinuousDomain();
59
60 /**
61 \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 ESCRIPT_DLL_API
74 virtual ~AbstractContinuousDomain();
75
76 /**
77 \brief
78 Returns true if the given integer is a valid function space type
79 for this domain.
80 */
81 ESCRIPT_DLL_API
82 virtual bool isValidFunctionSpaceType(int functionSpaceType) const;
83
84 /**
85 \brief
86 Return a description for this domain
87 */
88 ESCRIPT_DLL_API
89 virtual std::string getDescription() const;
90
91 /**
92 \brief
93 Return a continuous FunctionSpace code
94 */
95 ESCRIPT_DLL_API
96 virtual int getContinuousFunctionCode() const;
97
98 /**
99 \brief
100 Return a continuous on reduced order FunctionSpace code
101 */
102 ESCRIPT_DLL_API
103 virtual int getReducedContinuousFunctionCode() const;
104
105 /**
106 \brief
107 Return a function FunctionSpace code
108 */
109 ESCRIPT_DLL_API
110 virtual int getFunctionCode() const;
111
112 /**
113 \brief
114 Return a function FunctionSpace code with reduced integration order
115 */
116 ESCRIPT_DLL_API
117 virtual int getReducedFunctionCode() const;
118
119 /**
120 \brief
121 Return a function on boundary FunctionSpace code
122 */
123 ESCRIPT_DLL_API
124 virtual int getFunctionOnBoundaryCode() const;
125
126 /**
127 \brief
128 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 Return a FunctionOnContactZero code
137 */
138 ESCRIPT_DLL_API
139 virtual int getFunctionOnContactZeroCode() const;
140
141 /**
142 \brief
143 Return a FunctionOnContactZero for reduced integration order code
144 */
145 ESCRIPT_DLL_API
146 virtual int getReducedFunctionOnContactZeroCode() const;
147
148 /**
149 \brief
150 Return a FunctionOnContactOne code
151 */
152 ESCRIPT_DLL_API
153 virtual int getFunctionOnContactOneCode() const;
154
155 /**
156 \brief
157 Return a FunctionOnContactOne for reduced integration order code
158 */
159 ESCRIPT_DLL_API
160 virtual int getReducedFunctionOnContactOneCode() const;
161
162 /**
163 \brief
164 Return a Solution code
165 */
166 ESCRIPT_DLL_API
167 virtual int getSolutionCode() const;
168
169 /**
170 \brief
171 Return a ReducedSolution code
172 */
173 ESCRIPT_DLL_API
174 virtual int getReducedSolutionCode() const;
175
176 /**
177 \brief
178 Return a DiracDeltaFunction code
179 */
180 ESCRIPT_DLL_API
181 virtual int getDiracDeltaFunctionCode() const;
182
183 /**
184 \brief
185 return the identifier of the matrix type to be used for the global
186 stiffness matrix when a particular solver package
187 and symmetric matrix is used.
188 */
189 ESCRIPT_DLL_API
190 virtual int getSystemMatrixTypeId(const int solver, const int preconditioner, const int package, const bool symmetry) const;
191
192 /**
193 \brief
194 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 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 ESCRIPT_DLL_API
208 virtual void setToIntegrals(std::vector<double>& integrals,const escript::Data& arg) const;
209
210 /**
211 \brief
212 Return the domain as const AbstractContinuousDomain&
213 */
214 // ESCRIPT_DLL_API
215 // static const AbstractContinuousDomain& asAbstractContinuousDomain(const AbstractDomain& domain);
216
217 protected:
218
219 private:
220
221 };
222
223 } // end of namespace
224
225 #endif

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26