ESScript  Revision_
SharedComponents.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2013 by University of Queensland
5 * http://www.uq.edu.au
6 *
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 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development since 2012 by School of Earth Sciences
13 *
14 *****************************************************************************/
15 
16 
17 /************************************************************************************/
18 
19 /* Paso: coupler */
20 
21 /************************************************************************************/
22 
23 /* Author: Lutz Gross, l.gross@uq.edu.au */
24 
25 /************************************************************************************/
26 
27 #ifndef INC_PASO_SHAREDCOMPONENTS
28 #define INC_PASO_SHAREDCOMPONENTS
29 
30 #include "Common.h"
31 #include "esysUtils/Esys_MPI.h"
32 
33 /************************************************************************************/
34 
35 typedef struct Paso_SharedComponents {
36 
37  dim_t local_length; /* local array length shared */
38 
39  dim_t numNeighbors; /* number of processor sharing values with this processor */
40 
41  index_t* offsetInShared; /* offsetInSharedInput[i] points to the first input value in array shared
42  for processor i. Has length numNeighbors+1 */
43 
44  Esys_MPI_rank* neighbor; /* list of the processor sharing values with this processor */
45 
46  index_t* shared; /* list of the (local) components which are shared with other
47  processors. Has length numSharedComponents */
48 
49  dim_t numSharedComponents; /* = offsetInShared[numNeighbors] */
50 
53 
55 
56 
57 
60  dim_t numNeighbors,
61  Esys_MPI_rank* neighbor,
62  index_t* shared,
63  index_t* offsetInShared,
64  index_t m, index_t b,
65  Esys_MPIInfo *mpi_info);
66 
67 
70 
73 
74 #endif