From 847a3646cf97cd885df98be2613216e3a3265311 Mon Sep 17 00:00:00 2001 From: alena <akaranchuk@list.ru> Date: Thu, 9 Mar 2023 19:22:36 +0100 Subject: [PATCH] Changing digit constants to character constants in LBM-classes --- .../VirtualFluidsCore/LBM/BGKLBMKernel.cpp | 108 +-- ...ibleCumulant4thOrderViscosityLBMKernel.cpp | 28 +- .../LBM/CompressibleCumulantLBMKernel.cpp | 16 +- ...mpressibleOffsetInterpolationProcessor.cpp | 618 ++++++++--------- ...bleOffsetMomentsInterpolationProcessor.cpp | 608 ++++++++--------- ...etSquarePressureInterpolationProcessor.cpp | 598 ++++++++-------- .../LBM/CumulantK17LBMKernel.cpp | 2 +- .../LBM/CumulantK17LBMKernelUnified.cpp | 4 +- .../LBM/CumulantLBMKernel.cpp | 16 +- .../LBM/IncompressibleCumulantLBMKernel.cpp | 236 +++---- ...ssibleCumulantWithSpongeLayerLBMKernel.cpp | 254 +++---- ...mpressibleOffsetInterpolationProcessor.cpp | 639 +++++++++--------- .../LBM/InitDensityLBMKernel.cpp | 52 +- .../LBM/InterpolationHelper.cpp | 10 +- src/cpu/VirtualFluidsCore/LBM/LBMKernel.cpp | 4 +- .../LBM/LBMKernelETD3Q27BGK.cpp | 116 ++-- .../VirtualFluidsCore/LBM/VoidLBMKernel.cpp | 3 +- 17 files changed, 1670 insertions(+), 1642 deletions(-) diff --git a/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp index ffe11c011..d1fc28f0b 100644 --- a/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp @@ -141,39 +141,39 @@ void BGKLBMKernel::calculate(int step) real cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); feq[DIR_000] = c8o27 * (drho - cu_sq); - feq[DIR_P00] = c2o27 * (drho + 3.0 * (vx1) + c9o2 * (vx1) * (vx1)-cu_sq); - feq[DIR_M00] = c2o27 * (drho + 3.0 * (-vx1) + c9o2 * (-vx1) * (-vx1) - cu_sq); - feq[DIR_0P0] = c2o27 * (drho + 3.0 * (vx2) + c9o2 * (vx2) * (vx2)-cu_sq); - feq[DIR_0M0] = c2o27 * (drho + 3.0 * (-vx2) + c9o2 * (-vx2) * (-vx2) - cu_sq); - feq[DIR_00P] = c2o27 * (drho + 3.0 * (vx3) + c9o2 * (vx3) * (vx3)-cu_sq); - feq[DIR_00M] = c2o27 * (drho + 3.0 * (-vx3) + c9o2 * (-vx3) * (-vx3) - cu_sq); - feq[DIR_PP0] = c1o54 * (drho + 3.0 * (vx1 + vx2) + c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq); - feq[DIR_MM0] = c1o54 * (drho + 3.0 * (-vx1 - vx2) + c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq); - feq[DIR_PM0] = c1o54 * (drho + 3.0 * (vx1 - vx2) + c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq); - feq[DIR_MP0] = c1o54 * (drho + 3.0 * (-vx1 + vx2) + c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq); - feq[DIR_P0P] = c1o54 * (drho + 3.0 * (vx1 + vx3) + c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq); - feq[DIR_M0M] = c1o54 * (drho + 3.0 * (-vx1 - vx3) + c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq); - feq[DIR_P0M] = c1o54 * (drho + 3.0 * (vx1 - vx3) + c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq); - feq[DIR_M0P] = c1o54 * (drho + 3.0 * (-vx1 + vx3) + c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq); - feq[DIR_0PP] = c1o54 * (drho + 3.0 * (vx2 + vx3) + c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq); - feq[DIR_0MM] = c1o54 * (drho + 3.0 * (-vx2 - vx3) + c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq); - feq[DIR_0PM] = c1o54 * (drho + 3.0 * (vx2 - vx3) + c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq); - feq[DIR_0MP] = c1o54 * (drho + 3.0 * (-vx2 + vx3) + c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq); + feq[DIR_P00] = c2o27 * (drho + c3o1 * (vx1) + c9o2 * (vx1) * (vx1)-cu_sq); + feq[DIR_M00] = c2o27 * (drho + c3o1 * (-vx1) + c9o2 * (-vx1) * (-vx1) - cu_sq); + feq[DIR_0P0] = c2o27 * (drho + c3o1 * (vx2) + c9o2 * (vx2) * (vx2)-cu_sq); + feq[DIR_0M0] = c2o27 * (drho + c3o1 * (-vx2) + c9o2 * (-vx2) * (-vx2) - cu_sq); + feq[DIR_00P] = c2o27 * (drho + c3o1 * (vx3) + c9o2 * (vx3) * (vx3)-cu_sq); + feq[DIR_00M] = c2o27 * (drho + c3o1 * (-vx3) + c9o2 * (-vx3) * (-vx3) - cu_sq); + feq[DIR_PP0] = c1o54 * (drho + c3o1 * (vx1 + vx2) + c9o2 * (vx1 + vx2) * (vx1 + vx2) - cu_sq); + feq[DIR_MM0] = c1o54 * (drho + c3o1 * (-vx1 - vx2) + c9o2 * (-vx1 - vx2) * (-vx1 - vx2) - cu_sq); + feq[DIR_PM0] = c1o54 * (drho + c3o1 * (vx1 - vx2) + c9o2 * (vx1 - vx2) * (vx1 - vx2) - cu_sq); + feq[DIR_MP0] = c1o54 * (drho + c3o1 * (-vx1 + vx2) + c9o2 * (-vx1 + vx2) * (-vx1 + vx2) - cu_sq); + feq[DIR_P0P] = c1o54 * (drho + c3o1 * (vx1 + vx3) + c9o2 * (vx1 + vx3) * (vx1 + vx3) - cu_sq); + feq[DIR_M0M] = c1o54 * (drho + c3o1 * (-vx1 - vx3) + c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq); + feq[DIR_P0M] = c1o54 * (drho + c3o1 * (vx1 - vx3) + c9o2 * (vx1 - vx3) * (vx1 - vx3) - cu_sq); + feq[DIR_M0P] = c1o54 * (drho + c3o1 * (-vx1 + vx3) + c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq); + feq[DIR_0PP] = c1o54 * (drho + c3o1 * (vx2 + vx3) + c9o2 * (vx2 + vx3) * (vx2 + vx3) - cu_sq); + feq[DIR_0MM] = c1o54 * (drho + c3o1 * (-vx2 - vx3) + c9o2 * (-vx2 - vx3) * (-vx2 - vx3) - cu_sq); + feq[DIR_0PM] = c1o54 * (drho + c3o1 * (vx2 - vx3) + c9o2 * (vx2 - vx3) * (vx2 - vx3) - cu_sq); + feq[DIR_0MP] = c1o54 * (drho + c3o1 * (-vx2 + vx3) + c9o2 * (-vx2 + vx3) * (-vx2 + vx3) - cu_sq); feq[DIR_PPP] = c1o216 * - (drho + 3.0 * (vx1 + vx2 + vx3) + c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq); - feq[DIR_MMM] = c1o216 * (drho + 3.0 * (-vx1 - vx2 - vx3) + + (drho + c3o1 * (vx1 + vx2 + vx3) + c9o2 * (vx1 + vx2 + vx3) * (vx1 + vx2 + vx3) - cu_sq); + feq[DIR_MMM] = c1o216 * (drho + c3o1 * (-vx1 - vx2 - vx3) + c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq); feq[DIR_PPM] = c1o216 * - (drho + 3.0 * (vx1 + vx2 - vx3) + c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq); - feq[DIR_MMP] = c1o216 * (drho + 3.0 * (-vx1 - vx2 + vx3) + + (drho + c3o1 * (vx1 + vx2 - vx3) + c9o2 * (vx1 + vx2 - vx3) * (vx1 + vx2 - vx3) - cu_sq); + feq[DIR_MMP] = c1o216 * (drho + c3o1 * (-vx1 - vx2 + vx3) + c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq); feq[DIR_PMP] = c1o216 * - (drho + 3.0 * (vx1 - vx2 + vx3) + c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq); - feq[DIR_MPM] = c1o216 * (drho + 3.0 * (-vx1 + vx2 - vx3) + + (drho + c3o1 * (vx1 - vx2 + vx3) + c9o2 * (vx1 - vx2 + vx3) * (vx1 - vx2 + vx3) - cu_sq); + feq[DIR_MPM] = c1o216 * (drho + c3o1 * (-vx1 + vx2 - vx3) + c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq); feq[DIR_PMM] = c1o216 * - (drho + 3.0 * (vx1 - vx2 - vx3) + c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq); - feq[DIR_MPP] = c1o216 * (drho + 3.0 * (-vx1 + vx2 + vx3) + + (drho + c3o1 * (vx1 - vx2 - vx3) + c9o2 * (vx1 - vx2 - vx3) * (vx1 - vx2 - vx3) - cu_sq); + feq[DIR_MPP] = c1o216 * (drho + c3o1 * (-vx1 + vx2 + vx3) + c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq); // Relaxation @@ -217,33 +217,33 @@ void BGKLBMKernel::calculate(int step) forcingX2 = muForcingX2.Eval(); forcingX3 = muForcingX3.Eval(); - f[DIR_000] += 0.0; - f[DIR_P00] += 3.0 * c2o27 * (forcingX1); - f[DIR_M00] += 3.0 * c2o27 * (-forcingX1); - f[DIR_0P0] += 3.0 * c2o27 * (forcingX2); - f[DIR_0M0] += 3.0 * c2o27 * (-forcingX2); - f[DIR_00P] += 3.0 * c2o27 * (forcingX3); - f[DIR_00M] += 3.0 * c2o27 * (-forcingX3); - f[DIR_PP0] += 3.0 * c1o54 * (forcingX1 + forcingX2); - f[DIR_MM0] += 3.0 * c1o54 * (-forcingX1 - forcingX2); - f[DIR_PM0] += 3.0 * c1o54 * (forcingX1 - forcingX2); - f[DIR_MP0] += 3.0 * c1o54 * (-forcingX1 + forcingX2); - f[DIR_P0P] += 3.0 * c1o54 * (forcingX1 + forcingX3); - f[DIR_M0M] += 3.0 * c1o54 * (-forcingX1 - forcingX3); - f[DIR_P0M] += 3.0 * c1o54 * (forcingX1 - forcingX3); - f[DIR_M0P] += 3.0 * c1o54 * (-forcingX1 + forcingX3); - f[DIR_0PP] += 3.0 * c1o54 * (forcingX2 + forcingX3); - f[DIR_0MM] += 3.0 * c1o54 * (-forcingX2 - forcingX3); - f[DIR_0PM] += 3.0 * c1o54 * (forcingX2 - forcingX3); - f[DIR_0MP] += 3.0 * c1o54 * (-forcingX2 + forcingX3); - f[DIR_PPP] += 3.0 * c1o216 * (forcingX1 + forcingX2 + forcingX3); - f[DIR_MMM] += 3.0 * c1o216 * (-forcingX1 - forcingX2 - forcingX3); - f[DIR_PPM] += 3.0 * c1o216 * (forcingX1 + forcingX2 - forcingX3); - f[DIR_MMP] += 3.0 * c1o216 * (-forcingX1 - forcingX2 + forcingX3); - f[DIR_PMP] += 3.0 * c1o216 * (forcingX1 - forcingX2 + forcingX3); - f[DIR_MPM] += 3.0 * c1o216 * (-forcingX1 + forcingX2 - forcingX3); - f[DIR_PMM] += 3.0 * c1o216 * (forcingX1 - forcingX2 - forcingX3); - f[DIR_MPP] += 3.0 * c1o216 * (-forcingX1 + forcingX2 + forcingX3); + f[DIR_000] += c0o1; + f[DIR_P00] += c3o1 * c2o27 * (forcingX1); + f[DIR_M00] += c3o1 * c2o27 * (-forcingX1); + f[DIR_0P0] += c3o1 * c2o27 * (forcingX2); + f[DIR_0M0] += c3o1 * c2o27 * (-forcingX2); + f[DIR_00P] += c3o1 * c2o27 * (forcingX3); + f[DIR_00M] += c3o1 * c2o27 * (-forcingX3); + f[DIR_PP0] += c3o1 * c1o54 * (forcingX1 + forcingX2); + f[DIR_MM0] += c3o1 * c1o54 * (-forcingX1 - forcingX2); + f[DIR_PM0] += c3o1 * c1o54 * (forcingX1 - forcingX2); + f[DIR_MP0] += c3o1 * c1o54 * (-forcingX1 + forcingX2); + f[DIR_P0P] += c3o1 * c1o54 * (forcingX1 + forcingX3); + f[DIR_M0M] += c3o1 * c1o54 * (-forcingX1 - forcingX3); + f[DIR_P0M] += c3o1 * c1o54 * (forcingX1 - forcingX3); + f[DIR_M0P] += c3o1 * c1o54 * (-forcingX1 + forcingX3); + f[DIR_0PP] += c3o1 * c1o54 * (forcingX2 + forcingX3); + f[DIR_0MM] += c3o1 * c1o54 * (-forcingX2 - forcingX3); + f[DIR_0PM] += c3o1 * c1o54 * (forcingX2 - forcingX3); + f[DIR_0MP] += c3o1 * c1o54 * (-forcingX2 + forcingX3); + f[DIR_PPP] += c3o1 * c1o216 * (forcingX1 + forcingX2 + forcingX3); + f[DIR_MMM] += c3o1 * c1o216 * (-forcingX1 - forcingX2 - forcingX3); + f[DIR_PPM] += c3o1 * c1o216 * (forcingX1 + forcingX2 - forcingX3); + f[DIR_MMP] += c3o1 * c1o216 * (-forcingX1 - forcingX2 + forcingX3); + f[DIR_PMP] += c3o1 * c1o216 * (forcingX1 - forcingX2 + forcingX3); + f[DIR_MPM] += c3o1 * c1o216 * (-forcingX1 + forcingX2 - forcingX3); + f[DIR_PMM] += c3o1 * c1o216 * (forcingX1 - forcingX2 - forcingX3); + f[DIR_MPP] += c3o1 * c1o216 * (-forcingX1 + forcingX2 + forcingX3); } ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS @@ -302,4 +302,4 @@ void BGKLBMKernel::calculate(int step) } } ////////////////////////////////////////////////////////////////////////// -real BGKLBMKernel::getCalculationTime() { return 0.0; } +real BGKLBMKernel::getCalculationTime() { return vf::lbm::constant::c0o1; } diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp index 45cc9651c..a981dc5ce 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp @@ -16,8 +16,8 @@ using namespace vf::lbm::constant; CompressibleCumulant4thOrderViscosityLBMKernel::CompressibleCumulant4thOrderViscosityLBMKernel() { this->compressible = true; - this->bulkViscosity = 0; - this->OxxPyyPzz = 1.0; + this->bulkViscosity = vf::lbm::constant::c0o1; + this->OxxPyyPzz = vf::lbm::constant::c1o1; } ////////////////////////////////////////////////////////////////////////// CompressibleCumulant4thOrderViscosityLBMKernel::~CompressibleCumulant4thOrderViscosityLBMKernel(void) @@ -77,7 +77,7 @@ void CompressibleCumulant4thOrderViscosityLBMKernel::calculate(int step) muForcingX2.DefineVar("dt", &muDeltaT); muForcingX3.DefineVar("dt", &muDeltaT); - muNu = (1.0/3.0)*(1.0/collFactor - 1.0/2.0); + muNu = (c1o1/c3o1)*(c1o1/collFactor - c1o1/c2o1); muForcingX1.DefineVar("nu", &muNu); muForcingX2.DefineVar("nu", &muNu); @@ -110,16 +110,16 @@ void CompressibleCumulant4thOrderViscosityLBMKernel::calculate(int step) //LBMReal OxyyPxzz = eight*(-two+omega)*(one+two*omega)/(-eight-fourteen*omega+seven*omega*omega);//one; //LBMReal OxyyMxzz = eight*(-two+omega)*(-seven+four*omega)/(fiftysix-fifty*omega+nine*omega*omega);//one; //LBMReal Oxyz = twentyfour*(-two+omega)*(-two-seven*omega+three*omega*omega)/(fourtyeight+c152*omega-c130*omega*omega+twentynine*omega*omega*omega); - real OxyyPxzz = 8.0*(omega-2.0)*(OxxPyyPzz*(3.0*omega-1.0)-5.0*omega)/(8.0*(5.0-2.0*omega)*omega+OxxPyyPzz*(8.0+omega*(9.0*omega-26.0))); - real OxyyMxzz = 8.0*(omega-2.0)*(omega+OxxPyyPzz*(3.0*omega-7.0))/(OxxPyyPzz*(56.0-42.0*omega+9.0*omega*omega)-8.0*omega); - real Oxyz = 24.0*(omega-2.0)*(4.0*omega*omega+omega*OxxPyyPzz*(18.0-13.0*omega)+OxxPyyPzz*OxxPyyPzz*(2.0+omega*(6.0*omega-11.0)))/(16.0*omega*omega*(omega-6.0)-2.0*omega*OxxPyyPzz*(216.0+5.0*omega*(9.0*omega-46.0))+OxxPyyPzz*OxxPyyPzz*(omega*(3.0*omega-10.0)*(15.0*omega-28.0)-48.0)); + real OxyyPxzz = c8o1*(omega-c2o1)*(OxxPyyPzz*(c3o1*omega-c1o1)-c5o1*omega)/(c8o1 *(c5o1-c2o1*omega)*omega+OxxPyyPzz*(c8o1+omega*(c9o1*omega-c26o1))); + real OxyyMxzz = c8o1*(omega-c2o1)*(omega+OxxPyyPzz*(c3o1*omega-c7o1))/(OxxPyyPzz*(c56o1-c42o1*omega+c9o1*omega*omega)-c8o1*omega); + real Oxyz = c24o1*(omega-c2o1)*(c4o1*omega*omega+omega*OxxPyyPzz*(c18o1-c13o1*omega)+OxxPyyPzz*OxxPyyPzz*(c2o1+omega*(c6o1*omega-c11o1)))/(c16o1*omega*omega*(omega-c6o1)-c2o1*omega*OxxPyyPzz*(c216o1+c5o1*omega*(c9o1*omega-c46o1))+OxxPyyPzz*OxxPyyPzz*(omega*(c3o1*omega-c10o1)*(c15o1*omega-c28o1)-c48o1)); //LBMReal A = (four + two*omega - three*omega*omega) / (two - seven*omega + five*omega*omega); //LBMReal B = (four + twentyeight*omega - fourteen*omega*omega) / (six - twentyone*omega + fiveteen*omega*omega); - real A = (4.0*omega*omega+2.0*omega*OxxPyyPzz*(omega-6.0)+OxxPyyPzz*OxxPyyPzz*(omega*(10.0-3.0*omega)-4.0))/((omega-OxxPyyPzz)*(OxxPyyPzz*(2.0+3.0*omega)-8.0*omega)); + real A = (c4o1*omega*omega+c2o1*omega*OxxPyyPzz*(omega-c6o1)+OxxPyyPzz*OxxPyyPzz*(omega*(c10o1-c3o1*omega)-c4o1))/((omega-OxxPyyPzz)*(OxxPyyPzz*(c2o1+c3o1*omega)-c8o1*omega)); //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) - real B = (4.0*omega*OxxPyyPzz*(9.0*omega-16.0)-4.0*omega*omega-2.0*OxxPyyPzz*OxxPyyPzz*(2.0+9.0*omega*(omega-2.0)))/(3.0*(omega-OxxPyyPzz)*(OxxPyyPzz*(2.0+3.0*omega)-8.0*omega)); + real B = (c4o1*omega*OxxPyyPzz*(c9o1*omega-c16o1)-c4o1*omega*omega-c2o1*OxxPyyPzz*OxxPyyPzz*(c2o1+c9o1*omega*(omega-c2o1)))/(c3o1*(omega-OxxPyyPzz)*(OxxPyyPzz*(c2o1+c3o1*omega)-c8o1*omega)); for (int x3 = minX3; x3 < maxX3; x3++) { @@ -213,9 +213,9 @@ void CompressibleCumulant4thOrderViscosityLBMKernel::calculate(int step) forcingX2 = muForcingX2.Eval(); forcingX3 = muForcingX3.Eval(); - vvx += forcingX1*deltaT*0.5; // X - vvy += forcingX2*deltaT*0.5; // Y - vvz += forcingX3*deltaT*0.5; // Z + vvx += forcingX1*deltaT*c1o2; // X + vvy += forcingX2*deltaT*c1o2; // Y + vvz += forcingX3*deltaT*c1o2; // Z } /////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// @@ -230,9 +230,9 @@ void CompressibleCumulant4thOrderViscosityLBMKernel::calculate(int step) vz2 = vvz*vvz; //////////////////////////////////////////////////////////////////////////////////// real wadjust; - real qudricLimitP = 0.01;// * 0.0001f; - real qudricLimitM = 0.01;// * 0.0001f; - real qudricLimitD = 0.01;// * 0.001f; + real qudricLimitP = c1o100;// * 0.0001f; + real qudricLimitM = c1o100;// * 0.0001f; + real qudricLimitD = c1o100;// * 0.001f; //LBMReal s9 = minusomega; //test //s9 = 0.; diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.cpp index 2552de704..4c914a70e 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.cpp @@ -15,9 +15,9 @@ CompressibleCumulantLBMKernel::CompressibleCumulantLBMKernel() { this->compressible = true; this->parameter = CompressibleCumulantLBMKernel::NORMAL; - this->OxyyMxzz = 1.0; + this->OxyyMxzz = c1o1; this->bulkOmegaToOmega = false; - this->OxxPyyPzz = 1.0; + this->OxxPyyPzz = c1o1; } ////////////////////////////////////////////////////////////////////////// CompressibleCumulantLBMKernel::~CompressibleCumulantLBMKernel(void) @@ -47,10 +47,10 @@ SPtr<LBMKernel> CompressibleCumulantLBMKernel::clone() switch (parameter) { case NORMAL: - dynamicPointerCast<CompressibleCumulantLBMKernel>(kernel)->OxyyMxzz = 1.0; + dynamicPointerCast<CompressibleCumulantLBMKernel>(kernel)->OxyyMxzz = c1o1; break; case MAGIC: - dynamicPointerCast<CompressibleCumulantLBMKernel>(kernel)->OxyyMxzz = 2.0 +(-collFactor); + dynamicPointerCast<CompressibleCumulantLBMKernel>(kernel)->OxyyMxzz = c2o1 +(-collFactor); break; } @@ -85,7 +85,7 @@ void CompressibleCumulantLBMKernel::calculate(int step) muForcingX2.DefineVar("dt", &muDeltaT); muForcingX3.DefineVar("dt", &muDeltaT); - muNu = (1.0/3.0)*(1.0/collFactor - 1.0/2.0); + muNu = (c1o1 / c3o1)*(c1o1 /collFactor - c1o1 / c2o1); muForcingX1.DefineVar("nu", &muNu); muForcingX2.DefineVar("nu", &muNu); @@ -215,9 +215,9 @@ void CompressibleCumulantLBMKernel::calculate(int step) forcingX2 = muForcingX2.Eval(); forcingX3 = muForcingX3.Eval(); - vvx += forcingX1*deltaT*0.5; // X - vvy += forcingX2*deltaT*0.5; // Y - vvz += forcingX3*deltaT*0.5; // Z + vvx += forcingX1*deltaT*c1o2; // X + vvy += forcingX2*deltaT*c1o2; // Y + vvz += forcingX3*deltaT*c1o2; // Z } /////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp index 358f8269a..ed0ce941e 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp @@ -39,21 +39,21 @@ void CompressibleOffsetInterpolationProcessor::setOffsets(real xoff, real yoff, void CompressibleOffsetInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); - calcInterpolatedCoefficiets(icellC, omegaC, 0.5); - calcInterpolatedNodeCF(icellF.BSW, omegaF, -0.25, -0.25, -0.25, calcPressBSW(), -1, -1, -1); - calcInterpolatedNodeCF(icellF.BNE, omegaF, 0.25, 0.25, -0.25, calcPressBNE(), 1, 1, -1); - calcInterpolatedNodeCF(icellF.TNW, omegaF, -0.25, 0.25, 0.25, calcPressTNW(), -1, 1, 1); - calcInterpolatedNodeCF(icellF.TSE, omegaF, 0.25, -0.25, 0.25, calcPressTSE(), 1, -1, 1); - calcInterpolatedNodeCF(icellF.BNW, omegaF, -0.25, 0.25, -0.25, calcPressBNW(), -1, 1, -1); - calcInterpolatedNodeCF(icellF.BSE, omegaF, 0.25, -0.25, -0.25, calcPressBSE(), 1, -1, -1); - calcInterpolatedNodeCF(icellF.TSW, omegaF, -0.25, -0.25, 0.25, calcPressTSW(), -1, -1, 1); - calcInterpolatedNodeCF(icellF.TNE, omegaF, 0.25, 0.25, 0.25, calcPressTNE(), 1, 1, 1); + calcInterpolatedCoefficiets(icellC, omegaC, c1o2); + calcInterpolatedNodeCF(icellF.BSW, omegaF, -c1o4, -c1o4, -c1o4, calcPressBSW(), -c1o1, -c1o1, -c1o1); + calcInterpolatedNodeCF(icellF.BNE, omegaF, c1o4, c1o4, -c1o4, calcPressBNE(), c1o1, c1o1, -c1o1); + calcInterpolatedNodeCF(icellF.TNW, omegaF, -c1o4, c1o4, c1o4, calcPressTNW(), -c1o1, c1o1, c1o1); + calcInterpolatedNodeCF(icellF.TSE, omegaF, c1o4, -c1o4, c1o4, calcPressTSE(), c1o1, -c1o1, c1o1); + calcInterpolatedNodeCF(icellF.BNW, omegaF, -c1o4, c1o4, -c1o4, calcPressBNW(), -c1o1, c1o1, -c1o1); + calcInterpolatedNodeCF(icellF.BSE, omegaF, c1o4, -c1o4, -c1o4, calcPressBSE(), c1o1, -c1o1, -c1o1); + calcInterpolatedNodeCF(icellF.TSW, omegaF, -c1o4, -c1o4, c1o4, calcPressTSW(), -c1o1, -c1o1, c1o1); + calcInterpolatedNodeCF(icellF.TNE, omegaF, c1o4, c1o4, c1o4, calcPressTNE(), c1o1, c1o1, c1o1); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); - calcInterpolatedCoefficiets(icellF, omegaF, 2.0); + calcInterpolatedCoefficiets(icellF, omegaF, c2o1); calcInterpolatedNodeFC(icellC, omegaC); } ////////////////////////////////////////////////////////////////////////// @@ -64,16 +64,16 @@ void CompressibleOffsetInterpolationProcessor::calcMoments(const real* const f, using namespace vf::lbm::dir; using namespace vf::lbm::constant; - real drho = 0.0; + real drho = c0o1; D3Q27System::calcCompMacroscopicValues(f,drho,vx1,vx2,vx3); press = drho; //interpolate rho! - kxy = -3.*omega*((((f[DIR_MMP]+f[DIR_PPM])-(f[DIR_MPP]+f[DIR_PMM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_MPM]+f[DIR_PMP])))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_MP0]+f[DIR_PM0]))/(c1o1 + drho)-(vx1*vx2));// might not be optimal MG 25.2.13 - kyz = -3.*omega*((((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])-(f[DIR_MMP]+f[DIR_PPM])))+((f[DIR_0MM]+f[DIR_0PP])-(f[DIR_0MP]+f[DIR_0PM]))/(c1o1 + drho)-(vx2*vx3)); - kxz = -3.*omega*((((f[DIR_MPM]+f[DIR_PMP])-(f[DIR_MMP]+f[DIR_PPM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMM]+f[DIR_MPP])))+((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_M0P]+f[DIR_P0M]))/(c1o1 + drho)-(vx1*vx3)); - kxxMyy = -3./2.*omega*((((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_M0P]+f[DIR_P0M])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_0M0]+f[DIR_0P0]))/(c1o1 + drho)-(vx1*vx1-vx2*vx2)); - kxxMzz = -3./2.*omega*((((f[DIR_MP0]+f[DIR_PM0])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_00M]+f[DIR_00P]))/(c1o1 + drho)-(vx1*vx1-vx3*vx3)); + kxy = -c3o1*omega*((((f[DIR_MMP]+f[DIR_PPM])-(f[DIR_MPP]+f[DIR_PMM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_MPM]+f[DIR_PMP])))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_MP0]+f[DIR_PM0]))/(c1o1 + drho)-(vx1*vx2));// might not be optimal MG 25.2.13 + kyz = -c3o1*omega*((((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])-(f[DIR_MMP]+f[DIR_PPM])))+((f[DIR_0MM]+f[DIR_0PP])-(f[DIR_0MP]+f[DIR_0PM]))/(c1o1 + drho)-(vx2*vx3)); + kxz = -c3o1*omega*((((f[DIR_MPM]+f[DIR_PMP])-(f[DIR_MMP]+f[DIR_PPM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMM]+f[DIR_MPP])))+((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_M0P]+f[DIR_P0M]))/(c1o1 + drho)-(vx1*vx3)); + kxxMyy = -c3o1/c2o1*omega*((((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_M0P]+f[DIR_P0M])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_0M0]+f[DIR_0P0]))/(c1o1 + drho)-(vx1*vx1-vx2*vx2)); + kxxMzz = -c3o1/c2o1*omega*((((f[DIR_MP0]+f[DIR_PM0])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_00M]+f[DIR_00P]))/(c1o1 + drho)-(vx1*vx1-vx3*vx3)); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, real omega, real eps_new) @@ -166,122 +166,122 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const - + 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 - - 2.*kxyFromfcNEQ_NEB - 2.*kxyFromfcNEQ_NET - 2.*kxyFromfcNEQ_NWB - 2.*kxyFromfcNEQ_NWT + - 2.*kxyFromfcNEQ_SEB + 2.*kxyFromfcNEQ_SET + 2.*kxyFromfcNEQ_SWB + 2.*kxyFromfcNEQ_SWT + - 2.*kxzFromfcNEQ_NEB - 2.*kxzFromfcNEQ_NET + 2.*kxzFromfcNEQ_NWB - 2.*kxzFromfcNEQ_NWT + - 2.*kxzFromfcNEQ_SEB - 2.*kxzFromfcNEQ_SET + 2.*kxzFromfcNEQ_SWB - 2.*kxzFromfcNEQ_SWT + - 8.*vx1_NEB + 8.*vx1_NET + 8.*vx1_NWB + 8.*vx1_NWT + 8.*vx1_SEB + - 8.*vx1_SET + 8.*vx1_SWB + 8.*vx1_SWT + 2.*vx2_NEB + 2.*vx2_NET - - 2.*vx2_NWB - 2.*vx2_NWT - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB + - 2.*vx2_SWT - 2.*vx3_NEB + 2.*vx3_NET + 2.*vx3_NWB - 2.*vx3_NWT - - 2.*vx3_SEB + 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/64.; - b0 = (2.*kxxMyyFromfcNEQ_NEB + 2.*kxxMyyFromfcNEQ_NET + 2.*kxxMyyFromfcNEQ_NWB + 2.*kxxMyyFromfcNEQ_NWT - - 2.*kxxMyyFromfcNEQ_SEB - 2.*kxxMyyFromfcNEQ_SET - 2.*kxxMyyFromfcNEQ_SWB - 2.*kxxMyyFromfcNEQ_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 - - 2.*kxyFromfcNEQ_NEB - 2.*kxyFromfcNEQ_NET + 2.*kxyFromfcNEQ_NWB + 2.*kxyFromfcNEQ_NWT - - 2.*kxyFromfcNEQ_SEB - 2.*kxyFromfcNEQ_SET + 2.*kxyFromfcNEQ_SWB + 2.*kxyFromfcNEQ_SWT + - 2.*kyzFromfcNEQ_NEB - 2.*kyzFromfcNEQ_NET + 2.*kyzFromfcNEQ_NWB - 2.*kyzFromfcNEQ_NWT + - 2.*kyzFromfcNEQ_SEB - 2.*kyzFromfcNEQ_SET + 2.*kyzFromfcNEQ_SWB - 2.*kyzFromfcNEQ_SWT + - 2.*vx1_NEB + 2.*vx1_NET - 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB - 2.*vx1_SET + 2.*vx1_SWB + 2.*vx1_SWT + - 8.*vx2_NEB + 8.*vx2_NET + 8.*vx2_NWB + 8.*vx2_NWT + - 8.*vx2_SEB + 8.*vx2_SET + 8.*vx2_SWB + 8.*vx2_SWT - - 2.*vx3_NEB + 2.*vx3_NET - 2.*vx3_NWB + 2.*vx3_NWT + - 2.*vx3_SEB - 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/64.; + 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 - - 2.*kxxMzzFromfcNEQ_NEB + 2.*kxxMzzFromfcNEQ_NET - 2.*kxxMzzFromfcNEQ_NWB + 2.*kxxMzzFromfcNEQ_NWT - - 2.*kxxMzzFromfcNEQ_SEB + 2.*kxxMzzFromfcNEQ_SET - 2.*kxxMzzFromfcNEQ_SWB + 2.*kxxMzzFromfcNEQ_SWT - - 2.*kxzFromfcNEQ_NEB - 2.*kxzFromfcNEQ_NET + 2.*kxzFromfcNEQ_NWB + 2.*kxzFromfcNEQ_NWT - - 2.*kxzFromfcNEQ_SEB - 2.*kxzFromfcNEQ_SET + 2.*kxzFromfcNEQ_SWB + 2.*kxzFromfcNEQ_SWT - - 2.*kyzFromfcNEQ_NEB - 2.*kyzFromfcNEQ_NET - 2.*kyzFromfcNEQ_NWB - 2.*kyzFromfcNEQ_NWT + - 2.*kyzFromfcNEQ_SEB + 2.*kyzFromfcNEQ_SET + 2.*kyzFromfcNEQ_SWB + 2.*kyzFromfcNEQ_SWT - - 2.*vx1_NEB + 2.*vx1_NET + 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB + 2.*vx1_SET + 2.*vx1_SWB - 2.*vx1_SWT - - 2.*vx2_NEB + 2.*vx2_NET - 2.*vx2_NWB + 2.*vx2_NWT + - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB - 2.*vx2_SWT + - 8.*vx3_NEB + 8.*vx3_NET + 8.*vx3_NWB + 8.*vx3_NWT + - 8.*vx3_SEB + 8.*vx3_SET + 8.*vx3_SWB + 8.*vx3_SWT)/64.; - ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/4.; - bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/4.; - cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/4.; + 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 + - 2.*vx2_NEB + 2.*vx2_NET - 2.*vx2_NWB - 2.*vx2_NWT - - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB + 2.*vx2_SWT - - 2.*vx3_NEB + 2.*vx3_NET + 2.*vx3_NWB - 2.*vx3_NWT - - 2.*vx3_SEB + 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/16.; + 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 - - 2.*vx1_NEB - 2.*vx1_NET + 2.*vx1_NWB + 2.*vx1_NWT + - 2.*vx1_SEB + 2.*vx1_SET - 2.*vx1_SWB - 2.*vx1_SWT)/8.; + 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 + - 2.*vx1_NEB - 2.*vx1_NET - 2.*vx1_NWB + 2.*vx1_NWT + - 2.*vx1_SEB - 2.*vx1_SET - 2.*vx1_SWB + 2.*vx1_SWT)/8.; - ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/4.; - by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/4.; - cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/4.; + 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 - - 2.*vx2_NEB - 2.*vx2_NET + 2.*vx2_NWB + 2.*vx2_NWT + - 2.*vx2_SEB + 2.*vx2_SET - 2.*vx2_SWB - 2.*vx2_SWT)/8.; - byy= (-2.*kxxMyyFromfcNEQ_NEB - 2.*kxxMyyFromfcNEQ_NET - 2.*kxxMyyFromfcNEQ_NWB - 2.*kxxMyyFromfcNEQ_NWT + - 2.*kxxMyyFromfcNEQ_SEB + 2.*kxxMyyFromfcNEQ_SET + 2.*kxxMyyFromfcNEQ_SWB + 2.*kxxMyyFromfcNEQ_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 + - 2.*vx1_NEB + 2.*vx1_NET - 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB - 2.*vx1_SET + 2.*vx1_SWB + 2.*vx1_SWT - - 2.*vx3_NEB + 2.*vx3_NET - 2.*vx3_NWB + 2.*vx3_NWT + - 2.*vx3_SEB - 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/16.; + 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 + - 2.*vx2_NEB - 2.*vx2_NET + 2.*vx2_NWB - 2.*vx2_NWT - - 2.*vx2_SEB + 2.*vx2_SET - 2.*vx2_SWB + 2.*vx2_SWT)/8.; - az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/4.; - bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/4.; - cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/4.; + 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 + - 2.*vx3_NEB - 2.*vx3_NET - 2.*vx3_NWB + 2.*vx3_NWT + - 2.*vx3_SEB - 2.*vx3_SET - 2.*vx3_SWB + 2.*vx3_SWT)/8.; + 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 + - 2.*vx3_NEB - 2.*vx3_NET + 2.*vx3_NWB - 2.*vx3_NWT - - 2.*vx3_SEB + 2.*vx3_SET - 2.*vx3_SWB + 2.*vx3_SWT)/8.; + 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 + - 2.*kxxMzzFromfcNEQ_NEB - 2.*kxxMzzFromfcNEQ_NET + 2.*kxxMzzFromfcNEQ_NWB - 2.*kxxMzzFromfcNEQ_NWT + - 2.*kxxMzzFromfcNEQ_SEB - 2.*kxxMzzFromfcNEQ_SET + 2.*kxxMzzFromfcNEQ_SWB - 2.*kxxMzzFromfcNEQ_SWT - - 2.*vx1_NEB + 2.*vx1_NET + 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB + 2.*vx1_SET + 2.*vx1_SWB - 2.*vx1_SWT - - 2.*vx2_NEB + 2.*vx2_NET - 2.*vx2_NWB + 2.*vx2_NWT + - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB - 2.*vx2_SWT)/16.; - axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/2.; - bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/2.; - cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/2.; - axz= (-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT - vx1_SEB + vx1_SET + vx1_SWB - vx1_SWT)/2.; - bxz= (-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT - vx2_SEB + vx2_SET + vx2_SWB - vx2_SWT)/2.; - cxz= (-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT - vx3_SEB + vx3_SET + vx3_SWB - vx3_SWT)/2.; - ayz= (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT + vx1_SEB - vx1_SET + vx1_SWB - vx1_SWT)/2.; - byz= (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT + vx2_SEB - vx2_SET + vx2_SWB - vx2_SWT)/2.; - cyz= (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT + vx3_SEB - vx3_SET + vx3_SWB - vx3_SWT)/2.; + 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; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - kxyAverage =0;//(kxyFromfcNEQ_SWB+ + kxyAverage = c0o1;//(kxyFromfcNEQ_SWB+ //kxyFromfcNEQ_SWT+ //kxyFromfcNEQ_SET+ //kxyFromfcNEQ_SEB+ @@ -289,7 +289,7 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const //kxyFromfcNEQ_NWT+ //kxyFromfcNEQ_NET+ //kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - kyzAverage =0;//(kyzFromfcNEQ_SWB+ + kyzAverage = c0o1;//(kyzFromfcNEQ_SWB+ //kyzFromfcNEQ_SWT+ //kyzFromfcNEQ_SET+ //kyzFromfcNEQ_SEB+ @@ -297,7 +297,7 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const //kyzFromfcNEQ_NWT+ //kyzFromfcNEQ_NET+ //kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - kxzAverage =0;//(kxzFromfcNEQ_SWB+ + kxzAverage = c0o1;//(kxzFromfcNEQ_SWB+ //kxzFromfcNEQ_SWT+ //kxzFromfcNEQ_SET+ //kxzFromfcNEQ_SEB+ @@ -305,7 +305,7 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const //kxzFromfcNEQ_NWT+ //kxzFromfcNEQ_NET+ //kxzFromfcNEQ_NEB)*c1o8-(az+cx); - kxxMyyAverage =0;//(kxxMyyFromfcNEQ_SWB+ + kxxMyyAverage = c0o1;//(kxxMyyFromfcNEQ_SWB+ //kxxMyyFromfcNEQ_SWT+ //kxxMyyFromfcNEQ_SET+ //kxxMyyFromfcNEQ_SEB+ @@ -313,7 +313,7 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const //kxxMyyFromfcNEQ_NWT+ //kxxMyyFromfcNEQ_NET+ //kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - kxxMzzAverage =0;//(kxxMzzFromfcNEQ_SWB+ + kxxMzzAverage = c0o1;//(kxxMzzFromfcNEQ_SWB+ //kxxMzzFromfcNEQ_SWT+ //kxxMzzFromfcNEQ_SET+ //kxxMzzFromfcNEQ_SEB+ @@ -327,17 +327,17 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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 + xoff*yoff*zoff*axyz ; - ax = ax + 2. * xoff * axx + yoff * axy + zoff * axz + yoff*zoff*axyz; - ay = ay + 2. * yoff * ayy + xoff * axy + zoff * ayz + xoff*zoff*axyz; - az = az + 2. * zoff * azz + xoff * axz + yoff * ayz + xoff*yoff*axyz; + ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz + yoff*zoff*axyz; + ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz + xoff*zoff*axyz; + az = az + c2o1 * zoff * azz + xoff * axz + yoff * ayz + xoff*yoff*axyz; 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 + xoff*yoff*zoff*bxyz; - bx = bx + 2. * xoff * bxx + yoff * bxy + zoff * bxz + yoff*zoff*bxyz; - by = by + 2. * yoff * byy + xoff * bxy + zoff * byz + xoff*zoff*bxyz; - bz = bz + 2. * zoff * bzz + xoff * bxz + yoff * byz + xoff*yoff*bxyz; + bx = bx + c2o1 * xoff * bxx + yoff * bxy + zoff * bxz + yoff*zoff*bxyz; + by = by + c2o1 * yoff * byy + xoff * bxy + zoff * byz + xoff*zoff*bxyz; + bz = bz + c2o1 * zoff * bzz + xoff * bxz + yoff * byz + xoff*yoff*bxyz; 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 + xoff*yoff*zoff*cxyz; - cx = cx + 2. * xoff * cxx + yoff * cxy + zoff * cxz + yoff*zoff*cxyz; - cy = cy + 2. * yoff * cyy + xoff * cxy + zoff * cyz + xoff*zoff*cxyz; - cz = cz + 2. * zoff * czz + xoff * cxz + yoff * cyz + xoff*yoff*cxyz; + cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz + yoff*zoff*cxyz; + cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz + xoff*zoff*cxyz; + cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz + xoff*yoff*cxyz; axy= axy + zoff*axyz; axz= axz + yoff*axyz; ayz= ayz + xoff*axyz; @@ -351,110 +351,110 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const const real o = omega; - f_E = eps_new*((2*(-2*ax + by + cz-kxxMzzAverage-kxxMyyAverage))/(27.*o)); - f_N = eps_new*((2*(ax - 2*by + cz+2*kxxMyyAverage-kxxMzzAverage))/(27.*o)); - f_T = eps_new*((2*(ax + by - 2*cz-kxxMyyAverage+2*kxxMzzAverage))/(27.*o)); - f_NE = eps_new*(-(ax + 3*ay + 3*bx + by - 2*cz+2*kxxMyyAverage-kxxMyyAverage+3*kxyAverage)/(54.*o)); - f_SE = eps_new*(-(ax - 3*ay - 3*bx + by - 2*cz+2*kxxMyyAverage-kxxMyyAverage-3*kxyAverage)/(54.*o)); - f_TE = eps_new*(-(ax + 3*az - 2*by + 3*cx + cz+2*kxxMyyAverage-kxxMzzAverage+3*kxzAverage)/(54.*o)); - f_BE = eps_new*(-(ax - 3*az - 2*by - 3*cx + cz+2*kxxMyyAverage-kxxMzzAverage-3*kxzAverage)/(54.*o)); - f_TN = eps_new*(-(-2*ax + by + 3*bz + 3*cy + cz-kxxMyyAverage-kxxMzzAverage+3*kyzAverage)/(54.*o)); - f_BN = eps_new*(-(-2*ax + by - 3*bz - 3*cy + cz-kxxMyyAverage-kxxMzzAverage-3*kyzAverage)/(54.*o)); - f_ZERO = 0.; - f_TNE = eps_new*(-(ay + az + bx + bz + cx + cy+kxyAverage+kxzAverage+kyzAverage)/(72.*o)); - f_TSW = eps_new*((-ay + az - bx + bz + cx + cy-kxyAverage+kxzAverage+kyzAverage)/(72.*o)); - f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(72.*o)); - f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(72.*o)); - - x_E = 0.25*eps_new*((2*(-4*axx + bxy + cxz))/(27.*o)); - x_N = 0.25*eps_new*((2*(2*axx - 2*bxy + cxz))/(27.*o)); - x_T = 0.25*eps_new*((2*(2*axx + bxy - 2*cxz))/(27.*o)); - x_NE = 0.25*eps_new*(-((2*axx + 3*axy + 6*bxx + bxy - 2*cxz))/(54.*o)); - x_SE = 0.25*eps_new*(-((2*axx - 3*axy - 6*bxx + bxy - 2*cxz))/(54.*o)); - x_TE = 0.25*eps_new*(-((2*axx + 3*axz - 2*bxy + 6*cxx + cxz))/(54.*o)); - x_BE = 0.25*eps_new*(-((2*axx - 3*axz - 2*bxy - 6*cxx + cxz))/(54.*o)); - x_TN = 0.25*eps_new*(-((-4*axx + bxy + 3*bxz + 3*cxy + cxz))/(54.*o)); - x_BN = 0.25*eps_new*(-((-4*axx + bxy - 3*bxz - 3*cxy + cxz))/(54.*o)); + f_E = eps_new*((c2o1*(-c2o1*ax + by + cz-kxxMzzAverage-kxxMyyAverage))/(c27o1*o)); + f_N = eps_new*((c2o1*(ax - c2o1*by + cz+c2o1*kxxMyyAverage-kxxMzzAverage))/(c27o1*o)); + f_T = eps_new*((c2o1*(ax + by - c2o1*cz-kxxMyyAverage+c2o1*kxxMzzAverage))/(c27o1*o)); + f_NE = eps_new*(-(ax + c3o1*ay + c3o1*bx + by - c2o1*cz+c2o1*kxxMyyAverage-kxxMyyAverage+c3o1*kxyAverage)/(c54o1*o)); + f_SE = eps_new*(-(ax - c3o1*ay - c3o1*bx + by - c2o1*cz+c2o1*kxxMyyAverage-kxxMyyAverage-c3o1*kxyAverage)/(c54o1*o)); + f_TE = eps_new*(-(ax + c3o1*az - c2o1*by + c3o1*cx + cz+c2o1*kxxMyyAverage-kxxMzzAverage+c3o1*kxzAverage)/(c54o1*o)); + f_BE = eps_new*(-(ax - c3o1*az - c2o1*by - c3o1*cx + cz+c2o1*kxxMyyAverage-kxxMzzAverage-c3o1*kxzAverage)/(c54o1*o)); + f_TN = eps_new*(-(-c2o1*ax + by + c3o1*bz + c3o1*cy + cz-kxxMyyAverage-kxxMzzAverage+c3o1*kyzAverage)/(c54o1*o)); + f_BN = eps_new*(-(-c2o1*ax + by - c3o1*bz - c3o1*cy + cz-kxxMyyAverage-kxxMzzAverage-c3o1*kyzAverage)/(c54o1*o)); + f_ZERO = c0o1; + f_TNE = eps_new*(-(ay + az + bx + bz + cx + cy+kxyAverage+kxzAverage+kyzAverage)/(c72o1*o)); + f_TSW = eps_new*((-ay + az - bx + bz + cx + cy-kxyAverage+kxzAverage+kyzAverage)/(c72o1*o)); + f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(c72o1*o)); + f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(c72o1*o)); + + x_E = c1o4*eps_new*((c2o1*(-c4o1*axx + bxy + cxz))/(c27o1*o)); + x_N = c1o4*eps_new*((c2o1*(c2o1*axx - c2o1*bxy + cxz))/(c27o1*o)); + x_T = c1o4*eps_new*((c2o1*(c2o1*axx + bxy - c2o1*cxz))/(c27o1*o)); + x_NE = c1o4*eps_new*(-((c2o1*axx + c3o1*axy + c6o1*bxx + bxy - c2o1*cxz))/(c54o1*o)); + x_SE = c1o4*eps_new*(-((c2o1*axx - c3o1*axy - c6o1*bxx + bxy - c2o1*cxz))/(c54o1*o)); + x_TE = c1o4*eps_new*(-((c2o1*axx + c3o1*axz - c2o1*bxy + c6o1*cxx + cxz))/(c54o1*o)); + x_BE = c1o4*eps_new*(-((c2o1*axx - c3o1*axz - c2o1*bxy - c6o1*cxx + cxz))/(c54o1*o)); + x_TN = c1o4*eps_new*(-((-c4o1*axx + bxy + c3o1*bxz + c3o1*cxy + cxz))/(c54o1*o)); + x_BN = c1o4*eps_new*(-((-c4o1*axx + bxy - c3o1*bxz - c3o1*cxy + cxz))/(c54o1*o)); x_ZERO = 0.; - x_TNE = 0.25*eps_new*(-((axy + axz + 2*bxx + bxz + 2*cxx + cxy))/(72.*o)); - x_TSW = 0.25*eps_new*(((-axy + axz - 2*bxx + bxz + 2*cxx + cxy))/(72.*o)); - x_TSE = 0.25*eps_new*(((axy - axz + 2*bxx + bxz - 2*cxx + cxy))/(72.*o)); - x_TNW = 0.25*eps_new*(((axy + axz + 2*bxx - bxz + 2*cxx - cxy))/(72.*o)); - - y_E = 0.25*eps_new*(2*(-2*axy + 2*byy + cyz))/(27.*o); - y_N = 0.25*eps_new*(2*(axy - 4*byy + cyz))/(27.*o); - y_T = 0.25*eps_new*(2*(axy + 2*byy - 2*cyz))/(27.*o); - y_NE = 0.25*eps_new*(-((axy + 6*ayy + 3*bxy + 2*byy - 2*cyz))/(54.*o)); - y_SE = 0.25*eps_new*(-((axy - 6*ayy - 3*bxy + 2*byy - 2*cyz))/(54.*o)); - y_TE = 0.25*eps_new*(-((axy + 3*ayz - 4*byy + 3*cxy + cyz))/(54.*o)); - y_BE = 0.25*eps_new*(-((axy - 3*ayz - 4*byy - 3*cxy + cyz))/(54.*o)); - y_TN = 0.25*eps_new*(-((-2*axy + 2*byy + 3*byz + 6*cyy + cyz))/(54.*o)); - y_BN = 0.25*eps_new*(-((-2*axy + 2*byy - 3*byz - 6*cyy + cyz))/(54.*o)); + x_TNE = c1o4*eps_new*(-((axy + axz + c2o1*bxx + bxz + c2o1*cxx + cxy))/(c72o1*o)); + x_TSW = c1o4*eps_new*(((-axy + axz - c2o1*bxx + bxz + c2o1*cxx + cxy))/(c72o1*o)); + x_TSE = c1o4*eps_new*(((axy - axz + c2o1*bxx + bxz - c2o1*cxx + cxy))/(c72o1*o)); + x_TNW = c1o4*eps_new*(((axy + axz + c2o1*bxx - bxz + c2o1*cxx - cxy))/(c72o1*o)); + + y_E = c1o4*eps_new*(c2o1*(-c2o1*axy + c2o1*byy + cyz))/(c27o1*o); + y_N = c1o4*eps_new*(c2o1*(axy - c4o1*byy + cyz))/(c27o1*o); + y_T = c1o4*eps_new*(c2o1*(axy + c2o1*byy - c2o1*cyz))/(c27o1*o); + y_NE = c1o4*eps_new*(-((axy + c6o1*ayy + c3o1*bxy + c2o1*byy - c2o1*cyz))/(c54o1*o)); + y_SE = c1o4*eps_new*(-((axy - c6o1*ayy - c3o1*bxy + c2o1*byy - c2o1*cyz))/(c54o1*o)); + y_TE = c1o4*eps_new*(-((axy + c3o1*ayz - c4o1*byy + c3o1*cxy + cyz))/(c54o1*o)); + y_BE = c1o4*eps_new*(-((axy - c3o1*ayz - c4o1*byy - c3o1*cxy + cyz))/(c54o1*o)); + y_TN = c1o4*eps_new*(-((-c2o1*axy + c2o1*byy + c3o1*byz + c6o1*cyy + cyz))/(c54o1*o)); + y_BN = c1o4*eps_new*(-((-c2o1*axy + c2o1*byy - c3o1*byz - c6o1*cyy + cyz))/(c54o1*o)); y_ZERO = 0.; - y_TNE = 0.25*eps_new*(-((2*ayy + ayz + bxy + byz + cxy + 2*cyy))/(72.*o)); - y_TSW = 0.25*eps_new*(((-2*ayy + ayz - bxy + byz + cxy + 2*cyy))/(72.*o)); - y_TSE = 0.25*eps_new*(((2*ayy - ayz + bxy + byz - cxy + 2*cyy))/(72.*o)); - y_TNW = 0.25*eps_new*(((2*ayy + ayz + bxy - byz + cxy - 2*cyy))/(72.*o)); - - z_E = 0.25*eps_new*((2*(-2*axz + byz + 2*czz))/(27.*o)); - z_N = 0.25*eps_new*((2*(axz - 2*byz + 2*czz))/(27.*o)); - z_T = 0.25*eps_new*((2*(axz + byz - 4*czz))/(27.*o)); - z_NE = 0.25*eps_new*(-((axz + 3*ayz + 3*bxz + byz - 4*czz))/(54.*o)); - z_SE = 0.25*eps_new*(-((axz - 3*ayz - 3*bxz + byz - 4*czz))/(54.*o)); - z_TE = 0.25*eps_new*(-((axz + 6*azz - 2*byz + 3*cxz + 2*czz))/(54.*o)); - z_BE = 0.25*eps_new*(-((axz - 6*azz - 2*byz - 3*cxz + 2*czz))/(54.*o)); - z_TN = 0.25*eps_new*(-((-2*axz + byz + 6*bzz + 3*cyz + 2*czz))/(54.*o)); - z_BN = 0.25*eps_new*(-((-2*axz + byz - 6*bzz - 3*cyz + 2*czz))/(54.*o)); + y_TNE = c1o4*eps_new*(-((c2o1*ayy + ayz + bxy + byz + cxy + c2o1*cyy))/(c72o1*o)); + y_TSW = c1o4*eps_new*(((-c2o1*ayy + ayz - bxy + byz + cxy + c2o1*cyy))/(c72o1*o)); + y_TSE = c1o4*eps_new*(((c2o1*ayy - ayz + bxy + byz - cxy + c2o1*cyy))/(c72o1*o)); + y_TNW = c1o4*eps_new*(((c2o1*ayy + ayz + bxy - byz + cxy - c2o1*cyy))/(c72o1*o)); + + z_E = c1o4*eps_new*((c2o1*(-c2o1*axz + byz + c2o1*czz))/(c27o1*o)); + z_N = c1o4*eps_new*((c2o1*(axz - c2o1*byz + c2o1*czz))/(c27o1*o)); + z_T = c1o4*eps_new*((c2o1*(axz + byz - c4o1*czz))/(c27o1*o)); + z_NE = c1o4*eps_new*(-((axz + c3o1*ayz + c3o1*bxz + byz - c4o1*czz))/(c54o1*o)); + z_SE = c1o4*eps_new*(-((axz - c3o1*ayz - c3o1*bxz + byz - c4o1*czz))/(c54o1*o)); + z_TE = c1o4*eps_new*(-((axz + c6o1*azz - c2o1*byz + c3o1*cxz + c2o1*czz))/(c54o1*o)); + z_BE = c1o4*eps_new*(-((axz - c6o1*azz - c2o1*byz - c3o1*cxz + c2o1*czz))/(c54o1*o)); + z_TN = c1o4*eps_new*(-((-c2o1*axz + byz + c6o1*bzz + c3o1*cyz + c2o1*czz))/(c54o1*o)); + z_BN = c1o4*eps_new*(-((-c2o1*axz + byz - c6o1*bzz - c3o1*cyz + c2o1*czz))/(c54o1*o)); z_ZERO = 0.; - z_TNE = 0.25*eps_new*(-((ayz + 2*azz + bxz + 2*bzz + cxz + cyz))/(72.*o)); - z_TSW = 0.25*eps_new*(((-ayz + 2*azz - bxz + 2*bzz + cxz + cyz))/(72.*o)); - z_TSE = 0.25*eps_new*(((ayz - 2*azz + bxz + 2*bzz - cxz + cyz))/(72.*o)); - z_TNW = 0.25*eps_new*(((ayz + 2*azz + bxz - 2*bzz + cxz - cyz))/(72.*o)); - - xy_E = 0.0625*eps_new *(( 2.*cxyz)/(27.*o)); - xy_N = 0.0625*eps_new *(( 2.*cxyz)/(27.*o)); - xy_T = -(0.0625*eps_new *(( 4.*cxyz)/(27.*o))); - xy_NE = 0.0625*eps_new *( cxyz /(27.*o)); - xy_SE = 0.0625*eps_new *( cxyz /(27.*o)); - xy_TE = -(0.0625*eps_new *(( 3.*axyz + cxyz)/(54.*o))); - xy_BE = -(0.0625*eps_new *((-3.*axyz + cxyz)/(54.*o))); - xy_TN = -(0.0625*eps_new *(( 3.*bxyz + cxyz)/(54.*o))); - xy_BN = -(0.0625*eps_new *(( - 3.*bxyz + cxyz)/(54.*o))); - //xy_ZERO= 0.0625*eps_new; - xy_TNE = -(0.0625*eps_new *(( axyz + bxyz )/(72.*o))); - xy_TSW = 0.0625*eps_new *(( axyz + bxyz )/(72.*o)); - xy_TSE = 0.0625*eps_new *((- axyz + bxyz )/(72.*o)); - xy_TNW = 0.0625*eps_new *(( axyz - bxyz )/(72.*o)); - - xz_E = 0.0625*eps_new *(( 2.*bxyz )/(27.*o)); - xz_N = -(0.0625*eps_new *(( 4.*bxyz )/(27.*o))); - xz_T = 0.0625*eps_new *(( 2.*bxyz )/(27.*o)); - xz_NE = -(0.0625*eps_new *(( 3.*axyz + bxyz )/(54.*o))); - xz_SE = -(0.0625*eps_new *((-3.*axyz + bxyz )/(54.*o))); - xz_TE = 0.0625*eps_new *(( bxyz )/(27.*o)); - xz_BE = 0.0625*eps_new *(( bxyz )/(27.*o)); - xz_TN = -(0.0625*eps_new *(( bxyz + 3.*cxyz)/(54.*o))); - xz_BN = -(0.0625*eps_new *(( bxyz - 3.*cxyz)/(54.*o))); - //xz_ZERO= 0.0625*eps_new; - xz_TNE = -(0.0625*eps_new *(( axyz + cxyz)/(72.*o))); - xz_TSW = 0.0625*eps_new *((- axyz + cxyz)/(72.*o)); - xz_TSE = 0.0625*eps_new *(( axyz + cxyz)/(72.*o)); - xz_TNW = 0.0625*eps_new *(( axyz - cxyz)/(72.*o)); - - yz_E = -(0.0625*eps_new *(( 4.*axyz )/(27.*o))); - yz_N = 0.0625*eps_new *(( 2.*axyz )/(27.*o)); - yz_T = 0.0625*eps_new *(( 2.*axyz )/(27.*o)); - yz_NE = -(0.0625*eps_new *(( axyz + 3.*bxyz )/(54.*o))); - yz_SE = -(0.0625*eps_new *(( axyz - 3.*bxyz )/(54.*o))); - yz_TE = -(0.0625*eps_new *(( axyz + 3.*cxyz)/(54.*o))); - yz_BE = -(0.0625*eps_new *(( axyz - 3.*cxyz)/(54.*o))); - yz_TN = 0.0625*eps_new *(( axyz )/(27.*o)); - yz_BN = 0.0625*eps_new *(( axyz )/(27.*o)); - //yz_ZERO= 0.0625*eps_new; - yz_TNE = -(0.0625*eps_new *(( bxyz + cxyz)/(72.*o))); - yz_TSW = 0.0625*eps_new *(( - bxyz + cxyz)/(72.*o)); - yz_TSE = 0.0625*eps_new *(( bxyz - cxyz)/(72.*o)); - yz_TNW = 0.0625*eps_new *(( bxyz + cxyz)/(72.*o)); + z_TNE = c1o4*eps_new*(-((ayz + c2o1*azz + bxz + c2o1*bzz + cxz + cyz))/(c72o1*o)); + z_TSW = c1o4*eps_new*(((-ayz + c2o1*azz - bxz + c2o1*bzz + cxz + cyz))/(c72o1*o)); + z_TSE = c1o4*eps_new*(((ayz - c2o1*azz + bxz + c2o1*bzz - cxz + cyz))/(c72o1*o)); + z_TNW = c1o4*eps_new*(((ayz + c2o1*azz + bxz - c2o1*bzz + cxz - cyz))/(c72o1*o)); + + xy_E = c1o16*eps_new *(( c2o1*cxyz)/(c27o1*o)); + xy_N = c1o16*eps_new *(( c2o1*cxyz)/(c27o1*o)); + xy_T = -(c1o16*eps_new *(( c4o1*cxyz)/(c27o1*o))); + xy_NE = c1o16*eps_new *( cxyz /(c27o1*o)); + xy_SE = c1o16*eps_new *( cxyz /(c27o1*o)); + xy_TE = -(c1o16*eps_new *(( c3o1*axyz + cxyz)/(c54o1*o))); + xy_BE = -(c1o16*eps_new *((-c3o1*axyz + cxyz)/(c54o1*o))); + xy_TN = -(c1o16*eps_new *(( c3o1*bxyz + cxyz)/(c54o1*o))); + xy_BN = -(c1o16*eps_new *(( - c3o1*bxyz + cxyz)/(c54o1*o))); + //xy_ZERO= c1o16*eps_new; + xy_TNE = -(c1o16*eps_new *(( axyz + bxyz )/(c72o1*o))); + xy_TSW = c1o16*eps_new *(( axyz + bxyz )/(c72o1*o)); + xy_TSE = c1o16*eps_new *((- axyz + bxyz )/(c72o1*o)); + xy_TNW = c1o16*eps_new *(( axyz - bxyz )/(c72o1*o)); + + xz_E = c1o16*eps_new *(( c2o1*bxyz )/(c27o1*o)); + xz_N = -(c1o16*eps_new *(( c4o1*bxyz )/(c27o1*o))); + xz_T = c1o16*eps_new *(( c2o1*bxyz )/(c27o1*o)); + xz_NE = -(c1o16*eps_new *(( c3o1*axyz + bxyz )/(c54o1*o))); + xz_SE = -(c1o16*eps_new *((-c3o1*axyz + bxyz )/(c54o1*o))); + xz_TE = c1o16*eps_new *(( bxyz )/(c27o1*o)); + xz_BE = c1o16*eps_new *(( bxyz )/(c27o1*o)); + xz_TN = -(c1o16*eps_new *(( bxyz + c3o1*cxyz)/(c54o1*o))); + xz_BN = -(c1o16*eps_new *(( bxyz - c3o1*cxyz)/(c54o1*o))); + //xz_ZERO= c1o16*eps_new; + xz_TNE = -(c1o16*eps_new *(( axyz + cxyz)/(c72o1*o))); + xz_TSW = c1o16*eps_new *((- axyz + cxyz)/(c72o1*o)); + xz_TSE = c1o16*eps_new *(( axyz + cxyz)/(c72o1*o)); + xz_TNW = c1o16*eps_new *(( axyz - cxyz)/(c72o1*o)); + + yz_E = -(c1o16*eps_new *(( c4o1*axyz )/(c27o1*o))); + yz_N = c1o16*eps_new *(( c2o1*axyz )/(c27o1*o)); + yz_T = c1o16*eps_new *(( c2o1*axyz )/(c27o1*o)); + yz_NE = -(c1o16*eps_new *(( axyz + c3o1*bxyz )/(c54o1*o))); + yz_SE = -(c1o16*eps_new *(( axyz - c3o1*bxyz )/(c54o1*o))); + yz_TE = -(c1o16*eps_new *(( axyz + c3o1*cxyz)/(c54o1*o))); + yz_BE = -(c1o16*eps_new *(( axyz - c3o1*cxyz)/(c54o1*o))); + yz_TN = c1o16*eps_new *(( axyz )/(c27o1*o)); + yz_BN = c1o16*eps_new *(( axyz )/(c27o1*o)); + //yz_ZERO= c1o16*eps_new; + yz_TNE = -(c1o16*eps_new *(( bxyz + cxyz)/(c72o1*o))); + yz_TSW = c1o16*eps_new *(( - bxyz + cxyz)/(c72o1*o)); + yz_TSE = c1o16*eps_new *(( bxyz - cxyz)/(c72o1*o)); + yz_TNW = c1o16*eps_new *(( bxyz + cxyz)/(c72o1*o)); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeCF(real* f, real /*omega*/, real /*x*/, real /*y*/, real /*z*/, real press, real xs, real ys, real zs) @@ -463,9 +463,9 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeCF(real* f, r using namespace vf::lbm::dir; real rho = press ;//+ (2.*axx*x+axy*y+axz*z+axyz*y*z+ax + 2.*byy*y+bxy*x+byz*z+bxyz*x*z+by + 2.*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/3.; - real vx1 = a0 + 0.25*( xs*ax + ys*ay + zs*az) + 0.0625*(axx + xs*ys*axy + xs*zs*axz + ayy + ys*zs*ayz + azz) + 0.015625*(xs*ys*zs*axyz); - real vx2 = b0 + 0.25*( xs*bx + ys*by + zs*bz) + 0.0625*(bxx + xs*ys*bxy + xs*zs*bxz + byy + ys*zs*byz + bzz) + 0.015625*(xs*ys*zs*bxyz); - real vx3 = c0 + 0.25*( xs*cx + ys*cy + zs*cz) + 0.0625*(cxx + xs*ys*cxy + xs*zs*cxz + cyy + ys*zs*cyz + czz) + 0.015625*(xs*ys*zs*cxyz); + real vx1 = a0 + c1o4*( xs*ax + ys*ay + zs*az) + c1o16*(axx + xs*ys*axy + xs*zs*axz + ayy + ys*zs*ayz + azz) + c1o64*(xs*ys*zs*axyz); + real vx2 = b0 + c1o4*( xs*bx + ys*by + zs*bz) + c1o16*(bxx + xs*ys*bxy + xs*zs*bxz + byy + ys*zs*byz + bzz) + c1o64*(xs*ys*zs*bxyz); + real vx3 = c0 + c1o4*( xs*cx + ys*cy + zs*cz) + c1o16*(cxx + xs*ys*cxy + xs*zs*cxz + cyy + ys*zs*cyz + czz) + c1o64*(xs*ys*zs*cxyz); ////////////////////////////////////////////////////////////////////////// //DRAFT @@ -504,108 +504,108 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeCF(real* f, r f[DIR_000] = f_ZERO + xs*x_ZERO + ys*y_ZERO + zs*z_ZERO + feq[DIR_000]; } ////////////////////////////////////////////////////////////////////////// -//Position SWB -0.25, -0.25, -0.25 +//Position SWB -c1o4, -c1o4, -c1o4 real CompressibleOffsetInterpolationProcessor::calcPressBSW() { - return press_SWT * (0.140625 + 0.1875 * xoff + 0.1875 * yoff - 0.5625 * zoff) + - press_NWT * (0.046875 + 0.0625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SET * (0.046875 - 0.1875 * xoff + 0.0625 * yoff - 0.1875 * zoff) + - press_NET * (0.015625 - 0.0625 * xoff - 0.0625 * yoff - 0.0625 * zoff) + - press_NEB * (0.046875 - 0.1875 * xoff - 0.1875 * yoff + 0.0625 * zoff) + - press_NWB * (0.140625 + 0.1875 * xoff - 0.5625 * yoff + 0.1875 * zoff) + - press_SEB * (0.140625 - 0.5625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_SWB * (0.421875 + 0.5625 * xoff + 0.5625 * yoff + 0.5625 * zoff); + return press_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + press_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + press_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + press_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + press_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + press_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// -//Position SWT -0.25, -0.25, 0.25 +//Position SWT -c1o4, -c1o4, c1o4 real CompressibleOffsetInterpolationProcessor::calcPressTSW() { - return press_SWT * (0.421875 + 0.5625 * xoff + 0.5625 * yoff - 0.5625 * zoff) + - press_NWT * (0.140625 + 0.1875 * xoff - 0.5625 * yoff - 0.1875 * zoff) + - press_SET * (0.140625 - 0.5625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_NET * (0.046875 - 0.1875 * xoff - 0.1875 * yoff - 0.0625 * zoff) + - press_NEB * (0.015625 - 0.0625 * xoff - 0.0625 * yoff + 0.0625 * zoff) + - press_NWB * (0.046875 + 0.0625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SEB * (0.046875 - 0.1875 * xoff + 0.0625 * yoff + 0.1875 * zoff) + - press_SWB * (0.140625 + 0.1875 * xoff + 0.1875 * yoff + 0.5625 * zoff); + return press_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + press_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + press_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + press_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + press_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + press_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position SET 0.25, -0.25, 0.25 real CompressibleOffsetInterpolationProcessor::calcPressTSE() { - return press_SET * (0.421875 - 0.5625 * xoff + 0.5625 * yoff - 0.5625 * zoff) + - press_NET * (0.140625 - 0.1875 * xoff - 0.5625 * yoff - 0.1875 * zoff) + - press_SWT * (0.140625 + 0.5625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_NWT * (0.046875 + 0.1875 * xoff - 0.1875 * yoff - 0.0625 * zoff) + - press_NWB * (0.015625 + 0.0625 * xoff - 0.0625 * yoff + 0.0625 * zoff) + - press_NEB * (0.046875 - 0.0625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SWB * (0.046875 + 0.1875 * xoff + 0.0625 * yoff + 0.1875 * zoff) + - press_SEB * (0.140625 - 0.1875 * xoff + 0.1875 * yoff + 0.5625 * zoff); + return press_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + press_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + press_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + press_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + press_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + press_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position SEB 0.25, -0.25, -0.25 real CompressibleOffsetInterpolationProcessor::calcPressBSE() { - return press_SET * (0.140625 - 0.1875 * xoff + 0.1875 * yoff - 0.5625 * zoff) + - press_NET * (0.046875 - 0.0625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SWT * (0.046875 + 0.1875 * xoff + 0.0625 * yoff - 0.1875 * zoff) + - press_NWT * (0.015625 + 0.0625 * xoff - 0.0625 * yoff - 0.0625 * zoff) + - press_NWB * (0.046875 + 0.1875 * xoff - 0.1875 * yoff + 0.0625 * zoff) + - press_NEB * (0.140625 - 0.1875 * xoff - 0.5625 * yoff + 0.1875 * zoff) + - press_SWB * (0.140625 + 0.5625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_SEB * (0.421875 - 0.5625 * xoff + 0.5625 * yoff + 0.5625 * zoff); + return press_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + press_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + press_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + press_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + press_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + press_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NWB -0.25, 0.25, -0.25 real CompressibleOffsetInterpolationProcessor::calcPressBNW() { - return press_NWT * (0.140625 + 0.1875 * xoff - 0.1875 * yoff - 0.5625 * zoff) + - press_NET * (0.046875 - 0.1875 * xoff - 0.0625 * yoff - 0.1875 * zoff) + - press_SWT * (0.046875 + 0.0625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_SET * (0.015625 - 0.0625 * xoff + 0.0625 * yoff - 0.0625 * zoff) + - press_SEB * (0.046875 - 0.1875 * xoff + 0.1875 * yoff + 0.0625 * zoff) + - press_NEB * (0.140625 - 0.5625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SWB * (0.140625 + 0.1875 * xoff + 0.5625 * yoff + 0.1875 * zoff) + - press_NWB * (0.421875 + 0.5625 * xoff - 0.5625 * yoff + 0.5625 * zoff); + return press_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + press_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + press_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + press_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + press_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + press_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NWT -0.25, 0.25, 0.25 real CompressibleOffsetInterpolationProcessor::calcPressTNW() { - return press_NWT * (0.421875 + 0.5625 * xoff - 0.5625 * yoff - 0.5625 * zoff) + - press_NET * (0.140625 - 0.5625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SWT * (0.140625 + 0.1875 * xoff + 0.5625 * yoff - 0.1875 * zoff) + - press_SET * (0.046875 - 0.1875 * xoff + 0.1875 * yoff - 0.0625 * zoff) + - press_SEB * (0.015625 - 0.0625 * xoff + 0.0625 * yoff + 0.0625 * zoff) + - press_NEB * (0.046875 - 0.1875 * xoff - 0.0625 * yoff + 0.1875 * zoff) + - press_SWB * (0.046875 + 0.0625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_NWB * (0.140625 + 0.1875 * xoff - 0.1875 * yoff + 0.5625 * zoff); + return press_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + press_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + press_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + press_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + press_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + press_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NET 0.25, 0.25, 0.25 real CompressibleOffsetInterpolationProcessor::calcPressTNE() { - return press_NET * (0.421875 - 0.5625 * xoff - 0.5625 * yoff - 0.5625 * zoff) + - press_NWT * (0.140625 + 0.5625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SET * (0.140625 - 0.1875 * xoff + 0.5625 * yoff - 0.1875 * zoff) + - press_SWT * (0.046875 + 0.1875 * xoff + 0.1875 * yoff - 0.0625 * zoff) + - press_SWB * (0.015625 + 0.0625 * xoff + 0.0625 * yoff + 0.0625 * zoff) + - press_NWB * (0.046875 + 0.1875 * xoff - 0.0625 * yoff + 0.1875 * zoff) + - press_SEB * (0.046875 - 0.0625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_NEB * (0.140625 - 0.1875 * xoff - 0.1875 * yoff + 0.5625 * zoff); + return press_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + press_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + press_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + press_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + press_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + press_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NEB 0.25, 0.25, -0.25 real CompressibleOffsetInterpolationProcessor::calcPressBNE() { - return press_NET * (0.140625 - 0.1875 * xoff - 0.1875 * yoff - 0.5625 * zoff) + - press_NWT * (0.046875 + 0.1875 * xoff - 0.0625 * yoff - 0.1875 * zoff) + - press_SET * (0.046875 - 0.0625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_SWT * (0.015625 + 0.0625 * xoff + 0.0625 * yoff - 0.0625 * zoff) + - press_SWB * (0.046875 + 0.1875 * xoff + 0.1875 * yoff + 0.0625 * zoff) + - press_NWB * (0.140625 + 0.5625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SEB * (0.140625 - 0.1875 * xoff + 0.5625 * yoff + 0.1875 * zoff) + - press_NEB * (0.421875 - 0.5625 * xoff - 0.5625 * yoff + 0.5625 * zoff); + return press_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + press_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + press_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + press_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + press_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + press_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position C 0.0, 0.0, 0.0 @@ -614,14 +614,14 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(real* f, r using namespace D3Q27System; using namespace vf::lbm::dir; - real press = press_NET * (0.125 - 0.25 * xoff - 0.25 * yoff - 0.25 * zoff) + - press_NWT * (0.125 + 0.25 * xoff - 0.25 * yoff - 0.25 * zoff) + - press_SET * (0.125 - 0.25 * xoff + 0.25 * yoff - 0.25 * zoff) + - press_SWT * (0.125 + 0.25 * xoff + 0.25 * yoff - 0.25 * zoff) + - press_NEB * (0.125 - 0.25 * xoff - 0.25 * yoff + 0.25 * zoff) + - press_NWB * (0.125 + 0.25 * xoff - 0.25 * yoff + 0.25 * zoff) + - press_SEB * (0.125 - 0.25 * xoff + 0.25 * yoff + 0.25 * zoff) + - press_SWB * (0.125 + 0.25 * xoff + 0.25 * yoff + 0.25 * zoff); + real press = press_NET * (c4o32 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + press_NWT * (c4o32 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + press_SET * (c4o32 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + press_SWT * (c4o32 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + press_NEB * (c4o32 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + press_NWB * (c4o32 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + press_SEB * (c4o32 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + press_SWB * (c4o32 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); real vx1 = a0; real vx2 = b0; real vx3 = c0; @@ -636,7 +636,7 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(real* f, r real feq[ENDF+1]; D3Q27System::calcCompFeq(feq,rho,vx1,vx2,vx3); - real eps_new = 2.; + real eps_new = c2o1; real o = omega; // LBMReal op = 1.; @@ -655,20 +655,20 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(real* f, r //f_TSE = - eps_new *((az + cx)/(36.*o)) - f_TNE; //f_TNW = - eps_new *((bz + cy)/(36.*o)) - f_TNE; - f_E = eps_new*((2*(-2*ax + by + cz-kxxMzzAverage-kxxMyyAverage))/(27.*o)); - f_N = eps_new*((2*(ax - 2*by + cz+2*kxxMyyAverage-kxxMzzAverage))/(27.*o)); - f_T = eps_new*((2*(ax + by - 2*cz-kxxMyyAverage+2*kxxMzzAverage))/(27.*o)); - f_NE = eps_new*(-(ax + 3*ay + 3*bx + by - 2*cz+2*kxxMyyAverage-kxxMyyAverage+3*kxyAverage)/(54.*o)); - f_SE = eps_new*(-(ax - 3*ay - 3*bx + by - 2*cz+2*kxxMyyAverage-kxxMyyAverage-3*kxyAverage)/(54.*o)); - f_TE = eps_new*(-(ax + 3*az - 2*by + 3*cx + cz+2*kxxMyyAverage-kxxMzzAverage+3*kxzAverage)/(54.*o)); - f_BE = eps_new*(-(ax - 3*az - 2*by - 3*cx + cz+2*kxxMyyAverage-kxxMzzAverage-3*kxzAverage)/(54.*o)); - f_TN = eps_new*(-(-2*ax + by + 3*bz + 3*cy + cz-kxxMyyAverage-kxxMzzAverage+3*kyzAverage)/(54.*o)); - f_BN = eps_new*(-(-2*ax + by - 3*bz - 3*cy + cz-kxxMyyAverage-kxxMzzAverage-3*kyzAverage)/(54.*o)); - f_ZERO = 0.; - f_TNE = eps_new*(-(ay + az + bx + bz + cx + cy+kxyAverage+kxzAverage+kyzAverage)/(72.*o)); - f_TSW = eps_new*((-ay + az - bx + bz + cx + cy-kxyAverage+kxzAverage+kyzAverage)/(72.*o)); - f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(72.*o)); - f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(72.*o)); + f_E = eps_new*((c2o1*(-c2o1*ax + by + cz-kxxMzzAverage-kxxMyyAverage))/(c27o1*o)); + f_N = eps_new*((c2o1*(ax - c2o1*by + cz+c2o1*kxxMyyAverage-kxxMzzAverage))/(c27o1*o)); + f_T = eps_new*((c2o1*(ax + by - c2o1*cz-kxxMyyAverage+c2o1*kxxMzzAverage))/(c27o1*o)); + f_NE = eps_new*(-(ax + c3o1*ay + c3o1*bx + by - c2o1*cz+c2o1*kxxMyyAverage-kxxMyyAverage+c3o1*kxyAverage)/(c54o1*o)); + f_SE = eps_new*(-(ax - c3o1*ay - c3o1*bx + by - c2o1*cz+c2o1*kxxMyyAverage-kxxMyyAverage-c3o1*kxyAverage)/(c54o1*o)); + f_TE = eps_new*(-(ax + c3o1*az - c2o1*by + c3o1*cx + cz+c2o1*kxxMyyAverage-kxxMzzAverage+c3o1*kxzAverage)/(c54o1*o)); + f_BE = eps_new*(-(ax - c3o1*az - c2o1*by - c3o1*cx + cz+c2o1*kxxMyyAverage-kxxMzzAverage-c3o1*kxzAverage)/(c54o1*o)); + f_TN = eps_new*(-(-c2o1*ax + by + c3o1*bz + c3o1*cy + cz-kxxMyyAverage-kxxMzzAverage+c3o1*kyzAverage)/(c54o1*o)); + f_BN = eps_new*(-(-c2o1*ax + by - c3o1*bz - c3o1*cy + cz-kxxMyyAverage-kxxMzzAverage-c3o1*kyzAverage)/(c54o1*o)); + f_ZERO = c0o1; + f_TNE = eps_new*(-(ay + az + bx + bz + cx + cy+kxyAverage+kxzAverage+kyzAverage)/(c72o1*o)); + f_TSW = eps_new*((-ay + az - bx + bz + cx + cy-kxyAverage+kxzAverage+kyzAverage)/(c72o1*o)); + f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(c72o1*o)); + f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(c72o1*o)); f[DIR_P00] = f_E + feq[DIR_P00]; f[DIR_M00] = f_E + feq[DIR_M00]; @@ -708,10 +708,10 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedVelocity(real x, ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetInterpolationProcessor::calcInterpolatedShearStress(real x, real y, real z,real& tauxx, real& tauyy, real& tauzz,real& tauxy, real& tauxz, real& tauyz) { - tauxx=ax+2*axx*x+axy*y+axz*z+axyz*y*z; - tauyy=by+2*byy*y+bxy*x+byz*z+bxyz*x*z; - tauzz=cz+2*czz*z+cxz*x+cyz*y+cxyz*x*y; - tauxy=0.5*((ay+2.0*ayy*y+axy*x+ayz*z+axyz*x*z)+(bx+2.0*bxx*x+bxy*y+bxz*z+bxyz*y*z)); - tauxz=0.5*((az+2.0*azz*z+axz*x+ayz*y+axyz*x*y)+(cx+2.0*cxx*x+cxy*y+cxz*z+cxyz*y*z)); - tauyz=0.5*((bz+2.0*bzz*z+bxz*x+byz*y+bxyz*x*y)+(cy+2.0*cyy*y+cxy*x+cyz*z+cxyz*x*z)); + tauxx=ax+c2o1*axx*x+axy*y+axz*z+axyz*y*z; + tauyy=by+c2o1*byy*y+bxy*x+byz*z+bxyz*x*z; + tauzz=cz+c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y; + tauxy=c1o2*((ay+c2o1*ayy*y+axy*x+ayz*z+axyz*x*z)+(bx+c2o1*bxx*x+bxy*y+bxz*z+bxyz*y*z)); + tauxz=c1o2*((az+c2o1*azz*z+axz*x+ayz*y+axyz*x*y)+(cx+c2o1*cxx*x+cxy*y+cxz*z+cxyz*y*z)); + tauyz=c1o2*((bz+c2o1*bzz*z+bxz*x+byz*y+bxyz*x*y)+(cy+c2o1*cyy*y+cxy*x+cyz*z+cxyz*x*z)); } diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp index 7321e7f7b..f3511fd7a 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp @@ -7,8 +7,8 @@ using namespace vf::lbm::constant; CompressibleOffsetMomentsInterpolationProcessor::CompressibleOffsetMomentsInterpolationProcessor() { - this->bulkViscosity = 0.0; - this->shearViscosity = 0.0; + this->bulkViscosity = c0o1; + this->shearViscosity = c0o1; this->OxxPyyPzzC = c1o1; this->OxxPyyPzzF = c1o1; } @@ -16,8 +16,8 @@ CompressibleOffsetMomentsInterpolationProcessor::CompressibleOffsetMomentsInterp CompressibleOffsetMomentsInterpolationProcessor::CompressibleOffsetMomentsInterpolationProcessor(real omegaC, real omegaF) : omegaC(omegaC), omegaF(omegaF) { - this->bulkViscosity = 0.0; - this->shearViscosity = 0.0; + this->bulkViscosity = c0o1; + this->shearViscosity = c0o1; this->OxxPyyPzzC = c1o1; this->OxxPyyPzzF = c1o1; } @@ -40,8 +40,8 @@ void CompressibleOffsetMomentsInterpolationProcessor::setOmegas( real omegaC, re this->omegaC = omegaC; this->omegaF = omegaF; - real dtC = (3.0*shearViscosity)/((1/omegaC)-0.5); - real dtF = (3.0*shearViscosity)/((1/omegaF)-0.5); + real dtC = (c3o1 *shearViscosity)/((c1o1/omegaC)-c1o2); + real dtF = (c3o1 *shearViscosity)/((c1o1/omegaF)-c1o2); if (bulkViscosity != 0) { @@ -68,21 +68,21 @@ void CompressibleOffsetMomentsInterpolationProcessor::setOffsets(real xoff, real void CompressibleOffsetMomentsInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); - calcInterpolatedCoefficiets(icellC, omegaC, 0.5); - calcInterpolatedNodeCF(icellF.BSW, omegaF, -0.25, -0.25, -0.25, calcPressBSW(), -1, -1, -1); - calcInterpolatedNodeCF(icellF.BNE, omegaF, 0.25, 0.25, -0.25, calcPressBNE(), 1, 1, -1); - calcInterpolatedNodeCF(icellF.TNW, omegaF, -0.25, 0.25, 0.25, calcPressTNW(), -1, 1, 1); - calcInterpolatedNodeCF(icellF.TSE, omegaF, 0.25, -0.25, 0.25, calcPressTSE(), 1, -1, 1); - calcInterpolatedNodeCF(icellF.BNW, omegaF, -0.25, 0.25, -0.25, calcPressBNW(), -1, 1, -1); - calcInterpolatedNodeCF(icellF.BSE, omegaF, 0.25, -0.25, -0.25, calcPressBSE(), 1, -1, -1); - calcInterpolatedNodeCF(icellF.TSW, omegaF, -0.25, -0.25, 0.25, calcPressTSW(), -1, -1, 1); - calcInterpolatedNodeCF(icellF.TNE, omegaF, 0.25, 0.25, 0.25, calcPressTNE(), 1, 1, 1); + calcInterpolatedCoefficiets(icellC, omegaC, c1o2); + calcInterpolatedNodeCF(icellF.BSW, omegaF, -c1o4, -c1o4, -c1o4, calcPressBSW(), -c1o1, -c1o1, -c1o1); + calcInterpolatedNodeCF(icellF.BNE, omegaF, c1o4, c1o4, -c1o4, calcPressBNE(), c1o1, c1o1, -c1o1); + calcInterpolatedNodeCF(icellF.TNW, omegaF, -c1o4, c1o4, c1o4, calcPressTNW(), -c1o1, c1o1, c1o1); + calcInterpolatedNodeCF(icellF.TSE, omegaF, c1o4, -c1o4, c1o4, calcPressTSE(), c1o1, -c1o1, c1o1); + calcInterpolatedNodeCF(icellF.BNW, omegaF, -c1o4, c1o4, -c1o4, calcPressBNW(), -c1o1, c1o1, -c1o1); + calcInterpolatedNodeCF(icellF.BSE, omegaF, c1o4, -c1o4, -c1o4, calcPressBSE(), c1o1, -c1o1, -c1o1); + calcInterpolatedNodeCF(icellF.TSW, omegaF, -c1o4, -c1o4, c1o4, calcPressTSW(), -c1o1, -c1o1, c1o1); + calcInterpolatedNodeCF(icellF.TNE, omegaF, c1o4, c1o4, c1o4, calcPressTNE(), c1o1, c1o1, c1o1); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetMomentsInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); - calcInterpolatedCoefficiets(icellF, omegaF, 2.0); + calcInterpolatedCoefficiets(icellF, omegaF, c2o1); calcInterpolatedNodeFC(icellC, omegaC); } ////////////////////////////////////////////////////////////////////////// @@ -92,16 +92,16 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcMoments(const real* co using namespace D3Q27System; using namespace vf::lbm::dir; - real drho = 0.0; + real drho = c0o1; D3Q27System::calcCompMacroscopicValues(f,drho,vx1,vx2,vx3); press = drho; //interpolate rho! - kxy = -3.*omega*((((f[DIR_MMP]+f[DIR_PPM])-(f[DIR_MPP]+f[DIR_PMM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_MPM]+f[DIR_PMP])))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_MP0]+f[DIR_PM0]))/(c1o1 + drho)-(vx1*vx2));// might not be optimal MG 25.2.13 - kyz = -3.*omega*((((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])-(f[DIR_MMP]+f[DIR_PPM])))+((f[DIR_0MM]+f[DIR_0PP])-(f[DIR_0MP]+f[DIR_0PM]))/(c1o1 + drho)-(vx2*vx3)); - kxz = -3.*omega*((((f[DIR_MPM]+f[DIR_PMP])-(f[DIR_MMP]+f[DIR_PPM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMM]+f[DIR_MPP])))+((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_M0P]+f[DIR_P0M]))/(c1o1 + drho)-(vx1*vx3)); - kxxMyy = -3./2.*omega*((((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_M0P]+f[DIR_P0M])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_0M0]+f[DIR_0P0]))/(c1o1 + drho)-(vx1*vx1-vx2*vx2)); - kxxMzz = -3./2.*omega*((((f[DIR_MP0]+f[DIR_PM0])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_00M]+f[DIR_00P]))/(c1o1 + drho)-(vx1*vx1-vx3*vx3)); + kxy = -c3o1*omega*((((f[DIR_MMP]+f[DIR_PPM])-(f[DIR_MPP]+f[DIR_PMM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_MPM]+f[DIR_PMP])))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_MP0]+f[DIR_PM0]))/(c1o1 + drho)-(vx1*vx2));// might not be optimal MG 25.2.13 + kyz = -c3o1*omega*((((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])-(f[DIR_MMP]+f[DIR_PPM])))+((f[DIR_0MM]+f[DIR_0PP])-(f[DIR_0MP]+f[DIR_0PM]))/(c1o1 + drho)-(vx2*vx3)); + kxz = -c3o1*omega*((((f[DIR_MPM]+f[DIR_PMP])-(f[DIR_MMP]+f[DIR_PPM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMM]+f[DIR_MPP])))+((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_M0P]+f[DIR_P0M]))/(c1o1 + drho)-(vx1*vx3)); + kxxMyy = -c3o1/c2o1*omega*((((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_M0P]+f[DIR_P0M])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_0M0]+f[DIR_0P0]))/(c1o1 + drho)-(vx1*vx1-vx2*vx2)); + kxxMzz = -c3o1/c2o1*omega*((((f[DIR_MP0]+f[DIR_PM0])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_00M]+f[DIR_00P]))/(c1o1 + drho)-(vx1*vx1-vx3*vx3)); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, real omega, real eps_new) @@ -200,116 +200,116 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedCoefficiet kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - 2.*kxyFromfcNEQ_NEB - 2.*kxyFromfcNEQ_NET - 2.*kxyFromfcNEQ_NWB - 2.*kxyFromfcNEQ_NWT + - 2.*kxyFromfcNEQ_SEB + 2.*kxyFromfcNEQ_SET + 2.*kxyFromfcNEQ_SWB + 2.*kxyFromfcNEQ_SWT + - 2.*kxzFromfcNEQ_NEB - 2.*kxzFromfcNEQ_NET + 2.*kxzFromfcNEQ_NWB - 2.*kxzFromfcNEQ_NWT + - 2.*kxzFromfcNEQ_SEB - 2.*kxzFromfcNEQ_SET + 2.*kxzFromfcNEQ_SWB - 2.*kxzFromfcNEQ_SWT + - 8.*vx1_NEB + 8.*vx1_NET + 8.*vx1_NWB + 8.*vx1_NWT + 8.*vx1_SEB + - 8.*vx1_SET + 8.*vx1_SWB + 8.*vx1_SWT + 2.*vx2_NEB + 2.*vx2_NET - - 2.*vx2_NWB - 2.*vx2_NWT - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB + - 2.*vx2_SWT - 2.*vx3_NEB + 2.*vx3_NET + 2.*vx3_NWB - 2.*vx3_NWT - - 2.*vx3_SEB + 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/64.; - b0 = (2.*kxxMyyFromfcNEQ_NEB + 2.*kxxMyyFromfcNEQ_NET + 2.*kxxMyyFromfcNEQ_NWB + 2.*kxxMyyFromfcNEQ_NWT - - 2.*kxxMyyFromfcNEQ_SEB - 2.*kxxMyyFromfcNEQ_SET - 2.*kxxMyyFromfcNEQ_SWB - 2.*kxxMyyFromfcNEQ_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 - - 2.*kxyFromfcNEQ_NEB - 2.*kxyFromfcNEQ_NET + 2.*kxyFromfcNEQ_NWB + 2.*kxyFromfcNEQ_NWT - - 2.*kxyFromfcNEQ_SEB - 2.*kxyFromfcNEQ_SET + 2.*kxyFromfcNEQ_SWB + 2.*kxyFromfcNEQ_SWT + - 2.*kyzFromfcNEQ_NEB - 2.*kyzFromfcNEQ_NET + 2.*kyzFromfcNEQ_NWB - 2.*kyzFromfcNEQ_NWT + - 2.*kyzFromfcNEQ_SEB - 2.*kyzFromfcNEQ_SET + 2.*kyzFromfcNEQ_SWB - 2.*kyzFromfcNEQ_SWT + - 2.*vx1_NEB + 2.*vx1_NET - 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB - 2.*vx1_SET + 2.*vx1_SWB + 2.*vx1_SWT + - 8.*vx2_NEB + 8.*vx2_NET + 8.*vx2_NWB + 8.*vx2_NWT + - 8.*vx2_SEB + 8.*vx2_SET + 8.*vx2_SWB + 8.*vx2_SWT - - 2.*vx3_NEB + 2.*vx3_NET - 2.*vx3_NWB + 2.*vx3_NWT + - 2.*vx3_SEB - 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/64.; + 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 - - 2.*kxxMzzFromfcNEQ_NEB + 2.*kxxMzzFromfcNEQ_NET - 2.*kxxMzzFromfcNEQ_NWB + 2.*kxxMzzFromfcNEQ_NWT - - 2.*kxxMzzFromfcNEQ_SEB + 2.*kxxMzzFromfcNEQ_SET - 2.*kxxMzzFromfcNEQ_SWB + 2.*kxxMzzFromfcNEQ_SWT - - 2.*kxzFromfcNEQ_NEB - 2.*kxzFromfcNEQ_NET + 2.*kxzFromfcNEQ_NWB + 2.*kxzFromfcNEQ_NWT - - 2.*kxzFromfcNEQ_SEB - 2.*kxzFromfcNEQ_SET + 2.*kxzFromfcNEQ_SWB + 2.*kxzFromfcNEQ_SWT - - 2.*kyzFromfcNEQ_NEB - 2.*kyzFromfcNEQ_NET - 2.*kyzFromfcNEQ_NWB - 2.*kyzFromfcNEQ_NWT + - 2.*kyzFromfcNEQ_SEB + 2.*kyzFromfcNEQ_SET + 2.*kyzFromfcNEQ_SWB + 2.*kyzFromfcNEQ_SWT - - 2.*vx1_NEB + 2.*vx1_NET + 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB + 2.*vx1_SET + 2.*vx1_SWB - 2.*vx1_SWT - - 2.*vx2_NEB + 2.*vx2_NET - 2.*vx2_NWB + 2.*vx2_NWT + - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB - 2.*vx2_SWT + - 8.*vx3_NEB + 8.*vx3_NET + 8.*vx3_NWB + 8.*vx3_NWT + - 8.*vx3_SEB + 8.*vx3_SET + 8.*vx3_SWB + 8.*vx3_SWT)/64.; - ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/4.; - bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/4.; - cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/4.; + 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 + - 2.*vx2_NEB + 2.*vx2_NET - 2.*vx2_NWB - 2.*vx2_NWT - - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB + 2.*vx2_SWT - - 2.*vx3_NEB + 2.*vx3_NET + 2.*vx3_NWB - 2.*vx3_NWT - - 2.*vx3_SEB + 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/16.; + 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 - - 2.*vx1_NEB - 2.*vx1_NET + 2.*vx1_NWB + 2.*vx1_NWT + - 2.*vx1_SEB + 2.*vx1_SET - 2.*vx1_SWB - 2.*vx1_SWT)/8.; + 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 + - 2.*vx1_NEB - 2.*vx1_NET - 2.*vx1_NWB + 2.*vx1_NWT + - 2.*vx1_SEB - 2.*vx1_SET - 2.*vx1_SWB + 2.*vx1_SWT)/8.; - ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/4.; - by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/4.; - cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/4.; + 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 - - 2.*vx2_NEB - 2.*vx2_NET + 2.*vx2_NWB + 2.*vx2_NWT + - 2.*vx2_SEB + 2.*vx2_SET - 2.*vx2_SWB - 2.*vx2_SWT)/8.; - byy= (-2.*kxxMyyFromfcNEQ_NEB - 2.*kxxMyyFromfcNEQ_NET - 2.*kxxMyyFromfcNEQ_NWB - 2.*kxxMyyFromfcNEQ_NWT + - 2.*kxxMyyFromfcNEQ_SEB + 2.*kxxMyyFromfcNEQ_SET + 2.*kxxMyyFromfcNEQ_SWB + 2.*kxxMyyFromfcNEQ_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 + - 2.*vx1_NEB + 2.*vx1_NET - 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB - 2.*vx1_SET + 2.*vx1_SWB + 2.*vx1_SWT - - 2.*vx3_NEB + 2.*vx3_NET - 2.*vx3_NWB + 2.*vx3_NWT + - 2.*vx3_SEB - 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/16.; + 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 + - 2.*vx2_NEB - 2.*vx2_NET + 2.*vx2_NWB - 2.*vx2_NWT - - 2.*vx2_SEB + 2.*vx2_SET - 2.*vx2_SWB + 2.*vx2_SWT)/8.; - az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/4.; - bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/4.; - cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/4.; + 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 + - 2.*vx3_NEB - 2.*vx3_NET - 2.*vx3_NWB + 2.*vx3_NWT + - 2.*vx3_SEB - 2.*vx3_SET - 2.*vx3_SWB + 2.*vx3_SWT)/8.; + 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 + - 2.*vx3_NEB - 2.*vx3_NET + 2.*vx3_NWB - 2.*vx3_NWT - - 2.*vx3_SEB + 2.*vx3_SET - 2.*vx3_SWB + 2.*vx3_SWT)/8.; + 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 + - 2.*kxxMzzFromfcNEQ_NEB - 2.*kxxMzzFromfcNEQ_NET + 2.*kxxMzzFromfcNEQ_NWB - 2.*kxxMzzFromfcNEQ_NWT + - 2.*kxxMzzFromfcNEQ_SEB - 2.*kxxMzzFromfcNEQ_SET + 2.*kxxMzzFromfcNEQ_SWB - 2.*kxxMzzFromfcNEQ_SWT - - 2.*vx1_NEB + 2.*vx1_NET + 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB + 2.*vx1_SET + 2.*vx1_SWB - 2.*vx1_SWT - - 2.*vx2_NEB + 2.*vx2_NET - 2.*vx2_NWB + 2.*vx2_NWT + - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB - 2.*vx2_SWT)/16.; - axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/2.; - bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/2.; - cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/2.; - axz= (-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT - vx1_SEB + vx1_SET + vx1_SWB - vx1_SWT)/2.; - bxz= (-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT - vx2_SEB + vx2_SET + vx2_SWB - vx2_SWT)/2.; - cxz= (-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT - vx3_SEB + vx3_SET + vx3_SWB - vx3_SWT)/2.; - ayz= (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT + vx1_SEB - vx1_SET + vx1_SWB - vx1_SWT)/2.; - byz= (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT + vx2_SEB - vx2_SET + vx2_SWB - vx2_SWT)/2.; - cyz= (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT + vx3_SEB - vx3_SET + vx3_SWB - vx3_SWT)/2.; + 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; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - kxyAverage =0;//(kxyFromfcNEQ_SWB+ + kxyAverage = c0o1;//(kxyFromfcNEQ_SWB+ //kxyFromfcNEQ_SWT+ //kxyFromfcNEQ_SET+ //kxyFromfcNEQ_SEB+ @@ -317,7 +317,7 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedCoefficiet //kxyFromfcNEQ_NWT+ //kxyFromfcNEQ_NET+ //kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - kyzAverage =0;//(kyzFromfcNEQ_SWB+ + kyzAverage = c0o1;//(kyzFromfcNEQ_SWB+ //kyzFromfcNEQ_SWT+ //kyzFromfcNEQ_SET+ //kyzFromfcNEQ_SEB+ @@ -325,7 +325,7 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedCoefficiet //kyzFromfcNEQ_NWT+ //kyzFromfcNEQ_NET+ //kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - kxzAverage =0;//(kxzFromfcNEQ_SWB+ + kxzAverage = c0o1;//(kxzFromfcNEQ_SWB+ //kxzFromfcNEQ_SWT+ //kxzFromfcNEQ_SET+ //kxzFromfcNEQ_SEB+ @@ -333,7 +333,7 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedCoefficiet //kxzFromfcNEQ_NWT+ //kxzFromfcNEQ_NET+ //kxzFromfcNEQ_NEB)*c1o8-(az+cx); - kxxMyyAverage =0;//(kxxMyyFromfcNEQ_SWB+ + kxxMyyAverage = c0o1;//(kxxMyyFromfcNEQ_SWB+ //kxxMyyFromfcNEQ_SWT+ //kxxMyyFromfcNEQ_SET+ //kxxMyyFromfcNEQ_SEB+ @@ -341,7 +341,7 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedCoefficiet //kxxMyyFromfcNEQ_NWT+ //kxxMyyFromfcNEQ_NET+ //kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - kxxMzzAverage =0;//(kxxMzzFromfcNEQ_SWB+ + kxxMzzAverage = c0o1;//(kxxMzzFromfcNEQ_SWB+ //kxxMzzFromfcNEQ_SWT+ //kxxMzzFromfcNEQ_SET+ //kxxMzzFromfcNEQ_SEB+ @@ -355,17 +355,17 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedCoefficiet // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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 + xoff*yoff*zoff*axyz ; - ax = ax + 2. * xoff * axx + yoff * axy + zoff * axz + yoff*zoff*axyz; - ay = ay + 2. * yoff * ayy + xoff * axy + zoff * ayz + xoff*zoff*axyz; - az = az + 2. * zoff * azz + xoff * axz + yoff * ayz + xoff*yoff*axyz; + ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz + yoff*zoff*axyz; + ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz + xoff*zoff*axyz; + az = az + c2o1 * zoff * azz + xoff * axz + yoff * ayz + xoff*yoff*axyz; 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 + xoff*yoff*zoff*bxyz; - bx = bx + 2. * xoff * bxx + yoff * bxy + zoff * bxz + yoff*zoff*bxyz; - by = by + 2. * yoff * byy + xoff * bxy + zoff * byz + xoff*zoff*bxyz; - bz = bz + 2. * zoff * bzz + xoff * bxz + yoff * byz + xoff*yoff*bxyz; + bx = bx + c2o1 * xoff * bxx + yoff * bxy + zoff * bxz + yoff*zoff*bxyz; + by = by + c2o1 * yoff * byy + xoff * bxy + zoff * byz + xoff*zoff*bxyz; + bz = bz + c2o1 * zoff * bzz + xoff * bxz + yoff * byz + xoff*yoff*bxyz; 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 + xoff*yoff*zoff*cxyz; - cx = cx + 2. * xoff * cxx + yoff * cxy + zoff * cxz + yoff*zoff*cxyz; - cy = cy + 2. * yoff * cyy + xoff * cxy + zoff * cyz + xoff*zoff*cxyz; - cz = cz + 2. * zoff * czz + xoff * cxz + yoff * cyz + xoff*yoff*cxyz; + cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz + yoff*zoff*cxyz; + cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz + xoff*zoff*cxyz; + cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz + xoff*yoff*cxyz; axy= axy + zoff*axyz; axz= axz + yoff*axyz; ayz= ayz + xoff*axyz; @@ -379,110 +379,110 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedCoefficiet const real o = omega; - f_E = eps_new*((2*(-2*ax + by + cz-kxxMzzAverage-kxxMyyAverage))/(27.*o)); - f_N = eps_new*((2*(ax - 2*by + cz+2*kxxMyyAverage-kxxMzzAverage))/(27.*o)); - f_T = eps_new*((2*(ax + by - 2*cz-kxxMyyAverage+2*kxxMzzAverage))/(27.*o)); - f_NE = eps_new*(-(ax + 3*ay + 3*bx + by - 2*cz+2*kxxMyyAverage-kxxMyyAverage+3*kxyAverage)/(54.*o)); - f_SE = eps_new*(-(ax - 3*ay - 3*bx + by - 2*cz+2*kxxMyyAverage-kxxMyyAverage-3*kxyAverage)/(54.*o)); - f_TE = eps_new*(-(ax + 3*az - 2*by + 3*cx + cz+2*kxxMyyAverage-kxxMzzAverage+3*kxzAverage)/(54.*o)); - f_BE = eps_new*(-(ax - 3*az - 2*by - 3*cx + cz+2*kxxMyyAverage-kxxMzzAverage-3*kxzAverage)/(54.*o)); - f_TN = eps_new*(-(-2*ax + by + 3*bz + 3*cy + cz-kxxMyyAverage-kxxMzzAverage+3*kyzAverage)/(54.*o)); - f_BN = eps_new*(-(-2*ax + by - 3*bz - 3*cy + cz-kxxMyyAverage-kxxMzzAverage-3*kyzAverage)/(54.*o)); + f_E = eps_new*((c2o1*(-c2o1*ax + by + cz-kxxMzzAverage-kxxMyyAverage))/(c27o1*o)); + f_N = eps_new*((c2o1*(ax - c2o1*by + cz+c2o1*kxxMyyAverage-kxxMzzAverage))/(c27o1*o)); + f_T = eps_new*((c2o1*(ax + by - c2o1*cz-kxxMyyAverage+c2o1*kxxMzzAverage))/(c27o1*o)); + f_NE = eps_new*(-(ax + c3o1*ay + c3o1*bx + by - c2o1*cz+c2o1*kxxMyyAverage-kxxMyyAverage+c3o1*kxyAverage)/(c54o1*o)); + f_SE = eps_new*(-(ax - c3o1*ay - c3o1*bx + by - c2o1*cz+c2o1*kxxMyyAverage-kxxMyyAverage-c3o1*kxyAverage)/(c54o1*o)); + f_TE = eps_new*(-(ax + c3o1*az - c2o1*by + c3o1*cx + cz+c2o1*kxxMyyAverage-kxxMzzAverage+c3o1*kxzAverage)/(c54o1*o)); + f_BE = eps_new*(-(ax - c3o1*az - c2o1*by - c3o1*cx + cz+c2o1*kxxMyyAverage-kxxMzzAverage-c3o1*kxzAverage)/(c54o1*o)); + f_TN = eps_new*(-(-c2o1*ax + by + c3o1*bz + c3o1*cy + cz-kxxMyyAverage-kxxMzzAverage+c3o1*kyzAverage)/(c54o1*o)); + f_BN = eps_new*(-(-c2o1*ax + by - c3o1*bz - c3o1*cy + cz-kxxMyyAverage-kxxMzzAverage-c3o1*kyzAverage)/(c54o1*o)); f_ZERO = 0.; - f_TNE = eps_new*(-(ay + az + bx + bz + cx + cy+kxyAverage+kxzAverage+kyzAverage)/(72.*o)); - f_TSW = eps_new*((-ay + az - bx + bz + cx + cy-kxyAverage+kxzAverage+kyzAverage)/(72.*o)); - f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(72.*o)); - f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(72.*o)); - - x_E = 0.25*eps_new*((2*(-4*axx + bxy + cxz))/(27.*o)); - x_N = 0.25*eps_new*((2*(2*axx - 2*bxy + cxz))/(27.*o)); - x_T = 0.25*eps_new*((2*(2*axx + bxy - 2*cxz))/(27.*o)); - x_NE = 0.25*eps_new*(-((2*axx + 3*axy + 6*bxx + bxy - 2*cxz))/(54.*o)); - x_SE = 0.25*eps_new*(-((2*axx - 3*axy - 6*bxx + bxy - 2*cxz))/(54.*o)); - x_TE = 0.25*eps_new*(-((2*axx + 3*axz - 2*bxy + 6*cxx + cxz))/(54.*o)); - x_BE = 0.25*eps_new*(-((2*axx - 3*axz - 2*bxy - 6*cxx + cxz))/(54.*o)); - x_TN = 0.25*eps_new*(-((-4*axx + bxy + 3*bxz + 3*cxy + cxz))/(54.*o)); - x_BN = 0.25*eps_new*(-((-4*axx + bxy - 3*bxz - 3*cxy + cxz))/(54.*o)); - x_ZERO = 0.; - x_TNE = 0.25*eps_new*(-((axy + axz + 2*bxx + bxz + 2*cxx + cxy))/(72.*o)); - x_TSW = 0.25*eps_new*(((-axy + axz - 2*bxx + bxz + 2*cxx + cxy))/(72.*o)); - x_TSE = 0.25*eps_new*(((axy - axz + 2*bxx + bxz - 2*cxx + cxy))/(72.*o)); - x_TNW = 0.25*eps_new*(((axy + axz + 2*bxx - bxz + 2*cxx - cxy))/(72.*o)); - - y_E = 0.25*eps_new*(2*(-2*axy + 2*byy + cyz))/(27.*o); - y_N = 0.25*eps_new*(2*(axy - 4*byy + cyz))/(27.*o); - y_T = 0.25*eps_new*(2*(axy + 2*byy - 2*cyz))/(27.*o); - y_NE = 0.25*eps_new*(-((axy + 6*ayy + 3*bxy + 2*byy - 2*cyz))/(54.*o)); - y_SE = 0.25*eps_new*(-((axy - 6*ayy - 3*bxy + 2*byy - 2*cyz))/(54.*o)); - y_TE = 0.25*eps_new*(-((axy + 3*ayz - 4*byy + 3*cxy + cyz))/(54.*o)); - y_BE = 0.25*eps_new*(-((axy - 3*ayz - 4*byy - 3*cxy + cyz))/(54.*o)); - y_TN = 0.25*eps_new*(-((-2*axy + 2*byy + 3*byz + 6*cyy + cyz))/(54.*o)); - y_BN = 0.25*eps_new*(-((-2*axy + 2*byy - 3*byz - 6*cyy + cyz))/(54.*o)); - y_ZERO = 0.; - y_TNE = 0.25*eps_new*(-((2*ayy + ayz + bxy + byz + cxy + 2*cyy))/(72.*o)); - y_TSW = 0.25*eps_new*(((-2*ayy + ayz - bxy + byz + cxy + 2*cyy))/(72.*o)); - y_TSE = 0.25*eps_new*(((2*ayy - ayz + bxy + byz - cxy + 2*cyy))/(72.*o)); - y_TNW = 0.25*eps_new*(((2*ayy + ayz + bxy - byz + cxy - 2*cyy))/(72.*o)); - - z_E = 0.25*eps_new*((2*(-2*axz + byz + 2*czz))/(27.*o)); - z_N = 0.25*eps_new*((2*(axz - 2*byz + 2*czz))/(27.*o)); - z_T = 0.25*eps_new*((2*(axz + byz - 4*czz))/(27.*o)); - z_NE = 0.25*eps_new*(-((axz + 3*ayz + 3*bxz + byz - 4*czz))/(54.*o)); - z_SE = 0.25*eps_new*(-((axz - 3*ayz - 3*bxz + byz - 4*czz))/(54.*o)); - z_TE = 0.25*eps_new*(-((axz + 6*azz - 2*byz + 3*cxz + 2*czz))/(54.*o)); - z_BE = 0.25*eps_new*(-((axz - 6*azz - 2*byz - 3*cxz + 2*czz))/(54.*o)); - z_TN = 0.25*eps_new*(-((-2*axz + byz + 6*bzz + 3*cyz + 2*czz))/(54.*o)); - z_BN = 0.25*eps_new*(-((-2*axz + byz - 6*bzz - 3*cyz + 2*czz))/(54.*o)); - z_ZERO = 0.; - z_TNE = 0.25*eps_new*(-((ayz + 2*azz + bxz + 2*bzz + cxz + cyz))/(72.*o)); - z_TSW = 0.25*eps_new*(((-ayz + 2*azz - bxz + 2*bzz + cxz + cyz))/(72.*o)); - z_TSE = 0.25*eps_new*(((ayz - 2*azz + bxz + 2*bzz - cxz + cyz))/(72.*o)); - z_TNW = 0.25*eps_new*(((ayz + 2*azz + bxz - 2*bzz + cxz - cyz))/(72.*o)); - - xy_E = 0.0625*eps_new *(( 2.*cxyz)/(27.*o)); - xy_N = 0.0625*eps_new *(( 2.*cxyz)/(27.*o)); - xy_T = -(0.0625*eps_new *(( 4.*cxyz)/(27.*o))); - xy_NE = 0.0625*eps_new *( cxyz /(27.*o)); - xy_SE = 0.0625*eps_new *( cxyz /(27.*o)); - xy_TE = -(0.0625*eps_new *(( 3.*axyz + cxyz)/(54.*o))); - xy_BE = -(0.0625*eps_new *((-3.*axyz + cxyz)/(54.*o))); - xy_TN = -(0.0625*eps_new *(( 3.*bxyz + cxyz)/(54.*o))); - xy_BN = -(0.0625*eps_new *(( - 3.*bxyz + cxyz)/(54.*o))); - //xy_ZERO= 0.0625*eps_new; - xy_TNE = -(0.0625*eps_new *(( axyz + bxyz )/(72.*o))); - xy_TSW = 0.0625*eps_new *(( axyz + bxyz )/(72.*o)); - xy_TSE = 0.0625*eps_new *((- axyz + bxyz )/(72.*o)); - xy_TNW = 0.0625*eps_new *(( axyz - bxyz )/(72.*o)); - - xz_E = 0.0625*eps_new *(( 2.*bxyz )/(27.*o)); - xz_N = -(0.0625*eps_new *(( 4.*bxyz )/(27.*o))); - xz_T = 0.0625*eps_new *(( 2.*bxyz )/(27.*o)); - xz_NE = -(0.0625*eps_new *(( 3.*axyz + bxyz )/(54.*o))); - xz_SE = -(0.0625*eps_new *((-3.*axyz + bxyz )/(54.*o))); - xz_TE = 0.0625*eps_new *(( bxyz )/(27.*o)); - xz_BE = 0.0625*eps_new *(( bxyz )/(27.*o)); - xz_TN = -(0.0625*eps_new *(( bxyz + 3.*cxyz)/(54.*o))); - xz_BN = -(0.0625*eps_new *(( bxyz - 3.*cxyz)/(54.*o))); - //xz_ZERO= 0.0625*eps_new; - xz_TNE = -(0.0625*eps_new *(( axyz + cxyz)/(72.*o))); - xz_TSW = 0.0625*eps_new *((- axyz + cxyz)/(72.*o)); - xz_TSE = 0.0625*eps_new *(( axyz + cxyz)/(72.*o)); - xz_TNW = 0.0625*eps_new *(( axyz - cxyz)/(72.*o)); - - yz_E = -(0.0625*eps_new *(( 4.*axyz )/(27.*o))); - yz_N = 0.0625*eps_new *(( 2.*axyz )/(27.*o)); - yz_T = 0.0625*eps_new *(( 2.*axyz )/(27.*o)); - yz_NE = -(0.0625*eps_new *(( axyz + 3.*bxyz )/(54.*o))); - yz_SE = -(0.0625*eps_new *(( axyz - 3.*bxyz )/(54.*o))); - yz_TE = -(0.0625*eps_new *(( axyz + 3.*cxyz)/(54.*o))); - yz_BE = -(0.0625*eps_new *(( axyz - 3.*cxyz)/(54.*o))); - yz_TN = 0.0625*eps_new *(( axyz )/(27.*o)); - yz_BN = 0.0625*eps_new *(( axyz )/(27.*o)); - //yz_ZERO= 0.0625*eps_new; - yz_TNE = -(0.0625*eps_new *(( bxyz + cxyz)/(72.*o))); - yz_TSW = 0.0625*eps_new *(( - bxyz + cxyz)/(72.*o)); - yz_TSE = 0.0625*eps_new *(( bxyz - cxyz)/(72.*o)); - yz_TNW = 0.0625*eps_new *(( bxyz + cxyz)/(72.*o)); + f_TNE = eps_new*(-(ay + az + bx + bz + cx + cy+kxyAverage+kxzAverage+kyzAverage)/(c72o1*o)); + f_TSW = eps_new*((-ay + az - bx + bz + cx + cy-kxyAverage+kxzAverage+kyzAverage)/(c72o1*o)); + f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(c72o1*o)); + f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(c72o1*o)); + + x_E = c1o4*eps_new*((c2o1*(-c4o1*axx + bxy + cxz))/(c27o1*o)); + x_N = c1o4*eps_new*((c2o1*(c2o1*axx - c2o1*bxy + cxz))/(c27o1*o)); + x_T = c1o4*eps_new*((c2o1*(c2o1*axx + bxy - c2o1*cxz))/(c27o1*o)); + x_NE = c1o4*eps_new*(-((c2o1*axx + c3o1*axy + c6o1*bxx + bxy - c2o1*cxz))/(c54o1*o)); + x_SE = c1o4*eps_new*(-((c2o1*axx - c3o1*axy - c6o1*bxx + bxy - c2o1*cxz))/(c54o1*o)); + x_TE = c1o4*eps_new*(-((c2o1*axx + c3o1*axz - c2o1*bxy + c6o1*cxx + cxz))/(c54o1*o)); + x_BE = c1o4*eps_new*(-((c2o1*axx - c3o1*axz - c2o1*bxy - c6o1*cxx + cxz))/(c54o1*o)); + x_TN = c1o4*eps_new*(-((-c4o1*axx + bxy + c3o1*bxz + c3o1*cxy + cxz))/(c54o1*o)); + x_BN = c1o4*eps_new*(-((-c4o1*axx + bxy - c3o1*bxz - c3o1*cxy + cxz))/(c54o1*o)); + x_ZERO = c0o1; + x_TNE = c1o4*eps_new*(-((axy + axz + c2o1*bxx + bxz + c2o1*cxx + cxy))/(c72o1*o)); + x_TSW = c1o4*eps_new*(((-axy + axz - c2o1*bxx + bxz + c2o1*cxx + cxy))/(c72o1*o)); + x_TSE = c1o4*eps_new*(((axy - axz + c2o1*bxx + bxz - c2o1*cxx + cxy))/(c72o1*o)); + x_TNW = c1o4*eps_new*(((axy + axz + c2o1*bxx - bxz + c2o1*cxx - cxy))/(c72o1*o)); + + y_E = c1o4*eps_new*(c2o1*(-c2o1*axy + c2o1*byy + cyz))/(c27o1*o); + y_N = c1o4*eps_new*(c2o1*(axy - c4o1*byy + cyz))/(c27o1*o); + y_T = c1o4*eps_new*(c2o1*(axy + c2o1*byy - c2o1*cyz))/(c27o1*o); + y_NE = c1o4*eps_new*(-((axy + c6o1*ayy + c3o1*bxy + c2o1*byy - c2o1*cyz))/(c54o1*o)); + y_SE = c1o4*eps_new*(-((axy - c6o1*ayy - c3o1*bxy + c2o1*byy - c2o1*cyz))/(c54o1*o)); + y_TE = c1o4*eps_new*(-((axy + c3o1*ayz - c4o1*byy + c3o1*cxy + cyz))/(c54o1*o)); + y_BE = c1o4*eps_new*(-((axy - c3o1*ayz - c4o1*byy - c3o1*cxy + cyz))/(c54o1*o)); + y_TN = c1o4*eps_new*(-((-c2o1*axy + c2o1*byy + c3o1*byz + c6o1*cyy + cyz))/(c54o1*o)); + y_BN = c1o4*eps_new*(-((-c2o1*axy + c2o1*byy - c3o1*byz - c6o1*cyy + cyz))/(c54o1*o)); + y_ZERO = c0o1; + y_TNE = c1o4*eps_new*(-((c2o1*ayy + ayz + bxy + byz + cxy + c2o1*cyy))/(c72o1*o)); + y_TSW = c1o4*eps_new*(((-c2o1*ayy + ayz - bxy + byz + cxy + c2o1*cyy))/(c72o1*o)); + y_TSE = c1o4*eps_new*(((c2o1*ayy - ayz + bxy + byz - cxy + c2o1*cyy))/(c72o1*o)); + y_TNW = c1o4*eps_new*(((c2o1*ayy + ayz + bxy - byz + cxy - c2o1*cyy))/(c72o1*o)); + + z_E = c1o4*eps_new*((c2o1*(-c2o1*axz + byz + c2o1*czz))/(c27o1*o)); + z_N = c1o4*eps_new*((c2o1*(axz - c2o1*byz + c2o1*czz))/(c27o1*o)); + z_T = c1o4*eps_new*((c2o1*(axz + byz - c4o1*czz))/(c27o1*o)); + z_NE = c1o4*eps_new*(-((axz + c3o1*ayz + c3o1*bxz + byz - c4o1*czz))/(c54o1*o)); + z_SE = c1o4*eps_new*(-((axz - c3o1*ayz - c3o1*bxz + byz - c4o1*czz))/(c54o1*o)); + z_TE = c1o4*eps_new*(-((axz + c6o1*azz - c2o1*byz + c3o1*cxz + c2o1*czz))/(c54o1*o)); + z_BE = c1o4*eps_new*(-((axz - c6o1*azz - c2o1*byz - c3o1*cxz + c2o1*czz))/(c54o1*o)); + z_TN = c1o4*eps_new*(-((-c2o1*axz + byz + c6o1*bzz + c3o1*cyz + c2o1*czz))/(c54o1*o)); + z_BN = c1o4*eps_new*(-((-c2o1*axz + byz - c6o1*bzz - c3o1*cyz + c2o1*czz))/(c54o1*o)); + z_ZERO = c0o1; + z_TNE = c1o4*eps_new*(-((ayz + c2o1*azz + bxz + c2o1*bzz + cxz + cyz))/(c72o1*o)); + z_TSW = c1o4*eps_new*(((-ayz + c2o1*azz - bxz + c2o1*bzz + cxz + cyz))/(c72o1*o)); + z_TSE = c1o4*eps_new*(((ayz - c2o1*azz + bxz + c2o1*bzz - cxz + cyz))/(c72o1*o)); + z_TNW = c1o4*eps_new*(((ayz + c2o1*azz + bxz - c2o1*bzz + cxz - cyz))/(c72o1*o)); + + xy_E = c1o16*eps_new *(( c2o1*cxyz)/(c27o1*o)); + xy_N = c1o16*eps_new *(( c2o1*cxyz)/(c27o1*o)); + xy_T = -(c1o16*eps_new *(( c4o1*cxyz)/(c27o1*o))); + xy_NE = c1o16*eps_new *( cxyz /(c27o1*o)); + xy_SE = c1o16*eps_new *( cxyz /(c27o1*o)); + xy_TE = -(c1o16*eps_new *(( c3o1*axyz + cxyz)/(c54o1*o))); + xy_BE = -(c1o16*eps_new *((-c3o1*axyz + cxyz)/(c54o1*o))); + xy_TN = -(c1o16*eps_new *(( c3o1*bxyz + cxyz)/(c54o1*o))); + xy_BN = -(c1o16*eps_new *(( - c3o1*bxyz + cxyz)/(c54o1*o))); + //xy_ZERO= c1o16*eps_new; + xy_TNE = -(c1o16*eps_new *(( axyz + bxyz )/(c72o1*o))); + xy_TSW = c1o16*eps_new *(( axyz + bxyz )/(c72o1*o)); + xy_TSE = c1o16*eps_new *((- axyz + bxyz )/(c72o1*o)); + xy_TNW = c1o16*eps_new *(( axyz - bxyz )/(c72o1*o)); + + xz_E = c1o16*eps_new *(( c2o1*bxyz )/(c27o1*o)); + xz_N = -(c1o16*eps_new *(( c4o1*bxyz )/(c27o1*o))); + xz_T = c1o16*eps_new *(( c2o1*bxyz )/(c27o1*o)); + xz_NE = -(c1o16*eps_new *(( c3o1*axyz + bxyz )/(c54o1*o))); + xz_SE = -(c1o16*eps_new *((-c3o1*axyz + bxyz )/(c54o1*o))); + xz_TE = c1o16*eps_new *(( bxyz )/(c27o1*o)); + xz_BE = c1o16*eps_new *(( bxyz )/(c27o1*o)); + xz_TN = -(c1o16*eps_new *(( bxyz + c3o1*cxyz)/(c54o1*o))); + xz_BN = -(c1o16*eps_new *(( bxyz - c3o1*cxyz)/(c54o1*o))); + //xz_ZERO= c1o16*eps_new; + xz_TNE = -(c1o16*eps_new *(( axyz + cxyz)/(c72o1*o))); + xz_TSW = c1o16*eps_new *((- axyz + cxyz)/(c72o1*o)); + xz_TSE = c1o16*eps_new *(( axyz + cxyz)/(c72o1*o)); + xz_TNW = c1o16*eps_new *(( axyz - cxyz)/(c72o1*o)); + + yz_E = -(c1o16*eps_new *(( c4o1*axyz )/(c27o1*o))); + yz_N = c1o16*eps_new *(( c2o1*axyz )/(c27o1*o)); + yz_T = c1o16*eps_new *(( c2o1*axyz )/(c27o1*o)); + yz_NE = -(c1o16*eps_new *(( axyz + c3o1*bxyz )/(c54o1*o))); + yz_SE = -(c1o16*eps_new *(( axyz - c3o1*bxyz )/(c54o1*o))); + yz_TE = -(c1o16*eps_new *(( axyz + c3o1*cxyz)/(c54o1*o))); + yz_BE = -(c1o16*eps_new *(( axyz - c3o1*cxyz)/(c54o1*o))); + yz_TN = c1o16*eps_new *(( axyz )/(c27o1*o)); + yz_BN = c1o16*eps_new *(( axyz )/(c27o1*o)); + //yz_ZERO= c1o16*eps_new; + yz_TNE = -(c1o16*eps_new *(( bxyz + cxyz)/(c72o1*o))); + yz_TSW = c1o16*eps_new *(( - bxyz + cxyz)/(c72o1*o)); + yz_TSE = c1o16*eps_new *(( bxyz - cxyz)/(c72o1*o)); + yz_TNW = c1o16*eps_new *(( bxyz + cxyz)/(c72o1*o)); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeCF(real* f, real omega, real x, real y, real z, real press, real xs, real ys, real zs) @@ -491,15 +491,15 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeCF(rea using namespace vf::lbm::dir; using namespace vf::lbm::constant; - real eps_new = 0.5; + real eps_new = c1o2; real o = omega; //bulk viscosity real oP = OxxPyyPzzF; -// LBMReal rho = press ;//+ (2.*axx*x+axy*y+axz*z+axyz*y*z+ax + 2.*byy*y+bxy*x+byz*z+bxyz*x*z+by + 2.*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/3.; - real vx1 = a0 + 0.25*( xs*ax + ys*ay + zs*az) + 0.0625*(axx + xs*ys*axy + xs*zs*axz + ayy + ys*zs*ayz + azz) + 0.015625*(xs*ys*zs*axyz); - real vx2 = b0 + 0.25*( xs*bx + ys*by + zs*bz) + 0.0625*(bxx + xs*ys*bxy + xs*zs*bxz + byy + ys*zs*byz + bzz) + 0.015625*(xs*ys*zs*bxyz); - real vx3 = c0 + 0.25*( xs*cx + ys*cy + zs*cz) + 0.0625*(cxx + xs*ys*cxy + xs*zs*cxz + cyy + ys*zs*cyz + czz) + 0.015625*(xs*ys*zs*cxyz); +// LBMReal rho = press ;//+ (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; + real vx1 = a0 + c1o4*( xs*ax + ys*ay + zs*az) + c1o16*(axx + xs*ys*axy + xs*zs*axz + ayy + ys*zs*ayz + azz) + c1o64*(xs*ys*zs*axyz); + real vx2 = b0 + c1o4*( xs*bx + ys*by + zs*bz) + c1o16*(bxx + xs*ys*bxy + xs*zs*bxz + byy + ys*zs*byz + bzz) + c1o64*(xs*ys*zs*bxyz); + real vx3 = c0 + c1o4*( xs*cx + ys*cy + zs*cz) + c1o16*(cxx + xs*ys*cxy + xs*zs*cxz + cyy + ys*zs*cyz + czz) + c1o64*(xs*ys*zs*cxyz); real mfcbb = c0o1; real mfabb = c0o1; @@ -536,7 +536,7 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeCF(rea real vx3Sq = vx3*vx3; real oMdrho = c1o1; - //2.f + //c2o1f // linear combinations real mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1 *axx*x + bxy*x + axy*y + c2o1 *byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1 *czz*z)*eps_new / oP* (c1o1 + press); @@ -821,105 +821,105 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeCF(rea //Position SWB -0.25, -0.25, -0.25 real CompressibleOffsetMomentsInterpolationProcessor::calcPressBSW() { - return press_SWT * (0.140625 + 0.1875 * xoff + 0.1875 * yoff - 0.5625 * zoff) + - press_NWT * (0.046875 + 0.0625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SET * (0.046875 - 0.1875 * xoff + 0.0625 * yoff - 0.1875 * zoff) + - press_NET * (0.015625 - 0.0625 * xoff - 0.0625 * yoff - 0.0625 * zoff) + - press_NEB * (0.046875 - 0.1875 * xoff - 0.1875 * yoff + 0.0625 * zoff) + - press_NWB * (0.140625 + 0.1875 * xoff - 0.5625 * yoff + 0.1875 * zoff) + - press_SEB * (0.140625 - 0.5625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_SWB * (0.421875 + 0.5625 * xoff + 0.5625 * yoff + 0.5625 * zoff); + return press_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + press_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + press_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + press_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + press_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + press_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position SWT -0.25, -0.25, 0.25 real CompressibleOffsetMomentsInterpolationProcessor::calcPressTSW() { - return press_SWT * (0.421875 + 0.5625 * xoff + 0.5625 * yoff - 0.5625 * zoff) + - press_NWT * (0.140625 + 0.1875 * xoff - 0.5625 * yoff - 0.1875 * zoff) + - press_SET * (0.140625 - 0.5625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_NET * (0.046875 - 0.1875 * xoff - 0.1875 * yoff - 0.0625 * zoff) + - press_NEB * (0.015625 - 0.0625 * xoff - 0.0625 * yoff + 0.0625 * zoff) + - press_NWB * (0.046875 + 0.0625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SEB * (0.046875 - 0.1875 * xoff + 0.0625 * yoff + 0.1875 * zoff) + - press_SWB * (0.140625 + 0.1875 * xoff + 0.1875 * yoff + 0.5625 * zoff); + return press_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + press_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + press_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + press_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + press_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + press_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position SET 0.25, -0.25, 0.25 real CompressibleOffsetMomentsInterpolationProcessor::calcPressTSE() { - return press_SET * (0.421875 - 0.5625 * xoff + 0.5625 * yoff - 0.5625 * zoff) + - press_NET * (0.140625 - 0.1875 * xoff - 0.5625 * yoff - 0.1875 * zoff) + - press_SWT * (0.140625 + 0.5625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_NWT * (0.046875 + 0.1875 * xoff - 0.1875 * yoff - 0.0625 * zoff) + - press_NWB * (0.015625 + 0.0625 * xoff - 0.0625 * yoff + 0.0625 * zoff) + - press_NEB * (0.046875 - 0.0625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SWB * (0.046875 + 0.1875 * xoff + 0.0625 * yoff + 0.1875 * zoff) + - press_SEB * (0.140625 - 0.1875 * xoff + 0.1875 * yoff + 0.5625 * zoff); + return press_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + press_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + press_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + press_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + press_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + press_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position SEB 0.25, -0.25, -0.25 real CompressibleOffsetMomentsInterpolationProcessor::calcPressBSE() { - return press_SET * (0.140625 - 0.1875 * xoff + 0.1875 * yoff - 0.5625 * zoff) + - press_NET * (0.046875 - 0.0625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SWT * (0.046875 + 0.1875 * xoff + 0.0625 * yoff - 0.1875 * zoff) + - press_NWT * (0.015625 + 0.0625 * xoff - 0.0625 * yoff - 0.0625 * zoff) + - press_NWB * (0.046875 + 0.1875 * xoff - 0.1875 * yoff + 0.0625 * zoff) + - press_NEB * (0.140625 - 0.1875 * xoff - 0.5625 * yoff + 0.1875 * zoff) + - press_SWB * (0.140625 + 0.5625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_SEB * (0.421875 - 0.5625 * xoff + 0.5625 * yoff + 0.5625 * zoff); + return press_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + press_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + press_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + press_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + press_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + press_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NWB -0.25, 0.25, -0.25 real CompressibleOffsetMomentsInterpolationProcessor::calcPressBNW() { - return press_NWT * (0.140625 + 0.1875 * xoff - 0.1875 * yoff - 0.5625 * zoff) + - press_NET * (0.046875 - 0.1875 * xoff - 0.0625 * yoff - 0.1875 * zoff) + - press_SWT * (0.046875 + 0.0625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_SET * (0.015625 - 0.0625 * xoff + 0.0625 * yoff - 0.0625 * zoff) + - press_SEB * (0.046875 - 0.1875 * xoff + 0.1875 * yoff + 0.0625 * zoff) + - press_NEB * (0.140625 - 0.5625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SWB * (0.140625 + 0.1875 * xoff + 0.5625 * yoff + 0.1875 * zoff) + - press_NWB * (0.421875 + 0.5625 * xoff - 0.5625 * yoff + 0.5625 * zoff); + return press_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + press_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + press_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + press_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + press_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + press_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NWT -0.25, 0.25, 0.25 real CompressibleOffsetMomentsInterpolationProcessor::calcPressTNW() { - return press_NWT * (0.421875 + 0.5625 * xoff - 0.5625 * yoff - 0.5625 * zoff) + - press_NET * (0.140625 - 0.5625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SWT * (0.140625 + 0.1875 * xoff + 0.5625 * yoff - 0.1875 * zoff) + - press_SET * (0.046875 - 0.1875 * xoff + 0.1875 * yoff - 0.0625 * zoff) + - press_SEB * (0.015625 - 0.0625 * xoff + 0.0625 * yoff + 0.0625 * zoff) + - press_NEB * (0.046875 - 0.1875 * xoff - 0.0625 * yoff + 0.1875 * zoff) + - press_SWB * (0.046875 + 0.0625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_NWB * (0.140625 + 0.1875 * xoff - 0.1875 * yoff + 0.5625 * zoff); + return press_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + press_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + press_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + press_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + press_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + press_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NET 0.25, 0.25, 0.25 real CompressibleOffsetMomentsInterpolationProcessor::calcPressTNE() { - return press_NET * (0.421875 - 0.5625 * xoff - 0.5625 * yoff - 0.5625 * zoff) + - press_NWT * (0.140625 + 0.5625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SET * (0.140625 - 0.1875 * xoff + 0.5625 * yoff - 0.1875 * zoff) + - press_SWT * (0.046875 + 0.1875 * xoff + 0.1875 * yoff - 0.0625 * zoff) + - press_SWB * (0.015625 + 0.0625 * xoff + 0.0625 * yoff + 0.0625 * zoff) + - press_NWB * (0.046875 + 0.1875 * xoff - 0.0625 * yoff + 0.1875 * zoff) + - press_SEB * (0.046875 - 0.0625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_NEB * (0.140625 - 0.1875 * xoff - 0.1875 * yoff + 0.5625 * zoff); + return press_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + press_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + press_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + press_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + press_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + press_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NEB 0.25, 0.25, -0.25 real CompressibleOffsetMomentsInterpolationProcessor::calcPressBNE() { - return press_NET * (0.140625 - 0.1875 * xoff - 0.1875 * yoff - 0.5625 * zoff) + - press_NWT * (0.046875 + 0.1875 * xoff - 0.0625 * yoff - 0.1875 * zoff) + - press_SET * (0.046875 - 0.0625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_SWT * (0.015625 + 0.0625 * xoff + 0.0625 * yoff - 0.0625 * zoff) + - press_SWB * (0.046875 + 0.1875 * xoff + 0.1875 * yoff + 0.0625 * zoff) + - press_NWB * (0.140625 + 0.5625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SEB * (0.140625 - 0.1875 * xoff + 0.5625 * yoff + 0.1875 * zoff) + - press_NEB * (0.421875 - 0.5625 * xoff - 0.5625 * yoff + 0.5625 * zoff); + return press_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + press_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + press_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + press_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + press_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + press_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position C 0.0, 0.0, 0.0 @@ -928,21 +928,21 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeFC(rea using namespace D3Q27System; using namespace vf::lbm::dir; - real press = press_NET * (0.125 - 0.25 * xoff - 0.25 * yoff - 0.25 * zoff) + - press_NWT * (0.125 + 0.25 * xoff - 0.25 * yoff - 0.25 * zoff) + - press_SET * (0.125 - 0.25 * xoff + 0.25 * yoff - 0.25 * zoff) + - press_SWT * (0.125 + 0.25 * xoff + 0.25 * yoff - 0.25 * zoff) + - press_NEB * (0.125 - 0.25 * xoff - 0.25 * yoff + 0.25 * zoff) + - press_NWB * (0.125 + 0.25 * xoff - 0.25 * yoff + 0.25 * zoff) + - press_SEB * (0.125 - 0.25 * xoff + 0.25 * yoff + 0.25 * zoff) + - press_SWB * (0.125 + 0.25 * xoff + 0.25 * yoff + 0.25 * zoff); + real press = press_NET * (c4o32 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + press_NWT * (c4o32 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + press_SET * (c4o32 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + press_SWT * (c4o32 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + press_NEB * (c4o32 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + press_NWB * (c4o32 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + press_SEB * (c4o32 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + press_SWB * (c4o32 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); real vx1 = a0; real vx2 = b0; real vx3 = c0; -// LBMReal rho = press ;//+ (ax+by+cz)/3.; +// LBMReal rho = press ;//+ (ax+by+cz)/c3o1; - real eps_new = 2.; + real eps_new = c2o1; real o = omega; //bulk viscosity real oP = OxxPyyPzzC; @@ -1276,12 +1276,12 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedVelocity(r ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedShearStress(real x, real y, real z,real& tauxx, real& tauyy, real& tauzz,real& tauxy, real& tauxz, real& tauyz) { - tauxx=ax+2*axx*x+axy*y+axz*z+axyz*y*z; - tauyy=by+2*byy*y+bxy*x+byz*z+bxyz*x*z; - tauzz=cz+2*czz*z+cxz*x+cyz*y+cxyz*x*y; - tauxy=0.5*((ay+2.0*ayy*y+axy*x+ayz*z+axyz*x*z)+(bx+2.0*bxx*x+bxy*y+bxz*z+bxyz*y*z)); - tauxz=0.5*((az+2.0*azz*z+axz*x+ayz*y+axyz*x*y)+(cx+2.0*cxx*x+cxy*y+cxz*z+cxyz*y*z)); - tauyz=0.5*((bz+2.0*bzz*z+bxz*x+byz*y+bxyz*x*y)+(cy+2.0*cyy*y+cxy*x+cyz*z+cxyz*x*z)); + tauxx=ax+c2o1*axx*x+axy*y+axz*z+axyz*y*z; + tauyy=by+c2o1*byy*y+bxy*x+byz*z+bxyz*x*z; + tauzz=cz+c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y; + tauxy= c1o2*((ay+c2o1*ayy*y+axy*x+ayz*z+axyz*x*z)+(bx+c2o1*bxx*x+bxy*y+bxz*z+bxyz*y*z)); + tauxz= c1o2*((az+c2o1*azz*z+axz*x+ayz*y+axyz*x*y)+(cx+c2o1*cxx*x+cxy*y+cxz*z+cxyz*y*z)); + tauyz= c1o2*((bz+c2o1*bzz*z+bxz*x+byz*y+bxyz*x*y)+(cy+c2o1*cyy*y+cxy*x+cyz*z+cxyz*x*z)); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetMomentsInterpolationProcessor::setBulkViscosity(real shearViscosity, real bulkViscosity) diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp index f924d4b91..1e82ff96f 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp @@ -58,21 +58,21 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::setOffsets(real xof void CompressibleOffsetSquarePressureInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); - calcInterpolatedCoefficiets(icellC, omegaC, 0.5); - calcInterpolatedNodeCF(icellF.BSW, omegaF, -0.25, -0.25, -0.25, calcPressBSW(), -1, -1, -1); - calcInterpolatedNodeCF(icellF.BNE, omegaF, 0.25, 0.25, -0.25, calcPressBNE(), 1, 1, -1); - calcInterpolatedNodeCF(icellF.TNW, omegaF, -0.25, 0.25, 0.25, calcPressTNW(), -1, 1, 1); - calcInterpolatedNodeCF(icellF.TSE, omegaF, 0.25, -0.25, 0.25, calcPressTSE(), 1, -1, 1); - calcInterpolatedNodeCF(icellF.BNW, omegaF, -0.25, 0.25, -0.25, calcPressBNW(), -1, 1, -1); - calcInterpolatedNodeCF(icellF.BSE, omegaF, 0.25, -0.25, -0.25, calcPressBSE(), 1, -1, -1); - calcInterpolatedNodeCF(icellF.TSW, omegaF, -0.25, -0.25, 0.25, calcPressTSW(), -1, -1, 1); - calcInterpolatedNodeCF(icellF.TNE, omegaF, 0.25, 0.25, 0.25, calcPressTNE(), 1, 1, 1); + calcInterpolatedCoefficiets(icellC, omegaC, c1o2); + calcInterpolatedNodeCF(icellF.BSW, omegaF, -c1o4, -c1o4, -c1o4, calcPressBSW(), -c1o1, -c1o1, -c1o1); + calcInterpolatedNodeCF(icellF.BNE, omegaF, c1o4, c1o4, -c1o4, calcPressBNE(), c1o1, c1o1, -c1o1); + calcInterpolatedNodeCF(icellF.TNW, omegaF, -c1o4, c1o4, c1o4, calcPressTNW(), -c1o1, c1o1, c1o1); + calcInterpolatedNodeCF(icellF.TSE, omegaF, c1o4, -c1o4, c1o4, calcPressTSE(), c1o1, -c1o1, c1o1); + calcInterpolatedNodeCF(icellF.BNW, omegaF, -c1o4, c1o4, -c1o4, calcPressBNW(), -c1o1, c1o1, -c1o1); + calcInterpolatedNodeCF(icellF.BSE, omegaF, c1o4, -c1o4, -c1o4, calcPressBSE(), c1o1, -c1o1, -c1o1); + calcInterpolatedNodeCF(icellF.TSW, omegaF, -c1o4, -c1o4, c1o4, calcPressTSW(), -c1o1, -c1o1, c1o1); + calcInterpolatedNodeCF(icellF.TNE, omegaF, c1o4, c1o4, c1o4, calcPressTNE(), c1o1, c1o1, c1o1); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetSquarePressureInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); - calcInterpolatedCoefficiets(icellF, omegaF, 2.0); + calcInterpolatedCoefficiets(icellF, omegaF, c2o1); calcInterpolatedNodeFC(icellC, omegaC); } ////////////////////////////////////////////////////////////////////////// @@ -82,16 +82,16 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcMoments(const r using namespace D3Q27System; using namespace vf::lbm::dir; - real drho = 0.0; + real drho = c0o1; D3Q27System::calcCompMacroscopicValues(f,drho,vx1,vx2,vx3); press = drho; //interpolate rho! - kxy = -3.*omega*((((f[DIR_MMP]+f[DIR_PPM])-(f[DIR_MPP]+f[DIR_PMM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_MPM]+f[DIR_PMP])))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_MP0]+f[DIR_PM0]))/(c1o1 + drho)-(vx1*vx2));// might not be optimal MG 25.2.13 - kyz = -3.*omega*((((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])-(f[DIR_MMP]+f[DIR_PPM])))+((f[DIR_0MM]+f[DIR_0PP])-(f[DIR_0MP]+f[DIR_0PM]))/(c1o1 + drho)-(vx2*vx3)); - kxz = -3.*omega*((((f[DIR_MPM]+f[DIR_PMP])-(f[DIR_MMP]+f[DIR_PPM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMM]+f[DIR_MPP])))+((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_M0P]+f[DIR_P0M]))/(c1o1 + drho)-(vx1*vx3)); - kxxMyy = -3./2.*omega*((((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_M0P]+f[DIR_P0M])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_0M0]+f[DIR_0P0]))/(c1o1 + drho)-(vx1*vx1-vx2*vx2)); - kxxMzz = -3./2.*omega*((((f[DIR_MP0]+f[DIR_PM0])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_00M]+f[DIR_00P]))/(c1o1 + drho)-(vx1*vx1-vx3*vx3)); + kxy = -c3o1*omega*((((f[DIR_MMP]+f[DIR_PPM])-(f[DIR_MPP]+f[DIR_PMM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_MPM]+f[DIR_PMP])))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_MP0]+f[DIR_PM0]))/(c1o1 + drho)-(vx1*vx2));// might not be optimal MG 25.2.13 + kyz = -c3o1*omega*((((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])-(f[DIR_MMP]+f[DIR_PPM])))+((f[DIR_0MM]+f[DIR_0PP])-(f[DIR_0MP]+f[DIR_0PM]))/(c1o1 + drho)-(vx2*vx3)); + kxz = -c3o1*omega*((((f[DIR_MPM]+f[DIR_PMP])-(f[DIR_MMP]+f[DIR_PPM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMM]+f[DIR_MPP])))+((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_M0P]+f[DIR_P0M]))/(c1o1 + drho)-(vx1*vx3)); + kxxMyy = -c3o1/c2o1*omega*((((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_M0P]+f[DIR_P0M])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_0M0]+f[DIR_0P0]))/(c1o1 + drho)-(vx1*vx1-vx2*vx2)); + kxxMzz = -c3o1/c2o1*omega*((((f[DIR_MP0]+f[DIR_PM0])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_00M]+f[DIR_00P]))/(c1o1 + drho)-(vx1*vx1-vx3*vx3)); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, real omega, real eps_new) @@ -190,116 +190,116 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedCoe kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - 2.*kxyFromfcNEQ_NEB - 2.*kxyFromfcNEQ_NET - 2.*kxyFromfcNEQ_NWB - 2.*kxyFromfcNEQ_NWT + - 2.*kxyFromfcNEQ_SEB + 2.*kxyFromfcNEQ_SET + 2.*kxyFromfcNEQ_SWB + 2.*kxyFromfcNEQ_SWT + - 2.*kxzFromfcNEQ_NEB - 2.*kxzFromfcNEQ_NET + 2.*kxzFromfcNEQ_NWB - 2.*kxzFromfcNEQ_NWT + - 2.*kxzFromfcNEQ_SEB - 2.*kxzFromfcNEQ_SET + 2.*kxzFromfcNEQ_SWB - 2.*kxzFromfcNEQ_SWT + - 8.*vx1_NEB + 8.*vx1_NET + 8.*vx1_NWB + 8.*vx1_NWT + 8.*vx1_SEB + - 8.*vx1_SET + 8.*vx1_SWB + 8.*vx1_SWT + 2.*vx2_NEB + 2.*vx2_NET - - 2.*vx2_NWB - 2.*vx2_NWT - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB + - 2.*vx2_SWT - 2.*vx3_NEB + 2.*vx3_NET + 2.*vx3_NWB - 2.*vx3_NWT - - 2.*vx3_SEB + 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/64.; - b0 = (2.*kxxMyyFromfcNEQ_NEB + 2.*kxxMyyFromfcNEQ_NET + 2.*kxxMyyFromfcNEQ_NWB + 2.*kxxMyyFromfcNEQ_NWT - - 2.*kxxMyyFromfcNEQ_SEB - 2.*kxxMyyFromfcNEQ_SET - 2.*kxxMyyFromfcNEQ_SWB - 2.*kxxMyyFromfcNEQ_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 - - 2.*kxyFromfcNEQ_NEB - 2.*kxyFromfcNEQ_NET + 2.*kxyFromfcNEQ_NWB + 2.*kxyFromfcNEQ_NWT - - 2.*kxyFromfcNEQ_SEB - 2.*kxyFromfcNEQ_SET + 2.*kxyFromfcNEQ_SWB + 2.*kxyFromfcNEQ_SWT + - 2.*kyzFromfcNEQ_NEB - 2.*kyzFromfcNEQ_NET + 2.*kyzFromfcNEQ_NWB - 2.*kyzFromfcNEQ_NWT + - 2.*kyzFromfcNEQ_SEB - 2.*kyzFromfcNEQ_SET + 2.*kyzFromfcNEQ_SWB - 2.*kyzFromfcNEQ_SWT + - 2.*vx1_NEB + 2.*vx1_NET - 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB - 2.*vx1_SET + 2.*vx1_SWB + 2.*vx1_SWT + - 8.*vx2_NEB + 8.*vx2_NET + 8.*vx2_NWB + 8.*vx2_NWT + - 8.*vx2_SEB + 8.*vx2_SET + 8.*vx2_SWB + 8.*vx2_SWT - - 2.*vx3_NEB + 2.*vx3_NET - 2.*vx3_NWB + 2.*vx3_NWT + - 2.*vx3_SEB - 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/64.; + 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 - - 2.*kxxMzzFromfcNEQ_NEB + 2.*kxxMzzFromfcNEQ_NET - 2.*kxxMzzFromfcNEQ_NWB + 2.*kxxMzzFromfcNEQ_NWT - - 2.*kxxMzzFromfcNEQ_SEB + 2.*kxxMzzFromfcNEQ_SET - 2.*kxxMzzFromfcNEQ_SWB + 2.*kxxMzzFromfcNEQ_SWT - - 2.*kxzFromfcNEQ_NEB - 2.*kxzFromfcNEQ_NET + 2.*kxzFromfcNEQ_NWB + 2.*kxzFromfcNEQ_NWT - - 2.*kxzFromfcNEQ_SEB - 2.*kxzFromfcNEQ_SET + 2.*kxzFromfcNEQ_SWB + 2.*kxzFromfcNEQ_SWT - - 2.*kyzFromfcNEQ_NEB - 2.*kyzFromfcNEQ_NET - 2.*kyzFromfcNEQ_NWB - 2.*kyzFromfcNEQ_NWT + - 2.*kyzFromfcNEQ_SEB + 2.*kyzFromfcNEQ_SET + 2.*kyzFromfcNEQ_SWB + 2.*kyzFromfcNEQ_SWT - - 2.*vx1_NEB + 2.*vx1_NET + 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB + 2.*vx1_SET + 2.*vx1_SWB - 2.*vx1_SWT - - 2.*vx2_NEB + 2.*vx2_NET - 2.*vx2_NWB + 2.*vx2_NWT + - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB - 2.*vx2_SWT + - 8.*vx3_NEB + 8.*vx3_NET + 8.*vx3_NWB + 8.*vx3_NWT + - 8.*vx3_SEB + 8.*vx3_SET + 8.*vx3_SWB + 8.*vx3_SWT)/64.; - ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/4.; - bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/4.; - cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/4.; + 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 + - 2.*vx2_NEB + 2.*vx2_NET - 2.*vx2_NWB - 2.*vx2_NWT - - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB + 2.*vx2_SWT - - 2.*vx3_NEB + 2.*vx3_NET + 2.*vx3_NWB - 2.*vx3_NWT - - 2.*vx3_SEB + 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/16.; + 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 - - 2.*vx1_NEB - 2.*vx1_NET + 2.*vx1_NWB + 2.*vx1_NWT + - 2.*vx1_SEB + 2.*vx1_SET - 2.*vx1_SWB - 2.*vx1_SWT)/8.; + 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 + - 2.*vx1_NEB - 2.*vx1_NET - 2.*vx1_NWB + 2.*vx1_NWT + - 2.*vx1_SEB - 2.*vx1_SET - 2.*vx1_SWB + 2.*vx1_SWT)/8.; - ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/4.; - by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/4.; - cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/4.; + 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 - - 2.*vx2_NEB - 2.*vx2_NET + 2.*vx2_NWB + 2.*vx2_NWT + - 2.*vx2_SEB + 2.*vx2_SET - 2.*vx2_SWB - 2.*vx2_SWT)/8.; - byy= (-2.*kxxMyyFromfcNEQ_NEB - 2.*kxxMyyFromfcNEQ_NET - 2.*kxxMyyFromfcNEQ_NWB - 2.*kxxMyyFromfcNEQ_NWT + - 2.*kxxMyyFromfcNEQ_SEB + 2.*kxxMyyFromfcNEQ_SET + 2.*kxxMyyFromfcNEQ_SWB + 2.*kxxMyyFromfcNEQ_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 + - 2.*vx1_NEB + 2.*vx1_NET - 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB - 2.*vx1_SET + 2.*vx1_SWB + 2.*vx1_SWT - - 2.*vx3_NEB + 2.*vx3_NET - 2.*vx3_NWB + 2.*vx3_NWT + - 2.*vx3_SEB - 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/16.; + 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 + - 2.*vx2_NEB - 2.*vx2_NET + 2.*vx2_NWB - 2.*vx2_NWT - - 2.*vx2_SEB + 2.*vx2_SET - 2.*vx2_SWB + 2.*vx2_SWT)/8.; - az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/4.; - bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/4.; - cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/4.; + 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 + - 2.*vx3_NEB - 2.*vx3_NET - 2.*vx3_NWB + 2.*vx3_NWT + - 2.*vx3_SEB - 2.*vx3_SET - 2.*vx3_SWB + 2.*vx3_SWT)/8.; + 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 + - 2.*vx3_NEB - 2.*vx3_NET + 2.*vx3_NWB - 2.*vx3_NWT - - 2.*vx3_SEB + 2.*vx3_SET - 2.*vx3_SWB + 2.*vx3_SWT)/8.; + 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 + - 2.*kxxMzzFromfcNEQ_NEB - 2.*kxxMzzFromfcNEQ_NET + 2.*kxxMzzFromfcNEQ_NWB - 2.*kxxMzzFromfcNEQ_NWT + - 2.*kxxMzzFromfcNEQ_SEB - 2.*kxxMzzFromfcNEQ_SET + 2.*kxxMzzFromfcNEQ_SWB - 2.*kxxMzzFromfcNEQ_SWT - - 2.*vx1_NEB + 2.*vx1_NET + 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB + 2.*vx1_SET + 2.*vx1_SWB - 2.*vx1_SWT - - 2.*vx2_NEB + 2.*vx2_NET - 2.*vx2_NWB + 2.*vx2_NWT + - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB - 2.*vx2_SWT)/16.; - axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/2.; - bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/2.; - cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/2.; - axz= (-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT - vx1_SEB + vx1_SET + vx1_SWB - vx1_SWT)/2.; - bxz= (-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT - vx2_SEB + vx2_SET + vx2_SWB - vx2_SWT)/2.; - cxz= (-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT - vx3_SEB + vx3_SET + vx3_SWB - vx3_SWT)/2.; - ayz= (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT + vx1_SEB - vx1_SET + vx1_SWB - vx1_SWT)/2.; - byz= (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT + vx2_SEB - vx2_SET + vx2_SWB - vx2_SWT)/2.; - cyz= (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT + vx3_SEB - vx3_SET + vx3_SWB - vx3_SWT)/2.; + 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; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - kxyAverage =0;//(kxyFromfcNEQ_SWB+ + kxyAverage = c0o1;//(kxyFromfcNEQ_SWB+ //kxyFromfcNEQ_SWT+ //kxyFromfcNEQ_SET+ //kxyFromfcNEQ_SEB+ @@ -307,7 +307,7 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedCoe //kxyFromfcNEQ_NWT+ //kxyFromfcNEQ_NET+ //kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - kyzAverage =0;//(kyzFromfcNEQ_SWB+ + kyzAverage = c0o1;//(kyzFromfcNEQ_SWB+ //kyzFromfcNEQ_SWT+ //kyzFromfcNEQ_SET+ //kyzFromfcNEQ_SEB+ @@ -315,7 +315,7 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedCoe //kyzFromfcNEQ_NWT+ //kyzFromfcNEQ_NET+ //kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - kxzAverage =0;//(kxzFromfcNEQ_SWB+ + kxzAverage = c0o1;//(kxzFromfcNEQ_SWB+ //kxzFromfcNEQ_SWT+ //kxzFromfcNEQ_SET+ //kxzFromfcNEQ_SEB+ @@ -323,7 +323,7 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedCoe //kxzFromfcNEQ_NWT+ //kxzFromfcNEQ_NET+ //kxzFromfcNEQ_NEB)*c1o8-(az+cx); - kxxMyyAverage =0;//(kxxMyyFromfcNEQ_SWB+ + kxxMyyAverage = c0o1;//(kxxMyyFromfcNEQ_SWB+ //kxxMyyFromfcNEQ_SWT+ //kxxMyyFromfcNEQ_SET+ //kxxMyyFromfcNEQ_SEB+ @@ -331,7 +331,7 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedCoe //kxxMyyFromfcNEQ_NWT+ //kxxMyyFromfcNEQ_NET+ //kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - kxxMzzAverage =0;//(kxxMzzFromfcNEQ_SWB+ + kxxMzzAverage = c0o1;//(kxxMzzFromfcNEQ_SWB+ //kxxMzzFromfcNEQ_SWT+ //kxxMzzFromfcNEQ_SET+ //kxxMzzFromfcNEQ_SEB+ @@ -345,17 +345,17 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedCoe // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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 + xoff*yoff*zoff*axyz ; - ax = ax + 2. * xoff * axx + yoff * axy + zoff * axz + yoff*zoff*axyz; - ay = ay + 2. * yoff * ayy + xoff * axy + zoff * ayz + xoff*zoff*axyz; - az = az + 2. * zoff * azz + xoff * axz + yoff * ayz + xoff*yoff*axyz; + ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz + yoff*zoff*axyz; + ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz + xoff*zoff*axyz; + az = az + c2o1 * zoff * azz + xoff * axz + yoff * ayz + xoff*yoff*axyz; 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 + xoff*yoff*zoff*bxyz; - bx = bx + 2. * xoff * bxx + yoff * bxy + zoff * bxz + yoff*zoff*bxyz; - by = by + 2. * yoff * byy + xoff * bxy + zoff * byz + xoff*zoff*bxyz; - bz = bz + 2. * zoff * bzz + xoff * bxz + yoff * byz + xoff*yoff*bxyz; + bx = bx + c2o1 * xoff * bxx + yoff * bxy + zoff * bxz + yoff*zoff*bxyz; + by = by + c2o1 * yoff * byy + xoff * bxy + zoff * byz + xoff*zoff*bxyz; + bz = bz + c2o1 * zoff * bzz + xoff * bxz + yoff * byz + xoff*yoff*bxyz; 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 + xoff*yoff*zoff*cxyz; - cx = cx + 2. * xoff * cxx + yoff * cxy + zoff * cxz + yoff*zoff*cxyz; - cy = cy + 2. * yoff * cyy + xoff * cxy + zoff * cyz + xoff*zoff*cxyz; - cz = cz + 2. * zoff * czz + xoff * cxz + yoff * cyz + xoff*yoff*cxyz; + cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz + yoff*zoff*cxyz; + cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz + xoff*zoff*cxyz; + cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz + xoff*yoff*cxyz; axy= axy + zoff*axyz; axz= axz + yoff*axyz; ayz= ayz + xoff*axyz; @@ -369,110 +369,110 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedCoe const real o = omega; - f_E = eps_new*((2*(-2*ax + by + cz-kxxMzzAverage-kxxMyyAverage))/(27.*o)); - f_N = eps_new*((2*(ax - 2*by + cz+2*kxxMyyAverage-kxxMzzAverage))/(27.*o)); - f_T = eps_new*((2*(ax + by - 2*cz-kxxMyyAverage+2*kxxMzzAverage))/(27.*o)); - f_NE = eps_new*(-(ax + 3*ay + 3*bx + by - 2*cz+2*kxxMyyAverage-kxxMyyAverage+3*kxyAverage)/(54.*o)); - f_SE = eps_new*(-(ax - 3*ay - 3*bx + by - 2*cz+2*kxxMyyAverage-kxxMyyAverage-3*kxyAverage)/(54.*o)); - f_TE = eps_new*(-(ax + 3*az - 2*by + 3*cx + cz+2*kxxMyyAverage-kxxMzzAverage+3*kxzAverage)/(54.*o)); - f_BE = eps_new*(-(ax - 3*az - 2*by - 3*cx + cz+2*kxxMyyAverage-kxxMzzAverage-3*kxzAverage)/(54.*o)); - f_TN = eps_new*(-(-2*ax + by + 3*bz + 3*cy + cz-kxxMyyAverage-kxxMzzAverage+3*kyzAverage)/(54.*o)); - f_BN = eps_new*(-(-2*ax + by - 3*bz - 3*cy + cz-kxxMyyAverage-kxxMzzAverage-3*kyzAverage)/(54.*o)); + f_E = eps_new*((c2o1*(-c2o1*ax + by + cz-kxxMzzAverage-kxxMyyAverage))/(c27o1*o)); + f_N = eps_new*((c2o1*(ax - c2o1*by + cz+c2o1*kxxMyyAverage-kxxMzzAverage))/(c27o1*o)); + f_T = eps_new*((c2o1*(ax + by - c2o1*cz-kxxMyyAverage+c2o1*kxxMzzAverage))/(c27o1*o)); + f_NE = eps_new*(-(ax + c3o1*ay + c3o1*bx + by - c2o1*cz+c2o1*kxxMyyAverage-kxxMyyAverage+c3o1*kxyAverage)/(c54o1*o)); + f_SE = eps_new*(-(ax - c3o1*ay - c3o1*bx + by - c2o1*cz+c2o1*kxxMyyAverage-kxxMyyAverage-c3o1*kxyAverage)/(c54o1*o)); + f_TE = eps_new*(-(ax + c3o1*az - c2o1*by + c3o1*cx + cz+c2o1*kxxMyyAverage-kxxMzzAverage+c3o1*kxzAverage)/(c54o1*o)); + f_BE = eps_new*(-(ax - c3o1*az - c2o1*by - c3o1*cx + cz+c2o1*kxxMyyAverage-kxxMzzAverage-c3o1*kxzAverage)/(c54o1*o)); + f_TN = eps_new*(-(-c2o1*ax + by + c3o1*bz + c3o1*cy + cz-kxxMyyAverage-kxxMzzAverage+c3o1*kyzAverage)/(c54o1*o)); + f_BN = eps_new*(-(-c2o1*ax + by - c3o1*bz - c3o1*cy + cz-kxxMyyAverage-kxxMzzAverage-c3o1*kyzAverage)/(c54o1*o)); f_ZERO = 0.; - f_TNE = eps_new*(-(ay + az + bx + bz + cx + cy+kxyAverage+kxzAverage+kyzAverage)/(72.*o)); - f_TSW = eps_new*((-ay + az - bx + bz + cx + cy-kxyAverage+kxzAverage+kyzAverage)/(72.*o)); - f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(72.*o)); - f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(72.*o)); - - x_E = 0.25*eps_new*((2*(-4*axx + bxy + cxz))/(27.*o)); - x_N = 0.25*eps_new*((2*(2*axx - 2*bxy + cxz))/(27.*o)); - x_T = 0.25*eps_new*((2*(2*axx + bxy - 2*cxz))/(27.*o)); - x_NE = 0.25*eps_new*(-((2*axx + 3*axy + 6*bxx + bxy - 2*cxz))/(54.*o)); - x_SE = 0.25*eps_new*(-((2*axx - 3*axy - 6*bxx + bxy - 2*cxz))/(54.*o)); - x_TE = 0.25*eps_new*(-((2*axx + 3*axz - 2*bxy + 6*cxx + cxz))/(54.*o)); - x_BE = 0.25*eps_new*(-((2*axx - 3*axz - 2*bxy - 6*cxx + cxz))/(54.*o)); - x_TN = 0.25*eps_new*(-((-4*axx + bxy + 3*bxz + 3*cxy + cxz))/(54.*o)); - x_BN = 0.25*eps_new*(-((-4*axx + bxy - 3*bxz - 3*cxy + cxz))/(54.*o)); + f_TNE = eps_new*(-(ay + az + bx + bz + cx + cy+kxyAverage+kxzAverage+kyzAverage)/(c72o1*o)); + f_TSW = eps_new*((-ay + az - bx + bz + cx + cy-kxyAverage+kxzAverage+kyzAverage)/(c72o1*o)); + f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(c72o1*o)); + f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(c72o1*o)); + + x_E = c1o4*eps_new*((c2o1*(-c4o1*axx + bxy + cxz))/(c27o1*o)); + x_N = c1o4*eps_new*((c2o1*(c2o1*axx - c2o1*bxy + cxz))/(c27o1*o)); + x_T = c1o4*eps_new*((c2o1*(c2o1*axx + bxy - c2o1*cxz))/(c27o1*o)); + x_NE = c1o4*eps_new*(-((c2o1*axx + c3o1*axy + c6o1*bxx + bxy - c2o1*cxz))/(c54o1*o)); + x_SE = c1o4*eps_new*(-((c2o1*axx - c3o1*axy - c6o1*bxx + bxy - c2o1*cxz))/(c54o1*o)); + x_TE = c1o4*eps_new*(-((c2o1*axx + c3o1*axz - c2o1*bxy + c6o1*cxx + cxz))/(c54o1*o)); + x_BE = c1o4*eps_new*(-((c2o1*axx - c3o1*axz - c2o1*bxy - c6o1*cxx + cxz))/(c54o1*o)); + x_TN = c1o4*eps_new*(-((-c4o1*axx + bxy + c3o1*bxz + c3o1*cxy + cxz))/(c54o1*o)); + x_BN = c1o4*eps_new*(-((-c4o1*axx + bxy - c3o1*bxz - c3o1*cxy + cxz))/(c54o1*o)); x_ZERO = 0.; - x_TNE = 0.25*eps_new*(-((axy + axz + 2*bxx + bxz + 2*cxx + cxy))/(72.*o)); - x_TSW = 0.25*eps_new*(((-axy + axz - 2*bxx + bxz + 2*cxx + cxy))/(72.*o)); - x_TSE = 0.25*eps_new*(((axy - axz + 2*bxx + bxz - 2*cxx + cxy))/(72.*o)); - x_TNW = 0.25*eps_new*(((axy + axz + 2*bxx - bxz + 2*cxx - cxy))/(72.*o)); - - y_E = 0.25*eps_new*(2*(-2*axy + 2*byy + cyz))/(27.*o); - y_N = 0.25*eps_new*(2*(axy - 4*byy + cyz))/(27.*o); - y_T = 0.25*eps_new*(2*(axy + 2*byy - 2*cyz))/(27.*o); - y_NE = 0.25*eps_new*(-((axy + 6*ayy + 3*bxy + 2*byy - 2*cyz))/(54.*o)); - y_SE = 0.25*eps_new*(-((axy - 6*ayy - 3*bxy + 2*byy - 2*cyz))/(54.*o)); - y_TE = 0.25*eps_new*(-((axy + 3*ayz - 4*byy + 3*cxy + cyz))/(54.*o)); - y_BE = 0.25*eps_new*(-((axy - 3*ayz - 4*byy - 3*cxy + cyz))/(54.*o)); - y_TN = 0.25*eps_new*(-((-2*axy + 2*byy + 3*byz + 6*cyy + cyz))/(54.*o)); - y_BN = 0.25*eps_new*(-((-2*axy + 2*byy - 3*byz - 6*cyy + cyz))/(54.*o)); + x_TNE = c1o4*eps_new*(-((axy + axz + c2o1*bxx + bxz + c2o1*cxx + cxy))/(c72o1*o)); + x_TSW = c1o4*eps_new*(((-axy + axz - c2o1*bxx + bxz + c2o1*cxx + cxy))/(c72o1*o)); + x_TSE = c1o4*eps_new*(((axy - axz + c2o1*bxx + bxz - c2o1*cxx + cxy))/(c72o1*o)); + x_TNW = c1o4*eps_new*(((axy + axz + c2o1*bxx - bxz + c2o1*cxx - cxy))/(c72o1*o)); + + y_E = c1o4*eps_new*(c2o1*(-c2o1*axy + c2o1*byy + cyz))/(c27o1*o); + y_N = c1o4*eps_new*(c2o1*(axy - c4o1*byy + cyz))/(c27o1*o); + y_T = c1o4*eps_new*(c2o1*(axy + c2o1*byy - c2o1*cyz))/(c27o1*o); + y_NE = c1o4*eps_new*(-((axy + c6o1*ayy + c3o1*bxy + c2o1*byy - c2o1*cyz))/(c54o1*o)); + y_SE = c1o4*eps_new*(-((axy - c6o1*ayy - c3o1*bxy + c2o1*byy - c2o1*cyz))/(c54o1*o)); + y_TE = c1o4*eps_new*(-((axy + c3o1*ayz - c4o1*byy + c3o1*cxy + cyz))/(c54o1*o)); + y_BE = c1o4*eps_new*(-((axy - c3o1*ayz - c4o1*byy - c3o1*cxy + cyz))/(c54o1*o)); + y_TN = c1o4*eps_new*(-((-c2o1*axy + c2o1*byy + c3o1*byz + c6o1*cyy + cyz))/(c54o1*o)); + y_BN = c1o4*eps_new*(-((-c2o1*axy + c2o1*byy - c3o1*byz - c6o1*cyy + cyz))/(c54o1*o)); y_ZERO = 0.; - y_TNE = 0.25*eps_new*(-((2*ayy + ayz + bxy + byz + cxy + 2*cyy))/(72.*o)); - y_TSW = 0.25*eps_new*(((-2*ayy + ayz - bxy + byz + cxy + 2*cyy))/(72.*o)); - y_TSE = 0.25*eps_new*(((2*ayy - ayz + bxy + byz - cxy + 2*cyy))/(72.*o)); - y_TNW = 0.25*eps_new*(((2*ayy + ayz + bxy - byz + cxy - 2*cyy))/(72.*o)); - - z_E = 0.25*eps_new*((2*(-2*axz + byz + 2*czz))/(27.*o)); - z_N = 0.25*eps_new*((2*(axz - 2*byz + 2*czz))/(27.*o)); - z_T = 0.25*eps_new*((2*(axz + byz - 4*czz))/(27.*o)); - z_NE = 0.25*eps_new*(-((axz + 3*ayz + 3*bxz + byz - 4*czz))/(54.*o)); - z_SE = 0.25*eps_new*(-((axz - 3*ayz - 3*bxz + byz - 4*czz))/(54.*o)); - z_TE = 0.25*eps_new*(-((axz + 6*azz - 2*byz + 3*cxz + 2*czz))/(54.*o)); - z_BE = 0.25*eps_new*(-((axz - 6*azz - 2*byz - 3*cxz + 2*czz))/(54.*o)); - z_TN = 0.25*eps_new*(-((-2*axz + byz + 6*bzz + 3*cyz + 2*czz))/(54.*o)); - z_BN = 0.25*eps_new*(-((-2*axz + byz - 6*bzz - 3*cyz + 2*czz))/(54.*o)); + y_TNE = c1o4*eps_new*(-((c2o1*ayy + ayz + bxy + byz + cxy + c2o1*cyy))/(c72o1*o)); + y_TSW = c1o4*eps_new*(((-c2o1*ayy + ayz - bxy + byz + cxy + c2o1*cyy))/(c72o1*o)); + y_TSE = c1o4*eps_new*(((c2o1*ayy - ayz + bxy + byz - cxy + c2o1*cyy))/(c72o1*o)); + y_TNW = c1o4*eps_new*(((c2o1*ayy + ayz + bxy - byz + cxy - c2o1*cyy))/(c72o1*o)); + + z_E = c1o4*eps_new*((c2o1*(-c2o1*axz + byz + c2o1*czz))/(c27o1*o)); + z_N = c1o4*eps_new*((c2o1*(axz - c2o1*byz + c2o1*czz))/(c27o1*o)); + z_T = c1o4*eps_new*((c2o1*(axz + byz - c4o1*czz))/(c27o1*o)); + z_NE = c1o4*eps_new*(-((axz + c3o1*ayz + c3o1*bxz + byz - c4o1*czz))/(c54o1*o)); + z_SE = c1o4*eps_new*(-((axz - c3o1*ayz - c3o1*bxz + byz - c4o1*czz))/(c54o1*o)); + z_TE = c1o4*eps_new*(-((axz + c6o1*azz - c2o1*byz + c3o1*cxz + c2o1*czz))/(c54o1*o)); + z_BE = c1o4*eps_new*(-((axz - c6o1*azz - c2o1*byz - c3o1*cxz + c2o1*czz))/(c54o1*o)); + z_TN = c1o4*eps_new*(-((-c2o1*axz + byz + c6o1*bzz + c3o1*cyz + c2o1*czz))/(c54o1*o)); + z_BN = c1o4*eps_new*(-((-c2o1*axz + byz - c6o1*bzz - c3o1*cyz + c2o1*czz))/(c54o1*o)); z_ZERO = 0.; - z_TNE = 0.25*eps_new*(-((ayz + 2*azz + bxz + 2*bzz + cxz + cyz))/(72.*o)); - z_TSW = 0.25*eps_new*(((-ayz + 2*azz - bxz + 2*bzz + cxz + cyz))/(72.*o)); - z_TSE = 0.25*eps_new*(((ayz - 2*azz + bxz + 2*bzz - cxz + cyz))/(72.*o)); - z_TNW = 0.25*eps_new*(((ayz + 2*azz + bxz - 2*bzz + cxz - cyz))/(72.*o)); - - xy_E = 0.0625*eps_new *(( 2.*cxyz)/(27.*o)); - xy_N = 0.0625*eps_new *(( 2.*cxyz)/(27.*o)); - xy_T = -(0.0625*eps_new *(( 4.*cxyz)/(27.*o))); - xy_NE = 0.0625*eps_new *( cxyz /(27.*o)); - xy_SE = 0.0625*eps_new *( cxyz /(27.*o)); - xy_TE = -(0.0625*eps_new *(( 3.*axyz + cxyz)/(54.*o))); - xy_BE = -(0.0625*eps_new *((-3.*axyz + cxyz)/(54.*o))); - xy_TN = -(0.0625*eps_new *(( 3.*bxyz + cxyz)/(54.*o))); - xy_BN = -(0.0625*eps_new *(( - 3.*bxyz + cxyz)/(54.*o))); - //xy_ZERO= 0.0625*eps_new; - xy_TNE = -(0.0625*eps_new *(( axyz + bxyz )/(72.*o))); - xy_TSW = 0.0625*eps_new *(( axyz + bxyz )/(72.*o)); - xy_TSE = 0.0625*eps_new *((- axyz + bxyz )/(72.*o)); - xy_TNW = 0.0625*eps_new *(( axyz - bxyz )/(72.*o)); - - xz_E = 0.0625*eps_new *(( 2.*bxyz )/(27.*o)); - xz_N = -(0.0625*eps_new *(( 4.*bxyz )/(27.*o))); - xz_T = 0.0625*eps_new *(( 2.*bxyz )/(27.*o)); - xz_NE = -(0.0625*eps_new *(( 3.*axyz + bxyz )/(54.*o))); - xz_SE = -(0.0625*eps_new *((-3.*axyz + bxyz )/(54.*o))); - xz_TE = 0.0625*eps_new *(( bxyz )/(27.*o)); - xz_BE = 0.0625*eps_new *(( bxyz )/(27.*o)); - xz_TN = -(0.0625*eps_new *(( bxyz + 3.*cxyz)/(54.*o))); - xz_BN = -(0.0625*eps_new *(( bxyz - 3.*cxyz)/(54.*o))); - //xz_ZERO= 0.0625*eps_new; - xz_TNE = -(0.0625*eps_new *(( axyz + cxyz)/(72.*o))); - xz_TSW = 0.0625*eps_new *((- axyz + cxyz)/(72.*o)); - xz_TSE = 0.0625*eps_new *(( axyz + cxyz)/(72.*o)); - xz_TNW = 0.0625*eps_new *(( axyz - cxyz)/(72.*o)); - - yz_E = -(0.0625*eps_new *(( 4.*axyz )/(27.*o))); - yz_N = 0.0625*eps_new *(( 2.*axyz )/(27.*o)); - yz_T = 0.0625*eps_new *(( 2.*axyz )/(27.*o)); - yz_NE = -(0.0625*eps_new *(( axyz + 3.*bxyz )/(54.*o))); - yz_SE = -(0.0625*eps_new *(( axyz - 3.*bxyz )/(54.*o))); - yz_TE = -(0.0625*eps_new *(( axyz + 3.*cxyz)/(54.*o))); - yz_BE = -(0.0625*eps_new *(( axyz - 3.*cxyz)/(54.*o))); - yz_TN = 0.0625*eps_new *(( axyz )/(27.*o)); - yz_BN = 0.0625*eps_new *(( axyz )/(27.*o)); - //yz_ZERO= 0.0625*eps_new; - yz_TNE = -(0.0625*eps_new *(( bxyz + cxyz)/(72.*o))); - yz_TSW = 0.0625*eps_new *(( - bxyz + cxyz)/(72.*o)); - yz_TSE = 0.0625*eps_new *(( bxyz - cxyz)/(72.*o)); - yz_TNW = 0.0625*eps_new *(( bxyz + cxyz)/(72.*o)); + z_TNE = c1o4*eps_new*(-((ayz + c2o1*azz + bxz + c2o1*bzz + cxz + cyz))/(c72o1*o)); + z_TSW = c1o4*eps_new*(((-ayz + c2o1*azz - bxz + c2o1*bzz + cxz + cyz))/(c72o1*o)); + z_TSE = c1o4*eps_new*(((ayz - c2o1*azz + bxz + c2o1*bzz - cxz + cyz))/(c72o1*o)); + z_TNW = c1o4*eps_new*(((ayz + c2o1*azz + bxz - c2o1*bzz + cxz - cyz))/(c72o1*o)); + + xy_E = c1o16*eps_new *(( c2o1*cxyz)/(c27o1*o)); + xy_N = c1o16*eps_new *(( c2o1*cxyz)/(c27o1*o)); + xy_T = -(c1o16*eps_new *(( c4o1*cxyz)/(c27o1*o))); + xy_NE = c1o16*eps_new *( cxyz /(c27o1*o)); + xy_SE = c1o16*eps_new *( cxyz /(c27o1*o)); + xy_TE = -(c1o16*eps_new *(( c3o1*axyz + cxyz)/(c54o1*o))); + xy_BE = -(c1o16*eps_new *((-c3o1*axyz + cxyz)/(c54o1*o))); + xy_TN = -(c1o16*eps_new *(( c3o1*bxyz + cxyz)/(c54o1*o))); + xy_BN = -(c1o16*eps_new *(( - c3o1*bxyz + cxyz)/(c54o1*o))); + //xy_ZERO= c1o16*eps_new; + xy_TNE = -(c1o16*eps_new *(( axyz + bxyz )/(c72o1*o))); + xy_TSW = c1o16*eps_new *(( axyz + bxyz )/(c72o1*o)); + xy_TSE = c1o16*eps_new *((- axyz + bxyz )/(c72o1*o)); + xy_TNW = c1o16*eps_new *(( axyz - bxyz )/(c72o1*o)); + + xz_E = c1o16*eps_new *(( c2o1*bxyz )/(c27o1*o)); + xz_N = -(c1o16*eps_new *(( c4o1*bxyz )/(c27o1*o))); + xz_T = c1o16*eps_new *(( c2o1*bxyz )/(c27o1*o)); + xz_NE = -(c1o16*eps_new *(( c3o1*axyz + bxyz )/(c54o1*o))); + xz_SE = -(c1o16*eps_new *((-c3o1*axyz + bxyz )/(c54o1*o))); + xz_TE = c1o16*eps_new *(( bxyz )/(c27o1*o)); + xz_BE = c1o16*eps_new *(( bxyz )/(c27o1*o)); + xz_TN = -(c1o16*eps_new *(( bxyz + c3o1*cxyz)/(c54o1*o))); + xz_BN = -(c1o16*eps_new *(( bxyz - c3o1*cxyz)/(c54o1*o))); + //xz_ZERO= c1o16*eps_new; + xz_TNE = -(c1o16*eps_new *(( axyz + cxyz)/(c72o1*o))); + xz_TSW = c1o16*eps_new *((- axyz + cxyz)/(c72o1*o)); + xz_TSE = c1o16*eps_new *(( axyz + cxyz)/(c72o1*o)); + xz_TNW = c1o16*eps_new *(( axyz - cxyz)/(c72o1*o)); + + yz_E = -(c1o16*eps_new *(( c4o1*axyz )/(c27o1*o))); + yz_N = c1o16*eps_new *(( c2o1*axyz )/(c27o1*o)); + yz_T = c1o16*eps_new *(( c2o1*axyz )/(c27o1*o)); + yz_NE = -(c1o16*eps_new *(( axyz + c3o1*bxyz )/(c54o1*o))); + yz_SE = -(c1o16*eps_new *(( axyz - c3o1*bxyz )/(c54o1*o))); + yz_TE = -(c1o16*eps_new *(( axyz + c3o1*cxyz)/(c54o1*o))); + yz_BE = -(c1o16*eps_new *(( axyz - c3o1*cxyz)/(c54o1*o))); + yz_TN = c1o16*eps_new *(( axyz )/(c27o1*o)); + yz_BN = c1o16*eps_new *(( axyz )/(c27o1*o)); + //yz_ZERO= c1o16*eps_new; + yz_TNE = -(c1o16*eps_new *(( bxyz + cxyz)/(c72o1*o))); + yz_TSW = c1o16*eps_new *(( - bxyz + cxyz)/(c72o1*o)); + yz_TSE = c1o16*eps_new *(( bxyz - cxyz)/(c72o1*o)); + yz_TNW = c1o16*eps_new *(( bxyz + cxyz)/(c72o1*o)); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNodeCF(real* f, real omega, real x, real y, real z, real press, real xs, real ys, real zs) @@ -480,20 +480,20 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod using namespace D3Q27System; using namespace vf::lbm::dir; - real eps_new = 0.5; + real eps_new = c1o2; real o = omega; //bulk viscosity real oP = OxxPyyPzzF; - real rho = press ;//+ (2.*axx*x+axy*y+axz*z+axyz*y*z+ax + 2.*byy*y+bxy*x+byz*z+bxyz*x*z+by + 2.*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/3.; + real rho = press ;//+ (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/3.; - real laplaceRho = (xoff!=0.0 || yoff!=0.0 || zoff!= 0.0) ? 0.0 :(-3.0*(by*by+ax*ax+cz*cz)-6.0*(ay*bx+bz*cy+az*cx))*(1.0+rho); + real laplaceRho = (xoff!=c0o1 || yoff!=c0o1 || zoff!= c0o1) ? c0o1 :(-c3o1*(by*by+ax*ax+cz*cz)-c6o1*(ay*bx+bz*cy+az*cx))*(c1o1+rho); - rho=rho+laplaceRho*(3.0/16.0); + rho=rho+laplaceRho*(c3o1/c16o1); - real vx1 = a0 + 0.25*( xs*ax + ys*ay + zs*az) + 0.0625*(axx + xs*ys*axy + xs*zs*axz + ayy + ys*zs*ayz + azz) + 0.015625*(xs*ys*zs*axyz); - real vx2 = b0 + 0.25*( xs*bx + ys*by + zs*bz) + 0.0625*(bxx + xs*ys*bxy + xs*zs*bxz + byy + ys*zs*byz + bzz) + 0.015625*(xs*ys*zs*bxyz); - real vx3 = c0 + 0.25*( xs*cx + ys*cy + zs*cz) + 0.0625*(cxx + xs*ys*cxy + xs*zs*cxz + cyy + ys*zs*cyz + czz) + 0.015625*(xs*ys*zs*cxyz); + real vx1 = a0 + c1o4*( xs*ax + ys*ay + zs*az) + c1o16*(axx + xs*ys*axy + xs*zs*axz + ayy + ys*zs*ayz + azz) + c1o64*(xs*ys*zs*axyz); + real vx2 = b0 + c1o4*( xs*bx + ys*by + zs*bz) + c1o16*(bxx + xs*ys*bxy + xs*zs*bxz + byy + ys*zs*byz + bzz) + c1o64*(xs*ys*zs*bxyz); + real vx3 = c0 + c1o4*( xs*cx + ys*cy + zs*cz) + c1o16*(cxx + xs*ys*cxy + xs*zs*cxz + cyy + ys*zs*cyz + czz) + c1o64*(xs*ys*zs*cxyz); real mfcbb = c0o1; real mfabb = c0o1; @@ -812,108 +812,108 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod f[DIR_MMM] = mfaaa; } ////////////////////////////////////////////////////////////////////////// -//Position SWB -0.25, -0.25, -0.25 +//Position SWB -c1o4, -c1o4, -c1o4 real CompressibleOffsetSquarePressureInterpolationProcessor::calcPressBSW() { - return press_SWT * (0.140625 + 0.1875 * xoff + 0.1875 * yoff - 0.5625 * zoff) + - press_NWT * (0.046875 + 0.0625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SET * (0.046875 - 0.1875 * xoff + 0.0625 * yoff - 0.1875 * zoff) + - press_NET * (0.015625 - 0.0625 * xoff - 0.0625 * yoff - 0.0625 * zoff) + - press_NEB * (0.046875 - 0.1875 * xoff - 0.1875 * yoff + 0.0625 * zoff) + - press_NWB * (0.140625 + 0.1875 * xoff - 0.5625 * yoff + 0.1875 * zoff) + - press_SEB * (0.140625 - 0.5625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_SWB * (0.421875 + 0.5625 * xoff + 0.5625 * yoff + 0.5625 * zoff); + return press_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + press_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + press_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + press_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + press_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + press_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position SWT -0.25, -0.25, 0.25 real CompressibleOffsetSquarePressureInterpolationProcessor::calcPressTSW() { - return press_SWT * (0.421875 + 0.5625 * xoff + 0.5625 * yoff - 0.5625 * zoff) + - press_NWT * (0.140625 + 0.1875 * xoff - 0.5625 * yoff - 0.1875 * zoff) + - press_SET * (0.140625 - 0.5625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_NET * (0.046875 - 0.1875 * xoff - 0.1875 * yoff - 0.0625 * zoff) + - press_NEB * (0.015625 - 0.0625 * xoff - 0.0625 * yoff + 0.0625 * zoff) + - press_NWB * (0.046875 + 0.0625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SEB * (0.046875 - 0.1875 * xoff + 0.0625 * yoff + 0.1875 * zoff) + - press_SWB * (0.140625 + 0.1875 * xoff + 0.1875 * yoff + 0.5625 * zoff); + return press_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + press_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + press_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + press_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + press_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + press_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position SET 0.25, -0.25, 0.25 real CompressibleOffsetSquarePressureInterpolationProcessor::calcPressTSE() { - return press_SET * (0.421875 - 0.5625 * xoff + 0.5625 * yoff - 0.5625 * zoff) + - press_NET * (0.140625 - 0.1875 * xoff - 0.5625 * yoff - 0.1875 * zoff) + - press_SWT * (0.140625 + 0.5625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_NWT * (0.046875 + 0.1875 * xoff - 0.1875 * yoff - 0.0625 * zoff) + - press_NWB * (0.015625 + 0.0625 * xoff - 0.0625 * yoff + 0.0625 * zoff) + - press_NEB * (0.046875 - 0.0625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SWB * (0.046875 + 0.1875 * xoff + 0.0625 * yoff + 0.1875 * zoff) + - press_SEB * (0.140625 - 0.1875 * xoff + 0.1875 * yoff + 0.5625 * zoff); + return press_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + press_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + press_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + press_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + press_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + press_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position SEB 0.25, -0.25, -0.25 real CompressibleOffsetSquarePressureInterpolationProcessor::calcPressBSE() { - return press_SET * (0.140625 - 0.1875 * xoff + 0.1875 * yoff - 0.5625 * zoff) + - press_NET * (0.046875 - 0.0625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SWT * (0.046875 + 0.1875 * xoff + 0.0625 * yoff - 0.1875 * zoff) + - press_NWT * (0.015625 + 0.0625 * xoff - 0.0625 * yoff - 0.0625 * zoff) + - press_NWB * (0.046875 + 0.1875 * xoff - 0.1875 * yoff + 0.0625 * zoff) + - press_NEB * (0.140625 - 0.1875 * xoff - 0.5625 * yoff + 0.1875 * zoff) + - press_SWB * (0.140625 + 0.5625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_SEB * (0.421875 - 0.5625 * xoff + 0.5625 * yoff + 0.5625 * zoff); + return press_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + press_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + press_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + press_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + press_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + press_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NWB -0.25, 0.25, -0.25 real CompressibleOffsetSquarePressureInterpolationProcessor::calcPressBNW() { - return press_NWT * (0.140625 + 0.1875 * xoff - 0.1875 * yoff - 0.5625 * zoff) + - press_NET * (0.046875 - 0.1875 * xoff - 0.0625 * yoff - 0.1875 * zoff) + - press_SWT * (0.046875 + 0.0625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_SET * (0.015625 - 0.0625 * xoff + 0.0625 * yoff - 0.0625 * zoff) + - press_SEB * (0.046875 - 0.1875 * xoff + 0.1875 * yoff + 0.0625 * zoff) + - press_NEB * (0.140625 - 0.5625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SWB * (0.140625 + 0.1875 * xoff + 0.5625 * yoff + 0.1875 * zoff) + - press_NWB * (0.421875 + 0.5625 * xoff - 0.5625 * yoff + 0.5625 * zoff); + return press_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + press_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + press_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + press_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + press_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + press_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NWT -0.25, 0.25, 0.25 real CompressibleOffsetSquarePressureInterpolationProcessor::calcPressTNW() { - return press_NWT * (0.421875 + 0.5625 * xoff - 0.5625 * yoff - 0.5625 * zoff) + - press_NET * (0.140625 - 0.5625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SWT * (0.140625 + 0.1875 * xoff + 0.5625 * yoff - 0.1875 * zoff) + - press_SET * (0.046875 - 0.1875 * xoff + 0.1875 * yoff - 0.0625 * zoff) + - press_SEB * (0.015625 - 0.0625 * xoff + 0.0625 * yoff + 0.0625 * zoff) + - press_NEB * (0.046875 - 0.1875 * xoff - 0.0625 * yoff + 0.1875 * zoff) + - press_SWB * (0.046875 + 0.0625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_NWB * (0.140625 + 0.1875 * xoff - 0.1875 * yoff + 0.5625 * zoff); + return press_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + press_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + press_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + press_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + press_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + press_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NET 0.25, 0.25, 0.25 real CompressibleOffsetSquarePressureInterpolationProcessor::calcPressTNE() { - return press_NET * (0.421875 - 0.5625 * xoff - 0.5625 * yoff - 0.5625 * zoff) + - press_NWT * (0.140625 + 0.5625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SET * (0.140625 - 0.1875 * xoff + 0.5625 * yoff - 0.1875 * zoff) + - press_SWT * (0.046875 + 0.1875 * xoff + 0.1875 * yoff - 0.0625 * zoff) + - press_SWB * (0.015625 + 0.0625 * xoff + 0.0625 * yoff + 0.0625 * zoff) + - press_NWB * (0.046875 + 0.1875 * xoff - 0.0625 * yoff + 0.1875 * zoff) + - press_SEB * (0.046875 - 0.0625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_NEB * (0.140625 - 0.1875 * xoff - 0.1875 * yoff + 0.5625 * zoff); + return press_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + press_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + press_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + press_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + press_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + press_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NEB 0.25, 0.25, -0.25 real CompressibleOffsetSquarePressureInterpolationProcessor::calcPressBNE() { - return press_NET * (0.140625 - 0.1875 * xoff - 0.1875 * yoff - 0.5625 * zoff) + - press_NWT * (0.046875 + 0.1875 * xoff - 0.0625 * yoff - 0.1875 * zoff) + - press_SET * (0.046875 - 0.0625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_SWT * (0.015625 + 0.0625 * xoff + 0.0625 * yoff - 0.0625 * zoff) + - press_SWB * (0.046875 + 0.1875 * xoff + 0.1875 * yoff + 0.0625 * zoff) + - press_NWB * (0.140625 + 0.5625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SEB * (0.140625 - 0.1875 * xoff + 0.5625 * yoff + 0.1875 * zoff) + - press_NEB * (0.421875 - 0.5625 * xoff - 0.5625 * yoff + 0.5625 * zoff); + return press_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + press_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + press_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + press_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + press_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + press_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position C 0.0, 0.0, 0.0 @@ -922,14 +922,14 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod using namespace D3Q27System; using namespace vf::lbm::dir; - real press = press_NET * (0.125 - 0.25 * xoff - 0.25 * yoff - 0.25 * zoff) + - press_NWT * (0.125 + 0.25 * xoff - 0.25 * yoff - 0.25 * zoff) + - press_SET * (0.125 - 0.25 * xoff + 0.25 * yoff - 0.25 * zoff) + - press_SWT * (0.125 + 0.25 * xoff + 0.25 * yoff - 0.25 * zoff) + - press_NEB * (0.125 - 0.25 * xoff - 0.25 * yoff + 0.25 * zoff) + - press_NWB * (0.125 + 0.25 * xoff - 0.25 * yoff + 0.25 * zoff) + - press_SEB * (0.125 - 0.25 * xoff + 0.25 * yoff + 0.25 * zoff) + - press_SWB * (0.125 + 0.25 * xoff + 0.25 * yoff + 0.25 * zoff); + real press = press_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + press_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + press_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + press_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + press_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + press_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + press_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + press_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); real vx1 = a0; real vx2 = b0; real vx3 = c0; @@ -937,11 +937,11 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod real rho = press ;//+ (ax+by+cz)/3.; - real laplaceRho = (xoff!=0.0 || yoff!=0.0 || zoff!= 0.0) ? 0.0 :(-3.0*(by*by+ax*ax+cz*cz)-6.0*(ay*bx+bz*cy+az*cx))*(1.0+rho); + real laplaceRho = (xoff!=c0o1 || yoff!=c0o1 || zoff!= c0o1) ? c0o1 :(-c3o1*(by*by+ax*ax+cz*cz)-c6o1*(ay*bx+bz*cy+az*cx))*(c1o1+rho); - rho=rho-laplaceRho*0.25; + rho=rho-laplaceRho*c1o4; - real eps_new = 2.0; + real eps_new = c2o1; real o = omega; //bulk viscosity real oP = OxxPyyPzzC; @@ -1008,7 +1008,7 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod real mxxyMyzz = c0o1; real mxxzPyyz = c0o1; real mxxzMyyz = c0o1; - real mxyyPxzz = c0o1; + real mxyyPxzz = c0o1; real mxyyMxzz = c0o1; // linear combinations back @@ -1275,12 +1275,12 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedVel ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedShearStress(real x, real y, real z,real& tauxx, real& tauyy, real& tauzz,real& tauxy, real& tauxz, real& tauyz) { - tauxx=ax+2*axx*x+axy*y+axz*z+axyz*y*z; - tauyy=by+2*byy*y+bxy*x+byz*z+bxyz*x*z; - tauzz=cz+2*czz*z+cxz*x+cyz*y+cxyz*x*y; - tauxy=0.5*((ay+2.0*ayy*y+axy*x+ayz*z+axyz*x*z)+(bx+2.0*bxx*x+bxy*y+bxz*z+bxyz*y*z)); - tauxz=0.5*((az+2.0*azz*z+axz*x+ayz*y+axyz*x*y)+(cx+2.0*cxx*x+cxy*y+cxz*z+cxyz*y*z)); - tauyz=0.5*((bz+2.0*bzz*z+bxz*x+byz*y+bxyz*x*y)+(cy+2.0*cyy*y+cxy*x+cyz*z+cxyz*x*z)); + tauxx=ax+c2o1*axx*x+axy*y+axz*z+axyz*y*z; + tauyy=by+c2o1*byy*y+bxy*x+byz*z+bxyz*x*z; + tauzz=cz+c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y; + tauxy=c1o2*((ay+c2o1*ayy*y+axy*x+ayz*z+axyz*x*z)+(bx+c2o1*bxx*x+bxy*y+bxz*z+bxyz*y*z)); + tauxz=c1o2*((az+c2o1*azz*z+axz*x+ayz*y+axyz*x*y)+(cx+c2o1*cxx*x+cxy*y+cxz*z+cxyz*y*z)); + tauyz=c1o2*((bz+c2o1*bzz*z+bxz*x+byz*y+bxyz*x*y)+(cy+c2o1*cyy*y+cxy*x+cyz*z+cxyz*x*z)); } ////////////////////////////////////////////////////////////////////////// void CompressibleOffsetSquarePressureInterpolationProcessor::setBulkOmegaToOmega(bool value) diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp index e9c7007a9..65dd9e525 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp @@ -104,7 +104,7 @@ void CumulantK17LBMKernel::calculate(int step) muForcingX2.DefineVar("dt", &muDeltaT); muForcingX3.DefineVar("dt", &muDeltaT); - muNu = (1.0 / 3.0) * (1.0 / collFactor - 1.0 / 2.0); + muNu = (c1o1 / c3o1) * (c1o1 / collFactor - c1o1 / c2o1); muForcingX1.DefineVar("nu", &muNu); muForcingX2.DefineVar("nu", &muNu); diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.cpp b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.cpp index 2d39205c5..db6a718e9 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.cpp @@ -108,7 +108,7 @@ void CumulantK17LBMKernelUnified::calculate(int step) muForcingX2.DefineVar("dt", &muDeltaT); muForcingX3.DefineVar("dt", &muDeltaT); - muNu = (1.0 / 3.0) * (1.0 / collFactor - 1.0 / 2.0); + muNu = (c1o1 / c3o1) * (c1o1 / collFactor - c1o1 / c2o1); muForcingX1.DefineVar("nu", &muNu); muForcingX2.DefineVar("nu", &muNu); @@ -201,7 +201,7 @@ void CumulantK17LBMKernelUnified::calculate(int step) real mfbbb = (*this->restDistributions)(x1, x2, x3); - real forces[3] = {0., 0., 0.}; + real forces[3] = { c0o1, c0o1, c0o1 }; if (withForcing) { muX1 = static_cast<real>(x1 - 1 + ix1 * maxX1); diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.cpp index 375f5c406..7c80c3dea 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.cpp @@ -16,9 +16,9 @@ CumulantLBMKernel::CumulantLBMKernel() { this->compressible = true; this->parameter = CumulantLBMKernel::NORMAL; - this->OxyyMxzz = 1.0; + this->OxyyMxzz = c1o1; this->bulkOmegaToOmega = false; - this->OxxPyyPzz = 1.0; + this->OxxPyyPzz = c1o1; } ////////////////////////////////////////////////////////////////////////// void CumulantLBMKernel::initDataSet() @@ -45,10 +45,10 @@ SPtr<LBMKernel> CumulantLBMKernel::clone() switch (parameter) { case NORMAL: - dynamicPointerCast<CumulantLBMKernel>(kernel)->OxyyMxzz = 1.0; + dynamicPointerCast<CumulantLBMKernel>(kernel)->OxyyMxzz = c1o1; break; case MAGIC: - dynamicPointerCast<CumulantLBMKernel>(kernel)->OxyyMxzz = 2.0 + (-collFactor); + dynamicPointerCast<CumulantLBMKernel>(kernel)->OxyyMxzz = c2o1 + (-collFactor); break; } @@ -1060,7 +1060,7 @@ void CumulantLBMKernel::initData() muForcingX2.DefineVar("dt", &muDeltaT); muForcingX3.DefineVar("dt", &muDeltaT); - muNu = (1.0 / 3.0) * (1.0 / collFactor - 1.0 / 2.0); + muNu = (c1o1 / c3o1) * (c1o1 / collFactor - c1o1 / c2o1); muForcingX1.DefineVar("nu", &muNu); muForcingX2.DefineVar("nu", &muNu); @@ -1158,9 +1158,9 @@ void CumulantLBMKernel::nodeCollision(int step, int x1, int x2, int x3) forcingX2 = muForcingX2.Eval(); forcingX3 = muForcingX3.Eval(); - vvx += forcingX1 * deltaT * 0.5; // X - vvy += forcingX2 * deltaT * 0.5; // Y - vvz += forcingX3 * deltaT * 0.5; // Z + vvx += forcingX1 * deltaT * c1o2; // X + vvy += forcingX2 * deltaT * c1o2; // Y + vvz += forcingX3 * deltaT * c1o2; // Z } /////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.cpp index 782d5c968..2669ebbf2 100644 --- a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.cpp @@ -15,7 +15,7 @@ using namespace vf::lbm::constant; IncompressibleCumulantLBMKernel::IncompressibleCumulantLBMKernel() { this->parameter = NORMAL; - this->OxyyMxzz = 1.0; + this->OxyyMxzz = c1o1; this->compressible = false; } ////////////////////////////////////////////////////////////////////////// @@ -46,10 +46,10 @@ SPtr<LBMKernel> IncompressibleCumulantLBMKernel::clone() switch (parameter) { case NORMAL: - dynamicPointerCast<IncompressibleCumulantLBMKernel>(kernel)->OxyyMxzz = 1.0; + dynamicPointerCast<IncompressibleCumulantLBMKernel>(kernel)->OxyyMxzz = c1o1; break; case MAGIC: - dynamicPointerCast<IncompressibleCumulantLBMKernel>(kernel)->OxyyMxzz = 2.0 +(-collFactor); + dynamicPointerCast<IncompressibleCumulantLBMKernel>(kernel)->OxyyMxzz = c2o1 +(-collFactor); break; } return kernel; @@ -75,7 +75,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) muForcingX2.DefineVar("dt", &muDeltaT); muForcingX3.DefineVar("dt", &muDeltaT); - muNu = (1.0/3.0)*(1.0/collFactor - 1.0/2.0); + muNu = (c1o1/c3o1)*(c1o1/collFactor - c1o1/c2o1); muForcingX1.DefineVar("nu", &muNu); muForcingX2.DefineVar("nu", &muNu); @@ -194,9 +194,9 @@ void IncompressibleCumulantLBMKernel::calculate(int step) forcingX2 = muForcingX2.Eval(); forcingX3 = muForcingX3.Eval(); - vvx += forcingX1*deltaT*0.5; // X - vvy += forcingX2*deltaT*0.5; // Y - vvz += forcingX3*deltaT*0.5; // Z + vvx += forcingX1*deltaT*c1o2; // X + vvy += forcingX2*deltaT*c1o2; // Y + vvz += forcingX3*deltaT*c1o2; // Z } /////////////////////////////////////////////////////////////////////////////////////////// real oMdrho; @@ -225,7 +225,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) m2=mfbba+mfbbc; m0+=m1+m2; m0+=mfbbb; //hat gefehlt - oMdrho = 1. - (oMdrho + m0); + oMdrho = c1o1 - (oMdrho + m0); real vx2; real vy2; @@ -235,7 +235,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) vz2=vvz*vvz; //////////////////////////////////////////////////////////////////////////////////// real wadjust; - real qudricLimit = 0.01; + real qudricLimit = c1o100; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -248,7 +248,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfaaa = m0; m0 += c1o36 * oMdrho; mfaab = m1 - m0 * vvz; - mfaac = m2 - 2. * m1 * vvz + vz2 * m0; + mfaac = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaba + mfabc; m1 = mfabc - mfaba; @@ -256,7 +256,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfaba = m0; m0 += c1o9 * oMdrho; mfabb = m1 - m0 * vvz; - mfabc = m2 - 2. * m1 * vvz + vz2 * m0; + mfabc = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaca + mfacc; m1 = mfacc - mfaca; @@ -264,7 +264,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfaca = m0; m0 += c1o36 * oMdrho; mfacb = m1 - m0 * vvz; - mfacc = m2 - 2. * m1 * vvz + vz2 * m0; + mfacc = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfbaa + mfbac; @@ -273,7 +273,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfbaa = m0; m0 += c1o9 * oMdrho; mfbab = m1 - m0 * vvz; - mfbac = m2 - 2. * m1 * vvz + vz2 * m0; + mfbac = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfbba + mfbbc; m1 = mfbbc - mfbba; @@ -281,7 +281,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfbba = m0; m0 += c4o9 * oMdrho; mfbbb = m1 - m0 * vvz; - mfbbc = m2 - 2. * m1 * vvz + vz2 * m0; + mfbbc = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfbca + mfbcc; m1 = mfbcc - mfbca; @@ -289,7 +289,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfbca = m0; m0 += c1o9 * oMdrho; mfbcb = m1 - m0 * vvz; - mfbcc = m2 - 2. * m1 * vvz + vz2 * m0; + mfbcc = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfcaa + mfcac; @@ -298,7 +298,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfcaa = m0; m0 += c1o36 * oMdrho; mfcab = m1 - m0 * vvz; - mfcac = m2 - 2. * m1 * vvz + vz2 * m0; + mfcac = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfcba + mfcbc; m1 = mfcbc - mfcba; @@ -306,7 +306,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfcba = m0; m0 += c1o9 * oMdrho; mfcbb = m1 - m0 * vvz; - mfcbc = m2 - 2. * m1 * vvz + vz2 * m0; + mfcbc = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfcca + mfccc; m1 = mfccc - mfcca; @@ -314,7 +314,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfcca = m0; m0 += c1o36 * oMdrho; mfccb = m1 - m0 * vvz; - mfccc = m2 - 2. * m1 * vvz + vz2 * m0; + mfccc = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren @@ -326,14 +326,14 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfaaa = m0; m0 += c1o6 * oMdrho; mfaba = m1 - m0 * vvy; - mfaca = m2 - 2. * m1 * vvy + vy2 * m0; + mfaca = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaab + mfacb; m1 = mfacb - mfaab; m0 = m2 + mfabb; mfaab = m0; mfabb = m1 - m0 * vvy; - mfacb = m2 - 2. * m1 * vvy + vy2 * m0; + mfacb = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaac + mfacc; m1 = mfacc - mfaac; @@ -341,7 +341,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfaac = m0; m0 += c1o18 * oMdrho; mfabc = m1 - m0 * vvy; - mfacc = m2 - 2. * m1 * vvy + vy2 * m0; + mfacc = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfbaa + mfbca; @@ -350,14 +350,14 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfbaa = m0; m0 += c2o3 * oMdrho; mfbba = m1 - m0 * vvy; - mfbca = m2 - 2. * m1 * vvy + vy2 * m0; + mfbca = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfbab + mfbcb; m1 = mfbcb - mfbab; m0 = m2 + mfbbb; mfbab = m0; mfbbb = m1 - m0 * vvy; - mfbcb = m2 - 2. * m1 * vvy + vy2 * m0; + mfbcb = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfbac + mfbcc; m1 = mfbcc - mfbac; @@ -365,7 +365,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfbac = m0; m0 += c2o9 * oMdrho; mfbbc = m1 - m0 * vvy; - mfbcc = m2 - 2. * m1 * vvy + vy2 * m0; + mfbcc = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfcaa + mfcca; @@ -374,14 +374,14 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfcaa = m0; m0 += c1o6 * oMdrho; mfcba = m1 - m0 * vvy; - mfcca = m2 - 2. * m1 * vvy + vy2 * m0; + mfcca = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfcab + mfccb; m1 = mfccb - mfcab; m0 = m2 + mfcbb; mfcab = m0; mfcbb = m1 - m0 * vvy; - mfccb = m2 - 2. * m1 * vvy + vy2 * m0; + mfccb = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfcac + mfccc; m1 = mfccc - mfcac; @@ -389,7 +389,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfcac = m0; m0 += c1o18 * oMdrho; mfcbc = m1 - m0 * vvy; - mfccc = m2 - 2. * m1 * vvy + vy2 * m0; + mfccc = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren @@ -399,16 +399,16 @@ void IncompressibleCumulantLBMKernel::calculate(int step) m1 = mfcaa - mfaaa; m0 = m2 + mfbaa; mfaaa = m0; - m0 += 1. * oMdrho; + m0 += c1o1 * oMdrho; mfbaa = m1 - m0 * vvx; - mfcaa = m2 - 2. * m1 * vvx + vx2 * m0; + mfcaa = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaba + mfcba; m1 = mfcba - mfaba; m0 = m2 + mfbba; mfaba = m0; mfbba = m1 - m0 * vvx; - mfcba = m2 - 2. * m1 * vvx + vx2 * m0; + mfcba = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaca + mfcca; m1 = mfcca - mfaca; @@ -416,7 +416,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfaca = m0; m0 += c1o3 * oMdrho; mfbca = m1 - m0 * vvx; - mfcca = m2 - 2. * m1 * vvx + vx2 * m0; + mfcca = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfaab + mfcab; @@ -424,21 +424,21 @@ void IncompressibleCumulantLBMKernel::calculate(int step) m0 = m2 + mfbab; mfaab = m0; mfbab = m1 - m0 * vvx; - mfcab = m2 - 2. * m1 * vvx + vx2 * m0; + mfcab = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfabb + mfcbb; m1 = mfcbb - mfabb; m0 = m2 + mfbbb; mfabb = m0; mfbbb = m1 - m0 * vvx; - mfcbb = m2 - 2. * m1 * vvx + vx2 * m0; + mfcbb = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfacb + mfccb; m1 = mfccb - mfacb; m0 = m2 + mfbcb; mfacb = m0; mfbcb = m1 - m0 * vvx; - mfccb = m2 - 2. * m1 * vvx + vx2 * m0; + mfccb = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfaac + mfcac; @@ -447,14 +447,14 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfaac = m0; m0 += c1o3 * oMdrho; mfbac = m1 - m0 * vvx; - mfcac = m2 - 2. * m1 * vvx + vx2 * m0; + mfcac = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfabc + mfcbc; m1 = mfcbc - mfabc; m0 = m2 + mfbbc; mfabc = m0; mfbbc = m1 - m0 * vvx; - mfcbc = m2 - 2. * m1 * vvx + vx2 * m0; + mfcbc = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfacc + mfccc; m1 = mfccc - mfacc; @@ -462,46 +462,46 @@ void IncompressibleCumulantLBMKernel::calculate(int step) mfacc = m0; m0 += c1o9 * oMdrho; mfbcc = m1 - m0 * vvx; - mfccc = m2 - 2. * m1 * vvx + vx2 * m0; + mfccc = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// // Cumulants //////////////////////////////////////////////////////////////////////////////////// - real OxxPyyPzz = 1.; //omega2 or bulk viscosity - real OxyyPxzz = 1.;//-s9;//2+s9;// - //real OxyyMxzz = 1.;//2+s9;// - real O4 = 1.; - real O5 = 1.; - real O6 = 1.; + real OxxPyyPzz = c1o1; //omega2 or bulk viscosity + real OxyyPxzz = c1o1;//-s9;//2+s9;// + //real OxyyMxzz = c1o1;//2+s9;// + real O4 = c1o1; + real O5 = c1o1; + real O6 = c1o1; //Cum 4. //LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3 * oMdrho) * mfabb + 2. * mfbba * mfbab); // till 18.05.2015 //LBMReal CUMbcb = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + 2. * mfbba * mfabb); // till 18.05.2015 //LBMReal CUMbbc = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + 2. * mfbab * mfabb); // till 18.05.2015 - real CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - real CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - real CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + real CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + c2o1 * mfbba * mfbab); + real CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + c2o1 * mfbba * mfabb); + real CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + c2o1 * mfbab * mfabb); - real CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-1.)*oMdrho); - real CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-1.)*oMdrho); - real CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-1.)*oMdrho); + real CUMcca = mfcca - ((mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-c1o1)*oMdrho); + real CUMcac = mfcac - ((mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-c1o1)*oMdrho); + real CUMacc = mfacc - ((mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-c1o1)*oMdrho); //Cum 5. - real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + 4. * mfbba * mfbbb + 2. * (mfbab * mfbca + mfabb * mfcba)) - c1o3 * (mfacb + mfcab) * oMdrho; + real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; + real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; + real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) - c1o3 * (mfacb + mfcab) * oMdrho; //Cum 6. - real CUMccc = mfccc +((-4. * mfbbb * mfbbb + real CUMccc = mfccc +((-c4o1 * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) - +(4. * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - + 2. * (mfcaa * mfaca * mfaac) - + 16. * mfbba * mfbab * mfabb) + - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) + - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) + +(c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + + c2o1 * (mfcaa * mfaca * mfaac) + + c16o1 * mfbba * mfbab * mfabb) - c1o3* (mfacc + mfcac + mfcca) * oMdrho -c1o9*oMdrho*oMdrho - - c1o9* (mfcaa + mfaca + mfaac) * oMdrho*(1.-2.* oMdrho)- c1o27* oMdrho * oMdrho*(-2.* oMdrho) - +(2. * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + - c1o9* (mfcaa + mfaca + mfaac) * oMdrho*(c1o1-c2o1* oMdrho)- c1o27* oMdrho * oMdrho*(-c2o1* oMdrho) + +(c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3*oMdrho) +c1o27*oMdrho; //2. @@ -515,9 +515,9 @@ void IncompressibleCumulantLBMKernel::calculate(int step) real dzuz = dxux + collFactor * c3o2 * mxxMzz; //relax - mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- 3. * (1. - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); - mxxMyy += collFactor * (-mxxMyy) - 3. * (1. - c1o2 * collFactor) * (vx2 * dxux - vy2 * dyuy); - mxxMzz += collFactor * (-mxxMzz) - 3. * (1. - c1o2 * collFactor) * (vx2 * dxux - vz2 * dzuz); + mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- c3o1 * (c1o1 - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); + mxxMyy += collFactor * (-mxxMyy) - c3o1 * (c1o1 - c1o2 * collFactor) * (vx2 * dxux - vy2 * dyuy); + mxxMzz += collFactor * (-mxxMzz) - c3o1 * (c1o1 - c1o2 * collFactor) * (vx2 * dxux - vz2 * dzuz); mfabb += collFactor * (-mfabb); mfbab += collFactor * (-mfbab); @@ -525,8 +525,8 @@ void IncompressibleCumulantLBMKernel::calculate(int step) // linear combinations back mfcaa = c1o3 * (mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-2. * mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * (mxxMyy - 2. * mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * (mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); //3. // linear combinations @@ -540,19 +540,19 @@ void IncompressibleCumulantLBMKernel::calculate(int step) real mxyyMxzz = mfbca - mfbac; //relax - wadjust = OxyyMxzz+(1.-OxyyMxzz)*fabs(mfbbb)/(fabs(mfbbb)+qudricLimit); + wadjust = OxyyMxzz+(c1o1-OxyyMxzz)*fabs(mfbbb)/(fabs(mfbbb)+qudricLimit); mfbbb += wadjust * (-mfbbb); - wadjust = OxyyPxzz+(1.-OxyyPxzz)*fabs(mxxyPyzz)/(fabs(mxxyPyzz)+qudricLimit); + wadjust = OxyyPxzz+(c1o1-OxyyPxzz)*fabs(mxxyPyzz)/(fabs(mxxyPyzz)+qudricLimit); mxxyPyzz += wadjust * (-mxxyPyzz); - wadjust = OxyyMxzz+(1.-OxyyMxzz)*fabs(mxxyMyzz)/(fabs(mxxyMyzz)+qudricLimit); + wadjust = OxyyMxzz+(c1o1-OxyyMxzz)*fabs(mxxyMyzz)/(fabs(mxxyMyzz)+qudricLimit); mxxyMyzz += wadjust * (-mxxyMyzz); - wadjust = OxyyPxzz+(1.-OxyyPxzz)*fabs(mxxzPyyz)/(fabs(mxxzPyyz)+qudricLimit); + wadjust = OxyyPxzz+(c1o1-OxyyPxzz)*fabs(mxxzPyyz)/(fabs(mxxzPyyz)+qudricLimit); mxxzPyyz += wadjust * (-mxxzPyyz); - wadjust = OxyyMxzz+(1.-OxyyMxzz)*fabs(mxxzMyyz)/(fabs(mxxzMyyz)+qudricLimit); + wadjust = OxyyMxzz+(c1o1-OxyyMxzz)*fabs(mxxzMyyz)/(fabs(mxxzMyyz)+qudricLimit); mxxzMyyz += wadjust * (-mxxzMyyz); - wadjust = OxyyPxzz+(1.-OxyyPxzz)*fabs(mxyyPxzz)/(fabs(mxyyPxzz)+qudricLimit); + wadjust = OxyyPxzz+(c1o1-OxyyPxzz)*fabs(mxyyPxzz)/(fabs(mxyyPxzz)+qudricLimit); mxyyPxzz += wadjust * (-mxyyPxzz); - wadjust = OxyyMxzz+(1.-OxyyMxzz)*fabs(mxyyMxzz)/(fabs(mxyyMxzz)+qudricLimit); + wadjust = OxyyMxzz+(c1o1-OxyyMxzz)*fabs(mxyyMxzz)/(fabs(mxyyMxzz)+qudricLimit); mxyyMxzz += wadjust * (-mxyyMxzz); // linear combinations back @@ -586,30 +586,30 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //mfbcb = CUMbcb + ((mfaca + c1o3 * oMdrho) * mfbab + 2. * mfbba * mfabb); // till 18.05.2015 //mfbbc = CUMbbc + ((mfaac + c1o3 * oMdrho) * mfbba + 2. * mfbab * mfabb); // till 18.05.2015 - mfcbb = CUMcbb + ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - mfbcb = CUMbcb + ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - mfbbc = CUMbbc + ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + mfcbb = CUMcbb + ((mfcaa + c1o3) * mfabb + c2o1 * mfbba * mfbab); + mfbcb = CUMbcb + ((mfaca + c1o3) * mfbab + c2o1 * mfbba * mfabb); + mfbbc = CUMbbc + ((mfaac + c1o3) * mfbba + c2o1 * mfbab * mfabb); - mfcca = CUMcca + (mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; - mfcac = CUMcac + (mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-1)*oMdrho; - mfacc = CUMacc + (mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; + mfcca = CUMcca + (mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; + mfcac = CUMcac + (mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-1)*oMdrho; + mfacc = CUMacc + (mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; //5. - mfbcc = CUMbcc + (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac) * oMdrho; - mfcbc = CUMcbc + (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc) * oMdrho; - mfccb = CUMccb + (mfcaa * mfacb + mfaca * mfcab + 4. * mfbba * mfbbb + 2. * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab) * oMdrho; + mfbcc = CUMbcc + (mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac) * oMdrho; + mfcbc = CUMcbc + (mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc) * oMdrho; + mfccb = CUMccb + (mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab) * oMdrho; //6. - mfccc = CUMccc -((-4. * mfbbb * mfbbb + mfccc = CUMccc -((-c4o1 * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - - 4. * (mfabb * mfcbb + mfbac * mfbca + mfbba * mfbbc) - - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) - +(4. * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - + 2. * (mfcaa * mfaca * mfaac) - + 16. * mfbba * mfbab * mfabb) + - c4o1 * (mfabb * mfcbb + mfbac * mfbca + mfbba * mfbbc) + - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) + +(c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + + c2o1 * (mfcaa * mfaca * mfaac) + + c16o1 * mfbba * mfbab * mfabb) - c1o3* (mfacc + mfcac + mfcca) * oMdrho -c1o9*oMdrho*oMdrho - - c1o9* (mfcaa + mfaca + mfaac) * oMdrho*(1.-2.* oMdrho)- c1o27* oMdrho * oMdrho*(-2.* oMdrho) - +(2. * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + - c1o9* (mfcaa + mfaca + mfaac) * oMdrho*(c1o1-c2o1* oMdrho)- c1o27* oMdrho * oMdrho*(-c2o1* oMdrho) + +(c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3*oMdrho) -c1o27*oMdrho; //////////////////////////////////////////////////////////////////////////////////// @@ -625,22 +625,22 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren //////////////////////////////////////////////////////////////////////////////////// // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + 1. * oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfaac - 2. * mfaab * vvz + mfaaa * (1. - vz2) - 1. * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + 1. * oMdrho) * (vz2 + vvz) * c1o2; + 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 - 2. * mfabb * vvz + mfaba * (1. - vz2); + 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 - 2. * mfacb * vvz + mfaca * (1. - vz2) - c1o3 * oMdrho * vz2; + 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; @@ -648,21 +648,21 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * (vz2 - vvz) * c1o2; - m1 = -mfbac - 2. * mfbab * vvz + mfbaa * (1. - vz2); + 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 - 2. * mfbbb * vvz + mfbba * (1. - vz2); + 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 - 2. * mfbcb * vvz + mfbca * (1. - vz2); + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * (vz2 + vvz) * c1o2; mfbca = m0; mfbcb = m1; @@ -670,21 +670,21 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfcac - 2. * mfcab * vvz + mfcaa * (1. - vz2) - c1o3 * oMdrho * vz2; + 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 - 2. * mfcbb * vvz + mfcba * (1. - vz2); + 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 - 2. * mfccb * vvz + mfcca * (1. - vz2) - c1o9 * oMdrho * vz2; + 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; @@ -695,21 +695,21 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // Y - Dir m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfaca - 2. * mfaba * vvy + mfaaa * (1. - vy2) - c1o6 * oMdrho * vy2; + 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 - 2. * mfabb * vvy + mfaab * (1. - vy2) - c2o3 * oMdrho * vy2; + 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 - 2. * mfabc * vvy + mfaac * (1. - vy2) - c1o6 * oMdrho * vy2; + 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; @@ -717,21 +717,21 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * (vy2 - vvy) * c1o2; - m1 = -mfbca - 2. * mfbba * vvy + mfbaa * (1. - vy2); + 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 - 2. * mfbbb * vvy + mfbab * (1. - vy2); + 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 - 2. * mfbbc * vvy + mfbac * (1. - vy2); + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * (vy2 + vvy) * c1o2; mfbac = m0; mfbbc = m1; @@ -739,21 +739,21 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfcca - 2. * mfcba * vvy + mfcaa * (1. - vy2) - c1o18 * oMdrho * vy2; + 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 - 2. * mfcbb * vvy + mfcab * (1. - vy2) - c2o9 * oMdrho * vy2; + 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 - 2. * mfcbc * vvy + mfcac * (1. - vy2) - c1o18 * oMdrho * vy2; + 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; @@ -764,21 +764,21 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // X - Dir m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcaa - 2. * mfbaa * vvx + mfaaa * (1. - vx2) - c1o36 * oMdrho * vx2; + 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 - 2. * mfbba * vvx + mfaba * (1. - vx2) - c1o9 * oMdrho * vx2; + 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 - 2. * mfbca * vvx + mfaca * (1. - vx2) - c1o36 * oMdrho * vx2; + 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; @@ -786,21 +786,21 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcab - 2. * mfbab * vvx + mfaab * (1. - vx2) - c1o9 * oMdrho * vx2; + 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 - 2. * mfbbb * vvx + mfabb * (1. - vx2) - c4o9 * oMdrho * vx2; + 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 - 2. * mfbcb * vvx + mfacb * (1. - vx2) - c1o9 * oMdrho * vx2; + 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; @@ -808,21 +808,21 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcac - 2. * mfbac * vvx + mfaac * (1. - vx2) - c1o36 * oMdrho * vx2; + 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 - 2. * mfbbc * vvx + mfabc * (1. - vx2) - c1o9 * oMdrho * vx2; + 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 - 2. * mfbcc * vvx + mfacc * (1. - vx2) - c1o36 * oMdrho * vx2; + 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; diff --git a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp index ed77717f6..90d6b0cae 100644 --- a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp @@ -74,38 +74,38 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::initRelaxFactor(int vdir, r case DIR_P00: muX1 = (real)(x1 + ix1 * maxX1); if (muX1 >= (sizeX - sizeSP) / deltaT) - spongeFactor = (sizeX - (muX1 * deltaT + 1)) / sizeSP / 2.0 + 0.5; - else spongeFactor = 1.0; + spongeFactor = (sizeX - (muX1 * deltaT + c1o1)) / sizeSP / c2o1 + c1o2; + else spongeFactor = c1o1; break; case DIR_M00: muX1 = (real)(x1 + ix1 * maxX1); if (muX1 <= sizeSP / deltaT) - spongeFactor = (sizeSP - (muX1 * deltaT + 1)) / sizeSP / 2.0 + 0.5; - else spongeFactor = 1.0; + spongeFactor = (sizeSP - (muX1 * deltaT + c1o1)) / sizeSP / c2o1 + c1o2; + else spongeFactor = c1o1; break; case DIR_0P0: muX2 = (real)(x2 + ix2 * maxX2); if (muX2 >= (sizeX - sizeSP) / deltaT) - spongeFactor = (sizeX - (muX2 * deltaT + 1)) / sizeSP / 2.0 + 0.5; - else spongeFactor = 1.0; + spongeFactor = (sizeX - (muX2 * deltaT + c1o1)) / sizeSP / c2o1 + c1o2; + else spongeFactor = c1o1; break; case DIR_0M0: muX2 = (real)(x2 + ix2 * maxX2); if (muX2 <= sizeSP / deltaT) - spongeFactor = (sizeSP - (muX2 * deltaT + 1)) / sizeSP / 2.0 + 0.5; - else spongeFactor = 1.0; + spongeFactor = (sizeSP - (muX2 * deltaT + c1o1)) / sizeSP / c2o1 + c1o2; + else spongeFactor = c1o1; break; case DIR_00P: muX3 = (real)(x3 + ix3 * maxX3); if (muX3 >= (sizeX - sizeSP) / deltaT) - spongeFactor = (sizeX - (muX3 * deltaT + 1)) / sizeSP / 2.0 + 0.5; - else spongeFactor = 1.0; + spongeFactor = (sizeX - (muX3 * deltaT + c1o1)) / sizeSP / c2o1 + c1o2; + else spongeFactor = c1o1; break; case DIR_00M: muX3 = (real)(x3 + ix3 * maxX3); if (muX3 <= sizeSP / deltaT) - spongeFactor = (sizeSP - (muX3 * deltaT + 1)) / sizeSP / 2.0 + 0.5; - else spongeFactor = 1.0; + spongeFactor = (sizeSP - (muX3 * deltaT + c1o1)) / sizeSP / c2o1 + c1o2; + else spongeFactor = c1o1; break; default: throw UbException(UB_EXARGS, "unknown dir"); } @@ -134,10 +134,10 @@ SPtr<LBMKernel> IncompressibleCumulantWithSpongeLayerLBMKernel::clone() switch (parameter) { case NORMAL: - dynamicPointerCast<IncompressibleCumulantWithSpongeLayerLBMKernel>(kernel)->OxyyMxzz = 1.0; + dynamicPointerCast<IncompressibleCumulantWithSpongeLayerLBMKernel>(kernel)->OxyyMxzz = c1o1; break; case MAGIC: - dynamicPointerCast<IncompressibleCumulantWithSpongeLayerLBMKernel>(kernel)->OxyyMxzz = 2.0 +(-collFactor); + dynamicPointerCast<IncompressibleCumulantWithSpongeLayerLBMKernel>(kernel)->OxyyMxzz = c2o1 +(-collFactor); break; } @@ -169,7 +169,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) // muForcingX2.DefineVar("dx",&muDeltaT); // muForcingX3.DefineVar("dx",&muDeltaT); - // muNu = (1.0/3.0)*(1.0/collFactor - 1.0/2.0); + // muNu = (1.0/3.0)*(1.0/collFactor - 1.0/c2o10); // muForcingX1.DefineVar("nu",&muNu); // muForcingX2.DefineVar("nu",&muNu); @@ -352,7 +352,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) m2=mfbba+mfbbc; m0+=m1+m2; m0+=mfbbb; //hat gefehlt - oMdrho = 1. - (oMdrho + m0); + oMdrho = c1o1 - (oMdrho + m0); real vx2; real vy2; @@ -362,7 +362,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) vz2=vvz*vvz; //////////////////////////////////////////////////////////////////////////////////// real wadjust; - real qudricLimit = 0.01; + real qudricLimit = c1o100; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -375,7 +375,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfaaa = m0; m0 += c1o36 * oMdrho; mfaab = m1 - m0 * vvz; - mfaac = m2 - 2. * m1 * vvz + vz2 * m0; + mfaac = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaba + mfabc; m1 = mfabc - mfaba; @@ -383,7 +383,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfaba = m0; m0 += c1o9 * oMdrho; mfabb = m1 - m0 * vvz; - mfabc = m2 - 2. * m1 * vvz + vz2 * m0; + mfabc = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaca + mfacc; m1 = mfacc - mfaca; @@ -391,7 +391,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfaca = m0; m0 += c1o36 * oMdrho; mfacb = m1 - m0 * vvz; - mfacc = m2 - 2. * m1 * vvz + vz2 * m0; + mfacc = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfbaa + mfbac; @@ -400,7 +400,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfbaa = m0; m0 += c1o9 * oMdrho; mfbab = m1 - m0 * vvz; - mfbac = m2 - 2. * m1 * vvz + vz2 * m0; + mfbac = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfbba + mfbbc; m1 = mfbbc - mfbba; @@ -408,7 +408,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfbba = m0; m0 += c4o9 * oMdrho; mfbbb = m1 - m0 * vvz; - mfbbc = m2 - 2. * m1 * vvz + vz2 * m0; + mfbbc = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfbca + mfbcc; m1 = mfbcc - mfbca; @@ -416,7 +416,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfbca = m0; m0 += c1o9 * oMdrho; mfbcb = m1 - m0 * vvz; - mfbcc = m2 - 2. * m1 * vvz + vz2 * m0; + mfbcc = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfcaa + mfcac; @@ -425,7 +425,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfcaa = m0; m0 += c1o36 * oMdrho; mfcab = m1 - m0 * vvz; - mfcac = m2 - 2. * m1 * vvz + vz2 * m0; + mfcac = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfcba + mfcbc; m1 = mfcbc - mfcba; @@ -433,7 +433,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfcba = m0; m0 += c1o9 * oMdrho; mfcbb = m1 - m0 * vvz; - mfcbc = m2 - 2. * m1 * vvz + vz2 * m0; + mfcbc = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfcca + mfccc; m1 = mfccc - mfcca; @@ -441,7 +441,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfcca = m0; m0 += c1o36 * oMdrho; mfccb = m1 - m0 * vvz; - mfccc = m2 - 2. * m1 * vvz + vz2 * m0; + mfccc = m2 - c2o1 * m1 * vvz + vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren @@ -453,14 +453,14 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfaaa = m0; m0 += c1o6 * oMdrho; mfaba = m1 - m0 * vvy; - mfaca = m2 - 2. * m1 * vvy + vy2 * m0; + mfaca = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaab + mfacb; m1 = mfacb - mfaab; m0 = m2 + mfabb; mfaab = m0; mfabb = m1 - m0 * vvy; - mfacb = m2 - 2. * m1 * vvy + vy2 * m0; + mfacb = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaac + mfacc; m1 = mfacc - mfaac; @@ -468,7 +468,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfaac = m0; m0 += c1o18 * oMdrho; mfabc = m1 - m0 * vvy; - mfacc = m2 - 2. * m1 * vvy + vy2 * m0; + mfacc = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfbaa + mfbca; @@ -477,14 +477,14 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfbaa = m0; m0 += c2o3 * oMdrho; mfbba = m1 - m0 * vvy; - mfbca = m2 - 2. * m1 * vvy + vy2 * m0; + mfbca = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfbab + mfbcb; m1 = mfbcb - mfbab; m0 = m2 + mfbbb; mfbab = m0; mfbbb = m1 - m0 * vvy; - mfbcb = m2 - 2. * m1 * vvy + vy2 * m0; + mfbcb = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfbac + mfbcc; m1 = mfbcc - mfbac; @@ -492,7 +492,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfbac = m0; m0 += c2o9 * oMdrho; mfbbc = m1 - m0 * vvy; - mfbcc = m2 - 2. * m1 * vvy + vy2 * m0; + mfbcc = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfcaa + mfcca; @@ -501,14 +501,14 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfcaa = m0; m0 += c1o6 * oMdrho; mfcba = m1 - m0 * vvy; - mfcca = m2 - 2. * m1 * vvy + vy2 * m0; + mfcca = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfcab + mfccb; m1 = mfccb - mfcab; m0 = m2 + mfcbb; mfcab = m0; mfcbb = m1 - m0 * vvy; - mfccb = m2 - 2. * m1 * vvy + vy2 * m0; + mfccb = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfcac + mfccc; m1 = mfccc - mfcac; @@ -516,7 +516,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfcac = m0; m0 += c1o18 * oMdrho; mfcbc = m1 - m0 * vvy; - mfccc = m2 - 2. * m1 * vvy + vy2 * m0; + mfccc = m2 - c2o1 * m1 * vvy + vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren @@ -526,16 +526,16 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) m1 = mfcaa - mfaaa; m0 = m2 + mfbaa; mfaaa = m0; - m0 += 1. * oMdrho; + m0 += c1o1 * oMdrho; mfbaa = m1 - m0 * vvx; - mfcaa = m2 - 2. * m1 * vvx + vx2 * m0; + mfcaa = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaba + mfcba; m1 = mfcba - mfaba; m0 = m2 + mfbba; mfaba = m0; mfbba = m1 - m0 * vvx; - mfcba = m2 - 2. * m1 * vvx + vx2 * m0; + mfcba = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaca + mfcca; m1 = mfcca - mfaca; @@ -543,7 +543,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfaca = m0; m0 += c1o3 * oMdrho; mfbca = m1 - m0 * vvx; - mfcca = m2 - 2. * m1 * vvx + vx2 * m0; + mfcca = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfaab + mfcab; @@ -551,21 +551,21 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) m0 = m2 + mfbab; mfaab = m0; mfbab = m1 - m0 * vvx; - mfcab = m2 - 2. * m1 * vvx + vx2 * m0; + mfcab = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfabb + mfcbb; m1 = mfcbb - mfabb; m0 = m2 + mfbbb; mfabb = m0; mfbbb = m1 - m0 * vvx; - mfcbb = m2 - 2. * m1 * vvx + vx2 * m0; + mfcbb = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfacb + mfccb; m1 = mfccb - mfacb; m0 = m2 + mfbcb; mfacb = m0; mfbcb = m1 - m0 * vvx; - mfccb = m2 - 2. * m1 * vvx + vx2 * m0; + mfccb = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfaac + mfcac; @@ -574,14 +574,14 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfaac = m0; m0 += c1o3 * oMdrho; mfbac = m1 - m0 * vvx; - mfcac = m2 - 2. * m1 * vvx + vx2 * m0; + mfcac = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfabc + mfcbc; m1 = mfcbc - mfabc; m0 = m2 + mfbbc; mfabc = m0; mfbbc = m1 - m0 * vvx; - mfcbc = m2 - 2. * m1 * vvx + vx2 * m0; + mfcbc = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfacc + mfccc; m1 = mfccc - mfacc; @@ -589,42 +589,42 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) mfacc = m0; m0 += c1o9 * oMdrho; mfbcc = m1 - m0 * vvx; - mfccc = m2 - 2. * m1 * vvx + vx2 * m0; + mfccc = m2 - c2o1 * m1 * vvx + vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// // Cumulants //////////////////////////////////////////////////////////////////////////////////// - real OxxPyyPzz = 1.; - real OxyyPxzz = 1.;//-s9;//2+s9;// - //real OxyyMxzz = 1.;//2+s9;// - real O4 = 1.; - real O5 = 1.; - real O6 = 1.; + real OxxPyyPzz = c1o1; + real OxyyPxzz = c1o1;//-s9;//2+s9;// + //real OxyyMxzz = c1o1;//2+s9;// + real O4 = c1o1; + real O5 = c1o1; + real O6 = c1o1; - //Cum 4. - real CUMcbb = mfcbb - ((mfcaa + c1o3 * oMdrho) * mfabb + 2. * mfbba * mfbab); - real CUMbcb = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + 2. * mfbba * mfabb); - real CUMbbc = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + 2. * mfbab * mfabb); + //Cum c4o1 + real CUMcbb = mfcbb - ((mfcaa + c1o3 * oMdrho) * mfabb + c2o1 * mfbba * mfbab); + real CUMbcb = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + c2o1 * mfbba * mfabb); + real CUMbbc = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + c2o1 * mfbab * mfabb); - real CUMcca = mfcca - (mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; - real CUMcac = mfcac - (mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-1)*oMdrho; - real CUMacc = mfacc - (mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; + real CUMcca = mfcca - (mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; + real CUMcac = mfcac - (mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-1)*oMdrho; + real CUMacc = mfacc - (mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; //Cum 5. - real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + 4. * mfbba * mfbbb + 2. * (mfbab * mfbca + mfabb * mfcba)) - c1o3 * (mfacb + mfcab) * oMdrho; + real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; + real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; + real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) - c1o3 * (mfacb + mfcab) * oMdrho; //Cum 6. - real CUMccc = mfccc +((-4. * mfbbb * mfbbb + real CUMccc = mfccc +((-c4o1 * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) - +( 4. * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - + 2. * (mfcaa * mfaca * mfaac) - + 16. * mfbba * mfbab * mfabb) + - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) + - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) + +( c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + + c2o1 * (mfcaa * mfaca * mfaac) + + c16o1 * mfbba * mfbab * mfabb) - c1o3* (mfacc + mfcac + mfcca) * oMdrho -c1o9*oMdrho*oMdrho - - c1o9* (mfcaa + mfaca + mfaac) * oMdrho*(1.-2.* oMdrho)- c1o27* oMdrho * oMdrho*(-2.* oMdrho) - +( 2. * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + - c1o9* (mfcaa + mfaca + mfaac) * oMdrho*(c1o1-c2o1* oMdrho)- c1o27* oMdrho * oMdrho*(-c2o1* oMdrho) + +( c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3*oMdrho) +c1o27*oMdrho; //2. @@ -638,9 +638,9 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) real dzuz = dxux + collFactor * c3o2 * mxxMzz; //relax - mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- 3. * (1. - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); - mxxMyy += collFactor * (-mxxMyy) - 3. * (1. - c1o2 * collFactor) * (vx2 * dxux - vy2 * dyuy); - mxxMzz += collFactor * (-mxxMzz) - 3. * (1. - c1o2 * collFactor) * (vx2 * dxux - vz2 * dzuz); + mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- c3o1 * (c1o1 - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); + mxxMyy += collFactor * (-mxxMyy) - c3o1 * (c1o1 - c1o2 * collFactor) * (vx2 * dxux - vy2 * dyuy); + mxxMzz += collFactor * (-mxxMzz) - c3o1 * (c1o1 - c1o2 * collFactor) * (vx2 * dxux - vz2 * dzuz); mfabb += collFactor * (-mfabb); mfbab += collFactor * (-mfbab); @@ -648,8 +648,8 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) // linear combinations back mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-2. * mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * ( mxxMyy - 2. * mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); //3. // linear combinations @@ -663,19 +663,19 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) real mxyyMxzz = mfbca - mfbac; //relax - wadjust = OxyyMxzz+(1.-OxyyMxzz)*fabs(mfbbb)/(fabs(mfbbb)+qudricLimit); + wadjust = OxyyMxzz+(c1o1-OxyyMxzz)*fabs(mfbbb)/(fabs(mfbbb)+qudricLimit); mfbbb += wadjust * (-mfbbb); - wadjust = OxyyPxzz+(1.-OxyyPxzz)*fabs(mxxyPyzz)/(fabs(mxxyPyzz)+qudricLimit); + wadjust = OxyyPxzz+(c1o1-OxyyPxzz)*fabs(mxxyPyzz)/(fabs(mxxyPyzz)+qudricLimit); mxxyPyzz += wadjust * (-mxxyPyzz); - wadjust = OxyyMxzz+(1.-OxyyMxzz)*fabs(mxxyMyzz)/(fabs(mxxyMyzz)+qudricLimit); + wadjust = OxyyMxzz+(c1o1-OxyyMxzz)*fabs(mxxyMyzz)/(fabs(mxxyMyzz)+qudricLimit); mxxyMyzz += wadjust * (-mxxyMyzz); - wadjust = OxyyPxzz+(1.-OxyyPxzz)*fabs(mxxzPyyz)/(fabs(mxxzPyyz)+qudricLimit); + wadjust = OxyyPxzz+(c1o1-OxyyPxzz)*fabs(mxxzPyyz)/(fabs(mxxzPyyz)+qudricLimit); mxxzPyyz += wadjust * (-mxxzPyyz); - wadjust = OxyyMxzz+(1.-OxyyMxzz)*fabs(mxxzMyyz)/(fabs(mxxzMyyz)+qudricLimit); + wadjust = OxyyMxzz+(c1o1-OxyyMxzz)*fabs(mxxzMyyz)/(fabs(mxxzMyyz)+qudricLimit); mxxzMyyz += wadjust * (-mxxzMyyz); - wadjust = OxyyPxzz+(1.-OxyyPxzz)*fabs(mxyyPxzz)/(fabs(mxyyPxzz)+qudricLimit); + wadjust = OxyyPxzz+(c1o1-OxyyPxzz)*fabs(mxyyPxzz)/(fabs(mxyyPxzz)+qudricLimit); mxyyPxzz += wadjust * (-mxyyPxzz); - wadjust = OxyyMxzz+(1.-OxyyMxzz)*fabs(mxyyMxzz)/(fabs(mxyyMxzz)+qudricLimit); + wadjust = OxyyMxzz+(c1o1-OxyyMxzz)*fabs(mxyyMxzz)/(fabs(mxyyMxzz)+qudricLimit); mxyyMxzz += wadjust * (-mxyyMxzz); // linear combinations back @@ -705,30 +705,30 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //back cumulants to central moments //4. - mfcbb = CUMcbb + ((mfcaa + c1o3 * oMdrho) * mfabb + 2. * mfbba * mfbab); - mfbcb = CUMbcb + ((mfaca + c1o3 * oMdrho) * mfbab + 2. * mfbba * mfabb); - mfbbc = CUMbbc + ((mfaac + c1o3 * oMdrho) * mfbba + 2. * mfbab * mfabb); + mfcbb = CUMcbb + ((mfcaa + c1o3 * oMdrho) * mfabb + c2o1 * mfbba * mfbab); + mfbcb = CUMbcb + ((mfaca + c1o3 * oMdrho) * mfbab + c2o1 * mfbba * mfabb); + mfbbc = CUMbbc + ((mfaac + c1o3 * oMdrho) * mfbba + c2o1 * mfbab * mfabb); - mfcca = CUMcca + (mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; - mfcac = CUMcac + (mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-1)*oMdrho; - mfacc = CUMacc + (mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; + mfcca = CUMcca + (mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; + mfcac = CUMcac + (mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-1)*oMdrho; + mfacc = CUMacc + (mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; //5. - mfbcc = CUMbcc + (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac) * oMdrho; - mfcbc = CUMcbc + (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc) * oMdrho; - mfccb = CUMccb + (mfcaa * mfacb + mfaca * mfcab + 4. * mfbba * mfbbb + 2. * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab) * oMdrho; + mfbcc = CUMbcc + (mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac) * oMdrho; + mfcbc = CUMcbc + (mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc) * oMdrho; + mfccb = CUMccb + (mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab) * oMdrho; //6. - mfccc = CUMccc -((-4. * mfbbb * mfbbb + mfccc = CUMccc -((-c4o1 * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - - 4. * (mfabb * mfcbb + mfbac * mfbca + mfbba * mfbbc) - - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) - +( 4. * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - + 2. * (mfcaa * mfaca * mfaac) - + 16. * mfbba * mfbab * mfabb) + - c4o1 * (mfabb * mfcbb + mfbac * mfbca + mfbba * mfbbc) + - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) + +( c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + + c2o1 * (mfcaa * mfaca * mfaac) + + c16o1 * mfbba * mfbab * mfabb) - c1o3* (mfacc + mfcac + mfcca) * oMdrho -c1o9*oMdrho*oMdrho - - c1o9* (mfcaa + mfaca + mfaac) * oMdrho*(1.-2.* oMdrho)- c1o27* oMdrho * oMdrho*(-2.* oMdrho) - +( 2. * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + - c1o9* (mfcaa + mfaca + mfaac) * oMdrho*(c1o1-c2o1* oMdrho)- c1o27* oMdrho * oMdrho*(-c2o1* oMdrho) + +( c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3*oMdrho) -c1o27*oMdrho; //////////////////////////////////////////////////////////////////////////////////// @@ -744,22 +744,22 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren //////////////////////////////////////////////////////////////////////////////////// // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + 1. * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - 2. * mfaab * vvz + mfaaa * (1. - vz2) - 1. * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + 1. * oMdrho) * ( vz2 + vvz) * c1o2; + 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 - 2. * mfabb * vvz + mfaba * (1. - vz2); + 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 - 2. * mfacb * vvz + mfaca * (1. - vz2) - c1o3 * oMdrho * vz2; + 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; @@ -767,21 +767,21 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - 2. * mfbab * vvz + mfbaa * (1. - vz2); + 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 - 2. * mfbbb * vvz + mfbba * (1. - vz2); + 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 - 2. * mfbcb * vvz + mfbca * (1. - vz2); + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; mfbca = m0; mfbcb = m1; @@ -789,21 +789,21 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - 2. * mfcab * vvz + mfcaa * (1. - vz2) - c1o3 * oMdrho * vz2; + 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 - 2. * mfcbb * vvz + mfcba * (1. - vz2); + 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 - 2. * mfccb * vvz + mfcca * (1. - vz2) - c1o9 * oMdrho * vz2; + 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; @@ -814,21 +814,21 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // Y - Dir m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - 2. * mfaba * vvy + mfaaa * (1. - vy2) - c1o6 * oMdrho * vy2; + 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 - 2. * mfabb * vvy + mfaab * (1. - vy2) - c2o3 * oMdrho * vy2; + 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 - 2. * mfabc * vvy + mfaac * (1. - vy2) - c1o6 * oMdrho * vy2; + 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; @@ -836,21 +836,21 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - 2. * mfbba * vvy + mfbaa * (1. - vy2); + 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 - 2. * mfbbb * vvy + mfbab * (1. - vy2); + 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 - 2. * mfbbc * vvy + mfbac * (1. - vy2); + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; mfbac = m0; mfbbc = m1; @@ -858,21 +858,21 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - 2. * mfcba * vvy + mfcaa * (1. - vy2) - c1o18 * oMdrho * vy2; + 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 - 2. * mfcbb * vvy + mfcab * (1. - vy2) - c2o9 * oMdrho * vy2; + 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 - 2. * mfcbc * vvy + mfcac * (1. - vy2) - c1o18 * oMdrho * vy2; + 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; @@ -883,21 +883,21 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // X - Dir m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - 2. * mfbaa * vvx + mfaaa * (1. - vx2) - c1o36 * oMdrho * vx2; + 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 - 2. * mfbba * vvx + mfaba * (1. - vx2) - c1o9 * oMdrho * vx2; + 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 - 2. * mfbca * vvx + mfaca * (1. - vx2) - c1o36 * oMdrho * vx2; + 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; @@ -905,21 +905,21 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - 2. * mfbab * vvx + mfaab * (1. - vx2) - c1o9 * oMdrho * vx2; + 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 - 2. * mfbbb * vvx + mfabb * (1. - vx2) - c4o9 * oMdrho * vx2; + 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 - 2. * mfbcb * vvx + mfacb * (1. - vx2) - c1o9 * oMdrho * vx2; + 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; @@ -927,21 +927,21 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - 2. * mfbac * vvx + mfaac * (1. - vx2) - c1o36 * oMdrho * vx2; + 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 - 2. * mfbbc * vvx + mfabc * (1. - vx2) - c1o9 * oMdrho * vx2; + 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 - 2. * mfbcc * vvx + mfacc * (1. - vx2) - c1o36 * oMdrho * vx2; + 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; diff --git a/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.cpp index c4759d786..93fb699ea 100644 --- a/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.cpp @@ -37,22 +37,24 @@ void IncompressibleOffsetInterpolationProcessor::setOffsets(real xoff, real yoff ////////////////////////////////////////////////////////////////////////// void IncompressibleOffsetInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff) { + using namespace vf::lbm::constant; + setOffsets(xoff, yoff, zoff); - calcInterpolatedCoefficiets(icellC, omegaC, 0.5); - calcInterpolatedNode(icellF.BSW, omegaF, -0.25, -0.25, -0.25, calcPressBSW(), -1, -1, -1); - calcInterpolatedNode(icellF.BNE, omegaF, 0.25, 0.25, -0.25, calcPressBNE(), 1, 1, -1); - calcInterpolatedNode(icellF.TNW, omegaF, -0.25, 0.25, 0.25, calcPressTNW(), -1, 1, 1); - calcInterpolatedNode(icellF.TSE, omegaF, 0.25, -0.25, 0.25, calcPressTSE(), 1, -1, 1); - calcInterpolatedNode(icellF.BNW, omegaF, -0.25, 0.25, -0.25, calcPressBNW(), -1, 1, -1); - calcInterpolatedNode(icellF.BSE, omegaF, 0.25, -0.25, -0.25, calcPressBSE(), 1, -1, -1); - calcInterpolatedNode(icellF.TSW, omegaF, -0.25, -0.25, 0.25, calcPressTSW(), -1, -1, 1); - calcInterpolatedNode(icellF.TNE, omegaF, 0.25, 0.25, 0.25, calcPressTNE(), 1, 1, 1); + calcInterpolatedCoefficiets(icellC, omegaC, c1o2); + calcInterpolatedNode(icellF.BSW, omegaF, -c1o4, -c1o4, -c1o4, calcPressBSW(), -c1o1, -c1o1, -c1o1); + calcInterpolatedNode(icellF.BNE, omegaF, c1o4, c1o4, -c1o4, calcPressBNE(), c1o1, c1o1, -c1o1); + calcInterpolatedNode(icellF.TNW, omegaF, -c1o4, c1o4, c1o4, calcPressTNW(), -c1o1, c1o1, c1o1); + calcInterpolatedNode(icellF.TSE, omegaF, c1o4, -c1o4, c1o4, calcPressTSE(), c1o1, -c1o1, c1o1); + calcInterpolatedNode(icellF.BNW, omegaF, -c1o4, c1o4, -c1o4, calcPressBNW(), -c1o1, c1o1, -c1o1); + calcInterpolatedNode(icellF.BSE, omegaF, c1o4, -c1o4, -c1o4, calcPressBSE(), c1o1, -c1o1, -c1o1); + calcInterpolatedNode(icellF.TSW, omegaF, -c1o4, -c1o4, c1o4, calcPressTSW(), -c1o1, -c1o1, c1o1); + calcInterpolatedNode(icellF.TNE, omegaF, c1o4, c1o4, c1o4, calcPressTNE(), c1o1, c1o1, c1o1); } ////////////////////////////////////////////////////////////////////////// void IncompressibleOffsetInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); - calcInterpolatedCoefficiets(icellF, omegaF, 2.0); + calcInterpolatedCoefficiets(icellF, omegaF, vf::lbm::constant::c2o1); calcInterpolatedNodeFC(icellC, omegaC); } ////////////////////////////////////////////////////////////////////////// @@ -61,11 +63,12 @@ void IncompressibleOffsetInterpolationProcessor::calcMoments(const real* const f { using namespace D3Q27System; using namespace vf::lbm::dir; + using namespace vf::lbm::constant; //UBLOG(logINFO,"D3Q27System::DIR_M0M = " << D3Q27System::DIR_M0M); //UBLOG(logINFO,"BW = " << BW);; - real rho = 0.0; + real rho = c0o1; D3Q27System::calcIncompMacroscopicValues(f,rho,vx1,vx2,vx3); ////////////////////////////////////////////////////////////////////////// @@ -83,12 +86,12 @@ void IncompressibleOffsetInterpolationProcessor::calcMoments(const real* const f //press = D3Q27System::calcPress(f,rho,vx1,vx2,vx3); press = rho; //interpolate rho! - kxy = -3.*omega*((((f[DIR_MMP]+f[DIR_PPM])-(f[DIR_MPP]+f[DIR_PMM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_MPM]+f[DIR_PMP])))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_MP0]+f[DIR_PM0]))-(vx1*vx2));// might not be optimal MG 25.2.13 - kyz = -3.*omega*((((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])-(f[DIR_MMP]+f[DIR_PPM])))+((f[DIR_0MM]+f[DIR_0PP])-(f[DIR_0MP]+f[DIR_0PM]))-(vx2*vx3)); - kxz = -3.*omega*((((f[DIR_MPM]+f[DIR_PMP])-(f[DIR_MMP]+f[DIR_PPM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMM]+f[DIR_MPP])))+((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_M0P]+f[DIR_P0M]))-(vx1*vx3)); - kxxMyy = -3./2.*omega*((((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_M0P]+f[DIR_P0M])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_0M0]+f[DIR_0P0]))-(vx1*vx1-vx2*vx2)); - kxxMzz = -3./2.*omega*((((f[DIR_MP0]+f[DIR_PM0])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_00M]+f[DIR_00P]))-(vx1*vx1-vx3*vx3)); - //kxxMzz = -3./2.*omega*(((((f[NW]+f[SE])-(f[BS]+f[TN]))+((f[SW]+f[NE])-(f[17]+f[BN])))+((f[W]+f[DIR_P00])-(f[B]+f[T])))-(vx1*vx1-vx3*vx3)); + kxy = -c3o1*omega*((((f[DIR_MMP]+f[DIR_PPM])-(f[DIR_MPP]+f[DIR_PMM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_MPM]+f[DIR_PMP])))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_MP0]+f[DIR_PM0]))-(vx1*vx2));// might not be optimal MG 25.2.13 + kyz = -c3o1*omega*((((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMP]+f[DIR_MPM]))+((f[DIR_PMM]+f[DIR_MPP])-(f[DIR_MMP]+f[DIR_PPM])))+((f[DIR_0MM]+f[DIR_0PP])-(f[DIR_0MP]+f[DIR_0PM]))-(vx2*vx3)); + kxz = -c3o1*omega*((((f[DIR_MPM]+f[DIR_PMP])-(f[DIR_MMP]+f[DIR_PPM]))+((f[DIR_MMM]+f[DIR_PPP])-(f[DIR_PMM]+f[DIR_MPP])))+((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_M0P]+f[DIR_P0M]))-(vx1*vx3)); + kxxMyy = -c3o1/c2o1*omega*((((f[DIR_M0M]+f[DIR_P0P])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_M0P]+f[DIR_P0M])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_0M0]+f[DIR_0P0]))-(vx1*vx1-vx2*vx2)); + kxxMzz = -c3o1/c2o1*omega*((((f[DIR_MP0]+f[DIR_PM0])-(f[DIR_0MM]+f[DIR_0PP]))+((f[DIR_MM0]+f[DIR_PP0])-(f[DIR_0MP]+f[DIR_0PM])))+((f[DIR_M00]+f[DIR_P00])-(f[DIR_00M]+f[DIR_00P]))-(vx1*vx1-vx3*vx3)); + //kxxMzz = -c3o1/c2o1*omega*(((((f[NW]+f[SE])-(f[BS]+f[TN]))+((f[SW]+f[NE])-(f[17]+f[BN])))+((f[W]+f[DIR_P00])-(f[B]+f[T])))-(vx1*vx1-vx3*vx3)); //UBLOG(logINFO, "t1 = "<<(((f[NW]+f[SE])-(f[BS]+f[TN]))+((f[SW]+f[NE])-(f[17]+f[BN])))+((f[W]+f[DIR_P00])-(f[B]+f[T]))); //UBLOG(logINFO, "kxxMzz = "<<kxxMzz); @@ -103,6 +106,8 @@ void IncompressibleOffsetInterpolationProcessor::calcMoments(const real* const f ////////////////////////////////////////////////////////////////////////// void IncompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, real omega, real eps_new) { + using namespace vf::lbm::constant; + real vx1_SWT,vx2_SWT,vx3_SWT; real vx1_NWT,vx2_NWT,vx3_NWT; real vx1_NET,vx2_NET,vx3_NET; @@ -197,109 +202,109 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(con kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - 2.*kxyFromfcNEQ_NEB - 2.*kxyFromfcNEQ_NET - 2.*kxyFromfcNEQ_NWB - 2.*kxyFromfcNEQ_NWT + - 2.*kxyFromfcNEQ_SEB + 2.*kxyFromfcNEQ_SET + 2.*kxyFromfcNEQ_SWB + 2.*kxyFromfcNEQ_SWT + - 2.*kxzFromfcNEQ_NEB - 2.*kxzFromfcNEQ_NET + 2.*kxzFromfcNEQ_NWB - 2.*kxzFromfcNEQ_NWT + - 2.*kxzFromfcNEQ_SEB - 2.*kxzFromfcNEQ_SET + 2.*kxzFromfcNEQ_SWB - 2.*kxzFromfcNEQ_SWT + - 8.*vx1_NEB + 8.*vx1_NET + 8.*vx1_NWB + 8.*vx1_NWT + 8.*vx1_SEB + - 8.*vx1_SET + 8.*vx1_SWB + 8.*vx1_SWT + 2.*vx2_NEB + 2.*vx2_NET - - 2.*vx2_NWB - 2.*vx2_NWT - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB + - 2.*vx2_SWT - 2.*vx3_NEB + 2.*vx3_NET + 2.*vx3_NWB - 2.*vx3_NWT - - 2.*vx3_SEB + 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/64.; - b0 = (2.*kxxMyyFromfcNEQ_NEB + 2.*kxxMyyFromfcNEQ_NET + 2.*kxxMyyFromfcNEQ_NWB + 2.*kxxMyyFromfcNEQ_NWT - - 2.*kxxMyyFromfcNEQ_SEB - 2.*kxxMyyFromfcNEQ_SET - 2.*kxxMyyFromfcNEQ_SWB - 2.*kxxMyyFromfcNEQ_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 - - 2.*kxyFromfcNEQ_NEB - 2.*kxyFromfcNEQ_NET + 2.*kxyFromfcNEQ_NWB + 2.*kxyFromfcNEQ_NWT - - 2.*kxyFromfcNEQ_SEB - 2.*kxyFromfcNEQ_SET + 2.*kxyFromfcNEQ_SWB + 2.*kxyFromfcNEQ_SWT + - 2.*kyzFromfcNEQ_NEB - 2.*kyzFromfcNEQ_NET + 2.*kyzFromfcNEQ_NWB - 2.*kyzFromfcNEQ_NWT + - 2.*kyzFromfcNEQ_SEB - 2.*kyzFromfcNEQ_SET + 2.*kyzFromfcNEQ_SWB - 2.*kyzFromfcNEQ_SWT + - 2.*vx1_NEB + 2.*vx1_NET - 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB - 2.*vx1_SET + 2.*vx1_SWB + 2.*vx1_SWT + - 8.*vx2_NEB + 8.*vx2_NET + 8.*vx2_NWB + 8.*vx2_NWT + - 8.*vx2_SEB + 8.*vx2_SET + 8.*vx2_SWB + 8.*vx2_SWT - - 2.*vx3_NEB + 2.*vx3_NET - 2.*vx3_NWB + 2.*vx3_NWT + - 2.*vx3_SEB - 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/64.; + 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 - - 2.*kxxMzzFromfcNEQ_NEB + 2.*kxxMzzFromfcNEQ_NET - 2.*kxxMzzFromfcNEQ_NWB + 2.*kxxMzzFromfcNEQ_NWT - - 2.*kxxMzzFromfcNEQ_SEB + 2.*kxxMzzFromfcNEQ_SET - 2.*kxxMzzFromfcNEQ_SWB + 2.*kxxMzzFromfcNEQ_SWT - - 2.*kxzFromfcNEQ_NEB - 2.*kxzFromfcNEQ_NET + 2.*kxzFromfcNEQ_NWB + 2.*kxzFromfcNEQ_NWT - - 2.*kxzFromfcNEQ_SEB - 2.*kxzFromfcNEQ_SET + 2.*kxzFromfcNEQ_SWB + 2.*kxzFromfcNEQ_SWT - - 2.*kyzFromfcNEQ_NEB - 2.*kyzFromfcNEQ_NET - 2.*kyzFromfcNEQ_NWB - 2.*kyzFromfcNEQ_NWT + - 2.*kyzFromfcNEQ_SEB + 2.*kyzFromfcNEQ_SET + 2.*kyzFromfcNEQ_SWB + 2.*kyzFromfcNEQ_SWT - - 2.*vx1_NEB + 2.*vx1_NET + 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB + 2.*vx1_SET + 2.*vx1_SWB - 2.*vx1_SWT - - 2.*vx2_NEB + 2.*vx2_NET - 2.*vx2_NWB + 2.*vx2_NWT + - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB - 2.*vx2_SWT + - 8.*vx3_NEB + 8.*vx3_NET + 8.*vx3_NWB + 8.*vx3_NWT + - 8.*vx3_SEB + 8.*vx3_SET + 8.*vx3_SWB + 8.*vx3_SWT)/64.; - ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/4.; - bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/4.; - cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/4.; + 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 + - 2.*vx2_NEB + 2.*vx2_NET - 2.*vx2_NWB - 2.*vx2_NWT - - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB + 2.*vx2_SWT - - 2.*vx3_NEB + 2.*vx3_NET + 2.*vx3_NWB - 2.*vx3_NWT - - 2.*vx3_SEB + 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/16.; + 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 - - 2.*vx1_NEB - 2.*vx1_NET + 2.*vx1_NWB + 2.*vx1_NWT + - 2.*vx1_SEB + 2.*vx1_SET - 2.*vx1_SWB - 2.*vx1_SWT)/8.; + 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 + - 2.*vx1_NEB - 2.*vx1_NET - 2.*vx1_NWB + 2.*vx1_NWT + - 2.*vx1_SEB - 2.*vx1_SET - 2.*vx1_SWB + 2.*vx1_SWT)/8.; - ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/4.; - by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/4.; - cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/4.; + 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 - - 2.*vx2_NEB - 2.*vx2_NET + 2.*vx2_NWB + 2.*vx2_NWT + - 2.*vx2_SEB + 2.*vx2_SET - 2.*vx2_SWB - 2.*vx2_SWT)/8.; - byy= (-2.*kxxMyyFromfcNEQ_NEB - 2.*kxxMyyFromfcNEQ_NET - 2.*kxxMyyFromfcNEQ_NWB - 2.*kxxMyyFromfcNEQ_NWT + - 2.*kxxMyyFromfcNEQ_SEB + 2.*kxxMyyFromfcNEQ_SET + 2.*kxxMyyFromfcNEQ_SWB + 2.*kxxMyyFromfcNEQ_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 + - 2.*vx1_NEB + 2.*vx1_NET - 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB - 2.*vx1_SET + 2.*vx1_SWB + 2.*vx1_SWT - - 2.*vx3_NEB + 2.*vx3_NET - 2.*vx3_NWB + 2.*vx3_NWT + - 2.*vx3_SEB - 2.*vx3_SET + 2.*vx3_SWB - 2.*vx3_SWT)/16.; + 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 + - 2.*vx2_NEB - 2.*vx2_NET + 2.*vx2_NWB - 2.*vx2_NWT - - 2.*vx2_SEB + 2.*vx2_SET - 2.*vx2_SWB + 2.*vx2_SWT)/8.; - az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/4.; - bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/4.; - cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/4.; + 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 + - 2.*vx3_NEB - 2.*vx3_NET - 2.*vx3_NWB + 2.*vx3_NWT + - 2.*vx3_SEB - 2.*vx3_SET - 2.*vx3_SWB + 2.*vx3_SWT)/8.; + 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 + - 2.*vx3_NEB - 2.*vx3_NET + 2.*vx3_NWB - 2.*vx3_NWT - - 2.*vx3_SEB + 2.*vx3_SET - 2.*vx3_SWB + 2.*vx3_SWT)/8.; + 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 + - 2.*kxxMzzFromfcNEQ_NEB - 2.*kxxMzzFromfcNEQ_NET + 2.*kxxMzzFromfcNEQ_NWB - 2.*kxxMzzFromfcNEQ_NWT + - 2.*kxxMzzFromfcNEQ_SEB - 2.*kxxMzzFromfcNEQ_SET + 2.*kxxMzzFromfcNEQ_SWB - 2.*kxxMzzFromfcNEQ_SWT - - 2.*vx1_NEB + 2.*vx1_NET + 2.*vx1_NWB - 2.*vx1_NWT - - 2.*vx1_SEB + 2.*vx1_SET + 2.*vx1_SWB - 2.*vx1_SWT - - 2.*vx2_NEB + 2.*vx2_NET - 2.*vx2_NWB + 2.*vx2_NWT + - 2.*vx2_SEB - 2.*vx2_SET + 2.*vx2_SWB - 2.*vx2_SWT)/16.; - axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/2.; - bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/2.; - cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/2.; - axz= (-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT - vx1_SEB + vx1_SET + vx1_SWB - vx1_SWT)/2.; - bxz= (-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT - vx2_SEB + vx2_SET + vx2_SWB - vx2_SWT)/2.; - cxz= (-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT - vx3_SEB + vx3_SET + vx3_SWB - vx3_SWT)/2.; - ayz= (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT + vx1_SEB - vx1_SET + vx1_SWB - vx1_SWT)/2.; - byz= (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT + vx2_SEB - vx2_SET + vx2_SWB - vx2_SWT)/2.; - cyz= (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT + vx3_SEB - vx3_SET + vx3_SWB - vx3_SWT)/2.; + 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; @@ -351,7 +356,7 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(con // kxxMzzFromfcNEQ_NWT+ // kxxMzzFromfcNEQ_NET+ // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); - kxyAverage =0;//(kxyFromfcNEQ_SWB+ + kxyAverage = c0o1;//(kxyFromfcNEQ_SWB+ //kxyFromfcNEQ_SWT+ //kxyFromfcNEQ_SET+ //kxyFromfcNEQ_SEB+ @@ -359,7 +364,7 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(con //kxyFromfcNEQ_NWT+ //kxyFromfcNEQ_NET+ //kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - kyzAverage =0;//(kyzFromfcNEQ_SWB+ + kyzAverage = c0o1;//(kyzFromfcNEQ_SWB+ //kyzFromfcNEQ_SWT+ //kyzFromfcNEQ_SET+ //kyzFromfcNEQ_SEB+ @@ -367,7 +372,7 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(con //kyzFromfcNEQ_NWT+ //kyzFromfcNEQ_NET+ //kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - kxzAverage =0;//(kxzFromfcNEQ_SWB+ + kxzAverage = c0o1;//(kxzFromfcNEQ_SWB+ //kxzFromfcNEQ_SWT+ //kxzFromfcNEQ_SET+ //kxzFromfcNEQ_SEB+ @@ -375,7 +380,7 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(con //kxzFromfcNEQ_NWT+ //kxzFromfcNEQ_NET+ //kxzFromfcNEQ_NEB)*c1o8-(az+cx); - kxxMyyAverage =0;//(kxxMyyFromfcNEQ_SWB+ + kxxMyyAverage = c0o1;//(kxxMyyFromfcNEQ_SWB+ //kxxMyyFromfcNEQ_SWT+ //kxxMyyFromfcNEQ_SET+ //kxxMyyFromfcNEQ_SEB+ @@ -383,7 +388,7 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(con //kxxMyyFromfcNEQ_NWT+ //kxxMyyFromfcNEQ_NET+ //kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - kxxMzzAverage =0;//(kxxMzzFromfcNEQ_SWB+ + kxxMzzAverage = c0o1;//(kxxMzzFromfcNEQ_SWB+ //kxxMzzFromfcNEQ_SWT+ //kxxMzzFromfcNEQ_SET+ //kxxMzzFromfcNEQ_SEB+ @@ -397,17 +402,17 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(con // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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 + xoff*yoff*zoff*axyz ; - ax = ax + 2. * xoff * axx + yoff * axy + zoff * axz + yoff*zoff*axyz; - ay = ay + 2. * yoff * ayy + xoff * axy + zoff * ayz + xoff*zoff*axyz; - az = az + 2. * zoff * azz + xoff * axz + yoff * ayz + xoff*yoff*axyz; + ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz + yoff*zoff*axyz; + ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz + xoff*zoff*axyz; + az = az + c2o1 * zoff * azz + xoff * axz + yoff * ayz + xoff*yoff*axyz; 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 + xoff*yoff*zoff*bxyz; - bx = bx + 2. * xoff * bxx + yoff * bxy + zoff * bxz + yoff*zoff*bxyz; - by = by + 2. * yoff * byy + xoff * bxy + zoff * byz + xoff*zoff*bxyz; - bz = bz + 2. * zoff * bzz + xoff * bxz + yoff * byz + xoff*yoff*bxyz; + bx = bx + c2o1 * xoff * bxx + yoff * bxy + zoff * bxz + yoff*zoff*bxyz; + by = by + c2o1 * yoff * byy + xoff * bxy + zoff * byz + xoff*zoff*bxyz; + bz = bz + c2o1 * zoff * bzz + xoff * bxz + yoff * byz + xoff*yoff*bxyz; 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 + xoff*yoff*zoff*cxyz; - cx = cx + 2. * xoff * cxx + yoff * cxy + zoff * cxz + yoff*zoff*cxyz; - cy = cy + 2. * yoff * cyy + xoff * cxy + zoff * cyz + xoff*zoff*cxyz; - cz = cz + 2. * zoff * czz + xoff * cxz + yoff * cyz + xoff*yoff*cxyz; + cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz + yoff*zoff*cxyz; + cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz + xoff*zoff*cxyz; + cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz + xoff*yoff*cxyz; axy= axy + zoff*axyz; axz= axz + yoff*axyz; ayz= ayz + xoff*axyz; @@ -421,121 +426,122 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(con const real o = omega; - f_E = eps_new*((2*(-2*ax + by + cz-kxxMzzAverage-kxxMyyAverage))/(27.*o)); - f_N = eps_new*((2*(ax - 2*by + cz+2*kxxMyyAverage-kxxMzzAverage))/(27.*o)); - f_T = eps_new*((2*(ax + by - 2*cz-kxxMyyAverage+2*kxxMzzAverage))/(27.*o)); - f_NE = eps_new*(-(ax + 3*ay + 3*bx + by - 2*cz+2*kxxMyyAverage-kxxMyyAverage+3*kxyAverage)/(54.*o)); - f_SE = eps_new*(-(ax - 3*ay - 3*bx + by - 2*cz+2*kxxMyyAverage-kxxMyyAverage-3*kxyAverage)/(54.*o)); - f_TE = eps_new*(-(ax + 3*az - 2*by + 3*cx + cz+2*kxxMyyAverage-kxxMzzAverage+3*kxzAverage)/(54.*o)); - f_BE = eps_new*(-(ax - 3*az - 2*by - 3*cx + cz+2*kxxMyyAverage-kxxMzzAverage-3*kxzAverage)/(54.*o)); - f_TN = eps_new*(-(-2*ax + by + 3*bz + 3*cy + cz-kxxMyyAverage-kxxMzzAverage+3*kyzAverage)/(54.*o)); - f_BN = eps_new*(-(-2*ax + by - 3*bz - 3*cy + cz-kxxMyyAverage-kxxMzzAverage-3*kyzAverage)/(54.*o)); + f_E = eps_new*((c2o1*(-c2o1*ax + by + cz-kxxMzzAverage-kxxMyyAverage))/(c27o1*o)); + f_N = eps_new*((c2o1*(ax - c2o1*by + cz+c2o1*kxxMyyAverage-kxxMzzAverage))/(c27o1*o)); + f_T = eps_new*((c2o1*(ax + by - c2o1*cz-kxxMyyAverage+c2o1*kxxMzzAverage))/(c27o1*o)); + f_NE = eps_new*(-(ax + c3o1*ay + c3o1*bx + by - c2o1*cz+c2o1*kxxMyyAverage-kxxMyyAverage+c3o1*kxyAverage)/(c54o1*o)); + f_SE = eps_new*(-(ax - c3o1*ay - c3o1*bx + by - c2o1*cz+c2o1*kxxMyyAverage-kxxMyyAverage-c3o1*kxyAverage)/(c54o1*o)); + f_TE = eps_new*(-(ax + c3o1*az - c2o1*by + c3o1*cx + cz+c2o1*kxxMyyAverage-kxxMzzAverage+c3o1*kxzAverage)/(c54o1*o)); + f_BE = eps_new*(-(ax - c3o1*az - c2o1*by - c3o1*cx + cz+c2o1*kxxMyyAverage-kxxMzzAverage-c3o1*kxzAverage)/(c54o1*o)); + f_TN = eps_new*(-(-c2o1*ax + by + c3o1*bz + c3o1*cy + cz-kxxMyyAverage-kxxMzzAverage+c3o1*kyzAverage)/(c54o1*o)); + f_BN = eps_new*(-(-c2o1*ax + by - c3o1*bz - c3o1*cy + cz-kxxMyyAverage-kxxMzzAverage-c3o1*kyzAverage)/(c54o1*o)); f_ZERO = 0.; - f_TNE = eps_new*(-(ay + az + bx + bz + cx + cy+kxyAverage+kxzAverage+kyzAverage)/(72.*o)); - f_TSW = eps_new*((-ay + az - bx + bz + cx + cy-kxyAverage+kxzAverage+kyzAverage)/(72.*o)); - f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(72.*o)); - f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(72.*o)); - - x_E = 0.25*eps_new*((2*(-4*axx + bxy + cxz))/(27.*o)); - x_N = 0.25*eps_new*((2*(2*axx - 2*bxy + cxz))/(27.*o)); - x_T = 0.25*eps_new*((2*(2*axx + bxy - 2*cxz))/(27.*o)); - x_NE = 0.25*eps_new*(-((2*axx + 3*axy + 6*bxx + bxy - 2*cxz))/(54.*o)); - x_SE = 0.25*eps_new*(-((2*axx - 3*axy - 6*bxx + bxy - 2*cxz))/(54.*o)); - x_TE = 0.25*eps_new*(-((2*axx + 3*axz - 2*bxy + 6*cxx + cxz))/(54.*o)); - x_BE = 0.25*eps_new*(-((2*axx - 3*axz - 2*bxy - 6*cxx + cxz))/(54.*o)); - x_TN = 0.25*eps_new*(-((-4*axx + bxy + 3*bxz + 3*cxy + cxz))/(54.*o)); - x_BN = 0.25*eps_new*(-((-4*axx + bxy - 3*bxz - 3*cxy + cxz))/(54.*o)); + f_TNE = eps_new*(-(ay + az + bx + bz + cx + cy+kxyAverage+kxzAverage+kyzAverage)/(c72o1*o)); + f_TSW = eps_new*((-ay + az - bx + bz + cx + cy-kxyAverage+kxzAverage+kyzAverage)/(c72o1*o)); + f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(c72o1*o)); + f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(c72o1*o)); + + x_E = 0.25*eps_new*((c2o1*(-c4o1*axx + bxy + cxz))/(c27o1*o)); + x_N = 0.25*eps_new*((c2o1*(c2o1*axx - c2o1*bxy + cxz))/(c27o1*o)); + x_T = 0.25*eps_new*((c2o1*(c2o1*axx + bxy - c2o1*cxz))/(c27o1*o)); + x_NE = 0.25*eps_new*(-((c2o1*axx + c3o1*axy + c6o1*bxx + bxy - c2o1*cxz))/(c54o1*o)); + x_SE = 0.25*eps_new*(-((c2o1*axx - c3o1*axy - c6o1*bxx + bxy - c2o1*cxz))/(c54o1*o)); + x_TE = 0.25*eps_new*(-((c2o1*axx + c3o1*axz - c2o1*bxy + c6o1*cxx + cxz))/(c54o1*o)); + x_BE = 0.25*eps_new*(-((c2o1*axx - c3o1*axz - c2o1*bxy - c6o1*cxx + cxz))/(c54o1*o)); + x_TN = 0.25*eps_new*(-((-c4o1*axx + bxy + c3o1*bxz + c3o1*cxy + cxz))/(c54o1*o)); + x_BN = 0.25*eps_new*(-((-c4o1*axx + bxy - c3o1*bxz - c3o1*cxy + cxz))/(c54o1*o)); x_ZERO = 0.; - x_TNE = 0.25*eps_new*(-((axy + axz + 2*bxx + bxz + 2*cxx + cxy))/(72.*o)); - x_TSW = 0.25*eps_new*(((-axy + axz - 2*bxx + bxz + 2*cxx + cxy))/(72.*o)); - x_TSE = 0.25*eps_new*(((axy - axz + 2*bxx + bxz - 2*cxx + cxy))/(72.*o)); - x_TNW = 0.25*eps_new*(((axy + axz + 2*bxx - bxz + 2*cxx - cxy))/(72.*o)); - - y_E = 0.25*eps_new*(2*(-2*axy + 2*byy + cyz))/(27.*o); - y_N = 0.25*eps_new*(2*(axy - 4*byy + cyz))/(27.*o); - y_T = 0.25*eps_new*(2*(axy + 2*byy - 2*cyz))/(27.*o); - y_NE = 0.25*eps_new*(-((axy + 6*ayy + 3*bxy + 2*byy - 2*cyz))/(54.*o)); - y_SE = 0.25*eps_new*(-((axy - 6*ayy - 3*bxy + 2*byy - 2*cyz))/(54.*o)); - y_TE = 0.25*eps_new*(-((axy + 3*ayz - 4*byy + 3*cxy + cyz))/(54.*o)); - y_BE = 0.25*eps_new*(-((axy - 3*ayz - 4*byy - 3*cxy + cyz))/(54.*o)); - y_TN = 0.25*eps_new*(-((-2*axy + 2*byy + 3*byz + 6*cyy + cyz))/(54.*o)); - y_BN = 0.25*eps_new*(-((-2*axy + 2*byy - 3*byz - 6*cyy + cyz))/(54.*o)); + x_TNE = 0.25*eps_new*(-((axy + axz + c2o1*bxx + bxz + c2o1*cxx + cxy))/(c72o1*o)); + x_TSW = 0.25*eps_new*(((-axy + axz - c2o1*bxx + bxz + c2o1*cxx + cxy))/(c72o1*o)); + x_TSE = 0.25*eps_new*(((axy - axz + c2o1*bxx + bxz - c2o1*cxx + cxy))/(c72o1*o)); + x_TNW = 0.25*eps_new*(((axy + axz + c2o1*bxx - bxz + c2o1*cxx - cxy))/(c72o1*o)); + + y_E = 0.25*eps_new*(c2o1*(-c2o1*axy + c2o1*byy + cyz))/(c27o1*o); + y_N = 0.25*eps_new*(c2o1*(axy - c4o1*byy + cyz))/(c27o1*o); + y_T = 0.25*eps_new*(c2o1*(axy + c2o1*byy - c2o1*cyz))/(c27o1*o); + y_NE = 0.25*eps_new*(-((axy + c6o1*ayy + c3o1*bxy + c2o1*byy - c2o1*cyz))/(c54o1*o)); + y_SE = 0.25*eps_new*(-((axy - c6o1*ayy - c3o1*bxy + c2o1*byy - c2o1*cyz))/(c54o1*o)); + y_TE = 0.25*eps_new*(-((axy + c3o1*ayz - c4o1*byy + c3o1*cxy + cyz))/(c54o1*o)); + y_BE = 0.25*eps_new*(-((axy - c3o1*ayz - c4o1*byy - c3o1*cxy + cyz))/(c54o1*o)); + y_TN = 0.25*eps_new*(-((-c2o1*axy + c2o1*byy + c3o1*byz + c6o1*cyy + cyz))/(c54o1*o)); + y_BN = 0.25*eps_new*(-((-c2o1*axy + c2o1*byy - c3o1*byz - c6o1*cyy + cyz))/(c54o1*o)); y_ZERO = 0.; - y_TNE = 0.25*eps_new*(-((2*ayy + ayz + bxy + byz + cxy + 2*cyy))/(72.*o)); - y_TSW = 0.25*eps_new*(((-2*ayy + ayz - bxy + byz + cxy + 2*cyy))/(72.*o)); - y_TSE = 0.25*eps_new*(((2*ayy - ayz + bxy + byz - cxy + 2*cyy))/(72.*o)); - y_TNW = 0.25*eps_new*(((2*ayy + ayz + bxy - byz + cxy - 2*cyy))/(72.*o)); - - z_E = 0.25*eps_new*((2*(-2*axz + byz + 2*czz))/(27.*o)); - z_N = 0.25*eps_new*((2*(axz - 2*byz + 2*czz))/(27.*o)); - z_T = 0.25*eps_new*((2*(axz + byz - 4*czz))/(27.*o)); - z_NE = 0.25*eps_new*(-((axz + 3*ayz + 3*bxz + byz - 4*czz))/(54.*o)); - z_SE = 0.25*eps_new*(-((axz - 3*ayz - 3*bxz + byz - 4*czz))/(54.*o)); - z_TE = 0.25*eps_new*(-((axz + 6*azz - 2*byz + 3*cxz + 2*czz))/(54.*o)); - z_BE = 0.25*eps_new*(-((axz - 6*azz - 2*byz - 3*cxz + 2*czz))/(54.*o)); - z_TN = 0.25*eps_new*(-((-2*axz + byz + 6*bzz + 3*cyz + 2*czz))/(54.*o)); - z_BN = 0.25*eps_new*(-((-2*axz + byz - 6*bzz - 3*cyz + 2*czz))/(54.*o)); + y_TNE = 0.25*eps_new*(-((c2o1*ayy + ayz + bxy + byz + cxy + c2o1*cyy))/(c72o1*o)); + y_TSW = 0.25*eps_new*(((-c2o1*ayy + ayz - bxy + byz + cxy + c2o1*cyy))/(c72o1*o)); + y_TSE = 0.25*eps_new*(((c2o1*ayy - ayz + bxy + byz - cxy + c2o1*cyy))/(c72o1*o)); + y_TNW = 0.25*eps_new*(((c2o1*ayy + ayz + bxy - byz + cxy - c2o1*cyy))/(c72o1*o)); + + z_E = 0.25*eps_new*((c2o1*(-c2o1*axz + byz + c2o1*czz))/(c27o1*o)); + z_N = 0.25*eps_new*((c2o1*(axz - c2o1*byz + c2o1*czz))/(c27o1*o)); + z_T = 0.25*eps_new*((c2o1*(axz + byz - c4o1*czz))/(c27o1*o)); + z_NE = 0.25*eps_new*(-((axz + c3o1*ayz + c3o1*bxz + byz - c4o1*czz))/(c54o1*o)); + z_SE = 0.25*eps_new*(-((axz - c3o1*ayz - c3o1*bxz + byz - c4o1*czz))/(c54o1*o)); + z_TE = 0.25*eps_new*(-((axz + c6o1*azz - c2o1*byz + c3o1*cxz + c2o1*czz))/(c54o1*o)); + z_BE = 0.25*eps_new*(-((axz - c6o1*azz - c2o1*byz - c3o1*cxz + c2o1*czz))/(c54o1*o)); + z_TN = 0.25*eps_new*(-((-c2o1*axz + byz + c6o1*bzz + c3o1*cyz + c2o1*czz))/(c54o1*o)); + z_BN = 0.25*eps_new*(-((-c2o1*axz + byz - c6o1*bzz - c3o1*cyz + c2o1*czz))/(c54o1*o)); z_ZERO = 0.; - z_TNE = 0.25*eps_new*(-((ayz + 2*azz + bxz + 2*bzz + cxz + cyz))/(72.*o)); - z_TSW = 0.25*eps_new*(((-ayz + 2*azz - bxz + 2*bzz + cxz + cyz))/(72.*o)); - z_TSE = 0.25*eps_new*(((ayz - 2*azz + bxz + 2*bzz - cxz + cyz))/(72.*o)); - z_TNW = 0.25*eps_new*(((ayz + 2*azz + bxz - 2*bzz + cxz - cyz))/(72.*o)); - - xy_E = 0.0625*eps_new *(( 2.*cxyz)/(27.*o)); - xy_N = 0.0625*eps_new *(( 2.*cxyz)/(27.*o)); - xy_T = -(0.0625*eps_new *(( 4.*cxyz)/(27.*o))); - xy_NE = 0.0625*eps_new *( cxyz /(27.*o)); - xy_SE = 0.0625*eps_new *( cxyz /(27.*o)); - xy_TE = -(0.0625*eps_new *(( 3.*axyz + cxyz)/(54.*o))); - xy_BE = -(0.0625*eps_new *((-3.*axyz + cxyz)/(54.*o))); - xy_TN = -(0.0625*eps_new *(( 3.*bxyz + cxyz)/(54.*o))); - xy_BN = -(0.0625*eps_new *(( - 3.*bxyz + cxyz)/(54.*o))); - //xy_ZERO= 0.0625*eps_new; - xy_TNE = -(0.0625*eps_new *(( axyz + bxyz )/(72.*o))); - xy_TSW = 0.0625*eps_new *(( axyz + bxyz )/(72.*o)); - xy_TSE = 0.0625*eps_new *((- axyz + bxyz )/(72.*o)); - xy_TNW = 0.0625*eps_new *(( axyz - bxyz )/(72.*o)); - - xz_E = 0.0625*eps_new *(( 2.*bxyz )/(27.*o)); - xz_N = -(0.0625*eps_new *(( 4.*bxyz )/(27.*o))); - xz_T = 0.0625*eps_new *(( 2.*bxyz )/(27.*o)); - xz_NE = -(0.0625*eps_new *(( 3.*axyz + bxyz )/(54.*o))); - xz_SE = -(0.0625*eps_new *((-3.*axyz + bxyz )/(54.*o))); - xz_TE = 0.0625*eps_new *(( bxyz )/(27.*o)); - xz_BE = 0.0625*eps_new *(( bxyz )/(27.*o)); - xz_TN = -(0.0625*eps_new *(( bxyz + 3.*cxyz)/(54.*o))); - xz_BN = -(0.0625*eps_new *(( bxyz - 3.*cxyz)/(54.*o))); - //xz_ZERO= 0.0625*eps_new; - xz_TNE = -(0.0625*eps_new *(( axyz + cxyz)/(72.*o))); - xz_TSW = 0.0625*eps_new *((- axyz + cxyz)/(72.*o)); - xz_TSE = 0.0625*eps_new *(( axyz + cxyz)/(72.*o)); - xz_TNW = 0.0625*eps_new *(( axyz - cxyz)/(72.*o)); - - yz_E = -(0.0625*eps_new *(( 4.*axyz )/(27.*o))); - yz_N = 0.0625*eps_new *(( 2.*axyz )/(27.*o)); - yz_T = 0.0625*eps_new *(( 2.*axyz )/(27.*o)); - yz_NE = -(0.0625*eps_new *(( axyz + 3.*bxyz )/(54.*o))); - yz_SE = -(0.0625*eps_new *(( axyz - 3.*bxyz )/(54.*o))); - yz_TE = -(0.0625*eps_new *(( axyz + 3.*cxyz)/(54.*o))); - yz_BE = -(0.0625*eps_new *(( axyz - 3.*cxyz)/(54.*o))); - yz_TN = 0.0625*eps_new *(( axyz )/(27.*o)); - yz_BN = 0.0625*eps_new *(( axyz )/(27.*o)); - //yz_ZERO= 0.0625*eps_new; - yz_TNE = -(0.0625*eps_new *(( bxyz + cxyz)/(72.*o))); - yz_TSW = 0.0625*eps_new *(( - bxyz + cxyz)/(72.*o)); - yz_TSE = 0.0625*eps_new *(( bxyz - cxyz)/(72.*o)); - yz_TNW = 0.0625*eps_new *(( bxyz + cxyz)/(72.*o)); + z_TNE = 0.25*eps_new*(-((ayz + c2o1*azz + bxz + c2o1*bzz + cxz + cyz))/(c72o1*o)); + z_TSW = 0.25*eps_new*(((-ayz + c2o1*azz - bxz + c2o1*bzz + cxz + cyz))/(c72o1*o)); + z_TSE = 0.25*eps_new*(((ayz - c2o1*azz + bxz + c2o1*bzz - cxz + cyz))/(c72o1*o)); + z_TNW = 0.25*eps_new*(((ayz + c2o1*azz + bxz - c2o1*bzz + cxz - cyz))/(c72o1*o)); + + xy_E = c1o16*eps_new *(( c2o1*cxyz)/(c27o1*o)); + xy_N = c1o16*eps_new *(( c2o1*cxyz)/(c27o1*o)); + xy_T = -(c1o16*eps_new *(( c4o1*cxyz)/(c27o1*o))); + xy_NE = c1o16*eps_new *( cxyz /(c27o1*o)); + xy_SE = c1o16*eps_new *( cxyz /(c27o1*o)); + xy_TE = -(c1o16*eps_new *(( c3o1*axyz + cxyz)/(c54o1*o))); + xy_BE = -(c1o16*eps_new *((-c3o1*axyz + cxyz)/(c54o1*o))); + xy_TN = -(c1o16*eps_new *(( c3o1*bxyz + cxyz)/(c54o1*o))); + xy_BN = -(c1o16*eps_new *(( - c3o1*bxyz + cxyz)/(c54o1*o))); + //xy_ZERO= c1o16*eps_new; + xy_TNE = -(c1o16*eps_new *(( axyz + bxyz )/(c72o1*o))); + xy_TSW = c1o16*eps_new *(( axyz + bxyz )/(c72o1*o)); + xy_TSE = c1o16*eps_new *((- axyz + bxyz )/(c72o1*o)); + xy_TNW = c1o16*eps_new *(( axyz - bxyz )/(c72o1*o)); + + xz_E = c1o16*eps_new *(( c2o1*bxyz )/(c27o1*o)); + xz_N = -(c1o16*eps_new *(( c4o1*bxyz )/(c27o1*o))); + xz_T = c1o16*eps_new *(( c2o1*bxyz )/(c27o1*o)); + xz_NE = -(c1o16*eps_new *(( c3o1*axyz + bxyz )/(c54o1*o))); + xz_SE = -(c1o16*eps_new *((-c3o1*axyz + bxyz )/(c54o1*o))); + xz_TE = c1o16*eps_new *(( bxyz )/(c27o1*o)); + xz_BE = c1o16*eps_new *(( bxyz )/(c27o1*o)); + xz_TN = -(c1o16*eps_new *(( bxyz + c3o1*cxyz)/(c54o1*o))); + xz_BN = -(c1o16*eps_new *(( bxyz - c3o1*cxyz)/(c54o1*o))); + //xz_ZERO= c1o16*eps_new; + xz_TNE = -(c1o16*eps_new *(( axyz + cxyz)/(c72o1*o))); + xz_TSW = c1o16*eps_new *((- axyz + cxyz)/(c72o1*o)); + xz_TSE = c1o16*eps_new *(( axyz + cxyz)/(c72o1*o)); + xz_TNW = c1o16*eps_new *(( axyz - cxyz)/(c72o1*o)); + + yz_E = -(c1o16*eps_new *(( c4o1*axyz )/(c27o1*o))); + yz_N = c1o16*eps_new *(( c2o1*axyz )/(c27o1*o)); + yz_T = c1o16*eps_new *(( c2o1*axyz )/(c27o1*o)); + yz_NE = -(c1o16*eps_new *(( axyz + c3o1*bxyz )/(c54o1*o))); + yz_SE = -(c1o16*eps_new *(( axyz - c3o1*bxyz )/(c54o1*o))); + yz_TE = -(c1o16*eps_new *(( axyz + c3o1*cxyz)/(c54o1*o))); + yz_BE = -(c1o16*eps_new *(( axyz - c3o1*cxyz)/(c54o1*o))); + yz_TN = c1o16*eps_new *(( axyz )/(c27o1*o)); + yz_BN = c1o16*eps_new *(( axyz )/(c27o1*o)); + //yz_ZERO= c1o16*eps_new; + yz_TNE = -(c1o16*eps_new *(( bxyz + cxyz)/(c72o1*o))); + yz_TSW = c1o16*eps_new *(( - bxyz + cxyz)/(c72o1*o)); + yz_TSE = c1o16*eps_new *(( bxyz - cxyz)/(c72o1*o)); + yz_TNW = c1o16*eps_new *(( bxyz + cxyz)/(c72o1*o)); } ////////////////////////////////////////////////////////////////////////// void IncompressibleOffsetInterpolationProcessor::calcInterpolatedNode(real* f, real /*omega*/, real /*x*/, real /*y*/, real /*z*/, real press, real xs, real ys, real zs) { using namespace D3Q27System; using namespace vf::lbm::dir; + using namespace vf::lbm::constant; real rho = press ;//+ (2.*axx*x+axy*y+axz*z+axyz*y*z+ax + 2.*byy*y+bxy*x+byz*z+bxyz*x*z+by + 2.*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/3.; - real vx1 = a0 + 0.25*( xs*ax + ys*ay + zs*az) + 0.0625*(axx + xs*ys*axy + xs*zs*axz + ayy + ys*zs*ayz + azz) + 0.015625*(xs*ys*zs*axyz); - real vx2 = b0 + 0.25*( xs*bx + ys*by + zs*bz) + 0.0625*(bxx + xs*ys*bxy + xs*zs*bxz + byy + ys*zs*byz + bzz) + 0.015625*(xs*ys*zs*bxyz); - real vx3 = c0 + 0.25*( xs*cx + ys*cy + zs*cz) + 0.0625*(cxx + xs*ys*cxy + xs*zs*cxz + cyy + ys*zs*cyz + czz) + 0.015625*(xs*ys*zs*cxyz); + real vx1 = a0 + c1o4*( xs*ax + ys*ay + zs*az) + c1o16*(axx + xs*ys*axy + xs*zs*axz + ayy + ys*zs*ayz + azz) + c1o64*(xs*ys*zs*axyz); + real vx2 = b0 + c1o4*( xs*bx + ys*by + zs*bz) + c1o16*(bxx + xs*ys*bxy + xs*zs*bxz + byy + ys*zs*byz + bzz) + c1o64*(xs*ys*zs*bxyz); + real vx3 = c0 + c1o4*( xs*cx + ys*cy + zs*cz) + c1o16*(cxx + xs*ys*cxy + xs*zs*cxz + cyy + ys*zs*cyz + czz) + c1o64*(xs*ys*zs*cxyz); ////////////////////////////////////////////////////////////////////////// //DRAFT @@ -577,105 +583,121 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedNode(real* f, r //Position SWB -0.25, -0.25, -0.25 real IncompressibleOffsetInterpolationProcessor::calcPressBSW() { - return press_SWT * (0.140625 + 0.1875 * xoff + 0.1875 * yoff - 0.5625 * zoff) + - press_NWT * (0.046875 + 0.0625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SET * (0.046875 - 0.1875 * xoff + 0.0625 * yoff - 0.1875 * zoff) + - press_NET * (0.015625 - 0.0625 * xoff - 0.0625 * yoff - 0.0625 * zoff) + - press_NEB * (0.046875 - 0.1875 * xoff - 0.1875 * yoff + 0.0625 * zoff) + - press_NWB * (0.140625 + 0.1875 * xoff - 0.5625 * yoff + 0.1875 * zoff) + - press_SEB * (0.140625 - 0.5625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_SWB * (0.421875 + 0.5625 * xoff + 0.5625 * yoff + 0.5625 * zoff); + using namespace vf::lbm::constant; + + return press_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + press_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + press_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + press_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + press_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + press_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position SWT -0.25, -0.25, 0.25 real IncompressibleOffsetInterpolationProcessor::calcPressTSW() { - return press_SWT * (0.421875 + 0.5625 * xoff + 0.5625 * yoff - 0.5625 * zoff) + - press_NWT * (0.140625 + 0.1875 * xoff - 0.5625 * yoff - 0.1875 * zoff) + - press_SET * (0.140625 - 0.5625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_NET * (0.046875 - 0.1875 * xoff - 0.1875 * yoff - 0.0625 * zoff) + - press_NEB * (0.015625 - 0.0625 * xoff - 0.0625 * yoff + 0.0625 * zoff) + - press_NWB * (0.046875 + 0.0625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SEB * (0.046875 - 0.1875 * xoff + 0.0625 * yoff + 0.1875 * zoff) + - press_SWB * (0.140625 + 0.1875 * xoff + 0.1875 * yoff + 0.5625 * zoff); + using namespace vf::lbm::constant; + + return press_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + press_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + press_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + press_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + press_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + press_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position SET 0.25, -0.25, 0.25 real IncompressibleOffsetInterpolationProcessor::calcPressTSE() { - return press_SET * (0.421875 - 0.5625 * xoff + 0.5625 * yoff - 0.5625 * zoff) + - press_NET * (0.140625 - 0.1875 * xoff - 0.5625 * yoff - 0.1875 * zoff) + - press_SWT * (0.140625 + 0.5625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_NWT * (0.046875 + 0.1875 * xoff - 0.1875 * yoff - 0.0625 * zoff) + - press_NWB * (0.015625 + 0.0625 * xoff - 0.0625 * yoff + 0.0625 * zoff) + - press_NEB * (0.046875 - 0.0625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SWB * (0.046875 + 0.1875 * xoff + 0.0625 * yoff + 0.1875 * zoff) + - press_SEB * (0.140625 - 0.1875 * xoff + 0.1875 * yoff + 0.5625 * zoff); + using namespace vf::lbm::constant; + + return press_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + press_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + press_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + press_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + press_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + press_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position SEB 0.25, -0.25, -0.25 real IncompressibleOffsetInterpolationProcessor::calcPressBSE() { - return press_SET * (0.140625 - 0.1875 * xoff + 0.1875 * yoff - 0.5625 * zoff) + - press_NET * (0.046875 - 0.0625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SWT * (0.046875 + 0.1875 * xoff + 0.0625 * yoff - 0.1875 * zoff) + - press_NWT * (0.015625 + 0.0625 * xoff - 0.0625 * yoff - 0.0625 * zoff) + - press_NWB * (0.046875 + 0.1875 * xoff - 0.1875 * yoff + 0.0625 * zoff) + - press_NEB * (0.140625 - 0.1875 * xoff - 0.5625 * yoff + 0.1875 * zoff) + - press_SWB * (0.140625 + 0.5625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_SEB * (0.421875 - 0.5625 * xoff + 0.5625 * yoff + 0.5625 * zoff); + using namespace vf::lbm::constant; + + return press_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + press_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + press_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + press_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + press_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + press_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NWB -0.25, 0.25, -0.25 real IncompressibleOffsetInterpolationProcessor::calcPressBNW() { - return press_NWT * (0.140625 + 0.1875 * xoff - 0.1875 * yoff - 0.5625 * zoff) + - press_NET * (0.046875 - 0.1875 * xoff - 0.0625 * yoff - 0.1875 * zoff) + - press_SWT * (0.046875 + 0.0625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_SET * (0.015625 - 0.0625 * xoff + 0.0625 * yoff - 0.0625 * zoff) + - press_SEB * (0.046875 - 0.1875 * xoff + 0.1875 * yoff + 0.0625 * zoff) + - press_NEB * (0.140625 - 0.5625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SWB * (0.140625 + 0.1875 * xoff + 0.5625 * yoff + 0.1875 * zoff) + - press_NWB * (0.421875 + 0.5625 * xoff - 0.5625 * yoff + 0.5625 * zoff); + using namespace vf::lbm::constant; + + return press_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + press_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + press_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + press_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + press_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + press_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NWT -0.25, 0.25, 0.25 real IncompressibleOffsetInterpolationProcessor::calcPressTNW() { - return press_NWT * (0.421875 + 0.5625 * xoff - 0.5625 * yoff - 0.5625 * zoff) + - press_NET * (0.140625 - 0.5625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SWT * (0.140625 + 0.1875 * xoff + 0.5625 * yoff - 0.1875 * zoff) + - press_SET * (0.046875 - 0.1875 * xoff + 0.1875 * yoff - 0.0625 * zoff) + - press_SEB * (0.015625 - 0.0625 * xoff + 0.0625 * yoff + 0.0625 * zoff) + - press_NEB * (0.046875 - 0.1875 * xoff - 0.0625 * yoff + 0.1875 * zoff) + - press_SWB * (0.046875 + 0.0625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_NWB * (0.140625 + 0.1875 * xoff - 0.1875 * yoff + 0.5625 * zoff); + using namespace vf::lbm::constant; + + return press_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + press_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + press_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + press_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + press_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + press_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NET 0.25, 0.25, 0.25 real IncompressibleOffsetInterpolationProcessor::calcPressTNE() { - return press_NET * (0.421875 - 0.5625 * xoff - 0.5625 * yoff - 0.5625 * zoff) + - press_NWT * (0.140625 + 0.5625 * xoff - 0.1875 * yoff - 0.1875 * zoff) + - press_SET * (0.140625 - 0.1875 * xoff + 0.5625 * yoff - 0.1875 * zoff) + - press_SWT * (0.046875 + 0.1875 * xoff + 0.1875 * yoff - 0.0625 * zoff) + - press_SWB * (0.015625 + 0.0625 * xoff + 0.0625 * yoff + 0.0625 * zoff) + - press_NWB * (0.046875 + 0.1875 * xoff - 0.0625 * yoff + 0.1875 * zoff) + - press_SEB * (0.046875 - 0.0625 * xoff + 0.1875 * yoff + 0.1875 * zoff) + - press_NEB * (0.140625 - 0.1875 * xoff - 0.1875 * yoff + 0.5625 * zoff); + using namespace vf::lbm::constant; + + return press_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + press_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + press_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + press_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + press_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + press_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + press_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + press_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position NEB 0.25, 0.25, -0.25 real IncompressibleOffsetInterpolationProcessor::calcPressBNE() { - return press_NET * (0.140625 - 0.1875 * xoff - 0.1875 * yoff - 0.5625 * zoff) + - press_NWT * (0.046875 + 0.1875 * xoff - 0.0625 * yoff - 0.1875 * zoff) + - press_SET * (0.046875 - 0.0625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - press_SWT * (0.015625 + 0.0625 * xoff + 0.0625 * yoff - 0.0625 * zoff) + - press_SWB * (0.046875 + 0.1875 * xoff + 0.1875 * yoff + 0.0625 * zoff) + - press_NWB * (0.140625 + 0.5625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - press_SEB * (0.140625 - 0.1875 * xoff + 0.5625 * yoff + 0.1875 * zoff) + - press_NEB * (0.421875 - 0.5625 * xoff - 0.5625 * yoff + 0.5625 * zoff); + using namespace vf::lbm::constant; + + return press_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + press_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + press_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + press_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + press_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + press_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + press_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + press_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); } ////////////////////////////////////////////////////////////////////////// //Position C 0.0, 0.0, 0.0 @@ -683,15 +705,16 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(real* f, { using namespace D3Q27System; using namespace vf::lbm::dir; - - real press = press_NET * (0.125 - 0.25 * xoff - 0.25 * yoff - 0.25 * zoff) + - press_NWT * (0.125 + 0.25 * xoff - 0.25 * yoff - 0.25 * zoff) + - press_SET * (0.125 - 0.25 * xoff + 0.25 * yoff - 0.25 * zoff) + - press_SWT * (0.125 + 0.25 * xoff + 0.25 * yoff - 0.25 * zoff) + - press_NEB * (0.125 - 0.25 * xoff - 0.25 * yoff + 0.25 * zoff) + - press_NWB * (0.125 + 0.25 * xoff - 0.25 * yoff + 0.25 * zoff) + - press_SEB * (0.125 - 0.25 * xoff + 0.25 * yoff + 0.25 * zoff) + - press_SWB * (0.125 + 0.25 * xoff + 0.25 * yoff + 0.25 * zoff); + using namespace vf::lbm::constant; + + real press = press_NET * (c4o32 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + press_NWT * (c4o32 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + press_SET * (c4o32 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + press_SWT * (c4o32 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + press_NEB * (c4o32 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + press_NWB * (c4o32 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + press_SEB * (c4o32 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + press_SWB * (c4o32 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); real vx1 = a0; real vx2 = b0; real vx3 = c0; @@ -706,7 +729,7 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(real* f, real feq[ENDF+1]; D3Q27System::calcIncompFeq(feq,rho,vx1,vx2,vx3); - real eps_new = 2.; + real eps_new = c2o1; real o = omega; // LBMReal op = 1.; @@ -725,20 +748,20 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(real* f, //f_TSE = - eps_new *((az + cx)/(36.*o)) - f_TNE; //f_TNW = - eps_new *((bz + cy)/(36.*o)) - f_TNE; - f_E = eps_new*((2*(-2*ax + by + cz-kxxMzzAverage-kxxMyyAverage))/(27.*o)); - f_N = eps_new*((2*(ax - 2*by + cz+2*kxxMyyAverage-kxxMzzAverage))/(27.*o)); - f_T = eps_new*((2*(ax + by - 2*cz-kxxMyyAverage+2*kxxMzzAverage))/(27.*o)); - f_NE = eps_new*(-(ax + 3*ay + 3*bx + by - 2*cz+2*kxxMyyAverage-kxxMyyAverage+3*kxyAverage)/(54.*o)); - f_SE = eps_new*(-(ax - 3*ay - 3*bx + by - 2*cz+2*kxxMyyAverage-kxxMyyAverage-3*kxyAverage)/(54.*o)); - f_TE = eps_new*(-(ax + 3*az - 2*by + 3*cx + cz+2*kxxMyyAverage-kxxMzzAverage+3*kxzAverage)/(54.*o)); - f_BE = eps_new*(-(ax - 3*az - 2*by - 3*cx + cz+2*kxxMyyAverage-kxxMzzAverage-3*kxzAverage)/(54.*o)); - f_TN = eps_new*(-(-2*ax + by + 3*bz + 3*cy + cz-kxxMyyAverage-kxxMzzAverage+3*kyzAverage)/(54.*o)); - f_BN = eps_new*(-(-2*ax + by - 3*bz - 3*cy + cz-kxxMyyAverage-kxxMzzAverage-3*kyzAverage)/(54.*o)); - f_ZERO = 0.; - f_TNE = eps_new*(-(ay + az + bx + bz + cx + cy+kxyAverage+kxzAverage+kyzAverage)/(72.*o)); - f_TSW = eps_new*((-ay + az - bx + bz + cx + cy-kxyAverage+kxzAverage+kyzAverage)/(72.*o)); - f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(72.*o)); - f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(72.*o)); + f_E = eps_new*((c2o1*(-c2o1*ax + by + cz-kxxMzzAverage-kxxMyyAverage))/(c27o1*o)); + f_N = eps_new*((c2o1*(ax - c2o1*by + cz+c2o1*kxxMyyAverage-kxxMzzAverage))/(c27o1*o)); + f_T = eps_new*((c2o1*(ax + by - c2o1*cz-kxxMyyAverage+c2o1*kxxMzzAverage))/(c27o1*o)); + f_NE = eps_new*(-(ax + c3o1*ay + c3o1*bx + by - c2o1*cz+c2o1*kxxMyyAverage-kxxMyyAverage+c3o1*kxyAverage)/(c54o1*o)); + f_SE = eps_new*(-(ax - c3o1*ay - c3o1*bx + by - c2o1*cz+c2o1*kxxMyyAverage-kxxMyyAverage-c3o1*kxyAverage)/(c54o1*o)); + f_TE = eps_new*(-(ax + c3o1*az - c2o1*by + c3o1*cx + cz+c2o1*kxxMyyAverage-kxxMzzAverage+c3o1*kxzAverage)/(c54o1*o)); + f_BE = eps_new*(-(ax - c3o1*az - c2o1*by - c3o1*cx + cz+c2o1*kxxMyyAverage-kxxMzzAverage-c3o1*kxzAverage)/(c54o1*o)); + f_TN = eps_new*(-(-c2o1*ax + by + c3o1*bz + c3o1*cy + cz-kxxMyyAverage-kxxMzzAverage+c3o1*kyzAverage)/(c54o1*o)); + f_BN = eps_new*(-(-c2o1*ax + by - c3o1*bz - c3o1*cy + cz-kxxMyyAverage-kxxMzzAverage-c3o1*kyzAverage)/(c54o1*o)); + f_ZERO = c0o1; + f_TNE = eps_new*(-(ay + az + bx + bz + cx + cy+kxyAverage+kxzAverage+kyzAverage)/(c72o1*o)); + f_TSW = eps_new*((-ay + az - bx + bz + cx + cy-kxyAverage+kxzAverage+kyzAverage)/(c72o1*o)); + f_TSE = eps_new*((ay - az + bx + bz - cx + cy+kxyAverage-kxzAverage+kyzAverage)/(c72o1*o)); + f_TNW = eps_new*((ay + az + bx - bz + cx - cy+kxyAverage+kxzAverage-kyzAverage)/(c72o1*o)); f[DIR_P00] = f_E + feq[DIR_P00]; f[DIR_M00] = f_E + feq[DIR_M00]; @@ -778,10 +801,12 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedVelocity(real x ////////////////////////////////////////////////////////////////////////// void IncompressibleOffsetInterpolationProcessor::calcInterpolatedShearStress(real x, real y, real z,real& tauxx, real& tauyy, real& tauzz,real& tauxy, real& tauxz, real& tauyz) { - tauxx=ax+2*axx*x+axy*y+axz*z+axyz*y*z; - tauyy=by+2*byy*y+bxy*x+byz*z+bxyz*x*z; - tauzz=cz+2*czz*z+cxz*x+cyz*y+cxyz*x*y; - tauxy=0.5*((ay+2.0*ayy*y+axy*x+ayz*z+axyz*x*z)+(bx+2.0*bxx*x+bxy*y+bxz*z+bxyz*y*z)); - tauxz=0.5*((az+2.0*azz*z+axz*x+ayz*y+axyz*x*y)+(cx+2.0*cxx*x+cxy*y+cxz*z+cxyz*y*z)); - tauyz=0.5*((bz+2.0*bzz*z+bxz*x+byz*y+bxyz*x*y)+(cy+2.0*cyy*y+cxy*x+cyz*z+cxyz*x*z)); + using namespace vf::lbm::constant; + + tauxx=ax+c2o1*axx*x+axy*y+axz*z+axyz*y*z; + tauyy=by+c2o1*byy*y+bxy*x+byz*z+bxyz*x*z; + tauzz=cz+c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y; + tauxy=c1o2*((ay+c2o1*ayy*y+axy*x+ayz*z+axyz*x*z)+(bx+c2o1*bxx*x+bxy*y+bxz*z+bxyz*y*z)); + tauxz=c1o2*((az+c2o1*azz*z+axz*x+ayz*y+axyz*x*y)+(cx+c2o1*cxx*x+cxy*y+cxz*z+cxyz*y*z)); + tauyz=c1o2*((bz+c2o1*bzz*z+bxz*x+byz*y+bxyz*x*y)+(cy+c2o1*cyy*y+cxy*x+cyz*z+cxyz*x*z)); } diff --git a/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp index 6c1c550fd..47c9a43d0 100644 --- a/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp @@ -960,32 +960,32 @@ void InitDensityLBMKernel::calculate(int /*step*/) real cu_sq = 1.5*(vx1*vx1+vx2*vx2+vx3*vx3); feq[DIR_000] = c8o27*(drho-cu_sq); - feq[DIR_P00] = c2o27*(drho+3.0*(vx1)+c9o2*(vx1)*(vx1)-cu_sq); - feq[DIR_M00] = c2o27*(drho+3.0*(-vx1)+c9o2*(-vx1)*(-vx1)-cu_sq); - feq[DIR_0P0] = c2o27*(drho+3.0*(vx2)+c9o2*(vx2)*(vx2)-cu_sq); - feq[DIR_0M0] = c2o27*(drho+3.0*(-vx2)+c9o2*(-vx2)*(-vx2)-cu_sq); - feq[DIR_00P] = c2o27*(drho+3.0*(vx3)+c9o2*(vx3)*(vx3)-cu_sq); - feq[DIR_00M] = c2o27*(drho+3.0*(-vx3)+c9o2*(-vx3)*(-vx3)-cu_sq); - feq[DIR_PP0] = c1o54*(drho+3.0*(vx1+vx2)+c9o2*(vx1+vx2)*(vx1+vx2)-cu_sq); - feq[DIR_MM0] = c1o54*(drho+3.0*(-vx1-vx2)+c9o2*(-vx1-vx2)*(-vx1-vx2)-cu_sq); - feq[DIR_PM0] = c1o54*(drho+3.0*(vx1-vx2)+c9o2*(vx1-vx2)*(vx1-vx2)-cu_sq); - feq[DIR_MP0] = c1o54*(drho+3.0*(-vx1+vx2)+c9o2*(-vx1+vx2)*(-vx1+vx2)-cu_sq); - feq[DIR_P0P] = c1o54*(drho+3.0*(vx1+vx3)+c9o2*(vx1+vx3)*(vx1+vx3)-cu_sq); - feq[DIR_M0M] = c1o54*(drho+3.0*(-vx1-vx3)+c9o2*(-vx1-vx3)*(-vx1-vx3)-cu_sq); - feq[DIR_P0M] = c1o54*(drho+3.0*(vx1-vx3)+c9o2*(vx1-vx3)*(vx1-vx3)-cu_sq); - feq[DIR_M0P] = c1o54*(drho+3.0*(-vx1+vx3)+c9o2*(-vx1+vx3)*(-vx1+vx3)-cu_sq); - feq[DIR_0PP] = c1o54*(drho+3.0*(vx2+vx3)+c9o2*(vx2+vx3)*(vx2+vx3)-cu_sq); - feq[DIR_0MM] = c1o54*(drho+3.0*(-vx2-vx3)+c9o2*(-vx2-vx3)*(-vx2-vx3)-cu_sq); - feq[DIR_0PM] = c1o54*(drho+3.0*(vx2-vx3)+c9o2*(vx2-vx3)*(vx2-vx3)-cu_sq); - feq[DIR_0MP] = c1o54*(drho+3.0*(-vx2+vx3)+c9o2*(-vx2+vx3)*(-vx2+vx3)-cu_sq); - feq[DIR_PPP] = c1o216*(drho+3.0*(vx1+vx2+vx3)+c9o2*(vx1+vx2+vx3)*(vx1+vx2+vx3)-cu_sq); - feq[DIR_MMM] = c1o216*(drho+3.0*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); - feq[DIR_PPM] = c1o216*(drho+3.0*(vx1+vx2-vx3)+c9o2*(vx1+vx2-vx3)*(vx1+vx2-vx3)-cu_sq); - feq[DIR_MMP] = c1o216*(drho+3.0*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); - feq[DIR_PMP] = c1o216*(drho+3.0*(vx1-vx2+vx3)+c9o2*(vx1-vx2+vx3)*(vx1-vx2+vx3)-cu_sq); - feq[DIR_MPM] = c1o216*(drho+3.0*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); - feq[DIR_PMM] = c1o216*(drho+3.0*(vx1-vx2-vx3)+c9o2*(vx1-vx2-vx3)*(vx1-vx2-vx3)-cu_sq); - feq[DIR_MPP] = c1o216*(drho+3.0*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); + feq[DIR_P00] = c2o27*(drho+c3o1*(vx1)+c9o2*(vx1)*(vx1)-cu_sq); + feq[DIR_M00] = c2o27*(drho+c3o1*(-vx1)+c9o2*(-vx1)*(-vx1)-cu_sq); + feq[DIR_0P0] = c2o27*(drho+c3o1*(vx2)+c9o2*(vx2)*(vx2)-cu_sq); + feq[DIR_0M0] = c2o27*(drho+c3o1*(-vx2)+c9o2*(-vx2)*(-vx2)-cu_sq); + feq[DIR_00P] = c2o27*(drho+c3o1*(vx3)+c9o2*(vx3)*(vx3)-cu_sq); + feq[DIR_00M] = c2o27*(drho+c3o1*(-vx3)+c9o2*(-vx3)*(-vx3)-cu_sq); + feq[DIR_PP0] = c1o54*(drho+c3o1*(vx1+vx2)+c9o2*(vx1+vx2)*(vx1+vx2)-cu_sq); + feq[DIR_MM0] = c1o54*(drho+c3o1*(-vx1-vx2)+c9o2*(-vx1-vx2)*(-vx1-vx2)-cu_sq); + feq[DIR_PM0] = c1o54*(drho+c3o1*(vx1-vx2)+c9o2*(vx1-vx2)*(vx1-vx2)-cu_sq); + feq[DIR_MP0] = c1o54*(drho+c3o1*(-vx1+vx2)+c9o2*(-vx1+vx2)*(-vx1+vx2)-cu_sq); + feq[DIR_P0P] = c1o54*(drho+c3o1*(vx1+vx3)+c9o2*(vx1+vx3)*(vx1+vx3)-cu_sq); + feq[DIR_M0M] = c1o54*(drho+c3o1*(-vx1-vx3)+c9o2*(-vx1-vx3)*(-vx1-vx3)-cu_sq); + feq[DIR_P0M] = c1o54*(drho+c3o1*(vx1-vx3)+c9o2*(vx1-vx3)*(vx1-vx3)-cu_sq); + feq[DIR_M0P] = c1o54*(drho+c3o1*(-vx1+vx3)+c9o2*(-vx1+vx3)*(-vx1+vx3)-cu_sq); + feq[DIR_0PP] = c1o54*(drho+c3o1*(vx2+vx3)+c9o2*(vx2+vx3)*(vx2+vx3)-cu_sq); + feq[DIR_0MM] = c1o54*(drho+c3o1*(-vx2-vx3)+c9o2*(-vx2-vx3)*(-vx2-vx3)-cu_sq); + feq[DIR_0PM] = c1o54*(drho+c3o1*(vx2-vx3)+c9o2*(vx2-vx3)*(vx2-vx3)-cu_sq); + feq[DIR_0MP] = c1o54*(drho+c3o1*(-vx2+vx3)+c9o2*(-vx2+vx3)*(-vx2+vx3)-cu_sq); + feq[DIR_PPP] = c1o216*(drho+c3o1*(vx1+vx2+vx3)+c9o2*(vx1+vx2+vx3)*(vx1+vx2+vx3)-cu_sq); + feq[DIR_MMM] = c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); + feq[DIR_PPM] = c1o216*(drho+c3o1*(vx1+vx2-vx3)+c9o2*(vx1+vx2-vx3)*(vx1+vx2-vx3)-cu_sq); + feq[DIR_MMP] = c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); + feq[DIR_PMP] = c1o216*(drho+c3o1*(vx1-vx2+vx3)+c9o2*(vx1-vx2+vx3)*(vx1-vx2+vx3)-cu_sq); + feq[DIR_MPM] = c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); + feq[DIR_PMM] = c1o216*(drho+c3o1*(vx1-vx2-vx3)+c9o2*(vx1-vx2-vx3)*(vx1-vx2-vx3)-cu_sq); + feq[DIR_MPP] = c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); //Relaxation f[DIR_000] += (feq[DIR_000]-f[DIR_000])*collFactor; diff --git a/src/cpu/VirtualFluidsCore/LBM/InterpolationHelper.cpp b/src/cpu/VirtualFluidsCore/LBM/InterpolationHelper.cpp index 33bf1e623..01aeb9bd6 100644 --- a/src/cpu/VirtualFluidsCore/LBM/InterpolationHelper.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/InterpolationHelper.cpp @@ -7,15 +7,15 @@ InterpolationHelper::~InterpolationHelper() = default; void InterpolationHelper::interpolate8to1(D3Q27ICell &icellF, real *icellC, real /*x1*/, real /*x2*/, real /*x3*/, real omega) { - iProcessor->calcInterpolatedCoefficiets(icellF, omega, 1.0); + iProcessor->calcInterpolatedCoefficiets(icellF, omega, vf::lbm::constant::c1o1); iProcessor->calcInterpolatedNodeFC(icellC, omega); } ////////////////////////////////////////////////////////////////////////// void InterpolationHelper::interpolate8to1WithVelocity(D3Q27ICell &icellF, real x1, real x2, real x3, real omega, real &vx1, real &vx2, real &vx3) { - iProcessor->setOffsets(0.0, 0.0, 0.0); - iProcessor->calcInterpolatedCoefficiets(icellF, omega, 0.0); + iProcessor->setOffsets(vf::lbm::constant::c0o1, vf::lbm::constant::c0o1, vf::lbm::constant::c0o1); + iProcessor->calcInterpolatedCoefficiets(icellF, omega, vf::lbm::constant::c0o1); iProcessor->calcInterpolatedVelocity(x1, x2, x3, vx1, vx2, vx3); } ////////////////////////////////////////////////////////////////////////// @@ -25,8 +25,8 @@ void InterpolationHelper::interpolate8to1WithVelocityWithShearStress(D3Q27ICell real &tauyy, real &tauzz, real &tauxy, real &tauxz, real &tauyz) { - iProcessor->setOffsets(0.0, 0.0, 0.0); - iProcessor->calcInterpolatedCoefficiets(icellF, omega, 0.0); + iProcessor->setOffsets(vf::lbm::constant::c0o1, vf::lbm::constant::c0o1, vf::lbm::constant::c0o1); + iProcessor->calcInterpolatedCoefficiets(icellF, omega, vf::lbm::constant::c0o1); iProcessor->calcInterpolatedVelocity(x1, x2, x3, vx1, vx2, vx3); iProcessor->calcInterpolatedShearStress(x1, x2, x3, tauxx, tauyy, tauzz, tauxy, tauxz, tauyz); } diff --git a/src/cpu/VirtualFluidsCore/LBM/LBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/LBMKernel.cpp index 0f9a9a965..e6208c00f 100644 --- a/src/cpu/VirtualFluidsCore/LBM/LBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/LBMKernel.cpp @@ -111,7 +111,9 @@ void LBMKernel::setForcingX3(const std::string &muParserString) ////////////////////////////////////////////////////////////////////////// void LBMKernel::checkFunction(mu::Parser fct) { - real x1 = 1.0, x2 = 1.0, x3 = 1.0, dt = 1.0, nue = 1.0, rho = 1.0; + using namespace vf::lbm::constant; + + real x1 = c1o1, x2 = c1o1, x3 = c1o1, dt = c1o1, nue = c1o1, rho = c1o1; fct.DefineVar("x1", &x1); fct.DefineVar("x2", &x2); fct.DefineVar("x3", &x3); diff --git a/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp b/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp index 081e9fe8e..dbfd47b72 100644 --- a/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp @@ -53,9 +53,9 @@ void LBMKernelETD3Q27BGK::calculate(int /*step*/) muForcingX1.DefineVar("x1",&muX1); muForcingX1.DefineVar("x2",&muX2); muForcingX1.DefineVar("x3",&muX3); muForcingX2.DefineVar("x1",&muX1); muForcingX2.DefineVar("x2",&muX2); muForcingX2.DefineVar("x3",&muX3); muForcingX3.DefineVar("x1",&muX1); muForcingX3.DefineVar("x2",&muX2); muForcingX3.DefineVar("x3",&muX3); - forcingX1 = 0; - forcingX2 = 0; - forcingX3 = 0; + forcingX1 = c0o1; + forcingX2 = c0o1; + forcingX3 = c0o1; } ///////////////////////////////////// @@ -140,35 +140,35 @@ void LBMKernelETD3Q27BGK::calculate(int /*step*/) + f[DIR_0MP] + f[DIR_PPP] + f[DIR_MMP] + f[DIR_PMP] + f[DIR_MPP] - f[DIR_PPM] - f[DIR_MMM] - f[DIR_PMM] - f[DIR_MPM]; - real cu_sq=1.5*(vx1*vx1+vx2*vx2+vx3*vx3); + real cu_sq= c3o2*(vx1*vx1+vx2*vx2+vx3*vx3); feq[DIR_000] = c8o27*(drho-cu_sq); - feq[DIR_P00] = c2o27*(drho+3.0*( vx1 )+c9o2*( vx1 )*( vx1 )-cu_sq); - feq[DIR_M00] = c2o27*(drho+3.0*(-vx1 )+c9o2*(-vx1 )*(-vx1 )-cu_sq); - feq[DIR_0P0] = c2o27*(drho+3.0*( vx2)+c9o2*( vx2)*( vx2)-cu_sq); - feq[DIR_0M0] = c2o27*(drho+3.0*( -vx2)+c9o2*( -vx2)*( -vx2)-cu_sq); - feq[DIR_00P] = c2o27*(drho+3.0*( vx3 )+c9o2*( vx3)*( vx3)-cu_sq); - feq[DIR_00M] = c2o27*(drho+3.0*( -vx3)+c9o2*( -vx3)*( -vx3)-cu_sq); - feq[DIR_PP0] = c1o54*(drho+3.0*( vx1+vx2)+c9o2*( vx1+vx2)*( vx1+vx2)-cu_sq); - feq[DIR_MM0] = c1o54*(drho+3.0*(-vx1-vx2)+c9o2*(-vx1-vx2)*(-vx1-vx2)-cu_sq); - feq[DIR_PM0] = c1o54*(drho+3.0*( vx1-vx2)+c9o2*( vx1-vx2)*( vx1-vx2)-cu_sq); - feq[DIR_MP0] = c1o54*(drho+3.0*(-vx1+vx2)+c9o2*(-vx1+vx2)*(-vx1+vx2)-cu_sq); - feq[DIR_P0P] = c1o54*(drho+3.0*( vx1+vx3)+c9o2*( vx1+vx3)*( vx1+vx3)-cu_sq); - feq[DIR_M0M] = c1o54*(drho+3.0*(-vx1-vx3)+c9o2*(-vx1-vx3)*(-vx1-vx3)-cu_sq); - feq[DIR_P0M] = c1o54*(drho+3.0*( vx1-vx3)+c9o2*( vx1-vx3)*( vx1-vx3)-cu_sq); - feq[DIR_M0P] = c1o54*(drho+3.0*(-vx1+vx3)+c9o2*(-vx1+vx3)*(-vx1+vx3)-cu_sq); - feq[DIR_0PP] = c1o54*(drho+3.0*( vx2+vx3)+c9o2*( vx2+vx3)*( vx2+vx3)-cu_sq); - feq[DIR_0MM] = c1o54*(drho+3.0*(-vx2-vx3)+c9o2*(-vx2-vx3)*(-vx2-vx3)-cu_sq); - feq[DIR_0PM] = c1o54*(drho+3.0*( vx2-vx3)+c9o2*( vx2-vx3)*( vx2-vx3)-cu_sq); - feq[DIR_0MP] = c1o54*(drho+3.0*(-vx2+vx3)+c9o2*(-vx2+vx3)*(-vx2+vx3)-cu_sq); - feq[DIR_PPP]= c1o216*(drho+3.0*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); - feq[DIR_MMM]= c1o216*(drho+3.0*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); - feq[DIR_PPM]= c1o216*(drho+3.0*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); - feq[DIR_MMP]= c1o216*(drho+3.0*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); - feq[DIR_PMP]= c1o216*(drho+3.0*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); - feq[DIR_MPM]= c1o216*(drho+3.0*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); - feq[DIR_PMM]= c1o216*(drho+3.0*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); - feq[DIR_MPP]= c1o216*(drho+3.0*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); + feq[DIR_P00] = c2o27*(drho+c3o1*( vx1 )+c9o2*( vx1 )*( vx1 )-cu_sq); + feq[DIR_M00] = c2o27*(drho+c3o1*(-vx1 )+c9o2*(-vx1 )*(-vx1 )-cu_sq); + feq[DIR_0P0] = c2o27*(drho+c3o1*( vx2)+c9o2*( vx2)*( vx2)-cu_sq); + feq[DIR_0M0] = c2o27*(drho+c3o1*( -vx2)+c9o2*( -vx2)*( -vx2)-cu_sq); + feq[DIR_00P] = c2o27*(drho+c3o1*( vx3 )+c9o2*( vx3)*( vx3)-cu_sq); + feq[DIR_00M] = c2o27*(drho+c3o1*( -vx3)+c9o2*( -vx3)*( -vx3)-cu_sq); + feq[DIR_PP0] = c1o54*(drho+c3o1*( vx1+vx2)+c9o2*( vx1+vx2)*( vx1+vx2)-cu_sq); + feq[DIR_MM0] = c1o54*(drho+c3o1*(-vx1-vx2)+c9o2*(-vx1-vx2)*(-vx1-vx2)-cu_sq); + feq[DIR_PM0] = c1o54*(drho+c3o1*( vx1-vx2)+c9o2*( vx1-vx2)*( vx1-vx2)-cu_sq); + feq[DIR_MP0] = c1o54*(drho+c3o1*(-vx1+vx2)+c9o2*(-vx1+vx2)*(-vx1+vx2)-cu_sq); + feq[DIR_P0P] = c1o54*(drho+c3o1*( vx1+vx3)+c9o2*( vx1+vx3)*( vx1+vx3)-cu_sq); + feq[DIR_M0M] = c1o54*(drho+c3o1*(-vx1-vx3)+c9o2*(-vx1-vx3)*(-vx1-vx3)-cu_sq); + feq[DIR_P0M] = c1o54*(drho+c3o1*( vx1-vx3)+c9o2*( vx1-vx3)*( vx1-vx3)-cu_sq); + feq[DIR_M0P] = c1o54*(drho+c3o1*(-vx1+vx3)+c9o2*(-vx1+vx3)*(-vx1+vx3)-cu_sq); + feq[DIR_0PP] = c1o54*(drho+c3o1*( vx2+vx3)+c9o2*( vx2+vx3)*( vx2+vx3)-cu_sq); + feq[DIR_0MM] = c1o54*(drho+c3o1*(-vx2-vx3)+c9o2*(-vx2-vx3)*(-vx2-vx3)-cu_sq); + feq[DIR_0PM] = c1o54*(drho+c3o1*( vx2-vx3)+c9o2*( vx2-vx3)*( vx2-vx3)-cu_sq); + feq[DIR_0MP] = c1o54*(drho+c3o1*(-vx2+vx3)+c9o2*(-vx2+vx3)*(-vx2+vx3)-cu_sq); + feq[DIR_PPP]= c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); + feq[DIR_MMM]= c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); + feq[DIR_PPM]= c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); + feq[DIR_MMP]= c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); + feq[DIR_PMP]= c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); + feq[DIR_MPM]= c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); + feq[DIR_PMM]= c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); + feq[DIR_MPP]= c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); //Relaxation f[DIR_000] += (feq[DIR_000]-f[DIR_000])*collFactor; @@ -212,33 +212,33 @@ void LBMKernelETD3Q27BGK::calculate(int /*step*/) forcingX2 = muForcingX2.Eval(); forcingX3 = muForcingX3.Eval(); - f[DIR_000] += 0.0 ; - f[DIR_P00] += 3.0*c2o27 * (forcingX1) ; - f[DIR_M00] += 3.0*c2o27 * (-forcingX1) ; - f[DIR_0P0] += 3.0*c2o27 * (forcingX2) ; - f[DIR_0M0] += 3.0*c2o27 * (-forcingX2) ; - f[DIR_00P] += 3.0*c2o27 * (forcingX3) ; - f[DIR_00M] += 3.0*c2o27 * (-forcingX3); - f[DIR_PP0] += 3.0*c1o54 * ( forcingX1+forcingX2 ) ; - f[DIR_MM0 ] += 3.0*c1o54 * (-forcingX1-forcingX2 ) ; - f[DIR_PM0 ] += 3.0*c1o54 * ( forcingX1-forcingX2 ) ; - f[DIR_MP0 ] += 3.0*c1o54 * (-forcingX1+forcingX2 ) ; - f[DIR_P0P ] += 3.0*c1o54 * ( forcingX1 +forcingX3) ; - f[DIR_M0M ] += 3.0*c1o54 * (-forcingX1 -forcingX3) ; - f[DIR_P0M ] += 3.0*c1o54 * ( forcingX1 -forcingX3) ; - f[DIR_M0P ] += 3.0*c1o54 * (-forcingX1 +forcingX3) ; - f[DIR_0PP ] += 3.0*c1o54 * ( forcingX2+forcingX3) ; - f[DIR_0MM ] += 3.0*c1o54 * ( -forcingX2-forcingX3) ; - f[DIR_0PM ] += 3.0*c1o54 * ( forcingX2-forcingX3) ; - f[DIR_0MP ] += 3.0*c1o54 * ( -forcingX2+forcingX3) ; - f[DIR_PPP] += 3.0*c1o216* ( forcingX1+forcingX2+forcingX3) ; - f[DIR_MMM] += 3.0*c1o216* (-forcingX1-forcingX2-forcingX3) ; - f[DIR_PPM] += 3.0*c1o216* ( forcingX1+forcingX2-forcingX3) ; - f[DIR_MMP] += 3.0*c1o216* (-forcingX1-forcingX2+forcingX3) ; - f[DIR_PMP] += 3.0*c1o216* ( forcingX1-forcingX2+forcingX3) ; - f[DIR_MPM] += 3.0*c1o216* (-forcingX1+forcingX2-forcingX3) ; - f[DIR_PMM] += 3.0*c1o216* ( forcingX1-forcingX2-forcingX3) ; - f[DIR_MPP] += 3.0*c1o216* (-forcingX1+forcingX2+forcingX3) ; + f[DIR_000] += c0o1; + f[DIR_P00] += c3o1*c2o27 * (forcingX1) ; + f[DIR_M00] += c3o1*c2o27 * (-forcingX1) ; + f[DIR_0P0] += c3o1*c2o27 * (forcingX2) ; + f[DIR_0M0] += c3o1*c2o27 * (-forcingX2) ; + f[DIR_00P] += c3o1*c2o27 * (forcingX3) ; + f[DIR_00M] += c3o1*c2o27 * (-forcingX3); + f[DIR_PP0] += c3o1*c1o54 * ( forcingX1+forcingX2 ) ; + f[DIR_MM0 ] += c3o1*c1o54 * (-forcingX1-forcingX2 ) ; + f[DIR_PM0 ] += c3o1*c1o54 * ( forcingX1-forcingX2 ) ; + f[DIR_MP0 ] += c3o1*c1o54 * (-forcingX1+forcingX2 ) ; + f[DIR_P0P ] += c3o1*c1o54 * ( forcingX1 +forcingX3) ; + f[DIR_M0M ] += c3o1*c1o54 * (-forcingX1 -forcingX3) ; + f[DIR_P0M ] += c3o1*c1o54 * ( forcingX1 -forcingX3) ; + f[DIR_M0P ] += c3o1*c1o54 * (-forcingX1 +forcingX3) ; + f[DIR_0PP ] += c3o1*c1o54 * ( forcingX2+forcingX3) ; + f[DIR_0MM ] += c3o1*c1o54 * ( -forcingX2-forcingX3) ; + f[DIR_0PM ] += c3o1*c1o54 * ( forcingX2-forcingX3) ; + f[DIR_0MP ] += c3o1*c1o54 * ( -forcingX2+forcingX3) ; + f[DIR_PPP] += c3o1*c1o216* ( forcingX1+forcingX2+forcingX3) ; + f[DIR_MMM] += c3o1*c1o216* (-forcingX1-forcingX2-forcingX3) ; + f[DIR_PPM] += c3o1*c1o216* ( forcingX1+forcingX2-forcingX3) ; + f[DIR_MMP] += c3o1*c1o216* (-forcingX1-forcingX2+forcingX3) ; + f[DIR_PMP] += c3o1*c1o216* ( forcingX1-forcingX2+forcingX3) ; + f[DIR_MPM] += c3o1*c1o216* (-forcingX1+forcingX2-forcingX3) ; + f[DIR_PMM] += c3o1*c1o216* ( forcingX1-forcingX2-forcingX3) ; + f[DIR_MPP] += c3o1*c1o216* (-forcingX1+forcingX2+forcingX3) ; } ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS @@ -299,5 +299,5 @@ void LBMKernelETD3Q27BGK::calculate(int /*step*/) ////////////////////////////////////////////////////////////////////////// real LBMKernelETD3Q27BGK::getCalculationTime() { - return 0.0; + return c0o1; } diff --git a/src/cpu/VirtualFluidsCore/LBM/VoidLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/VoidLBMKernel.cpp index 83d6a791e..2ca07d25f 100644 --- a/src/cpu/VirtualFluidsCore/LBM/VoidLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/VoidLBMKernel.cpp @@ -2,6 +2,7 @@ #include "BCProcessor.h" #include "DataSet3D.h" #include "VoidData3D.h" +#include "D3Q27System.h" VoidLBMKernel::VoidLBMKernel() = default; ////////////////////////////////////////////////////////////////////////// @@ -31,4 +32,4 @@ SPtr<LBMKernel> VoidLBMKernel::clone() ////////////////////////////////////////////////////////////////////////// void VoidLBMKernel::calculate(int step) {} ////////////////////////////////////////////////////////////////////////// -real VoidLBMKernel::getCalculationTime() { return 0.0; } +real VoidLBMKernel::getCalculationTime() { return vf::lbm::constant::c0o1; } -- GitLab