macros and definitions related to storage mapping functions More...
Go to the source code of this file.
Macros | |
#define | N1M (N1+N1BND*2) |
Define N1M, N2M, N3M and other spatial storage related items. More... | |
#define | N2M (N2+N2BND*2) |
#define | N3M (N3+N3BND*2) |
#define | NBIG1M ((N1M>N2M) ? N1M : N2M) |
NBIGM is bigger of N1M and N2M and N3M not currently used. More... | |
#define | NBIGM ((NBIG1M>N3M) ? NBIG1M : N3M) |
#define | MAXSURFA1 (N2M*N3M*N1NOT1) |
surface areas of sides WITH boundary zones reduces to 0 if that dimension not used More... | |
#define | MAXSURFA2 (N1M*N3M*N2NOT1) |
#define | MAXSURFA3 (N1M*N2M*N3NOT1) |
#define | NBIGS1M ((MAXSURFA1>MAXSURFA2) ? MAXSURFA1 : MAXSURFA2) |
maximal surface of boundary exchange notice that this works in any number of dimensions and any N1,N2,N3 that is, it reduces correctly when a dimension is degenerate (N=1) More... | |
#define | NBIGSM ((NBIGS1M>MAXSURFA3) ? NBIGS1M : MAXSURFA3) |
#define | OPENMP3DLOOPBLOCK2IJKSTORAGE0(i, j, k) |
ORDERSTORAGE : N1M=NSTORE?, N2M=NSTORE?, N3M=NSTORE? 0 : 1 2 3 // standard (original) order 1 : 2 3 1 2 : 3 1 2 3 : 1 3 2 4 : 2 1 3 5 : 3 2 1. More... | |
#define | OPENMP3DLOOPBLOCK2IJKSTORAGE1(i, j, k) |
#define | OPENMP3DLOOPBLOCK2IJKSTORAGE2(i, j, k) |
#define | OPENMP3DLOOPBLOCK2IJKSTORAGE3(i, j, k) |
#define | OPENMP3DLOOPBLOCK2IJKSTORAGE4(i, j, k) |
#define | OPENMP3DLOOPBLOCK2IJKSTORAGE5(i, j, k) |
#define | NSTORE1 N1M |
123 More... | |
#define | NSTORE2 N2M |
#define | NSTORE3 N3M |
#define | NSTOREBND1 N1BND |
#define | NSTOREBND2 N2BND |
#define | NSTOREBND3 N3BND |
#define | SHIFTSTORE1 SHIFT1 |
#define | SHIFTSTORE2 SHIFT2 |
#define | SHIFTSTORE3 SHIFT3 |
#define | LOOPORDER1(i, j, k) i |
#define | LOOPORDER2(i, j, k) j |
#define | LOOPORDER3(i, j, k) k |
#define | STO1(i, j, k) (i) |
#define | STO2(i, j, k) (j) |
#define | STO3(i, j, k) (k) |
#define | DEFDIM1(i, j, k) (i) |
#define | DEFDIM2(i, j, k) (j) |
#define | DEFDIM3(i, j, k) (k) |
#define | STOMET1(i, j, k) (0) |
#define | STOMET2(i, j, k) (0) |
#define | STOMET3(i, j, k) (0) |
#define | DEFDIMMET1(i, j, k) (1) |
#define | DEFDIMMET2(i, j, k) (1) |
#define | DEFDIMMET3(i, j, k) (1) |
#define | OPENMP3DLOOPBLOCK2IJK(i, j, k) OPENMP3DLOOPBLOCK2IJKSTORAGE0(i,j,k) |
#define | GENPOINT(prefix, name) prefix##name |
below doesn't work since #define can't refer to other #'s define OPENMPLOOPGEN(is,ie,js,je,ks,ke,VARPRIVATE,EXTRAFOR) OPENMP3DLOOPVARSDEFINE; OPENMP3DLOOPSETUP(is,ie,js,je,ks,ke); \ pragma omp parallel private(VARPRIVATE) OPENMPGLOBALPRIVATEFULL \ { \ pragma omp for schedule(OPENMPSCHEDULE,OPENMPCHUNKSIZE(blocksize)) EXTRAFOR \ OPENMP3DLOOPBLOCK{ \ OPENMP3DLOPBLOCK2IJK(i,j,k); More... | |
#define | GENMAC(prefix, name, i, j, k) prefix##name[STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)] |
#define | GENMACP0A0(prefix, name, i, j, k) GENMAC(prefix,name,i,j,k) |
#define | GENMACP1A0(prefix, name, argp1, i, j, k) prefix##name[argp1][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)] |
#define | GENMACP0A1(prefix, name, i, j, k, arga1) prefix##name[STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1] |
#define | GENMACP2A0(prefix, name, argp1, argp2, i, j, k) prefix##name[argp1][argp2][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)] |
#define | GENMACP1A1(prefix, name, argp1, i, j, k, arga1) prefix##name[argp1][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1] |
#define | GENMACP0A2(prefix, name, i, j, k, arga1, arga2) prefix##name[STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1][arga2] |
#define | GENMACP3A0(prefix, name, argp1, argp2, argp3, i, j, k) prefix##name[argp1][argp2][argp3][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)] |
#define | GENMACP2A1(prefix, name, argp1, argp2, i, j, k, arga1) prefix##name[argp1][argp2][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1] |
#define | GENMACP1A2(prefix, name, argp1, i, j, k, arga1, arga2) prefix##name[argp1][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1][arga2] |
#define | GENMACP0A3(prefix, name, i, j, k, arga1, arga2, arga3) prefix##name[STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1][arga2][arga3] |
#define | GENMACP4A0(prefix, name, argp1, argp2, argp3, argp4, i, j, k) prefix##name[argp1][argp2][argp3][argp4][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)] |
#define | GENMACP3A1(prefix, name, argp1, argp2, argp3, i, j, k, arga1) prefix##name[argp1][argp2][argp3][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1] |
#define | GENMACP2A2(prefix, name, argp1, argp2, i, j, k, arga1, arga2) prefix##name[argp1][argp2][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1][arga2] |
#define | GENMACP1A3(prefix, name, argp1, i, j, k, arga1, arga2, arga3) prefix##name[argp1][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1][arga2][arga3] |
#define | GENMACP0A4(prefix, name, i, j, k, arga1, arga2, arga3, arga4) prefix##name[STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1][arga2][arga3][arga4] |
#define | BASEPOINT(name) GENPOINT(a_,name) |
BASE (a_) wrappers // actual declarations for 3D memory arrays set in superdefs.h. More... | |
#define | BASEMAC(name, i, j, k) GENMAC(a_,name,i,j,k) |
#define | BASEMACP0A0(name, i, j, k) GENMACP0A0(a_,name,i,j,k) |
#define | BASEMACP1A0(name, argp1, i, j, k) GENMACP1A0(a_,name,argp1,i,j,k) |
#define | BASEMACP0A1(name, i, j, k, arga1) GENMACP0A1(a_,name,i,j,k,arga1) |
#define | BASEMACP2A0(name, argp1, argp2, i, j, k) GENMACP2A0(a_,name,argp1,argp2,i,j,k) |
#define | BASEMACP1A1(name, argp1, i, j, k, arga1) GENMACP1A1(a_,name,argp1,i,j,k,arga1) |
#define | BASEMACP0A2(name, i, j, k, arga1, arga2) GENMACP0A2(a_,name,i,j,k,arga1,arga2) |
#define | BASEMACP3A0(name, argp1, argp2, argp3, i, j, k) GENMACP3A0(a_,name,argp1,argp2,argp3,i,j,k) |
#define | BASEMACP2A1(name, argp1, argp2, i, j, k, arga1) GENMACP2A1(a_,name,argp1,argp2,i,j,k,arga1) |
#define | BASEMACP1A2(name, argp1, i, j, k, arga1, arga2) GENMACP1A2(a_,name,argp1,i,j,k,arga1,arga2) |
#define | BASEMACP0A3(name, i, j, k, arga1, arga2, arga3) GENMACP0A3(a_,name,i,j,k,arga1,arga2,arga3) |
#define | BASEMACP4A0(name, argp1, argp2, argp3, argp4, i, j, k) GENMACP4A0(a_,name,argp1,argp2,argp3,argp4,i,j,k) |
#define | BASEMACP3A1(name, argp1, argp2, argp3, i, j, k, arga1) GENMACP3A1(a_,name,argp1,argp2,argp3,i,j,k,arga1) |
#define | BASEMACP2A2(name, argp1, argp2, i, j, k, arga1, arga2) GENMACP2A2(a_,name,argp1,argp2,i,j,k,arga1,arga2) |
#define | BASEMACP1A3(name, argp1, i, j, k, arga1, arga2, arga3) GENMACP1A3(a_,name,argp1,i,j,k,arga1,arga2,arga3) |
#define | BASEMACP0A4(name, i, j, k, arga1, arga2, arga3, arga4) GENMACP0A4(a_,name,i,j,k,arga1,arga2,arga3,arga4) |
#define | GLOBALPOINT(name) GENPOINT(a_s_,name) |
shifted pointer (a_s_) wrappers Couldn't figure out how to macrofy a_s_ or a_, so when changing have to change all manually If want no header on global array, then just leave as (,name,...) instead of (a_s_,name,...) More... | |
#define | GLOBALMAC(name, i, j, k) GENMAC(a_s_,name,i,j,k) |
#define | GLOBALMACP0A0(name, i, j, k) GENMACP0A0(a_s_,name,i,j,k) |
#define | GLOBALMACP2A0(name, argp1, argp2, i, j, k) GENMACP2A0(a_s_,name,argp1,argp2,i,j,k) |
#define | GLOBALMACP1A1(name, argp1, i, j, k, arga1) GENMACP1A1(a_s_,name,argp1,i,j,k,arga1) |
#define | GLOBALMACP0A2(name, i, j, k, arga1, arga2) GENMACP0A2(a_s_,name,i,j,k,arga1,arga2) |
#define | GLOBALMACP3A0(name, argp1, argp2, argp3, i, j, k) GENMACP3A0(a_s_,name,argp1,argp2,argp3,i,j,k) |
#define | GLOBALMACP2A1(name, argp1, argp2, i, j, k, arga1) GENMACP2A1(a_s_,name,argp1,argp2,i,j,k,arga1) |
#define | GLOBALMACP1A2(name, argp1, i, j, k, arga1, arga2) GENMACP1A2(a_s_,name,argp1,i,j,k,arga1,arga2) |
#define | GLOBALMACP0A3(name, i, j, k, arga1, arga2, arga3) GENMACP0A3(a_s_,name,i,j,k,arga1,arga2,arga3) |
#define | GLOBALMACP4A0(name, argp1, argp2, argp3, argp4, i, j, k) GENMACP4A0(a_s_,name,argp1,argp2,argp3,argp4,i,j,k) |
#define | GLOBALMACP3A1(name, argp1, argp2, argp3, i, j, k, arga1) GENMACP3A1(a_s_,name,argp1,argp2,argp3,i,j,k,arga1) |
#define | GLOBALMACP2A2(name, argp1, argp2, i, j, k, arga1, arga2) GENMACP2A2(a_s_,name,argp1,argp2,i,j,k,arga1,arga2) |
#define | GLOBALMACP1A3(name, argp1, i, j, k, arga1, arga2, arga3) GENMACP1A3(a_s_,name,argp1,i,j,k,arga1,arga2,arga3) |
#define | GLOBALMACP0A4(name, i, j, k, arga1, arga2, arga3, arga4) GENMACP0A4(a_s_,name,i,j,k,arga1,arga2,arga3,arga4) |
#define | POINT(name) GENPOINT(,name) |
Access to any non-global pointer (not a_s_): note that ok to have nothing as prefix, but macro using prefix##name assumes prefix is defined even inputted as nothing. More... | |
#define | MAC(name, i, j, k) GENMAC(,name,i,j,k) |
#define | MACP0A0(name, i, j, k) GENMACP0A0(,name,i,j,k) |
#define | MACP1A0(name, argp1, i, j, k) GENMACP1A0(,name,argp1,i,j,k) |
#define | MACP0A1(name, i, j, k, arga1) GENMACP0A1(,name,i,j,k,arga1) |
#define | MACP2A0(name, argp1, argp2, i, j, k) GENMACP2A0(,name,argp1,argp2,i,j,k) |
#define | MACP1A1(name, argp1, i, j, k, arga1) GENMACP1A1(,name,argp1,i,j,k,arga1) |
#define | MACP0A2(name, i, j, k, arga1, arga2) GENMACP0A2(,name,i,j,k,arga1,arga2) |
#define | MACP3A0(name, argp1, argp2, argp3, i, j, k) GENMACP3A0(,name,argp1,argp2,argp3,i,j,k) |
#define | MACP2A1(name, argp1, argp2, i, j, k, arga1) GENMACP2A1(,name,argp1,argp2,i,j,k,arga1) |
#define | MACP1A2(name, argp1, i, j, k, arga1, arga2) GENMACP1A2(,name,argp1,i,j,k,arga1,arga2) |
#define | MACP0A3(name, i, j, k, arga1, arga2, arga3) GENMACP0A3(,name,i,j,k,arga1,arga2,arga3) |
#define | MACP4A0(name, argp1, argp2, argp3, argp4, i, j, k) GENMACP4A0(,name,argp1,argp2,argp3,argp4,i,j,k) |
#define | MACP3A1(name, argp1, argp2, argp3, i, j, k, arga1) GENMACP3A1(,name,argp1,argp2,argp3,i,j,k,arga1) |
#define | MACP2A2(name, argp1, argp2, i, j, k, arga1, arga2) GENMACP2A2(,name,argp1,argp2,i,j,k,arga1,arga2) |
#define | MACP1A3(name, argp1, i, j, k, arga1, arga2, arga3) GENMACP1A3(,name,argp1,i,j,k,arga1,arga2,arga3) |
#define | MACP0A4(name, i, j, k, arga1, arga2, arga3, arga4) GENMACP0A4(,name,i,j,k,arga1,arga2,arga3,arga4) |
#define | PTRMAC(name, i, j, k) (*)[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
pointer shift header wrappers Originally just did, e.g., GLOBALPOINT(pglobal) = (FTYPE (*)[N2M][N3M][NPR]) (&(BASEPOINT(pglobal)[NSTOREBND1][NSTOREBND2][NSTOREBND3][0])); But this exposes the internal storage, so avoid, and easy to avoid Below is same structurly as above, but with name and the first index removed from resulting macro expansion, since that's how pointers are referenced in (e.g.) set_arrays_multidimen.c Force user to input name and all dimensions to structurly consistent with other related macros PTRMAC used for both shifting pointers and defining pointers (with different indicies) Note that we must use DEFDIM1,2,3 since different than STO in behavior when no CARTMINKMETRIC. More... | |
#define | PTRMACP0A0(name, i, j, k) PTRMAC(name,i,j,k) |
#define | PTRMACP1A0(name, argp1, i, j, k) (*)[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
#define | PTRMACP0A1(name, i, j, k, arga1) (*)[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
#define | PTRMACP2A0(name, argp1, argp2, i, j, k) (*)[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
#define | PTRMACP1A1(name, argp1, i, j, k, arga1) (*)[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
#define | PTRMACP0A2(name, i, j, k, arga1, arga2) (*)[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
#define | PTRMACP3A0(name, argp1, argp2, argp3, i, j, k) (*)[argp2][argp3][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
#define | PTRMACP2A1(name, argp1, argp2, i, j, k, arga1) (*)[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
#define | PTRMACP1A2(name, argp1, i, j, k, arga1, arga2) (*)[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
#define | PTRMACP0A3(name, i, j, k, arga1, arga2, arga3) (*)[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3] |
#define | PTRMACP4A0(name, argp1, argp2, argp3, argp4, i, j, k) (*)[argp2][argp3][argp4][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
#define | PTRMACP3A1(name, argp1, argp2, argp3, i, j, k, arga1) (*)[argp2][argp3][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
#define | PTRMACP2A2(name, argp1, argp2, i, j, k, arga1, arga2) (*)[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
#define | PTRMACP1A3(name, argp1, i, j, k, arga1, arga2, arga3) (*)[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3] |
#define | PTRMACP0A4(name, i, j, k, arga1, arga2, arga3, arga4) (*)[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3][arga4] |
#define | PTRDEFGLOBALMAC(name, i, j, k) (*GLOBALPOINT(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
Define pointers to multi-dimen arrays for global variables (used in superdefs.pointers.h) More... | |
#define | PTRDEFGLOBALMACP0A0(name, i, j, k) PTRDEFGLOBALMAC(name,i,j,k) |
#define | PTRDEFGLOBALMACP1A0(name, argp1, i, j, k) (*GLOBALPOINT(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
#define | PTRDEFGLOBALMACP0A1(name, i, j, k, arga1) (*GLOBALPOINT(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
#define | PTRDEFGLOBALMACP2A0(name, argp1, argp2, i, j, k) (*GLOBALPOINT(name))[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
#define | PTRDEFGLOBALMACP1A1(name, argp1, i, j, k, arga1) (*GLOBALPOINT(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
#define | PTRDEFGLOBALMACP0A2(name, i, j, k, arga1, arga2) (*GLOBALPOINT(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
#define | PTRDEFGLOBALMACP3A0(name, argp1, argp2, argp3, i, j, k) (*GLOBALPOINT(name))[argp2][argp3][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
#define | PTRDEFGLOBALMACP2A1(name, argp1, argp2, i, j, k, arga1) (*GLOBALPOINT(name))[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
#define | PTRDEFGLOBALMACP1A2(name, argp1, i, j, k, arga1, arga2) (*GLOBALPOINT(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
#define | PTRDEFGLOBALMACP0A3(name, i, j, k, arga1, arga2, arga3) (*GLOBALPOINT(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3] |
#define | PTRDEFGLOBALMACP4A0(name, argp1, argp2, argp3, argp4, i, j, k) (*GLOBALPOINT(name))[argp2][argp3][argp4][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
#define | PTRDEFGLOBALMACP3A1(name, argp1, argp2, argp3, i, j, k, arga1) (*GLOBALPOINT(name))[argp2][argp3][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
#define | PTRDEFGLOBALMACP2A2(name, argp1, argp2, i, j, k, arga1, arga2) (*GLOBALPOINT(name))[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
#define | PTRDEFGLOBALMACP1A3(name, argp1, i, j, k, arga1, arga2, arga3) (*GLOBALPOINT(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3] |
#define | PTRDEFGLOBALMACP0A4(name, i, j, k, arga1, arga2, arga3, arga4) (*GLOBALPOINT(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3][arga4] |
#define | PURENAME(name) GENPOINT(,name) |
Define pointers to multi-dimen arrays for non-global arrays (used in all other places except superdefs.pointers.h) More... | |
#define | PTRDEFMAC(name, i, j, k) (*PURENAME(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
#define | PTRDEFMACP0A0(name, i, j, k) PTRDEFMAC(name,i,j,k) |
#define | PTRDEFMACP1A0(name, argp1, i, j, k) (*PURENAME(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
#define | PTRDEFMACP0A1(name, i, j, k, arga1) (*PURENAME(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
#define | PTRDEFMACP2A0(name, argp1, argp2, i, j, k) (*PURENAME(name))[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
#define | PTRDEFMACP1A1(name, argp1, i, j, k, arga1) (*PURENAME(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
#define | PTRDEFMACP0A2(name, i, j, k, arga1, arga2) (*PURENAME(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
#define | PTRDEFMACP3A0(name, argp1, argp2, argp3, i, j, k) (*PURENAME(name))[argp2][argp3][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
#define | PTRDEFMACP2A1(name, argp1, argp2, i, j, k, arga1) (*PURENAME(name))[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
#define | PTRDEFMACP1A2(name, argp1, i, j, k, arga1, arga2) (*PURENAME(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
#define | PTRDEFMACP0A3(name, i, j, k, arga1, arga2, arga3) (*PURENAME(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3] |
#define | PTRDEFMACP4A0(name, argp1, argp2, argp3, argp4, i, j, k) (*PURENAME(name))[argp2][argp3][argp4][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
#define | PTRDEFMACP3A1(name, argp1, argp2, argp3, i, j, k, arga1) (*PURENAME(name))[argp2][argp3][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
#define | PTRDEFMACP2A2(name, argp1, argp2, i, j, k, arga1, arga2) (*PURENAME(name))[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
#define | PTRDEFMACP1A3(name, argp1, i, j, k, arga1, arga2, arga3) (*PURENAME(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3] |
#define | PTRDEFMACP0A4(name, i, j, k, arga1, arga2, arga3, arga4) (*PURENAME(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3][arga4] |
#define | GENMETMAC(prefix, name, i, j, k) prefix##name[STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)] |
METRIC VERSIONS (only written down if required): More... | |
#define | GLOBALMETMAC(name, i, j, k) GENMETMAC(a_s_,name,i,j,k) |
#define | METMAC(name, i, j, k) GENMETMAC(,name,i,j,k) |
#define | PTRMETMAC(name, i, j, k) (*)[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
#define | PTRDEFGLOBALMETMAC(name, i, j, k) (*GLOBALPOINT(name))[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
#define | PTRDEFMETMAC(name, i, j, k) (*PURENAME(name))[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
#define | GENMETMACP0A1(prefix, name, i, j, k, arga1) prefix##name[STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)][arga1] |
#define | GLOBALMETMACP0A1(name, i, j, k, arga1) GENMETMACP0A1(a_s_,name,i,j,k,arga1) |
#define | METMACP0A1(name, i, j, k, arga1) GENMETMACP0A1(,name,i,j,k,arga1) |
#define | PTRMETMACP0A1(name, i, j, k, arga1) (*)[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1] |
#define | PTRDEFGLOBALMETMACP0A1(name, i, j, k, arga1) (*GLOBALPOINT(name))[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1] |
#define | PTRDEFMETMACP0A1(name, i, j, k, arga1) (*PURENAME(name))[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1] |
#define | GENMETMACP1A0(prefix, name, argp1, i, j, k) prefix##name[argp1][STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)] |
#define | GLOBALMETMACP1A0(name, argp1, i, j, k) GENMETMACP1A0(a_s_,name,argp1,i,j,k) |
#define | METMACP1A0(name, argp1, i, j, k) GENMETMACP1A0(,name,argp1,i,j,k) |
#define | PTRMETMACP1A0(name, argp1, i, j, k) (*)[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
#define | PTRDEFGLOBALMETMACP1A0(name, argp1, i, j, k) (*GLOBALPOINT(name))[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
#define | PTRDEFMETMACP1A0(name, argp1, i, j, k) (*PURENAME(name))[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
#define | GENMETMACP1A1(prefix, name, argp1, i, j, k, arga1) prefix##name[argp1][STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)][arga1] |
#define | GLOBALMETMACP1A1(name, argp1, i, j, k, arga1) GENMETMACP1A1(a_s_,name,argp1,i,j,k,arga1) |
#define | METMACP1A1(name, argp1, i, j, k, arga1) GENMETMACP1A1(,name,argp1,i,j,k,arga1) |
#define | PTRMETMACP1A1(name, argp1, i, j, k, arga1) (*)[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1] |
#define | PTRDEFGLOBALMETMACP1A1(name, argp1, i, j, k, arga1) (*GLOBALPOINT(name))[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1] |
#define | PTRDEFMETMACP1A1(name, argp1, i, j, k, arga1) (*PURENAME(name))[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1] |
#define | GENMETMACP1A2(prefix, name, argp1, i, j, k, arga1, arga2) prefix##name[argp1][STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)][arga1][arga2] |
#define | GLOBALMETMACP1A2(name, argp1, i, j, k, arga1, arga2) GENMETMACP1A2(a_s_,name,argp1,i,j,k,arga1,arga2) |
#define | METMACP1A2(name, argp1, i, j, k, arga1, arga2) GENMETMACP1A2(,name,argp1,i,j,k,arga1,arga2) |
#define | PTRMETMACP1A2(name, argp1, i, j, k, arga1, arga2) (*)[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2] |
#define | PTRDEFGLOBALMETMACP1A2(name, argp1, i, j, k, arga1, arga2) (*GLOBALPOINT(name))[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2] |
#define | PTRDEFMETMACP1A2(name, argp1, i, j, k, arga1, arga2) (*PURENAME(name))[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2] |
#define | GENMETMACP2A0(prefix, name, argp1, argp2, i, j, k) prefix##name[argp1][argp2][STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)] |
P2A0. More... | |
#define | GLOBALMETMACP2A0(name, argp1, argp2, i, j, k) GENMETMACP2A0(a_s_,name,argp1,argp2,i,j,k) |
#define | METMACP2A0(name, argp1, argp2, i, j, k) GENMETMACP2A0(,name,argp1,argp2,i,j,k) |
#define | PTRMETMACP2A0(name, argp1, argp2, i, j, k) (*)[argp2][DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
#define | PTRDEFGLOBALMETMACP2A0(name, argp1, argp2, i, j, k) (*GLOBALPOINT(name))[argp2][DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
#define | PTRDEFMETMACP2A0(name, argp1, argp2, i, j, k) (*PURENAME(name))[argp2][DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
#define | GENMETMACP2A2(prefix, name, argp1, argp2, i, j, k, arga1, arga2) prefix##name[argp1][argp2][STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)][arga1][arga2] |
P2A2. More... | |
#define | GLOBALMETMACP2A2(name, argp1, argp2, i, j, k, arga1, arga2) GENMETMACP2A2(a_s_,name,argp1,argp2,i,j,k,arga1,arga2) |
#define | METMACP2A2(name, argp1, argp2, i, j, k, arga1, arga2) GENMETMACP2A2(,name,argp1,argp2,i,j,k,arga1,arga2) |
#define | PTRMETMACP2A2(name, argp1, argp2, i, j, k, arga1, arga2) (*)[argp2][DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2] |
#define | PTRDEFGLOBALMETMACP2A2(name, argp1, argp2, i, j, k, arga1, arga2) (*GLOBALPOINT(name))[argp2][DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2] |
#define | PTRDEFMETMACP2A2(name, argp1, argp2, i, j, k, arga1, arga2) (*PURENAME(name))[argp2][DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2] |
#define | GENMETMACP0A3(prefix, name, i, j, k, arga1, arga2, arga3) prefix##name[STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)][arga1][arga2][arga3] |
#define | GLOBALMETMACP0A3(name, i, j, k, arga1, arga2, arga3) GENMETMACP0A3(a_s_,name,i,j,k,arga1,arga2,arga3) |
#define | METMACP0A3(name, i, j, k, arga1, arga2, arga3) GENMETMACP0A3(,name,i,j,k,arga1,arga2,arga3) |
#define | PTRMETMACP0A3(name, i, j, k, arga1, arga2, arga3) (*)[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2][arga3] |
#define | PTRDEFGLOBALMETMACP0A3(name, i, j, k, arga1, arga2, arga3) (*GLOBALPOINT(name))[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2][arga3] |
#define | PTRDEFMETMACP0A3(name, i, j, k, arga1, arga2, arga3) (*PURENAME(name))[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2][arga3] |
macros and definitions related to storage mapping functions
////////////
Macrofication of storage for multi-dimensional arrays:
SUPERNOTE: To use old codes (e.g. inits) with this code, either convert them OR set ORDERSTORAGE==0 in definit.h and then the code is just like original in behavior even with macrofication.
This file contains the macrofication of storage accesses and definitions for multi-dimensional arrays That is, definition a[N1M][N2M][N3M] with access a[i][j][k] with code association r(i) theta(j) phi(k) restricts L1,L2 cache lines to along k-direction. Code assoation (e.g.) r(i) is well-defined through-out code and changes would entail changing user notions and code associations between dir==1 and i. Instead, macrofy only how storage arrays are defined and accessed so the user always puts in a(i,j,k), but the user can choose which index is fastest.
Anything that has to do with storing or accessing specific directions of spatial memory in multi-dimensional storage arrays should be here and considered here. That is: a[?][?][?] accesses or allocation: FTYPE a[?][?][?] or pointer definitions for those arrays: b=&(a[?][?][?])
SUPEROPTMARK: Clearly the best way to optimize for multi-core is to do ALL calculations for a single cell at once without ever storing anything. Then, one just starts with p at (say) +-MAXBND cells and fully determines new p. There will be MANY repeated calculations, but when memory is a bottleneck that's the way to go. Then use OpenMP or pthreads to parallelize over each position. Then only memory grabbing is p in multi-D and other very expensive things like the metric that would likely be too expensive to recompute for each index for p.
See kazfulleos.global.h for some non-spatial array macros for general EOS
Definition in file global.storage.h.
Definition at line 423 of file global.storage.h.
#define BASEMACP0A0 | ( | name, | |
i, | |||
j, | |||
k | |||
) | GENMACP0A0(a_,name,i,j,k) |
Definition at line 424 of file global.storage.h.
#define BASEMACP0A1 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMACP0A1(a_,name,i,j,k,arga1) |
Definition at line 427 of file global.storage.h.
#define BASEMACP0A2 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | GENMACP0A2(a_,name,i,j,k,arga1,arga2) |
Definition at line 431 of file global.storage.h.
#define BASEMACP0A3 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | GENMACP0A3(a_,name,i,j,k,arga1,arga2,arga3) |
Definition at line 436 of file global.storage.h.
#define BASEMACP0A4 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3, | |||
arga4 | |||
) | GENMACP0A4(a_,name,i,j,k,arga1,arga2,arga3,arga4) |
Definition at line 442 of file global.storage.h.
#define BASEMACP1A0 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k | |||
) | GENMACP1A0(a_,name,argp1,i,j,k) |
Definition at line 426 of file global.storage.h.
#define BASEMACP1A1 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMACP1A1(a_,name,argp1,i,j,k,arga1) |
Definition at line 430 of file global.storage.h.
#define BASEMACP1A2 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | GENMACP1A2(a_,name,argp1,i,j,k,arga1,arga2) |
Definition at line 435 of file global.storage.h.
#define BASEMACP1A3 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | GENMACP1A3(a_,name,argp1,i,j,k,arga1,arga2,arga3) |
Definition at line 441 of file global.storage.h.
#define BASEMACP2A0 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k | |||
) | GENMACP2A0(a_,name,argp1,argp2,i,j,k) |
Definition at line 429 of file global.storage.h.
#define BASEMACP2A1 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMACP2A1(a_,name,argp1,argp2,i,j,k,arga1) |
Definition at line 434 of file global.storage.h.
#define BASEMACP2A2 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | GENMACP2A2(a_,name,argp1,argp2,i,j,k,arga1,arga2) |
Definition at line 440 of file global.storage.h.
#define BASEMACP3A0 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k | |||
) | GENMACP3A0(a_,name,argp1,argp2,argp3,i,j,k) |
Definition at line 433 of file global.storage.h.
#define BASEMACP3A1 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMACP3A1(a_,name,argp1,argp2,argp3,i,j,k,arga1) |
Definition at line 439 of file global.storage.h.
#define BASEMACP4A0 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
argp4, | |||
i, | |||
j, | |||
k | |||
) | GENMACP4A0(a_,name,argp1,argp2,argp3,argp4,i,j,k) |
Definition at line 438 of file global.storage.h.
#define BASEPOINT | ( | name | ) | GENPOINT(a_,name) |
BASE (a_) wrappers // actual declarations for 3D memory arrays set in superdefs.h.
Definition at line 422 of file global.storage.h.
Definition at line 137 of file global.storage.h.
Definition at line 138 of file global.storage.h.
Definition at line 139 of file global.storage.h.
Definition at line 152 of file global.storage.h.
Definition at line 153 of file global.storage.h.
Definition at line 154 of file global.storage.h.
Definition at line 398 of file global.storage.h.
Definition at line 399 of file global.storage.h.
#define GENMACP0A1 | ( | prefix, | |
name, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | prefix##name[STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1] |
Definition at line 402 of file global.storage.h.
#define GENMACP0A2 | ( | prefix, | |
name, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | prefix##name[STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1][arga2] |
Definition at line 406 of file global.storage.h.
#define GENMACP0A3 | ( | prefix, | |
name, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | prefix##name[STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1][arga2][arga3] |
Definition at line 411 of file global.storage.h.
#define GENMACP0A4 | ( | prefix, | |
name, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3, | |||
arga4 | |||
) | prefix##name[STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1][arga2][arga3][arga4] |
Definition at line 417 of file global.storage.h.
#define GENMACP1A0 | ( | prefix, | |
name, | |||
argp1, | |||
i, | |||
j, | |||
k | |||
) | prefix##name[argp1][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)] |
Definition at line 401 of file global.storage.h.
#define GENMACP1A1 | ( | prefix, | |
name, | |||
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | prefix##name[argp1][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1] |
Definition at line 405 of file global.storage.h.
#define GENMACP1A2 | ( | prefix, | |
name, | |||
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | prefix##name[argp1][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1][arga2] |
Definition at line 410 of file global.storage.h.
#define GENMACP1A3 | ( | prefix, | |
name, | |||
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | prefix##name[argp1][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1][arga2][arga3] |
Definition at line 416 of file global.storage.h.
#define GENMACP2A0 | ( | prefix, | |
name, | |||
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k | |||
) | prefix##name[argp1][argp2][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)] |
Definition at line 404 of file global.storage.h.
#define GENMACP2A1 | ( | prefix, | |
name, | |||
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | prefix##name[argp1][argp2][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1] |
Definition at line 409 of file global.storage.h.
#define GENMACP2A2 | ( | prefix, | |
name, | |||
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | prefix##name[argp1][argp2][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1][arga2] |
Definition at line 415 of file global.storage.h.
#define GENMACP3A0 | ( | prefix, | |
name, | |||
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k | |||
) | prefix##name[argp1][argp2][argp3][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)] |
Definition at line 408 of file global.storage.h.
#define GENMACP3A1 | ( | prefix, | |
name, | |||
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | prefix##name[argp1][argp2][argp3][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)][arga1] |
Definition at line 414 of file global.storage.h.
#define GENMACP4A0 | ( | prefix, | |
name, | |||
argp1, | |||
argp2, | |||
argp3, | |||
argp4, | |||
i, | |||
j, | |||
k | |||
) | prefix##name[argp1][argp2][argp3][argp4][STO1(i,j,k)][STO2(i,j,k)][STO3(i,j,k)] |
Definition at line 413 of file global.storage.h.
#define GENMETMAC | ( | prefix, | |
name, | |||
i, | |||
j, | |||
k | |||
) | prefix##name[STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)] |
METRIC VERSIONS (only written down if required):
Definition at line 580 of file global.storage.h.
#define GENMETMACP0A1 | ( | prefix, | |
name, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | prefix##name[STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)][arga1] |
Definition at line 588 of file global.storage.h.
#define GENMETMACP0A3 | ( | prefix, | |
name, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | prefix##name[STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)][arga1][arga2][arga3] |
Definition at line 638 of file global.storage.h.
#define GENMETMACP1A0 | ( | prefix, | |
name, | |||
argp1, | |||
i, | |||
j, | |||
k | |||
) | prefix##name[argp1][STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)] |
Definition at line 596 of file global.storage.h.
#define GENMETMACP1A1 | ( | prefix, | |
name, | |||
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | prefix##name[argp1][STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)][arga1] |
Definition at line 604 of file global.storage.h.
#define GENMETMACP1A2 | ( | prefix, | |
name, | |||
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | prefix##name[argp1][STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)][arga1][arga2] |
Definition at line 612 of file global.storage.h.
#define GENMETMACP2A0 | ( | prefix, | |
name, | |||
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k | |||
) | prefix##name[argp1][argp2][STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)] |
P2A0.
Definition at line 621 of file global.storage.h.
#define GENMETMACP2A2 | ( | prefix, | |
name, | |||
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | prefix##name[argp1][argp2][STOMET1(i,j,k)][STOMET2(i,j,k)][STOMET3(i,j,k)][arga1][arga2] |
P2A2.
Definition at line 630 of file global.storage.h.
#define GENPOINT | ( | prefix, | |
name | |||
) | prefix##name |
below doesn't work since #define can't refer to other #'s define OPENMPLOOPGEN(is,ie,js,je,ks,ke,VARPRIVATE,EXTRAFOR) OPENMP3DLOOPVARSDEFINE; OPENMP3DLOOPSETUP(is,ie,js,je,ks,ke); \ pragma omp parallel private(VARPRIVATE) OPENMPGLOBALPRIVATEFULL \ { \ pragma omp for schedule(OPENMPSCHEDULE,OPENMPCHUNKSIZE(blocksize)) EXTRAFOR \ OPENMP3DLOOPBLOCK{ \ OPENMP3DLOPBLOCK2IJK(i,j,k);
Seems I caught everything, but not tested. if(MCOORD==CARTMINKMETRIC) error Not setup yet for CARTMINKMETRIC, need to define macros below for metric accesses so uses MET versions of above so correct access (i.e. i=j=k=0 for metric type stuff). Then ensure those vars (global or not) are everywhere accessed and defined with such macros, including their pointers endif
Define Macros for dealing with global spatial pointersSee docs regarding # and ## use in C macros as processed by preprocessor: http://gcc.gnu.org/onlinedocs/cpp/Concatenation.html#Concatenation Didn't see how to macrofy a_ and a_s_ so they aren't repeated, but not a big deal since still those defined only here MACP?A? corresponds to P? number of prior array indices and A? to number of after indices generic macros for a_ or a_s_ prefixes corresponding, respectively, to base or shifted pointers
Definition at line 397 of file global.storage.h.
Definition at line 450 of file global.storage.h.
#define GLOBALMACP0A0 | ( | name, | |
i, | |||
j, | |||
k | |||
) | GENMACP0A0(a_s_,name,i,j,k) |
Definition at line 451 of file global.storage.h.
#define GLOBALMACP0A2 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | GENMACP0A2(a_s_,name,i,j,k,arga1,arga2) |
Definition at line 458 of file global.storage.h.
#define GLOBALMACP0A3 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | GENMACP0A3(a_s_,name,i,j,k,arga1,arga2,arga3) |
Definition at line 463 of file global.storage.h.
#define GLOBALMACP0A4 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3, | |||
arga4 | |||
) | GENMACP0A4(a_s_,name,i,j,k,arga1,arga2,arga3,arga4) |
Definition at line 469 of file global.storage.h.
#define GLOBALMACP1A1 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMACP1A1(a_s_,name,argp1,i,j,k,arga1) |
Definition at line 457 of file global.storage.h.
#define GLOBALMACP1A2 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | GENMACP1A2(a_s_,name,argp1,i,j,k,arga1,arga2) |
Definition at line 462 of file global.storage.h.
#define GLOBALMACP1A3 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | GENMACP1A3(a_s_,name,argp1,i,j,k,arga1,arga2,arga3) |
Definition at line 468 of file global.storage.h.
#define GLOBALMACP2A0 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k | |||
) | GENMACP2A0(a_s_,name,argp1,argp2,i,j,k) |
Definition at line 456 of file global.storage.h.
#define GLOBALMACP2A1 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMACP2A1(a_s_,name,argp1,argp2,i,j,k,arga1) |
Definition at line 461 of file global.storage.h.
#define GLOBALMACP2A2 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | GENMACP2A2(a_s_,name,argp1,argp2,i,j,k,arga1,arga2) |
Definition at line 467 of file global.storage.h.
#define GLOBALMACP3A0 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k | |||
) | GENMACP3A0(a_s_,name,argp1,argp2,argp3,i,j,k) |
Definition at line 460 of file global.storage.h.
#define GLOBALMACP3A1 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMACP3A1(a_s_,name,argp1,argp2,argp3,i,j,k,arga1) |
Definition at line 466 of file global.storage.h.
#define GLOBALMACP4A0 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
argp4, | |||
i, | |||
j, | |||
k | |||
) | GENMACP4A0(a_s_,name,argp1,argp2,argp3,argp4,i,j,k) |
Definition at line 465 of file global.storage.h.
Definition at line 582 of file global.storage.h.
#define GLOBALMETMACP0A1 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMETMACP0A1(a_s_,name,i,j,k,arga1) |
Definition at line 590 of file global.storage.h.
#define GLOBALMETMACP0A3 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | GENMETMACP0A3(a_s_,name,i,j,k,arga1,arga2,arga3) |
Definition at line 640 of file global.storage.h.
#define GLOBALMETMACP1A0 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k | |||
) | GENMETMACP1A0(a_s_,name,argp1,i,j,k) |
Definition at line 598 of file global.storage.h.
#define GLOBALMETMACP1A1 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMETMACP1A1(a_s_,name,argp1,i,j,k,arga1) |
Definition at line 606 of file global.storage.h.
#define GLOBALMETMACP1A2 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | GENMETMACP1A2(a_s_,name,argp1,i,j,k,arga1,arga2) |
Definition at line 614 of file global.storage.h.
#define GLOBALMETMACP2A0 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k | |||
) | GENMETMACP2A0(a_s_,name,argp1,argp2,i,j,k) |
Definition at line 623 of file global.storage.h.
#define GLOBALMETMACP2A2 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | GENMETMACP2A2(a_s_,name,argp1,argp2,i,j,k,arga1,arga2) |
Definition at line 632 of file global.storage.h.
#define GLOBALPOINT | ( | name | ) | GENPOINT(a_s_,name) |
shifted pointer (a_s_) wrappers Couldn't figure out how to macrofy a_s_ or a_, so when changing have to change all manually If want no header on global array, then just leave as (,name,...) instead of (a_s_,name,...)
Definition at line 449 of file global.storage.h.
Definition at line 130 of file global.storage.h.
Definition at line 131 of file global.storage.h.
Definition at line 132 of file global.storage.h.
#define MACP0A0 | ( | name, | |
i, | |||
j, | |||
k | |||
) | GENMACP0A0(,name,i,j,k) |
Definition at line 476 of file global.storage.h.
#define MACP0A1 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMACP0A1(,name,i,j,k,arga1) |
Definition at line 479 of file global.storage.h.
#define MACP0A2 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | GENMACP0A2(,name,i,j,k,arga1,arga2) |
Definition at line 483 of file global.storage.h.
#define MACP0A3 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | GENMACP0A3(,name,i,j,k,arga1,arga2,arga3) |
Definition at line 488 of file global.storage.h.
#define MACP0A4 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3, | |||
arga4 | |||
) | GENMACP0A4(,name,i,j,k,arga1,arga2,arga3,arga4) |
Definition at line 494 of file global.storage.h.
#define MACP1A0 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k | |||
) | GENMACP1A0(,name,argp1,i,j,k) |
Definition at line 478 of file global.storage.h.
#define MACP1A1 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMACP1A1(,name,argp1,i,j,k,arga1) |
Definition at line 482 of file global.storage.h.
#define MACP1A2 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | GENMACP1A2(,name,argp1,i,j,k,arga1,arga2) |
Definition at line 487 of file global.storage.h.
#define MACP1A3 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | GENMACP1A3(,name,argp1,i,j,k,arga1,arga2,arga3) |
Definition at line 493 of file global.storage.h.
#define MACP2A0 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k | |||
) | GENMACP2A0(,name,argp1,argp2,i,j,k) |
Definition at line 481 of file global.storage.h.
#define MACP2A1 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMACP2A1(,name,argp1,argp2,i,j,k,arga1) |
Definition at line 486 of file global.storage.h.
#define MACP2A2 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | GENMACP2A2(,name,argp1,argp2,i,j,k,arga1,arga2) |
Definition at line 492 of file global.storage.h.
#define MACP3A0 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k | |||
) | GENMACP3A0(,name,argp1,argp2,argp3,i,j,k) |
Definition at line 485 of file global.storage.h.
#define MACP3A1 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMACP3A1(,name,argp1,argp2,argp3,i,j,k,arga1) |
Definition at line 491 of file global.storage.h.
#define MACP4A0 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
argp4, | |||
i, | |||
j, | |||
k | |||
) | GENMACP4A0(,name,argp1,argp2,argp3,argp4,i,j,k) |
Definition at line 490 of file global.storage.h.
surface areas of sides WITH boundary zones reduces to 0 if that dimension not used
Definition at line 52 of file global.storage.h.
Definition at line 53 of file global.storage.h.
Definition at line 54 of file global.storage.h.
Definition at line 583 of file global.storage.h.
#define METMACP0A1 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMETMACP0A1(,name,i,j,k,arga1) |
Definition at line 591 of file global.storage.h.
#define METMACP0A3 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | GENMETMACP0A3(,name,i,j,k,arga1,arga2,arga3) |
Definition at line 641 of file global.storage.h.
#define METMACP1A0 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k | |||
) | GENMETMACP1A0(,name,argp1,i,j,k) |
Definition at line 599 of file global.storage.h.
#define METMACP1A1 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | GENMETMACP1A1(,name,argp1,i,j,k,arga1) |
Definition at line 607 of file global.storage.h.
#define METMACP1A2 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | GENMETMACP1A2(,name,argp1,i,j,k,arga1,arga2) |
Definition at line 615 of file global.storage.h.
#define METMACP2A0 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k | |||
) | GENMETMACP2A0(,name,argp1,argp2,i,j,k) |
Definition at line 624 of file global.storage.h.
#define METMACP2A2 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | GENMETMACP2A2(,name,argp1,argp2,i,j,k,arga1,arga2) |
Definition at line 633 of file global.storage.h.
Define N1M, N2M, N3M and other spatial storage related items.
allocated memory uses this for active zones 0-N1-1 and bc beyond that
Definition at line 40 of file global.storage.h.
Definition at line 41 of file global.storage.h.
Definition at line 42 of file global.storage.h.
NBIGM is bigger of N1M and N2M and N3M not currently used.
Definition at line 47 of file global.storage.h.
maximal surface of boundary exchange notice that this works in any number of dimensions and any N1,N2,N3 that is, it reduces correctly when a dimension is degenerate (N=1)
Definition at line 59 of file global.storage.h.
Definition at line 60 of file global.storage.h.
#define NSTORE1 N1M |
123
Definition at line 121 of file global.storage.h.
#define NSTORE2 N2M |
Definition at line 122 of file global.storage.h.
#define NSTORE3 N3M |
Definition at line 123 of file global.storage.h.
#define NSTOREBND1 N1BND |
Definition at line 124 of file global.storage.h.
#define NSTOREBND2 N2BND |
Definition at line 125 of file global.storage.h.
#define NSTOREBND3 N3BND |
Definition at line 126 of file global.storage.h.
#define OPENMP3DLOOPBLOCK2IJK | ( | i, | |
j, | |||
k | |||
) | OPENMP3DLOOPBLOCK2IJKSTORAGE0(i,j,k) |
Definition at line 157 of file global.storage.h.
ORDERSTORAGE : N1M=NSTORE?, N2M=NSTORE?, N3M=NSTORE? 0 : 1 2 3 // standard (original) order 1 : 2 3 1 2 : 3 1 2 3 : 1 3 2 4 : 2 1 3 5 : 3 2 1.
ORDERSTORAGE==5 is most efficient order for grid extended in radius, less so in , and even less so in #define ORDERSTORAGE 0 // set in definit.h or init.h here, N1M,N2M,N3M = (r,theta,phi) always for SPC (i,j,k) = (r,theta,) always for SPC But arrays accessed via array[IND1(i,j,k)][IND2(i,j,k)][IND3(i,j,k)] ALL non-array references to i,j,k stay the same. Only array accesses have changed. Also change LOOP order (e.g. ORDERSTORAGE==5 : LOOPF -> LOOPF3 LOOPF2 LOOPF1) This way (e.g.) coord(i,j,k) and all other such non-array accesses are the same, so little abstract code changes. Only end up changing how arrays are accessed Note that unlike Sasha's mixing of the 1,2,3 directions, this doesn't change (e.g.) r(i) (j) and (k) association. It only changes how arrays are accessed! So this doesn't test how different directions are handled in the code. Note that we change the left-hand-side order not the right-hand-side order that should always be 1,2,3 or i,j,k
Definition at line 88 of file global.storage.h.
Definition at line 93 of file global.storage.h.
Definition at line 98 of file global.storage.h.
Definition at line 103 of file global.storage.h.
Definition at line 108 of file global.storage.h.
Definition at line 113 of file global.storage.h.
#define POINT | ( | name | ) | GENPOINT(,name) |
Access to any non-global pointer (not a_s_): note that ok to have nothing as prefix, but macro using prefix##name assumes prefix is defined even inputted as nothing.
Definition at line 474 of file global.storage.h.
Define pointers to multi-dimen arrays for global variables (used in superdefs.pointers.h)
Definition at line 529 of file global.storage.h.
#define PTRDEFGLOBALMACP0A0 | ( | name, | |
i, | |||
j, | |||
k | |||
) | PTRDEFGLOBALMAC(name,i,j,k) |
Definition at line 530 of file global.storage.h.
#define PTRDEFGLOBALMACP0A1 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*GLOBALPOINT(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
Definition at line 533 of file global.storage.h.
#define PTRDEFGLOBALMACP0A2 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*GLOBALPOINT(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
Definition at line 537 of file global.storage.h.
#define PTRDEFGLOBALMACP0A3 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | (*GLOBALPOINT(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3] |
Definition at line 542 of file global.storage.h.
#define PTRDEFGLOBALMACP0A4 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3, | |||
arga4 | |||
) | (*GLOBALPOINT(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3][arga4] |
Definition at line 548 of file global.storage.h.
#define PTRDEFGLOBALMACP1A0 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k | |||
) | (*GLOBALPOINT(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
Definition at line 532 of file global.storage.h.
#define PTRDEFGLOBALMACP1A1 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*GLOBALPOINT(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
Definition at line 536 of file global.storage.h.
#define PTRDEFGLOBALMACP1A2 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*GLOBALPOINT(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
Definition at line 541 of file global.storage.h.
#define PTRDEFGLOBALMACP1A3 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | (*GLOBALPOINT(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3] |
Definition at line 547 of file global.storage.h.
#define PTRDEFGLOBALMACP2A0 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k | |||
) | (*GLOBALPOINT(name))[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
Definition at line 535 of file global.storage.h.
#define PTRDEFGLOBALMACP2A1 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*GLOBALPOINT(name))[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
Definition at line 540 of file global.storage.h.
#define PTRDEFGLOBALMACP2A2 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*GLOBALPOINT(name))[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
Definition at line 546 of file global.storage.h.
#define PTRDEFGLOBALMACP3A0 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k | |||
) | (*GLOBALPOINT(name))[argp2][argp3][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
Definition at line 539 of file global.storage.h.
#define PTRDEFGLOBALMACP3A1 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*GLOBALPOINT(name))[argp2][argp3][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
Definition at line 545 of file global.storage.h.
#define PTRDEFGLOBALMACP4A0 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
argp4, | |||
i, | |||
j, | |||
k | |||
) | (*GLOBALPOINT(name))[argp2][argp3][argp4][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
Definition at line 544 of file global.storage.h.
#define PTRDEFGLOBALMETMAC | ( | name, | |
i, | |||
j, | |||
k | |||
) | (*GLOBALPOINT(name))[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
Definition at line 585 of file global.storage.h.
#define PTRDEFGLOBALMETMACP0A1 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*GLOBALPOINT(name))[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1] |
Definition at line 593 of file global.storage.h.
#define PTRDEFGLOBALMETMACP0A3 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | (*GLOBALPOINT(name))[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2][arga3] |
Definition at line 643 of file global.storage.h.
#define PTRDEFGLOBALMETMACP1A0 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k | |||
) | (*GLOBALPOINT(name))[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
Definition at line 601 of file global.storage.h.
#define PTRDEFGLOBALMETMACP1A1 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*GLOBALPOINT(name))[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1] |
Definition at line 609 of file global.storage.h.
#define PTRDEFGLOBALMETMACP1A2 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*GLOBALPOINT(name))[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2] |
Definition at line 617 of file global.storage.h.
#define PTRDEFGLOBALMETMACP2A0 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k | |||
) | (*GLOBALPOINT(name))[argp2][DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
Definition at line 626 of file global.storage.h.
#define PTRDEFGLOBALMETMACP2A2 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*GLOBALPOINT(name))[argp2][DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2] |
Definition at line 635 of file global.storage.h.
Definition at line 554 of file global.storage.h.
Definition at line 555 of file global.storage.h.
#define PTRDEFMACP0A1 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*PURENAME(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
Definition at line 558 of file global.storage.h.
#define PTRDEFMACP0A2 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*PURENAME(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
Definition at line 562 of file global.storage.h.
#define PTRDEFMACP0A3 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | (*PURENAME(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3] |
Definition at line 567 of file global.storage.h.
#define PTRDEFMACP0A4 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3, | |||
arga4 | |||
) | (*PURENAME(name))[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3][arga4] |
Definition at line 573 of file global.storage.h.
#define PTRDEFMACP1A0 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k | |||
) | (*PURENAME(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
Definition at line 557 of file global.storage.h.
#define PTRDEFMACP1A1 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*PURENAME(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
Definition at line 561 of file global.storage.h.
#define PTRDEFMACP1A2 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*PURENAME(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
Definition at line 566 of file global.storage.h.
#define PTRDEFMACP1A3 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | (*PURENAME(name))[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3] |
Definition at line 572 of file global.storage.h.
#define PTRDEFMACP2A0 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k | |||
) | (*PURENAME(name))[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
Definition at line 560 of file global.storage.h.
#define PTRDEFMACP2A1 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*PURENAME(name))[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
Definition at line 565 of file global.storage.h.
#define PTRDEFMACP2A2 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*PURENAME(name))[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
Definition at line 571 of file global.storage.h.
#define PTRDEFMACP3A0 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k | |||
) | (*PURENAME(name))[argp2][argp3][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
Definition at line 564 of file global.storage.h.
#define PTRDEFMACP3A1 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*PURENAME(name))[argp2][argp3][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
Definition at line 570 of file global.storage.h.
#define PTRDEFMACP4A0 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
argp4, | |||
i, | |||
j, | |||
k | |||
) | (*PURENAME(name))[argp2][argp3][argp4][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
Definition at line 569 of file global.storage.h.
#define PTRDEFMETMAC | ( | name, | |
i, | |||
j, | |||
k | |||
) | (*PURENAME(name))[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
Definition at line 586 of file global.storage.h.
#define PTRDEFMETMACP0A1 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*PURENAME(name))[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1] |
Definition at line 594 of file global.storage.h.
#define PTRDEFMETMACP0A3 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | (*PURENAME(name))[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2][arga3] |
Definition at line 644 of file global.storage.h.
#define PTRDEFMETMACP1A0 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k | |||
) | (*PURENAME(name))[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
Definition at line 602 of file global.storage.h.
#define PTRDEFMETMACP1A1 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*PURENAME(name))[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1] |
Definition at line 610 of file global.storage.h.
#define PTRDEFMETMACP1A2 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*PURENAME(name))[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2] |
Definition at line 618 of file global.storage.h.
#define PTRDEFMETMACP2A0 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k | |||
) | (*PURENAME(name))[argp2][DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
Definition at line 627 of file global.storage.h.
#define PTRDEFMETMACP2A2 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*PURENAME(name))[argp2][DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2] |
Definition at line 636 of file global.storage.h.
pointer shift header wrappers Originally just did, e.g., GLOBALPOINT(pglobal) = (FTYPE (*)[N2M][N3M][NPR]) (&(BASEPOINT(pglobal)[NSTOREBND1][NSTOREBND2][NSTOREBND3][0])); But this exposes the internal storage, so avoid, and easy to avoid Below is same structurly as above, but with name and the first index removed from resulting macro expansion, since that's how pointers are referenced in (e.g.) set_arrays_multidimen.c Force user to input name and all dimensions to structurly consistent with other related macros PTRMAC used for both shifting pointers and defining pointers (with different indicies) Note that we must use DEFDIM1,2,3 since different than STO in behavior when no CARTMINKMETRIC.
When [DEFDIM1(i,j,k)] does not appear, that could be any i,j,k so that's correct. Note we remove (always) first term of array to create its pointer reference
Definition at line 505 of file global.storage.h.
Definition at line 506 of file global.storage.h.
Definition at line 509 of file global.storage.h.
#define PTRMACP0A2 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*)[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
Definition at line 513 of file global.storage.h.
#define PTRMACP0A3 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | (*)[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3] |
Definition at line 518 of file global.storage.h.
#define PTRMACP0A4 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3, | |||
arga4 | |||
) | (*)[DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3][arga4] |
Definition at line 524 of file global.storage.h.
Definition at line 508 of file global.storage.h.
#define PTRMACP1A1 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*)[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
Definition at line 512 of file global.storage.h.
#define PTRMACP1A2 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*)[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
Definition at line 517 of file global.storage.h.
#define PTRMACP1A3 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | (*)[DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2][arga3] |
Definition at line 523 of file global.storage.h.
#define PTRMACP2A0 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k | |||
) | (*)[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
Definition at line 511 of file global.storage.h.
#define PTRMACP2A1 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*)[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
Definition at line 516 of file global.storage.h.
#define PTRMACP2A2 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*)[argp2][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1][arga2] |
Definition at line 522 of file global.storage.h.
#define PTRMACP3A0 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k | |||
) | (*)[argp2][argp3][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
Definition at line 515 of file global.storage.h.
#define PTRMACP3A1 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*)[argp2][argp3][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)][arga1] |
Definition at line 521 of file global.storage.h.
#define PTRMACP4A0 | ( | name, | |
argp1, | |||
argp2, | |||
argp3, | |||
argp4, | |||
i, | |||
j, | |||
k | |||
) | (*)[argp2][argp3][argp4][DEFDIM1(i,j,k)][DEFDIM2(i,j,k)][DEFDIM3(i,j,k)] |
Definition at line 520 of file global.storage.h.
#define PTRMETMAC | ( | name, | |
i, | |||
j, | |||
k | |||
) | (*)[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
Definition at line 584 of file global.storage.h.
#define PTRMETMACP0A1 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*)[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1] |
Definition at line 592 of file global.storage.h.
#define PTRMETMACP0A3 | ( | name, | |
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2, | |||
arga3 | |||
) | (*)[DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2][arga3] |
Definition at line 642 of file global.storage.h.
#define PTRMETMACP1A0 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k | |||
) | (*)[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
Definition at line 600 of file global.storage.h.
#define PTRMETMACP1A1 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1 | |||
) | (*)[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1] |
Definition at line 608 of file global.storage.h.
#define PTRMETMACP1A2 | ( | name, | |
argp1, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*)[DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2] |
Definition at line 616 of file global.storage.h.
#define PTRMETMACP2A0 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k | |||
) | (*)[argp2][DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)] |
Definition at line 625 of file global.storage.h.
#define PTRMETMACP2A2 | ( | name, | |
argp1, | |||
argp2, | |||
i, | |||
j, | |||
k, | |||
arga1, | |||
arga2 | |||
) | (*)[argp2][DEFDIMMET1(i,j,k)][DEFDIMMET2(i,j,k)][DEFDIMMET3(i,j,k)][arga1][arga2] |
Definition at line 634 of file global.storage.h.
#define PURENAME | ( | name | ) | GENPOINT(,name) |
Define pointers to multi-dimen arrays for non-global arrays (used in all other places except superdefs.pointers.h)
Definition at line 553 of file global.storage.h.
#define SHIFTSTORE1 SHIFT1 |
Definition at line 127 of file global.storage.h.
#define SHIFTSTORE2 SHIFT2 |
Definition at line 128 of file global.storage.h.
#define SHIFTSTORE3 SHIFT3 |
Definition at line 129 of file global.storage.h.
Definition at line 134 of file global.storage.h.
Definition at line 135 of file global.storage.h.
Definition at line 136 of file global.storage.h.
Definition at line 149 of file global.storage.h.
Definition at line 150 of file global.storage.h.
Definition at line 151 of file global.storage.h.