CoMD
A Mini-app for Co-Design of Classical Molecular Dynamics.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
decomposition.h
Go to the documentation of this file.
1 /// \file
2 /// Parallel domain decomposition.
3 
4 #ifndef _GEOMETRY_H_
5 #define _GEOMETRY_H_
6 
7 #include "mytype.h"
8 
9 /// Domain decomposition information.
10 typedef struct DomainSt
11 {
12  // process-layout data
13  int procGrid[3]; //!< number of processors in each dimension
14  int procCoord[3]; //!< i,j,k for this processor
15 
16  // global bounds data
17  real3 globalMin; //!< minimum global coordinate (angstroms)
18  real3 globalMax; //!< maximum global coordinate (angstroms)
19  real3 globalExtent; //!< global size: globalMax - globalMin
20 
21  // local bounds data
22  real3 localMin; //!< minimum coordinate on local processor
23  real3 localMax; //!< maximum coordinate on local processor
24  real3 localExtent; //!< localMax - localMin
25 } Domain;
26 
27 struct DomainSt* initDecomposition(int xproc, int yproc, int zproc,
29 
30 /// Find the MPI rank of a neighbor domain from a relative coordinate.
31 int processorNum(Domain* domain, int dix, int diy, int dik);
32 
33 #endif