51 kernels::idx4 id_xyzn(basisSize, basisSize, basisSize, Dimensions);
53 double min_dist_limit =
topography_limits_min[idx2(cell_j, cell_i)] - x[id_xyzn(0, basisSize - 1, 0, 1)];
55 std::fill_n(alpha, 0.0, basisSize * basisSize * basisSize);
61 std::fill_n(alpha, 0.0, basisSize * basisSize * basisSize);
66 for (
int node_z = 0; node_z < basisSize; node_z++) {
67 for (
int node_x = 0; node_x < basisSize; node_x++) {
68 topo_y[idy(i, node_z, j, node_x)];
82 for (
int i = 0; i <
_nx; i++) {
83 for (
int node = 0; node < basisSize; node++) {
92 for (
int i = 0; i <
_nz; i++) {
93 for (
int node = 0; node < basisSize; node++) {
103 for (
int j = 0; j <
_nz; j++) {
104 for (
int i = 0; i <
_nx; i++) {
105 double min = std::numeric_limits<double>::max();
106 double max = -std::numeric_limits<double>::max();
107 for (
int node_z = 0; node_z < basisSize; node_z++) {
108 for (
int node_x = 0; node_x < basisSize; node_x++) {
109 min = std::min(min, y[idy(j, node_z, i, node_x)]);
110 max = std::max(max, y[idy(j, node_z, i, node_x)]);
119 double grad_x[basisSize];
120 for (
int j = 0; j <
_nz; j++) {
121 for (
int i = 0; i <
_nx; i++) {
123 double grad_x[basisSize * basisSize];
124 double grad_z[basisSize * basisSize];
126 for (
int node_z = 0; node_z < basisSize; node_z++) {
127 for (
int node_x = 0; node_x < basisSize; node_x++) {
128 for (
int n = 0; n < basisSize; n++) {
131 )] += kernels::legendre::dudx[num_nodes - 1][node_x][n] *
topo_y[idy(j, node_z, i, n)];
134 )] += kernels::legendre::dudx[num_nodes - 1][node_z][n] *
topo_y[idy(j, n, i, node_x)];