ESScript
Revision_4488
Main Page
Namespaces
Classes
Files
File List
File Members
escript
src
AbstractContinuousDomain.h
Go to the documentation of this file.
1
2
/*****************************************************************************
3
*
4
* Copyright (c) 2003-2013 by University of Queensland
5
* http://www.uq.edu.au
6
*
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
* Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12
* Development since 2012 by School of Earth Sciences
13
*
14
*****************************************************************************/
15
16
17
#if !defined escript_AbstractContinuousDomain_20040528_H
18
#define escript_AbstractContinuousDomain_20040528_H
19
20
#include "
system_dep.h
"
21
#include "
AbstractDomain.h
"
22
23
#include <string>
24
#include <vector>
25
26
#include "
AbstractSystemMatrix.h
"
27
#include "
AbstractTransportProblem.h
"
28
29
namespace
escript {
30
31
//
32
// Forward declaration
33
class
Data;
34
45
class
AbstractContinuousDomain
:
public
AbstractDomain
{
46
47
public
:
48
62
ESCRIPT_DLL_API
63
AbstractContinuousDomain
();
64
78
ESCRIPT_DLL_API
79
virtual
~AbstractContinuousDomain
();
80
86
ESCRIPT_DLL_API
87
virtual
bool
isValidFunctionSpaceType
(
int
functionSpaceType)
const
;
88
93
ESCRIPT_DLL_API
94
virtual
std::string
getDescription
()
const
;
95
100
ESCRIPT_DLL_API
101
virtual
int
getContinuousFunctionCode
()
const
;
102
107
ESCRIPT_DLL_API
108
virtual
int
getReducedContinuousFunctionCode
()
const
;
109
114
ESCRIPT_DLL_API
115
virtual
int
getFunctionCode
()
const
;
116
121
ESCRIPT_DLL_API
122
virtual
int
getReducedFunctionCode
()
const
;
123
128
ESCRIPT_DLL_API
129
virtual
int
getFunctionOnBoundaryCode
()
const
;
130
135
ESCRIPT_DLL_API
136
virtual
int
getReducedFunctionOnBoundaryCode
()
const
;
137
138
143
ESCRIPT_DLL_API
144
virtual
int
getFunctionOnContactZeroCode
()
const
;
145
150
ESCRIPT_DLL_API
151
virtual
int
getReducedFunctionOnContactZeroCode
()
const
;
152
157
ESCRIPT_DLL_API
158
virtual
int
getFunctionOnContactOneCode
()
const
;
159
164
ESCRIPT_DLL_API
165
virtual
int
getReducedFunctionOnContactOneCode
()
const
;
166
171
ESCRIPT_DLL_API
172
virtual
int
getSolutionCode
()
const
;
173
178
ESCRIPT_DLL_API
179
virtual
int
getReducedSolutionCode
()
const
;
180
185
ESCRIPT_DLL_API
186
virtual
int
getDiracDeltaFunctionsCode
()
const
;
187
194
ESCRIPT_DLL_API
195
virtual
int
getSystemMatrixTypeId
(
const
int
solver,
const
int
preconditioner,
const
int
package,
const
bool
symmetry)
const
;
196
203
ESCRIPT_DLL_API
204
virtual
int
getTransportTypeId
(
const
int
solver,
const
int
preconditioner,
const
int
package,
const
bool
symmetry)
const
;
205
212
ESCRIPT_DLL_API
213
virtual
void
setToIntegrals
(std::vector<double>& integrals,
const
escript::Data
& arg)
const
;
214
215
// /**
216
// \brief
217
// Return the domain as const AbstractContinuousDomain&
218
// */
219
// ESCRIPT_DLL_API
220
// static const AbstractContinuousDomain& asAbstractContinuousDomain(const AbstractDomain& domain);
221
222
223
224
229
ESCRIPT_DLL_API
230
virtual
void
addPDEToSystem
(
231
AbstractSystemMatrix
& mat,
escript::Data
& rhs,
232
const
escript::Data
& A,
const
escript::Data
& B,
const
escript::Data
& C,
233
const
escript::Data
& D,
const
escript::Data
& X,
const
escript::Data
& Y,
234
const
escript::Data
& d,
const
escript::Data
& y,
235
const
escript::Data
& d_contact,
const
escript::Data
& y_contact,
236
const
escript::Data
& d_dirac,
const
escript::Data
& y_dirac)
const
;
237
238
// We do not require this method at this level since the python side checks to ensure it exists
239
// before calling it.
240
241
// /**
242
// \brief
243
// adds a PDE onto the lumped stiffness matrix matrix
244
// */
245
// ESCRIPT_DLL_API
246
// virtual void addPDEToLumpedSystem(
247
// escript::Data& mat,
248
// const escript::Data& D,
249
// const escript::Data& d) const;
250
255
ESCRIPT_DLL_API
256
virtual
void
addPDEToRHS
(
escript::Data
& rhs,
257
const
escript::Data
& X,
const
escript::Data
& Y,
258
const
escript::Data
& y,
const
escript::Data
& y_contact,
const
escript::Data
& y_dirac)
const
;
264
ESCRIPT_DLL_API
265
virtual
void
addPDEToTransportProblem
(
266
AbstractTransportProblem
& tp,
escript::Data
& source,
267
const
escript::Data
&
M
,
268
const
escript::Data
& A,
const
escript::Data
& B,
const
escript::Data
& C,
const
escript::Data
& D,
269
const
escript::Data
& X,
const
escript::Data
& Y,
270
const
escript::Data
& d,
const
escript::Data
& y,
271
const
escript::Data
& d_contact,
const
escript::Data
& y_contact,
272
const
escript::Data
& d_dirac,
const
escript::Data
& y_dirac)
const
;
273
278
ESCRIPT_DLL_API
279
virtual
ASM_ptr
newSystemMatrix
(
280
const
int
row_blocksize,
281
const
escript::FunctionSpace
& row_functionspace,
282
const
int
column_blocksize,
283
const
escript::FunctionSpace
& column_functionspace,
284
const
int
type)
const
;
291
ESCRIPT_DLL_API
292
virtual
ATP_ptr
newTransportProblem
(
293
const
int
blocksize,
294
const
escript::FunctionSpace
& functionspace,
295
const
int
type)
const
;
296
301
ESCRIPT_DLL_API
302
virtual
int
getNumDataPointsGlobal
()
const
;
303
309
ESCRIPT_DLL_API
310
virtual
std::pair<int,int>
getDataShape
(
int
functionSpaceCode)
const
;
311
316
ESCRIPT_DLL_API
317
virtual
void
setNewX
(
const
escript::Data
& arg);
318
323
ESCRIPT_DLL_API
324
virtual
void
Print_Mesh_Info
(
const
bool
full=
false
)
const
;
325
326
327
protected
:
328
329
private
:
330
331
};
332
333
}
// end of namespace
334
335
#endif
Generated on Fri Jun 28 2013 11:10:51 for ESScript by
1.8.1.2