31 static const char rcsid[] =
"$Id: physical_map.cpp 1145 2014-09-16 09:27:22Z namekawa $";
33 static int find_coord_map(
const char map_expr[],
int ndim,
int *map);
44 for (
int i =
m_ndim - 1; i >= 0; --i) {
60 for (
int i = 0; i <
m_ndim; ++i) {
61 int k = m_physical_to_logical[i];
63 gcoord[k] = r % m_grid_dims[k];
76 m_physical_to_logical =
new int [
m_ndim];
86 delete [] m_physical_to_logical;
95 int len = strlen(map_expr);
98 fprintf(stderr,
"ERROR: find_map: length mismatch: %d, expected %d.\n", len, ndim);
102 for (
int i = 0; i < len; ++i) {
103 char c = map_expr[i];
129 fprintf(stderr,
"ERROR: find_map: unknown symbol %c.\n", c);
static int grid_coord(int *gcoord, const int rank)
static int * m_physical_to_logical
map between physical and logical grid
static int m_ndim
number of dimensions.
static int grid_rank(int *rank, const int *gcoord)
static int find_coord_map(const char map_expr[], int ndim, int *map)
static int * m_grid_dims
grid dimensions in directions.
static const char rcsid[]
static int physical_map_delete()
static int physical_map_setup()