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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4819 - (hide annotations)
Tue Apr 1 03:50:23 2014 UTC (6 years, 2 months ago) by caltinay
File MIME type: text/plain
File size: 2408 byte(s)
Pattern shared ptrs

1 ksteube 1312
2 jfenwick 3981 /*****************************************************************************
3 ksteube 1811 *
4 jfenwick 4657 * Copyright (c) 2003-2014 by University of Queensland
5 jfenwick 3981 * http://www.uq.edu.au
6 ksteube 1811 *
7     * Primary Business: Queensland, Australia
8     * Licensed under the Open Software License version 3.0
9     * http://www.opensource.org/licenses/osl-3.0.php
10     *
11 jfenwick 3981 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 jfenwick 4657 * Development 2012-2013 by School of Earth Sciences
13     * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 jfenwick 3981 *
15     *****************************************************************************/
16 dhawcroft 631
17 ksteube 1811
18 caltinay 4800 /****************************************************************************/
19 jgs 150
20 caltinay 3642 /* Paso: system matrix pattern */
21 jgs 150
22 caltinay 4800 /****************************************************************************/
23 jgs 150
24     /* Copyrights by ACcESS Australia 2004,2005 */
25 jfenwick 2608 /* Author: Lutz Gross, l.gross@uq.edu.au */
26 jgs 150
27 caltinay 4800 /****************************************************************************/
28 jgs 150
29 caltinay 4800 #ifndef __PASO_SYSTEMMATRIXPATTERN_H__
30     #define __PASO_SYSTEMMATRIXPATTERN_H__
31 jgs 150
32 ksteube 1312 #include "Distribution.h"
33     #include "Pattern.h"
34     #include "Coupler.h"
35 jgs 150
36 caltinay 4800 namespace paso {
37 jgs 150
38 caltinay 4818 struct SystemMatrixPattern;
39     typedef boost::shared_ptr<SystemMatrixPattern> SystemMatrixPattern_ptr;
40     typedef boost::shared_ptr<const SystemMatrixPattern> const_SystemMatrixPattern_ptr;
41    
42 caltinay 4800 PASO_DLL_API
43 caltinay 4818 struct SystemMatrixPattern : boost::enable_shared_from_this<SystemMatrixPattern>
44 caltinay 4800 {
45     // constructor
46 caltinay 4814 SystemMatrixPattern(int type, Distribution_ptr output_distribution,
47 caltinay 4819 Distribution_ptr input_distribution, Pattern_ptr mainPattern,
48     Pattern_ptr col_couplePattern, Pattern_ptr row_couplePattern,
49 caltinay 4817 Connector_ptr col_connector, Connector_ptr row_connector);
50 ksteube 1312
51 caltinay 4818 ~SystemMatrixPattern()
52     {
53     Esys_MPIInfo_free(mpi_info);
54     }
55    
56     inline index_t getNumOutput() const {
57     return mainPattern->numOutput;
58     }
59    
60     SystemMatrixPattern_ptr unrollBlocks(int type, dim_t output_block_size,
61     dim_t input_block_size);
62    
63 caltinay 4800 int type;
64     Esys_MPIInfo* mpi_info;
65 caltinay 4819 Pattern_ptr mainPattern;
66     Pattern_ptr col_couplePattern;
67     Pattern_ptr row_couplePattern;
68 caltinay 4817 Connector_ptr col_connector;
69     Connector_ptr row_connector;
70 caltinay 4814 Distribution_ptr output_distribution;
71     Distribution_ptr input_distribution;
72 caltinay 4800 };
73 jgs 150
74    
75 caltinay 4800 } // namespace paso
76    
77     #endif // __PASO_SYSTEMMATRIXPATTERN_H__
78    

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26