escript
Revision_
escriptcore
src
AbstractContinuousDomain.h
Go to the documentation of this file.
1
2
/*****************************************************************************
3
*
4
* Copyright (c) 2003-2020 by The University of Queensland
5
* http://www.uq.edu.au
6
*
7
* Primary Business: Queensland, Australia
8
* Licensed under the Apache License, version 2.0
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12
* Development 2012-2013 by School of Earth Sciences
13
* Development from 2014-2017 by Centre for Geoscience Computing (GeoComp)
14
* Development from 2019 by School of Earth and Environmental Sciences
15
**
16
*****************************************************************************/
17
18
19
#ifndef __ESCRIPT_ABSTRACTCONTINUOUSDOMAIN_H__
20
#define __ESCRIPT_ABSTRACTCONTINUOUSDOMAIN_H__
21
22
#include "
system_dep.h
"
23
#include "
AbstractDomain.h
"
24
#include "
AbstractSystemMatrix.h
"
25
#include "
AbstractTransportProblem.h
"
26
27
#include <string>
28
#include <vector>
29
30
namespace
escript
{
31
32
//
33
// Forward declaration
34
class
Data;
35
46
class
ESCRIPT_DLL_API
AbstractContinuousDomain
:
public
AbstractDomain
47
{
48
49
public
:
50
64
AbstractContinuousDomain
();
65
79
virtual
~
AbstractContinuousDomain
();
80
86
virtual
bool
isValidFunctionSpaceType(
int
functionSpaceType)
const
;
87
92
virtual
std::string getDescription()
const
;
93
98
virtual
int
getContinuousFunctionCode()
const
;
99
104
virtual
int
getReducedContinuousFunctionCode()
const
;
105
110
virtual
int
getFunctionCode()
const
;
111
116
virtual
int
getReducedFunctionCode()
const
;
117
122
virtual
int
getFunctionOnBoundaryCode()
const
;
123
128
virtual
int
getReducedFunctionOnBoundaryCode()
const
;
129
130
135
virtual
int
getFunctionOnContactZeroCode()
const
;
136
141
virtual
int
getReducedFunctionOnContactZeroCode()
const
;
142
147
virtual
int
getFunctionOnContactOneCode()
const
;
148
153
virtual
int
getReducedFunctionOnContactOneCode()
const
;
154
159
virtual
int
getSolutionCode()
const
;
160
165
virtual
int
getReducedSolutionCode()
const
;
166
171
virtual
int
getDiracDeltaFunctionsCode()
const
;
172
178
virtual
int
getSystemMatrixTypeId(
const
boost::python::object& options)
const
;
179
186
virtual
int
getTransportTypeId(
int
solver,
int
preconditioner,
int
package,
bool
symmetry)
const
;
187
194
virtual
void
setToIntegrals(std::vector<DataTypes::real_t>& integrals,
195
const
escript::Data
& arg)
const
;
196
virtual
void
setToIntegrals(std::vector<DataTypes::cplx_t>& integrals,
197
const
escript::Data
& arg)
const
;
198
199
// /**
200
// \brief
201
// Return the domain as const AbstractContinuousDomain&
202
// */
203
// static const AbstractContinuousDomain& asAbstractContinuousDomain(const AbstractDomain& domain);
204
205
206
207
212
virtual
void
addPDEToSystem(
213
AbstractSystemMatrix
& mat,
escript::Data
& rhs,
214
const
escript::Data
& A,
const
escript::Data
& B,
const
escript::Data
& C,
215
const
escript::Data
& D,
const
escript::Data
& X,
const
escript::Data
& Y,
216
const
escript::Data
& d,
const
escript::Data
& y,
217
const
escript::Data
& d_contact,
const
escript::Data
& y_contact,
218
const
escript::Data
& d_dirac,
const
escript::Data
& y_dirac)
const
;
219
220
// We do not require this method at this level since the python side checks to ensure it exists
221
// before calling it.
222
223
// /**
224
// \brief
225
// adds a PDE onto the lumped stiffness matrix matrix
226
// */
227
// virtual void addPDEToLumpedSystem(
228
// escript::Data& mat,
229
// const escript::Data& D,
230
// const escript::Data& d) const;
231
236
virtual
void
addPDEToRHS(
escript::Data
& rhs,
237
const
escript::Data
& X,
const
escript::Data
& Y,
238
const
escript::Data
& y,
const
escript::Data
& y_contact,
const
escript::Data
& y_dirac)
const
;
244
virtual
void
addPDEToTransportProblem(
245
AbstractTransportProblem
& tp,
escript::Data
& source,
246
const
escript::Data
&
M
,
247
const
escript::Data
& A,
const
escript::Data
& B,
const
escript::Data
& C,
const
escript::Data
& D,
248
const
escript::Data
& X,
const
escript::Data
& Y,
249
const
escript::Data
& d,
const
escript::Data
& y,
250
const
escript::Data
& d_contact,
const
escript::Data
& y_contact,
251
const
escript::Data
& d_dirac,
const
escript::Data
& y_dirac)
const
;
252
257
virtual
ASM_ptr
newSystemMatrix(
258
const
int
row_blocksize,
259
const
escript::FunctionSpace
& row_functionspace,
260
const
int
column_blocksize,
261
const
escript::FunctionSpace
& column_functionspace,
262
const
int
type)
const
;
269
virtual
ATP_ptr
newTransportProblem(
270
const
int
blocksize,
271
const
escript::FunctionSpace
& functionspace,
272
const
int
type)
const
;
273
278
virtual
DataTypes::dim_t
getNumDataPointsGlobal()
const
;
279
285
virtual
std::pair<int,DataTypes::dim_t> getDataShape(
int
functionSpaceCode)
const
;
286
291
virtual
void
setNewX(
const
escript::Data
& arg);
292
297
virtual
void
Print_Mesh_Info(
const
bool
full=
false
)
const
;
298
};
299
300
}
// end of namespace
301
302
#endif // __ESCRIPT_ABSTRACTCONTINUOUSDOMAIN_H__
303
ESCRIPT_DLL_API
#define ESCRIPT_DLL_API
Definition:
escriptcore/src/system_dep.h:30
AbstractTransportProblem.h
escript::AbstractTransportProblem
Give a short description of what AbstractTransportProblem does.
Definition:
AbstractTransportProblem.h:45
escript::FunctionSpace
Definition:
FunctionSpace.h:36
escript::Data
Data represents a collection of datapoints.
Definition:
Data.h:64
escript::DataTypes::dim_t
index_t dim_t
Definition:
DataTypes.h:65
escript::ATP_ptr
boost::shared_ptr< AbstractTransportProblem > ATP_ptr
Definition:
AbstractTransportProblem.h:161
escript::AbstractSystemMatrix
Base class for escript system matrices.
Definition:
AbstractSystemMatrix.h:44
AbstractDomain.h
AbstractContinuousDomain.h
escript
Definition:
AbstractContinuousDomain.cpp:23
AbstractSystemMatrix.h
paso::M
static dim_t M
Definition:
SparseMatrix_saveHB.cpp:38
Data.h
escript::AbstractDomain
Base class for all escript domains.
Definition:
AbstractDomain.h:51
escript::ASM_ptr
boost::shared_ptr< AbstractSystemMatrix > ASM_ptr
Definition:
AbstractSystemMatrix.h:33
system_dep.h
escript::AbstractContinuousDomain
AbstractContinuousDomain, base class for continuous domains.
Definition:
AbstractContinuousDomain.h:47
Generated by
1.8.20