ESScript
Revision_4488
Main Page
Namespaces
Classes
Files
File List
File Members
pasowrap
src
TransportProblemAdapter.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
/* This file was extracted from finley's CPPAdapter then modified */
17
18
#if !defined TransportProblemAdapter_H
19
#define TransportProblemAdapter_H
20
#include "
system_dep.h
"
21
22
#include "paso/Transport.h"
23
#include "paso/Options.h"
24
25
#include "
PasoException.h
"
26
27
#include "escript/AbstractTransportProblem.h"
28
#include "escript/Data.h"
29
#include "escript/UtilC.h"
30
31
#include <boost/python/object.hpp>
32
#include <boost/shared_ptr.hpp>
33
#include <boost/python/extract.hpp>
34
35
namespace
paso {
36
37
class
TransportProblemAdapter
:
public
escript::AbstractTransportProblem
{
38
47
public
:
48
54
PASOWRAP_DLL_API
55
TransportProblemAdapter
();
56
61
PASOWRAP_DLL_API
62
TransportProblemAdapter
(
Paso_TransportProblem
* transport_problem,
63
const
int
block_size,
64
const
escript::FunctionSpace
& functionspace);
65
71
PASOWRAP_DLL_API
72
~TransportProblemAdapter
();
73
78
PASOWRAP_DLL_API
79
Paso_TransportProblem
*
getPaso_TransportProblem
()
const
;
80
85
inline
const
escript::AbstractTransportProblem
&
asAbstractTransportProblem
()
const
86
{
87
return
dynamic_cast<
const
escript::AbstractTransportProblem
&
>
(*this);
88
}
89
94
inline
static
const
TransportProblemAdapter&
asTransportProblemAdapter
(
const
AbstractTransportProblem
& transportproblem)
95
{
96
return
dynamic_cast<
const
TransportProblemAdapter&
>
(transportproblem);
97
}
98
102
PASOWRAP_DLL_API
103
virtual
void
resetTransport
()
const
;
104
108
PASOWRAP_DLL_API
109
virtual
double
getSafeTimeStepSize
()
const
;
110
114
PASOWRAP_DLL_API
115
virtual
double
getUnlimitedTimeStepSize
()
const
;
116
122
PASOWRAP_DLL_API
123
static
int
getTransportTypeId
(
const
int
solver,
const
int
preconditioner,
124
const
int
package,
const
bool
symmetry,
Esys_MPIInfo
* mpiInfo);
125
126
protected
:
127
128
private
:
129
134
PASOWRAP_DLL_API
135
virtual
void
setToSolution
(
escript::Data
& out,
escript::Data
& u0,
escript::Data
& source,
const
double
dt, boost::python::object& options)
const
;
136
137
143
PASOWRAP_DLL_API
144
virtual
void
copyConstraint
(
escript::Data
& source,
escript::Data
& q,
escript::Data
& r)
const
;
145
146
147
//
148
// pointer to the externally created transport_problem.
149
//
150
boost::shared_ptr<Paso_TransportProblem>
m_transport_problem
;
151
152
};
153
154
}
// end of namespace
155
#endif
Generated on Fri Jun 28 2013 11:10:53 for ESScript by
1.8.1.2