FlexELA
Loading...
Searching...
No Matches
globalVariables.h
1#ifndef GLOBAL_VARIABLES_H
2#define GLOBAL_VARIABLES_H
3
4#ifdef ELA_USE_MPI
5#include "domain/mpidomain.h"
6#else
7#include "domain/domain.h"
8#endif
9
10namespace ela {
11
12#ifdef ELA_USE_MPI
13typedef domain::MPIDomain DomainType;
14#else
15typedef domain::Domain DomainType;
16#endif
17
18extern DomainType* dom;
19
20extern int inputPad[6];
21
22template <class T>
23fields::Helper<T> wrapField(T* in)
24{
25 return fields::Helper<T>(in, dom->n, inputPad);
26}
27
28template <class T>
29fields::Helper<T> wrapRow(T* in, const int& d)
30{
31 assert(d >= 0 && d < 3);
32
33 int n[3] = {1, 1, 1};
34 int pad[6] = {0, 0, 0, 0, 0, 0};
35
36 n[d] = ela::dom->n[d];
37 pad[2 * d] = ela::inputPad[2 * d];
38 pad[(2 * d) + 1] = ela::inputPad[(2 * d) + 1];
39
40 return fields::Helper<T>(in, n, pad);
41}
42
43} // namespace ela
44
45#endif
An extension of Domain for parallelization with MPI.
Definition mpidomain.h:14
A helper class to wrap pointers to padded 3D cartesian data.
Definition fields.h:27
A wrapper for global ELA data.
Definition domain.h:43
const int n[3]
Storage for ni, nj, and nk.
Definition domain.h:57