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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1062 - (hide annotations)
Mon Mar 26 06:17:53 2007 UTC (12 years, 6 months ago) by gross
File MIME type: text/plain
File size: 4877 byte(s)
reduced integration schemes are implemented now for grad, integrate, etc. Tests still to be added.
1 jgs 102 //$Id$
2 jgs 82 /*
3 elspeth 615 ************************************************************
4     * Copyright 2006 by ACcESS MNRF *
5     * *
6     * http://www.access.edu.au *
7     * Primary Business: Queensland, Australia *
8     * Licensed under the Open Software License version 3.0 *
9     * http://www.opensource.org/licenses/osl-3.0.php *
10     * *
11     ************************************************************
12    
13 jgs 82 */
14 jgs 117
15     #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 jgs 150 virtual int getSystemMatrixTypeId(const int solver, const int package, const bool symmetry) const;
191 jgs 149
192 jgs 117 /**
193 jgs 82 \brief
194     copies the integrals of the function defined by arg into integrals.
195     arg has to be defined on this.
196     has to be implemented by the Domain Adapter.
197     */
198 woo409 757 ESCRIPT_DLL_API
199 jgs 82 virtual void setToIntegrals(std::vector<double>& integrals,const escript::Data& arg) const;
200 jgs 149
201 jgs 82 /**
202     \brief
203     Return the domain as const AbstractContinuousDomain&
204     */
205 woo409 757 ESCRIPT_DLL_API
206 jgs 82 static const AbstractContinuousDomain& asAbstractContinuousDomain(const AbstractDomain& domain);
207    
208     protected:
209    
210     private:
211 jgs 117
212 jgs 82 };
213    
214     } // end of namespace
215 jgs 117
216 jgs 82 #endif

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26