/[escript]/branches/arrexp_2137_win_merge/escript/src/AbstractTransportProblem.h
ViewVC logotype

Annotation of /branches/arrexp_2137_win_merge/escript/src/AbstractTransportProblem.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1407 - (hide annotations)
Mon Feb 4 06:45:48 2008 UTC (11 years, 6 months ago) by gross
Original Path: trunk/escript/src/AbstractTransportProblem.h
File MIME type: text/plain
File size: 3185 byte(s)
new upwinding algorithm (still fails)
1 elspeth 615
2 gross 1367 /* $Id$ */
3 jgs 480
4 ksteube 1312 /*******************************************************
5     *
6     * Copyright 2007 by University of Queensland
7     *
8     * http://esscc.uq.edu.au
9     * Primary Business: Queensland, Australia
10     * Licensed under the Open Software License version 3.0
11     * http://www.opensource.org/licenses/osl-3.0.php
12     *
13     *******************************************************/
14    
15 gross 1364 #if !defined escript_AbstractTransportProblem_H
16     #define escript_AbstractTransportProblem_H
17 woo409 757 #include "system_dep.h"
18 jgs 82
19 jgs 474 #include "FunctionSpace.h"
20 gross 1364 #include "TransportProblemException.h"
21 jgs 474
22 jgs 82 #include <boost/python/dict.hpp>
23    
24 jgs 480 //
25     // Forward declaration
26     class Data;
27    
28 jgs 82 namespace escript {
29    
30     /**
31     \brief
32 gross 1364 Give a short description of what AbstractTransportProblem does.
33 jgs 82
34     Description:
35 gross 1364 Give a detailed description of AbstractTransportProblem
36 jgs 82
37     Template Parameters:
38     For templates describe any conditions that the parameters used in the
39     template must satisfy
40     */
41 gross 1364 class AbstractTransportProblem {
42 jgs 82
43     public:
44    
45     /**
46     \brief
47 gross 1364 Default constructor for AbstractTransportProblem
48 jgs 82
49     Description:
50 gross 1364 Default constructor for AbstractTransportProblem
51 jgs 82
52     Preconditions:
53     Describe any preconditions
54    
55     Throws:
56     Describe any exceptions thrown
57     */
58 woo409 757 ESCRIPT_DLL_API
59 gross 1364 AbstractTransportProblem();
60 jgs 82
61 woo409 757 ESCRIPT_DLL_API
62 gross 1364 AbstractTransportProblem(const double theta,
63     const int blocksize,
64     const FunctionSpace& functionspace);
65    
66 jgs 82 /**
67     \brief
68     Destructor.
69     */
70 woo409 757 ESCRIPT_DLL_API
71 gross 1364 virtual ~AbstractTransportProblem();
72 jgs 82
73 woo409 757 ESCRIPT_DLL_API
74 jgs 82 int isEmpty() const;
75    
76     /**
77     \brief
78     returns the column function space
79     */
80 woo409 757 ESCRIPT_DLL_API
81 gross 1364 inline FunctionSpace getFunctionSpace() const
82 jgs 82 {
83     if (isEmpty())
84 gross 1367 throw TransportProblemException("Error - Transport Problem is empty.");
85 gross 1364 return m_functionspace;
86 jgs 82 }
87    
88     /**
89     \brief
90 gross 1364 returns the block size
91 jgs 82 */
92 woo409 757 ESCRIPT_DLL_API
93 gross 1364 inline int getBlockSize() const
94 jgs 82 {
95     if (isEmpty())
96 gross 1367 throw TransportProblemException("Error - Transport Problem is empty.");
97 gross 1364 return m_blocksize;
98 jgs 82 }
99    
100     /**
101 gross 1364 \brief
102     returns the solution u for a time step dt>0
103 jgs 82 */
104 woo409 757 ESCRIPT_DLL_API
105 gross 1364 Data solve(Data& source, const double dt, const boost::python::dict& options) const;
106 jgs 82
107     /**
108     \brief
109 gross 1364 sets the value for u at time t=0.
110 jgs 82 */
111 woo409 757 ESCRIPT_DLL_API
112 gross 1364 void setInitialValue(Data& u) const;
113 jgs 102 /**
114 gross 1364 \brief resets the transport operator typically as they have been updated.
115 jgs 102 */
116 woo409 757 ESCRIPT_DLL_API
117 gross 1364 virtual void resetTransport() const;
118 jgs 123
119 gross 1407 /**
120     * \brief returns a save time step size.
121     * */
122     ESCRIPT_DLL_API
123     virtual double getSafeTimeStepSize() const;
124    
125    
126 jgs 82 protected:
127    
128     private:
129    
130     /**
131     \brief
132 gross 1364 sets solution out by time step dt.
133 jgs 82 */
134 woo409 757 ESCRIPT_DLL_API
135 gross 1364 virtual void setToSolution(Data& out,Data& source,const double dt, const boost::python::dict& options) const;
136 jgs 82
137     /**
138     \brief
139 gross 1364 copies the initial value into the problem
140 jgs 82 */
141 woo409 757 ESCRIPT_DLL_API
142 gross 1364 virtual void copyInitialValue(Data& u) const;
143 jgs 82
144     int m_empty;
145 gross 1364 int m_blocksize;
146     double m_theta;
147     FunctionSpace m_functionspace;
148 jgs 82
149     };
150    
151    
152     } // end of namespace
153     #endif

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26