diff --git a/src/gpu/VirtualFluids_GPU/GPU/GPU_Interface.h b/src/gpu/VirtualFluids_GPU/GPU/GPU_Interface.h index c2ad940d0c2323ef808dd9b15061e7b4d6a7b722..80f683ea097600da4e29ce7ba4a62298ca9c073e 100644 --- a/src/gpu/VirtualFluids_GPU/GPU/GPU_Interface.h +++ b/src/gpu/VirtualFluids_GPU/GPU/GPU_Interface.h @@ -8,6 +8,7 @@ //random numbers #include <curand.h> #include <curand_kernel.h> +#include <cuda_runtime.h> #include <DataTypes.h> #include "LBM/LB.h" @@ -2093,6 +2094,32 @@ extern "C" void ScaleFC_RhoSq_comp_27( real* DC, unsigned int numberOfThreads, OffFC offFC); +extern "C" void ScaleFC_RhoSq_comp_27_Stream( real* DC, + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned int size_MatC, + unsigned int size_MatF, + bool evenOrOdd, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + OffFC offFC, + unsigned int *fluidNodeIndices, + unsigned int numberOfFluidNodes, + CUstream_st *stream); + extern "C" void ScaleFC_RhoSq_3rdMom_comp_27( real* DC, real* DF, unsigned int* neighborCX, diff --git a/src/gpu/VirtualFluids_GPU/GPU/GPU_Kernels.cuh b/src/gpu/VirtualFluids_GPU/GPU/GPU_Kernels.cuh index 288db43e7bcd36dc4d187982b86178d345601094..fc35b1c661515f08c231be28f7041cc91a849373 100644 --- a/src/gpu/VirtualFluids_GPU/GPU/GPU_Kernels.cuh +++ b/src/gpu/VirtualFluids_GPU/GPU/GPU_Kernels.cuh @@ -2049,6 +2049,14 @@ extern "C" __global__ void scaleFC_RhoSq_comp_27( real* DC, unsigned int nyF, OffFC offFC); +extern "C" __global__ void +scaleFC_RhoSq_comp_27_Stream(real *DC, real *DF, unsigned int *neighborCX, unsigned int *neighborCY, + unsigned int *neighborCZ, unsigned int *neighborFX, unsigned int *neighborFY, + unsigned int *neighborFZ, unsigned int size_MatC, unsigned int size_MatF, bool evenOrOdd, + unsigned int *posC, unsigned int *posFSWB, unsigned int kFC, real omCoarse, real omFine, + real nu, unsigned int nxC, unsigned int nyC, unsigned int nxF, unsigned int nyF, + OffFC offFC, const unsigned int *fluidNodeIndices, unsigned int numberOfFluidNodes); + extern "C" __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, real* DF, unsigned int* neighborCX, diff --git a/src/gpu/VirtualFluids_GPU/GPU/LBMKernel.cu b/src/gpu/VirtualFluids_GPU/GPU/LBMKernel.cu index 27a27bbdfc6e5649e07ec09f552cb29dcc2b1b34..b2a848e98b1b9145d282dde29cdb7058180d9338 100644 --- a/src/gpu/VirtualFluids_GPU/GPU/LBMKernel.cu +++ b/src/gpu/VirtualFluids_GPU/GPU/LBMKernel.cu @@ -6242,6 +6242,48 @@ extern "C" void ScaleFC_RhoSq_comp_27(real* DC, offFC); getLastCudaError("scaleFC_RhoSq_27 execution failed"); } +extern "C" void ScaleFC_RhoSq_comp_27_Stream(real *DC, + real * DF, + unsigned int * neighborCX, + unsigned int * neighborCY, + unsigned int * neighborCZ, + unsigned int * neighborFX, + unsigned int * neighborFY, + unsigned int * neighborFZ, + unsigned int size_MatC, + unsigned int size_MatF, + bool evenOrOdd, + unsigned int * posC, + unsigned int * posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + OffFC offFC, + unsigned int *fluidNodeIndices, + unsigned int numberOfFluidNodes, + CUstream_st* stream) +{ + int Grid = (kFC / numberOfFluidNodes) + 1; + int Grid1, Grid2; + if (Grid > 512) { + Grid1 = 512; + Grid2 = (Grid / Grid1) + 1; + } else { + Grid1 = 1; + Grid2 = Grid; + } + dim3 gridINT_FC(Grid1, Grid2); + dim3 threads(numberOfFluidNodes, 1, 1); + + scaleFC_RhoSq_comp_27_Stream<<<gridINT_FC, threads, 0, stream>>>(DC, DF, neighborCX, neighborCY, neighborCZ, neighborFX, neighborFY, neighborFZ, size_MatC, size_MatF, evenOrOdd, + posC, posFSWB, kFC, omCoarse, omFine, nu, nxC, nyC, nxF, nyF, offFC, fluidNodeIndices, numberOfFluidNodes); + getLastCudaError("scaleFC_RhoSq_27_Stream execution failed"); +} ////////////////////////////////////////////////////////////////////////// extern "C" void ScaleFC_RhoSq_3rdMom_comp_27( real* DC, real* DF, diff --git a/src/gpu/VirtualFluids_GPU/GPU/ScaleFC27.cu b/src/gpu/VirtualFluids_GPU/GPU/ScaleFC27.cu index 06d5086cc7f57c8245517f922662e8eea4571d05..a56c75e5859d8a722e148d07643763fa31086718 100644 --- a/src/gpu/VirtualFluids_GPU/GPU/ScaleFC27.cu +++ b/src/gpu/VirtualFluids_GPU/GPU/ScaleFC27.cu @@ -9586,6 +9586,1475 @@ extern "C" __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, ////////////////////////////////////////////////////////////////////////// +__device__ void scaleFC_RhoSq_comp_27_Calculation(real *DC, real *DF, unsigned int *neighborCX, unsigned int *neighborCY, + unsigned int *neighborCZ, unsigned int *neighborFX, unsigned int *neighborFY, + unsigned int *neighborFZ, unsigned int size_MatC, unsigned int size_MatF, + bool evenOrOdd, unsigned int *posC, unsigned int *posFSWB, unsigned int kFC, + real omCoarse, real omFine, real nu, unsigned int nxC, unsigned int nyC, + unsigned int nxF, unsigned int nyF, OffFC offFC, const unsigned k) +{ + real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, + *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; + + feF = &DF[dirE * size_MatF]; + fwF = &DF[dirW * size_MatF]; + fnF = &DF[dirN * size_MatF]; + fsF = &DF[dirS * size_MatF]; + ftF = &DF[dirT * size_MatF]; + fbF = &DF[dirB * size_MatF]; + fneF = &DF[dirNE * size_MatF]; + fswF = &DF[dirSW * size_MatF]; + fseF = &DF[dirSE * size_MatF]; + fnwF = &DF[dirNW * size_MatF]; + fteF = &DF[dirTE * size_MatF]; + fbwF = &DF[dirBW * size_MatF]; + fbeF = &DF[dirBE * size_MatF]; + ftwF = &DF[dirTW * size_MatF]; + ftnF = &DF[dirTN * size_MatF]; + fbsF = &DF[dirBS * size_MatF]; + fbnF = &DF[dirBN * size_MatF]; + ftsF = &DF[dirTS * size_MatF]; + fzeroF = &DF[dirZERO * size_MatF]; + ftneF = &DF[dirTNE * size_MatF]; + ftswF = &DF[dirTSW * size_MatF]; + ftseF = &DF[dirTSE * size_MatF]; + ftnwF = &DF[dirTNW * size_MatF]; + fbneF = &DF[dirBNE * size_MatF]; + fbswF = &DF[dirBSW * size_MatF]; + fbseF = &DF[dirBSE * size_MatF]; + fbnwF = &DF[dirBNW * size_MatF]; + + real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, + *fbnC, *ftsC, *fzeroC, *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC; + + if (evenOrOdd == true) { + feC = &DC[dirE * size_MatC]; + fwC = &DC[dirW * size_MatC]; + fnC = &DC[dirN * size_MatC]; + fsC = &DC[dirS * size_MatC]; + ftC = &DC[dirT * size_MatC]; + fbC = &DC[dirB * size_MatC]; + fneC = &DC[dirNE * size_MatC]; + fswC = &DC[dirSW * size_MatC]; + fseC = &DC[dirSE * size_MatC]; + fnwC = &DC[dirNW * size_MatC]; + fteC = &DC[dirTE * size_MatC]; + fbwC = &DC[dirBW * size_MatC]; + fbeC = &DC[dirBE * size_MatC]; + ftwC = &DC[dirTW * size_MatC]; + ftnC = &DC[dirTN * size_MatC]; + fbsC = &DC[dirBS * size_MatC]; + fbnC = &DC[dirBN * size_MatC]; + ftsC = &DC[dirTS * size_MatC]; + fzeroC = &DC[dirZERO * size_MatC]; + ftneC = &DC[dirTNE * size_MatC]; + ftswC = &DC[dirTSW * size_MatC]; + ftseC = &DC[dirTSE * size_MatC]; + ftnwC = &DC[dirTNW * size_MatC]; + fbneC = &DC[dirBNE * size_MatC]; + fbswC = &DC[dirBSW * size_MatC]; + fbseC = &DC[dirBSE * size_MatC]; + fbnwC = &DC[dirBNW * size_MatC]; + } else { + fwC = &DC[dirE * size_MatC]; + feC = &DC[dirW * size_MatC]; + fsC = &DC[dirN * size_MatC]; + fnC = &DC[dirS * size_MatC]; + fbC = &DC[dirT * size_MatC]; + ftC = &DC[dirB * size_MatC]; + fswC = &DC[dirNE * size_MatC]; + fneC = &DC[dirSW * size_MatC]; + fnwC = &DC[dirSE * size_MatC]; + fseC = &DC[dirNW * size_MatC]; + fbwC = &DC[dirTE * size_MatC]; + fteC = &DC[dirBW * size_MatC]; + ftwC = &DC[dirBE * size_MatC]; + fbeC = &DC[dirTW * size_MatC]; + fbsC = &DC[dirTN * size_MatC]; + ftnC = &DC[dirBS * size_MatC]; + ftsC = &DC[dirBN * size_MatC]; + fbnC = &DC[dirTS * size_MatC]; + fzeroC = &DC[dirZERO * size_MatC]; + fbswC = &DC[dirTNE * size_MatC]; + fbneC = &DC[dirTSW * size_MatC]; + fbnwC = &DC[dirTSE * size_MatC]; + fbseC = &DC[dirTNW * size_MatC]; + ftswC = &DC[dirBNE * size_MatC]; + ftneC = &DC[dirBSW * size_MatC]; + ftnwC = &DC[dirBSE * size_MatC]; + ftseC = &DC[dirBNW * size_MatC]; + } + + //////////////////////////////////////////////////////////////////////////////// + real eps_new = c2o1; + real omegaS = omFine; //-omFine; + real o = omCoarse; //-omCoarse; + // real op = one; + // real cu_sq; + + real xoff, yoff, zoff; + real xoff_sq, yoff_sq, zoff_sq; + + real press; //,drho,vx1,vx2,vx3; + real /*press_SWT,*/ drho_SWT, vx1_SWT, vx2_SWT, vx3_SWT; + real /*press_NWT,*/ drho_NWT, vx1_NWT, vx2_NWT, vx3_NWT; + real /*press_NET,*/ drho_NET, vx1_NET, vx2_NET, vx3_NET; + real /*press_SET,*/ drho_SET, vx1_SET, vx2_SET, vx3_SET; + real /*press_SWB,*/ drho_SWB, vx1_SWB, vx2_SWB, vx3_SWB; + real /*press_NWB,*/ drho_NWB, vx1_NWB, vx2_NWB, vx3_NWB; + real /*press_NEB,*/ drho_NEB, vx1_NEB, vx2_NEB, vx3_NEB; + real /*press_SEB,*/ drho_SEB, vx1_SEB, vx2_SEB, vx3_SEB; + real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE, f_TW, f_TN, f_BS, f_BN, f_TS, f_ZERO, + f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW; + // real + // feq_E,feq_W,feq_N,feq_S,feq_T,feq_B,feq_NE,feq_SW,feq_SE,feq_NW,feq_TE,feq_BW,feq_BE,feq_TW,feq_TN,feq_BS,feq_BN,feq_TS,feq_ZERO,feq_TNE, + // feq_TSW, feq_TSE, feq_TNW, feq_BNE, feq_BSW, feq_BSE, feq_BNW; + real kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT; + real kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT; + real kxyFromfcNEQ_NET, kyzFromfcNEQ_NET, kxzFromfcNEQ_NET, kxxMyyFromfcNEQ_NET, kxxMzzFromfcNEQ_NET; + real kxyFromfcNEQ_SET, kyzFromfcNEQ_SET, kxzFromfcNEQ_SET, kxxMyyFromfcNEQ_SET, kxxMzzFromfcNEQ_SET; + real kxyFromfcNEQ_SWB, kyzFromfcNEQ_SWB, kxzFromfcNEQ_SWB, kxxMyyFromfcNEQ_SWB, kxxMzzFromfcNEQ_SWB; + real kxyFromfcNEQ_NWB, kyzFromfcNEQ_NWB, kxzFromfcNEQ_NWB, kxxMyyFromfcNEQ_NWB, kxxMzzFromfcNEQ_NWB; + real kxyFromfcNEQ_NEB, kyzFromfcNEQ_NEB, kxzFromfcNEQ_NEB, kxxMyyFromfcNEQ_NEB, kxxMzzFromfcNEQ_NEB; + real kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; + real a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, + cxx, cyy, czz, cxy, cxz, cyz /*, axyz, bxyz, cxyz*/; + real d0, dx, dy, dz, dxy, dxz, dyz /*, dxyz*/; + + if (k < kFC) { + ////////////////////////////////////////////////////////////////////////// + xoff = offFC.xOffFC[k]; + yoff = offFC.yOffFC[k]; + zoff = offFC.zOffFC[k]; + xoff_sq = xoff * xoff; + yoff_sq = yoff * yoff; + zoff_sq = zoff * zoff; + ////////////////////////////////////////////////////////////////////////// + // SWB// + ////////////////////////////////////////////////////////////////////////// + // index 0 + unsigned int k0zero = posFSWB[k]; + unsigned int k0w = neighborFX[k0zero]; + unsigned int k0s = neighborFY[k0zero]; + unsigned int k0b = neighborFZ[k0zero]; + unsigned int k0sw = neighborFY[k0w]; + unsigned int k0bw = neighborFZ[k0w]; + unsigned int k0bs = neighborFZ[k0s]; + unsigned int k0bsw = neighborFZ[k0sw]; + ////////////////////////////////////////////////////////////////////////// + // index + unsigned int kzero = k0zero; + unsigned int kw = k0w; + unsigned int ks = k0s; + unsigned int kb = k0b; + unsigned int ksw = k0sw; + unsigned int kbw = k0bw; + unsigned int kbs = k0bs; + unsigned int kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + f_E = feF[kzero]; + f_W = fwF[kw]; + f_N = fnF[kzero]; + f_S = fsF[ks]; + f_T = ftF[kzero]; + f_B = fbF[kb]; + f_NE = fneF[kzero]; + f_SW = fswF[ksw]; + f_SE = fseF[ks]; + f_NW = fnwF[kw]; + f_TE = fteF[kzero]; + f_BW = fbwF[kbw]; + f_BE = fbeF[kb]; + f_TW = ftwF[kw]; + f_TN = ftnF[kzero]; + f_BS = fbsF[kbs]; + f_BN = fbnF[kb]; + f_TS = ftsF[ks]; + f_ZERO = fzeroF[kzero]; + f_TNE = ftneF[kzero]; + f_TSW = ftswF[ksw]; + f_TSE = ftseF[ks]; + f_TNW = ftnwF[kw]; + f_BNE = fbneF[kb]; + f_BSW = fbswF[kbsw]; + f_BSE = fbseF[kbs]; + f_BNW = fbnwF[kbw]; + + drho_SWB = f_E + f_W + f_N + f_S + f_T + f_B + f_NE + f_SW + f_SE + f_NW + f_TE + f_BW + f_BE + f_TW + f_TN + + f_BS + f_BN + f_TS + f_ZERO + f_TNE + f_TSW + f_TSE + f_TNW + f_BNE + f_BSW + f_BSE + f_BNW; + vx1_SWB = (((f_TNE - f_BSW) + (f_TSE - f_BNW) + (f_BNE - f_TSW) + (f_BSE - f_TNW)) + + (((f_NE - f_SW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_BE - f_TW))) + (f_E - f_W)) / + (c1o1 + drho_SWB); + vx2_SWB = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_BNE - f_TSW) + (f_BNW - f_TSE)) + + (((f_NE - f_SW) + (f_TN - f_BS)) + ((f_BN - f_TS) + (f_NW - f_SE))) + (f_N - f_S)) / + (c1o1 + drho_SWB); + vx3_SWB = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_TSE - f_BNW) + (f_TSW - f_BNE)) + + (((f_TE - f_BW) + (f_TN - f_BS)) + ((f_TW - f_BE) + (f_TS - f_BN))) + (f_T - f_B)) / + (c1o1 + drho_SWB); + + kxyFromfcNEQ_SWB = + -c3o1 * omegaS * + ((f_SW + f_BSW + f_TSW - f_NW - f_BNW - f_TNW - f_SE - f_BSE - f_TSE + f_NE + f_BNE + f_TNE) / + (c1o1 + drho_SWB) - + ((vx1_SWB * vx2_SWB))); + kyzFromfcNEQ_SWB = + -c3o1 * omegaS * + ((f_BS + f_BSE + f_BSW - f_TS - f_TSE - f_TSW - f_BN - f_BNE - f_BNW + f_TN + f_TNE + f_TNW) / + (c1o1 + drho_SWB) - + ((vx2_SWB * vx3_SWB))); + kxzFromfcNEQ_SWB = + -c3o1 * omegaS * + ((f_BW + f_BSW + f_BNW - f_TW - f_TSW - f_TNW - f_BE - f_BSE - f_BNE + f_TE + f_TSE + f_TNE) / + (c1o1 + drho_SWB) - + ((vx1_SWB * vx3_SWB))); + kxxMyyFromfcNEQ_SWB = + -c3o2 * omegaS * + ((f_BW + f_W + f_TW - f_BS - f_S - f_TS - f_BN - f_N - f_TN + f_BE + f_E + f_TE) / (c1o1 + drho_SWB) - + ((vx1_SWB * vx1_SWB - vx2_SWB * vx2_SWB))); + kxxMzzFromfcNEQ_SWB = + -c3o2 * omegaS * + ((f_SW + f_W + f_NW - f_BS - f_TS - f_B - f_T - f_BN - f_TN + f_SE + f_E + f_NE) / (c1o1 + drho_SWB) - + ((vx1_SWB * vx1_SWB - vx3_SWB * vx3_SWB))); + + ////////////////////////////////////////////////////////////////////////// + // SWT// + ////////////////////////////////////////////////////////////////////////// + // index + kzero = kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feF[kzero]; + f_W = fwF[kw]; + f_N = fnF[kzero]; + f_S = fsF[ks]; + f_T = ftF[kzero]; + f_B = fbF[kb]; + f_NE = fneF[kzero]; + f_SW = fswF[ksw]; + f_SE = fseF[ks]; + f_NW = fnwF[kw]; + f_TE = fteF[kzero]; + f_BW = fbwF[kbw]; + f_BE = fbeF[kb]; + f_TW = ftwF[kw]; + f_TN = ftnF[kzero]; + f_BS = fbsF[kbs]; + f_BN = fbnF[kb]; + f_TS = ftsF[ks]; + f_ZERO = fzeroF[kzero]; + f_TNE = ftneF[kzero]; + f_TSW = ftswF[ksw]; + f_TSE = ftseF[ks]; + f_TNW = ftnwF[kw]; + f_BNE = fbneF[kb]; + f_BSW = fbswF[kbsw]; + f_BSE = fbseF[kbs]; + f_BNW = fbnwF[kbw]; + + drho_SWT = f_E + f_W + f_N + f_S + f_T + f_B + f_NE + f_SW + f_SE + f_NW + f_TE + f_BW + f_BE + f_TW + f_TN + + f_BS + f_BN + f_TS + f_ZERO + f_TNE + f_TSW + f_TSE + f_TNW + f_BNE + f_BSW + f_BSE + f_BNW; + vx1_SWT = (((f_TNE - f_BSW) + (f_TSE - f_BNW) + (f_BNE - f_TSW) + (f_BSE - f_TNW)) + + (((f_NE - f_SW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_BE - f_TW))) + (f_E - f_W)) / + (c1o1 + drho_SWT); + vx2_SWT = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_BNE - f_TSW) + (f_BNW - f_TSE)) + + (((f_NE - f_SW) + (f_TN - f_BS)) + ((f_BN - f_TS) + (f_NW - f_SE))) + (f_N - f_S)) / + (c1o1 + drho_SWT); + vx3_SWT = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_TSE - f_BNW) + (f_TSW - f_BNE)) + + (((f_TE - f_BW) + (f_TN - f_BS)) + ((f_TW - f_BE) + (f_TS - f_BN))) + (f_T - f_B)) / + (c1o1 + drho_SWT); + + kxyFromfcNEQ_SWT = + -c3o1 * omegaS * + ((f_SW + f_BSW + f_TSW - f_NW - f_BNW - f_TNW - f_SE - f_BSE - f_TSE + f_NE + f_BNE + f_TNE) / + (c1o1 + drho_SWT) - + ((vx1_SWT * vx2_SWT))); + kyzFromfcNEQ_SWT = + -c3o1 * omegaS * + ((f_BS + f_BSE + f_BSW - f_TS - f_TSE - f_TSW - f_BN - f_BNE - f_BNW + f_TN + f_TNE + f_TNW) / + (c1o1 + drho_SWT) - + ((vx2_SWT * vx3_SWT))); + kxzFromfcNEQ_SWT = + -c3o1 * omegaS * + ((f_BW + f_BSW + f_BNW - f_TW - f_TSW - f_TNW - f_BE - f_BSE - f_BNE + f_TE + f_TSE + f_TNE) / + (c1o1 + drho_SWT) - + ((vx1_SWT * vx3_SWT))); + kxxMyyFromfcNEQ_SWT = + -c3o2 * omegaS * + ((f_BW + f_W + f_TW - f_BS - f_S - f_TS - f_BN - f_N - f_TN + f_BE + f_E + f_TE) / (c1o1 + drho_SWT) - + ((vx1_SWT * vx1_SWT - vx2_SWT * vx2_SWT))); + kxxMzzFromfcNEQ_SWT = + -c3o2 * omegaS * + ((f_SW + f_W + f_NW - f_BS - f_TS - f_B - f_T - f_BN - f_TN + f_SE + f_E + f_NE) / (c1o1 + drho_SWT) - + ((vx1_SWT * vx1_SWT - vx3_SWT * vx3_SWT))); + + ////////////////////////////////////////////////////////////////////////// + // SET// + ////////////////////////////////////////////////////////////////////////// + // index + kzero = kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feF[kzero]; + f_W = fwF[kw]; + f_N = fnF[kzero]; + f_S = fsF[ks]; + f_T = ftF[kzero]; + f_B = fbF[kb]; + f_NE = fneF[kzero]; + f_SW = fswF[ksw]; + f_SE = fseF[ks]; + f_NW = fnwF[kw]; + f_TE = fteF[kzero]; + f_BW = fbwF[kbw]; + f_BE = fbeF[kb]; + f_TW = ftwF[kw]; + f_TN = ftnF[kzero]; + f_BS = fbsF[kbs]; + f_BN = fbnF[kb]; + f_TS = ftsF[ks]; + f_ZERO = fzeroF[kzero]; + f_TNE = ftneF[kzero]; + f_TSW = ftswF[ksw]; + f_TSE = ftseF[ks]; + f_TNW = ftnwF[kw]; + f_BNE = fbneF[kb]; + f_BSW = fbswF[kbsw]; + f_BSE = fbseF[kbs]; + f_BNW = fbnwF[kbw]; + + drho_SET = f_E + f_W + f_N + f_S + f_T + f_B + f_NE + f_SW + f_SE + f_NW + f_TE + f_BW + f_BE + f_TW + f_TN + + f_BS + f_BN + f_TS + f_ZERO + f_TNE + f_TSW + f_TSE + f_TNW + f_BNE + f_BSW + f_BSE + f_BNW; + vx1_SET = (((f_TNE - f_BSW) + (f_TSE - f_BNW) + (f_BNE - f_TSW) + (f_BSE - f_TNW)) + + (((f_NE - f_SW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_BE - f_TW))) + (f_E - f_W)) / + (c1o1 + drho_SET); + vx2_SET = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_BNE - f_TSW) + (f_BNW - f_TSE)) + + (((f_NE - f_SW) + (f_TN - f_BS)) + ((f_BN - f_TS) + (f_NW - f_SE))) + (f_N - f_S)) / + (c1o1 + drho_SET); + vx3_SET = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_TSE - f_BNW) + (f_TSW - f_BNE)) + + (((f_TE - f_BW) + (f_TN - f_BS)) + ((f_TW - f_BE) + (f_TS - f_BN))) + (f_T - f_B)) / + (c1o1 + drho_SET); + + kxyFromfcNEQ_SET = + -c3o1 * omegaS * + ((f_SW + f_BSW + f_TSW - f_NW - f_BNW - f_TNW - f_SE - f_BSE - f_TSE + f_NE + f_BNE + f_TNE) / + (c1o1 + drho_SET) - + ((vx1_SET * vx2_SET))); + kyzFromfcNEQ_SET = + -c3o1 * omegaS * + ((f_BS + f_BSE + f_BSW - f_TS - f_TSE - f_TSW - f_BN - f_BNE - f_BNW + f_TN + f_TNE + f_TNW) / + (c1o1 + drho_SET) - + ((vx2_SET * vx3_SET))); + kxzFromfcNEQ_SET = + -c3o1 * omegaS * + ((f_BW + f_BSW + f_BNW - f_TW - f_TSW - f_TNW - f_BE - f_BSE - f_BNE + f_TE + f_TSE + f_TNE) / + (c1o1 + drho_SET) - + ((vx1_SET * vx3_SET))); + kxxMyyFromfcNEQ_SET = + -c3o2 * omegaS * + ((f_BW + f_W + f_TW - f_BS - f_S - f_TS - f_BN - f_N - f_TN + f_BE + f_E + f_TE) / (c1o1 + drho_SET) - + ((vx1_SET * vx1_SET - vx2_SET * vx2_SET))); + kxxMzzFromfcNEQ_SET = + -c3o2 * omegaS * + ((f_SW + f_W + f_NW - f_BS - f_TS - f_B - f_T - f_BN - f_TN + f_SE + f_E + f_NE) / (c1o1 + drho_SET) - + ((vx1_SET * vx1_SET - vx3_SET * vx3_SET))); + + ////////////////////////////////////////////////////////////////////////// + // SEB// + ////////////////////////////////////////////////////////////////////////// + // index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero = k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feF[kzero]; + f_W = fwF[kw]; + f_N = fnF[kzero]; + f_S = fsF[ks]; + f_T = ftF[kzero]; + f_B = fbF[kb]; + f_NE = fneF[kzero]; + f_SW = fswF[ksw]; + f_SE = fseF[ks]; + f_NW = fnwF[kw]; + f_TE = fteF[kzero]; + f_BW = fbwF[kbw]; + f_BE = fbeF[kb]; + f_TW = ftwF[kw]; + f_TN = ftnF[kzero]; + f_BS = fbsF[kbs]; + f_BN = fbnF[kb]; + f_TS = ftsF[ks]; + f_ZERO = fzeroF[kzero]; + f_TNE = ftneF[kzero]; + f_TSW = ftswF[ksw]; + f_TSE = ftseF[ks]; + f_TNW = ftnwF[kw]; + f_BNE = fbneF[kb]; + f_BSW = fbswF[kbsw]; + f_BSE = fbseF[kbs]; + f_BNW = fbnwF[kbw]; + + drho_SEB = f_E + f_W + f_N + f_S + f_T + f_B + f_NE + f_SW + f_SE + f_NW + f_TE + f_BW + f_BE + f_TW + f_TN + + f_BS + f_BN + f_TS + f_ZERO + f_TNE + f_TSW + f_TSE + f_TNW + f_BNE + f_BSW + f_BSE + f_BNW; + vx1_SEB = (((f_TNE - f_BSW) + (f_TSE - f_BNW) + (f_BNE - f_TSW) + (f_BSE - f_TNW)) + + (((f_NE - f_SW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_BE - f_TW))) + (f_E - f_W)) / + (c1o1 + drho_SEB); + vx2_SEB = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_BNE - f_TSW) + (f_BNW - f_TSE)) + + (((f_NE - f_SW) + (f_TN - f_BS)) + ((f_BN - f_TS) + (f_NW - f_SE))) + (f_N - f_S)) / + (c1o1 + drho_SEB); + vx3_SEB = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_TSE - f_BNW) + (f_TSW - f_BNE)) + + (((f_TE - f_BW) + (f_TN - f_BS)) + ((f_TW - f_BE) + (f_TS - f_BN))) + (f_T - f_B)) / + (c1o1 + drho_SEB); + + kxyFromfcNEQ_SEB = + -c3o1 * omegaS * + ((f_SW + f_BSW + f_TSW - f_NW - f_BNW - f_TNW - f_SE - f_BSE - f_TSE + f_NE + f_BNE + f_TNE) / + (c1o1 + drho_SEB) - + ((vx1_SEB * vx2_SEB))); + kyzFromfcNEQ_SEB = + -c3o1 * omegaS * + ((f_BS + f_BSE + f_BSW - f_TS - f_TSE - f_TSW - f_BN - f_BNE - f_BNW + f_TN + f_TNE + f_TNW) / + (c1o1 + drho_SEB) - + ((vx2_SEB * vx3_SEB))); + kxzFromfcNEQ_SEB = + -c3o1 * omegaS * + ((f_BW + f_BSW + f_BNW - f_TW - f_TSW - f_TNW - f_BE - f_BSE - f_BNE + f_TE + f_TSE + f_TNE) / + (c1o1 + drho_SEB) - + ((vx1_SEB * vx3_SEB))); + kxxMyyFromfcNEQ_SEB = + -c3o2 * omegaS * + ((f_BW + f_W + f_TW - f_BS - f_S - f_TS - f_BN - f_N - f_TN + f_BE + f_E + f_TE) / (c1o1 + drho_SEB) - + ((vx1_SEB * vx1_SEB - vx2_SEB * vx2_SEB))); + kxxMzzFromfcNEQ_SEB = + -c3o2 * omegaS * + ((f_SW + f_W + f_NW - f_BS - f_TS - f_B - f_T - f_BN - f_TN + f_SE + f_E + f_NE) / (c1o1 + drho_SEB) - + ((vx1_SEB * vx1_SEB - vx3_SEB * vx3_SEB))); + + ////////////////////////////////////////////////////////////////////////// + // NWB// + ////////////////////////////////////////////////////////////////////////// + // index 0 + k0zero = k0s; + k0w = k0sw; + k0s = neighborFY[k0s]; + k0b = k0bs; + k0sw = neighborFY[k0sw]; + k0bw = k0bsw; + k0bs = neighborFY[k0bs]; + k0bsw = neighborFY[k0bsw]; + ////////////////////////////////////////////////////////////////////////// + // index + kzero = k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + f_E = feF[kzero]; + f_W = fwF[kw]; + f_N = fnF[kzero]; + f_S = fsF[ks]; + f_T = ftF[kzero]; + f_B = fbF[kb]; + f_NE = fneF[kzero]; + f_SW = fswF[ksw]; + f_SE = fseF[ks]; + f_NW = fnwF[kw]; + f_TE = fteF[kzero]; + f_BW = fbwF[kbw]; + f_BE = fbeF[kb]; + f_TW = ftwF[kw]; + f_TN = ftnF[kzero]; + f_BS = fbsF[kbs]; + f_BN = fbnF[kb]; + f_TS = ftsF[ks]; + f_ZERO = fzeroF[kzero]; + f_TNE = ftneF[kzero]; + f_TSW = ftswF[ksw]; + f_TSE = ftseF[ks]; + f_TNW = ftnwF[kw]; + f_BNE = fbneF[kb]; + f_BSW = fbswF[kbsw]; + f_BSE = fbseF[kbs]; + f_BNW = fbnwF[kbw]; + + drho_NWB = f_E + f_W + f_N + f_S + f_T + f_B + f_NE + f_SW + f_SE + f_NW + f_TE + f_BW + f_BE + f_TW + f_TN + + f_BS + f_BN + f_TS + f_ZERO + f_TNE + f_TSW + f_TSE + f_TNW + f_BNE + f_BSW + f_BSE + f_BNW; + vx1_NWB = (((f_TNE - f_BSW) + (f_TSE - f_BNW) + (f_BNE - f_TSW) + (f_BSE - f_TNW)) + + (((f_NE - f_SW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_BE - f_TW))) + (f_E - f_W)) / + (c1o1 + drho_NWB); + vx2_NWB = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_BNE - f_TSW) + (f_BNW - f_TSE)) + + (((f_NE - f_SW) + (f_TN - f_BS)) + ((f_BN - f_TS) + (f_NW - f_SE))) + (f_N - f_S)) / + (c1o1 + drho_NWB); + vx3_NWB = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_TSE - f_BNW) + (f_TSW - f_BNE)) + + (((f_TE - f_BW) + (f_TN - f_BS)) + ((f_TW - f_BE) + (f_TS - f_BN))) + (f_T - f_B)) / + (c1o1 + drho_NWB); + + kxyFromfcNEQ_NWB = + -c3o1 * omegaS * + ((f_SW + f_BSW + f_TSW - f_NW - f_BNW - f_TNW - f_SE - f_BSE - f_TSE + f_NE + f_BNE + f_TNE) / + (c1o1 + drho_NWB) - + ((vx1_NWB * vx2_NWB))); + kyzFromfcNEQ_NWB = + -c3o1 * omegaS * + ((f_BS + f_BSE + f_BSW - f_TS - f_TSE - f_TSW - f_BN - f_BNE - f_BNW + f_TN + f_TNE + f_TNW) / + (c1o1 + drho_NWB) - + ((vx2_NWB * vx3_NWB))); + kxzFromfcNEQ_NWB = + -c3o1 * omegaS * + ((f_BW + f_BSW + f_BNW - f_TW - f_TSW - f_TNW - f_BE - f_BSE - f_BNE + f_TE + f_TSE + f_TNE) / + (c1o1 + drho_NWB) - + ((vx1_NWB * vx3_NWB))); + kxxMyyFromfcNEQ_NWB = + -c3o2 * omegaS * + ((f_BW + f_W + f_TW - f_BS - f_S - f_TS - f_BN - f_N - f_TN + f_BE + f_E + f_TE) / (c1o1 + drho_NWB) - + ((vx1_NWB * vx1_NWB - vx2_NWB * vx2_NWB))); + kxxMzzFromfcNEQ_NWB = + -c3o2 * omegaS * + ((f_SW + f_W + f_NW - f_BS - f_TS - f_B - f_T - f_BN - f_TN + f_SE + f_E + f_NE) / (c1o1 + drho_NWB) - + ((vx1_NWB * vx1_NWB - vx3_NWB * vx3_NWB))); + + ////////////////////////////////////////////////////////////////////////// + // NWT// + ////////////////////////////////////////////////////////////////////////// + // index + kzero = kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feF[kzero]; + f_W = fwF[kw]; + f_N = fnF[kzero]; + f_S = fsF[ks]; + f_T = ftF[kzero]; + f_B = fbF[kb]; + f_NE = fneF[kzero]; + f_SW = fswF[ksw]; + f_SE = fseF[ks]; + f_NW = fnwF[kw]; + f_TE = fteF[kzero]; + f_BW = fbwF[kbw]; + f_BE = fbeF[kb]; + f_TW = ftwF[kw]; + f_TN = ftnF[kzero]; + f_BS = fbsF[kbs]; + f_BN = fbnF[kb]; + f_TS = ftsF[ks]; + f_ZERO = fzeroF[kzero]; + f_TNE = ftneF[kzero]; + f_TSW = ftswF[ksw]; + f_TSE = ftseF[ks]; + f_TNW = ftnwF[kw]; + f_BNE = fbneF[kb]; + f_BSW = fbswF[kbsw]; + f_BSE = fbseF[kbs]; + f_BNW = fbnwF[kbw]; + + drho_NWT = f_E + f_W + f_N + f_S + f_T + f_B + f_NE + f_SW + f_SE + f_NW + f_TE + f_BW + f_BE + f_TW + f_TN + + f_BS + f_BN + f_TS + f_ZERO + f_TNE + f_TSW + f_TSE + f_TNW + f_BNE + f_BSW + f_BSE + f_BNW; + vx1_NWT = (((f_TNE - f_BSW) + (f_TSE - f_BNW) + (f_BNE - f_TSW) + (f_BSE - f_TNW)) + + (((f_NE - f_SW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_BE - f_TW))) + (f_E - f_W)) / + (c1o1 + drho_NWT); + vx2_NWT = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_BNE - f_TSW) + (f_BNW - f_TSE)) + + (((f_NE - f_SW) + (f_TN - f_BS)) + ((f_BN - f_TS) + (f_NW - f_SE))) + (f_N - f_S)) / + (c1o1 + drho_NWT); + vx3_NWT = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_TSE - f_BNW) + (f_TSW - f_BNE)) + + (((f_TE - f_BW) + (f_TN - f_BS)) + ((f_TW - f_BE) + (f_TS - f_BN))) + (f_T - f_B)) / + (c1o1 + drho_NWT); + + kxyFromfcNEQ_NWT = + -c3o1 * omegaS * + ((f_SW + f_BSW + f_TSW - f_NW - f_BNW - f_TNW - f_SE - f_BSE - f_TSE + f_NE + f_BNE + f_TNE) / + (c1o1 + drho_NWT) - + ((vx1_NWT * vx2_NWT))); + kyzFromfcNEQ_NWT = + -c3o1 * omegaS * + ((f_BS + f_BSE + f_BSW - f_TS - f_TSE - f_TSW - f_BN - f_BNE - f_BNW + f_TN + f_TNE + f_TNW) / + (c1o1 + drho_NWT) - + ((vx2_NWT * vx3_NWT))); + kxzFromfcNEQ_NWT = + -c3o1 * omegaS * + ((f_BW + f_BSW + f_BNW - f_TW - f_TSW - f_TNW - f_BE - f_BSE - f_BNE + f_TE + f_TSE + f_TNE) / + (c1o1 + drho_NWT) - + ((vx1_NWT * vx3_NWT))); + kxxMyyFromfcNEQ_NWT = + -c3o2 * omegaS * + ((f_BW + f_W + f_TW - f_BS - f_S - f_TS - f_BN - f_N - f_TN + f_BE + f_E + f_TE) / (c1o1 + drho_NWT) - + ((vx1_NWT * vx1_NWT - vx2_NWT * vx2_NWT))); + kxxMzzFromfcNEQ_NWT = + -c3o2 * omegaS * + ((f_SW + f_W + f_NW - f_BS - f_TS - f_B - f_T - f_BN - f_TN + f_SE + f_E + f_NE) / (c1o1 + drho_NWT) - + ((vx1_NWT * vx1_NWT - vx3_NWT * vx3_NWT))); + + ////////////////////////////////////////////////////////////////////////// + // NET// + ////////////////////////////////////////////////////////////////////////// + // index + kzero = kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feF[kzero]; + f_W = fwF[kw]; + f_N = fnF[kzero]; + f_S = fsF[ks]; + f_T = ftF[kzero]; + f_B = fbF[kb]; + f_NE = fneF[kzero]; + f_SW = fswF[ksw]; + f_SE = fseF[ks]; + f_NW = fnwF[kw]; + f_TE = fteF[kzero]; + f_BW = fbwF[kbw]; + f_BE = fbeF[kb]; + f_TW = ftwF[kw]; + f_TN = ftnF[kzero]; + f_BS = fbsF[kbs]; + f_BN = fbnF[kb]; + f_TS = ftsF[ks]; + f_ZERO = fzeroF[kzero]; + f_TNE = ftneF[kzero]; + f_TSW = ftswF[ksw]; + f_TSE = ftseF[ks]; + f_TNW = ftnwF[kw]; + f_BNE = fbneF[kb]; + f_BSW = fbswF[kbsw]; + f_BSE = fbseF[kbs]; + f_BNW = fbnwF[kbw]; + + drho_NET = f_E + f_W + f_N + f_S + f_T + f_B + f_NE + f_SW + f_SE + f_NW + f_TE + f_BW + f_BE + f_TW + f_TN + + f_BS + f_BN + f_TS + f_ZERO + f_TNE + f_TSW + f_TSE + f_TNW + f_BNE + f_BSW + f_BSE + f_BNW; + vx1_NET = (((f_TNE - f_BSW) + (f_TSE - f_BNW) + (f_BNE - f_TSW) + (f_BSE - f_TNW)) + + (((f_NE - f_SW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_BE - f_TW))) + (f_E - f_W)) / + (c1o1 + drho_NET); + vx2_NET = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_BNE - f_TSW) + (f_BNW - f_TSE)) + + (((f_NE - f_SW) + (f_TN - f_BS)) + ((f_BN - f_TS) + (f_NW - f_SE))) + (f_N - f_S)) / + (c1o1 + drho_NET); + vx3_NET = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_TSE - f_BNW) + (f_TSW - f_BNE)) + + (((f_TE - f_BW) + (f_TN - f_BS)) + ((f_TW - f_BE) + (f_TS - f_BN))) + (f_T - f_B)) / + (c1o1 + drho_NET); + + kxyFromfcNEQ_NET = + -c3o1 * omegaS * + ((f_SW + f_BSW + f_TSW - f_NW - f_BNW - f_TNW - f_SE - f_BSE - f_TSE + f_NE + f_BNE + f_TNE) / + (c1o1 + drho_NET) - + ((vx1_NET * vx2_NET))); + kyzFromfcNEQ_NET = + -c3o1 * omegaS * + ((f_BS + f_BSE + f_BSW - f_TS - f_TSE - f_TSW - f_BN - f_BNE - f_BNW + f_TN + f_TNE + f_TNW) / + (c1o1 + drho_NET) - + ((vx2_NET * vx3_NET))); + kxzFromfcNEQ_NET = + -c3o1 * omegaS * + ((f_BW + f_BSW + f_BNW - f_TW - f_TSW - f_TNW - f_BE - f_BSE - f_BNE + f_TE + f_TSE + f_TNE) / + (c1o1 + drho_NET) - + ((vx1_NET * vx3_NET))); + kxxMyyFromfcNEQ_NET = + -c3o2 * omegaS * + ((f_BW + f_W + f_TW - f_BS - f_S - f_TS - f_BN - f_N - f_TN + f_BE + f_E + f_TE) / (c1o1 + drho_NET) - + ((vx1_NET * vx1_NET - vx2_NET * vx2_NET))); + kxxMzzFromfcNEQ_NET = + -c3o2 * omegaS * + ((f_SW + f_W + f_NW - f_BS - f_TS - f_B - f_T - f_BN - f_TN + f_SE + f_E + f_NE) / (c1o1 + drho_NET) - + ((vx1_NET * vx1_NET - vx3_NET * vx3_NET))); + + ////////////////////////////////////////////////////////////////////////// + // NEB// + ////////////////////////////////////////////////////////////////////////// + // index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero = k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feF[kzero]; + f_W = fwF[kw]; + f_N = fnF[kzero]; + f_S = fsF[ks]; + f_T = ftF[kzero]; + f_B = fbF[kb]; + f_NE = fneF[kzero]; + f_SW = fswF[ksw]; + f_SE = fseF[ks]; + f_NW = fnwF[kw]; + f_TE = fteF[kzero]; + f_BW = fbwF[kbw]; + f_BE = fbeF[kb]; + f_TW = ftwF[kw]; + f_TN = ftnF[kzero]; + f_BS = fbsF[kbs]; + f_BN = fbnF[kb]; + f_TS = ftsF[ks]; + f_ZERO = fzeroF[kzero]; + f_TNE = ftneF[kzero]; + f_TSW = ftswF[ksw]; + f_TSE = ftseF[ks]; + f_TNW = ftnwF[kw]; + f_BNE = fbneF[kb]; + f_BSW = fbswF[kbsw]; + f_BSE = fbseF[kbs]; + f_BNW = fbnwF[kbw]; + + drho_NEB = f_E + f_W + f_N + f_S + f_T + f_B + f_NE + f_SW + f_SE + f_NW + f_TE + f_BW + f_BE + f_TW + f_TN + + f_BS + f_BN + f_TS + f_ZERO + f_TNE + f_TSW + f_TSE + f_TNW + f_BNE + f_BSW + f_BSE + f_BNW; + vx1_NEB = (((f_TNE - f_BSW) + (f_TSE - f_BNW) + (f_BNE - f_TSW) + (f_BSE - f_TNW)) + + (((f_NE - f_SW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_BE - f_TW))) + (f_E - f_W)) / + (c1o1 + drho_NEB); + vx2_NEB = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_BNE - f_TSW) + (f_BNW - f_TSE)) + + (((f_NE - f_SW) + (f_TN - f_BS)) + ((f_BN - f_TS) + (f_NW - f_SE))) + (f_N - f_S)) / + (c1o1 + drho_NEB); + vx3_NEB = (((f_TNE - f_BSW) + (f_TNW - f_BSE) + (f_TSE - f_BNW) + (f_TSW - f_BNE)) + + (((f_TE - f_BW) + (f_TN - f_BS)) + ((f_TW - f_BE) + (f_TS - f_BN))) + (f_T - f_B)) / + (c1o1 + drho_NEB); + + kxyFromfcNEQ_NEB = + -c3o1 * omegaS * + ((f_SW + f_BSW + f_TSW - f_NW - f_BNW - f_TNW - f_SE - f_BSE - f_TSE + f_NE + f_BNE + f_TNE) / + (c1o1 + drho_NEB) - + ((vx1_NEB * vx2_NEB))); + kyzFromfcNEQ_NEB = + -c3o1 * omegaS * + ((f_BS + f_BSE + f_BSW - f_TS - f_TSE - f_TSW - f_BN - f_BNE - f_BNW + f_TN + f_TNE + f_TNW) / + (c1o1 + drho_NEB) - + ((vx2_NEB * vx3_NEB))); + kxzFromfcNEQ_NEB = + -c3o1 * omegaS * + ((f_BW + f_BSW + f_BNW - f_TW - f_TSW - f_TNW - f_BE - f_BSE - f_BNE + f_TE + f_TSE + f_TNE) / + (c1o1 + drho_NEB) - + ((vx1_NEB * vx3_NEB))); + kxxMyyFromfcNEQ_NEB = + -c3o2 * omegaS * + ((f_BW + f_W + f_TW - f_BS - f_S - f_TS - f_BN - f_N - f_TN + f_BE + f_E + f_TE) / (c1o1 + drho_NEB) - + ((vx1_NEB * vx1_NEB - vx2_NEB * vx2_NEB))); + kxxMzzFromfcNEQ_NEB = + -c3o2 * omegaS * + ((f_SW + f_W + f_NW - f_BS - f_TS - f_B - f_T - f_BN - f_TN + f_SE + f_E + f_NE) / (c1o1 + drho_NEB) - + ((vx1_NEB * vx1_NEB - vx3_NEB * vx3_NEB))); + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // kxyFromfcNEQ_SWB = zero; + // kyzFromfcNEQ_SWB = zero; + // kxzFromfcNEQ_SWB = zero; + // kxxMyyFromfcNEQ_SWB = zero; + // kxxMzzFromfcNEQ_SWB = zero; + // kxyFromfcNEQ_SWT = zero; + // kyzFromfcNEQ_SWT = zero; + // kxzFromfcNEQ_SWT = zero; + // kxxMyyFromfcNEQ_SWT = zero; + // kxxMzzFromfcNEQ_SWT = zero; + // kxyFromfcNEQ_SET = zero; + // kyzFromfcNEQ_SET = zero; + // kxzFromfcNEQ_SET = zero; + // kxxMyyFromfcNEQ_SET = zero; + // kxxMzzFromfcNEQ_SET = zero; + // kxyFromfcNEQ_SEB = zero; + // kyzFromfcNEQ_SEB = zero; + // kxzFromfcNEQ_SEB = zero; + // kxxMyyFromfcNEQ_SEB = zero; + // kxxMzzFromfcNEQ_SEB = zero; + // kxyFromfcNEQ_NWB = zero; + // kyzFromfcNEQ_NWB = zero; + // kxzFromfcNEQ_NWB = zero; + // kxxMyyFromfcNEQ_NWB = zero; + // kxxMzzFromfcNEQ_NWB = zero; + // kxyFromfcNEQ_NWT = zero; + // kyzFromfcNEQ_NWT = zero; + // kxzFromfcNEQ_NWT = zero; + // kxxMyyFromfcNEQ_NWT = zero; + // kxxMzzFromfcNEQ_NWT = zero; + // kxyFromfcNEQ_NET = zero; + // kyzFromfcNEQ_NET = zero; + // kxzFromfcNEQ_NET = zero; + // kxxMyyFromfcNEQ_NET = zero; + // kxxMzzFromfcNEQ_NET = zero; + // kxyFromfcNEQ_NEB = zero; + // kyzFromfcNEQ_NEB = zero; + // kxzFromfcNEQ_NEB = zero; + // kxxMyyFromfcNEQ_NEB = zero; + // kxxMzzFromfcNEQ_NEB = zero; + ////////////////////////////////////////////////////////////////////////// + // 3 + ////////////////////////////////////////////////////////////////////////// + a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1 * kxyFromfcNEQ_NEB - c2o1 * kxyFromfcNEQ_NET - c2o1 * kxyFromfcNEQ_NWB - c2o1 * kxyFromfcNEQ_NWT + + c2o1 * kxyFromfcNEQ_SEB + c2o1 * kxyFromfcNEQ_SET + c2o1 * kxyFromfcNEQ_SWB + c2o1 * kxyFromfcNEQ_SWT + + c2o1 * kxzFromfcNEQ_NEB - c2o1 * kxzFromfcNEQ_NET + c2o1 * kxzFromfcNEQ_NWB - c2o1 * kxzFromfcNEQ_NWT + + c2o1 * kxzFromfcNEQ_SEB - c2o1 * kxzFromfcNEQ_SET + c2o1 * kxzFromfcNEQ_SWB - c2o1 * kxzFromfcNEQ_SWT + + c8o1 * vx1_NEB + c8o1 * vx1_NET + c8o1 * vx1_NWB + c8o1 * vx1_NWT + c8o1 * vx1_SEB + c8o1 * vx1_SET + + c8o1 * vx1_SWB + c8o1 * vx1_SWT + c2o1 * vx2_NEB + c2o1 * vx2_NET - c2o1 * vx2_NWB - c2o1 * vx2_NWT - + c2o1 * vx2_SEB - c2o1 * vx2_SET + c2o1 * vx2_SWB + c2o1 * vx2_SWT - c2o1 * vx3_NEB + c2o1 * vx3_NET + + c2o1 * vx3_NWB - c2o1 * vx3_NWT - c2o1 * vx3_SEB + c2o1 * vx3_SET + c2o1 * vx3_SWB - c2o1 * vx3_SWT) / + c64o1; + b0 = (c2o1 * kxxMyyFromfcNEQ_NEB + c2o1 * kxxMyyFromfcNEQ_NET + c2o1 * kxxMyyFromfcNEQ_NWB + + c2o1 * kxxMyyFromfcNEQ_NWT - c2o1 * kxxMyyFromfcNEQ_SEB - c2o1 * kxxMyyFromfcNEQ_SET - + c2o1 * kxxMyyFromfcNEQ_SWB - c2o1 * kxxMyyFromfcNEQ_SWT - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - + kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - c2o1 * kxyFromfcNEQ_NEB - c2o1 * kxyFromfcNEQ_NET + + c2o1 * kxyFromfcNEQ_NWB + c2o1 * kxyFromfcNEQ_NWT - c2o1 * kxyFromfcNEQ_SEB - c2o1 * kxyFromfcNEQ_SET + + c2o1 * kxyFromfcNEQ_SWB + c2o1 * kxyFromfcNEQ_SWT + c2o1 * kyzFromfcNEQ_NEB - c2o1 * kyzFromfcNEQ_NET + + c2o1 * kyzFromfcNEQ_NWB - c2o1 * kyzFromfcNEQ_NWT + c2o1 * kyzFromfcNEQ_SEB - c2o1 * kyzFromfcNEQ_SET + + c2o1 * kyzFromfcNEQ_SWB - c2o1 * kyzFromfcNEQ_SWT + c2o1 * vx1_NEB + c2o1 * vx1_NET - c2o1 * vx1_NWB - + c2o1 * vx1_NWT - c2o1 * vx1_SEB - c2o1 * vx1_SET + c2o1 * vx1_SWB + c2o1 * vx1_SWT + c8o1 * vx2_NEB + + c8o1 * vx2_NET + c8o1 * vx2_NWB + c8o1 * vx2_NWT + c8o1 * vx2_SEB + c8o1 * vx2_SET + c8o1 * vx2_SWB + + c8o1 * vx2_SWT - c2o1 * vx3_NEB + c2o1 * vx3_NET - c2o1 * vx3_NWB + c2o1 * vx3_NWT + c2o1 * vx3_SEB - + c2o1 * vx3_SET + c2o1 * vx3_SWB - c2o1 * vx3_SWT) / + c64o1; + c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - + c2o1 * kxxMzzFromfcNEQ_NEB + c2o1 * kxxMzzFromfcNEQ_NET - c2o1 * kxxMzzFromfcNEQ_NWB + + c2o1 * kxxMzzFromfcNEQ_NWT - c2o1 * kxxMzzFromfcNEQ_SEB + c2o1 * kxxMzzFromfcNEQ_SET - + c2o1 * kxxMzzFromfcNEQ_SWB + c2o1 * kxxMzzFromfcNEQ_SWT - c2o1 * kxzFromfcNEQ_NEB - + c2o1 * kxzFromfcNEQ_NET + c2o1 * kxzFromfcNEQ_NWB + c2o1 * kxzFromfcNEQ_NWT - c2o1 * kxzFromfcNEQ_SEB - + c2o1 * kxzFromfcNEQ_SET + c2o1 * kxzFromfcNEQ_SWB + c2o1 * kxzFromfcNEQ_SWT - c2o1 * kyzFromfcNEQ_NEB - + c2o1 * kyzFromfcNEQ_NET - c2o1 * kyzFromfcNEQ_NWB - c2o1 * kyzFromfcNEQ_NWT + c2o1 * kyzFromfcNEQ_SEB + + c2o1 * kyzFromfcNEQ_SET + c2o1 * kyzFromfcNEQ_SWB + c2o1 * kyzFromfcNEQ_SWT - c2o1 * vx1_NEB + + c2o1 * vx1_NET + c2o1 * vx1_NWB - c2o1 * vx1_NWT - c2o1 * vx1_SEB + c2o1 * vx1_SET + c2o1 * vx1_SWB - + c2o1 * vx1_SWT - c2o1 * vx2_NEB + c2o1 * vx2_NET - c2o1 * vx2_NWB + c2o1 * vx2_NWT + c2o1 * vx2_SEB - + c2o1 * vx2_SET + c2o1 * vx2_SWB - c2o1 * vx2_SWT + c8o1 * vx3_NEB + c8o1 * vx3_NET + c8o1 * vx3_NWB + + c8o1 * vx3_NWT + c8o1 * vx3_SEB + c8o1 * vx3_SET + c8o1 * vx3_SWB + c8o1 * vx3_SWT) / + c64o1; + ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT) / c4o1; + bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT) / c4o1; + cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT) / c4o1; + axx = (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + c2o1 * vx2_NEB + + c2o1 * vx2_NET - c2o1 * vx2_NWB - c2o1 * vx2_NWT - c2o1 * vx2_SEB - c2o1 * vx2_SET + c2o1 * vx2_SWB + + c2o1 * vx2_SWT - c2o1 * vx3_NEB + c2o1 * vx3_NET + c2o1 * vx3_NWB - c2o1 * vx3_NWT - c2o1 * vx3_SEB + + c2o1 * vx3_SET + c2o1 * vx3_SWB - c2o1 * vx3_SWT) / + c16o1; + bxx = (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + kxyFromfcNEQ_SEB + + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - c2o1 * vx1_NEB - c2o1 * vx1_NET + + c2o1 * vx1_NWB + c2o1 * vx1_NWT + c2o1 * vx1_SEB + c2o1 * vx1_SET - c2o1 * vx1_SWB - c2o1 * vx1_SWT) / + c8o1; + cxx = (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + kxzFromfcNEQ_SEB + + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + c2o1 * vx1_NEB - c2o1 * vx1_NET - + c2o1 * vx1_NWB + c2o1 * vx1_NWT + c2o1 * vx1_SEB - c2o1 * vx1_SET - c2o1 * vx1_SWB + c2o1 * vx1_SWT) / + c8o1; + ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT) / c4o1; + by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT) / c4o1; + cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT) / c4o1; + ayy = (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - kxyFromfcNEQ_SEB - + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - c2o1 * vx2_NEB - c2o1 * vx2_NET + + c2o1 * vx2_NWB + c2o1 * vx2_NWT + c2o1 * vx2_SEB + c2o1 * vx2_SET - c2o1 * vx2_SWB - c2o1 * vx2_SWT) / + c8o1; + byy = (-c2o1 * kxxMyyFromfcNEQ_NEB - c2o1 * kxxMyyFromfcNEQ_NET - c2o1 * kxxMyyFromfcNEQ_NWB - + c2o1 * kxxMyyFromfcNEQ_NWT + c2o1 * kxxMyyFromfcNEQ_SEB + c2o1 * kxxMyyFromfcNEQ_SET + + c2o1 * kxxMyyFromfcNEQ_SWB + c2o1 * kxxMyyFromfcNEQ_SWT + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - + kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + c2o1 * vx1_NEB + c2o1 * vx1_NET - c2o1 * vx1_NWB - + c2o1 * vx1_NWT - c2o1 * vx1_SEB - c2o1 * vx1_SET + c2o1 * vx1_SWB + c2o1 * vx1_SWT - c2o1 * vx3_NEB + + c2o1 * vx3_NET - c2o1 * vx3_NWB + c2o1 * vx3_NWT + c2o1 * vx3_SEB - c2o1 * vx3_SET + c2o1 * vx3_SWB - + c2o1 * vx3_SWT) / + c16o1; + cyy = (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - kyzFromfcNEQ_SEB - + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + c2o1 * vx2_NEB - c2o1 * vx2_NET + + c2o1 * vx2_NWB - c2o1 * vx2_NWT - c2o1 * vx2_SEB + c2o1 * vx2_SET - c2o1 * vx2_SWB + c2o1 * vx2_SWT) / + c8o1; + az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT) / c4o1; + bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT) / c4o1; + cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT) / c4o1; + azz = (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - kxzFromfcNEQ_SEB + + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + c2o1 * vx3_NEB - c2o1 * vx3_NET - + c2o1 * vx3_NWB + c2o1 * vx3_NWT + c2o1 * vx3_SEB - c2o1 * vx3_SET - c2o1 * vx3_SWB + c2o1 * vx3_SWT) / + c8o1; + bzz = (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - kyzFromfcNEQ_SEB + + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + c2o1 * vx3_NEB - c2o1 * vx3_NET + + c2o1 * vx3_NWB - c2o1 * vx3_NWT - c2o1 * vx3_SEB + c2o1 * vx3_SET - c2o1 * vx3_SWB + c2o1 * vx3_SWT) / + c8o1; + czz = (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + + c2o1 * kxxMzzFromfcNEQ_NEB - c2o1 * kxxMzzFromfcNEQ_NET + c2o1 * kxxMzzFromfcNEQ_NWB - + c2o1 * kxxMzzFromfcNEQ_NWT + c2o1 * kxxMzzFromfcNEQ_SEB - c2o1 * kxxMzzFromfcNEQ_SET + + c2o1 * kxxMzzFromfcNEQ_SWB - c2o1 * kxxMzzFromfcNEQ_SWT - c2o1 * vx1_NEB + c2o1 * vx1_NET + + c2o1 * vx1_NWB - c2o1 * vx1_NWT - c2o1 * vx1_SEB + c2o1 * vx1_SET + c2o1 * vx1_SWB - c2o1 * vx1_SWT - + c2o1 * vx2_NEB + c2o1 * vx2_NET - c2o1 * vx2_NWB + c2o1 * vx2_NWT + c2o1 * vx2_SEB - c2o1 * vx2_SET + + c2o1 * vx2_SWB - c2o1 * vx2_SWT) / + c16o1; + axy = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT) / c2o1; + bxy = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT) / c2o1; + cxy = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT) / c2o1; + axz = (-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT - vx1_SEB + vx1_SET + vx1_SWB - vx1_SWT) / c2o1; + bxz = (-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT - vx2_SEB + vx2_SET + vx2_SWB - vx2_SWT) / c2o1; + cxz = (-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT - vx3_SEB + vx3_SET + vx3_SWB - vx3_SWT) / c2o1; + ayz = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT + vx1_SEB - vx1_SET + vx1_SWB - vx1_SWT) / c2o1; + byz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT + vx2_SEB - vx2_SET + vx2_SWB - vx2_SWT) / c2o1; + cyz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT + vx3_SEB - vx3_SET + vx3_SWB - vx3_SWT) / c2o1; + // axyz=-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT + vx1_SEB - vx1_SET - vx1_SWB + vx1_SWT; + // bxyz=-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT + vx2_SEB - vx2_SET - vx2_SWB + vx2_SWT; + // cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real kxyAverage = c0o1; + real kyzAverage = c0o1; + real kxzAverage = c0o1; + real kxxMyyAverage = c0o1; + real kxxMzzAverage = c0o1; + // real kxyAverage =(kxyFromfcNEQ_SWB+ + // kxyFromfcNEQ_SWT+ + // kxyFromfcNEQ_SET+ + // kxyFromfcNEQ_SEB+ + // kxyFromfcNEQ_NWB+ + // kxyFromfcNEQ_NWT+ + // kxyFromfcNEQ_NET+ + // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); + // real kyzAverage =(kyzFromfcNEQ_SWB+ + // kyzFromfcNEQ_SWT+ + // kyzFromfcNEQ_SET+ + // kyzFromfcNEQ_SEB+ + // kyzFromfcNEQ_NWB+ + // kyzFromfcNEQ_NWT+ + // kyzFromfcNEQ_NET+ + // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); + // real kxzAverage =(kxzFromfcNEQ_SWB+ + // kxzFromfcNEQ_SWT+ + // kxzFromfcNEQ_SET+ + // kxzFromfcNEQ_SEB+ + // kxzFromfcNEQ_NWB+ + // kxzFromfcNEQ_NWT+ + // kxzFromfcNEQ_NET+ + // kxzFromfcNEQ_NEB)*c1o8-(az+cx); + // real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ + // kxxMyyFromfcNEQ_SWT+ + // kxxMyyFromfcNEQ_SET+ + // kxxMyyFromfcNEQ_SEB+ + // kxxMyyFromfcNEQ_NWB+ + // kxxMyyFromfcNEQ_NWT+ + // kxxMyyFromfcNEQ_NET+ + // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); + // real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ + // kxxMzzFromfcNEQ_SWT+ + // kxxMzzFromfcNEQ_SET+ + // kxxMzzFromfcNEQ_SEB+ + // kxxMzzFromfcNEQ_NWB+ + // kxxMzzFromfcNEQ_NWT+ + // kxxMzzFromfcNEQ_NET+ + // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////Press + // d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * + // c1o8; dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) + // * c1o4; dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - + // press_SWT) * c1o4; dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + // + press_SWT) * c1o4; dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + + // press_SWB + press_SWT) * c1o2; dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + // + press_SWB - press_SWT) * c1o2; dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - + // press_SET + press_SWB - press_SWT) * c1o2; dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB + // - press_SET - press_SWB + press_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // drho + real LapRho = ((xoff != c0o1) || (yoff != c0o1) || (zoff != c0o1)) + ? c0o1 + : -c3o1 * (ax * ax + by * by + cz * cz) - c6o1 * (bx * ay + cx * az + cy * bz); + d0 = (drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT - c2o1 * LapRho) * + c1o8; + dx = (drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + dy = (drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + dxy = (drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + // dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + // d0 = zero; + // dx = zero; + // dy = zero; + // dz = zero; + // dxy = zero; + // dxz = zero; + // dyz = zero; + // dxyz = zero; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + // Bernd das Brot + // + // + // x------x + // | | + // | ---+--->X + // | | \ + // x------x \ + // off-vector + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + + xoff * yoff * axy + xoff * zoff * axz + yoff * zoff * ayz; + ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; + ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz; + az = az + c2o1 * zoff * azz + xoff * axz + yoff * ayz; + b0 = b0 + xoff * bx + yoff * by + zoff * bz + xoff_sq * bxx + yoff_sq * byy + zoff_sq * bzz + + xoff * yoff * bxy + xoff * zoff * bxz + yoff * zoff * byz; + bx = bx + c2o1 * xoff * bxx + yoff * bxy + zoff * bxz; + by = by + c2o1 * yoff * byy + xoff * bxy + zoff * byz; + bz = bz + c2o1 * zoff * bzz + xoff * bxz + yoff * byz; + c0 = c0 + xoff * cx + yoff * cy + zoff * cz + xoff_sq * cxx + yoff_sq * cyy + zoff_sq * czz + + xoff * yoff * cxy + xoff * zoff * cxz + yoff * zoff * cyz; + cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; + cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; + cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff * yoff * dxy + xoff * zoff * dxz + yoff * zoff * dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FIX + // /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! + // b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= + // cxyz=zero; b0=zero; bx=zero; by=zero; bz=zero; bxx=zero; byy=zero; bzz=zero; bxy=zero; bxz=zero; byz=zero; + // c0=zero; + // cx=zero; + // cy=zero; + // cz=zero; + // cxx=zero; + // cyy=zero; + // czz=zero; + // cxy=zero; + // cxz=zero; + // cyz=zero; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0o1; + real mfabb = c0o1; + real mfbcb = c0o1; + real mfbab = c0o1; + real mfbbc = c0o1; + real mfbba = c0o1; + real mfccb = c0o1; + real mfaab = c0o1; + real mfcab = c0o1; + real mfacb = c0o1; + real mfcbc = c0o1; + real mfaba = c0o1; + real mfcba = c0o1; + real mfabc = c0o1; + real mfbcc = c0o1; + real mfbaa = c0o1; + real mfbca = c0o1; + real mfbac = c0o1; + real mfbbb = c0o1; + real mfccc = c0o1; + real mfaac = c0o1; + real mfcac = c0o1; + real mfacc = c0o1; + real mfcca = c0o1; + real mfaaa = c0o1; + real mfcaa = c0o1; + real mfaca = c0o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + // real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + // real O3 = c2o1 - o; + // real residu, residutmp; + // residutmp = c0o1;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1; // zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + // Position C 0., 0., 0. + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // x = 0.; + // y = 0.; + // z = 0.; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // real mxoff = -xoff; + // real myoff = -yoff; + // real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // press = press_NET * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // press_NWT * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // press_SET * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // press_SWT * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // press_NEB * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // press_NWB * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // press_SEB * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + + // press_SWB * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); + // drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); + press = d0; + vvx = a0; + vvy = b0; + vvz = c0; + + // mfaaa = drho; + // mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx * vvx; + vy2 = vvy * vvy; + vz2 = vvz * vvz; + oMdrho = c1o1; + // oMdrho = one - mfaaa; + + // two + // linear combinations + mxxPyyPzz = mfaaa; + // mxxMyy = -c2o3*(ax - by)*eps_new/o; + // mxxMzz = -c2o3*(ax - cz)*eps_new/o; + + // mfabb = -c1o3 * (bz + cy)*eps_new/o; + // mfbab = -c1o3 * (az + cx)*eps_new/o; + // mfbba = -c1o3 * (ay + bx)*eps_new/o; + mxxMyy = -c2o3 * ((ax - by) + kxxMyyAverage) * eps_new / o * (c1o1 + press); + mxxMzz = -c2o3 * ((ax - cz) + kxxMzzAverage) * eps_new / o * (c1o1 + press); + + mfabb = -c1o3 * ((bz + cy) + kyzAverage) * eps_new / o * (c1o1 + press); + mfbab = -c1o3 * ((az + cx) + kxzAverage) * eps_new / o * (c1o1 + press); + mfbba = -c1o3 * ((ay + bx) + kxyAverage) * eps_new / o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * (mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * (mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + // 3. + // linear combinations + // residu = residutmp * (ayz + bxz + cxy ); + // mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + // residu = residutmp * (axy + two*bxx + two*bzz + cyz ); + // residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); + // mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + // residu = residutmp * (axy + two*bxx - two*bzz - cyz ); + // residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); + // mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + // residu = residutmp * (axz + byz + two*cxx + two*cyy ); + // residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); + // mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + // residu = residutmp * (axz - byz + two*cxx - two*cyy ); + // residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); + // mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + // residu = residutmp * (two*ayy + two*azz + bxy + cxz ); + // residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); + // mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + // residu = residutmp * (two*ayy - two*azz + bxy - cxz ); + // residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); + // mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = (mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = (mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = (mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + // 4. + mfacc = mfaaa * c1o9; + mfcac = mfacc; + mfcca = mfacc; + // 5. + + // 6. + mfccc = mfaaa * c1o27; + //////////////////////////////////////////////////////////////////////////////////// + // back + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * (vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * (vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * (vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * (vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * (vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * (vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * (vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * (vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * (vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * (vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * (vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * (vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * (vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * (vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * (vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * (vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * (vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + // index 0 + kzero = posC[k]; + kw = neighborCX[kzero]; + ks = neighborCY[kzero]; + kb = neighborCZ[kzero]; + ksw = neighborCY[kw]; + kbw = neighborCZ[kw]; + kbs = neighborCZ[ks]; + kbsw = neighborCZ[ksw]; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feC[kzero] = mfcbb; + fwC[kw] = mfabb; + fnC[kzero] = mfbcb; + fsC[ks] = mfbab; + ftC[kzero] = mfbbc; + fbC[kb] = mfbba; + fneC[kzero] = mfccb; + fswC[ksw] = mfaab; + fseC[ks] = mfcab; + fnwC[kw] = mfacb; + fteC[kzero] = mfcbc; + fbwC[kbw] = mfaba; + fbeC[kb] = mfcba; + ftwC[kw] = mfabc; + ftnC[kzero] = mfbcc; + fbsC[kbs] = mfbaa; + fbnC[kb] = mfbca; + ftsC[ks] = mfbac; + fzeroC[kzero] = mfbbb; + ftneC[kzero] = mfccc; + ftseC[ks] = mfcac; + fbneC[kb] = mfcca; + fbseC[kbs] = mfcaa; + ftnwC[kw] = mfacc; + ftswC[ksw] = mfaac; + fbnwC[kbw] = mfaca; + fbswC[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + } +} + extern "C" __global__ void scaleFC_RhoSq_comp_27(real* DC, real* DF, unsigned int* neighborCX, @@ -9609,100 +11078,6 @@ extern "C" __global__ void scaleFC_RhoSq_comp_27(real* DC, unsigned int nyF, OffFC offFC) { - real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, - *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; - - feF = &DF[dirE *size_MatF]; - fwF = &DF[dirW *size_MatF]; - fnF = &DF[dirN *size_MatF]; - fsF = &DF[dirS *size_MatF]; - ftF = &DF[dirT *size_MatF]; - fbF = &DF[dirB *size_MatF]; - fneF = &DF[dirNE *size_MatF]; - fswF = &DF[dirSW *size_MatF]; - fseF = &DF[dirSE *size_MatF]; - fnwF = &DF[dirNW *size_MatF]; - fteF = &DF[dirTE *size_MatF]; - fbwF = &DF[dirBW *size_MatF]; - fbeF = &DF[dirBE *size_MatF]; - ftwF = &DF[dirTW *size_MatF]; - ftnF = &DF[dirTN *size_MatF]; - fbsF = &DF[dirBS *size_MatF]; - fbnF = &DF[dirBN *size_MatF]; - ftsF = &DF[dirTS *size_MatF]; - fzeroF = &DF[dirZERO*size_MatF]; - ftneF = &DF[dirTNE *size_MatF]; - ftswF = &DF[dirTSW *size_MatF]; - ftseF = &DF[dirTSE *size_MatF]; - ftnwF = &DF[dirTNW *size_MatF]; - fbneF = &DF[dirBNE *size_MatF]; - fbswF = &DF[dirBSW *size_MatF]; - fbseF = &DF[dirBSE *size_MatF]; - fbnwF = &DF[dirBNW *size_MatF]; - - real *feC, *fwC, *fnC, *fsC, *ftC, *fbC, *fneC, *fswC, *fseC, *fnwC, *fteC, *fbwC, *fbeC, *ftwC, *ftnC, *fbsC, *fbnC, *ftsC, *fzeroC, - *ftneC, *ftswC, *ftseC, *ftnwC, *fbneC, *fbswC, *fbseC, *fbnwC; - - if (evenOrOdd==true) - { - feC = &DC[dirE *size_MatC]; - fwC = &DC[dirW *size_MatC]; - fnC = &DC[dirN *size_MatC]; - fsC = &DC[dirS *size_MatC]; - ftC = &DC[dirT *size_MatC]; - fbC = &DC[dirB *size_MatC]; - fneC = &DC[dirNE *size_MatC]; - fswC = &DC[dirSW *size_MatC]; - fseC = &DC[dirSE *size_MatC]; - fnwC = &DC[dirNW *size_MatC]; - fteC = &DC[dirTE *size_MatC]; - fbwC = &DC[dirBW *size_MatC]; - fbeC = &DC[dirBE *size_MatC]; - ftwC = &DC[dirTW *size_MatC]; - ftnC = &DC[dirTN *size_MatC]; - fbsC = &DC[dirBS *size_MatC]; - fbnC = &DC[dirBN *size_MatC]; - ftsC = &DC[dirTS *size_MatC]; - fzeroC = &DC[dirZERO*size_MatC]; - ftneC = &DC[dirTNE *size_MatC]; - ftswC = &DC[dirTSW *size_MatC]; - ftseC = &DC[dirTSE *size_MatC]; - ftnwC = &DC[dirTNW *size_MatC]; - fbneC = &DC[dirBNE *size_MatC]; - fbswC = &DC[dirBSW *size_MatC]; - fbseC = &DC[dirBSE *size_MatC]; - fbnwC = &DC[dirBNW *size_MatC]; - } - else - { - fwC = &DC[dirE *size_MatC]; - feC = &DC[dirW *size_MatC]; - fsC = &DC[dirN *size_MatC]; - fnC = &DC[dirS *size_MatC]; - fbC = &DC[dirT *size_MatC]; - ftC = &DC[dirB *size_MatC]; - fswC = &DC[dirNE *size_MatC]; - fneC = &DC[dirSW *size_MatC]; - fnwC = &DC[dirSE *size_MatC]; - fseC = &DC[dirNW *size_MatC]; - fbwC = &DC[dirTE *size_MatC]; - fteC = &DC[dirBW *size_MatC]; - ftwC = &DC[dirBE *size_MatC]; - fbeC = &DC[dirTW *size_MatC]; - fbsC = &DC[dirTN *size_MatC]; - ftnC = &DC[dirBS *size_MatC]; - ftsC = &DC[dirBN *size_MatC]; - fbnC = &DC[dirTS *size_MatC]; - fzeroC = &DC[dirZERO*size_MatC]; - fbswC = &DC[dirTNE *size_MatC]; - fbneC = &DC[dirTSW *size_MatC]; - fbnwC = &DC[dirTSE *size_MatC]; - fbseC = &DC[dirTNW *size_MatC]; - ftswC = &DC[dirBNE *size_MatC]; - ftneC = &DC[dirBSW *size_MatC]; - ftnwC = &DC[dirBSE *size_MatC]; - ftseC = &DC[dirBNW *size_MatC]; - } //////////////////////////////////////////////////////////////////////////////// const unsigned ix = threadIdx.x; // Globaler x-Index const unsigned iy = blockIdx.x; // Globaler y-Index @@ -9714,1178 +11089,36 @@ extern "C" __global__ void scaleFC_RhoSq_comp_27(real* DC, const unsigned k = nx*(ny*iz + iy) + ix; ////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - real eps_new = c2o1; - real omegaS = omFine;//-omFine; - real o = omCoarse;//-omCoarse; - //real op = one; - //real cu_sq; - - real xoff, yoff, zoff; - real xoff_sq, yoff_sq, zoff_sq; - - real press;//,drho,vx1,vx2,vx3; - real /*press_SWT,*/drho_SWT,vx1_SWT,vx2_SWT,vx3_SWT; - real /*press_NWT,*/drho_NWT,vx1_NWT,vx2_NWT,vx3_NWT; - real /*press_NET,*/drho_NET,vx1_NET,vx2_NET,vx3_NET; - real /*press_SET,*/drho_SET,vx1_SET,vx2_SET,vx3_SET; - real /*press_SWB,*/drho_SWB,vx1_SWB,vx2_SWB,vx3_SWB; - real /*press_NWB,*/drho_NWB,vx1_NWB,vx2_NWB,vx3_NWB; - real /*press_NEB,*/drho_NEB,vx1_NEB,vx2_NEB,vx3_NEB; - real /*press_SEB,*/drho_SEB,vx1_SEB,vx2_SEB,vx3_SEB; - real f_E,f_W,f_N,f_S,f_T,f_B,f_NE,f_SW,f_SE,f_NW,f_TE,f_BW,f_BE,f_TW,f_TN,f_BS,f_BN,f_TS,f_ZERO,f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW; - //real feq_E,feq_W,feq_N,feq_S,feq_T,feq_B,feq_NE,feq_SW,feq_SE,feq_NW,feq_TE,feq_BW,feq_BE,feq_TW,feq_TN,feq_BS,feq_BN,feq_TS,feq_ZERO,feq_TNE, feq_TSW, feq_TSE, feq_TNW, feq_BNE, feq_BSW, feq_BSE, feq_BNW; - real kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT; - real kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT; - real kxyFromfcNEQ_NET, kyzFromfcNEQ_NET, kxzFromfcNEQ_NET, kxxMyyFromfcNEQ_NET, kxxMzzFromfcNEQ_NET; - real kxyFromfcNEQ_SET, kyzFromfcNEQ_SET, kxzFromfcNEQ_SET, kxxMyyFromfcNEQ_SET, kxxMzzFromfcNEQ_SET; - real kxyFromfcNEQ_SWB, kyzFromfcNEQ_SWB, kxzFromfcNEQ_SWB, kxxMyyFromfcNEQ_SWB, kxxMzzFromfcNEQ_SWB; - real kxyFromfcNEQ_NWB, kyzFromfcNEQ_NWB, kxzFromfcNEQ_NWB, kxxMyyFromfcNEQ_NWB, kxxMzzFromfcNEQ_NWB; - real kxyFromfcNEQ_NEB, kyzFromfcNEQ_NEB, kxzFromfcNEQ_NEB, kxxMyyFromfcNEQ_NEB, kxxMzzFromfcNEQ_NEB; - real kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; - real a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz/*, axyz, bxyz, cxyz*/; - real d0, dx, dy, dz, dxy, dxz, dyz/*, dxyz*/; - - if(k<kFC) - { - ////////////////////////////////////////////////////////////////////////// - xoff = offFC.xOffFC[k]; - yoff = offFC.yOffFC[k]; - zoff = offFC.zOffFC[k]; - xoff_sq = xoff * xoff; - yoff_sq = yoff * yoff; - zoff_sq = zoff * zoff; - ////////////////////////////////////////////////////////////////////////// - //SWB// - ////////////////////////////////////////////////////////////////////////// - //index 0 - unsigned int k0zero= posFSWB[k]; - unsigned int k0w = neighborFX[k0zero]; - unsigned int k0s = neighborFY[k0zero]; - unsigned int k0b = neighborFZ[k0zero]; - unsigned int k0sw = neighborFY[k0w]; - unsigned int k0bw = neighborFZ[k0w]; - unsigned int k0bs = neighborFZ[k0s]; - unsigned int k0bsw = neighborFZ[k0sw]; - ////////////////////////////////////////////////////////////////////////// - //index - unsigned int kzero= k0zero; - unsigned int kw = k0w; - unsigned int ks = k0s; - unsigned int kb = k0b; - unsigned int ksw = k0sw; - unsigned int kbw = k0bw; - unsigned int kbs = k0bs; - unsigned int kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - f_E = feF[kzero]; - f_W = fwF[kw]; - f_N = fnF[kzero]; - f_S = fsF[ks]; - f_T = ftF[kzero]; - f_B = fbF[kb]; - f_NE = fneF[kzero]; - f_SW = fswF[ksw]; - f_SE = fseF[ks]; - f_NW = fnwF[kw]; - f_TE = fteF[kzero]; - f_BW = fbwF[kbw]; - f_BE = fbeF[kb]; - f_TW = ftwF[kw]; - f_TN = ftnF[kzero]; - f_BS = fbsF[kbs]; - f_BN = fbnF[kb]; - f_TS = ftsF[ks]; - f_ZERO = fzeroF[kzero]; - f_TNE = ftneF[kzero]; - f_TSW = ftswF[ksw]; - f_TSE = ftseF[ks]; - f_TNW = ftnwF[kw]; - f_BNE = fbneF[kb]; - f_BSW = fbswF[kbsw]; - f_BSE = fbseF[kbs]; - f_BNW = fbnwF[kbw]; - - drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWB); - vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); - vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); - - kxyFromfcNEQ_SWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); - kyzFromfcNEQ_SWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); - kxzFromfcNEQ_SWB = -c3o1*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx3_SWB))); - kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx2_SWB*vx2_SWB))); - kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx3_SWB*vx3_SWB))); - - - ////////////////////////////////////////////////////////////////////////// - //SWT// - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feF[kzero]; - f_W = fwF[kw]; - f_N = fnF[kzero]; - f_S = fsF[ks]; - f_T = ftF[kzero]; - f_B = fbF[kb]; - f_NE = fneF[kzero]; - f_SW = fswF[ksw]; - f_SE = fseF[ks]; - f_NW = fnwF[kw]; - f_TE = fteF[kzero]; - f_BW = fbwF[kbw]; - f_BE = fbeF[kb]; - f_TW = ftwF[kw]; - f_TN = ftnF[kzero]; - f_BS = fbsF[kbs]; - f_BN = fbnF[kb]; - f_TS = ftsF[ks]; - f_ZERO = fzeroF[kzero]; - f_TNE = ftneF[kzero]; - f_TSW = ftswF[ksw]; - f_TSE = ftseF[ks]; - f_TNW = ftnwF[kw]; - f_BNE = fbneF[kb]; - f_BSW = fbswF[kbsw]; - f_BSE = fbseF[kbs]; - f_BNW = fbnwF[kbw]; - - drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWT); - vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); - vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); - - kxyFromfcNEQ_SWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); - kyzFromfcNEQ_SWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); - kxzFromfcNEQ_SWT = -c3o1*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx3_SWT))); - kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx2_SWT*vx2_SWT))); - kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx3_SWT*vx3_SWT))); + scaleFC_RhoSq_comp_27_Calculation(DC, DF, neighborCX, neighborCY, neighborCZ, neighborFX, neighborFY, neighborFZ, + size_MatC, size_MatF, evenOrOdd, posC, posFSWB, kFC, omCoarse, omFine, nu, nxC, + nyC, nxF, nyF, offFC, k); +} - ////////////////////////////////////////////////////////////////////////// - //SET// - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feF[kzero]; - f_W = fwF[kw]; - f_N = fnF[kzero]; - f_S = fsF[ks]; - f_T = ftF[kzero]; - f_B = fbF[kb]; - f_NE = fneF[kzero]; - f_SW = fswF[ksw]; - f_SE = fseF[ks]; - f_NW = fnwF[kw]; - f_TE = fteF[kzero]; - f_BW = fbwF[kbw]; - f_BE = fbeF[kb]; - f_TW = ftwF[kw]; - f_TN = ftnF[kzero]; - f_BS = fbsF[kbs]; - f_BN = fbnF[kb]; - f_TS = ftsF[ks]; - f_ZERO = fzeroF[kzero]; - f_TNE = ftneF[kzero]; - f_TSW = ftswF[ksw]; - f_TSE = ftseF[ks]; - f_TNW = ftnwF[kw]; - f_BNE = fbneF[kb]; - f_BSW = fbswF[kbsw]; - f_BSE = fbseF[kbs]; - f_BNW = fbnwF[kbw]; - - drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SET); - vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); - vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); - - kxyFromfcNEQ_SET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); - kyzFromfcNEQ_SET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); - kxzFromfcNEQ_SET = -c3o1*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx3_SET))); - kxxMyyFromfcNEQ_SET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx2_SET*vx2_SET))); - kxxMzzFromfcNEQ_SET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx3_SET*vx3_SET))); - - ////////////////////////////////////////////////////////////////////////// - //SEB// - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feF[kzero]; - f_W = fwF[kw]; - f_N = fnF[kzero]; - f_S = fsF[ks]; - f_T = ftF[kzero]; - f_B = fbF[kb]; - f_NE = fneF[kzero]; - f_SW = fswF[ksw]; - f_SE = fseF[ks]; - f_NW = fnwF[kw]; - f_TE = fteF[kzero]; - f_BW = fbwF[kbw]; - f_BE = fbeF[kb]; - f_TW = ftwF[kw]; - f_TN = ftnF[kzero]; - f_BS = fbsF[kbs]; - f_BN = fbnF[kb]; - f_TS = ftsF[ks]; - f_ZERO = fzeroF[kzero]; - f_TNE = ftneF[kzero]; - f_TSW = ftswF[ksw]; - f_TSE = ftseF[ks]; - f_TNW = ftnwF[kw]; - f_BNE = fbneF[kb]; - f_BSW = fbswF[kbsw]; - f_BSE = fbseF[kbs]; - f_BNW = fbnwF[kbw]; - - drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SEB); - vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); - vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); - - kxyFromfcNEQ_SEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); - kyzFromfcNEQ_SEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); - kxzFromfcNEQ_SEB = -c3o1*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx3_SEB))); - kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx2_SEB*vx2_SEB))); - kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx3_SEB*vx3_SEB))); - - ////////////////////////////////////////////////////////////////////////// - //NWB// - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= k0s; - k0w = k0sw; - k0s = neighborFY[k0s]; - k0b = k0bs; - k0sw = neighborFY[k0sw]; - k0bw = k0bsw; - k0bs = neighborFY[k0bs]; - k0bsw = neighborFY[k0bsw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - f_E = feF[kzero]; - f_W = fwF[kw]; - f_N = fnF[kzero]; - f_S = fsF[ks]; - f_T = ftF[kzero]; - f_B = fbF[kb]; - f_NE = fneF[kzero]; - f_SW = fswF[ksw]; - f_SE = fseF[ks]; - f_NW = fnwF[kw]; - f_TE = fteF[kzero]; - f_BW = fbwF[kbw]; - f_BE = fbeF[kb]; - f_TW = ftwF[kw]; - f_TN = ftnF[kzero]; - f_BS = fbsF[kbs]; - f_BN = fbnF[kb]; - f_TS = ftsF[ks]; - f_ZERO = fzeroF[kzero]; - f_TNE = ftneF[kzero]; - f_TSW = ftswF[ksw]; - f_TSE = ftseF[ks]; - f_TNW = ftnwF[kw]; - f_BNE = fbneF[kb]; - f_BSW = fbswF[kbsw]; - f_BSE = fbseF[kbs]; - f_BNW = fbnwF[kbw]; - - drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWB); - vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); - vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); - - kxyFromfcNEQ_NWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); - kyzFromfcNEQ_NWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); - kxzFromfcNEQ_NWB = -c3o1*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx3_NWB))); - kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx2_NWB*vx2_NWB))); - kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx3_NWB*vx3_NWB))); - - ////////////////////////////////////////////////////////////////////////// - //NWT// - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feF[kzero]; - f_W = fwF[kw]; - f_N = fnF[kzero]; - f_S = fsF[ks]; - f_T = ftF[kzero]; - f_B = fbF[kb]; - f_NE = fneF[kzero]; - f_SW = fswF[ksw]; - f_SE = fseF[ks]; - f_NW = fnwF[kw]; - f_TE = fteF[kzero]; - f_BW = fbwF[kbw]; - f_BE = fbeF[kb]; - f_TW = ftwF[kw]; - f_TN = ftnF[kzero]; - f_BS = fbsF[kbs]; - f_BN = fbnF[kb]; - f_TS = ftsF[ks]; - f_ZERO = fzeroF[kzero]; - f_TNE = ftneF[kzero]; - f_TSW = ftswF[ksw]; - f_TSE = ftseF[ks]; - f_TNW = ftnwF[kw]; - f_BNE = fbneF[kb]; - f_BSW = fbswF[kbsw]; - f_BSE = fbseF[kbs]; - f_BNW = fbnwF[kbw]; - - drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWT); - vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); - vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); - - kxyFromfcNEQ_NWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); - kyzFromfcNEQ_NWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); - kxzFromfcNEQ_NWT = -c3o1*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx3_NWT))); - kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx2_NWT*vx2_NWT))); - kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx3_NWT*vx3_NWT))); - - ////////////////////////////////////////////////////////////////////////// - //NET// - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feF[kzero]; - f_W = fwF[kw]; - f_N = fnF[kzero]; - f_S = fsF[ks]; - f_T = ftF[kzero]; - f_B = fbF[kb]; - f_NE = fneF[kzero]; - f_SW = fswF[ksw]; - f_SE = fseF[ks]; - f_NW = fnwF[kw]; - f_TE = fteF[kzero]; - f_BW = fbwF[kbw]; - f_BE = fbeF[kb]; - f_TW = ftwF[kw]; - f_TN = ftnF[kzero]; - f_BS = fbsF[kbs]; - f_BN = fbnF[kb]; - f_TS = ftsF[ks]; - f_ZERO = fzeroF[kzero]; - f_TNE = ftneF[kzero]; - f_TSW = ftswF[ksw]; - f_TSE = ftseF[ks]; - f_TNW = ftnwF[kw]; - f_BNE = fbneF[kb]; - f_BSW = fbswF[kbsw]; - f_BSE = fbseF[kbs]; - f_BNW = fbnwF[kbw]; - - drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NET); - vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); - vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); - - kxyFromfcNEQ_NET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); - kyzFromfcNEQ_NET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); - kxzFromfcNEQ_NET = -c3o1*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx3_NET))); - kxxMyyFromfcNEQ_NET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx2_NET*vx2_NET))); - kxxMzzFromfcNEQ_NET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx3_NET*vx3_NET))); - - ////////////////////////////////////////////////////////////////////////// - //NEB// - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feF[kzero]; - f_W = fwF[kw]; - f_N = fnF[kzero]; - f_S = fsF[ks]; - f_T = ftF[kzero]; - f_B = fbF[kb]; - f_NE = fneF[kzero]; - f_SW = fswF[ksw]; - f_SE = fseF[ks]; - f_NW = fnwF[kw]; - f_TE = fteF[kzero]; - f_BW = fbwF[kbw]; - f_BE = fbeF[kb]; - f_TW = ftwF[kw]; - f_TN = ftnF[kzero]; - f_BS = fbsF[kbs]; - f_BN = fbnF[kb]; - f_TS = ftsF[ks]; - f_ZERO = fzeroF[kzero]; - f_TNE = ftneF[kzero]; - f_TSW = ftswF[ksw]; - f_TSE = ftseF[ks]; - f_TNW = ftnwF[kw]; - f_BNE = fbneF[kb]; - f_BSW = fbswF[kbsw]; - f_BSE = fbseF[kbs]; - f_BNW = fbnwF[kbw]; - - drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NEB); - vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); - vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); - - kxyFromfcNEQ_NEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); - kyzFromfcNEQ_NEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); - kxzFromfcNEQ_NEB = -c3o1*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx3_NEB))); - kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB))); - kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB))); - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //kxyFromfcNEQ_SWB = zero; - //kyzFromfcNEQ_SWB = zero; - //kxzFromfcNEQ_SWB = zero; - //kxxMyyFromfcNEQ_SWB = zero; - //kxxMzzFromfcNEQ_SWB = zero; - //kxyFromfcNEQ_SWT = zero; - //kyzFromfcNEQ_SWT = zero; - //kxzFromfcNEQ_SWT = zero; - //kxxMyyFromfcNEQ_SWT = zero; - //kxxMzzFromfcNEQ_SWT = zero; - //kxyFromfcNEQ_SET = zero; - //kyzFromfcNEQ_SET = zero; - //kxzFromfcNEQ_SET = zero; - //kxxMyyFromfcNEQ_SET = zero; - //kxxMzzFromfcNEQ_SET = zero; - //kxyFromfcNEQ_SEB = zero; - //kyzFromfcNEQ_SEB = zero; - //kxzFromfcNEQ_SEB = zero; - //kxxMyyFromfcNEQ_SEB = zero; - //kxxMzzFromfcNEQ_SEB = zero; - //kxyFromfcNEQ_NWB = zero; - //kyzFromfcNEQ_NWB = zero; - //kxzFromfcNEQ_NWB = zero; - //kxxMyyFromfcNEQ_NWB = zero; - //kxxMzzFromfcNEQ_NWB = zero; - //kxyFromfcNEQ_NWT = zero; - //kyzFromfcNEQ_NWT = zero; - //kxzFromfcNEQ_NWT = zero; - //kxxMyyFromfcNEQ_NWT = zero; - //kxxMzzFromfcNEQ_NWT = zero; - //kxyFromfcNEQ_NET = zero; - //kyzFromfcNEQ_NET = zero; - //kxzFromfcNEQ_NET = zero; - //kxxMyyFromfcNEQ_NET = zero; - //kxxMzzFromfcNEQ_NET = zero; - //kxyFromfcNEQ_NEB = zero; - //kyzFromfcNEQ_NEB = zero; - //kxzFromfcNEQ_NEB = zero; - //kxxMyyFromfcNEQ_NEB = zero; - //kxxMzzFromfcNEQ_NEB = zero; - ////////////////////////////////////////////////////////////////////////// - //3 - ////////////////////////////////////////////////////////////////////////// - a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + - c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + - c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + - c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - - c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + - c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; - b0 = (c2o1*kxxMyyFromfcNEQ_NEB + c2o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_NWT - - c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - - c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + - c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + - c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; - c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - - c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - - c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + - c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + - c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; - ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/c4o1; - bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/c4o1; - cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/c4o1; - axx= (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; - bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + - kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; - cxx= (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + - c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; - ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/c4o1; - by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/c4o1; - cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/c4o1; - ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - - kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; - byy= (-c2o1*kxxMyyFromfcNEQ_NEB - c2o1*kxxMyyFromfcNEQ_NET - c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_NWT + - c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; - cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; - az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/c4o1; - bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/c4o1; - cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/c4o1; - azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; - bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; - czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + - c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + - c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; - axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/c2o1; - bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/c2o1; - cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/c2o1; - axz= (-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT - vx1_SEB + vx1_SET + vx1_SWB - vx1_SWT)/c2o1; - bxz= (-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT - vx2_SEB + vx2_SET + vx2_SWB - vx2_SWT)/c2o1; - cxz= (-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT - vx3_SEB + vx3_SET + vx3_SWB - vx3_SWT)/c2o1; - ayz= (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT + vx1_SEB - vx1_SET + vx1_SWB - vx1_SWT)/c2o1; - byz= (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT + vx2_SEB - vx2_SET + vx2_SWB - vx2_SWT)/c2o1; - cyz= (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT + vx3_SEB - vx3_SET + vx3_SWB - vx3_SWT)/c2o1; - //axyz=-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT + vx1_SEB - vx1_SET - vx1_SWB + vx1_SWT; - //bxyz=-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT + vx2_SEB - vx2_SET - vx2_SWB + vx2_SWT; - //cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0o1; - real kyzAverage = c0o1; - real kxzAverage = c0o1; - real kxxMyyAverage = c0o1; - real kxxMzzAverage = c0o1; - //real kxyAverage =(kxyFromfcNEQ_SWB+ - // kxyFromfcNEQ_SWT+ - // kxyFromfcNEQ_SET+ - // kxyFromfcNEQ_SEB+ - // kxyFromfcNEQ_NWB+ - // kxyFromfcNEQ_NWT+ - // kxyFromfcNEQ_NET+ - // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - //real kyzAverage =(kyzFromfcNEQ_SWB+ - // kyzFromfcNEQ_SWT+ - // kyzFromfcNEQ_SET+ - // kyzFromfcNEQ_SEB+ - // kyzFromfcNEQ_NWB+ - // kyzFromfcNEQ_NWT+ - // kyzFromfcNEQ_NET+ - // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - //real kxzAverage =(kxzFromfcNEQ_SWB+ - // kxzFromfcNEQ_SWT+ - // kxzFromfcNEQ_SET+ - // kxzFromfcNEQ_SEB+ - // kxzFromfcNEQ_NWB+ - // kxzFromfcNEQ_NWT+ - // kxzFromfcNEQ_NET+ - // kxzFromfcNEQ_NEB)*c1o8-(az+cx); - //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ - // kxxMyyFromfcNEQ_SWT+ - // kxxMyyFromfcNEQ_SET+ - // kxxMyyFromfcNEQ_SEB+ - // kxxMyyFromfcNEQ_NWB+ - // kxxMyyFromfcNEQ_NWT+ - // kxxMyyFromfcNEQ_NET+ - // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ - // kxxMzzFromfcNEQ_SWT+ - // kxxMzzFromfcNEQ_SET+ - // kxxMzzFromfcNEQ_SEB+ - // kxxMzzFromfcNEQ_NWB+ - // kxxMzzFromfcNEQ_NWT+ - // kxxMzzFromfcNEQ_NET+ - // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); - - - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Press - //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; - //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; - //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; - //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; - //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; - //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; - //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; - //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - real LapRho = ((xoff != c0o1) || (yoff != c0o1) || (zoff != c0o1)) ? c0o1 : -c3o1*(ax*ax + by*by + cz*cz) - c6o1 * (bx*ay + cx*az + cy*bz); - d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT - c2o1*LapRho) * c1o8; - dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - //dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - //d0 = zero; - //dx = zero; - //dy = zero; - //dz = zero; - //dxy = zero; - //dxz = zero; - //dyz = zero; - //dxyz = zero; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - // Bernd das Brot - // - // - // x------x - // | | - // | ---+--->X - // | | \ - // x------x \ - // off-vector - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; - ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; - ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz; - az = az + c2o1 * zoff * azz + xoff * axz + yoff * ayz; - b0 = b0 + xoff * bx + yoff * by + zoff * bz + xoff_sq * bxx + yoff_sq * byy + zoff_sq * bzz + xoff*yoff*bxy + xoff*zoff*bxz + yoff*zoff*byz; - bx = bx + c2o1 * xoff * bxx + yoff * bxy + zoff * bxz; - by = by + c2o1 * yoff * byy + xoff * bxy + zoff * byz; - bz = bz + c2o1 * zoff * bzz + xoff * bxz + yoff * byz; - c0 = c0 + xoff * cx + yoff * cy + zoff * cz + xoff_sq * cxx + yoff_sq * cyy + zoff_sq * czz + xoff*yoff*cxy + xoff*zoff*cxz + yoff*zoff*cyz; - cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; - cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; - cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! - //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //b0=zero; - //bx=zero; - //by=zero; - //bz=zero; - //bxx=zero; - //byy=zero; - //bzz=zero; - //bxy=zero; - //bxz=zero; - //byz=zero; - //c0=zero; - //cx=zero; - //cy=zero; - //cz=zero; - //cxx=zero; - //cyy=zero; - //czz=zero; - //cxy=zero; - //cxz=zero; - //cyz=zero; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0o1; - real mfabb = c0o1; - real mfbcb = c0o1; - real mfbab = c0o1; - real mfbbc = c0o1; - real mfbba = c0o1; - real mfccb = c0o1; - real mfaab = c0o1; - real mfcab = c0o1; - real mfacb = c0o1; - real mfcbc = c0o1; - real mfaba = c0o1; - real mfcba = c0o1; - real mfabc = c0o1; - real mfbcc = c0o1; - real mfbaa = c0o1; - real mfbca = c0o1; - real mfbac = c0o1; - real mfbbb = c0o1; - real mfccc = c0o1; - real mfaac = c0o1; - real mfcac = c0o1; - real mfacc = c0o1; - real mfcca = c0o1; - real mfaaa = c0o1; - real mfcaa = c0o1; - real mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = c2o1 - o; - //real residu, residutmp; - //residutmp = c0o1;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position C 0., 0., 0. - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //x = 0.; - //y = 0.; - //z = 0.; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //press = press_NET * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // press_NWT * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // press_SET * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // press_SWT * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // press_NEB * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // press_NWB * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // press_SEB * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + - // press_SWB * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); - //drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + - // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); - press = d0; - vvx = a0; - vvy = b0; - vvz = c0; - - //mfaaa = drho; - //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy)*eps_new/o; - //mfbab = -c1o3 * (az + cx)*eps_new/o; - //mfbba = -c1o3 * (ay + bx)*eps_new/o; - mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o * (c1o1 + press); - - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //3. - // linear combinations - //residu = residutmp * (ayz + bxz + cxy ); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz ); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz ); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy ); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy ); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz ); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz ); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4. - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index 0 - kzero= posC[k]; - kw = neighborCX[kzero]; - ks = neighborCY[kzero]; - kb = neighborCZ[kzero]; - ksw = neighborCY[kw]; - kbw = neighborCZ[kw]; - kbs = neighborCZ[ks]; - kbsw = neighborCZ[ksw]; - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - feC[kzero] = mfcbb; - fwC[kw] = mfabb; - fnC[kzero] = mfbcb; - fsC[ks] = mfbab; - ftC[kzero] = mfbbc; - fbC[kb] = mfbba; - fneC[kzero] = mfccb; - fswC[ksw] = mfaab; - fseC[ks] = mfcab; - fnwC[kw] = mfacb; - fteC[kzero] = mfcbc; - fbwC[kbw] = mfaba; - fbeC[kb] = mfcba; - ftwC[kw] = mfabc; - ftnC[kzero] = mfbcc; - fbsC[kbs] = mfbaa; - fbnC[kb] = mfbca; - ftsC[ks] = mfbac; - fzeroC[kzero] = mfbbb; - ftneC[kzero] = mfccc; - ftseC[ks] = mfcac; - fbneC[kb] = mfcca; - fbseC[kbs] = mfcaa; - ftnwC[kw] = mfacc; - ftswC[ksw] = mfaac; - fbnwC[kbw] = mfaca; - fbswC[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - } +extern "C" __global__ void scaleFC_RhoSq_comp_27_Stream(real *DC, real *DF, unsigned int *neighborCX, unsigned int *neighborCY, + unsigned int *neighborCZ, unsigned int *neighborFX, + unsigned int *neighborFY, unsigned int *neighborFZ, + unsigned int size_MatC, unsigned int size_MatF, bool evenOrOdd, + unsigned int *posC, unsigned int *posFSWB, unsigned int kFC, + real omCoarse, real omFine, real nu, unsigned int nxC, unsigned int nyC, unsigned int nxF, unsigned int nyF, + OffFC offFC, const unsigned int *fluidNodeIndices, unsigned int numberOfFluidNodes) +{ + //////////////////////////////////////////////////////////////////////////////// + const unsigned ix = threadIdx.x; // Globaler x-Index + const unsigned iy = blockIdx.x; // Globaler y-Index + const unsigned iz = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k_thread = nx * (ny * iz + iy) + ix; + + if (k_thread < numberOfFluidNodes) { + const unsigned k = fluidNodeIndices[k_thread]; + scaleFC_RhoSq_comp_27_Calculation(DC, DF, neighborCX, neighborCY, neighborCZ, neighborFX, neighborFY, + neighborFZ, size_MatC, size_MatF, evenOrOdd, posC, posFSWB, kFC, omCoarse, + omFine, nu, nxC, nyC, nxF, nyF, offFC, k); + } } -////////////////////////////////////////////////////////////////////////// -