6 template<
int numDim,
size_t numX>
9 double scale[] = {numX};
12 double xRange = xMax - xMin;
13 std::vector<double> dX(numDim,0.0);
14 for(
int iDim = 0;iDim < numDim;iDim++){
15 dX[iDim] = xRange/(scale[iDim]-1.0);
16 xyz[iDim] = ijk[iDim]*dX[iDim] + xMin;
21 template<
int numDim,
size_t numX,
size_t numY>
24 double scale[] = {numX,numY};
27 double xRange = xMax - xMin;
28 std::vector<double> dX(numDim,0.0);
29 for(
int iDim = 0;iDim < numDim;iDim++){
30 dX[iDim] = xRange/(scale[iDim]-1.0);
31 xyz[iDim] = ijk[iDim]*dX[iDim] + xMin;
36 template<
int numDim,
size_t numX,
size_t numY,
size_t numZ>
39 double scale[] = {numX,numY,numZ};
42 double xRange = xMax - xMin;
43 std::vector<double> dX(numDim,0.0);
44 for(
int iDim = 0;iDim < numDim;iDim++){
45 dX[iDim] = xRange/(scale[iDim]-1.0);
46 xyz[iDim] = ijk[iDim]*dX[iDim] + xMin;
51 template<
int numDim,
size_t numX,
size_t numY,
size_t numZ>
54 double iVar = ((double)(ijk[0]+1)/(double(numX)));
55 xyz[0] = std::pow(iVar,2.0);
56 iVar = ((double)(ijk[1]+1)/(double(numY)));
57 xyz[1] = 2.0*std::pow(iVar,2.0);
58 iVar = ((double)(ijk[2]+1)/(double(numZ)));
59 xyz[2] = 3.0*std::pow(iVar,2.0);
63 template<
int numDim,
size_t numX,
size_t numY>
66 double iVar = ((double)(ijk[0]+1)/(double(numX)));
67 xyz[0] = std::pow(iVar,2.0);
68 iVar = ((double)(ijk[1]+1)/(double(numY)));
69 xyz[1] = 2.0*std::pow(iVar,2.0);
73 template<
int numDim,
size_t numX>
76 double iVar = ((double)(ijk[0]+1)/(double(numX)));
77 xyz[0] = std::pow(iVar,2.0);
82 template<
size_t numX,
size_t numY,
size_t numZ,
int nWave>
83 int VGWavy(
const std::vector<size_t> &ijk,std::vector<double> &xyz)
92 double pi = 3.141592653589793238;
94 double pixWave = pi*nWave;
95 double dX = lX/(numX);
96 double dY = lY/(numY);
97 double dZ = lZ/(numZ);
99 xyz[0] = -lX/2.0 + dX*(ijk[0]+aX*std::sin(pixWave*ijk[1]*dY/lY)*
100 std::sin(pixWave*ijk[2]*dZ/lZ));
102 xyz[1] = -lY/2.0 + dY*(ijk[1]+aY*std::sin(pixWave*ijk[0]*dX/lX)*
103 std::sin(pixWave*ijk[2]*dZ/lZ));
105 xyz[2] = -lZ/2.0 + dZ*(ijk[2]+aZ*std::sin(pixWave*ijk[0]*dX/lX)*
106 std::sin(pixWave*ijk[1]*dY/lY));
111 template<
int numDim,
size_t numX,
size_t numY>
117 double dr = (rmax - r0)/(
double(numX-1));
118 double d0 = (2.0*M_PI)/(
double(numY));
119 double r = r0 + ijk[0]*dr;
120 double a0 = ijk[1]*d0;
123 xyz[0] = r*std::cos(a0);
124 xyz[1] = r*std::sin(a0);
130 const std::vector<double> &inParameters,
132 const std::vector<size_t> &ij,
133 std::vector<double> &xy)
135 double r0 = inParameters[0];
136 double rmax = inParameters[1];
137 double dr = (rmax - r0)/(
double(gridSizes[0]-1));
138 double d0 = (2.0*M_PI)/(
double(gridSizes[1]));
139 double r = r0 + ij[0]*dr;
140 double a0 = ij[1]*d0;
142 xy[0] = r*std::cos(a0);
143 xy[1] = r*std::sin(a0);
148 template<
int numDim,
size_t numX,
size_t numY,
size_t numZ>
155 double dr = (rmax - r0)/(
double(numX-1));
156 double d0 = (2.0*M_PI)/(
double(numY));
157 double dp = (2.0*M_PI)/(
double(numZ));
158 double r = r0 + ijk[0]*dr;
159 double a0 = ijk[1]*d0;
162 double phi = ijk[2]*dp;
163 xyz[0] = (rt + r*std::cos(a0))*std::sin(phi);
164 xyz[1] = (rt + r*std::cos(a0))*std::cos(phi);
165 xyz[2] = r*std::sin(a0);
170 template<
int numDim,
size_t numX,
size_t numY>
175 double I = (ijk[0] + 1)/numX;
176 double J = (ijk[1] + 1)/numY;
180 xyz[1] = 2.0*J*J + I;
181 }
else if (numDim == 3){
182 double K = ijk[2] + 1;
183 xyz[0] = I*I + 2.0*J*J + K;
184 xyz[1] = J*J + 2.0*K*K + I;
185 xyz[2] = 2.0*I*I + 3.0*K*K + J;
int VGWavy(const std::vector< size_t > &ijk, std::vector< double > &xyz)
Eqn (24) from Visbal & Gaitonde.
void const size_t const size_t * gridSizes
int CurvilinearGrid2(const std::vector< size_t > &ijk, std::vector< double > &xyz)
int GenerateRegularGrid(std::vector< size_t > &ijk, std::vector< double > &xyz)
int Cylinder2D(const std::vector< int > &inOptions, const std::vector< double > &inParameters, const std::vector< size_t > &gridSizes, const std::vector< size_t > &ij, std::vector< double > &xy)
int RectilinearGrid1(const std::vector< size_t > &ijk, std::vector< double > &xyz)
int CurvilinearGrid1(const std::vector< size_t > &ijk, std::vector< double > &xyz)