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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 615 by elspeth, Wed Mar 22 02:12:00 2006 UTC revision 757 by woo409, Mon Jun 26 13:12:56 2006 UTC
# Line 14  Line 14 
14    
15  #if !defined  escript_AbstractSystemMatrix_20040628_H  #if !defined  escript_AbstractSystemMatrix_20040628_H
16  #define escript_AbstractSystemMatrix_20040628_H  #define escript_AbstractSystemMatrix_20040628_H
17    #include "system_dep.h"
18    
19  #include "FunctionSpace.h"  #include "FunctionSpace.h"
20  #include "SystemMatrixException.h"  #include "SystemMatrixException.h"
# Line 54  class AbstractSystemMatrix { Line 55  class AbstractSystemMatrix {
55       Throws:       Throws:
56       Describe any exceptions thrown       Describe any exceptions thrown
57    */    */
58      ESCRIPT_DLL_API
59    AbstractSystemMatrix();    AbstractSystemMatrix();
60    
61      ESCRIPT_DLL_API
62    AbstractSystemMatrix(const int row_blocksize,    AbstractSystemMatrix(const int row_blocksize,
63                         const FunctionSpace& row_functionspace,                         const FunctionSpace& row_functionspace,
64                         const int column_blocksize,                         const int column_blocksize,
# Line 64  class AbstractSystemMatrix { Line 67  class AbstractSystemMatrix {
67      \brief      \brief
68      Destructor.      Destructor.
69    */    */
70      ESCRIPT_DLL_API
71    virtual ~AbstractSystemMatrix();    virtual ~AbstractSystemMatrix();
72    
73    /**    /**
74      \brief      \brief
75      matrix*vector multiplication      matrix*vector multiplication
76    */    */
77      ESCRIPT_DLL_API
78    Data vectorMultiply(Data& right) const;    Data vectorMultiply(Data& right) const;
79    
80    /**    /**
81      \brief      \brief
82      returns true if the matrix is empty      returns true if the matrix is empty
83    */    */
84      ESCRIPT_DLL_API
85    int isEmpty() const;    int isEmpty() const;
86    
87    /**    /**
88      \brief      \brief
89      returns the column function space      returns the column function space
90    */    */
91      ESCRIPT_DLL_API
92    inline FunctionSpace getColumnFunctionSpace() const    inline FunctionSpace getColumnFunctionSpace() const
93    {    {
94         if (isEmpty())         if (isEmpty())
# Line 93  class AbstractSystemMatrix { Line 100  class AbstractSystemMatrix {
100      \brief      \brief
101      returns the row function space      returns the row function space
102    */    */
103      ESCRIPT_DLL_API
104    inline FunctionSpace getRowFunctionSpace() const    inline FunctionSpace getRowFunctionSpace() const
105    {    {
106         if (isEmpty())         if (isEmpty())
# Line 104  class AbstractSystemMatrix { Line 112  class AbstractSystemMatrix {
112      \brief      \brief
113      returns the row block size      returns the row block size
114    */    */
115      ESCRIPT_DLL_API
116    inline int getRowBlockSize() const    inline int getRowBlockSize() const
117    {    {
118         if (isEmpty())         if (isEmpty())
# Line 115  class AbstractSystemMatrix { Line 124  class AbstractSystemMatrix {
124      \brief      \brief
125      returns the column block size      returns the column block size
126    */    */
127      ESCRIPT_DLL_API
128    inline int getColumnBlockSize() const    inline int getColumnBlockSize() const
129    {    {
130         if (isEmpty())         if (isEmpty())
# Line 126  class AbstractSystemMatrix { Line 136  class AbstractSystemMatrix {
136       \brief       \brief
137       returns the solution u of the linear system this*u=in       returns the solution u of the linear system this*u=in
138    */    */
139      ESCRIPT_DLL_API
140    Data solve(Data& in,const boost::python::dict& options) const;    Data solve(Data& in,const boost::python::dict& options) const;
141    
142    /**    /**
143       \brief writes the matrix to a file using the Matrix Market file format       \brief writes the matrix to a file using the Matrix Market file format
144    */    */
145      ESCRIPT_DLL_API
146    virtual void saveMM(const std::string& fileName) const;    virtual void saveMM(const std::string& fileName) const;
147    
148    /**    /**
149       \brief writes the matrix to a file using the Harwell-Boeing file format       \brief writes the matrix to a file using the Harwell-Boeing file format
150    */    */
151      ESCRIPT_DLL_API
152    virtual void saveHB(const std::string& fileName) const;    virtual void saveHB(const std::string& fileName) const;
153    
154    /**    /**
155       \brief resets the matrix entries       \brief resets the matrix entries
156    */    */
157      ESCRIPT_DLL_API
158    virtual void resetValues() const;    virtual void resetValues() const;
159    
160   protected:   protected:
# Line 151  class AbstractSystemMatrix { Line 165  class AbstractSystemMatrix {
165       \brief       \brief
166       solves the linear system this*out=in       solves the linear system this*out=in
167    */    */
168      ESCRIPT_DLL_API
169    virtual void setToSolution(Data& out,Data& in,const boost::python::dict& options) const;    virtual void setToSolution(Data& out,Data& in,const boost::python::dict& options) const;
170    
171    /**    /**
172       \brief       \brief
173       performs y+=this*x       performs y+=this*x
174    */    */
175      ESCRIPT_DLL_API
176    virtual void ypAx(Data& y,Data& x) const;    virtual void ypAx(Data& y,Data& x) const;
177    
178    int m_empty;    int m_empty;
# Line 167  class AbstractSystemMatrix { Line 183  class AbstractSystemMatrix {
183    
184  };  };
185    
186  Data operator*(const AbstractSystemMatrix& left,const Data& right) ;  ESCRIPT_DLL_API Data operator*(const AbstractSystemMatrix& left,const Data& right) ;
187    
188    
189    

Legend:
Removed from v.615  
changed lines
  Added in v.757

  ViewVC Help
Powered by ViewVC 1.1.26