/[escript]/trunk/finley/src/CPPAdapter/SystemMatrixAdapter.h
ViewVC logotype

Diff of /trunk/finley/src/CPPAdapter/SystemMatrixAdapter.h

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

revision 682 by robwdcock, Mon Mar 27 02:43:09 2006 UTC revision 1388 by trankine, Fri Jan 11 07:45:58 2008 UTC
# Line 1  Line 1 
1  // $Id$  
2  /*  /* $Id$ */
3   ************************************************************  
4   *          Copyright 2006 by ACcESS MNRF                   *  /*******************************************************
5   *                                                          *   *
6   *              http://www.access.edu.au                    *   *           Copyright 2003-2007 by ACceSS MNRF
7   *       Primary Business: Queensland, Australia            *   *       Copyright 2007 by University of Queensland
8   *  Licensed under the Open Software License version 3.0    *   *
9   *     http://www.opensource.org/licenses/osl-3.0.php       *   *                http://esscc.uq.edu.au
10   *                                                          *   *        Primary Business: Queensland, Australia
11   ************************************************************   *  Licensed under the Open Software License version 3.0
12  */   *     http://www.opensource.org/licenses/osl-3.0.php
13     *
14     *******************************************************/
15    
16  #if !defined  finley_SystemMatrixAdapter_20040610_H  #if !defined  finley_SystemMatrixAdapter_20040610_H
17  #define finley_SystemMatrixAdapter_20040610_H  #define finley_SystemMatrixAdapter_20040610_H
18    #include "system_dep.h"
19    
20  extern "C" {  extern "C" {
21  #include "paso/SystemMatrix.h"  #include "paso/SystemMatrix.h"
# Line 49  class SystemMatrixAdapter:public escript Line 52  class SystemMatrixAdapter:public escript
52       Default Constructor for SystemMatrixAdapter.       Default Constructor for SystemMatrixAdapter.
53       NB: Only throws an exception.       NB: Only throws an exception.
54    */    */
55      FINLEY_DLL_API
56    SystemMatrixAdapter();    SystemMatrixAdapter();
57    
58    /**    /**
59       /brief       /brief
60       Constructor for SystemMatrixAdapter.       Constructor for SystemMatrixAdapter.
61    */    */
62      FINLEY_DLL_API
63    SystemMatrixAdapter(Paso_SystemMatrix* system_matrix,    SystemMatrixAdapter(Paso_SystemMatrix* system_matrix,
64                        const int row_blocksize,                        const int row_blocksize,
65                        const escript::FunctionSpace& row_functionspace,                        const escript::FunctionSpace& row_functionspace,
# Line 67  class SystemMatrixAdapter:public escript Line 72  class SystemMatrixAdapter:public escript
72       Destructor for SystemMatrixAdapter. As specified in the constructor       Destructor for SystemMatrixAdapter. As specified in the constructor
73       this deallocates the pointer given to the constructor.       this deallocates the pointer given to the constructor.
74    */    */
75      FINLEY_DLL_API
76    ~SystemMatrixAdapter();    ~SystemMatrixAdapter();
77    
78    /**    /**
79       \brief       \brief
80       Returns the pointer to the system matrix.       Returns the pointer to the system matrix.
81    */    */
82      FINLEY_DLL_API
83    Paso_SystemMatrix* getPaso_SystemMatrix() const;    Paso_SystemMatrix* getPaso_SystemMatrix() const;
84    
85    /**    /**
# Line 97  class SystemMatrixAdapter:public escript Line 104  class SystemMatrixAdapter:public escript
104      \brief      \brief
105      nullifyRowsAndCols - calls Paso_SystemMatrix_nullifyRowsAndCols.      nullifyRowsAndCols - calls Paso_SystemMatrix_nullifyRowsAndCols.
106    */    */
107      FINLEY_DLL_API
108    void nullifyRowsAndCols(escript::Data& row_q, escript::Data& col_q, const double mdv) const;    void nullifyRowsAndCols(escript::Data& row_q, escript::Data& col_q, const double mdv) const;
109    
110    /**    /**
111       \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
112    */    */
113      FINLEY_DLL_API
114    virtual void saveMM(const std::string& fileName) const;    virtual void saveMM(const std::string& fileName) const;
115    
116    /**    /**
117       \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
118    */    */
119      FINLEY_DLL_API
120    virtual void saveHB(const std::string& fileName) const;    virtual void saveHB(const std::string& fileName) const;
121    
122    /**    /**
123       \brief sets the matrix entries to zero       \brief sets the matrix entries to zero
124    */    */
125      FINLEY_DLL_API
126    virtual void resetValues() const;    virtual void resetValues() const;
127    
128    /**    /**
129       \brief maps escript options onto Paso options:       \brief maps escript options onto Paso options:
130    */    */
131      FINLEY_DLL_API
132    static int mapOptionToPaso(const int option);    static int mapOptionToPaso(const int option);
133    
134      /**
135         \brief extract paso options from a dictionary
136      */
137    
138      FINLEY_DLL_API
139      static void dictToPasoOptions(Paso_Options* paso_options, const boost::python::dict& options);
140    
141      /**
142         \brief prints information about a system matrix
143      */
144      FINLEY_DLL_API
145      void Print_Matrix_Info(const bool) const;
146    
147   protected:   protected:
148    
149   private:   private:
# Line 127  class SystemMatrixAdapter:public escript Line 152  class SystemMatrixAdapter:public escript
152        \brief        \brief
153        solves the linear system this*out=in        solves the linear system this*out=in
154     */     */
155       FINLEY_DLL_API
156     virtual void setToSolution(escript::Data& out, escript::Data& in, const boost::python::dict& options) const;     virtual void setToSolution(escript::Data& out, escript::Data& in, const boost::python::dict& options) const;
157    
158     /**     /**
159         \brief         \brief
160         performs y+=this*x         performs y+=this*x
161     */     */
162       FINLEY_DLL_API
163     virtual void ypAx(escript::Data& y, escript::Data& x) const;     virtual void ypAx(escript::Data& y, escript::Data& x) const;
164    
165     //     //

Legend:
Removed from v.682  
changed lines
  Added in v.1388

  ViewVC Help
Powered by ViewVC 1.1.26