/[escript]/trunk/paso/src/SystemMatrix.h
ViewVC logotype

Diff of /trunk/paso/src/SystemMatrix.h

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

revision 155 by jgs, Wed Nov 9 02:02:19 2005 UTC revision 790 by bcumming, Wed Jul 26 23:12:34 2006 UTC
# Line 1  Line 1 
1  /* $Id$ */  /* $Id$ */
2    
3    
4    /*
5    ********************************************************************************
6    *               Copyright   2006 by ACcESS MNRF                                *
7    *                                                                              *
8    *                 http://www.access.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  /**************************************************************/  /**************************************************************/
16    
17  /*   Paso: SystemMatrix and SystemVector */  /*   Paso: SystemMatrix and SystemVector */
18    
19  /**************************************************************/  /**************************************************************/
20    
21  /*   Copyrights by ACcESS Australia 2003,2004,2005 */  /*   Copyrights by ACcESS Australia 2003,2004,2005,2006 */
22  /*   Author: gross@access.edu.au */  /*   Author: gross@access.edu.au */
23    
24  /**************************************************************/  /**************************************************************/
# Line 18  Line 30 
30  #include "SystemMatrixPattern.h"  #include "SystemMatrixPattern.h"
31  #include "Options.h"  #include "Options.h"
32    
33    //#include "CommBuffer.h"
34    //#include "Paso_MPI.h"
35    
36  /**************************************************************/  /**************************************************************/
37    
38  /*  this struct holds a stiffness matrix: */  /*  this struct holds a stiffness matrix: */
39    
40  /* matrix type */  #define MATRIX_FORMAT_DEFAULT 0
41  #define  CSC 0  #define MATRIX_FORMAT_CSC 1
42  #define  CSR 1  #define MATRIX_FORMAT_SYM 2
43  /* these formats are used in the SCSL context */  #define MATRIX_FORMAT_BLK1 4
44  #define  CSC_SYM 2  #define MATRIX_FORMAT_OFFSET1 8
 #define  CSR_SYM 3  
 #define  CSC_BLK1 4  
 #define  CSR_BLK1 5  
 #define  CSC_BLK1_SYM 6  
 #define  CSR_BLK1_SYM 7  
45    
46  typedef int Paso_SystemMatrixType;  typedef int Paso_SystemMatrixType;
47    
48  typedef struct Paso_SystemMatrix {  typedef struct Paso_SystemMatrix {
49        /*
50    #ifdef PASO_MPI
51        Paso_CommBuffer *CommBuffer;
52        Paso_MPIInfo *MPIInfo;
53        dim_t numLocal;
54        dim_t numInternal;
55        dim_t numBoundary;
56        dim_t numExternal;
57        dim_t *vtxdist;
58    #endif
59        */
60    Paso_SystemMatrixType type;    Paso_SystemMatrixType type;
61    dim_t reference_counter;    dim_t reference_counter;
62    
# Line 57  typedef struct Paso_SystemMatrix { Line 78  typedef struct Paso_SystemMatrix {
78    
79    double *normalizer; /* vector with a inverse of the absolute row/col sum (set by Solver.c)*/    double *normalizer; /* vector with a inverse of the absolute row/col sum (set by Solver.c)*/
80    bool_t normalizer_is_valid;    bool_t normalizer_is_valid;
81    void* direct;  /* pointer to data needed by the direct solver */    index_t solver_package;  /* package controling the solver pointer */
82    void* iterative; /* pointer to data needed by the iterative solver */    void* solver;  /* pointer to data needed by a solver */
83    
84  } Paso_SystemMatrix;  } Paso_SystemMatrix;
85    
# Line 72  void Paso_SystemMatrix_setValues(Paso_Sy Line 93  void Paso_SystemMatrix_setValues(Paso_Sy
93  void Paso_SystemMatrix_copy(Paso_SystemMatrix*,double*);  void Paso_SystemMatrix_copy(Paso_SystemMatrix*,double*);
94  void Paso_SystemMatrix_add(Paso_SystemMatrix*,dim_t,index_t*, dim_t,dim_t,index_t*,dim_t, double*);  void Paso_SystemMatrix_add(Paso_SystemMatrix*,dim_t,index_t*, dim_t,dim_t,index_t*,dim_t, double*);
95  void Paso_SystemMatrix_MatrixVector(double alpha, Paso_SystemMatrix* A, double* in, double beta, double* out);  void Paso_SystemMatrix_MatrixVector(double alpha, Paso_SystemMatrix* A, double* in, double beta, double* out);
96    void Paso_SystemMatrix_MatrixVector_CSC_OFFSET0(double alpha, Paso_SystemMatrix* A, double* in, double beta, double* out);
97    void Paso_SystemMatrix_MatrixVector_CSC_OFFSET1(double alpha, Paso_SystemMatrix* A, double* in, double beta, double* out);
98    void Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(double alpha, Paso_SystemMatrix* A, double* in, double beta, double* out);
99    void Paso_SystemMatrix_MatrixVector_CSR_OFFSET1(double alpha, Paso_SystemMatrix* A, double* in, double beta, double* out);
100    
101  void Paso_SystemMatrix_saveMM(Paso_SystemMatrix *, char *);  void Paso_SystemMatrix_saveMM(Paso_SystemMatrix *, char *);
102  void Paso_SystemMatrix_saveHB(Paso_SystemMatrix *, char *);  void Paso_SystemMatrix_saveHB(Paso_SystemMatrix *, char *);

Legend:
Removed from v.155  
changed lines
  Added in v.790

  ViewVC Help
Powered by ViewVC 1.1.26