Home
last modified time | relevance | path

Searched full:k (Results 1 – 25 of 166) sorted by relevance

1234567

/libCEED/tests/
H A Dt305-basis.c14 CeedScalar M[p * p], K[p * p], X[p * p], lambda[p]; in main() local
28 for (int k = 0; k < q; k++) { in main() local
29 sum_m += interpolation[p * k + i] * quadrature_weights[k] * interpolation[p * k + j]; in main()
30 sum_k += gradient[p * k + i] * quadrature_weights[k] * gradient[p * k + j]; in main()
33 K[p * i + j] = sum_k; in main()
37 CeedSimultaneousDiagonalization(ceed, K, M, X, lambda, p); in main()
44 for (int k = 0; k < p; k++) sum += M[p * i + k] * X[p * k + j]; in main() local
51 for (int k = 0; k < p; k++) sum += X[p * k + i] * work_array[p * k + j]; in main() local
65 // Check X^T K X = Lambda in main()
69 for (int k = 0; k < p; k++) sum += K[p * i + k] * X[p * k + j]; in main() local
[all …]
H A Dt583-operator.c54 for (CeedInt k = 0; k < p; k++) { in main() local
55 ind_x[p * (p * i + k) + j] = offset + k * (n_x * 2 + 1) + j; in main()
56 orients_u[p * (p * i + k) + j] = false; in main()
57 curl_orients_u[3 * (p * (p * i + k) + j) + 0] = 0; in main()
58 curl_orients_u[3 * (p * (p * i + k) + j) + 1] = 1; in main()
59 curl_orients_u[3 * (p * (p * i + k) + j) + 2] = 0; in main()
118 for (CeedInt k = 0; k < num_dofs * num_dofs; ++k) { in main() local
119 assembled_values[k] = 0.0; in main()
120 assembled_values_oriented[k] = 0.0; in main()
121 assembled_values_curl_oriented[k] = 0.0; in main()
[all …]
H A Dt304-basis.c27 …for (int k = 0; k < p; k++) sum += interpolation[p * k + i] * quadrature_weights[k] * interpolatio… in main() local
39 for (int k = 0; k < p; k++) sum += Q[p * i + k] * lambda[k] * Q[p * j + k]; in main() local
H A Dt580-operator.h17 for (CeedInt k = 0; k < 2; k++) { in AlphaMatTransposeMatMult2x2() local
18 C[j][k] = 0; in AlphaMatTransposeMatMult2x2()
20 C[j][k] += alpha * A[m][j] * B[m][k]; in AlphaMatTransposeMatMult2x2()
51 for (CeedInt k = 0; k < 2; k++) { in mass() local
52 v[k][i] = 0; in mass()
53 for (CeedInt m = 0; m < 2; m++) v[k][i] += JT_J[k][m] * u[m][i] * w[i] / det_J; in mass()
H A Dt220-elemrestriction.c48 CeedInt k = j + p * i; in main() local
50 if (y_oriented_array[k] * CeedIntPow(-1, i % 2) != 10 + (k + 1) / 2) { in main()
52 …rror in oriented restricted array y[%" CeedInt_FMT "] = %f\n", k, (CeedScalar)y_oriented_array[k]); in main()
55 if (y_unsigned_array[k] != 10 + (k + 1) / 2) { in main()
57 …rror in unsigned restricted array y[%" CeedInt_FMT "] = %f\n", k, (CeedScalar)y_unsigned_array[k]); in main()
60 if (y_unsigned_array[k] != y_unsigned_copy_array[k]) { in main()
62 …ror in copy restricted array y[%" CeedInt_FMT "] = %f\n", k, (CeedScalar)y_unsigned_copy_array[k]); in main()
H A Dt537-operator.c51 for (CeedInt k = 0; k < p; k++) ind_x[p * (p * i + k) + j] = offset + k * (n_x * 2 + 1) + j; in main() local
124 …for (int k = 0; k < num_comp; k++) assembled_true[i * num_comp * num_comp + k * num_comp + j] += v… in main() local
125 …for (CeedInt k = 0; k < num_comp * num_dofs; k++) assembled_full_true[k][i + num_dofs * j] += v_ar… in main() local
126 …for (CeedInt k = 0; k < num_comp; k++) assembled_full_true[i * num_comp + k][i * num_comp + j] = v… in main() local
H A Dt218-elemrestriction.c76 CeedInt k = j + elem_size * i; in main() local
78 if (j == 2 && 10 + 3 * i + j + 1 != -y_array[k]) { in main()
80 … printf("Error in restricted array y[%" CeedInt_FMT "] = %f\n", k, (CeedScalar)y_array[k]); in main()
82 } else if (j == 3 && 10 + 3 * i + j - 1 != -y_array[k]) { in main()
84 … printf("Error in restricted array y[%" CeedInt_FMT "] = %f\n", k, (CeedScalar)y_array[k]); in main()
87 if (j == 2 && 10 + 3 * i + j + 1 != y_unsigned_array[k]) { in main()
89 …rror in unsigned restricted array y[%" CeedInt_FMT "] = %f\n", k, (CeedScalar)y_unsigned_array[k]); in main()
91 } else if (j == 3 && 10 + 3 * i + j - 1 != y_unsigned_array[k]) { in main()
93 …rror in unsigned restricted array y[%" CeedInt_FMT "] = %f\n", k, (CeedScalar)y_unsigned_array[k]); in main()
97 if (10 + 3 * i + j != y_array[k] || 10 + 3 * i + j != y_unsigned_array[k]) { in main()
[all …]
H A Dt560-operator.c52 for (CeedInt k = 0; k < p; k++) ind_x[p * (p * i + k) + j] = offset + k * (n_x * 2 + 1) + j; in main() local
96 for (CeedInt k = 0; k < num_dofs * num_dofs; ++k) { in main() local
97 assembled_values[k] = 0.0; in main()
98 assembled_true[k] = 0.0; in main()
107 for (CeedInt k = 0; k < num_entries; ++k) { in main() local
108 assembled_values[rows[k] * num_dofs + cols[k]] += assembled_array[k]; in main()
H A Dt566-operator.c53 for (CeedInt k = 0; k < p; k++) ind_x[p * (p * i + k) + j] = offset + k * p + j; in main() local
98 for (CeedInt k = 0; k < num_comp * num_comp * num_dofs * num_dofs; k++) { in main() local
99 assembled_values[k] = 0.0; in main()
100 assembled_true[k] = 0.0; in main()
109 …for (CeedInt k = 0; k < num_entries; k++) assembled_values[rows[k] * num_comp * num_dofs + cols[k]… in main() local
H A Dt561-operator.c52 for (CeedInt k = 0; k < p; k++) ind_x[p * (p * i + k) + j] = offset + k * (n_x * 2 + 1) + j; in main() local
99 for (CeedInt k = 0; k < num_dofs * num_dofs; ++k) { in main() local
100 assembled_values[k] = 0.0; in main()
101 assembled_true[k] = 0.0; in main()
110 …for (CeedInt k = 0; k < num_entries; ++k) assembled_values[rows[k] * num_dofs + cols[k]] += assemb… in main() local
/libCEED/include/ceed/jit-source/cuda/
H A Dcuda-ref-basis-tensor-at-points.h54 for (CeedInt k = i; k < BASIS_Q_1D * BASIS_P_1D; k += blockDim.x) { in InterpAtPoints() local
55 s_chebyshev_interp_1d[k] = chebyshev_interp_1d[k]; in InterpAtPoints()
84 for (CeedInt k = i; k < writeLen; k += blockDim.x) { in InterpAtPoints() local
85 const CeedInt c = k % post; in InterpAtPoints()
86 const CeedInt j = (k / post) % Q; in InterpAtPoints()
87 const CeedInt a = k / (post * Q); in InterpAtPoints()
91 out[k] = v_k; in InterpAtPoints()
137 for (CeedInt k = i; k < BASIS_Q_1D * BASIS_P_1D; k += blockDim.x) { in InterpTransposeAtPoints() local
138 s_chebyshev_interp_1d[k] = chebyshev_interp_1d[k]; in InterpTransposeAtPoints()
158 for (CeedInt k = i; k < BASIS_NUM_QPTS; k += blockDim.x) { in InterpTransposeAtPoints() local
[all …]
H A Dcuda-ref-basis-tensor.h27 for (CeedInt k = i; k < BASIS_Q_1D * BASIS_P_1D; k += blockDim.x) { in Interp() local
28 s_interp_1d[k] = interp_1d[k]; in Interp()
58 for (CeedInt k = i; k < writeLen; k += blockDim.x) { in Interp() local
59 const CeedInt c = k % post; in Interp()
60 const CeedInt j = (k / post) % Q; in Interp()
61 const CeedInt a = k / (post * Q); in Interp()
65 if (is_transpose && d == BASIS_DIM - 1) out[k] += v_k; in Interp()
66 else out[k] = v_k; in Interp()
86 for (CeedInt k = i; k < BASIS_Q_1D * BASIS_P_1D; k += blockDim.x) { in Grad() local
87 s_interp_1d[k] = interp_1d[k]; in Grad()
[all …]
/libCEED/include/ceed/jit-source/hip/
H A Dhip-ref-basis-tensor-at-points.h54 for (CeedInt k = i; k < BASIS_Q_1D * BASIS_P_1D; k += blockDim.x) { in InterpAtPoints() local
55 s_chebyshev_interp_1d[k] = chebyshev_interp_1d[k]; in InterpAtPoints()
84 for (CeedInt k = i; k < writeLen; k += blockDim.x) { in InterpAtPoints() local
85 const CeedInt c = k % post; in InterpAtPoints()
86 const CeedInt j = (k / post) % Q; in InterpAtPoints()
87 const CeedInt a = k / (post * Q); in InterpAtPoints()
91 out[k] = v_k; in InterpAtPoints()
137 for (CeedInt k = i; k < BASIS_Q_1D * BASIS_P_1D; k += blockDim.x) { in InterpTransposeAtPoints() local
138 s_chebyshev_interp_1d[k] = chebyshev_interp_1d[k]; in InterpTransposeAtPoints()
158 for (CeedInt k = i; k < BASIS_NUM_QPTS; k += blockDim.x) { in InterpTransposeAtPoints() local
[all …]
H A Dhip-ref-basis-tensor.h27 for (CeedInt k = i; k < BASIS_Q_1D * BASIS_P_1D; k += blockDim.x) { in Interp() local
28 s_interp_1d[k] = interp_1d[k]; in Interp()
58 for (CeedInt k = i; k < writeLen; k += blockDim.x) { in Interp() local
59 const CeedInt c = k % post; in Interp()
60 const CeedInt j = (k / post) % Q; in Interp()
61 const CeedInt a = k / (post * Q); in Interp()
65 if (is_transpose && d == BASIS_DIM - 1) out[k] += v_k; in Interp()
66 else out[k] = v_k; in Interp()
86 for (CeedInt k = i; k < BASIS_Q_1D * BASIS_P_1D; k += blockDim.x) { in Grad() local
87 s_interp_1d[k] = interp_1d[k]; in Grad()
[all …]
/libCEED/examples/fluids/qfunctions/
H A Deulervortex.h188 for (CeedInt k = 0; k < 3; k++) { // Columns of each Jacobian matrix in ConvectiveFluxJacobian_Euler() local
189 dF[i][0][k + 1] = ((i == k) ? 1. : 0.); in ConvectiveFluxJacobian_Euler()
190 …dF[i][j + 1][k + 1] = ((j == k) ? u[i] : 0.) + ((i == k) ? u[j] : 0.) - ((i == j) ? u[k] : 0.) * (… in ConvectiveFluxJacobian_Euler()
191 …dF[i][4][k + 1] = ((i == k) ? (E * gamma / rho - (gamma - 1.) * u_sq / 2.) : 0.) - (gamma - 1.… in ConvectiveFluxJacobian_Euler()
301 for (CeedInt k = 0; k < 3; k++) { in Euler() local
302 drhodx[j] += drho[k] * dXdx[k][j]; in Euler()
303 dEdx[j] += dE[k] * dXdx[k][j]; in Euler()
305 dUdx[j][k] += dU[j][l] * dXdx[l][k]; in Euler()
306 dXdxdXdxT[j][k] += dXdx[j][l] * dXdx[k][l]; // dXdx_j,k * dXdx_k,j in Euler()
318 for (CeedInt k = 0; k < 3; k++) dv[k][j][i] = 0.; in Euler() local
[all …]
H A Dshocktube.h120 for (CeedInt k = 0; k < 3; k++) { // Columns of each Jacobian matrix in ConvectiveFluxJacobian_Euler() local
121 dF[i][0][k + 1] = ((i == k) ? 1. : 0.); in ConvectiveFluxJacobian_Euler()
122 …dF[i][j + 1][k + 1] = ((j == k) ? u[i] : 0.) + ((i == k) ? u[j] : 0.) - ((i == j) ? u[k] : 0.) * (… in ConvectiveFluxJacobian_Euler()
123 …dF[i][4][k + 1] = ((i == k) ? (E * gamma / rho - (gamma - 1.) * u_sq / 2.) : 0.) - (gamma - 1.… in ConvectiveFluxJacobian_Euler()
257 for (CeedInt k = 0; k < 3; k++) { in EulerShockTube() local
258 du[j][k] = (dU[j][k] - drho[k] * u[j]) / rho; in EulerShockTube()
259 drhodx[j] += drho[k] * dXdx[k][j]; in EulerShockTube()
260 dEdx[j] += dE[k] * dXdx[k][j]; in EulerShockTube()
262 dUdx[j][k] += dU[j][l] * dXdx[l][k]; in EulerShockTube()
263 dXdxdXdxT[j][k] += dXdx[j][l] * dXdx[k][l]; // dXdx_j,k * dXdx_k,j in EulerShockTube()
[all …]
/libCEED/examples/petsc/qfunctions/bps/
H A Dbp24.h29 const CeedScalar k[3] = {1., 2., 3.}; in SetupMassDiffRhs3() local
33 …sin(M_PI * (c[0] + k[0] * x[i + Q * 0])) * sin(M_PI * (c[1] + k[1] * x[i + Q * 1])) * sin(M_PI * (… in SetupMassDiffRhs3()
40 …rhs[i + 0 * Q] = w[i + Q * 0] * (M_PI * M_PI * (k[0] * k[0] + k[1] * k[1] + k[2] * k[2]) + 1.0) * … in SetupMassDiffRhs3()
80 for (int k = 0; k < 3; k++) { // k = component in MassDiff3() local
82 v[i + k * Q] = q_data[i + 0 * Q] * u[i + k * Q]; in MassDiff3()
85 …vg[i + (k + j * 3) * Q] = (uJ[k][0] * dXdxdXdx_T[0][j] + uJ[k][1] * dXdxdXdx_T[1][j] + uJ[k][2] * … in MassDiff3()
H A Dbp4.h29 const CeedScalar k[3] = {1., 2., 3.}; in SetupDiffRhs3() local
33 …sin(M_PI * (c[0] + k[0] * x[i + Q * 0])) * sin(M_PI * (c[1] + k[1] * x[i + Q * 1])) * sin(M_PI * (… in SetupDiffRhs3()
40 …rhs[i + 0 * Q] = w[i + Q * 0] * M_PI * M_PI * (k[0] * k[0] + k[1] * k[1] + k[2] * k[2]) * true_sol… in SetupDiffRhs3()
78 for (int k = 0; k < 3; k++) { // k = component in Diff3() local
80 …vg[i + (k + j * 3) * Q] = (uJ[k][0] * dXdxdXdx_T[0][j] + uJ[k][1] * dXdxdXdx_T[1][j] + uJ[k][2] * … in Diff3()
H A Dbp3.h51 for (CeedInt k = 0; k < dim; k++) { in SetupDiffGeo() local
53 // A[k][j] = J[k+1][j+1]*J[k+2][j+2] - J[k+1][j+2]*J[k+2][j+1] in SetupDiffGeo()
54 A[k][j] = J[(k + 1) % dim][(j + 1) % dim][i] * J[(k + 2) % dim][(j + 2) % dim][i] - in SetupDiffGeo()
55 J[(k + 1) % dim][(j + 2) % dim][i] * J[(k + 2) % dim][(j + 1) % dim][i]; in SetupDiffGeo()
86 const CeedScalar k[3] = {1., 2., 3.}; in SetupDiffRhs() local
88 …rue_soln[i] = sin(M_PI * (c[0] + k[0] * x[i + Q * 0])) * sin(M_PI * (c[1] + k[1] * x[i + Q * 1])) … in SetupDiffRhs()
90 rhs[i] = w[i + Q * 0] * M_PI * M_PI * (k[0] * k[0] + k[1] * k[1] + k[2] * k[2]) * true_soln[i]; in SetupDiffRhs()
/libCEED/backends/ref/
H A Dceed-ref-restriction.c31 for (CeedSize k = 0; k < num_comp; k++) { in CeedElemRestrictionApplyStridedNoTranspose_Ref_Core() local
34 vv[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] = in CeedElemRestrictionApplyStridedNoTranspose_Ref_Core()
35 … uu[n + k * elem_size + CeedIntMin(e + j, num_elem - 1) * elem_size * (CeedSize)num_comp]; in CeedElemRestrictionApplyStridedNoTranspose_Ref_Core()
46 for (CeedSize k = 0; k < num_comp; k++) { in CeedElemRestrictionApplyStridedNoTranspose_Ref_Core() local
49 vv[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] = in CeedElemRestrictionApplyStridedNoTranspose_Ref_Core()
50 … uu[n * strides[0] + k * strides[1] + CeedIntMin(e + j, num_elem - 1) * (CeedSize)strides[2]]; in CeedElemRestrictionApplyStridedNoTranspose_Ref_Core()
68 for (CeedSize k = 0; k < num_comp; k++) { in CeedElemRestrictionApplyOffsetNoTranspose_Ref_Core() local
70 …vv[elem_size * (k * block_size + e * num_comp) + i - v_offset] = uu[impl->offsets[i + e * elem_siz… in CeedElemRestrictionApplyOffsetNoTranspose_Ref_Core()
86 for (CeedSize k = 0; k < num_comp; k++) { in CeedElemRestrictionApplyOrientedNoTranspose_Ref_Core() local
88 vv[elem_size * (k * block_size + e * num_comp) + i - v_offset] = in CeedElemRestrictionApplyOrientedNoTranspose_Ref_Core()
[all …]
/libCEED/examples/solids/qfunctions/
H A Dfinite-strain-mooney-rivlin.h201 for (CeedInt k = 0; k < 3; k++) { // Derivative in ElasFSResidual_MR() local
202 grad_u[j][k][i] = 0; in ElasFSResidual_MR()
203 for (CeedInt m = 0; m < 3; m++) grad_u[j][k][i] += dXdx[m][k] * du[j][m]; in ElasFSResidual_MR()
235 for (CeedInt k = 0; k < 3; k++) { in ElasFSResidual_MR() local
236 P[j][k] = 0; in ElasFSResidual_MR()
237 for (CeedInt m = 0; m < 3; m++) P[j][k] += F[j][m] * S[m][k]; in ElasFSResidual_MR()
243 for (CeedInt k = 0; k < 3; k++) { // Derivative in ElasFSResidual_MR() local
244 dvdX[k][j][i] = 0; in ElasFSResidual_MR()
245 for (CeedInt m = 0; m < 3; m++) dvdX[k][j][i] += dXdx[k][m] * P[j][m] * wdetJ; in ElasFSResidual_MR()
294 for (CeedInt k = 0; k < 3; k++) { // Derivative in ElasFSJacobian_MR() local
[all …]
H A Dfinite-strain-neo-hookean.h199 for (CeedInt k = 0; k < 3; k++) { // Derivative in ElasFSResidual_NH() local
200 grad_u[j][k][i] = 0; in ElasFSResidual_NH()
201 for (CeedInt m = 0; m < 3; m++) grad_u[j][k][i] += dXdx[m][k] * du[j][m]; in ElasFSResidual_NH()
232 for (CeedInt k = 0; k < 3; k++) { in ElasFSResidual_NH() local
233 P[j][k] = 0; in ElasFSResidual_NH()
234 for (CeedInt m = 0; m < 3; m++) P[j][k] += F[j][m] * S[m][k]; in ElasFSResidual_NH()
240 for (CeedInt k = 0; k < 3; k++) { // Derivative in ElasFSResidual_NH() local
241 dvdX[k][j][i] = 0; in ElasFSResidual_NH()
242 for (CeedInt m = 0; m < 3; m++) dvdX[k][j][i] += dXdx[k][m] * P[j][m] * wdetJ; in ElasFSResidual_NH()
295 for (CeedInt k = 0; k < 3; k++) { // Derivative in ElasFSJacobian_NH() local
[all …]
/libCEED/backends/memcheck/
H A Dceed-memcheck-restriction.c60 for (CeedSize k = 0; k < num_comp; k++) { in CeedElemRestrictionApplyStridedNoTranspose_Memcheck_Core() local
63 vv[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] = in CeedElemRestrictionApplyStridedNoTranspose_Memcheck_Core()
64 … uu[n * strides[0] + k * strides[1] + CeedIntMin(e + j, num_elem - 1) * (CeedSize)strides[2]]; in CeedElemRestrictionApplyStridedNoTranspose_Memcheck_Core()
81 for (CeedSize k = 0; k < num_comp; k++) { in CeedElemRestrictionApplyOffsetNoTranspose_Memcheck_Core() local
83 …vv[elem_size * (k * block_size + e * num_comp) + i - v_offset] = uu[impl->offsets[i + e * elem_siz… in CeedElemRestrictionApplyOffsetNoTranspose_Memcheck_Core()
99 for (CeedSize k = 0; k < num_comp; k++) { in CeedElemRestrictionApplyOrientedNoTranspose_Memcheck_Core() local
101 vv[elem_size * (k * block_size + e * num_comp) + i - v_offset] = in CeedElemRestrictionApplyOrientedNoTranspose_Memcheck_Core()
102 …uu[impl->offsets[i + e * elem_size] + k * comp_stride] * (impl->orients[i + e * elem_size] ? -1.0 … in CeedElemRestrictionApplyOrientedNoTranspose_Memcheck_Core()
118 for (CeedSize k = 0; k < num_comp; k++) { in CeedElemRestrictionApplyCurlOrientedNoTranspose_Memcheck_Core() local
122 vv[e * elem_size * num_comp + (k * elem_size + n) * block_size + j - v_offset] = in CeedElemRestrictionApplyCurlOrientedNoTranspose_Memcheck_Core()
[all …]
/libCEED/backends/magma/
H A Dceed-magma-gemm-nontensor.cpp24 …ns_t trans_A, magma_trans_t trans_B, magma_int_t m, magma_int_t n, magma_int_t k, CeedScalar alpha, in magmablas_gemm() argument
28 …magmablas_sgemm(trans_A, trans_B, m, n, k, (float)alpha, (const float *)d_A, ldda, (const float *)… in magmablas_gemm()
31 …magmablas_dgemm(trans_A, trans_B, m, n, k, (double)alpha, (const double *)d_A, ldda, (const double… in magmablas_gemm()
38 …_strided(magma_trans_t trans_A, magma_trans_t trans_B, magma_int_t m, magma_int_t n, magma_int_t k, in magmablas_gemm_batched_strided() argument
43 …magmablas_sgemm_batched_strided(trans_A, trans_B, m, n, k, (float)alpha, (const float *)d_A, ldda,… in magmablas_gemm_batched_strided()
46 …magmablas_dgemm_batched_strided(trans_A, trans_B, m, n, k, (double)alpha, (const double *)d_A, ldd… in magmablas_gemm_batched_strided()
53 …ns_t trans_A, magma_trans_t trans_B, magma_int_t m, magma_int_t n, magma_int_t k, CeedScalar alpha, in devblas_gemm() argument
57 …magma_sgemm(trans_A, trans_B, m, n, k, (float)alpha, (const float *)d_A, ldda, (const float *)d_B,… in devblas_gemm()
59 …magma_dgemm(trans_A, trans_B, m, n, k, (double)alpha, (const double *)d_A, ldda, (const double *)d… in devblas_gemm()
66 …_strided(magma_trans_t trans_A, magma_trans_t trans_B, magma_int_t m, magma_int_t n, magma_int_t k, in devblas_gemm_batched_strided() argument
[all …]
/libCEED/include/ceed/jit-source/gallery/
H A Dceed-poisson3dbuild.h28 for (CeedInt k = 0; k < dim; k++) in Poisson3DBuild() local
30 // A[k][j] = J[k+1][j+1]*J[k+2][j+2] - J[k+2][j+1]*J[k+1][j+2] in Poisson3DBuild()
31 A[k][j] = J[(k + 1) % dim][(j + 1) % dim][i] * J[(k + 2) % dim][(j + 2) % dim][i] - in Poisson3DBuild()
32 J[(k + 2) % dim][(j + 1) % dim][i] * J[(k + 1) % dim][(j + 2) % dim][i]; in Poisson3DBuild()

1234567