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

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

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

revision 4799 by jfenwick, Thu Feb 6 06:12:20 2014 UTC revision 4800 by caltinay, Wed Mar 26 01:50:04 2014 UTC
# Line 15  Line 15 
15  *****************************************************************************/  *****************************************************************************/
16    
17    
18  /************************************************************************************/  /****************************************************************************/
19    
20  /*   Paso: system matrix pattern                              */  /*   Paso: system matrix pattern                              */
21    
22  /************************************************************************************/  /****************************************************************************/
23    
24  /*   Copyrights by ACcESS Australia 2004,2005 */  /*   Copyrights by ACcESS Australia 2004,2005 */
25  /*   Author: Lutz Gross, l.gross@uq.edu.au */  /*   Author: Lutz Gross, l.gross@uq.edu.au */
26    
27  /************************************************************************************/  /****************************************************************************/
28    
29  #ifndef INC_PASO_SYSTEMMATRIXPATTERN  #ifndef __PASO_SYSTEMMATRIXPATTERN_H__
30  #define INC_PASO_SYSTEMMATRIXPATTERN  #define __PASO_SYSTEMMATRIXPATTERN_H__
31    
32  #include "Distribution.h"  #include "Distribution.h"
33  #include "Pattern.h"  #include "Pattern.h"
34  #include "Coupler.h"  #include "Coupler.h"
35    
36  /************************************************************************************/  namespace paso {
37    
38  typedef struct Paso_SystemMatrixPattern {  PASO_DLL_API
39    int type;  struct SystemMatrixPattern
40    {
41    Esys_MPIInfo *mpi_info;      // constructor
42        SystemMatrixPattern(int type, Paso_Distribution* output_distribution,
43              Paso_Distribution* input_distribution, Paso_Pattern* mainPattern,
44    Paso_Pattern* mainPattern;          Paso_Pattern* col_couplePattern, Paso_Pattern* row_couplePattern,
45    Paso_Pattern* col_couplePattern;          Paso_Connector* col_connector, Paso_Connector* row_connector);
46    Paso_Pattern* row_couplePattern;  
47    Paso_Connector* col_connector;      int type;
48    Paso_Connector* row_connector;  
49    Paso_Distribution *output_distribution;      Esys_MPIInfo* mpi_info;
50    Paso_Distribution *input_distribution;  
51        Paso_Pattern* mainPattern;
52    dim_t reference_counter;      Paso_Pattern* col_couplePattern;
53          Paso_Pattern* row_couplePattern;
54        Paso_Connector* col_connector;
55        Paso_Connector* row_connector;
56        Paso_Distribution* output_distribution;
57        Paso_Distribution* input_distribution;
58    
59  } Paso_SystemMatrixPattern;      dim_t reference_counter;
60    };
61    
62    
63  /*  interfaces: */  /*  interfaces: */
64    
   
65  PASO_DLL_API  PASO_DLL_API
66  Paso_SystemMatrixPattern* Paso_SystemMatrixPattern_alloc(int type, Paso_Distribution* output_distribution, Paso_Distribution* input_distribution, Paso_Pattern* mainPattern, Paso_Pattern* col_couplePattern, Paso_Pattern* row_couplePattern, Paso_Connector* col_connector, Paso_Connector* row_connector);  SystemMatrixPattern* SystemMatrixPattern_getReference(SystemMatrixPattern*);
67    
68  PASO_DLL_API  PASO_DLL_API
69  Paso_SystemMatrixPattern* Paso_SystemMatrixPattern_getReference(Paso_SystemMatrixPattern*);  void SystemMatrixPattern_free(SystemMatrixPattern*);
70    
71  PASO_DLL_API  SystemMatrixPattern* SystemMatrixPattern_unrollBlocks(
72  void Paso_SystemMatrixPattern_free(Paso_SystemMatrixPattern*);                                             SystemMatrixPattern* pattern,
73                                               int type, dim_t output_block_size,
74                                               dim_t input_block_size);
75    
76    index_t SystemMatrixPattern_getNumOutput(const SystemMatrixPattern*);
77    
78    } // namespace paso
79    
80  Paso_SystemMatrixPattern* Paso_SystemMatrixPattern_unrollBlocks(Paso_SystemMatrixPattern* pattern,  #endif // __PASO_SYSTEMMATRIXPATTERN_H__
                                            int type, dim_t output_block_size,dim_t input_block_size);  
 index_t Paso_SystemMatrixPattern_getNumOutput(Paso_SystemMatrixPattern*);  
81    
 #endif /* #ifndef INC_PASO_SYSTEMPATTERN */  

Legend:
Removed from v.4799  
changed lines
  Added in v.4800

  ViewVC Help
Powered by ViewVC 1.1.26