/[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 1551 by artak, Wed Feb 27 06:12:04 2008 UTC revision 1552 by gross, Thu May 8 08:52:41 2008 UTC
# Line 33  Line 33 
33  #include "Options.h"  #include "Options.h"
34  #include "Paso_MPI.h"  #include "Paso_MPI.h"
35  #include "Paso.h"  #include "Paso.h"
36    #include "Coupler.h"
37    
38    
39  /**************************************************************/  /**************************************************************/
40    
# Line 63  typedef struct Paso_SystemMatrix { Line 65  typedef struct Paso_SystemMatrix {
65    
66    Paso_Distribution *row_distribution;    Paso_Distribution *row_distribution;
67    Paso_Distribution *col_distribution;    Paso_Distribution *col_distribution;
   
68    Paso_MPIInfo *mpi_info;    Paso_MPIInfo *mpi_info;
69    
70      Paso_Coupler* col_coupler;
71      Paso_Coupler* row_coupler;
72    /* this comes into play when PASO is used */    /* this comes into play when PASO is used */
73    Paso_SparseMatrix* mainBlock;    Paso_SparseMatrix* mainBlock;                      /* main block */
74    Paso_SparseMatrix* coupleBlock;    Paso_SparseMatrix* col_coupleBlock;                    /* coupling to naighbouring processors (row - col) */
75      Paso_SparseMatrix* row_coupleBlock;                /* coupling to naighbouring processors (col - row) (uses CSC if coupleBlock uses CSR) */
76    bool_t normalizer_is_valid;    bool_t normalizer_is_valid;
77    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)*/
78    index_t solver_package;  /* package controling the solver pointer */    index_t solver_package;  /* package controling the solver pointer */
# Line 89  void Paso_SystemMatrix_MatrixVector(doub Line 93  void Paso_SystemMatrix_MatrixVector(doub
93  void Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(double alpha, Paso_SystemMatrix* A, double* in, double beta, double* out);  void Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(double alpha, Paso_SystemMatrix* A, double* in, double beta, double* out);
94  void Paso_solve(Paso_SystemMatrix* A, double* out, double* in, Paso_Options* options);  void Paso_solve(Paso_SystemMatrix* A, double* out, double* in, Paso_Options* options);
95  void Paso_solve_free(Paso_SystemMatrix* in);  void Paso_solve_free(Paso_SystemMatrix* in);
 void Paso_SystemMatrix_allocBuffer(Paso_SystemMatrix* A);  
 void Paso_SystemMatrix_freeBuffer(Paso_SystemMatrix* A);  
96  void  Paso_SystemMatrix_startCollect(Paso_SystemMatrix* A,const double* in);  void  Paso_SystemMatrix_startCollect(Paso_SystemMatrix* A,const double* in);
97  double* Paso_SystemMatrix_finishCollect(Paso_SystemMatrix* A);  double* Paso_SystemMatrix_finishCollect(Paso_SystemMatrix* A);
98    void  Paso_SystemMatrix_startColCollect(Paso_SystemMatrix* A,const double* in);
99    double* Paso_SystemMatrix_finishColCollect(Paso_SystemMatrix* A);
100    void  Paso_SystemMatrix_startRowCollect(Paso_SystemMatrix* A,const double* in);
101    double* Paso_SystemMatrix_finishRowCollect(Paso_SystemMatrix* A);
102  void Paso_SystemMatrix_nullifyRowsAndCols(Paso_SystemMatrix* A, double* mask_row, double* mask_col, double main_diagonal_value);  void Paso_SystemMatrix_nullifyRowsAndCols(Paso_SystemMatrix* A, double* mask_row, double* mask_col, double main_diagonal_value);
103  double* Paso_SystemMatrix_borrowNormalization(Paso_SystemMatrix* A);  double* Paso_SystemMatrix_borrowNormalization(Paso_SystemMatrix* A);
104  dim_t Paso_SystemMatrix_getTotalNumRows(const Paso_SystemMatrix* A);  dim_t Paso_SystemMatrix_getTotalNumRows(const Paso_SystemMatrix* A);

Legend:
Removed from v.1551  
changed lines
  Added in v.1552

  ViewVC Help
Powered by ViewVC 1.1.26