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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2070 - (hide annotations)
Thu Nov 20 10:11:13 2008 UTC (11 years, 3 months ago) by phornby
File MIME type: text/plain
File size: 2166 byte(s)
Further preparation for sharable paso.


1 ksteube 1310
2     /*******************************************************
3 ksteube 1811 *
4     * Copyright (c) 2003-2008 by University of Queensland
5     * Earth Systems Science Computational Center (ESSCC)
6     * http://www.uq.edu.au/esscc
7     *
8     * Primary Business: Queensland, Australia
9     * Licensed under the Open Software License version 3.0
10     * http://www.opensource.org/licenses/osl-3.0.php
11     *
12     *******************************************************/
13 ksteube 1310
14 ksteube 1811
15 ksteube 1310 /**************************************************************/
16    
17     /* Paso: system matrix pattern */
18    
19     /**************************************************************/
20    
21     /* Author: gross@access.edu.au */
22    
23     /**************************************************************/
24    
25     #ifndef INC_PASO_DISTRIBUTION
26     #define INC_PASO_DISTRIBUTION
27    
28     #include "Common.h"
29     #include "Paso_MPI.h"
30    
31     /****************************************************
32     describes the distribution of a vector stored
33     on the local process
34     ****************************************************/
35     struct Paso_Distribution
36     {
37     index_t *first_component; /* process i has nodes with global indices first_component[i+1] to first_component[i]. */
38     dim_t reference_counter;
39     Paso_MPIInfo *mpi_info;
40     };
41    
42     typedef struct Paso_Distribution Paso_Distribution;
43    
44     /***************************************
45     Function prototypes
46     **************************************/
47    
48 phornby 2070
49     PASO_DLL_API
50 ksteube 1310 Paso_Distribution* Paso_Distribution_alloc( Paso_MPIInfo *mpi_info, index_t* first_component, index_t m, index_t b);
51 phornby 2070
52     PASO_DLL_API
53 ksteube 1310 void Paso_Distribution_free( Paso_Distribution *in );
54 phornby 2070
55     PASO_DLL_API
56 ksteube 1310 Paso_Distribution* Paso_Distribution_getReference( Paso_Distribution *in );
57 phornby 2070
58     PASO_DLL_API
59 ksteube 1310 index_t Paso_Distribution_getFirstComponent(Paso_Distribution *in );
60 phornby 2070
61     PASO_DLL_API
62 ksteube 1310 index_t Paso_Distribution_getLastComponent(Paso_Distribution *in );
63 phornby 2070
64     PASO_DLL_API
65 ksteube 1310 dim_t Paso_Distribution_getGlobalNumComponents(Paso_Distribution *in );
66 phornby 2070
67     PASO_DLL_API
68 ksteube 1310 dim_t Paso_Distribution_getMyNumComponents(Paso_Distribution *in );
69 phornby 2070
70     PASO_DLL_API
71 ksteube 1310 dim_t Paso_Distribution_getMinGlobalComponents(Paso_Distribution *in );
72 phornby 2070
73     PASO_DLL_API
74 ksteube 1310 dim_t Paso_Distribution_getMaxGlobalComponents(Paso_Distribution *in );
75     #endif

  ViewVC Help
Powered by ViewVC 1.1.26