escript  Revision_4925
TransportProblemAdapter.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2014 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 2012-2013 by School of Earth Sciences
13 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 /* This file was extracted from finley's CPPAdapter then modified */
18 
19 #ifndef __PASOWRAP_TRANSPORTPROBLEMADAPTER_H__
20 #define __PASOWRAP_TRANSPORTPROBLEMADAPTER_H__
21 
22 #include "system_dep.h"
23 
24 #include "paso/Transport.h"
25 #include "paso/Options.h"
26 
27 #include "PasoException.h"
28 
29 #include "escript/AbstractTransportProblem.h"
30 #include "escript/Data.h"
31 #include "escript/UtilC.h"
32 
33 #include <boost/python/object.hpp>
34 #include <boost/shared_ptr.hpp>
35 #include <boost/python/extract.hpp>
36 
37 namespace paso {
38 
41 {
42 
51 public:
52 
59 
65  int block_size,
66  const escript::FunctionSpace& functionspace);
67 
73 
79 
83  virtual void resetTransport() const;
84 
88  virtual double getSafeTimeStepSize() const;
89 
93  virtual double getUnlimitedTimeStepSize() const;
94 
100  static int getTransportTypeId(const int solver, const int preconditioner,
101  const int package, const bool symmetry, Esys_MPIInfo* mpiInfo);
102 
103  protected:
104 
105  private:
106 
111  virtual void setToSolution(escript::Data& out, escript::Data& u0,
112  escript::Data& source, double dt,
113  boost::python::object& options) const;
114 
115 
122  virtual void copyConstraint(escript::Data& source, escript::Data& q,
123  escript::Data& r) const;
124 
125 
126  //
127  // shared pointer to the externally created transport_problem.
128  //
130 
131 };
132 
133 } // end of namespace
134 
135 #endif // __PASOWRAP_TRANSPORTPROBLEMADAPTER_H__
136 
Give a short description of what FunctionSpace does.
Definition: FunctionSpace.h:46
boost::shared_ptr< TransportProblem > TransportProblem_ptr
Definition: Transport.h:28
TransportProblem_ptr m_transport_problem
Definition: TransportProblemAdapter.h:129
virtual void setToSolution(escript::Data &out, escript::Data &u0, escript::Data &source, double dt, boost::python::object &options) const
sets solution out by time step dt.
Definition: TransportProblemAdapter.cpp:41
Struct that holds MPI communicator, rank, size and a tag counter.
Definition: Esys_MPI.h:48
TransportProblem_ptr getPaso_TransportProblem() const
Returns the pointer to the transport problem.
Definition: TransportProblemAdapter.cpp:36
~TransportProblemAdapter()
Empty destructor for TransportProblemAdapter.
Definition: TransportProblemAdapter.h:72
virtual double getSafeTimeStepSize() const
returns a save time step size.
Definition: TransportProblemAdapter.cpp:143
virtual void copyConstraint(escript::Data &source, escript::Data &q, escript::Data &r) const
copy constraint u_{,t}=r where q>0 into the problem it is assumed that q and r are not empty and has ...
Definition: TransportProblemAdapter.cpp:79
Data represents a collection of datapoints.
Definition: Data.h:71
TransportProblemAdapter()
Wrapper for paso::TransportProblem.
Definition: TransportProblemAdapter.cpp:24
Give a short description of what AbstractTransportProblem does.
Definition: AbstractTransportProblem.h:45
virtual void resetTransport() const
resets the transport operator typically as they have been updated.
Definition: TransportProblemAdapter.cpp:73
#define PASOWRAP_DLL_API
Definition: pasowrap/src/system_dep.h:44
static int getTransportTypeId(const int solver, const int preconditioner, const int package, const bool symmetry, Esys_MPIInfo *mpiInfo)
returns the identifier of the transport problem type to be used when a particular solver...
Definition: TransportProblemAdapter.cpp:155
Definition: TransportProblemAdapter.h:40
virtual double getUnlimitedTimeStepSize() const
returns the value for unlimited time step size.
Definition: TransportProblemAdapter.cpp:150