From a9346cd9cceab08cab63b84c23f56bda5a524dc0 Mon Sep 17 00:00:00 2001 From: alena <akaranchuk@list.ru> Date: Tue, 24 Jan 2023 06:11:49 +0100 Subject: [PATCH] Changing LBMReal to real --- apps/cpu/ConvectionOfVortex/cov.cpp | 32 +- apps/cpu/CouetteFlow/cflow.cpp | 52 +-- apps/cpu/FlowAroundCylinder/cylinder.cpp | 58 +-- apps/cpu/HerschelBulkleyModel/hbflow.cpp | 56 +-- apps/cpu/HerschelBulkleySphere/hbsphere.cpp | 62 +-- apps/cpu/JetBreakup/JetBreakup.cpp | 80 ++-- apps/cpu/LaminarTubeFlow/ltf.cpp | 44 +- apps/cpu/Multiphase/Multiphase.cpp | 70 +-- apps/cpu/MultiphaseDropletTest/droplet.cpp | 94 ++-- apps/cpu/PoiseuilleFlow/pf1.cpp | 32 +- apps/cpu/RisingBubble2D/RisingBubble2D.cpp | 86 ++-- apps/cpu/ViskomatXL/viskomat.cpp | 62 +-- apps/cpu/rheometer/rheometer.cpp | 42 +- apps/cpu/sphere/sphere.cpp | 46 +- .../BoundaryConditions/BCAlgorithm.cpp | 12 +- .../BoundaryConditions/BCAlgorithm.h | 30 +- .../EqDensityBCAlgorithm.cpp | 8 +- .../HighViscosityNoSlipBCAlgorithm.cpp | 10 +- .../MultiphaseNoSlipBCAlgorithm.cpp | 12 +- ...tiphaseNonReflectingOutflowBCAlgorithm.cpp | 14 +- .../MultiphaseSlipBCAlgorithm.cpp | 24 +- .../MultiphaseVelocityBCAdapter.cpp | 4 +- .../MultiphaseVelocityBCAdapter.h | 6 +- .../MultiphaseVelocityBCAlgorithm.cpp | 20 +- .../BoundaryConditions/NoSlipBCAlgorithm.cpp | 10 +- .../NonEqDensityBCAlgorithm.cpp | 8 +- .../NonReflectingOutflowBCAlgorithm.cpp | 6 +- .../RheologyBinghamModelNoSlipBCAlgorithm.h | 2 +- .../RheologyBinghamModelVelocityBCAlgorithm.h | 2 +- ...ogyHerschelBulkleyModelNoSlipBCAlgorithm.h | 2 +- .../RheologyNoSlipBCAlgorithm.cpp | 14 +- .../RheologyNoSlipBCAlgorithm.h | 4 +- ...eologyPowellEyringModelNoSlipBCAlgorithm.h | 2 +- .../RheologyVelocityBCAlgorithm.cpp | 16 +- .../RheologyVelocityBCAlgorithm.h | 4 +- .../SimpleSlipBCAlgorithm.cpp | 12 +- .../SimpleVelocityBCAlgorithm.cpp | 10 +- .../BoundaryConditions/SlipBCAlgorithm.cpp | 14 +- .../ThinWallNoSlipBCAlgorithm.cpp | 10 +- .../ThinWallNoSlipBCAlgorithm.h | 2 +- .../ThixotropyDensityBCAlgorithm.cpp | 18 +- .../ThixotropyDensityBCAlgorithm.h | 6 +- .../ThixotropyNoSlipBCAlgorithm.cpp | 18 +- ...xotropyNonReflectingOutflowBCAlgorithm.cpp | 10 +- .../ThixotropyVelocityBCAlgorithm.cpp | 18 +- .../ThixotropyVelocityBCAlgorithm.h | 6 +- ...ixotropyVelocityWithDensityBCAlgorithm.cpp | 14 +- ...ThixotropyVelocityWithDensityBCAlgorithm.h | 6 +- .../BoundaryConditions/VelocityBCAdapter.cpp | 6 +- .../VelocityBCAlgorithm.cpp | 12 +- .../VelocityWithDensityBCAlgorithm.cpp | 10 +- .../CoProcessors/AverageValuesCoProcessor.cpp | 30 +- .../CoProcessors/AverageValuesCoProcessor.h | 2 +- .../CalculateTorqueCoProcessor.cpp | 2 +- .../DecreaseViscosityCoProcessor.cpp | 2 +- .../InSituCatalystCoProcessor.cpp | 8 +- .../CoProcessors/InSituCatalystCoProcessor.h | 4 +- .../CoProcessors/InSituVTKCoProcessor.cpp | 8 +- .../CoProcessors/IntegrateValuesHelper.cpp | 16 +- .../CoProcessors/IntegrateValuesHelper.h | 4 +- .../LineTimeSeriesCoProcessor.cpp | 4 +- .../CoProcessors/LineTimeSeriesCoProcessor.h | 2 +- .../MPIIOMigrationBECoProcessor.cpp | 86 ++-- .../MPIIOMigrationCoProcessor.cpp | 80 ++-- .../CoProcessors/MPIIORestartCoProcessor.cpp | 80 ++-- .../MicrophoneArrayCoProcessor.cpp | 4 +- .../CoProcessors/MicrophoneArrayCoProcessor.h | 2 +- .../PressureCoefficientCoProcessor.cpp | 4 +- .../PressureCoefficientCoProcessor.h | 2 +- .../PressureDifferenceCoProcessor.cpp | 4 +- .../PressureDifferenceCoProcessor.h | 8 +- .../CoProcessors/QCriterionCoProcessor.cpp | 60 +-- .../CoProcessors/QCriterionCoProcessor.h | 4 +- .../CoProcessors/ShearStressCoProcessor.cpp | 16 +- .../TimeAveragedValuesCoProcessor.cpp | 10 +- .../TimeAveragedValuesCoProcessor.h | 2 +- .../TurbulenceIntensityCoProcessor.cpp | 6 +- .../WriteMQFromSelectionCoProcessor.cpp | 4 +- .../WriteMQFromSelectionCoProcessor.h | 2 +- .../WriteMacroscopicQuantitiesCoProcessor.cpp | 4 +- .../WriteMacroscopicQuantitiesCoProcessor.h | 2 +- ...croscopicQuantitiesPlusMassCoProcessor.cpp | 4 +- ...MacroscopicQuantitiesPlusMassCoProcessor.h | 2 +- .../WriteMultiphaseQuantitiesCoProcessor.cpp | 54 +-- .../WriteMultiphaseQuantitiesCoProcessor.h | 10 +- .../WriteThixotropyQuantitiesCoProcessor.cpp | 12 +- .../Connectors/CoarseToFineVectorConnector.h | 32 +- .../Connectors/FineToCoarseVectorConnector.h | 16 +- .../FineToCoarseVectorConnectorTest.cpp | 2 +- .../OneDistributionFullDirectConnector.h | 12 +- .../OneDistributionFullVectorConnector.h | 6 +- ...tionsDoubleGhostLayerFullDirectConnector.h | 36 +- ...tionsDoubleGhostLayerFullVectorConnector.h | 18 +- .../ThreeDistributionsFullDirectConnector.h | 36 +- .../ThreeDistributionsFullVectorConnector.h | 18 +- .../Connectors/TransmitterType.h | 4 +- ...tionsDoubleGhostLayerFullDirectConnector.h | 24 +- ...tionsDoubleGhostLayerFullVectorConnector.h | 12 +- .../TwoDistributionsFullDirectConnector.h | 24 +- .../TwoDistributionsFullVectorConnector.h | 12 +- .../Data/D3Q27EsoTwist3DSoA.cpp | 126 ++--- .../Data/D3Q27EsoTwist3DSoA.h | 78 ++-- .../Data/D3Q27EsoTwist3DSplittedVector.cpp | 40 +- .../Data/D3Q27EsoTwist3DSplittedVector.h | 40 +- .../Data/D3Q27EsoTwist3DSplittedVectorEx.cpp | 12 +- .../Data/D3Q27EsoTwist3DSplittedVectorEx.h | 2 +- src/cpu/VirtualFluidsCore/Data/DataSet3D.h | 10 +- .../Data/DistributionArray3D.h | 20 +- src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h | 22 +- src/cpu/VirtualFluidsCore/Data/VoidData3D.h | 22 +- .../VirtualFluidsCore/LBM/BGKLBMKernel.cpp | 12 +- src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.h | 12 +- ...ibleCumulant4thOrderViscosityLBMKernel.cpp | 166 +++---- ...ssibleCumulant4thOrderViscosityLBMKernel.h | 20 +- .../LBM/CompressibleCumulantLBMKernel.cpp | 142 +++--- .../LBM/CompressibleCumulantLBMKernel.h | 18 +- ...mpressibleOffsetInterpolationProcessor.cpp | 104 ++--- ...CompressibleOffsetInterpolationProcessor.h | 70 +-- ...bleOffsetMomentsInterpolationProcessor.cpp | 286 ++++++------ ...sibleOffsetMomentsInterpolationProcessor.h | 82 ++-- ...etSquarePressureInterpolationProcessor.cpp | 288 ++++++------ ...fsetSquarePressureInterpolationProcessor.h | 76 +-- .../LBM/CumulantK17LBMKernel.cpp | 158 +++---- .../LBM/CumulantK17LBMKernel.h | 48 +- .../LBM/CumulantK17LBMKernelUnified.cpp | 66 +-- .../LBM/CumulantK17LBMKernelUnified.h | 14 +- .../LBM/CumulantLBMKernel.cpp | 140 +++--- .../VirtualFluidsCore/LBM/CumulantLBMKernel.h | 20 +- src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp | 8 +- src/cpu/VirtualFluidsCore/LBM/D3Q27System.h | 208 ++++----- src/cpu/VirtualFluidsCore/LBM/ICell.h | 16 +- src/cpu/VirtualFluidsCore/LBM/ILBMKernel.h | 2 +- .../LBM/IncompressibleCumulantLBMKernel.cpp | 146 +++--- .../LBM/IncompressibleCumulantLBMKernel.h | 16 +- ...ssibleCumulantWithSpongeLayerLBMKernel.cpp | 150 +++--- ...ressibleCumulantWithSpongeLayerLBMKernel.h | 2 +- ...mpressibleOffsetInterpolationProcessor.cpp | 104 ++--- ...compressibleOffsetInterpolationProcessor.h | 72 +-- .../LBM/InitDensityLBMKernel.cpp | 14 +- .../LBM/InitDensityLBMKernel.h | 12 +- .../LBM/InterpolationHelper.cpp | 14 +- .../LBM/InterpolationHelper.h | 14 +- .../LBM/InterpolationProcessor.cpp | 6 +- .../LBM/InterpolationProcessor.h | 46 +- src/cpu/VirtualFluidsCore/LBM/LBMKernel.cpp | 14 +- src/cpu/VirtualFluidsCore/LBM/LBMKernel.h | 42 +- .../LBM/LBMKernelETD3Q27BGK.cpp | 12 +- .../LBM/LBMKernelETD3Q27BGK.h | 12 +- .../LBM/MultiphaseCumulantLBMKernel.cpp | 272 +++++------ .../LBM/MultiphaseCumulantLBMKernel.h | 40 +- ...PressureFilterCompressibleAirLBMKernel.cpp | 350 +++++++------- ...sePressureFilterCompressibleAirLBMKernel.h | 80 ++-- .../LBM/MultiphasePressureFilterLBMKernel.cpp | 384 ++++++++-------- .../LBM/MultiphasePressureFilterLBMKernel.h | 52 +-- .../MultiphaseScratchCumulantLBMKernel.cpp | 360 +++++++-------- .../LBM/MultiphaseScratchCumulantLBMKernel.h | 48 +- ...eVelocityBaseExternalPressureLBMKernel.cpp | 432 +++++++++--------- ...pleVelocityBaseExternalPressureLBMKernel.h | 98 ++-- ...tiphaseTwoPhaseFieldsCumulantLBMKernel.cpp | 404 ++++++++-------- ...ultiphaseTwoPhaseFieldsCumulantLBMKernel.h | 68 +-- ...eTwoPhaseFieldsPressureFilterLBMKernel.cpp | 388 ++++++++-------- ...aseTwoPhaseFieldsPressureFilterLBMKernel.h | 80 ++-- ...woPhaseFieldsVelocityCumulantLBMKernel.cpp | 386 ++++++++-------- ...eTwoPhaseFieldsVelocityCumulantLBMKernel.h | 72 +-- src/cpu/VirtualFluidsCore/LBM/Rheology.cpp | 42 +- src/cpu/VirtualFluidsCore/LBM/Rheology.h | 114 ++--- .../LBM/RheologyBinghamModelLBMKernel.h | 2 +- .../RheologyHerschelBulkleyModelLBMKernel.h | 2 +- .../LBM/RheologyInterpolationProcessor.cpp | 142 +++--- .../LBM/RheologyInterpolationProcessor.h | 80 ++-- .../LBM/RheologyK17LBMKernel.cpp | 168 +++---- .../LBM/RheologyK17LBMKernel.h | 24 +- .../LBM/RheologyModelLBMKernel.cpp | 152 +++--- .../LBM/RheologyModelLBMKernel.h | 18 +- .../LBM/RheologyModelLBMKernel2.cpp | 150 +++--- .../LBM/RheologyModelLBMKernel2.h | 18 +- .../LBM/RheologyPowellEyringModelLBMKernel.h | 2 +- .../LBM/ThixotropyExpLBMKernel.cpp | 206 ++++----- .../LBM/ThixotropyExpLBMKernel.h | 30 +- .../LBM/ThixotropyLBMKernel.cpp | 212 ++++----- .../LBM/ThixotropyLBMKernel.h | 30 +- .../Visitors/CreateTransmittersHelper.cpp | 38 +- .../Visitors/CreateTransmittersHelper.h | 2 +- .../InitDistributionsBlockVisitor.cpp | 112 ++--- .../Visitors/InitDistributionsBlockVisitor.h | 10 +- .../InitDistributionsFromFileBlockVisitor.cpp | 12 +- .../InitDistributionsFromFileBlockVisitor.h | 6 +- ...tributionsWithInterpolationGridVisitor.cpp | 66 +-- ...istributionsWithInterpolationGridVisitor.h | 4 +- .../Visitors/InitThixotropyBlockVisitor.cpp | 8 +- .../Visitors/InitThixotropyBlockVisitor.h | 6 +- ...ltiphaseBoundaryConditionsBlockVisitor.cpp | 12 +- ...ultiphaseInitDistributionsBlockVisitor.cpp | 44 +- .../MultiphaseInitDistributionsBlockVisitor.h | 20 +- .../MultiphaseSetKernelBlockVisitor.cpp | 6 +- .../MultiphaseSetKernelBlockVisitor.h | 6 +- ...ocityFormInitDistributionsBlockVisitor.cpp | 36 +- ...elocityFormInitDistributionsBlockVisitor.h | 18 +- .../Visitors/RefineAroundGbObjectHelper.cpp | 2 +- .../Visitors/RefineAroundGbObjectHelper.h | 5 +- .../Visitors/RefineInterGbObjectsVisitor.cpp | 13 +- .../Visitors/SetForcingBlockVisitor.cpp | 2 +- .../Visitors/SetForcingBlockVisitor.h | 8 +- ...SetInterpolationConnectorsBlockVisitor.cpp | 20 +- .../SetInterpolationConnectorsBlockVisitor.h | 4 +- .../Visitors/SetKernelBlockVisitor.cpp | 12 +- .../Visitors/SetKernelBlockVisitor.h | 6 +- .../Visitors/SpongeLayerBlockVisitor.cpp | 36 +- .../Visitors/SpongeLayerBlockVisitor.h | 4 +- .../Visitors/ViscosityBlockVisitor.cpp | 4 +- .../Visitors/ViscosityBlockVisitor.h | 4 +- src/lbm/constants/D3Q27.h | 2 +- 212 files changed, 5217 insertions(+), 5215 deletions(-) diff --git a/apps/cpu/ConvectionOfVortex/cov.cpp b/apps/cpu/ConvectionOfVortex/cov.cpp index 99ed2483d..45b948939 100644 --- a/apps/cpu/ConvectionOfVortex/cov.cpp +++ b/apps/cpu/ConvectionOfVortex/cov.cpp @@ -16,7 +16,7 @@ void run() int myid = comm->getProcessID(); int numOfThreads = 4; - double availMem = 5e9; + real availMem = 5e9; @@ -26,11 +26,11 @@ void run() string pathname = "d:/temp/ConvectionOfVortex_0.003_4th"; int endTime = 10000; - double outTime = 10; - LBMReal dx = 0.003; - LBMReal rhoLB = 0.0; - LBMReal nuLB = 8.66025e-6; - double yFactor = 1.0; + real outTime = 10; + real dx = 0.003; + real rhoLB = 0.0; + real nuLB = 8.66025e-6; + real yFactor = 1.0; //string pathname = "d:/temp/ConvectionOfVortex_0.003_square"; //int endTime = 20; @@ -81,13 +81,13 @@ void run() int refineLevel = 1; //bounding box - double g_minX1 = -0.045; - double g_minX2 = -0.015/yFactor; - double g_minX3 = -0.06; + real g_minX1 = -0.045; + real g_minX2 = -0.015/yFactor; + real g_minX3 = -0.06; - double g_maxX1 = 0.045; - double g_maxX2 = 0.015/yFactor; - double g_maxX3 = 0.06; + real g_maxX1 = 0.045; + real g_maxX2 = 0.015/yFactor; + real g_maxX3 = 0.06; vector<int> blocknx(3); blocknx[0] = 10; @@ -99,7 +99,7 @@ void run() if (myid == 0) GbSystem3D::writeGeoObject(gridCube.get(), pathname + "/geo/gridCube", WbWriterVtkXmlBinary::getInstance()); - double blockLength = blocknx[0] * dx; + real blockLength = blocknx[0] * dx; SPtr<Grid3D> grid(new Grid3D(comm)); grid->setDeltaX(dx); @@ -185,8 +185,8 @@ void run() unsigned long long numberOfNodesPerBlock = (unsigned long long)(blocknx[0])* (unsigned long long)(blocknx[1])* (unsigned long long)(blocknx[2]); unsigned long long numberOfNodes = numberOfBlocks * numberOfNodesPerBlock; unsigned long long numberOfNodesPerBlockWithGhostLayer = numberOfBlocks * (blocknx[0] + ghostLayer) * (blocknx[1] + ghostLayer) * (blocknx[2] + ghostLayer); - double needMemAll = double(numberOfNodesPerBlockWithGhostLayer*(27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); - double needMem = needMemAll / double(comm->getNumberOfProcesses()); + real needMemAll = real(numberOfNodesPerBlockWithGhostLayer*(27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); + real needMem = needMemAll / real(comm->getNumberOfProcesses()); if (myid == 0) { @@ -226,7 +226,7 @@ void run() intHelper.setBC(); - double Ma = 0.005; + real Ma = 0.005; mu::Parser initRho, initVx1, initVx2; initRho.SetExpr("rhoLB + (-(rho0*epsilon^2)/2) * exp(1-(scaleFactor*(x1^2+x3^2))/R^2) + (1/(2*gamma*rho0)) * ((-(rho0*epsilon^2)/2) * exp(1-(scaleFactor*(x1^2+x3^2))/R^2))^2"); diff --git a/apps/cpu/CouetteFlow/cflow.cpp b/apps/cpu/CouetteFlow/cflow.cpp index e263de08b..a60031096 100644 --- a/apps/cpu/CouetteFlow/cflow.cpp +++ b/apps/cpu/CouetteFlow/cflow.cpp @@ -18,24 +18,24 @@ void bflow(string configname) string pathname = config.getValue<string>("pathname"); int numOfThreads = config.getValue<int>("numOfThreads"); vector<int> blocknx = config.getVector<int>("blocknx"); - vector<double> boundingBox = config.getVector<double>("boundingBox"); + vector<real> boundingBox = config.getVector<real>("boundingBox"); //double nuLB = config.getValue<double>("nuLB"); - double endTime = config.getValue<double>("endTime"); - double outTime = config.getValue<double>("outTime"); - double availMem = config.getValue<double>("availMem"); + real endTime = config.getValue<real>("endTime"); + real outTime = config.getValue<real>("outTime"); + real availMem = config.getValue<real>("availMem"); //int refineLevel = config.getValue<int>("refineLevel"); bool logToFile = config.getValue<bool>("logToFile"); //double restartStep = config.getValue<double>("restartStep"); - double deltax = config.getValue<double>("deltax"); + real deltax = config.getValue<real>("deltax"); //double cpStep = config.getValue<double>("cpStep"); //double cpStepStart = config.getValue<double>("cpStepStart"); //bool newStart = config.getValue<bool>("newStart"); - double forcing = config.getValue<double>("forcing"); + real forcing = config.getValue<real>("forcing"); //double n = config.getValue<double>("n"); //double k = config.getValue<double>("k"); //double tau0 = config.getValue<double>("tau0"); - double velocity = config.getValue<double>("velocity"); - double n = config.getValue<double>("n"); + real velocity = config.getValue<real>("velocity"); + real n = config.getValue<real>("n"); // double Re = config.getValue<double>("Re"); // double Bn = config.getValue<double>("Bn"); @@ -60,7 +60,7 @@ void bflow(string configname) } } - LBMReal rhoLB = 0.0; + real rhoLB = 0.0; SPtr<LBMUnitConverter> conv = SPtr<LBMUnitConverter>(new LBMUnitConverter()); @@ -73,15 +73,15 @@ void bflow(string configname) //double g_maxX2 = boundingBox[1]; //double g_maxX3 = boundingBox[2]; - double g_minX1 = 0.0; - double g_minX2 = -boundingBox[1]/2.0; - double g_minX3 = -boundingBox[2]/2.0; + real g_minX1 = 0.0; + real g_minX2 = -boundingBox[1]/2.0; + real g_minX3 = -boundingBox[2]/2.0; - double g_maxX1 = boundingBox[0]; - double g_maxX2 = boundingBox[1]/2.0; - double g_maxX3 = boundingBox[2]/2.0; + real g_maxX1 = boundingBox[0]; + real g_maxX2 = boundingBox[1]/2.0; + real g_maxX3 = boundingBox[2]/2.0; - double blockLength = 3.0 * deltax; + real blockLength = 3.0 * deltax; // double h = (g_maxX2) / 2.0; // double dex = g_maxX1; @@ -91,16 +91,16 @@ void bflow(string configname) //LBMReal n = 0.4; - double d = boundingBox[1]; - double U = velocity; - double Gamma = U / d; + real d = boundingBox[1]; + real U = velocity; + real Gamma = U / d; - double k = 0.05; // (U * d) / (Re * std::pow(Gamma, n - 1)); - double tau0 = 1e-6;// Bn* k* std::pow(Gamma, n); + real k = 0.05; // (U * d) / (Re * std::pow(Gamma, n - 1)); + real tau0 = 1e-6;// Bn* k* std::pow(Gamma, n); - double beta = 14; - double c = 10; // 1.0 / 6.0; - double mu0 = 1e-4; + real beta = 14; + real c = 10; // 1.0 / 6.0; + real mu0 = 1e-4; SPtr<Rheology> thix = Rheology::getInstance(); //Herschel-Bulkley @@ -207,8 +207,8 @@ void bflow(string configname) unsigned long nodb = (blocknx[0]) * (blocknx[1]) * (blocknx[2]); unsigned long nod = nob * (blocknx[0]) * (blocknx[1]) * (blocknx[2]); unsigned long nodg = nob * (blocknx[0] + gl) * (blocknx[1] + gl) * (blocknx[1] + gl); - double needMemAll = double(nodg * (27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); - double needMem = needMemAll / double(comm->getNumberOfProcesses()); + real needMemAll = real(nodg * (27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); + real needMem = needMemAll / real(comm->getNumberOfProcesses()); if (myid == 0) { diff --git a/apps/cpu/FlowAroundCylinder/cylinder.cpp b/apps/cpu/FlowAroundCylinder/cylinder.cpp index 5b65fb7eb..d66222495 100644 --- a/apps/cpu/FlowAroundCylinder/cylinder.cpp +++ b/apps/cpu/FlowAroundCylinder/cylinder.cpp @@ -20,20 +20,20 @@ void run(string configname) config.load(configname); string pathOut = config.getValue<string>("pathOut"); - double uLB = config.getValue<double>("uLB"); - double restartStep = config.getValue<double>("restartStep"); - double cpStart = config.getValue<double>("cpStart"); - double cpStep = config.getValue<double>("cpStep"); - double endTime = config.getValue<double>("endTime"); - double outTime = config.getValue<double>("outTime"); - double availMem = config.getValue<double>("availMem"); + real uLB = config.getValue<real>("uLB"); + real restartStep = config.getValue<real>("restartStep"); + real cpStart = config.getValue<real>("cpStart"); + real cpStep = config.getValue<real>("cpStep"); + real endTime = config.getValue<real>("endTime"); + real outTime = config.getValue<real>("outTime"); + real availMem = config.getValue<real>("availMem"); int refineLevel = config.getValue<int>("refineLevel"); bool logToFile = config.getValue<bool>("logToFile"); - vector<double> nupsStep = config.getVector<double>("nupsStep"); + vector<real> nupsStep = config.getVector<real>("nupsStep"); bool newStart = config.getValue<bool>("newStart"); int numOfThreads = config.getValue<int>("numOfThreads"); vector<int> blockNx = config.getVector<int>("blockNx"); - double dx = config.getValue<double>("dx"); + real dx = config.getValue<real>("dx"); SPtr<vf::mpi::Communicator> comm = vf::mpi::MPICommunicator::getInstance(); int myid = comm->getProcessID(); @@ -60,18 +60,18 @@ void run(string configname) - double L1 = 2.5; - double L2, L3, H; + real L1 = 2.5; + real L2, L3, H; L2 = L3 = H = 0.41; - LBMReal Re = 20.0; - LBMReal radius = 0.05; - LBMReal rhoReal = 1.0; //kg/m^3 - LBMReal uReal = 0.45;//m/s - LBMReal nueReal = (uReal*radius*2.0)/Re; + real Re = 20.0; + real radius = 0.05; + real rhoReal = 1.0; //kg/m^3 + real uReal = 0.45;//m/s + real nueReal = (uReal*radius*2.0)/Re; - LBMReal rhoLB = 0.0; - LBMReal nueLB = (((4.0/9.0)*uLB)*2.0*(radius/dx))/Re; + real rhoLB = 0.0; + real nueLB = (((4.0/9.0)*uLB)*2.0*(radius/dx))/Re; SPtr<LBMUnitConverter> conv = SPtr<LBMUnitConverter>(new LBMUnitConverter()); @@ -137,13 +137,13 @@ void run(string configname) GbSystem3D::writeGeoObject(refCylinder.get(), pathOut+"/geo/refCylinder", WbWriterVtkXmlBinary::getInstance()); //bounding box - double g_minX1 = 0.0; - double g_minX2 = 0.0; - double g_minX3 = 0.0; + real g_minX1 = 0.0; + real g_minX2 = 0.0; + real g_minX3 = 0.0; - double g_maxX1 = L1; - double g_maxX2 = L2; - double g_maxX3 = L3; + real g_maxX1 = L1; + real g_maxX2 = L2; + real g_maxX3 = L3; SPtr<GbObject3D> gridCube(new GbCuboid3D(g_minX1, g_minX2, g_minX3, g_maxX1, g_maxX2, g_maxX3)); if (myid==0) GbSystem3D::writeGeoObject(gridCube.get(), pathOut+"/geo/gridCube", WbWriterVtkXmlBinary::getInstance()); @@ -152,7 +152,7 @@ void run(string configname) const int blocknx2 = blockNx[1]; const int blocknx3 = blockNx[2]; - double blockLength = blocknx1*dx; + real blockLength = blocknx1*dx; grid->setDeltaX(dx); grid->setBlockNX(blocknx1, blocknx2, blocknx3); @@ -225,8 +225,8 @@ void run(string configname) unsigned long long numberOfNodesPerBlock = (unsigned long long)(blockNx[0])* (unsigned long long)(blockNx[1])* (unsigned long long)(blockNx[2]); unsigned long long numberOfNodes = numberOfBlocks * numberOfNodesPerBlock; unsigned long long numberOfNodesPerBlockWithGhostLayer = numberOfBlocks * (blockNx[0]+ghostLayer) * (blockNx[1]+ghostLayer) * (blockNx[2]+ghostLayer); - double needMemAll = double(numberOfNodesPerBlockWithGhostLayer*(27*sizeof(double)+sizeof(int)+sizeof(float)*4)); - double needMem = needMemAll/double(comm->getNumberOfProcesses()); + real needMemAll = real(numberOfNodesPerBlockWithGhostLayer*(27*sizeof(real)+sizeof(int)+sizeof(float)*4)); + real needMem = needMemAll/real(comm->getNumberOfProcesses()); if (myid==0) { @@ -304,8 +304,8 @@ void run(string configname) SPtr<CoProcessor> writeMQCoProcessor(new WriteMacroscopicQuantitiesCoProcessor(grid, stepSch, pathOut, WbWriterVtkXmlBinary::getInstance(), conv, comm)); - double area = (2.0*radius*H)/(dx*dx); - double v = 4.0*uLB/9.0; + real area = (2.0*radius*H)/(dx*dx); + real v = 4.0*uLB/9.0; SPtr<UbScheduler> forceSch(new UbScheduler(100)); SPtr<CalculateForcesCoProcessor> fp = make_shared<CalculateForcesCoProcessor>(grid, forceSch, pathOut + "/results/forces.txt", comm, v, area); fp->addInteractor(cylinderInt); diff --git a/apps/cpu/HerschelBulkleyModel/hbflow.cpp b/apps/cpu/HerschelBulkleyModel/hbflow.cpp index f8d9a3b10..567fd661c 100644 --- a/apps/cpu/HerschelBulkleyModel/hbflow.cpp +++ b/apps/cpu/HerschelBulkleyModel/hbflow.cpp @@ -18,27 +18,27 @@ void bflow(string configname) string pathname = config.getValue<string>("pathname"); int numOfThreads = config.getValue<int>("numOfThreads"); vector<int> blocknx = config.getVector<int>("blocknx"); - vector<double> boundingBox = config.getVector<double>("boundingBox"); - double nuLB = config.getValue<double>("nuLB"); - double endTime = config.getValue<double>("endTime"); - double outTime = config.getValue<double>("outTime"); - double availMem = config.getValue<double>("availMem"); + vector<real> boundingBox = config.getVector<real>("boundingBox"); + real nuLB = config.getValue<real>("nuLB"); + real endTime = config.getValue<real>("endTime"); + real outTime = config.getValue<real>("outTime"); + real availMem = config.getValue<real>("availMem"); //int refineLevel = config.getValue<int>("refineLevel"); bool logToFile = config.getValue<bool>("logToFile"); //double restartStep = config.getValue<double>("restartStep"); - double deltax = config.getValue<double>("deltax"); + real deltax = config.getValue<real>("deltax"); //double cpStep = config.getValue<double>("cpStep"); //double cpStepStart = config.getValue<double>("cpStepStart"); //bool newStart = config.getValue<bool>("newStart"); - double forcing = config.getValue<double>("forcing"); + real forcing = config.getValue<real>("forcing"); //double n = config.getValue<double>("n"); //double k = config.getValue<double>("k"); - double tau0 = config.getValue<double>("tau0"); - double velocity = config.getValue<double>("velocity"); - double n = config.getValue<double>("n"); + real tau0 = config.getValue<real>("tau0"); + real velocity = config.getValue<real>("velocity"); + real n = config.getValue<real>("n"); // double Re = config.getValue<double>("Re"); // double Bn = config.getValue<double>("Bn"); - double scaleFactor = config.getValue<double>("scaleFactor"); + real scaleFactor = config.getValue<real>("scaleFactor"); SPtr<vf::mpi::Communicator> comm = vf::mpi::MPICommunicator::getInstance(); int myid = comm->getProcessID(); @@ -61,7 +61,7 @@ void bflow(string configname) } } - LBMReal rhoLB = 0.0; + real rhoLB = 0.0; SPtr<LBMUnitConverter> conv = SPtr<LBMUnitConverter>(new LBMUnitConverter()); @@ -74,17 +74,17 @@ void bflow(string configname) //double g_maxX2 = boundingBox[1]; //double g_maxX3 = boundingBox[2]+1.0; - double g_minX1 = 0.0; - double g_minX2 = -boundingBox[1]/2.0; - double g_minX3 = -boundingBox[2]/2.0; + real g_minX1 = 0.0; + real g_minX2 = -boundingBox[1]/2.0; + real g_minX3 = -boundingBox[2]/2.0; - double g_maxX1 = boundingBox[0]; - double g_maxX2 = boundingBox[1]/2.0; - double g_maxX3 = boundingBox[2]/2.0; + real g_maxX1 = boundingBox[0]; + real g_maxX2 = boundingBox[1]/2.0; + real g_maxX3 = boundingBox[2]/2.0; - double blockLength = 3.0 * deltax; + real blockLength = 3.0 * deltax; // double h = (g_maxX2) / 2.0; // double dex = g_maxX1; @@ -94,9 +94,9 @@ void bflow(string configname) //LBMReal n = 0.4; - double d = boundingBox[1]; - double U = velocity; - double Gamma = U / d; + real d = boundingBox[1]; + real U = velocity; + real Gamma = U / d; //double scaleFactor = 2.0; @@ -110,7 +110,7 @@ void bflow(string configname) // Acoustic Scaling - double k = nuLB * scaleFactor; + real k = nuLB * scaleFactor; //double tau0 = 3e-5; forcing /= scaleFactor; endTime *= scaleFactor; @@ -118,9 +118,9 @@ void bflow(string configname) //outTime = endTime; - double beta = 14; - double c = 10; // 1.0 / 6.0; - double mu0 = 1e-4; + real beta = 14; + real c = 10; // 1.0 / 6.0; + real mu0 = 1e-4; SPtr<Rheology> thix = Rheology::getInstance(); //Herschel-Bulkley @@ -242,8 +242,8 @@ void bflow(string configname) unsigned long nodb = (blocknx[0]) * (blocknx[1]) * (blocknx[2]); unsigned long nod = nob * (blocknx[0]) * (blocknx[1]) * (blocknx[2]); unsigned long nodg = nob * (blocknx[0] + gl) * (blocknx[1] + gl) * (blocknx[1] + gl); - double needMemAll = double(nodg * (27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); - double needMem = needMemAll / double(comm->getNumberOfProcesses()); + real needMemAll = real(nodg * (27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); + real needMem = needMemAll / real(comm->getNumberOfProcesses()); if (myid == 0) { diff --git a/apps/cpu/HerschelBulkleySphere/hbsphere.cpp b/apps/cpu/HerschelBulkleySphere/hbsphere.cpp index 19e16df5f..ae71a3a44 100644 --- a/apps/cpu/HerschelBulkleySphere/hbsphere.cpp +++ b/apps/cpu/HerschelBulkleySphere/hbsphere.cpp @@ -18,24 +18,24 @@ void bflow(string configname) string outputPath = config.getValue<string>("outputPath"); int numOfThreads = config.getValue<int>("numOfThreads"); vector<int> blocknx = config.getVector<int>("blocknx"); - vector<double> boundingBox = config.getVector<double>("boundingBox"); + vector<real> boundingBox = config.getVector<real>("boundingBox"); //double nuLB = config.getValue<double>("nuLB"); - double endTime = config.getValue<double>("endTime"); - double outTime = config.getValue<double>("outTime"); - double availMem = config.getValue<double>("availMem"); + real endTime = config.getValue<real>("endTime"); + real outTime = config.getValue<real>("outTime"); + real availMem = config.getValue<real>("availMem"); int refineLevel = config.getValue<int>("refineLevel"); bool logToFile = config.getValue<bool>("logToFile"); - double restartStep = config.getValue<double>("restartStep"); - double deltax = config.getValue<double>("deltax"); - double radius = config.getValue<double>("radius"); - double cpStep = config.getValue<double>("cpStep"); - double cpStart = config.getValue<double>("cpStart"); + real restartStep = config.getValue<real>("restartStep"); + real deltax = config.getValue<real>("deltax"); + real radius = config.getValue<real>("radius"); + real cpStep = config.getValue<real>("cpStep"); + real cpStart = config.getValue<real>("cpStart"); bool newStart = config.getValue<bool>("newStart"); - double velocity = config.getValue<double>("velocity"); - double n = config.getValue<double>("n"); - double Re = config.getValue<double>("Re"); - double Bn = config.getValue<double>("Bn"); - vector<double> sphereCenter = config.getVector<double>("sphereCenter"); + real velocity = config.getValue<real>("velocity"); + real n = config.getValue<real>("n"); + real Re = config.getValue<real>("Re"); + real Bn = config.getValue<real>("Bn"); + vector<real> sphereCenter = config.getVector<real>("sphereCenter"); SPtr<vf::mpi::Communicator> comm = vf::mpi::MPICommunicator::getInstance(); int myid = comm->getProcessID(); @@ -58,19 +58,19 @@ void bflow(string configname) } } - LBMReal rhoLB = 0.0; + real rhoLB = 0.0; SPtr<LBMUnitConverter> conv = SPtr<LBMUnitConverter>(new LBMUnitConverter()); //bounding box - double g_minX1 = 0; - double g_minX2 = 0; - double g_minX3 = 0; + real g_minX1 = 0; + real g_minX2 = 0; + real g_minX3 = 0; - double g_maxX1 = boundingBox[0]; - double g_maxX2 = boundingBox[1]; - double g_maxX3 = boundingBox[2]; + real g_maxX1 = boundingBox[0]; + real g_maxX2 = boundingBox[1]; + real g_maxX3 = boundingBox[2]; //double g_minX1 = -boundingBox[0]/2.0; //double g_minX2 = -boundingBox[1] / 2.0; @@ -80,21 +80,21 @@ void bflow(string configname) //double g_maxX2 = boundingBox[1]/2.0; //double g_maxX3 = boundingBox[2]/2.0; - double blockLength = 3.0 * deltax; + real blockLength = 3.0 * deltax; - double d = 2.0 * radius; - double U = velocity; - double Gamma = U / d; + real d = 2.0 * radius; + real U = velocity; + real Gamma = U / d; - double k = (U * d) / (Re * std::pow(Gamma, n - 1)); - double tau0 = Bn * k * std::pow(Gamma, n); + real k = (U * d) / (Re * std::pow(Gamma, n - 1)); + real tau0 = Bn * k * std::pow(Gamma, n); //double k = 0.05; // (U * d) / (Re * std::pow(Gamma, n - 1)); //double tau0 = 3e-6; //Bn * k * std::pow(Gamma, n); //double forcing = 8e-7; - double omegaMin = 1.0e-8; + real omegaMin = 1.0e-8; SPtr<Rheology> thix = Rheology::getInstance(); thix->setPowerIndex(n); @@ -269,8 +269,8 @@ void bflow(string configname) unsigned long nodb = (blocknx[0]) * (blocknx[1]) * (blocknx[2]); unsigned long nod = nob * (blocknx[0]) * (blocknx[1]) * (blocknx[2]); unsigned long nodg = nob * (blocknx[0] + gl) * (blocknx[1] + gl) * (blocknx[1] + gl); - double needMemAll = double(nodg * (27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); - double needMem = needMemAll / double(comm->getNumberOfProcesses()); + real needMemAll = real(nodg * (27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); + real needMem = needMemAll / real(comm->getNumberOfProcesses()); if (myid == 0) { @@ -343,7 +343,7 @@ void bflow(string configname) SPtr<WriteMacroscopicQuantitiesCoProcessor> writeMQCoProcessor(new WriteMacroscopicQuantitiesCoProcessor(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); //writeMQCoProcessor->process(0); - double area = UbMath::PI*radius*radius; + real area = UbMath::PI*radius*radius; SPtr<UbScheduler> forceSch(new UbScheduler(100)); SPtr<CalculateForcesCoProcessor> fp = make_shared<CalculateForcesCoProcessor>(grid, forceSch, outputPath + "/forces/forces.txt", comm, velocity, area); fp->addInteractor(sphereInt); diff --git a/apps/cpu/JetBreakup/JetBreakup.cpp b/apps/cpu/JetBreakup/JetBreakup.cpp index 243566a24..2115b515f 100644 --- a/apps/cpu/JetBreakup/JetBreakup.cpp +++ b/apps/cpu/JetBreakup/JetBreakup.cpp @@ -6,7 +6,7 @@ using namespace std; -void setInflowBC(double x1, double x2, double x3, double radius, int dir) +void setInflowBC(real x1, real x2, real x3, real radius, int dir) { } @@ -29,7 +29,7 @@ void run(string configname) vector<int> blocknx = config.getVector<int>("blocknx"); //vector<double> boundingBox = config.getVector<double>("boundingBox"); // vector<double> length = config.getVector<double>("length"); - double U_LB = config.getValue<double>("U_LB"); + real U_LB = config.getValue<real>("U_LB"); // double uF2 = config.getValue<double>("uF2"); //double nuL = config.getValue<double>("nuL"); //double nuG = config.getValue<double>("nuG"); @@ -37,23 +37,23 @@ void run(string configname) //double sigma = config.getValue<double>("sigma"); int interfaceWidth = config.getValue<int>("interfaceWidth"); //double D = config.getValue<double>("D"); - double theta = config.getValue<double>("contactAngle"); - double D_LB = config.getValue<double>("D_LB"); - double phiL = config.getValue<double>("phi_L"); - double phiH = config.getValue<double>("phi_H"); - double tauH = config.getValue<double>("Phase-field Relaxation"); - double mob = config.getValue<double>("Mobility"); - - double endTime = config.getValue<double>("endTime"); - double outTime = config.getValue<double>("outTime"); - double availMem = config.getValue<double>("availMem"); + real theta = config.getValue<real>("contactAngle"); + real D_LB = config.getValue<real>("D_LB"); + real phiL = config.getValue<real>("phi_L"); + real phiH = config.getValue<real>("phi_H"); + real tauH = config.getValue<real>("Phase-field Relaxation"); + real mob = config.getValue<real>("Mobility"); + + real endTime = config.getValue<real>("endTime"); + real outTime = config.getValue<real>("outTime"); + real availMem = config.getValue<real>("availMem"); //int refineLevel = config.getValue<int>("refineLevel"); //double Re = config.getValue<double>("Re"); bool logToFile = config.getValue<bool>("logToFile"); - double restartStep = config.getValue<double>("restartStep"); - double cpStart = config.getValue<double>("cpStart"); - double cpStep = config.getValue<double>("cpStep"); + real restartStep = config.getValue<real>("restartStep"); + real cpStart = config.getValue<real>("cpStart"); + real cpStep = config.getValue<real>("cpStep"); bool newStart = config.getValue<bool>("newStart"); @@ -83,7 +83,7 @@ void run(string configname) // Sleep(30000); - double rho_h=0, rho_l=0, r_rho=0, mu_h=0, /*mu_l,*/ Uo=0, D=0, sigma=0; + real rho_h=0, rho_l=0, r_rho=0, mu_h=0, /*mu_l,*/ Uo=0, D=0, sigma=0; switch (caseN) { case 1: @@ -142,23 +142,23 @@ void run(string configname) break; } - double Re = rho_h * Uo * D / mu_h; - double We = rho_h * Uo * Uo * D / sigma; + real Re = rho_h * Uo * D / mu_h; + real We = rho_h * Uo * Uo * D / sigma; - double dx = D / D_LB; - double nu_h = U_LB * D_LB / Re; - double nu_l = nu_h; + real dx = D / D_LB; + real nu_h = U_LB * D_LB / Re; + real nu_l = nu_h; - double rho_h_LB = 1; + real rho_h_LB = 1; //surface tension - double sigma_LB = rho_h_LB * U_LB * U_LB * D_LB / We; + real sigma_LB = rho_h_LB * U_LB * U_LB * D_LB / We; // LBMReal dLB = 0; // = length[1] / dx; - LBMReal rhoLB = 0.0; + real rhoLB = 0.0; //LBMReal nuLB = nu_l; //(uLB*dLB) / Re; - double beta = 12.0 * sigma_LB / interfaceWidth; - double kappa = 1.5 * interfaceWidth * sigma_LB; + real beta = 12.0 * sigma_LB / interfaceWidth; + real kappa = 1.5 * interfaceWidth * sigma_LB; if (myid == 0) { UBLOG(logINFO, "Parameters:"); @@ -253,7 +253,7 @@ void run(string configname) fctF2.SetExpr("vy1"); fctF2.DefineConst("vy1", U_LB); - double startTime = 1; + real startTime = 1; SPtr<BCAdapter> velBCAdapterF1( new MultiphaseVelocityBCAdapter(true, false, false, fctF1, phiH, 0.0, startTime)); SPtr<BCAdapter> velBCAdapterF2( @@ -295,17 +295,17 @@ void run(string configname) // if (newStart) { // bounding box - double g_minX1 = 0; - double g_minX2 = 0; - double g_minX3 = 0; + real g_minX1 = 0; + real g_minX2 = 0; + real g_minX3 = 0; //double g_maxX1 = 8.0*D; //double g_maxX2 = 2.5*D; //double g_maxX3 = 2.5*D; - double g_maxX1 = 1.0 * D; // 8.0 * D; - double g_maxX2 = 2.0 * D; - double g_maxX3 = 2.0 * D; + real g_maxX1 = 1.0 * D; // 8.0 * D; + real g_maxX2 = 2.0 * D; + real g_maxX3 = 2.0 * D; // geometry SPtr<GbObject3D> gridCube(new GbCuboid3D(g_minX1, g_minX2, g_minX3, g_maxX1, g_maxX2, g_maxX3)); @@ -454,9 +454,9 @@ void run(string configname) unsigned long long numberOfNodes = numberOfBlocks * numberOfNodesPerBlock; unsigned long long numberOfNodesPerBlockWithGhostLayer = numberOfBlocks * (blocknx[0] + ghostLayer) * (blocknx[1] + ghostLayer) * (blocknx[2] + ghostLayer); - double needMemAll = - double(numberOfNodesPerBlockWithGhostLayer * (27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); - double needMem = needMemAll / double(comm->getNumberOfProcesses()); + real needMemAll = + real(numberOfNodesPerBlockWithGhostLayer * (27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); + real needMem = needMemAll / real(comm->getNumberOfProcesses()); if (myid == 0) { UBLOG(logINFO, "Number of blocks = " << numberOfBlocks); @@ -488,9 +488,9 @@ void run(string configname) //mu::Parser fct1; //fct1.SetExpr("phiL"); //fct1.DefineConst("phiL", phiL); - LBMReal x1c = 0; // (g_maxX1 - g_minX1-1)/2; // - LBMReal x2c = (g_maxX2 - g_minX2)/2; - LBMReal x3c = (g_maxX3 - g_minX3)/2; + real x1c = 0; // (g_maxX1 - g_minX1-1)/2; // + real x2c = (g_maxX2 - g_minX2)/2; + real x3c = (g_maxX3 - g_minX3)/2; mu::Parser fct1; fct1.SetExpr("0.5-0.5*tanh(2*(sqrt((x1-x1c)^2+(x2-x2c)^2+(x3-x3c)^2)-radius)/interfaceThickness)"); @@ -576,7 +576,7 @@ void run(string configname) grid->accept(setConnsVisitor); SPtr<UbScheduler> visSch(new UbScheduler(outTime)); - double t_ast, t; + real t_ast, t; t_ast = 7.19; t = (int)(t_ast/(U_LB/(D_LB))); visSch->addSchedule(t,t,t); //t=7.19 diff --git a/apps/cpu/LaminarTubeFlow/ltf.cpp b/apps/cpu/LaminarTubeFlow/ltf.cpp index 5f87c3e3d..4fb968331 100644 --- a/apps/cpu/LaminarTubeFlow/ltf.cpp +++ b/apps/cpu/LaminarTubeFlow/ltf.cpp @@ -19,18 +19,18 @@ void run(string configname) string pathname = config.getValue<string>("pathname"); int numOfThreads = config.getValue<int>("numOfThreads"); vector<int> blocknx = config.getVector<int>("blocknx"); - double uLB = config.getValue<double>("uLB"); - double endTime = config.getValue<double>("endTime"); - double outTime = config.getValue<double>("outTime"); - double availMem = config.getValue<double>("availMem"); + real uLB = config.getValue<real>("uLB"); + real endTime = config.getValue<real>("endTime"); + real outTime = config.getValue<real>("outTime"); + real availMem = config.getValue<real>("availMem"); int refineLevel = config.getValue<int>("refineLevel"); - double Re = config.getValue<double>("Re"); - double dx = config.getValue<double>("dx"); - vector<double> length = config.getVector<double>("length"); + real Re = config.getValue<real>("Re"); + real dx = config.getValue<real>("dx"); + vector<real> length = config.getVector<real>("length"); bool logToFile = config.getValue<bool>("logToFile"); - double restartStep = config.getValue<double>("restartStep"); - double cpStart = config.getValue<double>("cpStart"); - double cpStep = config.getValue<double>("cpStep"); + real restartStep = config.getValue<real>("restartStep"); + real cpStart = config.getValue<real>("cpStart"); + real cpStep = config.getValue<real>("cpStep"); bool newStart = config.getValue<bool>("newStart"); SPtr<vf::mpi::Communicator> comm = vf::mpi::MPICommunicator::getInstance(); @@ -58,9 +58,9 @@ void run(string configname) //Sleep(30000); - LBMReal dLB = length[1] / dx; - LBMReal rhoLB = 0.0; - LBMReal nuLB = (uLB*dLB) / Re; + real dLB = length[1] / dx; + real rhoLB = 0.0; + real nuLB = (uLB*dLB) / Re; SPtr<LBMUnitConverter> conv = SPtr<LBMUnitConverter>(new LBMUnitConverter()); @@ -128,13 +128,13 @@ void run(string configname) { //bounding box - double g_minX1 = 0.0; - double g_minX2 = -length[1] / 2.0; - double g_minX3 = -length[2] / 2.0; + real g_minX1 = 0.0; + real g_minX2 = -length[1] / 2.0; + real g_minX3 = -length[2] / 2.0; - double g_maxX1 = length[0]; - double g_maxX2 = length[1] / 2.0; - double g_maxX3 = length[2] / 2.0; + real g_maxX1 = length[0]; + real g_maxX2 = length[1] / 2.0; + real g_maxX3 = length[2] / 2.0; //geometry //x @@ -147,7 +147,7 @@ void run(string configname) if (myid == 0) GbSystem3D::writeGeoObject(gridCube.get(), pathname + "/geo/gridCube", WbWriterVtkXmlBinary::getInstance()); - double blockLength = blocknx[0] * dx; + real blockLength = blocknx[0] * dx; @@ -237,8 +237,8 @@ void run(string configname) unsigned long long numberOfNodesPerBlock = (unsigned long long)(blocknx[0])* (unsigned long long)(blocknx[1])* (unsigned long long)(blocknx[2]); unsigned long long numberOfNodes = numberOfBlocks * numberOfNodesPerBlock; unsigned long long numberOfNodesPerBlockWithGhostLayer = numberOfBlocks * (blocknx[0] + ghostLayer) * (blocknx[1] + ghostLayer) * (blocknx[2] + ghostLayer); - double needMemAll = double(numberOfNodesPerBlockWithGhostLayer*(27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); - double needMem = needMemAll / double(comm->getNumberOfProcesses()); + real needMemAll = real(numberOfNodesPerBlockWithGhostLayer*(27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); + real needMem = needMemAll / real(comm->getNumberOfProcesses()); if (myid == 0) { diff --git a/apps/cpu/Multiphase/Multiphase.cpp b/apps/cpu/Multiphase/Multiphase.cpp index 73611b6b2..4d4bc9cf8 100644 --- a/apps/cpu/Multiphase/Multiphase.cpp +++ b/apps/cpu/Multiphase/Multiphase.cpp @@ -22,37 +22,37 @@ void run(string configname) string geoFile = config.getValue<string>("geoFile"); int numOfThreads = config.getValue<int>("numOfThreads"); vector<int> blocknx = config.getVector<int>("blocknx"); - vector<double> boundingBox = config.getVector<double>("boundingBox"); + vector<real> boundingBox = config.getVector<real>("boundingBox"); // vector<double> length = config.getVector<double>("length"); - double uLB = config.getValue<double>("uLB"); + real uLB = config.getValue<real>("uLB"); // double uF2 = config.getValue<double>("uF2"); - double nuL = config.getValue<double>("nuL"); - double nuG = config.getValue<double>("nuG"); - double densityRatio = config.getValue<double>("densityRatio"); - double sigma = config.getValue<double>("sigma"); + real nuL = config.getValue<real>("nuL"); + real nuG = config.getValue<real>("nuG"); + real densityRatio = config.getValue<real>("densityRatio"); + real sigma = config.getValue<real>("sigma"); int interfaceWidth = config.getValue<int>("interfaceWidth"); //double radius = config.getValue<double>("radius"); - double theta = config.getValue<double>("contactAngle"); - double gr = config.getValue<double>("gravity"); - double phiL = config.getValue<double>("phi_L"); - double phiH = config.getValue<double>("phi_H"); - double tauH = config.getValue<double>("Phase-field Relaxation"); - double mob = config.getValue<double>("Mobility"); - - double endTime = config.getValue<double>("endTime"); - double outTime = config.getValue<double>("outTime"); - double availMem = config.getValue<double>("availMem"); + real theta = config.getValue<real>("contactAngle"); + real gr = config.getValue<real>("gravity"); + real phiL = config.getValue<real>("phi_L"); + real phiH = config.getValue<real>("phi_H"); + real tauH = config.getValue<real>("Phase-field Relaxation"); + real mob = config.getValue<real>("Mobility"); + + real endTime = config.getValue<real>("endTime"); + real outTime = config.getValue<real>("outTime"); + real availMem = config.getValue<real>("availMem"); int refineLevel = config.getValue<int>("refineLevel"); - double Re = config.getValue<double>("Re"); - double dx = config.getValue<double>("dx"); + real Re = config.getValue<real>("Re"); + real dx = config.getValue<real>("dx"); bool logToFile = config.getValue<bool>("logToFile"); - double restartStep = config.getValue<double>("restartStep"); - double cpStart = config.getValue<double>("cpStart"); - double cpStep = config.getValue<double>("cpStep"); + real restartStep = config.getValue<real>("restartStep"); + real cpStart = config.getValue<real>("cpStart"); + real cpStep = config.getValue<real>("cpStep"); bool newStart = config.getValue<bool>("newStart"); - double beta = 12 * sigma / interfaceWidth; - double kappa = 1.5 * interfaceWidth * sigma; + real beta = 12 * sigma / interfaceWidth; + real kappa = 1.5 * interfaceWidth * sigma; SPtr<vf::mpi::Communicator> comm = vf::mpi::MPICommunicator::getInstance(); int myid = comm->getProcessID(); @@ -78,8 +78,8 @@ void run(string configname) // Sleep(30000); // LBMReal dLB = 0; // = length[1] / dx; - LBMReal rhoLB = 0.0; - LBMReal nuLB = nuL; //(uLB*dLB) / Re; + real rhoLB = 0.0; + real nuLB = nuL; //(uLB*dLB) / Re; SPtr<LBMUnitConverter> conv(new LBMUnitConverter()); @@ -156,7 +156,7 @@ void run(string configname) fctF2.SetExpr("vy1"); fctF2.DefineConst("vy1", uLB); - double startTime = 30; + real startTime = 30; SPtr<BCAdapter> velBCAdapterF1(new MultiphaseVelocityBCAdapter(true, false, false, fctF1, phiH, 0.0, startTime)); SPtr<BCAdapter> velBCAdapterF2(new MultiphaseVelocityBCAdapter(true, false, false, fctF2, phiH, startTime, endTime)); @@ -201,13 +201,13 @@ void run(string configname) double g_maxX2 = length[1] / 2.0; double g_maxX3 = length[2] / 2.0;*/ - double g_minX1 = boundingBox[0]; - double g_minX2 = boundingBox[2]; - double g_minX3 = boundingBox[4]; + real g_minX1 = boundingBox[0]; + real g_minX2 = boundingBox[2]; + real g_minX3 = boundingBox[4]; - double g_maxX1 = boundingBox[1]; - double g_maxX2 = boundingBox[3]; - double g_maxX3 = boundingBox[5]; + real g_maxX1 = boundingBox[1]; + real g_maxX2 = boundingBox[3]; + real g_maxX3 = boundingBox[5]; // geometry SPtr<GbObject3D> gridCube(new GbCuboid3D(g_minX1, g_minX2, g_minX3, g_maxX1, g_maxX2, g_maxX3)); @@ -332,9 +332,9 @@ void run(string configname) unsigned long long numberOfNodes = numberOfBlocks * numberOfNodesPerBlock; unsigned long long numberOfNodesPerBlockWithGhostLayer = numberOfBlocks * (blocknx[0] + ghostLayer) * (blocknx[1] + ghostLayer) * (blocknx[2] + ghostLayer); - double needMemAll = - double(numberOfNodesPerBlockWithGhostLayer * (27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); - double needMem = needMemAll / double(comm->getNumberOfProcesses()); + real needMemAll = + real(numberOfNodesPerBlockWithGhostLayer * (27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); + real needMem = needMemAll / real(comm->getNumberOfProcesses()); if (myid == 0) { UBLOG(logINFO, "Number of blocks = " << numberOfBlocks); diff --git a/apps/cpu/MultiphaseDropletTest/droplet.cpp b/apps/cpu/MultiphaseDropletTest/droplet.cpp index 104506105..a9d561930 100644 --- a/apps/cpu/MultiphaseDropletTest/droplet.cpp +++ b/apps/cpu/MultiphaseDropletTest/droplet.cpp @@ -22,31 +22,31 @@ void run(string configname) string pathname = config.getValue<string>("pathname"); int numOfThreads = config.getValue<int>("numOfThreads"); vector<int> blocknx = config.getVector<int>("blocknx"); - vector<double> boundingBox = config.getVector<double>("boundingBox"); - double uLB = config.getValue<double>("uLB"); - double nuL = config.getValue<double>("nuL"); - double nuG = config.getValue<double>("nuG"); - double densityRatio = config.getValue<double>("densityRatio"); - double sigma = config.getValue<double>("sigma"); + vector<real> boundingBox = config.getVector<real>("boundingBox"); + real uLB = config.getValue<real>("uLB"); + real nuL = config.getValue<real>("nuL"); + real nuG = config.getValue<real>("nuG"); + real densityRatio = config.getValue<real>("densityRatio"); + real sigma = config.getValue<real>("sigma"); int interfaceThickness = config.getValue<int>("interfaceThickness"); - double radius = config.getValue<double>("radius"); - double theta = config.getValue<double>("contactAngle"); + real radius = config.getValue<real>("radius"); + real theta = config.getValue<real>("contactAngle"); //double gr = config.getValue<double>("gravity"); - double phiL = config.getValue<double>("phi_L"); - double phiH = config.getValue<double>("phi_H"); - double tauH = config.getValue<double>("Phase-field Relaxation"); - double mob = config.getValue<double>("Mobility"); - - double endTime = config.getValue<double>("endTime"); - double outTime = config.getValue<double>("outTime"); - double availMem = config.getValue<double>("availMem"); + real phiL = config.getValue<real>("phi_L"); + real phiH = config.getValue<real>("phi_H"); + real tauH = config.getValue<real>("Phase-field Relaxation"); + real mob = config.getValue<real>("Mobility"); + + real endTime = config.getValue<real>("endTime"); + real outTime = config.getValue<real>("outTime"); + real availMem = config.getValue<real>("availMem"); int refineLevel = config.getValue<int>("refineLevel"); - double Re = config.getValue<double>("Re"); - double dx = config.getValue<double>("dx"); + real Re = config.getValue<real>("Re"); + real dx = config.getValue<real>("dx"); bool logToFile = config.getValue<bool>("logToFile"); - double restartStep = config.getValue<double>("restartStep"); - double cpStart = config.getValue<double>("cpStart"); - double cpStep = config.getValue<double>("cpStep"); + real restartStep = config.getValue<real>("restartStep"); + real cpStart = config.getValue<real>("cpStart"); + real cpStep = config.getValue<real>("cpStep"); bool newStart = config.getValue<bool>("newStart"); //double rStep = config.getValue<double>("rStep"); @@ -90,37 +90,37 @@ void run(string configname) //Sleep(30000); // LBMReal dLB = 0; // = length[1] / dx; - LBMReal rhoLB = 0.0; - LBMReal nuLB = nuL; //(uLB*dLB) / Re; + real rhoLB = 0.0; + real nuLB = nuL; //(uLB*dLB) / Re; //diameter of circular droplet - LBMReal D = 2.0*radius; + real D = 2.0*radius; //density retio - LBMReal r_rho = densityRatio; + real r_rho = densityRatio; //density of heavy fluid - LBMReal rho_h = 1.0; + real rho_h = 1.0; //density of light fluid - LBMReal rho_l = rho_h / r_rho; + real rho_l = rho_h / r_rho; //kinimatic viscosity - LBMReal nu_h = nuL; + real nu_h = nuL; //LBMReal nu_l = nuG; //#dynamic viscosity - LBMReal mu_h = rho_h * nu_h; + real mu_h = rho_h * nu_h; //gravity - LBMReal g_y = Re* Re* mu_h* mu_h / (rho_h * (rho_h - rho_l) * D * D * D); + real g_y = Re* Re* mu_h* mu_h / (rho_h * (rho_h - rho_l) * D * D * D); //Eotvos number - LBMReal Eo = 100; + real Eo = 100; //surface tension sigma = rho_h* g_y* D* D / Eo; //g_y = 0; - double beta = 12.0 * sigma / interfaceThickness; - double kappa = 1.5 * interfaceThickness * sigma; + real beta = 12.0 * sigma / interfaceThickness; + real kappa = 1.5 * interfaceThickness * sigma; if (myid == 0) { //UBLOG(logINFO, "uLb = " << uLB); @@ -208,13 +208,13 @@ void run(string configname) if (newStart) { // bounding box - double g_minX1 = boundingBox[0]; - double g_minX2 = boundingBox[2]; - double g_minX3 = boundingBox[4]; + real g_minX1 = boundingBox[0]; + real g_minX2 = boundingBox[2]; + real g_minX3 = boundingBox[4]; - double g_maxX1 = boundingBox[1]; - double g_maxX2 = boundingBox[3]; - double g_maxX3 = boundingBox[5]; + real g_maxX1 = boundingBox[1]; + real g_maxX2 = boundingBox[3]; + real g_maxX3 = boundingBox[5]; // geometry SPtr<GbObject3D> gridCube(new GbCuboid3D(g_minX1, g_minX2, g_minX3, g_maxX1, g_maxX2, g_maxX3)); @@ -227,7 +227,7 @@ void run(string configname) GenBlocksGridVisitor genBlocks(gridCube); grid->accept(genBlocks); - double dx2 = 2.0 * dx; + real dx2 = 2.0 * dx; GbCuboid3DPtr wallYmin(new GbCuboid3D(g_minX1 - dx2, g_minX2 - dx2, g_minX3 - dx2, g_maxX1 + dx2, g_minX2, g_maxX3 + dx2)); GbSystem3D::writeGeoObject(wallYmin.get(), pathname + "/geo/wallYmin", WbWriterVtkXmlASCII::getInstance()); GbCuboid3DPtr wallYmax(new GbCuboid3D(g_minX1 - dx2, g_maxX2, g_minX3 - dx2, g_maxX1 + dx2, g_maxX2 + dx2, g_maxX3 + dx2)); @@ -254,9 +254,9 @@ void run(string configname) unsigned long long numberOfNodes = numberOfBlocks * numberOfNodesPerBlock; unsigned long long numberOfNodesPerBlockWithGhostLayer = numberOfBlocks * (blocknx[0] + ghostLayer) * (blocknx[1] + ghostLayer) * (blocknx[2] + ghostLayer); - double needMemAll = - double(numberOfNodesPerBlockWithGhostLayer * (27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); - double needMem = needMemAll / double(comm->getNumberOfProcesses()); + real needMemAll = + real(numberOfNodesPerBlockWithGhostLayer * (27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); + real needMem = needMemAll / real(comm->getNumberOfProcesses()); if (myid == 0) { UBLOG(logINFO, "Number of blocks = " << numberOfBlocks); @@ -286,9 +286,9 @@ void run(string configname) intHelper.setBC(); // initialization of distributions - LBMReal x1c = 2.5 * D; // (g_maxX1 - g_minX1-1)/2; // - LBMReal x2c = 12.5 * D; //(g_maxX2 - g_minX2-1)/2; - LBMReal x3c = 1.5; //2.5 * D; //(g_maxX3 - g_minX3-1)/2; + real x1c = 2.5 * D; // (g_maxX1 - g_minX1-1)/2; // + real x2c = 12.5 * D; //(g_maxX2 - g_minX2-1)/2; + real x3c = 1.5; //2.5 * D; //(g_maxX3 - g_minX3-1)/2; //LBMReal x3c = 2.5 * D; mu::Parser fct1; fct1.SetExpr("0.5-0.5*tanh(2*(sqrt((x1-x1c)^2+(x2-x2c)^2+(x3-x3c)^2)-radius)/interfaceThickness)"); @@ -357,7 +357,7 @@ void run(string configname) grid->accept(setConnsVisitor); SPtr<UbScheduler> visSch(new UbScheduler(outTime)); - double t_ast, t; + real t_ast, t; t_ast = 2; t = (int)(t_ast/std::sqrt(g_y/D)); visSch->addSchedule(t,t,t); //t=2 diff --git a/apps/cpu/PoiseuilleFlow/pf1.cpp b/apps/cpu/PoiseuilleFlow/pf1.cpp index cb9dc2a19..936801175 100644 --- a/apps/cpu/PoiseuilleFlow/pf1.cpp +++ b/apps/cpu/PoiseuilleFlow/pf1.cpp @@ -16,25 +16,25 @@ void pf1() string pathOut = "d:/temp/test_dir_naming"; //"/gfs1/work/niikonst/pflow_pipe_forcing"; int numOfThreads = 1; int blocknx[3] ={ 10,10,10 }; - double endTime = 10; - double cpStart = 10; - double cpStep = 10; - double outTime = 10; - double availMem = 8e9; - double deltax = 1; - double rhoLB = 0.0; - double nuLB = 0.005; + real endTime = 10; + real cpStart = 10; + real cpStep = 10; + real outTime = 10; + real availMem = 8e9; + real deltax = 1; + real rhoLB = 0.0; + real nuLB = 0.005; //geometry definition //simulation bounding box - double g_minX1 = 0.0; - double g_minX2 = -10.0; - double g_minX3 = -10.0; + real g_minX1 = 0.0; + real g_minX2 = -10.0; + real g_minX3 = -10.0; - double g_maxX1 = 50; - double g_maxX2 = 10; - double g_maxX3 = 10; + real g_maxX1 = 50; + real g_maxX2 = 10; + real g_maxX3 = 10; //Sleep(15000); @@ -93,8 +93,8 @@ void pf1() unsigned long long numberOfNodesPerBlock = (unsigned long long)(blocknx[0])* (unsigned long long)(blocknx[1])* (unsigned long long)(blocknx[2]); unsigned long long numberOfNodes = numberOfBlocks * numberOfNodesPerBlock; unsigned long long numberOfNodesPerBlockWithGhostLayer = numberOfBlocks * (blocknx[0] + ghostLayer) * (blocknx[1] + ghostLayer) * (blocknx[2] + ghostLayer); - double needMemAll = double(numberOfNodesPerBlockWithGhostLayer*(27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); - double needMem = needMemAll / double(comm->getNumberOfProcesses()); + real needMemAll = real(numberOfNodesPerBlockWithGhostLayer*(27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); + real needMem = needMemAll / real(comm->getNumberOfProcesses()); if (myid == 0) { diff --git a/apps/cpu/RisingBubble2D/RisingBubble2D.cpp b/apps/cpu/RisingBubble2D/RisingBubble2D.cpp index 1085b7363..92495242f 100644 --- a/apps/cpu/RisingBubble2D/RisingBubble2D.cpp +++ b/apps/cpu/RisingBubble2D/RisingBubble2D.cpp @@ -22,31 +22,31 @@ void run(string configname) string pathname = config.getValue<string>("pathname"); int numOfThreads = config.getValue<int>("numOfThreads"); vector<int> blocknx = config.getVector<int>("blocknx"); - vector<double> boundingBox = config.getVector<double>("boundingBox"); - double uLB = config.getValue<double>("uLB"); - double nuL = config.getValue<double>("nuL"); - double nuG = config.getValue<double>("nuG"); - double densityRatio = config.getValue<double>("densityRatio"); + vector<real> boundingBox = config.getVector<real>("boundingBox"); + real uLB = config.getValue<real>("uLB"); + real nuL = config.getValue<real>("nuL"); + real nuG = config.getValue<real>("nuG"); + real densityRatio = config.getValue<real>("densityRatio"); //double sigma = config.getValue<double>("sigma"); int interfaceThickness = config.getValue<int>("interfaceThickness"); - double radius = config.getValue<double>("radius"); - double theta = config.getValue<double>("contactAngle"); - double phiL = config.getValue<double>("phi_L"); - double phiH = config.getValue<double>("phi_H"); - double tauH = config.getValue<double>("Phase-field Relaxation"); - double mob = config.getValue<double>("Mobility"); - - double endTime = config.getValue<double>("endTime"); - double outTime = config.getValue<double>("outTime"); - double availMem = config.getValue<double>("availMem"); + real radius = config.getValue<real>("radius"); + real theta = config.getValue<real>("contactAngle"); + real phiL = config.getValue<real>("phi_L"); + real phiH = config.getValue<real>("phi_H"); + real tauH = config.getValue<real>("Phase-field Relaxation"); + real mob = config.getValue<real>("Mobility"); + + real endTime = config.getValue<real>("endTime"); + real outTime = config.getValue<real>("outTime"); + real availMem = config.getValue<real>("availMem"); int refineLevel = config.getValue<int>("refineLevel"); - double Re = config.getValue<double>("Re"); - double Eo = config.getValue<double>("Eo"); - double dx = config.getValue<double>("dx"); + real Re = config.getValue<real>("Re"); + real Eo = config.getValue<real>("Eo"); + real dx = config.getValue<real>("dx"); bool logToFile = config.getValue<bool>("logToFile"); - double restartStep = config.getValue<double>("restartStep"); - double cpStart = config.getValue<double>("cpStart"); - double cpStep = config.getValue<double>("cpStep"); + real restartStep = config.getValue<real>("restartStep"); + real cpStart = config.getValue<real>("cpStart"); + real cpStep = config.getValue<real>("cpStep"); bool newStart = config.getValue<bool>("newStart"); //double rStep = config.getValue<double>("rStep"); @@ -90,37 +90,37 @@ void run(string configname) //Sleep(20000); // LBMReal dLB = 0; // = length[1] / dx; - LBMReal rhoLB = 0.0; - LBMReal nuLB = nuL; //(uLB*dLB) / Re; + real rhoLB = 0.0; + real nuLB = nuL; //(uLB*dLB) / Re; //diameter of circular droplet - LBMReal D = 2.0*radius; + real D = 2.0*radius; //density retio //LBMReal r_rho = densityRatio; //density of heavy fluid - LBMReal rho_h = 1.0; + real rho_h = 1.0; //density of light fluid //LBMReal rho_l = rho_h / r_rho; //kinimatic viscosity - LBMReal nu_h = nuL; + real nu_h = nuL; //LBMReal nu_l = nuG; //#dynamic viscosity //LBMReal mu_h = rho_h * nu_h; //gravity - LBMReal g_y = Re * Re * nu_h * nu_h / (D*D*D); + real g_y = Re * Re * nu_h * nu_h / (D*D*D); //Eotvos number //LBMReal Eo = 100; //surface tension - LBMReal sigma = rho_h * g_y * D * D / Eo; + real sigma = rho_h * g_y * D * D / Eo; //g_y = 0; - double beta = 12.0 * sigma / interfaceThickness; - double kappa = 1.5 * interfaceThickness * sigma; + real beta = 12.0 * sigma / interfaceThickness; + real kappa = 1.5 * interfaceThickness * sigma; if (myid == 0) { //UBLOG(logINFO, "uLb = " << uLB); @@ -210,13 +210,13 @@ void run(string configname) if (newStart) { // bounding box - double g_minX1 = boundingBox[0]; - double g_minX2 = boundingBox[2]; - double g_minX3 = boundingBox[4]; + real g_minX1 = boundingBox[0]; + real g_minX2 = boundingBox[2]; + real g_minX3 = boundingBox[4]; - double g_maxX1 = boundingBox[1]; - double g_maxX2 = boundingBox[3]; - double g_maxX3 = boundingBox[5]; + real g_maxX1 = boundingBox[1]; + real g_maxX2 = boundingBox[3]; + real g_maxX3 = boundingBox[5]; // geometry SPtr<GbObject3D> gridCube(new GbCuboid3D(g_minX1, g_minX2, g_minX3, g_maxX1, g_maxX2, g_maxX3)); @@ -229,7 +229,7 @@ void run(string configname) GenBlocksGridVisitor genBlocks(gridCube); grid->accept(genBlocks); - double dx2 = 2.0 * dx; + real dx2 = 2.0 * dx; GbCuboid3DPtr wallXmin(new GbCuboid3D(g_minX1 - dx2, g_minX2 - dx2, g_minX3 - dx2, g_minX1, g_maxX2 + dx2, g_maxX3 + dx2)); GbSystem3D::writeGeoObject(wallXmin.get(), pathname + "/geo/wallXmin", WbWriterVtkXmlASCII::getInstance()); GbCuboid3DPtr wallXmax(new GbCuboid3D(g_maxX1, g_minX2 - dx2, g_minX3 - dx2, g_maxX1 + dx2, g_maxX2 + dx2, g_maxX3 + dx2)); @@ -266,9 +266,9 @@ void run(string configname) unsigned long long numberOfNodes = numberOfBlocks * numberOfNodesPerBlock; unsigned long long numberOfNodesPerBlockWithGhostLayer = numberOfBlocks * (blocknx[0] + ghostLayer) * (blocknx[1] + ghostLayer) * (blocknx[2] + ghostLayer); - double needMemAll = - double(numberOfNodesPerBlockWithGhostLayer * (27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); - double needMem = needMemAll / double(comm->getNumberOfProcesses()); + real needMemAll = + real(numberOfNodesPerBlockWithGhostLayer * (27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); + real needMem = needMemAll / real(comm->getNumberOfProcesses()); if (myid == 0) { UBLOG(logINFO, "Number of blocks = " << numberOfBlocks); @@ -298,9 +298,9 @@ void run(string configname) intHelper.setBC(); // initialization of distributions - LBMReal x1c = D; - LBMReal x2c = D; - LBMReal x3c = 1.5; + real x1c = D; + real x2c = D; + real x3c = 1.5; //LBMReal x3c = 2.5 * D; mu::Parser fct1; fct1.SetExpr("0.5+0.5*tanh(2*(sqrt((x1-x1c)^2+(x2-x2c)^2+(x3-x3c)^2)-radius)/interfaceThickness)"); diff --git a/apps/cpu/ViskomatXL/viskomat.cpp b/apps/cpu/ViskomatXL/viskomat.cpp index b1e9a9c14..be1f8bab3 100644 --- a/apps/cpu/ViskomatXL/viskomat.cpp +++ b/apps/cpu/ViskomatXL/viskomat.cpp @@ -20,21 +20,21 @@ void bflow(string configname) string geoFile = config.getValue<string>("geoFile"); int numOfThreads = config.getValue<int>("numOfThreads"); vector<int> blocknx = config.getVector<int>("blocknx"); - vector<double> boundingBox = config.getVector<double>("boundingBox"); - double endTime = config.getValue<double>("endTime"); - double outTime = config.getValue<double>("outTime"); - double availMem = config.getValue<double>("availMem"); + vector<real> boundingBox = config.getVector<real>("boundingBox"); + real endTime = config.getValue<real>("endTime"); + real outTime = config.getValue<real>("outTime"); + real availMem = config.getValue<real>("availMem"); int refineLevel = config.getValue<int>("refineLevel"); bool logToFile = config.getValue<bool>("logToFile"); - double restartStep = config.getValue<double>("restartStep"); - double deltax = config.getValue<double>("deltax"); - double cpStep = config.getValue<double>("cpStep"); - double cpStart = config.getValue<double>("cpStart"); + real restartStep = config.getValue<real>("restartStep"); + real deltax = config.getValue<real>("deltax"); + real cpStep = config.getValue<real>("cpStep"); + real cpStart = config.getValue<real>("cpStart"); bool newStart = config.getValue<bool>("newStart"); - double OmegaLB = config.getValue<double>("OmegaLB"); - double tau0 = config.getValue<double>("tau0"); - double N = config.getValue<double>("N"); - double mu = config.getValue<double>("mu"); + real OmegaLB = config.getValue<real>("OmegaLB"); + real tau0 = config.getValue<real>("tau0"); + real N = config.getValue<real>("N"); + real mu = config.getValue<real>("mu"); vf::basics::ConfigurationFile viscosity; @@ -60,22 +60,22 @@ void bflow(string configname) } } - LBMReal rhoLB = 0.0; + real rhoLB = 0.0; //double N = 70; //rpm - double Omega = 2 * UbMath::PI / 60.0 * N; //rad/s + real Omega = 2 * UbMath::PI / 60.0 * N; //rad/s //double mu = 5; //Pa s - double R = 0.165 / 2.0; //m - double rho = 970; //kg/m^3 - double Re = Omega * R * R * rho / mu; + real R = 0.165 / 2.0; //m + real rho = 2150;// 970; //kg/m^3 + real Re = Omega * R * R * rho / mu; //double nuLB = OmegaLB * R * 1e3 * R * 1e3 / Re; - double dx = deltax * 1e-3; - double nuLB = OmegaLB * (R / dx)*(R / dx) / Re; + real dx = deltax * 1e-3; + real nuLB = OmegaLB * (R / dx)*(R / dx) / Re; - double Bm = tau0/(mu*Omega); - double tau0LB = Bm*nuLB*OmegaLB; + real Bm = tau0/(mu*Omega); + real tau0LB = Bm*nuLB*OmegaLB; //double dx = 1.0 * 1e-3; @@ -91,14 +91,14 @@ void bflow(string configname) //bounding box - double g_minX1 = boundingBox[0]; - double g_maxX1 = boundingBox[1]; + real g_minX1 = boundingBox[0]; + real g_maxX1 = boundingBox[1]; - double g_minX2 = boundingBox[2]; - double g_maxX2 = boundingBox[3]; + real g_minX2 = boundingBox[2]; + real g_maxX2 = boundingBox[3]; - double g_minX3 = boundingBox[4]; - double g_maxX3 = boundingBox[5]; + real g_minX3 = boundingBox[4]; + real g_maxX3 = boundingBox[5]; SPtr<Rheology> thix = Rheology::getInstance(); //thix->setPowerIndex(n); @@ -257,7 +257,7 @@ void bflow(string configname) g_maxX2 + deltax, g_maxX3 + deltax)); if (myid == 0) GbSystem3D::writeGeoObject(wallXmin.get(), outputPath + "/geo/wallXmin", WbWriterVtkXmlASCII::getInstance()); - GbCuboid3DPtr wallXmax(new GbCuboid3D(g_maxX1, g_minX2 - deltax, g_minX3 - deltax, g_maxX1 + (double)blocknx[0]*deltax, + GbCuboid3DPtr wallXmax(new GbCuboid3D(g_maxX1, g_minX2 - deltax, g_minX3 - deltax, g_maxX1 + (real)blocknx[0]*deltax, g_maxX2 + deltax, g_maxX3 + deltax)); if (myid == 0) GbSystem3D::writeGeoObject(wallXmax.get(), outputPath + "/geo/wallXmax", WbWriterVtkXmlASCII::getInstance()); @@ -328,8 +328,8 @@ void bflow(string configname) unsigned long nodb = (blocknx[0]) * (blocknx[1]) * (blocknx[2]); unsigned long nod = nob * (blocknx[0]) * (blocknx[1]) * (blocknx[2]); unsigned long nodg = nob * (blocknx[0] + gl) * (blocknx[1] + gl) * (blocknx[1] + gl); - double needMemAll = double(nodg * (27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); - double needMem = needMemAll / double(comm->getNumberOfProcesses()); + real needMemAll = real(nodg * (27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); + real needMem = needMemAll / real(comm->getNumberOfProcesses()); if (myid == 0) { @@ -422,7 +422,7 @@ void bflow(string configname) SPtr<WriteMacroscopicQuantitiesCoProcessor> writeMQCoProcessor(new WriteMacroscopicQuantitiesCoProcessor(grid, visSch, outputPath, WbWriterVtkXmlBinary::getInstance(), SPtr<LBMUnitConverter>(new LBMUnitConverter()), comm)); //writeMQCoProcessor->process(100); - SPtr<UbScheduler> forceSch(new UbScheduler(1000)); + SPtr<UbScheduler> forceSch(new UbScheduler(100)); SPtr<CalculateTorqueCoProcessor> fp = make_shared<CalculateTorqueCoProcessor>(grid, forceSch, outputPath + "/torque/TorqueRotor.csv", comm); fp->addInteractor(rotorInt); SPtr<CalculateTorqueCoProcessor> fp2 = make_shared<CalculateTorqueCoProcessor>(grid, forceSch, outputPath + "/torque/TorqueStator.csv", comm); diff --git a/apps/cpu/rheometer/rheometer.cpp b/apps/cpu/rheometer/rheometer.cpp index 5e358a6d0..1506bde80 100644 --- a/apps/cpu/rheometer/rheometer.cpp +++ b/apps/cpu/rheometer/rheometer.cpp @@ -21,24 +21,24 @@ void bflow(string configname) vector<int> blocknx = config.getVector<int>("blocknx"); //vector<double> boundingBox = config.getVector<double>("boundingBox"); //double nuLB = 1.5e-3;//config.getValue<double>("nuLB"); - double endTime = config.getValue<double>("endTime"); - double outTime = config.getValue<double>("outTime"); - double availMem = config.getValue<double>("availMem"); + real endTime = config.getValue<real>("endTime"); + real outTime = config.getValue<real>("outTime"); + real availMem = config.getValue<real>("availMem"); int refineLevel = config.getValue<int>("refineLevel"); bool logToFile = config.getValue<bool>("logToFile"); - double restartStep = config.getValue<double>("restartStep"); - double deltax = config.getValue<double>("deltax"); - double cpStep = config.getValue<double>("cpStep"); - double cpStart = config.getValue<double>("cpStart"); + real restartStep = config.getValue<real>("restartStep"); + real deltax = config.getValue<real>("deltax"); + real cpStep = config.getValue<real>("cpStep"); + real cpStart = config.getValue<real>("cpStart"); bool newStart = config.getValue<bool>("newStart"); - double OmegaLB = config.getValue<double>("OmegaLB"); - double tau0 = config.getValue<double>("tau0"); - double scaleFactor = config.getValue<double>("scaleFactor"); - double resolution = config.getValue<double>("resolution"); + real OmegaLB = config.getValue<real>("OmegaLB"); + real tau0 = config.getValue<real>("tau0"); + real scaleFactor = config.getValue<real>("scaleFactor"); + real resolution = config.getValue<real>("resolution"); vf::basics::ConfigurationFile viscosity; viscosity.load(viscosityPath + "/viscosity.cfg"); - double nuLB = viscosity.getValue<double>("nuLB"); + real nuLB = viscosity.getValue<real>("nuLB"); //outputPath = outputPath + "/rheometerBingham_" + config.getValue<string>("resolution") + "_" + config.getValue<string>("OmegaLB"); @@ -63,7 +63,7 @@ void bflow(string configname) } } - LBMReal rhoLB = 0.0; + real rhoLB = 0.0; //akoustic OmegaLB /= scaleFactor; @@ -99,13 +99,13 @@ void bflow(string configname) //double g_maxX2 = resolution;// boundingBox[1]; //double g_maxX3 = 1.0; // boundingBox[2]; - double g_minX1 = 0; - double g_minX2 = 0; - double g_minX3 = 0; + real g_minX1 = 0; + real g_minX2 = 0; + real g_minX3 = 0; - double g_maxX1 = resolution; // boundingBox[0]; - double g_maxX2 = resolution; // boundingBox[1]; - double g_maxX3 = 1.0; // boundingBox[2]; + real g_maxX1 = resolution; // boundingBox[0]; + real g_maxX2 = resolution; // boundingBox[1]; + real g_maxX3 = 1.0; // boundingBox[2]; //double g_minX1 = -boundingBox[0]/2.0; //double g_minX2 = -boundingBox[1] / 2.0; @@ -336,8 +336,8 @@ void bflow(string configname) unsigned long nodb = (blocknx[0]) * (blocknx[1]) * (blocknx[2]); unsigned long nod = nob * (blocknx[0]) * (blocknx[1]) * (blocknx[2]); unsigned long nodg = nob * (blocknx[0] + gl) * (blocknx[1] + gl) * (blocknx[1] + gl); - double needMemAll = double(nodg * (27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); - double needMem = needMemAll / double(comm->getNumberOfProcesses()); + real needMemAll = real(nodg * (27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); + real needMem = needMemAll / real(comm->getNumberOfProcesses()); if (myid == 0) { diff --git a/apps/cpu/sphere/sphere.cpp b/apps/cpu/sphere/sphere.cpp index 312e9cec4..70dcc0ddd 100644 --- a/apps/cpu/sphere/sphere.cpp +++ b/apps/cpu/sphere/sphere.cpp @@ -27,20 +27,20 @@ void run(string configname) //const int refineLevel = config.getValue<int>("level"); string outputPath = "d:/temp/sphereBlock_5_SBB"; - double availMem = 8e9; - double outstep = 10000; - double endstep = 1e6; + real availMem = 8e9; + real outstep = 10000; + real endstep = 1e6; int numOfThreads = 4; omp_set_num_threads(numOfThreads); int refineLevel = 0; - LBMReal radius = 5; - LBMReal uLB = 1e-3; - LBMReal Re = 1; - LBMReal rhoLB = 0.0; - LBMReal nuLB = (uLB*2.0*radius)/Re; + real radius = 5; + real uLB = 1e-3; + real Re = 1; + real rhoLB = 0.0; + real nuLB = (uLB*2.0*radius)/Re; - double dp_LB = 1e-6; + real dp_LB = 1e-6; // double rhoLBinflow = dp_LB*3.0; SPtr<BCAdapter> noSlipBCAdapter(new NoSlipBCAdapter()); @@ -48,7 +48,7 @@ void run(string configname) SPtr<BCAdapter> slipBCAdapter(new SlipBCAdapter()); slipBCAdapter->setBcAlgorithm(SPtr<BCAlgorithm>(new SimpleSlipBCAlgorithm())); - double H = 50; + real H = 50; mu::Parser fct; fct.SetExpr("U"); fct.DefineConst("U", uLB); @@ -69,7 +69,7 @@ void run(string configname) bcVisitor.addBC(velBCAdapter); bcVisitor.addBC(denBCAdapter); - double dx = 1; + real dx = 1; const int blocknx1 = 50; const int blocknx2 = 50; @@ -79,7 +79,7 @@ void run(string configname) const int gridNx2 = H; const int gridNx3 = H; - double L1, L2, L3; + real L1, L2, L3; L1 = gridNx1; L2 = gridNx2; L3 = gridNx3; @@ -99,15 +99,15 @@ void run(string configname) if (true) { //bounding box - double d_minX1 = 0.0; - double d_minX2 = 0.0; - double d_minX3 = 0.0; + real d_minX1 = 0.0; + real d_minX2 = 0.0; + real d_minX3 = 0.0; - double d_maxX1 = L1; - double d_maxX2 = L2; - double d_maxX3 = L3; + real d_maxX1 = L1; + real d_maxX2 = L2; + real d_maxX3 = L3; - double blockLength = blocknx1*dx; + real blockLength = blocknx1*dx; if (myid == 0) { @@ -128,7 +128,7 @@ void run(string configname) GenBlocksGridVisitor genBlocks(gridCube); grid->accept(genBlocks); - double off = 0.0; + real off = 0.0; SPtr<GbObject3D> refCube(new GbCuboid3D(sphere->getX1Minimum() - off, sphere->getX2Minimum() - off, sphere->getX3Minimum(), sphere->getX1Maximum() + off, sphere->getX2Maximum() + off, sphere->getX3Maximum())); if (myid == 0) GbSystem3D::writeGeoObject(refCube.get(), outputPath + "/geo/refCube", WbWriterVtkXmlBinary::getInstance()); @@ -204,8 +204,8 @@ void run(string configname) int gl = 3; unsigned long nod = nob * (blocknx1 + gl) * (blocknx2 + gl) * (blocknx3 + gl); - double needMemAll = double(nod*(27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); - double needMem = needMemAll / double(comm->getNumberOfProcesses()); + real needMemAll = real(nod*(27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); + real needMem = needMemAll / real(comm->getNumberOfProcesses()); if (myid == 0) { @@ -287,7 +287,7 @@ void run(string configname) SPtr<UbScheduler> nupsSch(new UbScheduler(10, 30, 100)); SPtr<CoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); - double area = UbMath::PI * radius * radius; + real area = UbMath::PI * radius * radius; SPtr<UbScheduler> forceSch(new UbScheduler(100)); SPtr<CalculateForcesCoProcessor> fp = make_shared<CalculateForcesCoProcessor>(grid, forceSch, outputPath + "/forces/forces.txt", comm, uLB, area); fp->addInteractor(sphereInt); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCAlgorithm.cpp index 5c852528a..179007cb6 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCAlgorithm.cpp @@ -69,17 +69,17 @@ void BCAlgorithm::setCompressible(bool c) } } ////////////////////////////////////////////////////////////////////////// -void BCAlgorithm::setCollFactor(LBMReal cf) { collFactor = cf; } +void BCAlgorithm::setCollFactor(real cf) { collFactor = cf; } ////////////////////////////////////////////////////////////////////////// -void BCAlgorithm::setCollFactorL(LBMReal cf) { collFactorL = cf; } +void BCAlgorithm::setCollFactorL(real cf) { collFactorL = cf; } ////////////////////////////////////////////////////////////////////////// -void BCAlgorithm::setCollFactorG(LBMReal cf) { collFactorG = cf; } +void BCAlgorithm::setCollFactorG(real cf) { collFactorG = cf; } ////////////////////////////////////////////////////////////////////////// -void BCAlgorithm::setCollFactorPh(LBMReal cf) { collFactorPh = cf; } +void BCAlgorithm::setCollFactorPh(real cf) { collFactorPh = cf; } ////////////////////////////////////////////////////////////////////////// -void BCAlgorithm::setDensityRatio(LBMReal dr) { densityRatio = dr; } +void BCAlgorithm::setDensityRatio(real dr) { densityRatio = dr; } ////////////////////////////////////////////////////////////////////////// -void BCAlgorithm::setPhiBound(LBMReal phiL, LBMReal phiH) +void BCAlgorithm::setPhiBound(real phiL, real phiH) { this->phiL = phiL; this->phiH = phiH; diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCAlgorithm.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCAlgorithm.h index f8e77af6d..fa964f96b 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCAlgorithm.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCAlgorithm.h @@ -84,13 +84,13 @@ public: void setNodeIndex(int x1, int x2, int x3); void setBcPointer(SPtr<BoundaryConditions> bcPtr); void setCompressible(bool c); - void setCollFactor(LBMReal cf); + void setCollFactor(real cf); - void setCollFactorL(LBMReal cf); - void setCollFactorG(LBMReal cf); - void setCollFactorPh(LBMReal cf); - void setDensityRatio(LBMReal dr); - void setPhiBound(LBMReal phiL, LBMReal phiH); + void setCollFactorL(real cf); + void setCollFactorG(real cf); + void setCollFactorPh(real cf); + void setDensityRatio(real dr); + void setPhiBound(real phiL, real phiH); char getType(); bool isPreCollision(); @@ -113,18 +113,18 @@ protected: SPtr<BCArray3D> bcArray; SPtr<Block3D> block; - LBMReal collFactor; - LBMReal collFactorL, collFactorG, collFactorPh; - LBMReal densityRatio; - LBMReal phiL, phiH; + real collFactor; + real collFactorL, collFactorG, collFactorPh; + real densityRatio; + real phiL, phiH; int x1, x2, x3; - LBMReal compressibleFactor; + real compressibleFactor; - using CalcMacrosFct = void (*)(const LBMReal *const &, LBMReal &, LBMReal &, LBMReal &, LBMReal &); - using CalcFeqForDirFct = LBMReal (*)(const int &, const LBMReal &, const LBMReal &, const LBMReal &, - const LBMReal &); - using CalcFeqFct = void (*)(LBMReal *const &, const LBMReal &, const LBMReal &, const LBMReal &, const LBMReal &); + using CalcMacrosFct = void (*)(const real *const &, real &, real &, real &, real &); + using CalcFeqForDirFct = real (*)(const int &, const real &, const real &, const real &, + const real &); + using CalcFeqFct = void (*)(real *const &, const real &, const real &, const real &, const real &); CalcFeqForDirFct calcFeqsForDirFct; CalcMacrosFct calcMacrosFct; diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/EqDensityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/EqDensityBCAlgorithm.cpp index 923334dc6..fa5dc1bde 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/EqDensityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/EqDensityBCAlgorithm.cpp @@ -57,7 +57,7 @@ void EqDensityBCAlgorithm::applyBC() { using namespace vf::lbm::dir; - LBMReal f[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; distributions->getDistributionInv(f, x1, x2, x3); int nx1 = x1; @@ -80,13 +80,13 @@ void EqDensityBCAlgorithm::applyBC() } else UB_THROW(UbException(UB_EXARGS, "Danger...no orthogonal BC-Flag on density boundary...")); - LBMReal rho, vx1, vx2, vx3; + real rho, vx1, vx2, vx3; calcMacrosFct(f, rho, vx1, vx2, vx3); - LBMReal rhoBC = bcPtr->getBoundaryDensity(); + real rhoBC = bcPtr->getBoundaryDensity(); for (int fdir = D3Q27System::STARTF; fdir <= D3Q27System::ENDF; fdir++) { if (bcPtr->hasDensityBoundaryFlag(fdir)) { // Ehsan: 15.2.2013: - LBMReal ftemp = calcFeqsForDirFct(fdir, rhoBC, vx1, vx2, vx3); + real ftemp = calcFeqsForDirFct(fdir, rhoBC, vx1, vx2, vx3); distributions->setDistributionForDirection(ftemp, nx1, nx2, nx3, fdir); } } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/HighViscosityNoSlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/HighViscosityNoSlipBCAlgorithm.cpp index 9d1494092..3ed53ee85 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/HighViscosityNoSlipBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/HighViscosityNoSlipBCAlgorithm.cpp @@ -55,10 +55,10 @@ void HighViscosityNoSlipBCAlgorithm::addDistributions(SPtr<DistributionArray3D> ////////////////////////////////////////////////////////////////////////// void HighViscosityNoSlipBCAlgorithm::applyBC() { - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal feq[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; + real feq[D3Q27System::ENDF + 1]; distributions->getDistribution(f, x1, x2, x3); - LBMReal rho, vx1, vx2, vx3; + real rho, vx1, vx2, vx3; calcMacrosFct(f, rho, vx1, vx2, vx3); calcFeqFct(feq, rho, vx1, vx2, vx3); @@ -66,8 +66,8 @@ void HighViscosityNoSlipBCAlgorithm::applyBC() if (bcPtr->hasNoSlipBoundaryFlag(fDir)) { // quadratic bounce back const int invDir = D3Q27System::INVDIR[fDir]; - LBMReal q = bcPtr->getQ(invDir); - LBMReal fReturn = + real q = bcPtr->getQ(invDir); + real fReturn = (f[invDir] + q * f[fDir] + q * collFactor * (feq[invDir] - f[invDir] + feq[fDir] - f[fDir])) / (1.0 + q); distributions->setDistributionInvForDirection(fReturn, x1 + D3Q27System::DX1[invDir], diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNoSlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNoSlipBCAlgorithm.cpp index aafa0da55..73e399fb6 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNoSlipBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNoSlipBCAlgorithm.cpp @@ -64,9 +64,9 @@ void MultiphaseNoSlipBCAlgorithm::addDistributionsH(SPtr<DistributionArray3D> di ////////////////////////////////////////////////////////////////////////// void MultiphaseNoSlipBCAlgorithm::applyBC() { - LBMReal f[D3Q27System::ENDF+1]; - LBMReal h[D3Q27System::ENDF+1]; - LBMReal h2[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF+1]; + real h[D3Q27System::ENDF+1]; + real h2[D3Q27System::ENDF + 1]; //LBMReal feq[D3Q27System::ENDF+1]; //LBMReal heq[D3Q27System::ENDF+1]; distributions ->getDistributionInv(f, x1, x2, x3); @@ -87,15 +87,15 @@ void MultiphaseNoSlipBCAlgorithm::applyBC() { //quadratic bounce back const int invDir = D3Q27System::INVDIR[fdir]; - LBMReal fReturn = f[invDir]; + real fReturn = f[invDir]; //distributions->setDistributionForDirection(fReturn, x1+D3Q27System::DX1[invDir], x2+D3Q27System::DX2[invDir], x3+D3Q27System::DX3[invDir], fdir); distributions->setDistributionForDirection(fReturn, x1, x2, x3, invDir);//delay BB - LBMReal hReturn = h[invDir]; + real hReturn = h[invDir]; // distributionsH->setDistributionForDirection(hReturn, x1+D3Q27System::DX1[invDir], x2+D3Q27System::DX2[invDir], x3+D3Q27System::DX3[invDir], fdir); distributionsH->setDistributionForDirection(hReturn, x1, x2, x3, invDir);//delay BB if (distributionsH2) { - LBMReal h2Return = h2[invDir]; + real h2Return = h2[invDir]; distributionsH2->setDistributionForDirection(h2Return, x1, x2, x3, invDir);//delay BB // distributionsH2->setDistributionForDirection(h2Return, x1 + D3Q27System::DX1[invDir], x2 + D3Q27System::DX2[invDir], x3 + D3Q27System::DX3[invDir], fdir); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNonReflectingOutflowBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNonReflectingOutflowBCAlgorithm.cpp index 6cf9f4a8e..a1d940798 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNonReflectingOutflowBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseNonReflectingOutflowBCAlgorithm.cpp @@ -73,12 +73,12 @@ void MultiphaseNonReflectingOutflowBCAlgorithm::applyBC() using namespace UbMath; using namespace vf::lbm::dir; - LBMReal f[ENDF + 1]; - LBMReal ftemp[ENDF + 1]; - LBMReal h[D3Q27System::ENDF + 1]; - LBMReal htemp[ENDF + 1]; - LBMReal h2[D3Q27System::ENDF + 1]; - LBMReal h2temp[ENDF + 1]; + real f[ENDF + 1]; + real ftemp[ENDF + 1]; + real h[D3Q27System::ENDF + 1]; + real htemp[ENDF + 1]; + real h2[D3Q27System::ENDF + 1]; + real h2temp[ENDF + 1]; int nx1 = x1; int nx2 = x2; @@ -114,7 +114,7 @@ void MultiphaseNonReflectingOutflowBCAlgorithm::applyBC() distributionsH2->getDistribution(h2, x1, x2, x3); distributionsH2->getDistribution(h2temp, nx1, nx2, nx3); - LBMReal /* phi,*/ p1, vx1, vx2, vx3; + real /* phi,*/ p1, vx1, vx2, vx3; // D3Q27System::calcDensity(h, phi); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseSlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseSlipBCAlgorithm.cpp index 3b3eef64f..d84b8cbd5 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseSlipBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseSlipBCAlgorithm.cpp @@ -66,17 +66,17 @@ void MultiphaseSlipBCAlgorithm::applyBC() { using namespace vf::lbm::dir; - LBMReal f[D3Q27System::ENDF+1]; - LBMReal h[D3Q27System::ENDF+1]; - LBMReal feq[D3Q27System::ENDF+1]; - LBMReal heq[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; + real h[D3Q27System::ENDF+1]; + real feq[D3Q27System::ENDF+1]; + real heq[D3Q27System::ENDF+1]; distributions->getDistributionInv(f, x1, x2, x3); distributionsH->getDistributionInv(h, x1, x2, x3); - LBMReal p1, vx1, vx2, vx3, phi, rho; + real p1, vx1, vx2, vx3, phi, rho; D3Q27System::calcDensity(h, phi); - //LBMReal collFactorM = collFactorL + (collFactorL - collFactorG)*(phi - phiH)/(phiH - phiL); + //real collFactorM = collFactorL + (collFactorL - collFactorG)*(phi - phiH)/(phiH - phiL); calcMacrosFct(f, p1, vx1, vx2, vx3); @@ -84,7 +84,7 @@ void MultiphaseSlipBCAlgorithm::applyBC() D3Q27System::calcMultiphaseHeq(heq, phi, vx1, vx2, vx3); UbTupleFloat3 normale = bcPtr->getNormalVector(); - LBMReal amp = vx1*val<1>(normale)+vx2*val<2>(normale)+vx3*val<3>(normale); + real amp = vx1*val<1>(normale)+vx2*val<2>(normale)+vx3*val<3>(normale); vx1 = vx1 - amp * val<1>(normale); //normale zeigt von struktur weg! vx2 = vx2 - amp * val<2>(normale); //normale zeigt von struktur weg! @@ -99,9 +99,9 @@ void MultiphaseSlipBCAlgorithm::applyBC() { //quadratic bounce back const int invDir = D3Q27System::INVDIR[fdir]; - LBMReal q = bcPtr->getQ(invDir);// m+m q=0 stabiler + real q = bcPtr->getQ(invDir);// m+m q=0 stabiler //vx3=0; - LBMReal velocity = 0.0; + real velocity = 0.0; switch (invDir) { case DIR_P00: velocity = (UbMath::c4o9*(+vx1)); break; //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3) @@ -132,11 +132,11 @@ void MultiphaseSlipBCAlgorithm::applyBC() case DIR_MPP: velocity = (UbMath::c1o36*(-vx1+vx2+vx3)); break; default: throw UbException(UB_EXARGS, "unknown error"); } - LBMReal fReturn = ((1.0-q)/(1.0+q))*((f[invDir]-feq[invDir])/(1.0-collFactor)+feq[invDir])+((q*(f[invDir]+f[fdir])-velocity*rho)/(1.0+q)); + real fReturn = ((1.0-q)/(1.0+q))*((f[invDir]-feq[invDir])/(1.0-collFactor)+feq[invDir])+((q*(f[invDir]+f[fdir])-velocity*rho)/(1.0+q)); distributions->setDistributionForDirection(fReturn, x1+D3Q27System::DX1[invDir], x2+D3Q27System::DX2[invDir], x3+D3Q27System::DX3[invDir], fdir); - //LBMReal hReturn = ((1.0-q)/(1.0+q))*((h[invDir]-heq[invDir])/(1.0-collFactorPh)+heq[invDir])+((q/(1.0+q))*(h[invDir]+h[fdir])); - LBMReal hReturn = h[invDir]; + //real hReturn = ((1.0-q)/(1.0+q))*((h[invDir]-heq[invDir])/(1.0-collFactorPh)+heq[invDir])+((q/(1.0+q))*(h[invDir]+h[fdir])); + real hReturn = h[invDir]; distributionsH->setDistributionForDirection(hReturn, x1+D3Q27System::DX1[invDir], x2+D3Q27System::DX2[invDir], x3+D3Q27System::DX3[invDir], fdir); } } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAdapter.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAdapter.cpp index 7211bc372..51d910ce0 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAdapter.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAdapter.cpp @@ -47,7 +47,7 @@ MultiphaseVelocityBCAdapter::MultiphaseVelocityBCAdapter(const bool& vx1, const this->init(); } /*==========================================================*/ -MultiphaseVelocityBCAdapter::MultiphaseVelocityBCAdapter(const bool& vx1, const bool& vx2, const bool& vx3, const mu::Parser& function, const LBMReal& phiBC, const double& startTime, const double& endTime ) +MultiphaseVelocityBCAdapter::MultiphaseVelocityBCAdapter(const bool& vx1, const bool& vx2, const bool& vx3, const mu::Parser& function, const real& phiBC, const double& startTime, const double& endTime ) { if(vx1) this->vx1BCs.push_back(BCFunction(function,startTime,endTime)); if(vx2) this->vx2BCs.push_back(BCFunction(function,startTime,endTime)); @@ -58,7 +58,7 @@ MultiphaseVelocityBCAdapter::MultiphaseVelocityBCAdapter(const bool& vx1, const } /*==========================================================*/ -MultiphaseVelocityBCAdapter::MultiphaseVelocityBCAdapter(const bool& vx1, const bool& vx2, const bool& vx3, const mu::Parser& function1, const mu::Parser& function2, const mu::Parser& function3, const LBMReal& phiBC, const double& startTime, const double& endTime ) +MultiphaseVelocityBCAdapter::MultiphaseVelocityBCAdapter(const bool& vx1, const bool& vx2, const bool& vx3, const mu::Parser& function1, const mu::Parser& function2, const mu::Parser& function3, const real& phiBC, const double& startTime, const double& endTime ) { if(vx1) this->vx1BCs.push_back(BCFunction(function1,startTime,endTime)); if(vx2) this->vx2BCs.push_back(BCFunction(function2,startTime,endTime)); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAdapter.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAdapter.h index 998462398..96a978aa3 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAdapter.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAdapter.h @@ -92,9 +92,9 @@ public: MultiphaseVelocityBCAdapter(const bool& vx1, const bool& vx2, const bool& vx3, const BCFunction& velVxBC ); - MultiphaseVelocityBCAdapter(const bool& vx1, const bool& vx2, const bool& vx3, const mu::Parser& function, const LBMReal& phiBC, const double& startTime, const double& endTime ); + MultiphaseVelocityBCAdapter(const bool& vx1, const bool& vx2, const bool& vx3, const mu::Parser& function, const real& phiBC, const double& startTime, const double& endTime ); - MultiphaseVelocityBCAdapter(const bool& vx1, const bool& vx2, const bool& vx3, const mu::Parser& function1, const mu::Parser& function2, const mu::Parser& function3, const LBMReal& phiBC, const double& startTime, const double& endTime ); + MultiphaseVelocityBCAdapter(const bool& vx1, const bool& vx2, const bool& vx3, const mu::Parser& function1, const mu::Parser& function2, const mu::Parser& function3, const real& phiBC, const double& startTime, const double& endTime ); MultiphaseVelocityBCAdapter(const bool& vx1, const bool& vx2, const bool& vx3, const std::string& functionstring, const double& startTime, const double& endTime ); @@ -163,7 +163,7 @@ private: std::vector<BCFunction> vx2BCs; std::vector<BCFunction> vx3BCs; - LBMReal phiBC; + real phiBC; }; #endif diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAlgorithm.cpp index 1be23a815..b6ddf4b46 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/MultiphaseVelocityBCAlgorithm.cpp @@ -70,18 +70,18 @@ void MultiphaseVelocityBCAlgorithm::applyBC() { using namespace vf::lbm::dir; - LBMReal f[D3Q27System::ENDF+1]; - LBMReal h[D3Q27System::ENDF+1]; - LBMReal h2[D3Q27System::ENDF + 1]; - LBMReal feq[D3Q27System::ENDF+1]; - LBMReal heq[D3Q27System::ENDF+1]; - LBMReal htemp[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; + real h[D3Q27System::ENDF+1]; + real h2[D3Q27System::ENDF + 1]; + real feq[D3Q27System::ENDF+1]; + real heq[D3Q27System::ENDF+1]; + real htemp[D3Q27System::ENDF+1]; distributions->getDistributionInv(f, x1, x2, x3); distributionsH->getDistributionInv(h, x1, x2, x3); if (distributionsH2) distributionsH2->getDistributionInv(h2, x1, x2, x3); - LBMReal phi, vx1, vx2, vx3, p1, phiBC; + real phi, vx1, vx2, vx3, p1, phiBC; D3Q27System::calcDensity(h, phi); @@ -131,14 +131,14 @@ void MultiphaseVelocityBCAlgorithm::applyBC() { const int invDir = D3Q27System::INVDIR[fdir]; //LBMReal q = bcPtr->getQ(invDir);// m+m q=0 stabiler - LBMReal velocity = bcPtr->getBoundaryVelocity(invDir); + real velocity = bcPtr->getBoundaryVelocity(invDir); //16.03.2021 quick fix for velocity BC - LBMReal fReturn = f[invDir] - velocity; + real fReturn = f[invDir] - velocity; //LBMReal fReturn = ((1.0-q)/(1.0+q))*((f[invDir]-feq[invDir])/(1.0-collFactor)+feq[invDir])+((q*(f[invDir]+f[fdir])-velocity)/(1.0+q)); // distributions->setDistributionForDirection(fReturn, x1+D3Q27System::DX1[invDir], x2+D3Q27System::DX2[invDir], x3+D3Q27System::DX3[invDir], fdir);//no delay BB distributions->setDistributionForDirection(fReturn, x1, x2, x3, invDir);//delay BB - LBMReal hReturn = htemp[invDir] + h[invDir] - heq[invDir] - velocity*phi; + real hReturn = htemp[invDir] + h[invDir] - heq[invDir] - velocity*phi; distributionsH->setDistributionForDirection(hReturn, x1, x2, x3, invDir);//delay BB if (distributionsH2) { fReturn = h2[invDir] ; diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NoSlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NoSlipBCAlgorithm.cpp index d82a7865b..f89c74513 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NoSlipBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NoSlipBCAlgorithm.cpp @@ -54,10 +54,10 @@ void NoSlipBCAlgorithm::addDistributions(SPtr<DistributionArray3D> distributions ////////////////////////////////////////////////////////////////////////// void NoSlipBCAlgorithm::applyBC() { - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal feq[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; + real feq[D3Q27System::ENDF + 1]; distributions->getDistributionInv(f, x1, x2, x3); - LBMReal rho, vx1, vx2, vx3; + real rho, vx1, vx2, vx3; calcMacrosFct(f, rho, vx1, vx2, vx3); calcFeqFct(feq, rho, vx1, vx2, vx3); @@ -65,8 +65,8 @@ void NoSlipBCAlgorithm::applyBC() if (bcPtr->hasNoSlipBoundaryFlag(fdir)) { // quadratic bounce back const int invDir = D3Q27System::INVDIR[fdir]; - LBMReal q = bcPtr->getQ(invDir); - LBMReal fReturn = ((1.0 - q) / (1.0 + q)) * ((f[invDir] - feq[invDir]) / (1.0 - collFactor) + feq[invDir]) + + real q = bcPtr->getQ(invDir); + real fReturn = ((1.0 - q) / (1.0 + q)) * ((f[invDir] - feq[invDir]) / (1.0 - collFactor) + feq[invDir]) + ((q / (1.0 + q)) * (f[invDir] + f[fdir])); distributions->setDistributionForDirection(fReturn, x1 + D3Q27System::DX1[invDir], x2 + D3Q27System::DX2[invDir], x3 + D3Q27System::DX3[invDir], diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonEqDensityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonEqDensityBCAlgorithm.cpp index 6f892a261..2787d685c 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonEqDensityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonEqDensityBCAlgorithm.cpp @@ -58,7 +58,7 @@ void NonEqDensityBCAlgorithm::applyBC() { using namespace vf::lbm::dir; - LBMReal f[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; distributions->getDistributionInv(f, x1, x2, x3); int nx1 = x1; int nx2 = x2; @@ -80,18 +80,18 @@ void NonEqDensityBCAlgorithm::applyBC() } else return; // UB_THROW(UbException(UB_EXARGS, "Danger...no orthogonal BC-Flag on density boundary...")); - LBMReal rho, vx1, vx2, vx3; + real rho, vx1, vx2, vx3; calcMacrosFct(f, rho, vx1, vx2, vx3); // LBMReal vlimit=0.01; // vx1=(fabs(vx1)>vlimit) ? vx1/fabs(vx1)*vlimit : vx1; // vx2=(fabs(vx2)>vlimit) ? vx2/fabs(vx2)*vlimit : vx2; // vx3=(fabs(vx3)>vlimit) ? vx3/fabs(vx3)*vlimit : vx3; - LBMReal rhoBC = bcPtr->getBoundaryDensity(); + real rhoBC = bcPtr->getBoundaryDensity(); for (int fdir = D3Q27System::STARTF; fdir <= D3Q27System::ENDF; fdir++) { if (bcPtr->hasDensityBoundaryFlag(fdir)) { // Martins NEQ ADDON ////original: 15.2.2013: - LBMReal ftemp = calcFeqsForDirFct(fdir, rho, vx1, vx2, vx3); + real ftemp = calcFeqsForDirFct(fdir, rho, vx1, vx2, vx3); // rhoBC=(rho>rhoBC)? rhoBC : rho; //Limiter 08.08.2018 ftemp = calcFeqsForDirFct(fdir, rhoBC, vx1, vx2, vx3) + f[fdir] - ftemp; distributions->setDistributionForDirection(ftemp, nx1, nx2, nx3, fdir); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithm.cpp index 79fe18b0b..cb83cfa02 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCAlgorithm.cpp @@ -62,8 +62,8 @@ void NonReflectingOutflowBCAlgorithm::applyBC() using namespace D3Q27System; using namespace UbMath; - LBMReal f[ENDF + 1]; - LBMReal ftemp[ENDF + 1]; + real f[ENDF + 1]; + real ftemp[ENDF + 1]; int nx1 = x1; int nx2 = x2; @@ -95,7 +95,7 @@ void NonReflectingOutflowBCAlgorithm::applyBC() distributions->getDistribution(f, x1, x2, x3); distributions->getDistribution(ftemp, nx1, nx2, nx3); - LBMReal rho, vx1, vx2, vx3; + real rho, vx1, vx2, vx3; calcMacrosFct(f, rho, vx1, vx2, vx3); switch (direction) { diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyBinghamModelNoSlipBCAlgorithm.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyBinghamModelNoSlipBCAlgorithm.h index d4a99846b..45c9c0c21 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyBinghamModelNoSlipBCAlgorithm.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyBinghamModelNoSlipBCAlgorithm.h @@ -52,7 +52,7 @@ public: return bc; } protected: - LBMReal getRheologyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) const override + real getRheologyCollFactor(real omegaInf, real shearRate, real drho) const override { return Rheology::getBinghamCollFactor(omegaInf, shearRate, drho); } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyBinghamModelVelocityBCAlgorithm.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyBinghamModelVelocityBCAlgorithm.h index 9673a009f..2837238c4 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyBinghamModelVelocityBCAlgorithm.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyBinghamModelVelocityBCAlgorithm.h @@ -52,7 +52,7 @@ public: return bc; } protected: - LBMReal getRheologyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) const override + real getRheologyCollFactor(real omegaInf, real shearRate, real drho) const override { return Rheology::getBinghamCollFactor(omegaInf, shearRate, drho); } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyHerschelBulkleyModelNoSlipBCAlgorithm.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyHerschelBulkleyModelNoSlipBCAlgorithm.h index 19220dbd5..c9b76b563 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyHerschelBulkleyModelNoSlipBCAlgorithm.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyHerschelBulkleyModelNoSlipBCAlgorithm.h @@ -51,7 +51,7 @@ public: return bc; } protected: - LBMReal getRheologyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) const override + real getRheologyCollFactor(real omegaInf, real shearRate, real drho) const override { return Rheology::getHerschelBulkleyCollFactor(omegaInf, shearRate, drho); } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyNoSlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyNoSlipBCAlgorithm.cpp index 5d2ec04aa..73bf54ad7 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyNoSlipBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyNoSlipBCAlgorithm.cpp @@ -42,15 +42,15 @@ void RheologyNoSlipBCAlgorithm::addDistributions(SPtr<DistributionArray3D> distr ////////////////////////////////////////////////////////////////////////// void RheologyNoSlipBCAlgorithm::applyBC() { - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal feq[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; + real feq[D3Q27System::ENDF + 1]; distributions->getDistribution(f, x1, x2, x3); - LBMReal rho, vx1, vx2, vx3; + real rho, vx1, vx2, vx3; calcMacrosFct(f, rho, vx1, vx2, vx3); calcFeqFct(feq, rho, vx1, vx2, vx3); - LBMReal shearRate = D3Q27System::getShearRate(f, collFactor); - LBMReal collFactorF = getRheologyCollFactor(collFactor, shearRate, rho); + real shearRate = D3Q27System::getShearRate(f, collFactor); + real collFactorF = getRheologyCollFactor(collFactor, shearRate, rho); for (int fDir = D3Q27System::FSTARTDIR; fDir <= D3Q27System::FENDDIR; fDir++) { @@ -58,8 +58,8 @@ void RheologyNoSlipBCAlgorithm::applyBC() { //quadratic bounce back const int invDir = D3Q27System::INVDIR[fDir]; - LBMReal q = bcPtr->getQ(invDir); - LBMReal fReturn =(f[invDir] + q * f[fDir] + q * collFactorF * (feq[invDir] - f[invDir] + feq[fDir] - f[fDir])) / (1.0 + q); + real q = bcPtr->getQ(invDir); + real fReturn =(f[invDir] + q * f[fDir] + q * collFactorF * (feq[invDir] - f[invDir] + feq[fDir] - f[fDir])) / (1.0 + q); distributions->setDistributionInvForDirection(fReturn, x1 + D3Q27System::DX1[invDir], x2 + D3Q27System::DX2[invDir], x3 + D3Q27System::DX3[invDir], invDir); } } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyNoSlipBCAlgorithm.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyNoSlipBCAlgorithm.h index 71be7caf0..c8c38ad7f 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyNoSlipBCAlgorithm.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyNoSlipBCAlgorithm.h @@ -43,10 +43,10 @@ class RheologyNoSlipBCAlgorithm : public BCAlgorithm public: RheologyNoSlipBCAlgorithm() = default; ~RheologyNoSlipBCAlgorithm() = default; - virtual SPtr<BCAlgorithm> clone() override { UB_THROW(UbException("LBMReal clone() - belongs in the derived class")); } + virtual SPtr<BCAlgorithm> clone() override { UB_THROW(UbException("real clone() - belongs in the derived class")); } void addDistributions(SPtr<DistributionArray3D> distributions) override; void applyBC() override; protected: - virtual LBMReal getRheologyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) const = 0; // { UB_THROW(UbException("LBMReal getRheologyCollFactor() - belongs in the derived class")); } + virtual real getRheologyCollFactor(real omegaInf, real shearRate, real drho) const = 0; // { UB_THROW(UbException("real getRheologyCollFactor() - belongs in the derived class")); } }; #endif // RheologyNoSlipBCAlgorithm_h__ diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyPowellEyringModelNoSlipBCAlgorithm.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyPowellEyringModelNoSlipBCAlgorithm.h index 49a7df6be..a6a3a5a74 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyPowellEyringModelNoSlipBCAlgorithm.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyPowellEyringModelNoSlipBCAlgorithm.h @@ -51,7 +51,7 @@ public: return bc; } protected: - LBMReal getRheologyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) const override + real getRheologyCollFactor(real omegaInf, real shearRate, real drho) const override { return Rheology::getHerschelBulkleyCollFactor(omegaInf, shearRate, drho); } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyVelocityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyVelocityBCAlgorithm.cpp index e2979d462..9f7881af1 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyVelocityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyVelocityBCAlgorithm.cpp @@ -51,15 +51,15 @@ void RheologyVelocityBCAlgorithm::addDistributions(SPtr<DistributionArray3D> dis ////////////////////////////////////////////////////////////////////////// void RheologyVelocityBCAlgorithm::applyBC() { - LBMReal f[D3Q27System::ENDF+1]; - LBMReal feq[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; + real feq[D3Q27System::ENDF+1]; distributions->getDistributionInv(f, x1, x2, x3); - LBMReal rho, vx1, vx2, vx3, drho; + real rho, vx1, vx2, vx3, drho; calcMacrosFct(f, drho, vx1, vx2, vx3); calcFeqFct(feq, drho, vx1, vx2, vx3); - LBMReal shearRate = D3Q27System::getShearRate(f, collFactor); - LBMReal collFactorF = getRheologyCollFactor(collFactor, shearRate, drho); + real shearRate = D3Q27System::getShearRate(f, collFactor); + real collFactorF = getRheologyCollFactor(collFactor, shearRate, drho); rho = 1.0+drho*compressibleFactor; @@ -68,9 +68,9 @@ void RheologyVelocityBCAlgorithm::applyBC() if (bcPtr->hasVelocityBoundaryFlag(fdir)) { const int invDir = D3Q27System::INVDIR[fdir]; - LBMReal q = bcPtr->getQ(invDir);// m+m q=0 stabiler - LBMReal velocity = bcPtr->getBoundaryVelocity(invDir); - LBMReal fReturn = ((1.0-q)/(1.0+q))*((f[invDir]-feq[invDir])/(1.0-collFactorF)+feq[invDir])+((q*(f[invDir]+f[fdir])-velocity*rho)/(1.0+q)); + real q = bcPtr->getQ(invDir);// m+m q=0 stabiler + real velocity = bcPtr->getBoundaryVelocity(invDir); + real fReturn = ((1.0-q)/(1.0+q))*((f[invDir]-feq[invDir])/(1.0-collFactorF)+feq[invDir])+((q*(f[invDir]+f[fdir])-velocity*rho)/(1.0+q)); distributions->setDistributionForDirection(fReturn, x1+D3Q27System::DX1[invDir], x2+D3Q27System::DX2[invDir], x3+D3Q27System::DX3[invDir], fdir); } } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyVelocityBCAlgorithm.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyVelocityBCAlgorithm.h index fc523c461..91ac9ec57 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyVelocityBCAlgorithm.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/RheologyVelocityBCAlgorithm.h @@ -43,11 +43,11 @@ class RheologyVelocityBCAlgorithm : public BCAlgorithm public: RheologyVelocityBCAlgorithm(); ~RheologyVelocityBCAlgorithm(); - virtual SPtr<BCAlgorithm> clone() override { UB_THROW(UbException("LBMReal clone() - belongs in the derived class")); } + virtual SPtr<BCAlgorithm> clone() override { UB_THROW(UbException("real clone() - belongs in the derived class")); } void addDistributions(SPtr<DistributionArray3D> distributions) override; void applyBC() override; protected: - virtual LBMReal getRheologyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) const = 0; // { UB_THROW(UbException("LBMReal getRheologyCollFactor() - belongs in the derived class")); } + virtual real getRheologyCollFactor(real omegaInf, real shearRate, real drho) const = 0; // { UB_THROW(UbException("real getRheologyCollFactor() - belongs in the derived class")); } }; #endif // RheologyVelocityBCAlgorithm_h__ diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCAlgorithm.cpp index 212c96902..e637288d6 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCAlgorithm.cpp @@ -60,17 +60,17 @@ void SimpleSlipBCAlgorithm::applyBC() { using namespace vf::lbm::dir; - LBMReal f[D3Q27System::ENDF+1]; - LBMReal feq[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; + real feq[D3Q27System::ENDF+1]; distributions->getDistributionInv(f, x1, x2, x3); - LBMReal vx1, vx2, vx3, drho, rho; + real vx1, vx2, vx3, drho, rho; calcMacrosFct(f, drho, vx1, vx2, vx3); calcFeqFct(feq, drho, vx1, vx2, vx3); rho = 1.0 + drho * compressibleFactor; UbTupleFloat3 normale = bcPtr->getNormalVector(); - LBMReal amp = vx1*val<1>(normale)+vx2*val<2>(normale)+vx3*val<3>(normale); + real amp = vx1*val<1>(normale)+vx2*val<2>(normale)+vx3*val<3>(normale); vx1 = vx1 - amp * val<1>(normale); //normale zeigt von struktur weg! vx2 = vx2 - amp * val<2>(normale); //normale zeigt von struktur weg! @@ -82,7 +82,7 @@ void SimpleSlipBCAlgorithm::applyBC() { //quadratic bounce back const int invDir = D3Q27System::INVDIR[fdir]; - LBMReal velocity = 0.0; + real velocity = 0.0; switch (invDir) { case DIR_P00: velocity = (UbMath::c4o9*(+vx1)); break; //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3) @@ -113,7 +113,7 @@ void SimpleSlipBCAlgorithm::applyBC() case DIR_MPP: velocity = (UbMath::c1o36*(-vx1+vx2+vx3)); break; default: throw UbException(UB_EXARGS, "unknown error"); } - LBMReal fReturn = f[invDir] - velocity * rho; + real fReturn = f[invDir] - velocity * rho; distributions->setDistributionForDirection(fReturn, x1+D3Q27System::DX1[invDir], x2+D3Q27System::DX2[invDir], x3+D3Q27System::DX3[invDir], fdir); } } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleVelocityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleVelocityBCAlgorithm.cpp index 6529ea851..83badd723 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleVelocityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleVelocityBCAlgorithm.cpp @@ -58,10 +58,10 @@ void SimpleVelocityBCAlgorithm::addDistributions(SPtr<DistributionArray3D> distr ////////////////////////////////////////////////////////////////////////// void SimpleVelocityBCAlgorithm::applyBC() { - LBMReal f[D3Q27System::ENDF+1]; - LBMReal feq[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; + real feq[D3Q27System::ENDF+1]; distributions->getDistributionInv(f, x1, x2, x3); - LBMReal vx1, vx2, vx3, drho; + real vx1, vx2, vx3, drho; calcMacrosFct(f, drho, vx1, vx2, vx3); calcFeqFct(feq, drho, vx1, vx2, vx3); @@ -70,8 +70,8 @@ void SimpleVelocityBCAlgorithm::applyBC() if (bcPtr->hasVelocityBoundaryFlag(fdir)) { const int invDir = D3Q27System::INVDIR[fdir]; - LBMReal velocity = bcPtr->getBoundaryVelocity(invDir); - LBMReal fReturn = f[invDir] - velocity; + real velocity = bcPtr->getBoundaryVelocity(invDir); + real fReturn = f[invDir] - velocity; distributions->setDistributionForDirection(fReturn, x1+D3Q27System::DX1[invDir], x2+D3Q27System::DX2[invDir], x3+D3Q27System::DX3[invDir], fdir); } } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAlgorithm.cpp index 8b436bd57..2ef5eaae4 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCAlgorithm.cpp @@ -22,15 +22,15 @@ void SlipBCAlgorithm::applyBC() { using namespace vf::lbm::dir; - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal feq[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; + real feq[D3Q27System::ENDF + 1]; distributions->getDistributionInv(f, x1, x2, x3); - LBMReal rho, vx1, vx2, vx3, drho; + real rho, vx1, vx2, vx3, drho; calcMacrosFct(f, drho, vx1, vx2, vx3); calcFeqFct(feq, drho, vx1, vx2, vx3); UbTupleFloat3 normale = bcPtr->getNormalVector(); - LBMReal amp = vx1 * val<1>(normale) + vx2 * val<2>(normale) + vx3 * val<3>(normale); + real amp = vx1 * val<1>(normale) + vx2 * val<2>(normale) + vx3 * val<3>(normale); vx1 = vx1 - amp * val<1>(normale); // normale zeigt von struktur weg! vx2 = vx2 - amp * val<2>(normale); // normale zeigt von struktur weg! @@ -44,9 +44,9 @@ void SlipBCAlgorithm::applyBC() { //quadratic bounce back const int invDir = D3Q27System::INVDIR[fdir]; - LBMReal q = bcPtr->getQ(invDir);// m+m q=0 stabiler + real q = bcPtr->getQ(invDir);// m+m q=0 stabiler //vx3=0; - LBMReal velocity = 0.0; + real velocity = 0.0; switch (invDir) { case DIR_P00: velocity = (UbMath::c4o9*(+vx1)); break; //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3) @@ -77,7 +77,7 @@ void SlipBCAlgorithm::applyBC() case DIR_MPP: velocity = (UbMath::c1o36*(-vx1+vx2+vx3)); break; default: throw UbException(UB_EXARGS, "unknown error"); } - LBMReal fReturn = ((1.0-q)/(1.0+q))*((f[invDir]-feq[invDir])/(1.0-collFactor)+feq[invDir])+((q*(f[invDir]+f[fdir])-velocity*rho)/(1.0+q)); + real fReturn = ((1.0-q)/(1.0+q))*((f[invDir]-feq[invDir])/(1.0-collFactor)+feq[invDir])+((q*(f[invDir]+f[fdir])-velocity*rho)/(1.0+q)); distributions->setDistributionForDirection(fReturn, x1+D3Q27System::DX1[invDir], x2+D3Q27System::DX2[invDir], x3+D3Q27System::DX3[invDir], fdir); } } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallNoSlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallNoSlipBCAlgorithm.cpp index 10c10f14f..b3c97393a 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallNoSlipBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallNoSlipBCAlgorithm.cpp @@ -52,20 +52,20 @@ SPtr<BCAlgorithm> ThinWallNoSlipBCAlgorithm::clone() ////////////////////////////////////////////////////////////////////////// void ThinWallNoSlipBCAlgorithm::applyBC() { - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal feq[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; + real feq[D3Q27System::ENDF + 1]; distributions->getDistributionInv(f, x1, x2, x3); - LBMReal rho, vx1, vx2, vx3; + real rho, vx1, vx2, vx3; calcMacrosFct(f, rho, vx1, vx2, vx3); calcFeqFct(feq, rho, vx1, vx2, vx3); - LBMReal fReturn; + real fReturn; for (int fdir = D3Q27System::FSTARTDIR; fdir <= D3Q27System::FENDDIR; fdir++) { if (bcPtr->hasNoSlipBoundaryFlag(fdir)) { const int invDir = D3Q27System::INVDIR[fdir]; if (pass == 1) { - LBMReal q = bcPtr->getQ(invDir); + real q = bcPtr->getQ(invDir); fReturn = ((1.0 - q) / (1.0 + q)) * 0.5 * (f[invDir] - f[fdir] + (f[invDir] + f[fdir] - collFactor * (feq[fdir] + feq[invDir])) / (1.0 - collFactor)); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallNoSlipBCAlgorithm.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallNoSlipBCAlgorithm.h index e21c9b4fb..f9995d49f 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallNoSlipBCAlgorithm.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallNoSlipBCAlgorithm.h @@ -53,6 +53,6 @@ protected: private: int pass; - LBMReal fTemp[D3Q27System::ENDF + 1]; + real fTemp[D3Q27System::ENDF + 1]; }; #endif // ThinWallNoSlipBCAlgorithm_h__ diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyDensityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyDensityBCAlgorithm.cpp index dfac7e745..ebdf07f25 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyDensityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyDensityBCAlgorithm.cpp @@ -75,19 +75,19 @@ void ThixotropyDensityBCAlgorithm::applyBC() using namespace vf::lbm::dir; using namespace D3Q27System; - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal feq[D3Q27System::ENDF + 1]; - LBMReal h[D3Q27System::ENDF + 1]; - LBMReal heq[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; + real feq[D3Q27System::ENDF + 1]; + real h[D3Q27System::ENDF + 1]; + real heq[D3Q27System::ENDF + 1]; distributions->getDistributionInv(f, x1, x2, x3); distributionsH->getDistributionInv(h, x1, x2, x3); - LBMReal rho, vx1, vx2, vx3; + real rho, vx1, vx2, vx3; calcMacrosFct(f, rho, vx1, vx2, vx3); calcFeqFct(feq, rho, vx1, vx2, vx3); - LBMReal lambda = D3Q27System::getDensity(h); + real lambda = D3Q27System::getDensity(h); D3Q27System::calcCompFeq(heq, lambda, vx1, vx2, vx3); @@ -104,17 +104,17 @@ void ThixotropyDensityBCAlgorithm::applyBC() else if (bcPtr->hasDensityBoundaryFlag(DIR_00M)) { nx3 += 1; } else UB_THROW(UbException(UB_EXARGS, "Danger...no orthogonal BC-Flag on density boundary...")); - LBMReal rhoBC = bcPtr->getBoundaryDensity(); + real rhoBC = bcPtr->getBoundaryDensity(); for (int fdir = D3Q27System::STARTF; fdir <= D3Q27System::ENDF; fdir++) { if (bcPtr->hasDensityBoundaryFlag(fdir)) { - LBMReal ftemp = calcFeqsForDirFct(fdir, rho, vx1, vx2, vx3); + real ftemp = calcFeqsForDirFct(fdir, rho, vx1, vx2, vx3); ftemp = calcFeqsForDirFct(fdir, rhoBC, vx1, vx2, vx3) + f[fdir] - ftemp; distributions->setDistributionForDirection(ftemp, nx1, nx2, nx3, fdir); - LBMReal htemp = D3Q27System::getCompFeqForDirection(fdir, lambda, vx1, vx2, vx3); + real htemp = D3Q27System::getCompFeqForDirection(fdir, lambda, vx1, vx2, vx3); htemp = D3Q27System::getCompFeqForDirection(fdir,lambdaBC, vx1, vx2, vx3) + h[fdir] - htemp; distributionsH->setDistributionForDirection(htemp, nx1, nx2, nx3, fdir); } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyDensityBCAlgorithm.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyDensityBCAlgorithm.h index 0ed191335..2b83eed0e 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyDensityBCAlgorithm.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyDensityBCAlgorithm.h @@ -47,12 +47,12 @@ public: //void addDistributionsF(SPtr<DistributionArray3D> distributions); void addDistributionsH(SPtr<DistributionArray3D> distributions); void applyBC(); - void setLambdaBC(LBMReal lambda) { this->lambdaBC = lambda; } - LBMReal getLambdaBC() { return this->lambdaBC; } + void setLambdaBC(real lambda) { this->lambdaBC = lambda; } + real getLambdaBC() { return this->lambdaBC; } protected: SPtr<DistributionArray3D> distributionsH; private: - LBMReal lambdaBC; + real lambdaBC; }; #endif // ThixotropyDensityBCAlgorithm_h__ diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNoSlipBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNoSlipBCAlgorithm.cpp index 48b15fde3..e973a0091 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNoSlipBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNoSlipBCAlgorithm.cpp @@ -70,18 +70,18 @@ void ThixotropyNoSlipBCAlgorithm::addDistributionsH(SPtr<DistributionArray3D> di ////////////////////////////////////////////////////////////////////////// void ThixotropyNoSlipBCAlgorithm::applyBC() { - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal feq[D3Q27System::ENDF + 1]; - LBMReal h[D3Q27System::ENDF + 1]; - LBMReal heq[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; + real feq[D3Q27System::ENDF + 1]; + real h[D3Q27System::ENDF + 1]; + real heq[D3Q27System::ENDF + 1]; distributions->getDistributionInv(f, x1, x2, x3); distributionsH->getDistributionInv(h, x1, x2, x3); - LBMReal rho, vx1, vx2, vx3;//, concentration, fl1, fl2, fl3, m100; + real rho, vx1, vx2, vx3;//, concentration, fl1, fl2, fl3, m100; calcMacrosFct(f, rho, vx1, vx2, vx3); calcFeqFct(feq, rho, vx1, vx2, vx3); //calcDiffusionMacrosFctPost(h, concentration, fl1, fl2, fl3, m100, collFactor); - LBMReal lambda = D3Q27System::getDensity(h); + real lambda = D3Q27System::getDensity(h); D3Q27System::calcCompFeq(heq, lambda, 0., 0., 0.); for (int fdir = D3Q27System::FSTARTDIR; fdir <= D3Q27System::FENDDIR; fdir++) @@ -90,9 +90,9 @@ void ThixotropyNoSlipBCAlgorithm::applyBC() { //quadratic bounce back const int invDir = D3Q27System::INVDIR[fdir]; - LBMReal q = bcPtr->getQ(invDir); - LBMReal fReturnf = ((1.0 - q) / (1.0 + q))*((f[invDir] - feq[invDir]) / (1.0 - collFactor) + feq[invDir]) + ((q / (1.0 + q))*(f[invDir] + f[fdir])); - LBMReal fReturnh = ((1.0 - q) / (1.0 + q))*((h[invDir] - heq[invDir]) / (1.0 - collFactor) + heq[invDir]) + ((q / (1.0 + q))*(h[invDir] + h[fdir])); + real q = bcPtr->getQ(invDir); + real fReturnf = ((1.0 - q) / (1.0 + q))*((f[invDir] - feq[invDir]) / (1.0 - collFactor) + feq[invDir]) + ((q / (1.0 + q))*(f[invDir] + f[fdir])); + real fReturnh = ((1.0 - q) / (1.0 + q))*((h[invDir] - heq[invDir]) / (1.0 - collFactor) + heq[invDir]) + ((q / (1.0 + q))*(h[invDir] + h[fdir])); distributions->setDistributionForDirection(fReturnf, x1 + D3Q27System::DX1[invDir], x2 + D3Q27System::DX2[invDir], x3 + D3Q27System::DX3[invDir], fdir); distributionsH->setDistributionForDirection(fReturnh, x1 + D3Q27System::DX1[invDir], x2 + D3Q27System::DX2[invDir], x3 + D3Q27System::DX3[invDir], fdir); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNonReflectingOutflowBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNonReflectingOutflowBCAlgorithm.cpp index 5d647b8d4..065efee74 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNonReflectingOutflowBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyNonReflectingOutflowBCAlgorithm.cpp @@ -72,8 +72,8 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC() using namespace vf::lbm::dir; using namespace D3Q27System; - LBMReal f[ENDF + 1]; - LBMReal ftemp[ENDF + 1]; + real f[ENDF + 1]; + real ftemp[ENDF + 1]; int nx1 = x1; int nx2 = x2; @@ -92,7 +92,7 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC() distributions->getDistribution(f, x1, x2, x3); distributions->getDistribution(ftemp, nx1, nx2, nx3); - LBMReal rho, vx1, vx2, vx3; + real rho, vx1, vx2, vx3; calcMacrosFct(f, rho, vx1, vx2, vx3); switch (direction) @@ -226,8 +226,8 @@ void ThixotropyNonReflectingOutflowBCAlgorithm::applyBC() default: UB_THROW(UbException(UB_EXARGS, "It isn't implemented non reflecting density boundary for this direction!")); } - LBMReal h[D3Q27System::ENDF + 1]; - LBMReal htemp[ENDF + 1]; + real h[D3Q27System::ENDF + 1]; + real htemp[ENDF + 1]; distributionsH->getDistribution(h, x1, x2, x3); distributionsH->getDistribution(htemp, nx1, nx2, nx3); diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityBCAlgorithm.cpp index 3275cce51..189f52fd3 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityBCAlgorithm.cpp @@ -73,21 +73,21 @@ void ThixotropyVelocityBCAlgorithm::applyBC() { using namespace vf::lbm::dir; - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal feq[D3Q27System::ENDF + 1]; - LBMReal h[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; + real feq[D3Q27System::ENDF + 1]; + real h[D3Q27System::ENDF + 1]; distributions->getDistributionInv(f, x1, x2, x3); distributionsH->getDistributionInv(h, x1, x2, x3); - LBMReal rho, vx1, vx2, vx3, drho; + real rho, vx1, vx2, vx3, drho; calcMacrosFct(f, drho, vx1, vx2, vx3); calcFeqFct(feq, drho, vx1, vx2, vx3); rho = 1.0 + drho * compressibleFactor; //calcDiffusionMacrosFctPost(h, concentration, fl1, fl2, fl3, m100, collFactor); - LBMReal lambda = D3Q27System::getDensity(h); + real lambda = D3Q27System::getDensity(h); int nx1 = x1; int nx2 = x2; @@ -125,12 +125,12 @@ void ThixotropyVelocityBCAlgorithm::applyBC() if (bcPtr->hasVelocityBoundaryFlag(fdir)) { const int invDir = D3Q27System::INVDIR[fdir]; - LBMReal q = bcPtr->getQ(invDir);// m+m q=0 stabiler - LBMReal velocity = bcPtr->getBoundaryVelocity(invDir); - LBMReal fReturn = ((1.0 - q) / (1.0 + q)) * ((f[invDir] - feq[invDir]) / (1.0 - collFactor) + feq[invDir]) + ((q * (f[invDir] + f[fdir]) - velocity * rho) / (1.0 + q)); + real q = bcPtr->getQ(invDir);// m+m q=0 stabiler + real velocity = bcPtr->getBoundaryVelocity(invDir); + real fReturn = ((1.0 - q) / (1.0 + q)) * ((f[invDir] - feq[invDir]) / (1.0 - collFactor) + feq[invDir]) + ((q * (f[invDir] + f[fdir]) - velocity * rho) / (1.0 + q)); distributions->setDistributionForDirection(fReturn, x1 + D3Q27System::DX1[invDir], x2 + D3Q27System::DX2[invDir], x3 + D3Q27System::DX3[invDir], fdir); - LBMReal htemp = D3Q27System::getCompFeqForDirection(fdir, lambda, vx1, vx2, vx3); + real htemp = D3Q27System::getCompFeqForDirection(fdir, lambda, vx1, vx2, vx3); htemp = D3Q27System::getCompFeqForDirection(fdir, lambdaBC, vx1, vx2, vx3) + h[fdir] - htemp; distributionsH->setDistributionForDirection(htemp, nx1, nx2, nx3, fdir); } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityBCAlgorithm.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityBCAlgorithm.h index 86147cb21..bea3b0a37 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityBCAlgorithm.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityBCAlgorithm.h @@ -45,12 +45,12 @@ public: void addDistributions(SPtr<DistributionArray3D> distributions); void addDistributionsH(SPtr<DistributionArray3D> distributions); void applyBC(); - void setLambdaBC(LBMReal lambda) { this->lambdaBC = lambda; } - LBMReal getLambdaBC() { return this->lambdaBC; } + void setLambdaBC(real lambda) { this->lambdaBC = lambda; } + real getLambdaBC() { return this->lambdaBC; } protected: SPtr<DistributionArray3D> distributionsH; private: - LBMReal lambdaBC; + real lambdaBC; }; #endif // ThixotropyVelocityBCAlgorithm_h__ diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityWithDensityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityWithDensityBCAlgorithm.cpp index 4d9a0c77a..6c2622fc7 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityWithDensityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityWithDensityBCAlgorithm.cpp @@ -67,20 +67,20 @@ void ThixotropyVelocityWithDensityBCAlgorithm::applyBC() using namespace vf::lbm::dir; //velocity bc for non reflecting pressure bc - LBMReal f[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; distributions->getDistributionInv(f, x1, x2, x3); - LBMReal h[D3Q27System::ENDF + 1]; + real h[D3Q27System::ENDF + 1]; distributionsH->getDistributionInv(h, x1, x2, x3); - LBMReal rho, vx1, vx2, vx3, drho; + real rho, vx1, vx2, vx3, drho; calcMacrosFct(f, drho, vx1, vx2, vx3); rho = 1.0+drho*compressibleFactor; /////////////////////////////////////////////////////////////////// // Rheology - LBMReal lambda = D3Q27System::getDensity(h); + real lambda = D3Q27System::getDensity(h); int nx1 = x1; int nx2 = x2; @@ -114,16 +114,16 @@ void ThixotropyVelocityWithDensityBCAlgorithm::applyBC() if (bcArray->isSolid(nX1,nX2,nX3)) { const int invDir = D3Q27System::INVDIR[fdir]; - LBMReal velocity = bcPtr->getBoundaryVelocity(fdir); + real velocity = bcPtr->getBoundaryVelocity(fdir); - LBMReal fReturn = (f[fdir] + f[invDir] - velocity*rho) / 2.0 - drho*D3Q27System::WEIGTH[invDir]; + real fReturn = (f[fdir] + f[invDir] - velocity*rho) / 2.0 - drho*D3Q27System::WEIGTH[invDir]; distributions->setDistributionForDirection(fReturn, nX1, nX2, nX3, invDir); } } if (bcPtr->hasVelocityBoundaryFlag(fdir)) { - LBMReal htemp = D3Q27System::getCompFeqForDirection(fdir, lambda, vx1, vx2, vx3); + real htemp = D3Q27System::getCompFeqForDirection(fdir, lambda, vx1, vx2, vx3); htemp = D3Q27System::getCompFeqForDirection(fdir, lambdaBC, vx1, vx2, vx3) + h[fdir] - htemp; distributionsH->setDistributionForDirection(htemp, nx1, nx2, nx3, fdir); } diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityWithDensityBCAlgorithm.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityWithDensityBCAlgorithm.h index c24b6c28e..d69e79a22 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityWithDensityBCAlgorithm.h +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThixotropyVelocityWithDensityBCAlgorithm.h @@ -50,11 +50,11 @@ public: void addDistributions(SPtr<DistributionArray3D> distributions); void addDistributionsH(SPtr<DistributionArray3D> distributions); void applyBC(); - void setLambdaBC(LBMReal lambda) { this->lambdaBC = lambda; } - LBMReal getLambdaBC() { return this->lambdaBC; } + void setLambdaBC(real lambda) { this->lambdaBC = lambda; } + real getLambdaBC() { return this->lambdaBC; } protected: SPtr<DistributionArray3D> distributionsH; private: - LBMReal lambdaBC; + real lambdaBC; }; #endif // ThixotropyVelocityWithDensityBCAlgorithm_h__ diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCAdapter.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCAdapter.cpp index 55d65f629..a5585fa48 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCAdapter.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCAdapter.cpp @@ -318,11 +318,11 @@ void VelocityBCAdapter::setNodeVelocity(const D3Q27Interactor & /*interactor*/, this->timeStep = timestep; if (tmpVx1Function) - bc->setBoundaryVelocityX1((LBMReal)tmpVx1Function->Eval()); + bc->setBoundaryVelocityX1((real)tmpVx1Function->Eval()); if (tmpVx2Function) - bc->setBoundaryVelocityX2((LBMReal)tmpVx2Function->Eval()); + bc->setBoundaryVelocityX2((real)tmpVx2Function->Eval()); if (tmpVx3Function) - bc->setBoundaryVelocityX3((LBMReal)tmpVx3Function->Eval()); + bc->setBoundaryVelocityX3((real)tmpVx3Function->Eval()); } catch (mu::Parser::exception_type &e) { stringstream error; error << "mu::parser exception occurs, message(" << e.GetMsg() << "), formula(" diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCAlgorithm.cpp index 15768aeeb..9f1bf39d8 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCAlgorithm.cpp @@ -55,10 +55,10 @@ void VelocityBCAlgorithm::addDistributions(SPtr<DistributionArray3D> distributio ////////////////////////////////////////////////////////////////////////// void VelocityBCAlgorithm::applyBC() { - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal feq[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; + real feq[D3Q27System::ENDF + 1]; distributions->getDistributionInv(f, x1, x2, x3); - LBMReal rho, vx1, vx2, vx3, drho; + real rho, vx1, vx2, vx3, drho; calcMacrosFct(f, drho, vx1, vx2, vx3); calcFeqFct(feq, drho, vx1, vx2, vx3); @@ -70,9 +70,9 @@ void VelocityBCAlgorithm::applyBC() for (int fdir = D3Q27System::FSTARTDIR; fdir <= D3Q27System::FENDDIR; fdir++) { if (bcPtr->hasVelocityBoundaryFlag(fdir)) { const int invDir = D3Q27System::INVDIR[fdir]; - LBMReal q = bcPtr->getQ(invDir); - LBMReal velocity = bcPtr->getBoundaryVelocity(invDir); - LBMReal fReturn = ((1.0 - q) / (1.0 + q)) * ((f[invDir] - feq[invDir]) / (1.0 - collFactor) + feq[invDir]) + + real q = bcPtr->getQ(invDir); + real velocity = bcPtr->getBoundaryVelocity(invDir); + real fReturn = ((1.0 - q) / (1.0 + q)) * ((f[invDir] - feq[invDir]) / (1.0 - collFactor) + feq[invDir]) + ((q * (f[invDir] + f[fdir]) - velocity * rho) / (1.0 + q)); distributions->setDistributionForDirection(fReturn, x1 + D3Q27System::DX1[invDir], x2 + D3Q27System::DX2[invDir], x3 + D3Q27System::DX3[invDir], diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityWithDensityBCAlgorithm.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityWithDensityBCAlgorithm.cpp index 1fe6632b9..09a52798e 100644 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityWithDensityBCAlgorithm.cpp +++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityWithDensityBCAlgorithm.cpp @@ -56,10 +56,10 @@ void VelocityWithDensityBCAlgorithm::addDistributions(SPtr<DistributionArray3D> void VelocityWithDensityBCAlgorithm::applyBC() { //velocity bc for non reflecting pressure bc - LBMReal f[D3Q27System::ENDF+1]; - //LBMReal feq[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; + //real feq[D3Q27System::ENDF+1]; distributions->getDistributionInv(f, x1, x2, x3); - LBMReal rho, vx1, vx2, vx3, drho; + real rho, vx1, vx2, vx3, drho; calcMacrosFct(f, drho, vx1, vx2, vx3); //calcFeqFct(feq, drho, vx1, vx2, vx3); @@ -83,7 +83,7 @@ void VelocityWithDensityBCAlgorithm::applyBC() if (bcArray->isSolid(nX1, nX2, nX3)) { const int invDir = D3Q27System::INVDIR[fdir]; //LBMReal q =1.0;// bcPtr->getQ(invDir);// m+m q=0 stabiler - LBMReal velocity = bcPtr->getBoundaryVelocity(fdir); + real velocity = bcPtr->getBoundaryVelocity(fdir); //LBMReal fReturn = ((1.0 - q) / (1.0 + q))*((f[fdir] - feq[fdir]*collFactor) / (1.0 - //collFactor)) + ((q*(f[fdir] + f[invDir]) - velocity*rho) / (1.0 + @@ -92,7 +92,7 @@ void VelocityWithDensityBCAlgorithm::applyBC() // if q=1 // LBMReal fReturn = ((q*(f[fdir] + f[invDir]) - velocity*rho) / (1.0 + // q))-drho*D3Q27System::WEIGTH[invDir]; - LBMReal fReturn = (f[fdir] + f[invDir] - velocity * rho) / 2.0 - drho * D3Q27System::WEIGTH[invDir]; + real fReturn = (f[fdir] + f[invDir] - velocity * rho) / 2.0 - drho * D3Q27System::WEIGTH[invDir]; distributions->setDistributionForDirection(fReturn, nX1, nX2, nX3, invDir); } diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.cpp index adce3f920..9551afc8f 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.cpp @@ -272,20 +272,20 @@ void AverageValuesCoProcessor::addData(const SPtr<Block3D> block) float(val<2>(org) - val<2>(nodeOffset) + ix2 * dx), float(val<3>(org) - val<3>(nodeOffset) + ix3 * dx))); - LBMReal vx = (*av)(AvVx, ix1, ix2, ix3); - LBMReal vy = (*av)(AvVy, ix1, ix2, ix3); - LBMReal vz = (*av)(AvVz, ix1, ix2, ix3); + real vx = (*av)(AvVx, ix1, ix2, ix3); + real vy = (*av)(AvVy, ix1, ix2, ix3); + real vz = (*av)(AvVz, ix1, ix2, ix3); - LBMReal vxx = (*av)(AvVxx, ix1, ix2, ix3); - LBMReal vyy = (*av)(AvVyy, ix1, ix2, ix3); - LBMReal vzz = (*av)(AvVzz, ix1, ix2, ix3); + real vxx = (*av)(AvVxx, ix1, ix2, ix3); + real vyy = (*av)(AvVyy, ix1, ix2, ix3); + real vzz = (*av)(AvVzz, ix1, ix2, ix3); - LBMReal vxy = (*av)(AvVxy, ix1, ix2, ix3); - LBMReal vxz = (*av)(AvVxz, ix1, ix2, ix3); - LBMReal vyz = (*av)(AvVyz, ix1, ix2, ix3); + real vxy = (*av)(AvVxy, ix1, ix2, ix3); + real vxz = (*av)(AvVxz, ix1, ix2, ix3); + real vyz = (*av)(AvVyz, ix1, ix2, ix3); - LBMReal vp = (*av)(AvP, ix1, ix2, ix3); - LBMReal vprms = (*av)(AvPrms, ix1, ix2, ix3); + real vp = (*av)(AvP, ix1, ix2, ix3); + real vprms = (*av)(AvPrms, ix1, ix2, ix3); data[index++].push_back(vx); data[index++].push_back(vy); @@ -342,7 +342,7 @@ void AverageValuesCoProcessor::calculateAverageValues(double timeStep) calcMacros = &calcIncompMacroscopicValues; } - LBMReal f[27]; + real f[27]; for (int level = minInitLevel; level <= maxInitLevel; level++) { for (SPtr<Block3D> block : blockVector[level]) { @@ -375,7 +375,7 @@ void AverageValuesCoProcessor::calculateAverageValues(double timeStep) ////////////////////////////////////////////////////////////////////////// // compute velocity ////////////////////////////////////////////////////////////////////////// - LBMReal vx, vy, vz, rho; + real vx, vy, vz, rho; calcMacros(f, rho, vx, vy, vz); double press = D3Q27System::calcPress(f, rho, vx, vy, vz); @@ -383,9 +383,9 @@ void AverageValuesCoProcessor::calculateAverageValues(double timeStep) // compute average values ////////////////////////////////////////////////////////////////////////// - LBMReal timeStepAfterResetRMS = + real timeStepAfterResetRMS = (double)(timeStep - resetStepRMS) / ((double)averageInterval); - LBMReal timeStepAfterResetMeans = + real timeStepAfterResetMeans = (double)(timeStep - resetStepMeans) / ((double)averageInterval); // mean velocity diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.h index 5ba922824..c2d3ae983 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/CoProcessors/AverageValuesCoProcessor.h @@ -83,7 +83,7 @@ private: AvPrms = 10 }; - using CalcMacrosFct = void (*)(const LBMReal *const &, LBMReal &, LBMReal &, LBMReal &, LBMReal &); + using CalcMacrosFct = void (*)(const real *const &, real &, real &, real &, real &); CalcMacrosFct calcMacros; }; #endif diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/CalculateTorqueCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/CalculateTorqueCoProcessor.cpp index b2c7466f7..40b68785e 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/CalculateTorqueCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/CalculateTorqueCoProcessor.cpp @@ -174,7 +174,7 @@ UbTupleDouble3 CalculateTorqueCoProcessor::getForces(int x1, int x2, int x3, SP { UbTupleDouble3 force(0.0,0.0,0.0); - LBMReal fs[D3Q27System::ENDF + 1]; + real fs[D3Q27System::ENDF + 1]; distributions->getDistributionInv(fs, x1, x2, x3); if(bc) diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.cpp index 6dae1c704..b989ba6c3 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/DecreaseViscosityCoProcessor.cpp @@ -61,7 +61,7 @@ void DecreaseViscosityCoProcessor::setViscosity(double step) for (SPtr<Block3D> block : blockVector) { SPtr<ILBMKernel> kernel = block->getKernel(); if (kernel) { - LBMReal collFactor = LBMSystem::calcCollisionFactor(nue, block->getLevel()); + real collFactor = LBMSystem::calcCollisionFactor(nue, block->getLevel()); kernel->setCollisionFactor(collFactor); } } diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.cpp index 40a8011ca..d8703aa91 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.cpp @@ -99,8 +99,8 @@ void InSituCatalystCoProcessor::addData(SPtr<Block3D> block) SPtr<LBMKernel> kernel = block->getKernel(); SPtr<BCArray3D> bcArray = kernel->getBCProcessor()->getBCArray(); SPtr<DistributionArray3D> distributions = kernel->getDataSet()->getFdistributions(); - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal vx1, vx2, vx3, rho; + real f[D3Q27System::ENDF + 1]; + real vx1, vx2, vx3, rho; int minX1 = 0; int minX2 = 0; @@ -216,8 +216,8 @@ void InSituCatalystCoProcessor::addVTKGridData(SPtr<Block3D> block) SPtr<LBMKernel> kernel = block->getKernel(); SPtr<BCArray3D> bcArray = kernel->getBCProcessor()->getBCArray(); SPtr<DistributionArray3D> distributions = kernel->getDataSet()->getFdistributions(); - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal vx1, vx2, vx3, rho; + real f[D3Q27System::ENDF + 1]; + real vx1, vx2, vx3, rho; // knotennummerierung faengt immer bei 0 an! int SWB, SEB, NEB, NWB, SWT, SET, NET, NWT; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.h index 5fa6d3fd1..6595d42ac 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/CoProcessors/InSituCatalystCoProcessor.h @@ -47,8 +47,8 @@ private: std::vector<double> rhoArray; int index; int numOfPoints; - typedef void (*CalcMacrosFct)(const LBMReal *const & /*feq[27]*/, LBMReal & /*(d)rho*/, LBMReal & /*vx1*/, - LBMReal & /*vx2*/, LBMReal & /*vx3*/); + typedef void (*CalcMacrosFct)(const real *const & /*feq[27]*/, real & /*(d)rho*/, real & /*vx1*/, + real & /*vx2*/, real & /*vx3*/); CalcMacrosFct calcMacros; }; #endif // InSituCatalystCoProcessor_h__ diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.cpp index ed258864a..7d9271f1f 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/InSituVTKCoProcessor.cpp @@ -132,15 +132,15 @@ void InSituVTKCoProcessor::addData(SPtr<Block3D> block) SPtr<ILBMKernel> kernel = block->getKernel(); SPtr<BCArray3D> bcArray = kernel->getBCProcessor()->getBCArray(); SPtr<DistributionArray3D> distributions = kernel->getDataSet()->getFdistributions(); - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal vx1, vx2, vx3, rho; + real f[D3Q27System::ENDF + 1]; + real vx1, vx2, vx3, rho; // knotennummerierung faengt immer bei 0 an! int SWB, SEB, NEB, NWB, SWT, SET, NET, NWT; // Funktionszeiger - typedef void (*CalcMacrosFct)(const LBMReal *const & /*feq[27]*/, LBMReal & /*(d)rho*/, LBMReal & /*vx1*/, - LBMReal & /*vx2*/, LBMReal & /*vx3*/); + typedef void (*CalcMacrosFct)(const real *const & /*feq[27]*/, real & /*(d)rho*/, real & /*vx1*/, + real & /*vx2*/, real & /*vx3*/); CalcMacrosFct calcMacros = NULL; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/IntegrateValuesHelper.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/IntegrateValuesHelper.cpp index 4e711bd7c..788777984 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/IntegrateValuesHelper.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/IntegrateValuesHelper.cpp @@ -172,20 +172,20 @@ void IntegrateValuesHelper::calculateAV() ////////////////////////////////////////////////////////////////////////// void IntegrateValuesHelper::calculateMQ() { - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal vx1, vx2, vx3, rho; + real f[D3Q27System::ENDF + 1]; + real vx1, vx2, vx3, rho; clearData(); // Funktionszeiger - typedef void (*CalcMacrosFct)(const LBMReal *const & /*feq[27]*/, LBMReal & /*(d)rho*/, LBMReal & /*vx1*/, - LBMReal & /*vx2*/, LBMReal & /*vx3*/); + typedef void (*CalcMacrosFct)(const real *const & /*feq[27]*/, real & /*(d)rho*/, real & /*vx1*/, + real & /*vx2*/, real & /*vx3*/); CalcMacrosFct calcMacros = NULL; for (CalcNodes cn : cnodes) { SPtr<ILBMKernel> kernel = cn.block->getKernel(); - LBMReal dx = 1.0 / (LBMReal)(1 << cn.block->getLevel()); - LBMReal cellVolume = dx * dx * dx; + real dx = 1.0 / (real)(1 << cn.block->getLevel()); + real cellVolume = dx * dx * dx; if (kernel->getCompressible()) { calcMacros = &D3Q27System::calcCompMacroscopicValues; @@ -247,9 +247,9 @@ void IntegrateValuesHelper::clearData() sTSx1x3 = 0.0; } ////////////////////////////////////////////////////////////////////////// -LBMReal IntegrateValuesHelper::getNumberOfFluidsNodes() { return this->numberOfFluidsNodes; } +real IntegrateValuesHelper::getNumberOfFluidsNodes() { return this->numberOfFluidsNodes; } ////////////////////////////////////////////////////////////////////////// -LBMReal IntegrateValuesHelper::getNumberOfSolidNodes() { return this->numberOfSolidNodes; } +real IntegrateValuesHelper::getNumberOfSolidNodes() { return this->numberOfSolidNodes; } ////////////////////////////////////////////////////////////////////////// GbCuboid3DPtr IntegrateValuesHelper::getBoundingBox() { return this->boundingBox; } ////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/IntegrateValuesHelper.h b/src/cpu/VirtualFluidsCore/CoProcessors/IntegrateValuesHelper.h index d6c87dcfd..985e8b96f 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/IntegrateValuesHelper.h +++ b/src/cpu/VirtualFluidsCore/CoProcessors/IntegrateValuesHelper.h @@ -61,8 +61,8 @@ public: double getTSx3() { return sTSx3; } double getTSx1x3() { return sTSx1x3; } - LBMReal getNumberOfFluidsNodes(); - LBMReal getNumberOfSolidNodes(); + real getNumberOfFluidsNodes(); + real getNumberOfSolidNodes(); GbCuboid3DPtr getBoundingBox(); std::vector<CalcNodes> getCNodes(); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.cpp index 9e5fa087f..ff82dbf93 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.cpp @@ -88,8 +88,8 @@ void LineTimeSeriesCoProcessor::writeLine(const std::string &path) ////////////////////////////////////////////////////////////////////////// void LineTimeSeriesCoProcessor::collectData() { - LBMReal f[27]; - LBMReal vx1, vx2, vx3, rho; + real f[27]; + real vx1, vx2, vx3, rho; MPI_Status status; std::vector<double> v1(length, 0); std::vector<double> v2(length, 0); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.h index 16061b0b2..768f4b9da 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/CoProcessors/LineTimeSeriesCoProcessor.h @@ -42,7 +42,7 @@ private: bool root; SPtr<GbLine3D> line; // function pointer - using CalcMacrosFct = void (*)(const LBMReal *const &, LBMReal &, LBMReal &, LBMReal &, LBMReal &); + using CalcMacrosFct = void (*)(const real *const &, real &, real &, real &, real &); CalcMacrosFct calcMacros; int blocknx; int blockix1; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.cpp index 34c247345..7ea8eb8a9 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationBECoProcessor.cpp @@ -132,9 +132,9 @@ void MPIIOMigrationBECoProcessor::writeDataSet(int step) int doubleCountInBlock = 0; int ic = 0; SPtr<D3Q27EsoTwist3DSplittedVector> D3Q27EsoTwist3DSplittedVectorPtrF = 0, D3Q27EsoTwist3DSplittedVectorPtrH1 = 0, D3Q27EsoTwist3DSplittedVectorPtrH2 = 0; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF = 0, localDistributionsH1 = 0, localDistributionsH2 = 0; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF = 0, nonLocalDistributionsH1 = 0, nonLocalDistributionsH2 = 0; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF = 0, zeroDistributionsH1 = 0, zeroDistributionsH2 = 0; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF = 0, localDistributionsH1 = 0, localDistributionsH2 = 0; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF = 0, nonLocalDistributionsH1 = 0, nonLocalDistributionsH2 = 0; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF = 0, zeroDistributionsH1 = 0, zeroDistributionsH2 = 0; for (int level = minInitLevel; level <= maxInitLevel; level++) { @@ -197,55 +197,55 @@ void MPIIOMigrationBECoProcessor::writeDataSet(int step) dataSetParamStr2.nx[0] * dataSetParamStr2.nx[1] * dataSetParamStr2.nx[2] * dataSetParamStr2.nx[3] + dataSetParamStr3.nx[0] * dataSetParamStr3.nx[1] * dataSetParamStr3.nx[2] * dataSetParamStr3.nx[3]; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> averageDensityArray = block->getKernel()->getDataSet()->getAverageDensity(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> averageDensityArray = block->getKernel()->getDataSet()->getAverageDensity(); if (averageDensityArray) arrPresence.isAverageDensityArrayPresent = true; else arrPresence.isAverageDensityArrayPresent = false; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> AverageVelocityArray3DPtr = block->getKernel()->getDataSet()->getAverageVelocity(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> AverageVelocityArray3DPtr = block->getKernel()->getDataSet()->getAverageVelocity(); if (AverageVelocityArray3DPtr) arrPresence.isAverageVelocityArrayPresent = true; else arrPresence.isAverageVelocityArrayPresent = false; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> AverageFluctArray3DPtr = block->getKernel()->getDataSet()->getAverageFluctuations(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> AverageFluctArray3DPtr = block->getKernel()->getDataSet()->getAverageFluctuations(); if (AverageFluctArray3DPtr) arrPresence.isAverageFluktuationsArrayPresent = true; else arrPresence.isAverageFluktuationsArrayPresent = false; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> AverageTripleArray3DPtr = block->getKernel()->getDataSet()->getAverageTriplecorrelations(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> AverageTripleArray3DPtr = block->getKernel()->getDataSet()->getAverageTriplecorrelations(); if (AverageTripleArray3DPtr) arrPresence.isAverageTripleArrayPresent = true; else arrPresence.isAverageTripleArrayPresent = false; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> ShearStressValArray3DPtr = block->getKernel()->getDataSet()->getShearStressValues(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> ShearStressValArray3DPtr = block->getKernel()->getDataSet()->getShearStressValues(); if (ShearStressValArray3DPtr) arrPresence.isShearStressValArrayPresent = true; else arrPresence.isShearStressValArrayPresent = false; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> relaxationFactor3DPtr = block->getKernel()->getDataSet()->getRelaxationFactor(); + SPtr<CbArray3D<real, IndexerX3X2X1>> relaxationFactor3DPtr = block->getKernel()->getDataSet()->getRelaxationFactor(); if (relaxationFactor3DPtr) arrPresence.isRelaxationFactorPresent = true; else arrPresence.isRelaxationFactorPresent = false; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> phaseField3DPtr1 = block->getKernel()->getDataSet()->getPhaseField(); + SPtr<CbArray3D<real, IndexerX3X2X1>> phaseField3DPtr1 = block->getKernel()->getDataSet()->getPhaseField(); if (phaseField3DPtr1) arrPresence.isPhaseField1Present = true; else arrPresence.isPhaseField1Present = false; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> phaseField3DPtr2 = block->getKernel()->getDataSet()->getPhaseField2(); + SPtr<CbArray3D<real, IndexerX3X2X1>> phaseField3DPtr2 = block->getKernel()->getDataSet()->getPhaseField2(); if (phaseField3DPtr2) arrPresence.isPhaseField2Present = true; else arrPresence.isPhaseField2Present = false; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> pressureFieldPtr = block->getKernel()->getDataSet()->getPressureField(); + SPtr<CbArray3D<real, IndexerX3X2X1>> pressureFieldPtr = block->getKernel()->getDataSet()->getPressureField(); if (pressureFieldPtr) arrPresence.isPressureFieldPresent = true; else @@ -432,7 +432,7 @@ void MPIIOMigrationBECoProcessor::write4DArray(int step, Arrays arrayType, std:: bool firstBlock = true; int doubleCountInBlock = 0; int ic = 0; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> ___Array; + SPtr<CbArray4D<real, IndexerX4X3X2X1>> ___Array; if (comm->isRoot()) { @@ -551,7 +551,7 @@ void MPIIOMigrationBECoProcessor::write3DArray(int step, Arrays arrayType, std:: bool firstBlock = true; int doubleCountInBlock = 0; int ic = 0; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> ___Array; + SPtr<CbArray3D<real, IndexerX3X2X1>> ___Array; if (comm->isRoot()) { @@ -1185,11 +1185,11 @@ void MPIIOMigrationBECoProcessor::readDataSet(int step) index += vectorSize3; SPtr<DistributionArray3D> mFdistributions(new D3Q27EsoTwist3DSplittedVector()); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesF1, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setNonLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesF2, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setZeroDistributions(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesF1, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setNonLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesF2, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setZeroDistributions(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValuesF3, dataSetParamStr3.nx[0], dataSetParamStr3.nx[1], dataSetParamStr3.nx[2]))); dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setNX1(dataSetParamStr1.nx1); @@ -1199,11 +1199,11 @@ void MPIIOMigrationBECoProcessor::readDataSet(int step) SPtr<DistributionArray3D> mH1distributions(new D3Q27EsoTwist3DSplittedVector()); if (multiPhase1) { - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesH11, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setNonLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesH12, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setZeroDistributions(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesH11, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setNonLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesH12, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setZeroDistributions(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValuesH13, dataSetParamStr3.nx[0], dataSetParamStr3.nx[1], dataSetParamStr3.nx[2]))); dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setNX1(dataSetParamStr1.nx1); @@ -1214,11 +1214,11 @@ void MPIIOMigrationBECoProcessor::readDataSet(int step) SPtr<DistributionArray3D> mH2distributions(new D3Q27EsoTwist3DSplittedVector()); if (multiPhase2) { - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesH21, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setNonLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesH22, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setZeroDistributions(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesH21, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setNonLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesH22, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setZeroDistributions(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValuesH23, dataSetParamStr3.nx[0], dataSetParamStr3.nx[1], dataSetParamStr3.nx[2]))); dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setNX1(dataSetParamStr1.nx1); @@ -1231,9 +1231,9 @@ void MPIIOMigrationBECoProcessor::readDataSet(int step) this->lbmKernel->setBlock(block); this->lbmKernel->setNX(std::array<int, 3>{ {dataSetParamStr1.nx1, dataSetParamStr1.nx2, dataSetParamStr1.nx3}}); SPtr<LBMKernel> kernel = this->lbmKernel->clone(); - LBMReal collFactor = LBMSystem::calcCollisionFactor(this->nue, block->getLevel()); - LBMReal collFactorL = LBMSystem::calcCollisionFactor(this->nuL, block->getLevel()); - LBMReal collFactorG = LBMSystem::calcCollisionFactor(this->nuG, block->getLevel()); + real collFactor = LBMSystem::calcCollisionFactor(this->nue, block->getLevel()); + real collFactorL = LBMSystem::calcCollisionFactor(this->nuL, block->getLevel()); + real collFactorG = LBMSystem::calcCollisionFactor(this->nuG, block->getLevel()); kernel->setCollisionFactor(collFactor); kernel->setIndex(block->getX1(), block->getX2(), block->getX3()); kernel->setDeltaT(LBMSystem::getDeltaT(block->getLevel())); @@ -1401,53 +1401,53 @@ void MPIIOMigrationBECoProcessor::readArray(int step, Arrays arrType, std::strin index += nextVectorSize; // fill arrays - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> ___4DArray; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> ___3DArray; + SPtr<CbArray4D<real, IndexerX4X3X2X1>> ___4DArray; + SPtr<CbArray3D<real, IndexerX3X2X1>> ___3DArray; switch (arrType) { case AverageDensity: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setAverageDensity(___4DArray); break; case AverageVelocity: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setAverageVelocity(___4DArray); break; case AverageFluktuations: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setAverageFluctuations(___4DArray); break; case AverageTriple: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setAverageTriplecorrelations(___4DArray); break; case ShearStressVal: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setShearStressValues(___4DArray); break; case RelaxationFactor: - ___3DArray = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + ___3DArray = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2])); block->getKernel()->getDataSet()->setRelaxationFactor(___3DArray); break; case PhaseField1: - ___3DArray = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + ___3DArray = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2])); block->getKernel()->getDataSet()->setPhaseField(___3DArray); break; case PhaseField2: - ___3DArray = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + ___3DArray = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2])); block->getKernel()->getDataSet()->setPhaseField2(___3DArray); break; case PressureField: - ___3DArray = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + ___3DArray = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2])); block->getKernel()->getDataSet()->setPressureField(___3DArray); break; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp index 285d6c28a..47e481dc3 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/MPIIOMigrationCoProcessor.cpp @@ -151,9 +151,9 @@ void MPIIOMigrationCoProcessor::writeDataSet(int step) size_t doubleCountInBlock = 0; int ic = 0; SPtr<D3Q27EsoTwist3DSplittedVector> D3Q27EsoTwist3DSplittedVectorPtrF = 0, D3Q27EsoTwist3DSplittedVectorPtrH1 = 0, D3Q27EsoTwist3DSplittedVectorPtrH2 = 0; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF = 0, localDistributionsH1 = 0, localDistributionsH2 = 0; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF = 0, nonLocalDistributionsH1 = 0, nonLocalDistributionsH2 = 0; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF = 0, zeroDistributionsH1 = 0, zeroDistributionsH2 = 0; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF = 0, localDistributionsH1 = 0, localDistributionsH2 = 0; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF = 0, nonLocalDistributionsH1 = 0, nonLocalDistributionsH2 = 0; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF = 0, zeroDistributionsH1 = 0, zeroDistributionsH2 = 0; SPtr<LBMKernel> kernel; @@ -230,55 +230,55 @@ void MPIIOMigrationCoProcessor::writeDataSet(int step) dataSetParamStr2.nx[0] * dataSetParamStr2.nx[1] * dataSetParamStr2.nx[2] * dataSetParamStr2.nx[3] + dataSetParamStr3.nx[0] * dataSetParamStr3.nx[1] * dataSetParamStr3.nx[2] * dataSetParamStr3.nx[3]; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> averageDensityArray = block->getKernel()->getDataSet()->getAverageDensity(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> averageDensityArray = block->getKernel()->getDataSet()->getAverageDensity(); if (averageDensityArray) arrPresence.isAverageDensityArrayPresent = true; else arrPresence.isAverageDensityArrayPresent = false; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> AverageVelocityArray3DPtr = block->getKernel()->getDataSet()->getAverageVelocity(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> AverageVelocityArray3DPtr = block->getKernel()->getDataSet()->getAverageVelocity(); if (AverageVelocityArray3DPtr) arrPresence.isAverageVelocityArrayPresent = true; else arrPresence.isAverageVelocityArrayPresent = false; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> AverageFluctArray3DPtr = block->getKernel()->getDataSet()->getAverageFluctuations(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> AverageFluctArray3DPtr = block->getKernel()->getDataSet()->getAverageFluctuations(); if (AverageFluctArray3DPtr) arrPresence.isAverageFluktuationsArrayPresent = true; else arrPresence.isAverageFluktuationsArrayPresent = false; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> AverageTripleArray3DPtr = block->getKernel()->getDataSet()->getAverageTriplecorrelations(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> AverageTripleArray3DPtr = block->getKernel()->getDataSet()->getAverageTriplecorrelations(); if (AverageTripleArray3DPtr) arrPresence.isAverageTripleArrayPresent = true; else arrPresence.isAverageTripleArrayPresent = false; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> ShearStressValArray3DPtr = block->getKernel()->getDataSet()->getShearStressValues(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> ShearStressValArray3DPtr = block->getKernel()->getDataSet()->getShearStressValues(); if (ShearStressValArray3DPtr) arrPresence.isShearStressValArrayPresent = true; else arrPresence.isShearStressValArrayPresent = false; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> relaxationFactor3DPtr = block->getKernel()->getDataSet()->getRelaxationFactor(); + SPtr<CbArray3D<real, IndexerX3X2X1>> relaxationFactor3DPtr = block->getKernel()->getDataSet()->getRelaxationFactor(); if (relaxationFactor3DPtr) arrPresence.isRelaxationFactorPresent = true; else arrPresence.isRelaxationFactorPresent = false; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> phaseField3DPtr1 = block->getKernel()->getDataSet()->getPhaseField(); + SPtr<CbArray3D<real, IndexerX3X2X1>> phaseField3DPtr1 = block->getKernel()->getDataSet()->getPhaseField(); if (phaseField3DPtr1) arrPresence.isPhaseField1Present = true; else arrPresence.isPhaseField1Present = false; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> phaseField3DPtr2 = block->getKernel()->getDataSet()->getPhaseField2(); + SPtr<CbArray3D<real, IndexerX3X2X1>> phaseField3DPtr2 = block->getKernel()->getDataSet()->getPhaseField2(); if (phaseField3DPtr2) arrPresence.isPhaseField2Present = true; else arrPresence.isPhaseField2Present = false; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> pressureFieldPtr = block->getKernel()->getDataSet()->getPressureField(); + SPtr<CbArray3D<real, IndexerX3X2X1>> pressureFieldPtr = block->getKernel()->getDataSet()->getPressureField(); if (pressureFieldPtr) arrPresence.isPressureFieldPresent = true; else @@ -483,7 +483,7 @@ void MPIIOMigrationCoProcessor::write4DArray(int step, Arrays arrayType, std::st bool firstBlock = true; size_t doubleCountInBlock = 0; int ic = 0; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> ___Array; + SPtr<CbArray4D<real, IndexerX4X3X2X1>> ___Array; for (int level = minInitLevel; level <= maxInitLevel; level++) { @@ -613,7 +613,7 @@ void MPIIOMigrationCoProcessor::write3DArray(int step, Arrays arrayType, std::st bool firstBlock = true; size_t doubleCountInBlock = 0; int ic = 0; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> ___Array; + SPtr<CbArray3D<real, IndexerX3X2X1>> ___Array; for (int level = minInitLevel; level <= maxInitLevel; level++) { @@ -1101,22 +1101,22 @@ void MPIIOMigrationCoProcessor::readDataSet(int step) index += vectorSize3; SPtr<DistributionArray3D> mFdistributions(new D3Q27EsoTwist3DSplittedVector()); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesF1, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setNonLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesF2, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setZeroDistributions(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesF1, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setNonLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesF2, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setZeroDistributions(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValuesF3, dataSetParamStr3.nx[0], dataSetParamStr3.nx[1], dataSetParamStr3.nx[2]))); //----------------------------------------- H1 ---------------------------------------------------- SPtr<DistributionArray3D> mH1distributions(new D3Q27EsoTwist3DSplittedVector()); if (multiPhase1) { - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesH11, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setNonLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesH12, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setZeroDistributions(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesH11, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setNonLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesH12, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setZeroDistributions(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValuesH13, dataSetParamStr3.nx[0], dataSetParamStr3.nx[1], dataSetParamStr3.nx[2]))); dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setNX1(dataSetParamStr1.nx1); @@ -1127,11 +1127,11 @@ void MPIIOMigrationCoProcessor::readDataSet(int step) SPtr<DistributionArray3D> mH2distributions(new D3Q27EsoTwist3DSplittedVector()); if (multiPhase2) { - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesH21, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setNonLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesH22, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setZeroDistributions(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesH21, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setNonLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesH22, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setZeroDistributions(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValuesH23, dataSetParamStr3.nx[0], dataSetParamStr3.nx[1], dataSetParamStr3.nx[2]))); dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setNX1(dataSetParamStr1.nx1); @@ -1294,8 +1294,8 @@ void MPIIOMigrationCoProcessor::readArray(int step, Arrays arrType, std::string size_t index = 0; size_t nextVectorSize = dataSetParamStr.nx[0] * dataSetParamStr.nx[1] * dataSetParamStr.nx[2] * dataSetParamStr.nx[3]; std::vector<double> vectorsOfValues; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> ___4DArray; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> ___3DArray; + SPtr<CbArray4D<real, IndexerX4X3X2X1>> ___4DArray; + SPtr<CbArray3D<real, IndexerX3X2X1>> ___3DArray; for (std::size_t n = 0; n < blocksCount; n++) { @@ -1308,47 +1308,47 @@ void MPIIOMigrationCoProcessor::readArray(int step, Arrays arrType, std::string switch (arrType) { case AverageDensity: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setAverageDensity(___4DArray); break; case AverageVelocity: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setAverageVelocity(___4DArray); break; case AverageFluktuations: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setAverageFluctuations(___4DArray); break; case AverageTriple: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setAverageTriplecorrelations(___4DArray); break; case ShearStressVal: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setShearStressValues(___4DArray); break; case RelaxationFactor: - ___3DArray = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + ___3DArray = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2])); block->getKernel()->getDataSet()->setRelaxationFactor(___3DArray); break; case PhaseField1: - ___3DArray = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + ___3DArray = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2])); block->getKernel()->getDataSet()->setPhaseField(___3DArray); break; case PhaseField2: - ___3DArray = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + ___3DArray = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2])); block->getKernel()->getDataSet()->setPhaseField2(___3DArray); break; case PressureField: - ___3DArray = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + ___3DArray = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2])); block->getKernel()->getDataSet()->setPressureField(___3DArray); break; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.cpp index ea45bb141..e10da4b0a 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/MPIIORestartCoProcessor.cpp @@ -156,9 +156,9 @@ void MPIIORestartCoProcessor::writeDataSet(int step) int ic = 0; SPtr<D3Q27EsoTwist3DSplittedVector> D3Q27EsoTwist3DSplittedVectorPtrF, D3Q27EsoTwist3DSplittedVectorPtrH1, D3Q27EsoTwist3DSplittedVectorPtrH2; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF, localDistributionsH1, localDistributionsH2; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF, nonLocalDistributionsH1, nonLocalDistributionsH2; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF, zeroDistributionsH1, zeroDistributionsH2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF, localDistributionsH1, localDistributionsH2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF, nonLocalDistributionsH1, nonLocalDistributionsH2; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF, zeroDistributionsH1, zeroDistributionsH2; SPtr<LBMKernel> kernel; @@ -238,55 +238,55 @@ void MPIIORestartCoProcessor::writeDataSet(int step) dataSetParamStr2.nx[0] * dataSetParamStr2.nx[1] * dataSetParamStr2.nx[2] * dataSetParamStr2.nx[3] + dataSetParamStr3.nx[0] * dataSetParamStr3.nx[1] * dataSetParamStr3.nx[2] * dataSetParamStr3.nx[3]; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> averageDensityArray = kernel->getDataSet()->getAverageDensity(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> averageDensityArray = kernel->getDataSet()->getAverageDensity(); if (averageDensityArray) arrPresence.isAverageDensityArrayPresent = true; else arrPresence.isAverageDensityArrayPresent = false; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> AverageVelocityArray3DPtr = kernel->getDataSet()->getAverageVelocity(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> AverageVelocityArray3DPtr = kernel->getDataSet()->getAverageVelocity(); if (AverageVelocityArray3DPtr) arrPresence.isAverageVelocityArrayPresent = true; else arrPresence.isAverageVelocityArrayPresent = false; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> AverageFluctArray3DPtr = kernel->getDataSet()->getAverageFluctuations(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> AverageFluctArray3DPtr = kernel->getDataSet()->getAverageFluctuations(); if (AverageFluctArray3DPtr) arrPresence.isAverageFluktuationsArrayPresent = true; else arrPresence.isAverageFluktuationsArrayPresent = false; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> AverageTripleArray3DPtr = kernel->getDataSet()->getAverageTriplecorrelations(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> AverageTripleArray3DPtr = kernel->getDataSet()->getAverageTriplecorrelations(); if (AverageTripleArray3DPtr) arrPresence.isAverageTripleArrayPresent = true; else arrPresence.isAverageTripleArrayPresent = false; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> ShearStressValArray3DPtr = kernel->getDataSet()->getShearStressValues(); + SPtr<CbArray4D<real, IndexerX4X3X2X1>> ShearStressValArray3DPtr = kernel->getDataSet()->getShearStressValues(); if (ShearStressValArray3DPtr) arrPresence.isShearStressValArrayPresent = true; else arrPresence.isShearStressValArrayPresent = false; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> relaxationFactor3DPtr = kernel->getDataSet()->getRelaxationFactor(); + SPtr<CbArray3D<real, IndexerX3X2X1>> relaxationFactor3DPtr = kernel->getDataSet()->getRelaxationFactor(); if (relaxationFactor3DPtr) arrPresence.isRelaxationFactorPresent = true; else arrPresence.isRelaxationFactorPresent = false; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> phaseField3DPtr1 = kernel->getDataSet()->getPhaseField(); + SPtr<CbArray3D<real, IndexerX3X2X1>> phaseField3DPtr1 = kernel->getDataSet()->getPhaseField(); if (phaseField3DPtr1) arrPresence.isPhaseField1Present = true; else arrPresence.isPhaseField1Present = false; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> phaseField3DPtr2 = kernel->getDataSet()->getPhaseField2(); + SPtr<CbArray3D<real, IndexerX3X2X1>> phaseField3DPtr2 = kernel->getDataSet()->getPhaseField2(); if (phaseField3DPtr2) arrPresence.isPhaseField2Present = true; else arrPresence.isPhaseField2Present = false; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> pressureFieldPtr = block->getKernel()->getDataSet()->getPressureField(); + SPtr<CbArray3D<real, IndexerX3X2X1>> pressureFieldPtr = block->getKernel()->getDataSet()->getPressureField(); if (pressureFieldPtr) arrPresence.isPressureFieldPresent = true; else @@ -531,7 +531,7 @@ void MPIIORestartCoProcessor::write4DArray(int step, Arrays arrayType, std::stri bool firstBlock = true; int doubleCountInBlock = 0; int ic = 0; - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> ___Array; + SPtr<CbArray4D<real, IndexerX4X3X2X1>> ___Array; for (int level = minInitLevel; level <= maxInitLevel; level++) { @@ -688,7 +688,7 @@ void MPIIORestartCoProcessor::write3DArray(int step, Arrays arrayType, std::stri bool firstBlock = true; size_t doubleCountInBlock = 0; int ic = 0; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> ___Array; + SPtr<CbArray3D<real, IndexerX3X2X1>> ___Array; for (int level = minInitLevel; level <= maxInitLevel; level++) { @@ -2301,11 +2301,11 @@ void MPIIORestartCoProcessor::readDataSet(int step) index += vectorSize3; SPtr<DistributionArray3D> mFdistributions(new D3Q27EsoTwist3DSplittedVector()); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesF1, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setNonLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesF2, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setZeroDistributions(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesF1, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setNonLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesF2, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setZeroDistributions(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValuesF3, dataSetParamStr3.nx[0], dataSetParamStr3.nx[1], dataSetParamStr3.nx[2]))); dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mFdistributions)->setNX1(dataSetParamStr1.nx1); @@ -2315,11 +2315,11 @@ void MPIIORestartCoProcessor::readDataSet(int step) SPtr<DistributionArray3D> mH1distributions(new D3Q27EsoTwist3DSplittedVector()); if (multiPhase1) { - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesH11, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setNonLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesH12, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setZeroDistributions(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesH11, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setNonLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesH12, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setZeroDistributions(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValuesH13, dataSetParamStr3.nx[0], dataSetParamStr3.nx[1], dataSetParamStr3.nx[2]))); dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH1distributions)->setNX1(dataSetParamStr1.nx1); @@ -2330,11 +2330,11 @@ void MPIIORestartCoProcessor::readDataSet(int step) SPtr<DistributionArray3D> mH2distributions(new D3Q27EsoTwist3DSplittedVector()); if (multiPhase2) { - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesH21, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setNonLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(vectorsOfValuesH22, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); - dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setZeroDistributions(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesH21, dataSetParamStr1.nx[0], dataSetParamStr1.nx[1], dataSetParamStr1.nx[2], dataSetParamStr1.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setNonLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(vectorsOfValuesH22, dataSetParamStr2.nx[0], dataSetParamStr2.nx[1], dataSetParamStr2.nx[2], dataSetParamStr2.nx[3]))); + dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setZeroDistributions(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValuesH23, dataSetParamStr3.nx[0], dataSetParamStr3.nx[1], dataSetParamStr3.nx[2]))); dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(mH2distributions)->setNX1(dataSetParamStr1.nx1); @@ -2518,8 +2518,8 @@ void MPIIORestartCoProcessor::readArray(int step, Arrays arrType, std::string fn } //----------------------------- restore data --------------------------------- - SPtr<CbArray4D<LBMReal, IndexerX4X3X2X1>> ___4DArray; - SPtr<CbArray3D<LBMReal, IndexerX3X2X1>> ___3DArray; + SPtr<CbArray4D<real, IndexerX4X3X2X1>> ___4DArray; + SPtr<CbArray3D<real, IndexerX3X2X1>> ___3DArray; size_t index = 0; size_t nextVectorSize = dataSetParamStr.nx[0] * dataSetParamStr.nx[1] * dataSetParamStr.nx[2] * dataSetParamStr.nx[3]; @@ -2536,47 +2536,47 @@ void MPIIORestartCoProcessor::readArray(int step, Arrays arrType, std::string fn switch (arrType) { case AverageDensity: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setAverageDensity(___4DArray); break; case AverageVelocity: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setAverageVelocity(___4DArray); break; case AverageFluktuations: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setAverageFluctuations(___4DArray); break; case AverageTriple: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setAverageTriplecorrelations(___4DArray); break; case ShearStressVal: - ___4DArray = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<LBMReal, IndexerX4X3X2X1>( + ___4DArray = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr(new CbArray4D<real, IndexerX4X3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2], dataSetParamStr.nx[3])); block->getKernel()->getDataSet()->setShearStressValues(___4DArray); break; case RelaxationFactor: - ___3DArray = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + ___3DArray = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2])); block->getKernel()->getDataSet()->setRelaxationFactor(___3DArray); break; case PhaseField1: - ___3DArray = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + ___3DArray = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2])); block->getKernel()->getDataSet()->setPhaseField(___3DArray); break; case PhaseField2: - ___3DArray = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + ___3DArray = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2])); block->getKernel()->getDataSet()->setPhaseField2(___3DArray); break; case PressureField: - ___3DArray = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>( + ___3DArray = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>( vectorsOfValues, dataSetParamStr.nx[0], dataSetParamStr.nx[1], dataSetParamStr.nx[2])); block->getKernel()->getDataSet()->setPressureField(___3DArray); break; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.cpp index 53e98e9e1..e07a5d016 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.cpp @@ -92,11 +92,11 @@ bool MicrophoneArrayCoProcessor::addMicrophone(Vector3D coords) void MicrophoneArrayCoProcessor::collectData(double step) { for (std::size_t i = 0; i < microphones.size(); i++) { - LBMReal f[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; microphones[i]->distridution->getDistribution(f, val<1>(microphones[i]->nodeIndexes), val<2>(microphones[i]->nodeIndexes), val<3>(microphones[i]->nodeIndexes)); - LBMReal vx1, vx2, vx3, rho; + real vx1, vx2, vx3, rho; calcMacros(f, rho, vx1, vx2, vx3); *strVector[i] << step << ';' << rho << '\n'; } diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.h index a10f30440..37fb32c0a 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.h @@ -52,7 +52,7 @@ private: int count; int micID; - using CalcMacrosFct = void (*)(const LBMReal *const &, LBMReal &, LBMReal &, LBMReal &, LBMReal &); + using CalcMacrosFct = void (*)(const real *const &, real &, real &, real &, real &); CalcMacrosFct calcMacros; }; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.cpp index ae385117c..99025a180 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.cpp @@ -42,8 +42,8 @@ void PressureCoefficientCoProcessor::collectData(double step) ////////////////////////////////////////////////////////////////////////// void PressureCoefficientCoProcessor::calculateRho() { - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal vx1, vx2, vx3, rho; + real f[D3Q27System::ENDF + 1]; + real vx1, vx2, vx3, rho; std::vector<double> values; std::vector<double> rvalues; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.h index 42927a731..78aeecbd6 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/CoProcessors/PressureCoefficientCoProcessor.h @@ -46,7 +46,7 @@ private: std::vector<double> outValues; - using CalcMacrosFct = void (*)(const LBMReal *const &, LBMReal &, LBMReal &, LBMReal &, LBMReal &); + using CalcMacrosFct = void (*)(const real *const &, real &, real &, real &, real &); CalcMacrosFct calcMacros; }; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.cpp index 74cd5a09c..013805e88 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.cpp @@ -17,8 +17,8 @@ PressureDifferenceCoProcessor::PressureDifferenceCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, SPtr<IntegrateValuesHelper> h1, - SPtr<IntegrateValuesHelper> h2, LBMReal rhoReal, - LBMReal uReal, LBMReal uLB, std::shared_ptr<vf::mpi::Communicator> comm) + SPtr<IntegrateValuesHelper> h2, real rhoReal, + real uReal, real uLB, std::shared_ptr<vf::mpi::Communicator> comm) : CoProcessor(grid, s), path(path), h1(h1), h2(h2), comm(comm) { diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.h index 6de68a977..93a1d0da3 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/CoProcessors/PressureDifferenceCoProcessor.h @@ -24,8 +24,8 @@ class PressureDifferenceCoProcessor : public CoProcessor { public: PressureDifferenceCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, const std::string &path, - SPtr<IntegrateValuesHelper> h1, SPtr<IntegrateValuesHelper> h2, LBMReal rhoReal, - LBMReal uReal, LBMReal uLB, + SPtr<IntegrateValuesHelper> h1, SPtr<IntegrateValuesHelper> h2, real rhoReal, + real uReal, real uLB, /*const SPtr<LBMUnitConverter> conv,*/ std::shared_ptr<vf::mpi::Communicator> comm); ~PressureDifferenceCoProcessor() override; @@ -37,9 +37,9 @@ protected: SPtr<LBMUnitConverter> conv; void collectData(double step); std::shared_ptr<vf::mpi::Communicator> comm; - LBMReal factor1; //= (1/3)*rhoReal*(uReal/uLB)^2 for calculation pReal = rhoLB * (1/3)*rhoReal*(uReal/uLB)^2, + real factor1; //= (1/3)*rhoReal*(uReal/uLB)^2 for calculation pReal = rhoLB * (1/3)*rhoReal*(uReal/uLB)^2, //rhoReal and uReal in SI - LBMReal factor2; //= rhoReal*(uReal/uLB)^2 for calculation pReal = press * rhoReal*(uReal/uLB)^2, rhoReal and + real factor2; //= rhoReal*(uReal/uLB)^2 for calculation pReal = press * rhoReal*(uReal/uLB)^2, rhoReal and //uReal in SI }; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.cpp index 1fbdb6f7f..6708004e9 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.cpp @@ -135,36 +135,36 @@ void QCriterionCoProcessor::addData(const SPtr<Block3D> block) ///////////////////////////// // Geschwindigkeitsvektoren - LBMReal vE[3]; - LBMReal vW[3]; - LBMReal vN[3]; - LBMReal vS[3]; - LBMReal vT[3]; - LBMReal vB[3]; + real vE[3]; + real vW[3]; + real vN[3]; + real vS[3]; + real vT[3]; + real vB[3]; // hole geschwindigkeiten an nachbarknoten getNeighborVelocities(1, 0, 0, ix1, ix2, ix3, block, vE, vW); getNeighborVelocities(0, 1, 0, ix1, ix2, ix3, block, vN, vS); getNeighborVelocities(0, 0, 1, ix1, ix2, ix3, block, vT, vB); ////////////////////////////////// // derivatives - LBMReal duxdy = (vN[xdir] - vS[xdir]) * 0.5; - LBMReal duydx = (vE[ydir] - vW[ydir]) * 0.5; - LBMReal duxdz = (vT[xdir] - vB[xdir]) * 0.5; - LBMReal duzdx = (vE[zdir] - vW[zdir]) * 0.5; - LBMReal duydz = (vT[ydir] - vB[ydir]) * 0.5; - LBMReal duzdy = (vN[zdir] - vS[zdir]) * 0.5; - - LBMReal duxdx = (vE[xdir] - vW[xdir]) * 0.5; - LBMReal duydy = (vN[ydir] - vS[ydir]) * 0.5; - LBMReal duzdz = (vT[zdir] - vB[zdir]) * 0.5; - - LBMReal scaleFactor = + real duxdy = (vN[xdir] - vS[xdir]) * 0.5; + real duydx = (vE[ydir] - vW[ydir]) * 0.5; + real duxdz = (vT[xdir] - vB[xdir]) * 0.5; + real duzdx = (vE[zdir] - vW[zdir]) * 0.5; + real duydz = (vT[ydir] - vB[ydir]) * 0.5; + real duzdy = (vN[zdir] - vS[zdir]) * 0.5; + + real duxdx = (vE[xdir] - vW[xdir]) * 0.5; + real duydy = (vN[ydir] - vS[ydir]) * 0.5; + real duzdz = (vT[zdir] - vB[zdir]) * 0.5; + + real scaleFactor = (double)(1 << (currentLevel - minInitLevel)); // pow(2.0,(double)(currentLevel-minInitLevel));//finer grid -> // current level higher. coarsest grid: currentLevel=minInitLevel=0 // Q=-0.5*(S_ij S_ij - Omega_ij Omega_ij) => regions where vorticity is larger than strain rate - LBMReal q = -(duxdy * duydx + duxdz * duzdx + duydz * duzdy + duxdx * duxdx + duydy * duydy + + real q = -(duxdy * duydx + duxdz * duzdx + duydz * duzdy + duxdx * duxdx + duydy * duydy + duzdz * duzdz) * scaleFactor; @@ -201,7 +201,7 @@ void QCriterionCoProcessor::addData(const SPtr<Block3D> block) ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void QCriterionCoProcessor::getNeighborVelocities(int offx, int offy, int offz, int ix1, int ix2, int ix3, - const SPtr<Block3D> block, LBMReal *vE, LBMReal *vW) + const SPtr<Block3D> block, real *vE, real *vW) { SPtr<ILBMKernel> kernel = block->getKernel(); SPtr<BCArray3D> bcArray = kernel->getBCProcessor()->getBCArray(); @@ -282,12 +282,12 @@ void QCriterionCoProcessor::getNeighborVelocities(int offx, int offy, int offz, SPtr<ILBMKernel> kernelW = blockNeighW->getKernel(); SPtr<BCArray3D> bcArrayW = kernelW->getBCProcessor()->getBCArray(); SPtr<DistributionArray3D> distributionsW = kernelW->getDataSet()->getFdistributions(); - LBMReal fW2[27]; - LBMReal fW[27]; - LBMReal f0[27]; - LBMReal fE[27]; - LBMReal v0[3]; - LBMReal vW2[3]; + real fW2[27]; + real fW[27]; + real f0[27]; + real fE[27]; + real v0[3]; + real vW2[3]; // distributionsW->getDistribution(fW2, std::max(ix1+2*offx,1), std::max(ix2+2*offy,1), // std::max(ix3+2*offz,1)); distributionsW->getDistribution(fW, std::max(ix1+offx,1), std::max(ix2+offy,1), // std::max(ix3+offz,1)); distributionsW->getDistribution(f0, std::max(ix1 ,1), std::max(ix2 ,1), @@ -314,7 +314,7 @@ void QCriterionCoProcessor::getNeighborVelocities(int offx, int offy, int offz, SPtr<ILBMKernel> kernelW = blockNeighW->getKernel(); SPtr<BCArray3D> bcArrayW = kernelW->getBCProcessor()->getBCArray(); SPtr<DistributionArray3D> distributionsW = kernelW->getDataSet()->getFdistributions(); - LBMReal fW[27]; + real fW[27]; if (offx == 1) { distributionsW->getDistribution(fW, (distributions->getNX1()) - 1, ix2, @@ -330,20 +330,20 @@ void QCriterionCoProcessor::getNeighborVelocities(int offx, int offy, int offz, } else { // data available in current block: - LBMReal fW[27]; + real fW[27]; distributions->getDistribution(fW, ix1 - offx, ix2 - offy, ix3 - offz); computeVelocity(fW, vW, compressible); } if (checkInterpolation) { // in plus-direction data is available in current block because of ghost layers - LBMReal fE[27]; + real fE[27]; distributions->getDistribution(fE, ix1 + offx, ix2 + offy, ix3 + offz); // E:= plus 1 computeVelocity(fE, vE, compressible); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -void QCriterionCoProcessor::computeVelocity(LBMReal *f, LBMReal *v, bool compressible) +void QCriterionCoProcessor::computeVelocity(real *f, real *v, bool compressible) { ////////////////////////////////////////////////////////////////////////// // compute x,y,z-velocity components from distribution diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.h index 55f0df5a2..f88dda47b 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/CoProcessors/QCriterionCoProcessor.h @@ -41,10 +41,10 @@ protected: //! After writing to .vtk-file, all vectors are reset void clearData(); //! Computes macroscopic velocities - void computeVelocity(LBMReal *f, LBMReal *v, bool compressible); + void computeVelocity(real *f, real *v, bool compressible); //! Computes average and RMS values of macroscopic quantities void getNeighborVelocities(int offx, int offy, int offz, int ix1, int ix2, int ix3, const SPtr<Block3D> block, - LBMReal *vE, LBMReal *vW); + real *vE, real *vW); private: void init(); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp index ce0108270..01ec666da 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/ShearStressCoProcessor.cpp @@ -127,8 +127,8 @@ void ShearStressCoProcessor::calculateShearStress(double timeStep) using namespace vf::lbm::dir; using namespace D3Q27System; - LBMReal f[27]; - LBMReal vx, vy, vz, sxx, syy, szz, sxy, syz, sxz; + real f[27]; + real vx, vy, vz, sxx, syy, szz, sxy, syz, sxz; for (SPtr<D3Q27Interactor> interactor : interactors) { typedef std::map<SPtr<Block3D>, std::set<std::vector<int>>> TransNodeIndicesMap; @@ -142,7 +142,7 @@ void ShearStressCoProcessor::calculateShearStress(double timeStep) SPtr<ShearStressValuesArray3D> ssv = kernel->getDataSet()->getShearStressValues(); int ghostLayer = kernel->getGhostLayerWidth(); - LBMReal collFactor = kernel->getCollisionFactor(); + real collFactor = kernel->getCollisionFactor(); int minX1 = ghostLayer; int maxX1 = (int)bcArray->getNX1() - 1 - ghostLayer; @@ -194,11 +194,11 @@ void ShearStressCoProcessor::calculateShearStress(double timeStep) (((f[DIR_PPP] + f[DIR_MMM]) - (f[DIR_PMP] + f[DIR_MPM])) + ((f[DIR_PMM] + f[DIR_MPP]) - (f[DIR_MMP] + f[DIR_PPM])) + (-(f[DIR_0PM] + f[DIR_0MP]) + (f[DIR_0PP] + f[DIR_0MM])) - vy * vz); - LBMReal dxxMyy = 3.0 / 2.0 * collFactor / (collFactor - 1.0) * + real dxxMyy = 3.0 / 2.0 * collFactor / (collFactor - 1.0) * (((f[DIR_P0P] + f[DIR_M0M]) + (f[DIR_P0M] + f[DIR_M0P])) - ((f[DIR_0PM] + f[DIR_0MP]) + (f[DIR_0PP] + f[DIR_0MM])) + ((f[DIR_P00] + f[DIR_M00]) - (f[DIR_0P0] + f[DIR_0M0])) - vx * vx + vy * vy); - LBMReal dxxMzz = 3.0 / 2.0 * collFactor / (collFactor - 1.0) * + real dxxMzz = 3.0 / 2.0 * collFactor / (collFactor - 1.0) * ((((f[DIR_PP0] + f[DIR_MM0]) + (f[DIR_PM0] + f[DIR_MP0])) - ((f[DIR_0PM] + f[DIR_0MP]) + (f[DIR_0PP] + f[DIR_0MM]))) + ((f[DIR_P00] + f[DIR_M00]) - (f[DIR_00P] + f[DIR_00M])) - vx * vx + vz * vz); @@ -258,7 +258,7 @@ void ShearStressCoProcessor::addData() SPtr<ShearStressValuesArray3D> ssv = kernel->getDataSet()->getShearStressValues(); int ghostLayer = kernel->getGhostLayerWidth(); - LBMReal collFactor = kernel->getCollisionFactor(); + real collFactor = kernel->getCollisionFactor(); int minX1 = ghostLayer; int maxX1 = (int)bcArray->getNX1() - 1 - ghostLayer; @@ -609,7 +609,7 @@ void ShearStressCoProcessor::findPlane(int ix1, int ix2, int ix3, SPtr<Grid3D> g if (bcPtrIn) { for (int fdir = D3Q27System::FSTARTDIR; fdir <= D3Q27System::FENDDIR; fdir++) { if (ii <= 2) { - LBMReal q = bcPtrIn->getQ(fdir); + real q = bcPtrIn->getQ(fdir); if (q != 999.00000) { if (fdir == DIR_P00) { // if(!bcArray->isSolid(i, j, k))continue; @@ -857,7 +857,7 @@ void ShearStressCoProcessor::initDistance() SPtr<ShearStressValuesArray3D> ssv = kernel->getDataSet()->getShearStressValues(); int ghostLayer = kernel->getGhostLayerWidth(); - // LBMReal collFactor = kernel->getCollisionFactor(); + // real collFactor = kernel->getCollisionFactor(); int minX1 = ghostLayer; int maxX1 = (int)bcArray->getNX1() - 1 - ghostLayer; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.cpp index d2874876e..1c7dd54b7 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.cpp @@ -267,8 +267,8 @@ void TimeAveragedValuesCoProcessor::addData(const SPtr<Block3D> block) maxX2 -= 2; maxX3 -= 2; - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal vx1, vx2, vx3, rho; + real f[D3Q27System::ENDF + 1]; + real vx1, vx2, vx3, rho; // D3Q27BoundaryConditionPtr bcPtr; @@ -384,7 +384,7 @@ void TimeAveragedValuesCoProcessor::calculateAverageValues(double timeSteps) maxX2 -= 2; maxX3 -= 2; - LBMReal rho {0.}, ux {0.}, uy {0.}, uz {0.}, uxx {0.}, uzz {0.}, uyy {0.}, uxy {0.}, uxz {0.}, uyz {0.}, rhof {0.}; + real rho {0.}, ux {0.}, uy {0.}, uz {0.}, uxx {0.}, uzz {0.}, uyy {0.}, uxy {0.}, uxz {0.}, uyz {0.}, rhof {0.}; for (int ix3 = minX3; ix3 <= maxX3; ix3++) { for (int ix2 = minX2; ix2 <= maxX2; ix2++) { @@ -470,7 +470,7 @@ void TimeAveragedValuesCoProcessor::calculateSubtotal(double step) // DEBUG///////////////////// // UBLOG(logINFO, "calculateSubtotal::step = " << step); //////////////////////////// - LBMReal f[27]; + real f[27]; //#ifdef _OPENMP //#pragma omp parallel private (f) @@ -518,7 +518,7 @@ void TimeAveragedValuesCoProcessor::calculateSubtotal(double step) ////////////////////////////////////////////////////////////////////////// // compute velocity ////////////////////////////////////////////////////////////////////////// - LBMReal vx, vy, vz, rho; + real vx, vy, vz, rho; calcMacros(f, rho, vx, vy, vz); // double press = D3Q27System::calcPress(f, rho, vx, vy, vz); diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.h index 155f293a0..d52677af8 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/CoProcessors/TimeAveragedValuesCoProcessor.h @@ -111,7 +111,7 @@ private: int iMinC; int iMaxC; - using CalcMacrosFct = void (*)(const LBMReal *const &, LBMReal &, LBMReal &, LBMReal &, LBMReal &); + using CalcMacrosFct = void (*)(const real *const &, real &, real &, real &, real &); CalcMacrosFct calcMacros; bool planarAveraging; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp index 0fc1af791..04fb1990c 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/TurbulenceIntensityCoProcessor.cpp @@ -143,7 +143,7 @@ void TurbulenceIntensityCoProcessor::addData(const SPtr<Block3D> block) (*av)(ix1, ix2, ix3, AvVy) * (*av)(ix1, ix2, ix3, AvVy) + (*av)(ix1, ix2, ix3, AvVz) * (*av)(ix1, ix2, ix3, AvVz)); - LBMReal ti = sqrt(temp); + real ti = sqrt(temp); if (UbMath::isNaN(ti)) UB_THROW( @@ -186,8 +186,8 @@ void TurbulenceIntensityCoProcessor::calculateAverageValues(double timeStep) int minInitLevel = this->grid->getCoarsestInitializedLevel(); int maxInitLevel = this->grid->getFinestInitializedLevel(); - LBMReal f[27]; - LBMReal vx, vy, vz; + real f[27]; + real vx, vy, vz; for (int level = minInitLevel; level <= maxInitLevel; level++) { for (SPtr<Block3D> block : blockVector[level]) { diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.cpp index fc70b841f..4e4c40516 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.cpp @@ -128,8 +128,8 @@ void WriteMQFromSelectionCoProcessor::addDataMQ(SPtr<Block3D> block) SPtr<ILBMKernel> kernel = block->getKernel(); SPtr<BCArray3D> bcArray = kernel->getBCProcessor()->getBCArray(); SPtr<DistributionArray3D> distributions = kernel->getDataSet()->getFdistributions(); - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal vx1, vx2, vx3, rho; + real f[D3Q27System::ENDF + 1]; + real vx1, vx2, vx3, rho; if (block->getKernel()->getCompressible()) { calcMacros = &D3Q27System::calcCompMacroscopicValues; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.h index 0dc3976b1..ca31cf660 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMQFromSelectionCoProcessor.h @@ -50,7 +50,7 @@ private: std::shared_ptr<vf::mpi::Communicator> comm; SPtr<GbObject3D> gbObject; - using CalcMacrosFct = void (*)(const LBMReal *const &, LBMReal &, LBMReal &, LBMReal &, LBMReal &); + using CalcMacrosFct = void (*)(const real *const &, real &, real &, real &, real &); CalcMacrosFct calcMacros; }; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.cpp index b886271b7..dbec52f6f 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.cpp @@ -162,8 +162,8 @@ void WriteMacroscopicQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) SPtr<ILBMKernel> kernel = block->getKernel(); SPtr<BCArray3D> bcArray = kernel->getBCProcessor()->getBCArray(); SPtr<DistributionArray3D> distributions = kernel->getDataSet()->getFdistributions(); - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal vx1, vx2, vx3, rho; + real f[D3Q27System::ENDF + 1]; + real vx1, vx2, vx3, rho; // knotennummerierung faengt immer bei 0 an! int SWB, SEB, NEB, NWB, SWT, SET, NET, NWT; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h index 7fb1844e0..0a0460278 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h @@ -92,7 +92,7 @@ private: int gridRank; std::shared_ptr<vf::mpi::Communicator> comm; - using CalcMacrosFct = void (*)(const LBMReal *const &, LBMReal &, LBMReal &, LBMReal &, LBMReal &); + using CalcMacrosFct = void (*)(const real *const &, real &, real &, real &, real &); CalcMacrosFct calcMacros; }; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.cpp index c71a12ee6..773106c9e 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.cpp @@ -162,8 +162,8 @@ void WriteMacroscopicQuantitiesPlusMassCoProcessor::addDataMQ(SPtr<Block3D> bloc SPtr<ILBMKernel> kernel = block->getKernel(); SPtr<BCArray3D> bcArray = kernel->getBCProcessor()->getBCArray(); SPtr<DistributionArray3D> distributions = kernel->getDataSet()->getFdistributions(); - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal vx1, vx2, vx3, rho; + real f[D3Q27System::ENDF + 1]; + real vx1, vx2, vx3, rho; // knotennummerierung faengt immer bei 0 an! int SWB, SEB, NEB, NWB, SWT, SET, NET, NWT; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.h index 07f1a1267..874f5ece6 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMacroscopicQuantitiesPlusMassCoProcessor.h @@ -92,7 +92,7 @@ private: int gridRank; std::shared_ptr<vf::mpi::Communicator> comm; - using CalcMacrosFct = void (*)(const LBMReal *const &, LBMReal &, LBMReal &, LBMReal &, LBMReal &); + using CalcMacrosFct = void (*)(const real *const &, real &, real &, real &, real &); CalcMacrosFct calcMacros; }; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp index 8ee1d0c57..153ff2edd 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.cpp @@ -175,15 +175,15 @@ void WriteMultiphaseQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) SPtr<PressureFieldArray3D> pressure; if (kernel->getDataSet()->getPressureField()) pressure = kernel->getDataSet()->getPressureField(); - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal phi[D3Q27System::ENDF + 1]; - LBMReal phi2[D3Q27System::ENDF + 1]; - LBMReal vx1, vx2, vx3, rho, p1, beta, kappa; - LBMReal densityRatio = kernel->getDensityRatio(); + real f[D3Q27System::ENDF + 1]; + real phi[D3Q27System::ENDF + 1]; + real phi2[D3Q27System::ENDF + 1]; + real vx1, vx2, vx3, rho, p1, beta, kappa; + real densityRatio = kernel->getDensityRatio(); kernel->getMultiphaseModelParameters(beta, kappa); - LBMReal phiL = kernel->getPhiL(); - LBMReal phiH = kernel->getPhiH(); + real phiL = kernel->getPhiL(); + real phiH = kernel->getPhiH(); // knotennummerierung faengt immer bei 0 an! int SWB, SEB, NEB, NWB, SWT, SET, NET, NWT; @@ -219,10 +219,10 @@ void WriteMultiphaseQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) // nummern vergeben und node vector erstellen + daten sammeln CbArray3D<int> nodeNumbers((int)maxX1, (int)maxX2, (int)maxX3, -1); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField( - new CbArray3D<LBMReal, IndexerX3X2X1>(maxX1, maxX2, maxX3, -999.0)); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField2( - new CbArray3D<LBMReal, IndexerX3X2X1>(maxX1, maxX2, maxX3, -999.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField( + new CbArray3D<real, IndexerX3X2X1>(maxX1, maxX2, maxX3, -999.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField2( + new CbArray3D<real, IndexerX3X2X1>(maxX1, maxX2, maxX3, -999.0)); for (int ix3 = minX3; ix3 < maxX3; ix3++) { for (int ix2 = minX2; ix2 < maxX2; ix2++) { @@ -263,10 +263,10 @@ void WriteMultiphaseQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) } int nr = (int)nodes.size(); - LBMReal dX1_phi; - LBMReal dX2_phi; - LBMReal dX3_phi; - LBMReal mu; + real dX1_phi; + real dX2_phi; + real dX3_phi; + real mu; for (int ix3 = minX3; ix3 <= maxX3; ix3++) { for (int ix2 = minX2; ix2 <= maxX2; ix2++) { @@ -355,12 +355,12 @@ void WriteMultiphaseQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) } distributionsF->getDistribution(f, ix1, ix2, ix3); - //LBMReal dU = (*divU)(ix1, ix2, ix3); + //real dU = (*divU)(ix1, ix2, ix3); - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0 / densityRatio; + real rhoH = 1.0; + real rhoL = 1.0 / densityRatio; // LBMReal rhoToPhi = (1.0 - 1.0/densityRatio); - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); // rho = phi[ZERO] + (1.0 - phi[ZERO])*1.0/densityRatio; rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); @@ -473,41 +473,41 @@ void WriteMultiphaseQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) } } -LBMReal WriteMultiphaseQuantitiesCoProcessor::gradX1_phi(const LBMReal *const &h) +real WriteMultiphaseQuantitiesCoProcessor::gradX1_phi(const real *const &h) { using namespace D3Q27System; - LBMReal sum = 0.0; + real sum = 0.0; for (int k = FSTARTDIR; k <= FENDDIR; k++) { sum += WEIGTH[k] * DX1[k] * h[k]; } return 3.0 * sum; } -LBMReal WriteMultiphaseQuantitiesCoProcessor::gradX2_phi(const LBMReal *const &h) +real WriteMultiphaseQuantitiesCoProcessor::gradX2_phi(const real *const &h) { using namespace D3Q27System; - LBMReal sum = 0.0; + real sum = 0.0; for (int k = FSTARTDIR; k <= FENDDIR; k++) { sum += WEIGTH[k] * DX2[k] * h[k]; } return 3.0 * sum; } -LBMReal WriteMultiphaseQuantitiesCoProcessor::gradX3_phi(const LBMReal *const &h) +real WriteMultiphaseQuantitiesCoProcessor::gradX3_phi(const real *const &h) { using namespace D3Q27System; - LBMReal sum = 0.0; + real sum = 0.0; for (int k = FSTARTDIR; k <= FENDDIR; k++) { sum += WEIGTH[k] * DX3[k] * h[k]; } return 3.0 * sum; } -LBMReal WriteMultiphaseQuantitiesCoProcessor::nabla2_phi(const LBMReal *const &h) +real WriteMultiphaseQuantitiesCoProcessor::nabla2_phi(const real *const &h) { using namespace vf::lbm::dir; using namespace D3Q27System; - LBMReal sum = 0.0; + real sum = 0.0; for (int k = FSTARTDIR; k <= FENDDIR; k++) { sum += WEIGTH[k] * (h[k] - h[DIR_000]); } diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.h b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.h index 3825f9d4d..ea3e2dafc 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.h +++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteMultiphaseQuantitiesCoProcessor.h @@ -92,12 +92,12 @@ private: int gridRank; std::shared_ptr<vf::mpi::Communicator> comm; - LBMReal gradX1_phi(const LBMReal *const &); - LBMReal gradX2_phi(const LBMReal *const &); - LBMReal gradX3_phi(const LBMReal *const &); - LBMReal nabla2_phi(const LBMReal *const &); + real gradX1_phi(const real *const &); + real gradX2_phi(const real *const &); + real gradX3_phi(const real *const &); + real nabla2_phi(const real *const &); - using CalcMacrosFct = void (*)(const LBMReal *const &, LBMReal &, LBMReal &, LBMReal &, LBMReal &); + using CalcMacrosFct = void (*)(const real *const &, real &, real &, real &, real &); CalcMacrosFct calcMacros; }; diff --git a/src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.cpp b/src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.cpp index 900c4bc95..e0ed0f182 100644 --- a/src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/CoProcessors/WriteThixotropyQuantitiesCoProcessor.cpp @@ -174,8 +174,8 @@ void WriteThixotropyQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) SPtr<DistributionArray3D> distributionsF = kernel->getDataSet()->getFdistributions(); //SPtr<DistributionArray3D> distributionsH = kernel->getDataSet()->getHdistributions(); //LBMReal collFactorF = staticPointerCast<ThixotropyExpLBMKernel>(kernel)->getCollisionFactorF(); - LBMReal collFactor = kernel->getCollisionFactor(); - LBMReal f[D3Q27System::ENDF + 1]; + real collFactor = kernel->getCollisionFactor(); + real f[D3Q27System::ENDF + 1]; //LBMReal h[D3Q27System::ENDF + 1]; //LBMReal viscosity=0; // lambda, gammaDot; @@ -243,12 +243,12 @@ void WriteThixotropyQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) //data[index++].push_back(collFactorF); distributionsF->getDistribution(f, ix1, ix2, ix3); - LBMReal rho = D3Q27System::getDensity(f); - LBMReal shearRate = D3Q27System::getShearRate(f, collFactor); + real rho = D3Q27System::getDensity(f); + real shearRate = D3Q27System::getShearRate(f, collFactor); //LBMReal omega = Rheology::getHerschelBulkleyCollFactor(collFactor, shearRate, rho); //LBMReal omega = Rheology::getPowellEyringCollFactor(collFactor, shearRate, rho); - LBMReal omega = Rheology::getBinghamCollFactor(collFactor, shearRate, rho); - LBMReal viscosity = (omega == 0) ? 0 : UbMath::c1o3 * (UbMath::c1/omega-UbMath::c1o2); + real omega = Rheology::getBinghamCollFactor(collFactor, shearRate, rho); + real viscosity = (omega == 0) ? 0 : UbMath::c1o3 * (UbMath::c1/omega-UbMath::c1o2); data[index++].push_back(viscosity); diff --git a/src/cpu/VirtualFluidsCore/Connectors/CoarseToFineVectorConnector.h b/src/cpu/VirtualFluidsCore/Connectors/CoarseToFineVectorConnector.h index 9ecbf7de9..bd55dd462 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/CoarseToFineVectorConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/CoarseToFineVectorConnector.h @@ -123,7 +123,7 @@ protected: InterpolationProcessorPtr iprocessor; void writeICellFtoData(vector_type &data, int &index, D3Q27ICell &icellF); - void writeNodeToVector(vector_type &data, int &index, LBMReal *inode); + void writeNodeToVector(vector_type &data, int &index, real *inode); void getLocalMinMax(const int &gMin, const int &gMax, const bool &even, int &lMin, int &lMax, const bool &dataDistribution); void getLocalMinMax(int &minX1, int &minX2, int &minX3, int &maxX1, int &maxX2, int &maxX3); @@ -135,7 +135,7 @@ protected: void distributeReceiveVector(SPtr<DistributionArray3D> fTo, const int &lMinX1, const int &lMinX2, const int &lMinX3, const int &lMaxX1, const int &lMaxX2, const int &lMaxX3, vector_type &data, int &index); - void readICellCfromData(vector_type &data, int &index, LBMReal *icellC); + void readICellCfromData(vector_type &data, int &index, real *icellC); void findCFnodes(); void findCFnodes(SPtr<DistributionArray3D> fFrom, const int &lMinX1, const int &lMinX2, const int &lMinX3, @@ -307,7 +307,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::init() bMaxX3 = (int)block.lock()->getKernel()->getDataSet()->getFdistributions()->getNX3(); int sendSize = 0; - LBMReal initValue = -999.0; + real initValue = -999.0; int sendDataPerNode = 27 /*f*/; int iCellSize = 8; // size of interpolation cell @@ -359,28 +359,28 @@ void CoarseToFineVectorConnector<VectorTransmitter>::init() if (senderEvenEvenSW) senderEvenEvenSW->getData().resize(sendSize, initValue); else - senderEvenEvenSW = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<LBMReal>>()); + senderEvenEvenSW = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<real>>()); if (senderEvenOddNW) senderEvenOddNW->getData().resize(sendSize, initValue); else - senderEvenOddNW = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<LBMReal>>()); + senderEvenOddNW = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<real>>()); if (senderOddEvenSE) senderOddEvenSE->getData().resize(sendSize, initValue); else - senderOddEvenSE = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<LBMReal>>()); + senderOddEvenSE = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<real>>()); if (senderOddOddNE) senderOddOddNE->getData().resize(sendSize, initValue); else - senderOddOddNE = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<LBMReal>>()); + senderOddOddNE = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<real>>()); if (!receiverEvenEvenSW) - receiverEvenEvenSW = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<LBMReal>>()); + receiverEvenEvenSW = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<real>>()); if (!receiverEvenOddNW) - receiverEvenOddNW = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<LBMReal>>()); + receiverEvenOddNW = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<real>>()); if (!receiverOddEvenSE) - receiverOddEvenSE = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<LBMReal>>()); + receiverOddEvenSE = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<real>>()); if (!receiverOddOddNE) - receiverOddOddNE = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<LBMReal>>()); + receiverOddOddNE = VectorTransmitterPtr(new TbLocalTransmitter<CbVector<real>>()); // findCFnodes(); } @@ -832,7 +832,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectorExt(SPtr<Dist if (data.size() == 0) return; int ix1, ix2, ix3; - LBMReal xoff, yoff, zoff; + real xoff, yoff, zoff; SPtr<BCArray3D> bcArray = block.lock()->getKernel()->getBCProcessor()->getBCArray(); for (ix3 = lMinX3; ix3 < lMaxX3; ix3++) { @@ -882,7 +882,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::writeICellFtoData(vector_ty } ////////////////////////////////////////////////////////////////////////// template <typename VectorTransmitter> -void CoarseToFineVectorConnector<VectorTransmitter>::writeNodeToVector(vector_type &data, int &index, LBMReal *inode) +void CoarseToFineVectorConnector<VectorTransmitter>::writeNodeToVector(vector_type &data, int &index, real *inode) { for (int i = D3Q27System::STARTF; i < D3Q27System::ENDF + 1; i++) { data[index++] = inode[i]; @@ -1611,7 +1611,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVector(SPt for (ix3 = lMinX3; ix3 < lMaxX3; ix3++) { for (ix2 = lMinX2; ix2 < lMaxX2; ix2++) { for (ix1 = lMinX1; ix1 < lMaxX1; ix1++) { - LBMReal icellC[27]; + real icellC[27]; this->readICellCfromData(data, index, icellC); iprocessor->writeINodeInv(fTo, icellC, ix1, ix2, ix3); } @@ -1620,7 +1620,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVector(SPt } ////////////////////////////////////////////////////////////////////////// template <typename VectorTransmitter> -void CoarseToFineVectorConnector<VectorTransmitter>::readICellCfromData(vector_type &data, int &index, LBMReal *icellC) +void CoarseToFineVectorConnector<VectorTransmitter>::readICellCfromData(vector_type &data, int &index, real *icellC) { for (int i = D3Q27System::STARTF; i < D3Q27System::ENDF + 1; i++) { icellC[i] = data[index++]; @@ -1978,7 +1978,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::findCFnodes(SPtr<Distributi if (data.size() == 0) return; int ix1, ix2, ix3; - LBMReal xoff, yoff, zoff; + real xoff, yoff, zoff; SPtr<BCArray3D> bcArray = block.lock()->getKernel()->getBCProcessor()->getBCArray(); for (ix3 = lMinX3; ix3 < lMaxX3; ix3++) { diff --git a/src/cpu/VirtualFluidsCore/Connectors/FineToCoarseVectorConnector.h b/src/cpu/VirtualFluidsCore/Connectors/FineToCoarseVectorConnector.h index 5ae61ddf0..68f799da9 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/FineToCoarseVectorConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/FineToCoarseVectorConnector.h @@ -115,8 +115,8 @@ protected: CFconnectorType connType; - void writeICellCtoData(vector_type &data, int &index, LBMReal *icellC); - void writeNodeToVector(vector_type &data, int &index, LBMReal *inode); + void writeICellCtoData(vector_type &data, int &index, real *icellC); + void writeNodeToVector(vector_type &data, int &index, real *inode); //void getLocalMinMax(int &minX1, int &minX2, int &minX3, int &maxX1, int &maxX2, int &maxX3); void getLocalMinMax(int &minX1, int &minX2, int &minX3, int &maxX1, int &maxX2, int &maxX3, CFconnectorType connType); @@ -128,7 +128,7 @@ protected: const int &lMaxX1, const int &lMaxX2, const int &lMaxX3, vector_type &data, int &index); void readICellFfromData(vector_type &data, int &index, D3Q27ICell &icellF); - void readNodeFromVector(vector_type &data, int &index, LBMReal *inode); + void readNodeFromVector(vector_type &data, int &index, real *inode); void getLocalOffsets(const int &gMax, int &oMin); void getLocalMins(int &minX1, int &minX2, int &minX3, const int &oMinX1, const int &oMinX2, const int &oMinX3); @@ -233,7 +233,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::init() bMaxX3 = (int)block.lock()->getKernel()->getDataSet()->getFdistributions()->getNX3(); int sendSize = 0; - LBMReal initValue = -999.0; + real initValue = -999.0; int sendDataPerNode = 27 /*f*/; int iCellSize = 1; // size of interpolation cell @@ -794,13 +794,13 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVector(SPtr<Distrib const int &lMaxX3, vector_type &data, int &index) { int ix1, ix2, ix3; - LBMReal xoff, yoff, zoff; + real xoff, yoff, zoff; SPtr<BCArray3D> bcArray = block.lock()->getKernel()->getBCProcessor()->getBCArray(); for (ix3 = lMinX3; ix3 < lMaxX3; ix3 += 2) { for (ix2 = lMinX2; ix2 < lMaxX2; ix2 += 2) { for (ix1 = lMinX1; ix1 < lMaxX1; ix1 += 2) { - LBMReal icellC[27]; + real icellC[27]; D3Q27ICell icellF; int howManySolids = iprocessor->iCellHowManySolids(bcArray, ix1, ix2, ix3); @@ -831,7 +831,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVector(SPtr<Distrib } ////////////////////////////////////////////////////////////////////////// template <typename VectorTransmitter> -void FineToCoarseVectorConnector<VectorTransmitter>::writeICellCtoData(vector_type &data, int &index, LBMReal *icellC) +void FineToCoarseVectorConnector<VectorTransmitter>::writeICellCtoData(vector_type &data, int &index, real *icellC) { for (int i = D3Q27System::STARTF; i < D3Q27System::ENDF + 1; i++) { data[index++] = icellC[i]; @@ -1150,7 +1150,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::readICellFfromData(vector_t } ////////////////////////////////////////////////////////////////////////// template <typename VectorTransmitter> -void FineToCoarseVectorConnector<VectorTransmitter>::readNodeFromVector(vector_type &data, int &index, LBMReal *inode) +void FineToCoarseVectorConnector<VectorTransmitter>::readNodeFromVector(vector_type &data, int &index, real *inode) { for (int i = D3Q27System::STARTF; i < D3Q27System::ENDF + 1; i++) { inode[i] = data[index++]; diff --git a/src/cpu/VirtualFluidsCore/Connectors/FineToCoarseVectorConnectorTest.cpp b/src/cpu/VirtualFluidsCore/Connectors/FineToCoarseVectorConnectorTest.cpp index 8a38a055c..1d400f74e 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/FineToCoarseVectorConnectorTest.cpp +++ b/src/cpu/VirtualFluidsCore/Connectors/FineToCoarseVectorConnectorTest.cpp @@ -32,7 +32,7 @@ TEST_F(FineToCoarseVectorConnectorTest, getLocalMinMax) //FineToCoarseVectorConnector(SPtr<Block3D> block, VectorTransmitterPtr sender, VectorTransmitterPtr receiver, //int sendDir, InterpolationProcessorPtr iprocessor, CFconnectorType connType); InterpolationProcessorPtr iprocessor; - auto sut = FineToCoarseVectorConnector<TbTransmitter<CbVector<LBMReal>>>(block, senderFCevenEvenSW, receiverFCevenEvenSW, sendDir, iprocessor, EvenOddNW); + auto sut = FineToCoarseVectorConnector<TbTransmitter<CbVector<real>>>(block, senderFCevenEvenSW, receiverFCevenEvenSW, sendDir, iprocessor, EvenOddNW); //(int &minX1, int &minX2, int &minX3, int &maxX1, int &maxX2, int &maxX3); diff --git a/src/cpu/VirtualFluidsCore/Connectors/OneDistributionFullDirectConnector.h b/src/cpu/VirtualFluidsCore/Connectors/OneDistributionFullDirectConnector.h index 7344b0fe1..44d3f9fc2 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/OneDistributionFullDirectConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/OneDistributionFullDirectConnector.h @@ -54,13 +54,13 @@ protected: inline void exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To) override; private: - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFrom; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFrom; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFrom; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFrom; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFrom; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFrom; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTo; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTo; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTo; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTo; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTo; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTo; SPtr<EsoTwist3D> fFrom; SPtr<EsoTwist3D> fTo; diff --git a/src/cpu/VirtualFluidsCore/Connectors/OneDistributionFullVectorConnector.h b/src/cpu/VirtualFluidsCore/Connectors/OneDistributionFullVectorConnector.h index 2342fe66f..a9a53455c 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/OneDistributionFullVectorConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/OneDistributionFullVectorConnector.h @@ -31,9 +31,9 @@ protected: inline void distributeData(vector_type &rdata, int &index, int x1, int x2, int x3) override; private: - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; SPtr<EsoTwist3D> fDis; }; diff --git a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.h b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.h index 1f53ca70a..21a37e342 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.h @@ -58,29 +58,29 @@ protected: inline void exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To) override; private: - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh2; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh2; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh2; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh2; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh2; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh2; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh2; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh2; SPtr<EsoTwist3D> fFrom, hFrom, hFrom2; SPtr<EsoTwist3D> fTo, hTo, hTo2; diff --git a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.h b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.h index 408a8e79d..e124251d8 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.h @@ -68,21 +68,21 @@ protected: inline void distributeData(vector_type &rdata, int &index, int x1, int x2, int x3) override; private: - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; SPtr<EsoTwist3D> fDis; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localHdistributions; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalHdistributions; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroHdistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localHdistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalHdistributions; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroHdistributions; SPtr<EsoTwist3D> hDis; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localH2distributions; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalH2distributions; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroH2distributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localH2distributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalH2distributions; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroH2distributions; SPtr<EsoTwist3D> h2Dis; diff --git a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsFullDirectConnector.h b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsFullDirectConnector.h index 6ccac29f4..3cb443a47 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsFullDirectConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsFullDirectConnector.h @@ -55,29 +55,29 @@ protected: inline void exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To) override; private: - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh2; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh2; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh2; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh2; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh2; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh2; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh2; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh2; SPtr<EsoTwist3D> fFrom, hFrom, hFrom2; SPtr<EsoTwist3D> fTo, hTo, hTo2; diff --git a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsFullVectorConnector.h b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsFullVectorConnector.h index c37ff0698..794ba2d01 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsFullVectorConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/ThreeDistributionsFullVectorConnector.h @@ -62,21 +62,21 @@ protected: inline void distributeData(vector_type &rdata, int &index, int x1, int x2, int x3) override; private: - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; SPtr<EsoTwist3D> fDis; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localHdistributions; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalHdistributions; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroHdistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localHdistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalHdistributions; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroHdistributions; SPtr<EsoTwist3D> hDis; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localH2distributions; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalH2distributions; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroH2distributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localH2distributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalH2distributions; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroH2distributions; SPtr<EsoTwist3D> h2Dis; diff --git a/src/cpu/VirtualFluidsCore/Connectors/TransmitterType.h b/src/cpu/VirtualFluidsCore/Connectors/TransmitterType.h index b36da8850..f300f005e 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/TransmitterType.h +++ b/src/cpu/VirtualFluidsCore/Connectors/TransmitterType.h @@ -39,8 +39,8 @@ #include "basics/transmitter/TbTransmitterLocal.h" #include <PointerDefinitions.h> -using VectorTransmitter = TbTransmitter<CbVector<LBMReal>>; +using VectorTransmitter = TbTransmitter<CbVector<real>>; using vector_type = VectorTransmitter::value_type; -using VectorTransmitterPtr = SPtr<TbTransmitter<CbVector<LBMReal>>>; +using VectorTransmitterPtr = SPtr<TbTransmitter<CbVector<real>>>; #endif // TransmitterType_h__ diff --git a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.h b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.h index bc431f9f3..bbd1c5a34 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.h @@ -58,21 +58,21 @@ protected: inline void exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To) override; private: - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; SPtr<EsoTwist3D> fFrom, hFrom; SPtr<EsoTwist3D> fTo, hTo; diff --git a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.h b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.h index 508c9e90a..d5769c726 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.h @@ -68,15 +68,15 @@ protected: inline void distributeData(vector_type &rdata, int &index, int x1, int x2, int x3) override; private: - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; SPtr<EsoTwist3D> fDis; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localHdistributions; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalHdistributions; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroHdistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localHdistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalHdistributions; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroHdistributions; SPtr<EsoTwist3D> hDis; diff --git a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsFullDirectConnector.h b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsFullDirectConnector.h index fbcfd9830..625b8f6e3 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsFullDirectConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsFullDirectConnector.h @@ -55,21 +55,21 @@ protected: inline void exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To) override; private: - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; SPtr<EsoTwist3D> fFrom, hFrom; SPtr<EsoTwist3D> fTo, hTo; diff --git a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsFullVectorConnector.h b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsFullVectorConnector.h index 406acb5b8..b2cb384d6 100644 --- a/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsFullVectorConnector.h +++ b/src/cpu/VirtualFluidsCore/Connectors/TwoDistributionsFullVectorConnector.h @@ -62,15 +62,15 @@ protected: inline void distributeData(vector_type &rdata, int &index, int x1, int x2, int x3) override; private: - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; SPtr<EsoTwist3D> fDis; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localHdistributions; - CbArray4D <LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalHdistributions; - CbArray3D <LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroHdistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localHdistributions; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalHdistributions; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroHdistributions; SPtr<EsoTwist3D> hDis; diff --git a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSoA.cpp b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSoA.cpp index 6dd96d81a..07e62e78a 100644 --- a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSoA.cpp +++ b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSoA.cpp @@ -4,66 +4,66 @@ D3Q27EsoTwist3DSoA::D3Q27EsoTwist3DSoA() = default; ////////////////////////////////////////////////////////////////////////// -D3Q27EsoTwist3DSoA::D3Q27EsoTwist3DSoA(const size_t &nx1, const size_t &nx2, const size_t &nx3, LBMReal value) +D3Q27EsoTwist3DSoA::D3Q27EsoTwist3DSoA(const size_t &nx1, const size_t &nx2, const size_t &nx3, real value) { this->NX1 = nx1; this->NX2 = nx2; this->NX3 = nx3; - d.E = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.W = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.N = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.S = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.T = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.B = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.NE = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.SW = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.SE = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.NW = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.TE = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.BW = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.BE = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.TW = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.TN = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.BS = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.BN = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.TS = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.TNE = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.TNW = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.TSE = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.TSW = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.BNE = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.BNW = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.BSE = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); - d.BSW = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr( - new CbArray3D<LBMReal, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.E = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.W = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.N = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.S = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.T = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.B = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.NE = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.SW = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.SE = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.NW = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.TE = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.BW = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.BE = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.TW = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.TN = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.BS = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.BN = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.TS = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.TNE = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.TNW = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.TSE = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.TSW = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.BNE = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.BNW = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.BSE = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); + d.BSW = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr( + new CbArray3D<real, IndexerX3X2X1>(nx1 + 1, nx2 + 1, nx3 + 1, value)); d.REST = - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx1, nx2, nx3, value)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx1, nx2, nx3, value)); } ////////////////////////////////////////////////////////////////////////// D3Q27EsoTwist3DSoA::~D3Q27EsoTwist3DSoA() = default; @@ -85,7 +85,7 @@ void D3Q27EsoTwist3DSoA::swap() std::swap(d.TSW, d.BNE); } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSoA::getDistribution(LBMReal *const f, size_t x1, size_t x2, size_t x3) +void D3Q27EsoTwist3DSoA::getDistribution(real *const f, size_t x1, size_t x2, size_t x3) { using namespace vf::lbm::dir; @@ -124,7 +124,7 @@ void D3Q27EsoTwist3DSoA::getDistribution(LBMReal *const f, size_t x1, size_t x2, f[DIR_000] = (*d.REST)(x1, x2, x3); } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSoA::setDistribution(const LBMReal *const f, size_t x1, size_t x2, size_t x3) +void D3Q27EsoTwist3DSoA::setDistribution(const real *const f, size_t x1, size_t x2, size_t x3) { using namespace vf::lbm::dir; @@ -163,7 +163,7 @@ void D3Q27EsoTwist3DSoA::setDistribution(const LBMReal *const f, size_t x1, size (*d.REST)(x1, x2, x3) = f[DIR_000]; } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSoA::getDistributionInv(LBMReal *const f, size_t x1, size_t x2, size_t x3) +void D3Q27EsoTwist3DSoA::getDistributionInv(real *const f, size_t x1, size_t x2, size_t x3) { using namespace vf::lbm::dir; @@ -198,7 +198,7 @@ void D3Q27EsoTwist3DSoA::getDistributionInv(LBMReal *const f, size_t x1, size_t f[DIR_000] = (*d.REST)(x1, x2, x3); } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSoA::setDistributionInv(const LBMReal *const f, size_t x1, size_t x2, size_t x3) +void D3Q27EsoTwist3DSoA::setDistributionInv(const real *const f, size_t x1, size_t x2, size_t x3) { //(*this->localDistributions)(D3Q27System::ET_E,x1, x2, x3) = f[D3Q27System::DIR_P00]; //(*this->localDistributions)(D3Q27System::ET_N,x1, x2, x3) = f[D3Q27System::DIR_0P0]; @@ -231,7 +231,7 @@ void D3Q27EsoTwist3DSoA::setDistributionInv(const LBMReal *const f, size_t x1, s //(*this->zeroDistributions)(x1,x2,x3) = f[D3Q27System::REST]; } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSoA::setDistributionForDirection(const LBMReal *const f, size_t x1, size_t x2, size_t x3, +void D3Q27EsoTwist3DSoA::setDistributionForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) { // bool directionFlag = false; @@ -294,7 +294,7 @@ void D3Q27EsoTwist3DSoA::setDistributionForDirection(const LBMReal *const f, siz //#endif //DEBUG } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSoA::setDistributionForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, int direction) +void D3Q27EsoTwist3DSoA::setDistributionForDirection(real f, size_t x1, size_t x2, size_t x3, int direction) { // switch (direction) //{ @@ -384,7 +384,7 @@ void D3Q27EsoTwist3DSoA::setDistributionForDirection(LBMReal f, size_t x1, size_ //} } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSoA::setDistributionInvForDirection(const LBMReal *const f, size_t x1, size_t x2, size_t x3, +void D3Q27EsoTwist3DSoA::setDistributionInvForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) { // bool directionFlag = false; @@ -450,7 +450,7 @@ void D3Q27EsoTwist3DSoA::setDistributionInvForDirection(const LBMReal *const f, //#endif //DEBUG } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSoA::setDistributionInvForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, +void D3Q27EsoTwist3DSoA::setDistributionInvForDirection(real f, size_t x1, size_t x2, size_t x3, unsigned long int direction) { // switch (direction) @@ -541,7 +541,7 @@ void D3Q27EsoTwist3DSoA::setDistributionInvForDirection(LBMReal f, size_t x1, si //} } ////////////////////////////////////////////////////////////////////////// -LBMReal D3Q27EsoTwist3DSoA::getDistributionInvForDirection(size_t /*x1*/, size_t /*x2*/, size_t /*x3*/, +real D3Q27EsoTwist3DSoA::getDistributionInvForDirection(size_t /*x1*/, size_t /*x2*/, size_t /*x3*/, int /*direction*/) { // switch (direction) diff --git a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSoA.h b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSoA.h index a3eb85e37..204e6fe15 100644 --- a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSoA.h +++ b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSoA.h @@ -9,67 +9,67 @@ //#include <boost/serialization/base_object.hpp> struct Distributions { - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr E; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr W; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr N; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr S; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr T; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr B; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr NE; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr SW; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr SE; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr NW; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr TE; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr BW; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr BE; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr TW; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr TN; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr BS; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr BN; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr TS; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr TNE; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr TNW; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr TSE; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr TSW; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr BNE; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr BNW; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr BSE; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr BSW; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr REST; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr E; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr W; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr N; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr S; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr T; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr B; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr NE; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr SW; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr SE; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr NW; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr TE; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr BW; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr BE; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr TW; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr TN; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr BS; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr BN; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr TS; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr TNE; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr TNW; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr TSE; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr TSW; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr BNE; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr BNW; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr BSE; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr BSW; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr REST; }; class D3Q27EsoTwist3DSoA : public EsoTwist3D { public: D3Q27EsoTwist3DSoA(); - D3Q27EsoTwist3DSoA(const size_t &nx1, const size_t &nx2, const size_t &nx3, LBMReal value); + D3Q27EsoTwist3DSoA(const size_t &nx1, const size_t &nx2, const size_t &nx3, real value); ////////////////////////////////////////////////////////////////////////// ~D3Q27EsoTwist3DSoA() override; ////////////////////////////////////////////////////////////////////////// void swap() override; ////////////////////////////////////////////////////////////////////////// - void getDistribution(LBMReal *const f, size_t x1, size_t x2, size_t x3) override; + void getDistribution(real *const f, size_t x1, size_t x2, size_t x3) override; ////////////////////////////////////////////////////////////////////////// - void setDistribution(const LBMReal *const f, size_t x1, size_t x2, size_t x3) override; + void setDistribution(const real *const f, size_t x1, size_t x2, size_t x3) override; //////////////////////////////////////////////////////////////////////// - void getDistributionInv(LBMReal *const f, size_t x1, size_t x2, size_t x3) override; + void getDistributionInv(real *const f, size_t x1, size_t x2, size_t x3) override; ////////////////////////////////////////////////////////////////////////// - void setDistributionInv(const LBMReal *const f, size_t x1, size_t x2, size_t x3) override; + void setDistributionInv(const real *const f, size_t x1, size_t x2, size_t x3) override; ////////////////////////////////////////////////////////////////////////// - void setDistributionForDirection(const LBMReal *const f, size_t x1, size_t x2, size_t x3, + void setDistributionForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override; ////////////////////////////////////////////////////////////////////////// - void setDistributionForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, int direction) override; + void setDistributionForDirection(real f, size_t x1, size_t x2, size_t x3, int direction) override; ////////////////////////////////////////////////////////////////////////// - LBMReal getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) override; + real getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) override; ////////////////////////////////////////////////////////////////////////// - void setDistributionInvForDirection(const LBMReal *const f, size_t x1, size_t x2, size_t x3, + void setDistributionInvForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override; ////////////////////////////////////////////////////////////////////////// - void setDistributionInvForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, + void setDistributionInvForDirection(real f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override; ////////////////////////////////////////////////////////////////////////// - LBMReal getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) override; + real getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) override; ////////////////////////////////////////////////////////////////////////// size_t getNX1() const override; ////////////////////////////////////////////////////////////////////////// @@ -79,7 +79,7 @@ public: ////////////////////////////////////////////////////////////////////////// Distributions getDistributions(); ////////////////////////////////////////////////////////////////////////// - void getDistributionAfterLastStep(LBMReal *const f, size_t x1, size_t x2, size_t x3); + void getDistributionAfterLastStep(real *const f, size_t x1, size_t x2, size_t x3); protected: Distributions d; diff --git a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.cpp b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.cpp index c9cab90b0..4660e7b83 100644 --- a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.cpp +++ b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.cpp @@ -36,25 +36,25 @@ D3Q27EsoTwist3DSplittedVector::D3Q27EsoTwist3DSplittedVector() = default; ////////////////////////////////////////////////////////////////////////// -D3Q27EsoTwist3DSplittedVector::D3Q27EsoTwist3DSplittedVector(size_t nx1, size_t nx2, size_t nx3, LBMReal value) +D3Q27EsoTwist3DSplittedVector::D3Q27EsoTwist3DSplittedVector(size_t nx1, size_t nx2, size_t nx3, real value) { this->NX1 = nx1; this->NX2 = nx2; this->NX3 = nx3; this->localDistributions = - std::make_shared<CbArray4D<LBMReal, IndexerX4X3X2X1>>(13, nx1 + 1, nx2 + 1, nx3 + 1, value); + std::make_shared<CbArray4D<real, IndexerX4X3X2X1>>(13, nx1 + 1, nx2 + 1, nx3 + 1, value); this->nonLocalDistributions = - std::make_shared<CbArray4D<LBMReal, IndexerX4X3X2X1>>(13, nx1 + 1, nx2 + 1, nx3 + 1, value); + std::make_shared<CbArray4D<real, IndexerX4X3X2X1>>(13, nx1 + 1, nx2 + 1, nx3 + 1, value); - this->zeroDistributions = std::make_shared<CbArray3D<LBMReal, IndexerX3X2X1>>(nx1, nx2, nx3, value); + this->zeroDistributions = std::make_shared<CbArray3D<real, IndexerX3X2X1>>(nx1, nx2, nx3, value); } ////////////////////////////////////////////////////////////////////////// D3Q27EsoTwist3DSplittedVector::~D3Q27EsoTwist3DSplittedVector() = default; ////////////////////////////////////////////////////////////////////////// void D3Q27EsoTwist3DSplittedVector::swap() { std::swap(this->localDistributions, this->nonLocalDistributions); } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSplittedVector::getDistribution(LBMReal *const f, size_t x1, size_t x2, size_t x3) +void D3Q27EsoTwist3DSplittedVector::getDistribution(real *const f, size_t x1, size_t x2, size_t x3) { using namespace vf::lbm::dir; @@ -89,7 +89,7 @@ void D3Q27EsoTwist3DSplittedVector::getDistribution(LBMReal *const f, size_t x1, f[DIR_000] = (*this->zeroDistributions)(x1, x2, x3); } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSplittedVector::setDistribution(const LBMReal *const f, size_t x1, size_t x2, size_t x3) +void D3Q27EsoTwist3DSplittedVector::setDistribution(const real *const f, size_t x1, size_t x2, size_t x3) { using namespace vf::lbm::dir; @@ -124,7 +124,7 @@ void D3Q27EsoTwist3DSplittedVector::setDistribution(const LBMReal *const f, size (*this->zeroDistributions)(x1, x2, x3) = f[DIR_000]; } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSplittedVector::getDistributionInv(LBMReal *const f, size_t x1, size_t x2, size_t x3) +void D3Q27EsoTwist3DSplittedVector::getDistributionInv(real *const f, size_t x1, size_t x2, size_t x3) { using namespace vf::lbm::dir; @@ -159,7 +159,7 @@ void D3Q27EsoTwist3DSplittedVector::getDistributionInv(LBMReal *const f, size_t f[DIR_000] = (*this->zeroDistributions)(x1, x2, x3); } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSplittedVector::setDistributionInv(const LBMReal *const f, size_t x1, size_t x2, size_t x3) +void D3Q27EsoTwist3DSplittedVector::setDistributionInv(const real *const f, size_t x1, size_t x2, size_t x3) { using namespace vf::lbm::dir; @@ -194,7 +194,7 @@ void D3Q27EsoTwist3DSplittedVector::setDistributionInv(const LBMReal *const f, s (*this->zeroDistributions)(x1, x2, x3) = f[DIR_000]; } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSplittedVector::setDistributionForDirection(const LBMReal *const f, size_t x1, size_t x2, size_t x3, +void D3Q27EsoTwist3DSplittedVector::setDistributionForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) { using namespace vf::lbm::dir; @@ -255,7 +255,7 @@ void D3Q27EsoTwist3DSplittedVector::setDistributionForDirection(const LBMReal *c (*this->zeroDistributions)(x1, x2, x3) = f[DIR_000]; } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSplittedVector::setDistributionForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, +void D3Q27EsoTwist3DSplittedVector::setDistributionForDirection(real f, size_t x1, size_t x2, size_t x3, int direction) { using namespace vf::lbm::dir; @@ -347,7 +347,7 @@ void D3Q27EsoTwist3DSplittedVector::setDistributionForDirection(LBMReal f, size_ } } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSplittedVector::setDistributionInvForDirection(const LBMReal *const f, size_t x1, size_t x2, +void D3Q27EsoTwist3DSplittedVector::setDistributionInvForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) { using namespace vf::lbm::dir; @@ -408,7 +408,7 @@ void D3Q27EsoTwist3DSplittedVector::setDistributionInvForDirection(const LBMReal (*this->zeroDistributions)(x1, x2, x3) = f[DIR_000]; } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSplittedVector::setDistributionInvForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, +void D3Q27EsoTwist3DSplittedVector::setDistributionInvForDirection(real f, size_t x1, size_t x2, size_t x3, unsigned long int direction) { using namespace vf::lbm::dir; @@ -500,7 +500,7 @@ void D3Q27EsoTwist3DSplittedVector::setDistributionInvForDirection(LBMReal f, si } } ////////////////////////////////////////////////////////////////////////// -LBMReal D3Q27EsoTwist3DSplittedVector::getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) +real D3Q27EsoTwist3DSplittedVector::getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) { using namespace vf::lbm::dir; @@ -564,7 +564,7 @@ LBMReal D3Q27EsoTwist3DSplittedVector::getDistributionForDirection(size_t x1, si } } ////////////////////////////////////////////////////////////////////////// -LBMReal D3Q27EsoTwist3DSplittedVector::getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) +real D3Q27EsoTwist3DSplittedVector::getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) { using namespace vf::lbm::dir; @@ -634,17 +634,17 @@ size_t D3Q27EsoTwist3DSplittedVector::getNX2() const { return NX2; } ////////////////////////////////////////////////////////////////////////// size_t D3Q27EsoTwist3DSplittedVector::getNX3() const { return NX3; } ////////////////////////////////////////////////////////////////////////// -CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr D3Q27EsoTwist3DSplittedVector::getLocalDistributions() +CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr D3Q27EsoTwist3DSplittedVector::getLocalDistributions() { return this->localDistributions; } ////////////////////////////////////////////////////////////////////////// -CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr D3Q27EsoTwist3DSplittedVector::getNonLocalDistributions() +CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr D3Q27EsoTwist3DSplittedVector::getNonLocalDistributions() { return this->nonLocalDistributions; } ////////////////////////////////////////////////////////////////////////// -CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr D3Q27EsoTwist3DSplittedVector::getZeroDistributions() +CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr D3Q27EsoTwist3DSplittedVector::getZeroDistributions() { return this->zeroDistributions; } @@ -655,17 +655,17 @@ void D3Q27EsoTwist3DSplittedVector::setNX2(size_t newNX2) { NX2 = newNX2; } ////////////////////////////////////////////////////////////////////////// void D3Q27EsoTwist3DSplittedVector::setNX3(size_t newNX3) { NX3 = newNX3; } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSplittedVector::setLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr array) +void D3Q27EsoTwist3DSplittedVector::setLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr array) { localDistributions = array; } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSplittedVector::setNonLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr array) +void D3Q27EsoTwist3DSplittedVector::setNonLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr array) { nonLocalDistributions = array; } ////////////////////////////////////////////////////////////////////////// -void D3Q27EsoTwist3DSplittedVector::setZeroDistributions(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr array) +void D3Q27EsoTwist3DSplittedVector::setZeroDistributions(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr array) { zeroDistributions = array; } diff --git a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.h b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.h index 1c0d7d05f..060e2cb3a 100644 --- a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.h +++ b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVector.h @@ -49,34 +49,34 @@ public: //! \param nx2 number of nodes in x2 direction //! \param nx3 number of nodes in x3 direction //! \param value initialisation value - D3Q27EsoTwist3DSplittedVector(size_t nx1, size_t nx2, size_t nx3, LBMReal value); + D3Q27EsoTwist3DSplittedVector(size_t nx1, size_t nx2, size_t nx3, real value); ////////////////////////////////////////////////////////////////////////// ~D3Q27EsoTwist3DSplittedVector() override; ////////////////////////////////////////////////////////////////////////// void swap() override; ////////////////////////////////////////////////////////////////////////// - void getDistribution(LBMReal *const f, size_t x1, size_t x2, size_t x3) override; + void getDistribution(real *const f, size_t x1, size_t x2, size_t x3) override; ////////////////////////////////////////////////////////////////////////// - void setDistribution(const LBMReal *const f, size_t x1, size_t x2, size_t x3) override; + void setDistribution(const real *const f, size_t x1, size_t x2, size_t x3) override; //////////////////////////////////////////////////////////////////////// - void getDistributionInv(LBMReal *const f, size_t x1, size_t x2, size_t x3) override; + void getDistributionInv(real *const f, size_t x1, size_t x2, size_t x3) override; ////////////////////////////////////////////////////////////////////////// - void setDistributionInv(const LBMReal *const f, size_t x1, size_t x2, size_t x3) override; + void setDistributionInv(const real *const f, size_t x1, size_t x2, size_t x3) override; ////////////////////////////////////////////////////////////////////////// - void setDistributionForDirection(const LBMReal *const f, size_t x1, size_t x2, size_t x3, + void setDistributionForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override; ////////////////////////////////////////////////////////////////////////// - void setDistributionForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, int direction) override; + void setDistributionForDirection(real f, size_t x1, size_t x2, size_t x3, int direction) override; ////////////////////////////////////////////////////////////////////////// - LBMReal getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) override; + real getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) override; ////////////////////////////////////////////////////////////////////////// - void setDistributionInvForDirection(const LBMReal *const f, size_t x1, size_t x2, size_t x3, + void setDistributionInvForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override; ////////////////////////////////////////////////////////////////////////// - void setDistributionInvForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, + void setDistributionInvForDirection(real f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override; ////////////////////////////////////////////////////////////////////////// - LBMReal getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) override; + real getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) override; ////////////////////////////////////////////////////////////////////////// size_t getNX1() const override; ////////////////////////////////////////////////////////////////////////// @@ -84,23 +84,23 @@ public: ////////////////////////////////////////////////////////////////////////// size_t getNX3() const override; ////////////////////////////////////////////////////////////////////////// - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr getLocalDistributions(); + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr getLocalDistributions(); ////////////////////////////////////////////////////////////////////////// - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr getNonLocalDistributions(); + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr getNonLocalDistributions(); ////////////////////////////////////////////////////////////////////////// - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr getZeroDistributions(); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr getZeroDistributions(); ////////////////////////////////////////////////////////////////////////// void setNX1(size_t newNX1); void setNX2(size_t newNX2); void setNX3(size_t newNX3); - void setLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr array); - void setNonLocalDistributions(CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr array); - void setZeroDistributions(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr array); + void setLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr array); + void setNonLocalDistributions(CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr array); + void setZeroDistributions(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr array); protected: - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; size_t NX1, NX2, NX3; friend class MPIIORestartCoProcessor; diff --git a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVectorEx.cpp b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVectorEx.cpp index d67341e1a..07b0abb6a 100644 --- a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVectorEx.cpp +++ b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVectorEx.cpp @@ -1,16 +1,16 @@ #include "D3Q27EsoTwist3DSplittedVectorEx.h" -D3Q27EsoTwist3DSplittedVectorEx::D3Q27EsoTwist3DSplittedVectorEx(int nx1, int nx2, int nx3, LBMReal value) +D3Q27EsoTwist3DSplittedVectorEx::D3Q27EsoTwist3DSplittedVectorEx(int nx1, int nx2, int nx3, real value) { this->NX1 = nx1; this->NX2 = nx2; this->NX3 = nx3; - this->localDistributions = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(13, nx1, nx2, nx3, value)); - this->nonLocalDistributions = CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr( - new CbArray4D<LBMReal, IndexerX4X3X2X1>(13, nx1, nx2, nx3, value)); + this->localDistributions = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(13, nx1, nx2, nx3, value)); + this->nonLocalDistributions = CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr( + new CbArray4D<real, IndexerX4X3X2X1>(13, nx1, nx2, nx3, value)); this->zeroDistributions = - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx1, nx2, nx3, value)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx1, nx2, nx3, value)); } diff --git a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVectorEx.h b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVectorEx.h index 54f9d55e5..e5481f4c8 100644 --- a/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVectorEx.h +++ b/src/cpu/VirtualFluidsCore/Data/D3Q27EsoTwist3DSplittedVectorEx.h @@ -6,7 +6,7 @@ class D3Q27EsoTwist3DSplittedVectorEx : public D3Q27EsoTwist3DSplittedVector { public: - D3Q27EsoTwist3DSplittedVectorEx(int nx1, int nx2, int nx3, LBMReal value); + D3Q27EsoTwist3DSplittedVectorEx(int nx1, int nx2, int nx3, real value); protected: private: diff --git a/src/cpu/VirtualFluidsCore/Data/DataSet3D.h b/src/cpu/VirtualFluidsCore/Data/DataSet3D.h index 12b9e5748..65758b105 100644 --- a/src/cpu/VirtualFluidsCore/Data/DataSet3D.h +++ b/src/cpu/VirtualFluidsCore/Data/DataSet3D.h @@ -40,11 +40,11 @@ #include "basics/container/CbArray3D.h" #include "basics/container/CbArray4D.h" -using AverageValuesArray3D = CbArray4D<LBMReal, IndexerX4X3X2X1>; -using ShearStressValuesArray3D = CbArray4D<LBMReal, IndexerX4X3X2X1>; -using RelaxationFactorArray3D = CbArray3D<LBMReal, IndexerX3X2X1>; -using PhaseFieldArray3D = CbArray3D<LBMReal, IndexerX3X2X1>; -using PressureFieldArray3D = CbArray3D<LBMReal, IndexerX3X2X1>; +using AverageValuesArray3D = CbArray4D<real, IndexerX4X3X2X1>; +using ShearStressValuesArray3D = CbArray4D<real, IndexerX4X3X2X1>; +using RelaxationFactorArray3D = CbArray3D<real, IndexerX3X2X1>; +using PhaseFieldArray3D = CbArray3D<real, IndexerX3X2X1>; +using PressureFieldArray3D = CbArray3D<real, IndexerX3X2X1>; //! A class provides an interface for data structures in the kernel. class DataSet3D diff --git a/src/cpu/VirtualFluidsCore/Data/DistributionArray3D.h b/src/cpu/VirtualFluidsCore/Data/DistributionArray3D.h index 8fe4dccea..fff57191d 100644 --- a/src/cpu/VirtualFluidsCore/Data/DistributionArray3D.h +++ b/src/cpu/VirtualFluidsCore/Data/DistributionArray3D.h @@ -55,39 +55,39 @@ public: //! \param x1 coordinate x1 //! \param x2 coordinate x2 //! \param x3 coordinate x3 - virtual void getDistribution(LBMReal *const f, size_t x1, size_t x2, size_t x3) = 0; + virtual void getDistribution(real *const f, size_t x1, size_t x2, size_t x3) = 0; //! set distribution //! \param f distribution //! \param x1 coordinate x1 //! \param x2 coordinate x2 //! \param x3 coordinate x3 - virtual void setDistribution(const LBMReal *const f, size_t x1, size_t x2, size_t x3) = 0; + virtual void setDistribution(const real *const f, size_t x1, size_t x2, size_t x3) = 0; //! get distribution in inverse order //! \param f distribution //! \param x1 coordinate x1 //! \param x2 coordinate x2 //! \param x3 coordinate x3 - virtual void getDistributionInv(LBMReal *const f, size_t x1, size_t x2, size_t x3) = 0; + virtual void getDistributionInv(real *const f, size_t x1, size_t x2, size_t x3) = 0; //! set distribution in inverse order //! \param f distribution //! \param x1 coordinate x1 //! \param x1 coordinate x2 //! \param x1 coordinate x3 - virtual void setDistributionInv(const LBMReal *const f, size_t x1, size_t x2, size_t x3) = 0; + virtual void setDistributionInv(const real *const f, size_t x1, size_t x2, size_t x3) = 0; //! set distribution in inverse order //! \param f distribution //! \param x1 coordinate x1 //! \param x1 coordinate x2 //! \param x1 coordinate x3 - virtual void setDistributionForDirection(const LBMReal *const f, size_t x1, size_t x2, size_t x3, + virtual void setDistributionForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) = 0; - virtual void setDistributionForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, int direction) = 0; - virtual LBMReal getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) = 0; - virtual void setDistributionInvForDirection(const LBMReal *const f, size_t x1, size_t x2, size_t x3, + virtual void setDistributionForDirection(real f, size_t x1, size_t x2, size_t x3, int direction) = 0; + virtual real getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) = 0; + virtual void setDistributionInvForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) = 0; - virtual void setDistributionInvForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, + virtual void setDistributionInvForDirection(real f, size_t x1, size_t x2, size_t x3, unsigned long int direction) = 0; - virtual LBMReal getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) = 0; + virtual real getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) = 0; virtual void swap() = 0; protected: diff --git a/src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h b/src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h index 319a9200c..6a65255ad 100644 --- a/src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h +++ b/src/cpu/VirtualFluidsCore/Data/EsoTwist3D.h @@ -63,31 +63,31 @@ public: ////////////////////////////////////////////////////////////////////////// void swap() override = 0; ////////////////////////////////////////////////////////////////////////// - void getDistribution(LBMReal *const f, size_t x1, size_t x2, size_t x3) override = 0; + void getDistribution(real *const f, size_t x1, size_t x2, size_t x3) override = 0; ////////////////////////////////////////////////////////////////////////// - void setDistribution(const LBMReal *const f, size_t x1, size_t x2, size_t x3) override = 0; + void setDistribution(const real *const f, size_t x1, size_t x2, size_t x3) override = 0; //////////////////////////////////////////////////////////////////////// - void getDistributionInv(LBMReal *const f, size_t x1, size_t x2, size_t x3) override = 0; + void getDistributionInv(real *const f, size_t x1, size_t x2, size_t x3) override = 0; ////////////////////////////////////////////////////////////////////////// - void setDistributionInv(const LBMReal *const f, size_t x1, size_t x2, size_t x3) override = 0; + void setDistributionInv(const real *const f, size_t x1, size_t x2, size_t x3) override = 0; ////////////////////////////////////////////////////////////////////////// - void setDistributionForDirection(const LBMReal *const f, size_t x1, size_t x2, size_t x3, + void setDistributionForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override = 0; ////////////////////////////////////////////////////////////////////////// - void setDistributionForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, int direction) override = 0; + void setDistributionForDirection(real f, size_t x1, size_t x2, size_t x3, int direction) override = 0; ////////////////////////////////////////////////////////////////////////// - // virtual void getDistributionInvForDirection(LBMReal* const& f, const size_t& x1, const size_t& x2, const size_t& + // virtual void getDistributionInvForDirection(real* const& f, const size_t& x1, const size_t& x2, const size_t& // x3, const unsigned long int& direction) = 0; ////////////////////////////////////////////////////////////////////////// - LBMReal getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) override = 0; + real getDistributionInvForDirection(size_t x1, size_t x2, size_t x3, int direction) override = 0; ////////////////////////////////////////////////////////////////////////// - void setDistributionInvForDirection(const LBMReal *const f, size_t x1, size_t x2, size_t x3, + void setDistributionInvForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override = 0; ////////////////////////////////////////////////////////////////////////// - void setDistributionInvForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, + void setDistributionInvForDirection(real f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override = 0; ////////////////////////////////////////////////////////////////////////// - LBMReal getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) override = 0; + real getDistributionForDirection(size_t x1, size_t x2, size_t x3, int direction) override = 0; ////////////////////////////////////////////////////////////////////////// size_t getNX1() const override = 0; ////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/VirtualFluidsCore/Data/VoidData3D.h b/src/cpu/VirtualFluidsCore/Data/VoidData3D.h index 12afae57d..25fe5dde2 100644 --- a/src/cpu/VirtualFluidsCore/Data/VoidData3D.h +++ b/src/cpu/VirtualFluidsCore/Data/VoidData3D.h @@ -8,7 +8,7 @@ class VoidData3D : public EsoTwist3D public: VoidData3D() = default; - VoidData3D(size_t nx1, size_t nx2, size_t nx3, LBMReal /*value*/) + VoidData3D(size_t nx1, size_t nx2, size_t nx3, real /*value*/) { this->NX1 = nx1; this->NX2 = nx2; @@ -19,28 +19,28 @@ public: size_t getNX1() const override { return NX1; } size_t getNX2() const override { return NX2; } size_t getNX3() const override { return NX3; } - void getDistribution(LBMReal *const f, size_t x1, size_t x2, size_t x3) override {} - void setDistribution(const LBMReal *const f, size_t x1, size_t x2, size_t x3) override {} - void getDistributionInv(LBMReal *const f, size_t x1, size_t x2, size_t x3) override {} - void setDistributionInv(const LBMReal *const f, size_t x1, size_t x2, size_t x3) override {} - void setDistributionForDirection(const LBMReal *const f, size_t x1, size_t x2, size_t x3, + void getDistribution(real *const f, size_t x1, size_t x2, size_t x3) override {} + void setDistribution(const real *const f, size_t x1, size_t x2, size_t x3) override {} + void getDistributionInv(real *const f, size_t x1, size_t x2, size_t x3) override {} + void setDistributionInv(const real *const f, size_t x1, size_t x2, size_t x3) override {} + void setDistributionForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override { } - void setDistributionForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, int direction) override {} - LBMReal getDistributionInvForDirection(size_t /*x1*/, size_t /*x2*/, size_t /*x3*/, int /*direction*/) override + void setDistributionForDirection(real f, size_t x1, size_t x2, size_t x3, int direction) override {} + real getDistributionInvForDirection(size_t /*x1*/, size_t /*x2*/, size_t /*x3*/, int /*direction*/) override { return 0.0; } - void setDistributionInvForDirection(const LBMReal *const f, size_t x1, size_t x2, size_t x3, + void setDistributionInvForDirection(const real *const f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override { } - void setDistributionInvForDirection(LBMReal f, size_t x1, size_t x2, size_t x3, + void setDistributionInvForDirection(real f, size_t x1, size_t x2, size_t x3, unsigned long int direction) override { } - LBMReal getDistributionForDirection(size_t /*x1*/, size_t /*x2*/, size_t /*x3*/, int /*direction*/) override + real getDistributionForDirection(size_t /*x1*/, size_t /*x2*/, size_t /*x3*/, int /*direction*/) override { return 0.0; } diff --git a/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp index 9b3ec777c..c5a6d8ee5 100644 --- a/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.cpp @@ -68,9 +68,9 @@ void BGKLBMKernel::calculate(int step) std::dynamic_pointer_cast<D3Q27EsoTwist3DSplittedVector>(dataSet->getFdistributions())->getZeroDistributions(); SPtr<BCArray3D> bcArray = this->getBCProcessor()->getBCArray(); - LBMReal f[D3Q27System::ENDF + 1]; - LBMReal feq[D3Q27System::ENDF + 1]; - LBMReal drho, vx1, vx2, vx3; + real f[D3Q27System::ENDF + 1]; + real feq[D3Q27System::ENDF + 1]; + real drho, vx1, vx2, vx3; const int bcArrayMaxX1 = (int)bcArray->getNX1(); const int bcArrayMaxX2 = (int)bcArray->getNX2(); const int bcArrayMaxX3 = (int)bcArray->getNX3(); @@ -136,7 +136,7 @@ void BGKLBMKernel::calculate(int step) vx3 = f[DIR_00P] - f[DIR_00M] + f[DIR_P0P] - f[DIR_M0M] - f[DIR_P0M] + f[DIR_M0P] + f[DIR_0PP] - f[DIR_0MM] - f[DIR_0PM] + 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]; - LBMReal cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); + 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); @@ -245,10 +245,10 @@ void BGKLBMKernel::calculate(int step) } ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal rho_post = f[DIR_000] + f[DIR_P00] + f[DIR_M00] + f[DIR_0P0] + f[DIR_0M0] + f[DIR_00P] + f[DIR_00M] + f[DIR_PP0] + f[DIR_MM0] + f[DIR_PM0] + + real rho_post = f[DIR_000] + f[DIR_P00] + f[DIR_M00] + f[DIR_0P0] + f[DIR_0M0] + f[DIR_00P] + f[DIR_00M] + f[DIR_PP0] + f[DIR_MM0] + f[DIR_PM0] + f[DIR_MP0] + f[DIR_P0P] + f[DIR_M0M] + f[DIR_P0M] + f[DIR_M0P] + f[DIR_0PP] + f[DIR_0MM] + f[DIR_0PM] + 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]; - LBMReal dif = drho - rho_post; + real dif = drho - rho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) #else diff --git a/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.h index 9d17a8cc7..cec8a8e04 100644 --- a/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/BGKLBMKernel.h @@ -19,14 +19,14 @@ private: // void collideAllCompressible(); // void collideAllIncompressible(); - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; mu::value_type muX1, muX2, muX3; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; }; #endif diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp index b1e48abd9..f41d24a44 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.cpp @@ -105,20 +105,20 @@ void CompressibleCumulant4thOrderViscosityLBMKernel::calculate(int step) int maxX2 = bcArrayMaxX2-ghostLayerWidth; int maxX3 = bcArrayMaxX3-ghostLayerWidth; - LBMReal omega = collFactor; + real omega = collFactor; //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); - LBMReal 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))); - LBMReal 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); - LBMReal 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 = 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)); //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); - LBMReal 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 = (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)); //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) - LBMReal 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 = (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)); for (int x3 = minX3; x3 < maxX3; x3++) { @@ -152,50 +152,50 @@ void CompressibleCumulant4thOrderViscosityLBMKernel::calculate(int step) // a b c //-1 0 1 - LBMReal mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); - - LBMReal mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributions)(x1, x2, x3); - - //////////////////////////////////////////////////////////////////////////////////// - LBMReal drho = ((((mfccc+mfaaa)+(mfaca+mfcac))+((mfacc+mfcaa)+(mfaac+mfcca)))+ + real mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); + + real mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributions)(x1, x2, x3); + + //////////////////////////////////////////////////////////////////////////////////// + real drho = ((((mfccc+mfaaa)+(mfaca+mfcac))+((mfacc+mfcaa)+(mfaac+mfcca)))+ (((mfbac+mfbca)+(mfbaa+mfbcc))+((mfabc+mfcba)+(mfaba+mfcbc))+((mfacb+mfcab)+(mfaab+mfccb)))+ ((mfabb+mfcbb)+(mfbab+mfbcb))+(mfbba+mfbbc))+mfbbb; - LBMReal rho = one+drho; + real rho = one+drho; //////////////////////////////////////////////////////////////////////////////////// - LBMReal vvx = ((((mfccc-mfaaa)+(mfcac-mfaca))+((mfcaa-mfacc)+(mfcca-mfaac)))+ + real vvx = ((((mfccc-mfaaa)+(mfcac-mfaca))+((mfcaa-mfacc)+(mfcca-mfaac)))+ (((mfcba-mfabc)+(mfcbc-mfaba))+((mfcab-mfacb)+(mfccb-mfaab)))+ (mfcbb-mfabb))/rho; - LBMReal vvy = ((((mfccc-mfaaa)+(mfaca-mfcac))+((mfacc-mfcaa)+(mfcca-mfaac)))+ + real vvy = ((((mfccc-mfaaa)+(mfaca-mfcac))+((mfacc-mfcaa)+(mfcca-mfaac)))+ (((mfbca-mfbac)+(mfbcc-mfbaa))+((mfacb-mfcab)+(mfccb-mfaab)))+ (mfbcb-mfbab))/rho; - LBMReal vvz = ((((mfccc-mfaaa)+(mfcac-mfaca))+((mfacc-mfcaa)+(mfaac-mfcca)))+ + real vvz = ((((mfccc-mfaaa)+(mfcac-mfaca))+((mfacc-mfcaa)+(mfaac-mfcca)))+ (((mfbac-mfbca)+(mfbcc-mfbaa))+((mfabc-mfcba)+(mfcbc-mfaba)))+ (mfbbc-mfbba))/rho; //////////////////////////////////////////////////////////////////////////////////// @@ -218,20 +218,20 @@ void CompressibleCumulant4thOrderViscosityLBMKernel::calculate(int step) } /////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho = one; // comp special + real oMdrho = one; // comp special //////////////////////////////////////////////////////////////////////////////////// - LBMReal m0, m1, m2; - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real m0, m1, m2; + real vx2; + real vy2; + real vz2; vx2 = vvx*vvx; vy2 = vvy*vvy; vz2 = vvz*vvz; //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimitP = 0.01;// * 0.0001f; - LBMReal qudricLimitM = 0.01;// * 0.0001f; - LBMReal qudricLimitD = 0.01;// * 0.001f; + real wadjust; + real qudricLimitP = 0.01;// * 0.0001f; + real qudricLimitM = 0.01;// * 0.0001f; + real qudricLimitD = 0.01;// * 0.001f; //LBMReal s9 = minusomega; //test //s9 = 0.; @@ -505,38 +505,38 @@ void CompressibleCumulant4thOrderViscosityLBMKernel::calculate(int step) //////////////////////////////////////////////////////////// //4. ////////////////////////////// - LBMReal O4 = one; + real O4 = one; ////////////////////////////// - //LBMReal O4 = omega;//TRT + //real O4 = omega;//TRT //////////////////////////////////////////////////////////// //5. ////////////////////////////// - LBMReal O5 = one; + real O5 = one; //////////////////////////////////////////////////////////// //6. ////////////////////////////// - LBMReal O6 = one; + real O6 = one; //////////////////////////////////////////////////////////// //central moments to cumulants //4. - LBMReal CUMcbb = mfcbb-((mfcaa+c1o3) * mfabb+two * mfbba * mfbab)/rho; //ab 15.05.2015 verwendet - LBMReal CUMbcb = mfbcb-((mfaca+c1o3) * mfbab+two * mfbba * mfabb)/rho; //ab 15.05.2015 verwendet - LBMReal CUMbbc = mfbbc-((mfaac+c1o3) * mfbba+two * mfbab * mfabb)/rho; //ab 15.05.2015 verwendet + real CUMcbb = mfcbb-((mfcaa+c1o3) * mfabb+two * mfbba * mfbab)/rho; //ab 15.05.2015 verwendet + real CUMbcb = mfbcb-((mfaca+c1o3) * mfbab+two * mfbba * mfabb)/rho; //ab 15.05.2015 verwendet + real CUMbbc = mfbbc-((mfaac+c1o3) * mfbba+two * mfbab * mfabb)/rho; //ab 15.05.2015 verwendet - LBMReal CUMcca = mfcca-(((mfcaa * mfaca+two * mfbba * mfbba)+c1o3 * (mfcaa+mfaca))/rho-c1o9*(drho/rho)); - LBMReal CUMcac = mfcac-(((mfcaa * mfaac+two * mfbab * mfbab)+c1o3 * (mfcaa+mfaac))/rho-c1o9*(drho/rho)); - LBMReal CUMacc = mfacc-(((mfaac * mfaca+two * mfabb * mfabb)+c1o3 * (mfaac+mfaca))/rho-c1o9*(drho/rho)); + real CUMcca = mfcca-(((mfcaa * mfaca+two * mfbba * mfbba)+c1o3 * (mfcaa+mfaca))/rho-c1o9*(drho/rho)); + real CUMcac = mfcac-(((mfcaa * mfaac+two * mfbab * mfbab)+c1o3 * (mfcaa+mfaac))/rho-c1o9*(drho/rho)); + real CUMacc = mfacc-(((mfaac * mfaca+two * mfabb * mfabb)+c1o3 * (mfaac+mfaca))/rho-c1o9*(drho/rho)); //5. - LBMReal CUMbcc = mfbcc-((mfaac * mfbca+mfaca * mfbac+four * mfabb * mfbbb+two * (mfbab * mfacb+mfbba * mfabc))+c1o3 * (mfbca+mfbac))/rho; - LBMReal CUMcbc = mfcbc-((mfaac * mfcba+mfcaa * mfabc+four * mfbab * mfbbb+two * (mfabb * mfcab+mfbba * mfbac))+c1o3 * (mfcba+mfabc))/rho; - LBMReal CUMccb = mfccb-((mfcaa * mfacb+mfaca * mfcab+four * mfbba * mfbbb+two * (mfbab * mfbca+mfabb * mfcba))+c1o3 * (mfacb+mfcab))/rho; + real CUMbcc = mfbcc-((mfaac * mfbca+mfaca * mfbac+four * mfabb * mfbbb+two * (mfbab * mfacb+mfbba * mfabc))+c1o3 * (mfbca+mfbac))/rho; + real CUMcbc = mfcbc-((mfaac * mfcba+mfcaa * mfabc+four * mfbab * mfbbb+two * (mfabb * mfcab+mfbba * mfbac))+c1o3 * (mfcba+mfabc))/rho; + real CUMccb = mfccb-((mfcaa * mfacb+mfaca * mfcab+four * mfbba * mfbbb+two * (mfbab * mfbca+mfabb * mfcba))+c1o3 * (mfacb+mfcab))/rho; //6. - LBMReal CUMccc = mfccc+((-four * mfbbb * mfbbb + real CUMccc = mfccc+((-four * mfbbb * mfbbb -(mfcaa * mfacc+mfaca * mfcac+mfaac * mfcca) -four * (mfabb * mfcbb+mfbab * mfbcb+mfbba * mfbbc) -two * (mfbca * mfbac+mfcba * mfabc+mfcab * mfacb))/rho @@ -555,9 +555,9 @@ void CompressibleCumulant4thOrderViscosityLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa+mfaca+mfaac; - LBMReal mxxMyy = mfcaa-mfaca; - LBMReal mxxMzz = mfcaa-mfaac; + real mxxPyyPzz = mfcaa+mfaca+mfaac; + real mxxMyy = mfcaa-mfaca; + real mxxMzz = mfcaa-mfaac; ////////////////////////////////////////////////////////////////////////// // LBMReal magicBulk=(CUMacc+CUMcac+CUMcca)*(one/OxxPyyPzz-c1o2)*c3o2*8.; @@ -597,13 +597,13 @@ void CompressibleCumulant4thOrderViscosityLBMKernel::calculate(int step) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //incl. correction (hat noch nicht so gut funktioniert...Optimierungsbedarf??) - LBMReal dxux = c1o2 * (-omega) *(mxxMyy+mxxMzz)+c1o2 * OxxPyyPzz * (mfaaa-mxxPyyPzz); - LBMReal dyuy = dxux+omega * c3o2 * mxxMyy; - LBMReal dzuz = dxux+omega * c3o2 * mxxMzz; + real dxux = c1o2 * (-omega) *(mxxMyy+mxxMzz)+c1o2 * OxxPyyPzz * (mfaaa-mxxPyyPzz); + real dyuy = dxux+omega * c3o2 * mxxMyy; + real dzuz = dxux+omega * c3o2 * mxxMzz; - LBMReal Dxy =-three*omega*mfbba; - LBMReal Dxz =-three*omega*mfbab; - LBMReal Dyz =-three*omega*mfabb; + real Dxy =-three*omega*mfbba; + real Dxz =-three*omega*mfbab; + real Dyz =-three*omega*mfabb; @@ -650,14 +650,14 @@ void CompressibleCumulant4thOrderViscosityLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba+mfabc; - LBMReal mxxyMyzz = mfcba-mfabc; + real mxxyPyzz = mfcba+mfabc; + real mxxyMyzz = mfcba-mfabc; - LBMReal mxxzPyyz = mfcab+mfacb; - LBMReal mxxzMyyz = mfcab-mfacb; + real mxxzPyyz = mfcab+mfacb; + real mxxzMyyz = mfcab-mfacb; - LBMReal mxyyPxzz = mfbca+mfbac; - LBMReal mxyyMxzz = mfbca-mfbac; + real mxyyPxzz = mfbca+mfbac; + real mxyyMxzz = mfbca-mfbac; //relax ////////////////////////////////////////////////////////////////////////// @@ -994,11 +994,11 @@ void CompressibleCumulant4thOrderViscosityLBMKernel::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal drho_post = (mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) + real drho_post = (mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) +(mfaab+mfacb+mfcab+mfccb)+(mfaba+mfabc+mfcba+mfcbc)+(mfbaa+mfbac+mfbca+mfbcc) +(mfabb+mfcbb)+(mfbab+mfbcb)+(mfbba+mfbbc)+mfbbb; //LBMReal dif = fabs(rho - rho_post); - LBMReal dif = drho - drho_post; + real dif = drho - drho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) #else @@ -1058,7 +1058,7 @@ double CompressibleCumulant4thOrderViscosityLBMKernel::getCalculationTime() return timer.getTotalTime(); } ////////////////////////////////////////////////////////////////////////// -void CompressibleCumulant4thOrderViscosityLBMKernel::setBulkViscosity(LBMReal value) +void CompressibleCumulant4thOrderViscosityLBMKernel::setBulkViscosity(real value) { bulkViscosity = value; } diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.h index 2cdd9c5b3..aba695ff0 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulant4thOrderViscosityLBMKernel.h @@ -23,27 +23,27 @@ public: SPtr<LBMKernel> clone() override; double getCalculationTime() override; //! The value should not be equal to a shear viscosity - void setBulkViscosity(LBMReal value); + void setBulkViscosity(real value); protected: virtual void initDataSet(); - LBMReal f[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; UbTimer timer; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributions; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributions; mu::value_type muX1,muX2,muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; // bulk viscosity - LBMReal OxxPyyPzz; //omega2 (bulk viscosity) - LBMReal bulkViscosity; + real OxxPyyPzz; //omega2 (bulk viscosity) + real bulkViscosity; }; #endif // CompressibleCumulant4thOrderViscosityLBMKernel_h__ diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.cpp index 5542d2c98..c79cff1fe 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.cpp @@ -113,7 +113,7 @@ void CompressibleCumulantLBMKernel::calculate(int step) int maxX2 = bcArrayMaxX2-ghostLayerWidth; int maxX3 = bcArrayMaxX3-ghostLayerWidth; - LBMReal omega = collFactor; + real omega = collFactor; //#pragma omp parallel num_threads(8) @@ -154,50 +154,50 @@ void CompressibleCumulantLBMKernel::calculate(int step) // a b c //-1 0 1 - LBMReal mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); - - LBMReal mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributions)(x1, x2, x3); - - //////////////////////////////////////////////////////////////////////////////////// - LBMReal drho = ((((mfccc+mfaaa)+(mfaca+mfcac))+((mfacc+mfcaa)+(mfaac+mfcca)))+ + real mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); + + real mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributions)(x1, x2, x3); + + //////////////////////////////////////////////////////////////////////////////////// + real drho = ((((mfccc+mfaaa)+(mfaca+mfcac))+((mfacc+mfcaa)+(mfaac+mfcca)))+ (((mfbac+mfbca)+(mfbaa+mfbcc))+((mfabc+mfcba)+(mfaba+mfcbc))+((mfacb+mfcab)+(mfaab+mfccb)))+ ((mfabb+mfcbb)+(mfbab+mfbcb))+(mfbba+mfbbc))+mfbbb; - LBMReal rho = one+drho; + real rho = one+drho; //////////////////////////////////////////////////////////////////////////////////// - LBMReal vvx = ((((mfccc-mfaaa)+(mfcac-mfaca))+((mfcaa-mfacc)+(mfcca-mfaac)))+ + real vvx = ((((mfccc-mfaaa)+(mfcac-mfaca))+((mfcaa-mfacc)+(mfcca-mfaac)))+ (((mfcba-mfabc)+(mfcbc-mfaba))+((mfcab-mfacb)+(mfccb-mfaab)))+ (mfcbb-mfabb))/rho; - LBMReal vvy = ((((mfccc-mfaaa)+(mfaca-mfcac))+((mfacc-mfcaa)+(mfcca-mfaac)))+ + real vvy = ((((mfccc-mfaaa)+(mfaca-mfcac))+((mfacc-mfcaa)+(mfcca-mfaac)))+ (((mfbca-mfbac)+(mfbcc-mfbaa))+((mfacb-mfcab)+(mfccb-mfaab)))+ (mfbcb-mfbab))/rho; - LBMReal vvz = ((((mfccc-mfaaa)+(mfcac-mfaca))+((mfacc-mfcaa)+(mfaac-mfcca)))+ + real vvz = ((((mfccc-mfaaa)+(mfcac-mfaca))+((mfacc-mfcaa)+(mfaac-mfcca)))+ (((mfbac-mfbca)+(mfbcc-mfbaa))+((mfabc-mfcba)+(mfcbc-mfaba)))+ (mfbbc-mfbba))/rho; //////////////////////////////////////////////////////////////////////////////////// @@ -220,12 +220,12 @@ void CompressibleCumulantLBMKernel::calculate(int step) } /////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho = one; // comp special + real oMdrho = one; // comp special //////////////////////////////////////////////////////////////////////////////////// - LBMReal m0, m1, m2; - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real m0, m1, m2; + real vx2; + real vy2; + real vz2; vx2 = vvx*vvx; vy2 = vvy*vvy; vz2 = vvz*vvz; @@ -477,7 +477,7 @@ void CompressibleCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////// //3. ////////////////////////////// - LBMReal OxyyPxzz = one;//three * (two - omega) / (three - omega);// + real OxyyPxzz = one;//three * (two - omega) / (three - omega);// //LBMReal OxyyMxzz = one;//six * (two - omega) / (six - omega);// // LBMReal Oxyz = one;//twelve * (two - omega) / (twelve + omega);// ////////////////////////////// @@ -501,38 +501,38 @@ void CompressibleCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////// //4. ////////////////////////////// - LBMReal O4 = one; + real O4 = one; ////////////////////////////// - //LBMReal O4 = omega;//TRT + //real O4 = omega;//TRT //////////////////////////////////////////////////////////// //5. ////////////////////////////// - LBMReal O5 = one; + real O5 = one; //////////////////////////////////////////////////////////// //6. ////////////////////////////// - LBMReal O6 = one; + real O6 = one; //////////////////////////////////////////////////////////// //central moments to cumulants //4. - LBMReal CUMcbb = mfcbb-((mfcaa+c1o3) * mfabb+two * mfbba * mfbab)/rho; //ab 15.05.2015 verwendet - LBMReal CUMbcb = mfbcb-((mfaca+c1o3) * mfbab+two * mfbba * mfabb)/rho; //ab 15.05.2015 verwendet - LBMReal CUMbbc = mfbbc-((mfaac+c1o3) * mfbba+two * mfbab * mfabb)/rho; //ab 15.05.2015 verwendet + real CUMcbb = mfcbb-((mfcaa+c1o3) * mfabb+two * mfbba * mfbab)/rho; //ab 15.05.2015 verwendet + real CUMbcb = mfbcb-((mfaca+c1o3) * mfbab+two * mfbba * mfabb)/rho; //ab 15.05.2015 verwendet + real CUMbbc = mfbbc-((mfaac+c1o3) * mfbba+two * mfbab * mfabb)/rho; //ab 15.05.2015 verwendet - LBMReal CUMcca = mfcca-(((mfcaa * mfaca+two * mfbba * mfbba)+c1o3 * (mfcaa+mfaca))/rho-c1o9*(drho/rho)); - LBMReal CUMcac = mfcac-(((mfcaa * mfaac+two * mfbab * mfbab)+c1o3 * (mfcaa+mfaac))/rho-c1o9*(drho/rho)); - LBMReal CUMacc = mfacc-(((mfaac * mfaca+two * mfabb * mfabb)+c1o3 * (mfaac+mfaca))/rho-c1o9*(drho/rho)); + real CUMcca = mfcca-(((mfcaa * mfaca+two * mfbba * mfbba)+c1o3 * (mfcaa+mfaca))/rho-c1o9*(drho/rho)); + real CUMcac = mfcac-(((mfcaa * mfaac+two * mfbab * mfbab)+c1o3 * (mfcaa+mfaac))/rho-c1o9*(drho/rho)); + real CUMacc = mfacc-(((mfaac * mfaca+two * mfabb * mfabb)+c1o3 * (mfaac+mfaca))/rho-c1o9*(drho/rho)); //5. - LBMReal CUMbcc = mfbcc-((mfaac * mfbca+mfaca * mfbac+four * mfabb * mfbbb+two * (mfbab * mfacb+mfbba * mfabc))+c1o3 * (mfbca+mfbac))/rho; - LBMReal CUMcbc = mfcbc-((mfaac * mfcba+mfcaa * mfabc+four * mfbab * mfbbb+two * (mfabb * mfcab+mfbba * mfbac))+c1o3 * (mfcba+mfabc))/rho; - LBMReal CUMccb = mfccb-((mfcaa * mfacb+mfaca * mfcab+four * mfbba * mfbbb+two * (mfbab * mfbca+mfabb * mfcba))+c1o3 * (mfacb+mfcab))/rho; + real CUMbcc = mfbcc-((mfaac * mfbca+mfaca * mfbac+four * mfabb * mfbbb+two * (mfbab * mfacb+mfbba * mfabc))+c1o3 * (mfbca+mfbac))/rho; + real CUMcbc = mfcbc-((mfaac * mfcba+mfcaa * mfabc+four * mfbab * mfbbb+two * (mfabb * mfcab+mfbba * mfbac))+c1o3 * (mfcba+mfabc))/rho; + real CUMccb = mfccb-((mfcaa * mfacb+mfaca * mfcab+four * mfbba * mfbbb+two * (mfbab * mfbca+mfabb * mfcba))+c1o3 * (mfacb+mfcab))/rho; //6. - LBMReal CUMccc = mfccc+((-four * mfbbb * mfbbb + real CUMccc = mfccc+((-four * mfbbb * mfbbb -(mfcaa * mfacc+mfaca * mfcac+mfaac * mfcca) -four * (mfabb * mfcbb+mfbab * mfbcb+mfbba * mfbbc) -two * (mfbca * mfbac+mfcba * mfabc+mfcab * mfacb))/rho @@ -551,9 +551,9 @@ void CompressibleCumulantLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa+mfaca+mfaac; - LBMReal mxxMyy = mfcaa-mfaca; - LBMReal mxxMzz = mfcaa-mfaac; + real mxxPyyPzz = mfcaa+mfaca+mfaac; + real mxxMyy = mfcaa-mfaca; + real mxxMzz = mfcaa-mfaac; ////////////////////////////////////////////////////////////////////////// // LBMReal magicBulk=(CUMacc+CUMcac+CUMcca)*(one/OxxPyyPzz-c1o2)*c3o2*8.; @@ -593,9 +593,9 @@ void CompressibleCumulantLBMKernel::calculate(int step) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //incl. correction (hat noch nicht so gut funktioniert...Optimierungsbedarf??) { - LBMReal dxux = c1o2 * (-omega) *(mxxMyy+mxxMzz)+c1o2 * OxxPyyPzz * (mfaaa-mxxPyyPzz); - LBMReal dyuy = dxux+omega * c3o2 * mxxMyy; - LBMReal dzuz = dxux+omega * c3o2 * mxxMzz; + real dxux = c1o2 * (-omega) *(mxxMyy+mxxMzz)+c1o2 * OxxPyyPzz * (mfaaa-mxxPyyPzz); + real dyuy = dxux+omega * c3o2 * mxxMyy; + real dzuz = dxux+omega * c3o2 * mxxMzz; //relax mxxPyyPzz += OxxPyyPzz*(mfaaa-mxxPyyPzz)-three * (one-c1o2 * OxxPyyPzz) * (vx2 * dxux+vy2 * dyuy+vz2 * dzuz);//-magicBulk*OxxPyyPzz; @@ -636,14 +636,14 @@ void CompressibleCumulantLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba+mfabc; - LBMReal mxxyMyzz = mfcba-mfabc; + real mxxyPyzz = mfcba+mfabc; + real mxxyMyzz = mfcba-mfabc; - LBMReal mxxzPyyz = mfcab+mfacb; - LBMReal mxxzMyyz = mfcab-mfacb; + real mxxzPyyz = mfcab+mfacb; + real mxxzMyyz = mfcab-mfacb; - LBMReal mxyyPxzz = mfbca+mfbac; - LBMReal mxyyMxzz = mfbca-mfbac; + real mxyyPxzz = mfbca+mfbac; + real mxyyMxzz = mfbca-mfbac; //relax ////////////////////////////////////////////////////////////////////////// @@ -969,11 +969,11 @@ void CompressibleCumulantLBMKernel::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal drho_post = (mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) + real drho_post = (mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) +(mfaab+mfacb+mfcab+mfccb)+(mfaba+mfabc+mfcba+mfcbc)+(mfbaa+mfbac+mfbca+mfbcc) +(mfabb+mfcbb)+(mfbab+mfbcb)+(mfbba+mfbbc)+mfbbb; //LBMReal dif = fabs(rho - rho_post); - LBMReal dif = drho - drho_post; + real dif = drho - drho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) #else diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.h index 802a70770..14e8444cf 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleCumulantLBMKernel.h @@ -26,27 +26,27 @@ public: void setRelaxationParameter(Parameter p); protected: virtual void initDataSet(); - LBMReal f[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; UbTimer timer; - LBMReal OxyyMxzz; + real OxyyMxzz; Parameter parameter; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributions; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributions; mu::value_type muX1,muX2,muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; // bulk viscosity bool bulkOmegaToOmega; - LBMReal OxxPyyPzz; + real OxxPyyPzz; }; #endif // CompressibleCumulantLBMKernel_h__ diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp index ee57eb4d9..39062b231 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.cpp @@ -4,7 +4,7 @@ using namespace UbMath; ////////////////////////////////////////////////////////////////////////// -CompressibleOffsetInterpolationProcessor::CompressibleOffsetInterpolationProcessor(LBMReal omegaC, LBMReal omegaF) +CompressibleOffsetInterpolationProcessor::CompressibleOffsetInterpolationProcessor(real omegaC, real omegaF) : omegaC(omegaC), omegaF(omegaF) { @@ -19,13 +19,13 @@ InterpolationProcessorPtr CompressibleOffsetInterpolationProcessor::clone() return iproc; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetInterpolationProcessor::setOmegas( LBMReal omegaC, LBMReal omegaF ) +void CompressibleOffsetInterpolationProcessor::setOmegas( real omegaC, real omegaF ) { this->omegaC = omegaC; this->omegaF = omegaF; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetInterpolationProcessor::setOffsets(LBMReal xoff, LBMReal yoff, LBMReal zoff) +void CompressibleOffsetInterpolationProcessor::setOffsets(real xoff, real yoff, real zoff) { this->xoff = xoff; this->yoff = yoff; @@ -35,7 +35,7 @@ void CompressibleOffsetInterpolationProcessor::setOffsets(LBMReal xoff, LBMReal this->zoff_sq = zoff * zoff; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, LBMReal xoff, LBMReal yoff, LBMReal zoff) +void CompressibleOffsetInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); calcInterpolatedCoefficiets(icellC, omegaC, 0.5); @@ -49,20 +49,20 @@ void CompressibleOffsetInterpolationProcessor::interpolateCoarseToFine(D3Q27ICel calcInterpolatedNodeCF(icellF.TNE, omegaF, 0.25, 0.25, 0.25, calcPressTNE(), 1, 1, 1); } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC, LBMReal xoff, LBMReal yoff, LBMReal zoff) +void CompressibleOffsetInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); calcInterpolatedCoefficiets(icellF, omegaF, 2.0); calcInterpolatedNodeFC(icellC, omegaC); } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetInterpolationProcessor::calcMoments(const LBMReal* const f, LBMReal omega, LBMReal& press, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3, - LBMReal& kxy, LBMReal& kyz, LBMReal& kxz, LBMReal& kxxMyy, LBMReal& kxxMzz) +void CompressibleOffsetInterpolationProcessor::calcMoments(const real* const f, real omega, real& press, real& vx1, real& vx2, real& vx3, + real& kxy, real& kyz, real& kxz, real& kxxMyy, real& kxxMzz) { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal drho = 0.0; + real drho = 0.0; D3Q27System::calcCompMacroscopicValues(f,drho,vx1,vx2,vx3); press = drho; //interpolate rho! @@ -74,25 +74,25 @@ void CompressibleOffsetInterpolationProcessor::calcMoments(const LBMReal* const 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]))/(one + drho)-(vx1*vx1-vx3*vx3)); } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, LBMReal omega, LBMReal eps_new) +void CompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, real omega, real eps_new) { - LBMReal vx1_SWT,vx2_SWT,vx3_SWT; - LBMReal vx1_NWT,vx2_NWT,vx3_NWT; - LBMReal vx1_NET,vx2_NET,vx3_NET; - LBMReal vx1_SET,vx2_SET,vx3_SET; - LBMReal vx1_SWB,vx2_SWB,vx3_SWB; - LBMReal vx1_NWB,vx2_NWB,vx3_NWB; - LBMReal vx1_NEB,vx2_NEB,vx3_NEB; - LBMReal vx1_SEB,vx2_SEB,vx3_SEB; - - LBMReal kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT; - LBMReal kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT; - LBMReal kxyFromfcNEQ_NET, kyzFromfcNEQ_NET, kxzFromfcNEQ_NET, kxxMyyFromfcNEQ_NET, kxxMzzFromfcNEQ_NET; - LBMReal kxyFromfcNEQ_SET, kyzFromfcNEQ_SET, kxzFromfcNEQ_SET, kxxMyyFromfcNEQ_SET, kxxMzzFromfcNEQ_SET; - LBMReal kxyFromfcNEQ_SWB, kyzFromfcNEQ_SWB, kxzFromfcNEQ_SWB, kxxMyyFromfcNEQ_SWB, kxxMzzFromfcNEQ_SWB; - LBMReal kxyFromfcNEQ_NWB, kyzFromfcNEQ_NWB, kxzFromfcNEQ_NWB, kxxMyyFromfcNEQ_NWB, kxxMzzFromfcNEQ_NWB; - LBMReal kxyFromfcNEQ_NEB, kyzFromfcNEQ_NEB, kxzFromfcNEQ_NEB, kxxMyyFromfcNEQ_NEB, kxxMzzFromfcNEQ_NEB; - LBMReal kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; + real vx1_SWT,vx2_SWT,vx3_SWT; + real vx1_NWT,vx2_NWT,vx3_NWT; + real vx1_NET,vx2_NET,vx3_NET; + real vx1_SET,vx2_SET,vx3_SET; + real vx1_SWB,vx2_SWB,vx3_SWB; + real vx1_NWB,vx2_NWB,vx3_NWB; + real vx1_NEB,vx2_NEB,vx3_NEB; + real vx1_SEB,vx2_SEB,vx3_SEB; + + real kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT; + real kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT; + real kxyFromfcNEQ_NET, kyzFromfcNEQ_NET, kxzFromfcNEQ_NET, kxxMyyFromfcNEQ_NET, kxxMzzFromfcNEQ_NET; + real kxyFromfcNEQ_SET, kyzFromfcNEQ_SET, kxzFromfcNEQ_SET, kxxMyyFromfcNEQ_SET, kxxMzzFromfcNEQ_SET; + real kxyFromfcNEQ_SWB, kyzFromfcNEQ_SWB, kxzFromfcNEQ_SWB, kxxMyyFromfcNEQ_SWB, kxxMzzFromfcNEQ_SWB; + real kxyFromfcNEQ_NWB, kyzFromfcNEQ_NWB, kxzFromfcNEQ_NWB, kxxMyyFromfcNEQ_NWB, kxxMzzFromfcNEQ_NWB; + real kxyFromfcNEQ_NEB, kyzFromfcNEQ_NEB, kxzFromfcNEQ_NEB, kxxMyyFromfcNEQ_NEB, kxxMzzFromfcNEQ_NEB; + real kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; calcMoments(icell.TSW,omega,press_SWT,vx1_SWT,vx2_SWT,vx3_SWT, kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT); calcMoments(icell.TNW,omega,press_NWT,vx1_NWT,vx2_NWT,vx3_NWT, kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT); @@ -347,7 +347,7 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const cyz= cyz + xoff*cxyz; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - const LBMReal o = omega; + 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)); @@ -455,22 +455,22 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const yz_TNW = 0.0625*eps_new *(( bxyz + cxyz)/(72.*o)); } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeCF(LBMReal* f, LBMReal /*omega*/, LBMReal /*x*/, LBMReal /*y*/, LBMReal /*z*/, LBMReal press, LBMReal xs, LBMReal ys, LBMReal zs) +void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeCF(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; - 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.; - LBMReal 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); - LBMReal 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); - LBMReal 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 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); ////////////////////////////////////////////////////////////////////////// //DRAFT //vx1 -= forcingF*0.5; ////////////////////////////////////////////////////////////////////////// - LBMReal feq[ENDF+1]; + real feq[ENDF+1]; D3Q27System::calcCompFeq(feq,rho,vx1,vx2,vx3); f[DIR_P00] = f_E + xs*x_E + ys*y_E + zs*z_E + xs*ys*xy_E + xs*zs*xz_E + ys*zs*yz_E + feq[DIR_P00]; @@ -503,7 +503,7 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeCF(LBMReal* f } ////////////////////////////////////////////////////////////////////////// //Position SWB -0.25, -0.25, -0.25 -LBMReal CompressibleOffsetInterpolationProcessor::calcPressBSW() +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) + @@ -516,7 +516,7 @@ LBMReal CompressibleOffsetInterpolationProcessor::calcPressBSW() } ////////////////////////////////////////////////////////////////////////// //Position SWT -0.25, -0.25, 0.25 -LBMReal CompressibleOffsetInterpolationProcessor::calcPressTSW() +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) + @@ -529,7 +529,7 @@ LBMReal CompressibleOffsetInterpolationProcessor::calcPressTSW() } ////////////////////////////////////////////////////////////////////////// //Position SET 0.25, -0.25, 0.25 -LBMReal CompressibleOffsetInterpolationProcessor::calcPressTSE() +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) + @@ -542,7 +542,7 @@ LBMReal CompressibleOffsetInterpolationProcessor::calcPressTSE() } ////////////////////////////////////////////////////////////////////////// //Position SEB 0.25, -0.25, -0.25 -LBMReal CompressibleOffsetInterpolationProcessor::calcPressBSE() +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) + @@ -555,7 +555,7 @@ LBMReal CompressibleOffsetInterpolationProcessor::calcPressBSE() } ////////////////////////////////////////////////////////////////////////// //Position NWB -0.25, 0.25, -0.25 -LBMReal CompressibleOffsetInterpolationProcessor::calcPressBNW() +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) + @@ -568,7 +568,7 @@ LBMReal CompressibleOffsetInterpolationProcessor::calcPressBNW() } ////////////////////////////////////////////////////////////////////////// //Position NWT -0.25, 0.25, 0.25 -LBMReal CompressibleOffsetInterpolationProcessor::calcPressTNW() +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) + @@ -581,7 +581,7 @@ LBMReal CompressibleOffsetInterpolationProcessor::calcPressTNW() } ////////////////////////////////////////////////////////////////////////// //Position NET 0.25, 0.25, 0.25 -LBMReal CompressibleOffsetInterpolationProcessor::calcPressTNE() +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) + @@ -594,7 +594,7 @@ LBMReal CompressibleOffsetInterpolationProcessor::calcPressTNE() } ////////////////////////////////////////////////////////////////////////// //Position NEB 0.25, 0.25, -0.25 -LBMReal CompressibleOffsetInterpolationProcessor::calcPressBNE() +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) + @@ -607,12 +607,12 @@ LBMReal CompressibleOffsetInterpolationProcessor::calcPressBNE() } ////////////////////////////////////////////////////////////////////////// //Position C 0.0, 0.0, 0.0 -void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* f, LBMReal omega) +void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(real* f, real omega) { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal press = press_NET * (0.125 - 0.25 * xoff - 0.25 * yoff - 0.25 * zoff) + + 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) + @@ -620,22 +620,22 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* f 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); - LBMReal vx1 = a0; - LBMReal vx2 = b0; - LBMReal vx3 = c0; + real vx1 = a0; + real vx2 = b0; + real vx3 = c0; - LBMReal rho = press ;//+ (ax+by+cz)/3.; + real rho = press ;//+ (ax+by+cz)/3.; ////////////////////////////////////////////////////////////////////////// //DRAFT //vx1 -= forcingC*0.5; ////////////////////////////////////////////////////////////////////////// - LBMReal feq[ENDF+1]; + real feq[ENDF+1]; D3Q27System::calcCompFeq(feq,rho,vx1,vx2,vx3); - LBMReal eps_new = 2.; - LBMReal o = omega; + real eps_new = 2.; + real o = omega; // LBMReal op = 1.; //f_E = eps_new *((5.*ax*o + 5.*by*o + 5.*cz*o - 8.*ax*op + 4.*by*op + 4.*cz*op)/(54.*o*op)); @@ -697,14 +697,14 @@ void CompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* f f[DIR_000] = f_ZERO + feq[DIR_000]; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetInterpolationProcessor::calcInterpolatedVelocity(LBMReal x, LBMReal y, LBMReal z, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3) +void CompressibleOffsetInterpolationProcessor::calcInterpolatedVelocity(real x, real y, real z, real& vx1, real& vx2, real& vx3) { vx1 = a0 + ax*x + ay*y + az*z + axx*x*x + ayy*y*y + azz*z*z + axy*x*y + axz*x*z + ayz*y*z+axyz*x*y*z; vx2 = b0 + bx*x + by*y + bz*z + bxx*x*x + byy*y*y + bzz*z*z + bxy*x*y + bxz*x*z + byz*y*z+bxyz*x*y*z; vx3 = c0 + cx*x + cy*y + cz*z + cxx*x*x + cyy*y*y + czz*z*z + cxy*x*y + cxz*x*z + cyz*y*z+cxyz*x*y*z; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetInterpolationProcessor::calcInterpolatedShearStress(LBMReal x, LBMReal y, LBMReal z,LBMReal& tauxx, LBMReal& tauyy, LBMReal& tauzz,LBMReal& tauxy, LBMReal& tauxz, LBMReal& tauyz) +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; diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.h b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.h index b81277683..fefd6ed15 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.h +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetInterpolationProcessor.h @@ -15,52 +15,52 @@ class CompressibleOffsetInterpolationProcessor : public InterpolationProcessor { public: CompressibleOffsetInterpolationProcessor() = default; - CompressibleOffsetInterpolationProcessor(LBMReal omegaC, LBMReal omegaF); + CompressibleOffsetInterpolationProcessor(real omegaC, real omegaF); ~CompressibleOffsetInterpolationProcessor() override = default; InterpolationProcessorPtr clone() override; - void setOmegas(LBMReal omegaC, LBMReal omegaF) override; + void setOmegas(real omegaC, real omegaF) override; void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF) override; - void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, LBMReal xoff, LBMReal yoff, LBMReal zoff) override; - void interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC) override; - void interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC, LBMReal xoff, LBMReal yoff, LBMReal zoff) override; + void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff) override; + void interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC) override; + void interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff) override; //LBMReal forcingC, forcingF; protected: private: - LBMReal omegaC{0.0}, omegaF{0.0}; - LBMReal a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz, axyz, bxyz, cxyz; - LBMReal xoff, yoff, zoff; - LBMReal xoff_sq, yoff_sq, zoff_sq; - LBMReal press_SWT, press_NWT, press_NET, press_SET, press_SWB, press_NWB, press_NEB, press_SEB; + real omegaC{0.0}, omegaF{0.0}; + real a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz, axyz, bxyz, cxyz; + real xoff, yoff, zoff; + real xoff_sq, yoff_sq, zoff_sq; + real press_SWT, press_NWT, press_NET, press_SET, press_SWB, press_NWB, press_NEB, press_SEB; - LBMReal f_E, f_N, f_T, f_NE, f_SE, f_BE, f_TE, f_TN, f_BN, f_TNE, f_TNW, f_TSE, f_TSW, f_ZERO; - LBMReal x_E, x_N, x_T, x_NE, x_SE, x_BE, x_TE, x_TN, x_BN, x_TNE, x_TNW, x_TSE, x_TSW, x_ZERO; - LBMReal y_E, y_N, y_T, y_NE, y_SE, y_BE, y_TE, y_TN, y_BN, y_TNE, y_TNW, y_TSE, y_TSW, y_ZERO; - LBMReal z_E, z_N, z_T, z_NE, z_SE, z_BE, z_TE, z_TN, z_BN, z_TNE, z_TNW, z_TSE, z_TSW, z_ZERO; - LBMReal xy_E, xy_N, xy_T, xy_NE, xy_SE, xy_BE, xy_TE, xy_TN, xy_BN, xy_TNE, xy_TNW, xy_TSE, xy_TSW/*, xy_ZERO*/; - LBMReal xz_E, xz_N, xz_T, xz_NE, xz_SE, xz_BE, xz_TE, xz_TN, xz_BN, xz_TNE, xz_TNW, xz_TSE, xz_TSW/*, xz_ZERO*/; - LBMReal yz_E, yz_N, yz_T, yz_NE, yz_SE, yz_BE, yz_TE, yz_TN, yz_BN, yz_TNE, yz_TNW, yz_TSE, yz_TSW/*, yz_ZERO*/; + real f_E, f_N, f_T, f_NE, f_SE, f_BE, f_TE, f_TN, f_BN, f_TNE, f_TNW, f_TSE, f_TSW, f_ZERO; + real x_E, x_N, x_T, x_NE, x_SE, x_BE, x_TE, x_TN, x_BN, x_TNE, x_TNW, x_TSE, x_TSW, x_ZERO; + real y_E, y_N, y_T, y_NE, y_SE, y_BE, y_TE, y_TN, y_BN, y_TNE, y_TNW, y_TSE, y_TSW, y_ZERO; + real z_E, z_N, z_T, z_NE, z_SE, z_BE, z_TE, z_TN, z_BN, z_TNE, z_TNW, z_TSE, z_TSW, z_ZERO; + real xy_E, xy_N, xy_T, xy_NE, xy_SE, xy_BE, xy_TE, xy_TN, xy_BN, xy_TNE, xy_TNW, xy_TSE, xy_TSW/*, xy_ZERO*/; + real xz_E, xz_N, xz_T, xz_NE, xz_SE, xz_BE, xz_TE, xz_TN, xz_BN, xz_TNE, xz_TNW, xz_TSE, xz_TSW/*, xz_ZERO*/; + real yz_E, yz_N, yz_T, yz_NE, yz_SE, yz_BE, yz_TE, yz_TN, yz_BN, yz_TNE, yz_TNW, yz_TSE, yz_TSW/*, yz_ZERO*/; - LBMReal kxyAverage, kyzAverage, kxzAverage, kxxMyyAverage, kxxMzzAverage; + real kxyAverage, kyzAverage, kxzAverage, kxxMyyAverage, kxxMzzAverage; // LBMReal a,b,c; - void setOffsets(LBMReal xoff, LBMReal yoff, LBMReal zoff) override; - void calcMoments(const LBMReal* const f, LBMReal omega, LBMReal& rho, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3, - LBMReal& kxy, LBMReal& kyz, LBMReal& kxz, LBMReal& kxxMyy, LBMReal& kxxMzz); - void calcInterpolatedCoefficiets(const D3Q27ICell& icell, LBMReal omega, LBMReal eps_new) override; - void calcInterpolatedNodeCF(LBMReal* f, LBMReal omega, LBMReal x, LBMReal y, LBMReal z, LBMReal press, LBMReal xs, LBMReal ys, LBMReal zs); - LBMReal calcPressBSW(); - LBMReal calcPressTSW(); - LBMReal calcPressTSE(); - LBMReal calcPressBSE(); - LBMReal calcPressBNW(); - LBMReal calcPressTNW(); - LBMReal calcPressTNE(); - LBMReal calcPressBNE(); - void calcInterpolatedNodeFC(LBMReal* f, LBMReal omega) override; - void calcInterpolatedVelocity(LBMReal x, LBMReal y, LBMReal z,LBMReal& vx1, LBMReal& vx2, LBMReal& vx3) override; - void calcInterpolatedShearStress(LBMReal x, LBMReal y, LBMReal z,LBMReal& tauxx, LBMReal& tauyy, LBMReal& tauzz,LBMReal& tauxy, LBMReal& tauxz, LBMReal& tauyz) override; + void setOffsets(real xoff, real yoff, real zoff) override; + void calcMoments(const real* const f, real omega, real& rho, real& vx1, real& vx2, real& vx3, + real& kxy, real& kyz, real& kxz, real& kxxMyy, real& kxxMzz); + void calcInterpolatedCoefficiets(const D3Q27ICell& icell, real omega, real eps_new) override; + void calcInterpolatedNodeCF(real* f, real omega, real x, real y, real z, real press, real xs, real ys, real zs); + real calcPressBSW(); + real calcPressTSW(); + real calcPressTSE(); + real calcPressBSE(); + real calcPressBNW(); + real calcPressTNW(); + real calcPressTNE(); + real calcPressBNE(); + void calcInterpolatedNodeFC(real* f, real omega) override; + void calcInterpolatedVelocity(real x, real y, real z,real& vx1, real& vx2, real& vx3) override; + void calcInterpolatedShearStress(real x, real y, real z,real& tauxx, real& tauyy, real& tauzz,real& tauxy, real& tauxz, real& tauyz) override; }; ////////////////////////////////////////////////////////////////////////// @@ -69,7 +69,7 @@ inline void CompressibleOffsetInterpolationProcessor::interpolateCoarseToFine(D3 this->interpolateCoarseToFine(icellC, icellF, 0.0, 0.0, 0.0); } ////////////////////////////////////////////////////////////////////////// -inline void CompressibleOffsetInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC) +inline void CompressibleOffsetInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC) { this->interpolateFineToCoarse(icellF, icellC, 0.0, 0.0, 0.0); } diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp index 08eef4d95..a9aff588f 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.cpp @@ -12,7 +12,7 @@ CompressibleOffsetMomentsInterpolationProcessor::CompressibleOffsetMomentsInterp this->OxxPyyPzzF = one; } ////////////////////////////////////////////////////////////////////////// -CompressibleOffsetMomentsInterpolationProcessor::CompressibleOffsetMomentsInterpolationProcessor(LBMReal omegaC, LBMReal omegaF) +CompressibleOffsetMomentsInterpolationProcessor::CompressibleOffsetMomentsInterpolationProcessor(real omegaC, real omegaF) : omegaC(omegaC), omegaF(omegaF) { this->bulkViscosity = 0.0; @@ -34,13 +34,13 @@ InterpolationProcessorPtr CompressibleOffsetMomentsInterpolationProcessor::clone return iproc; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetMomentsInterpolationProcessor::setOmegas( LBMReal omegaC, LBMReal omegaF ) +void CompressibleOffsetMomentsInterpolationProcessor::setOmegas( real omegaC, real omegaF ) { this->omegaC = omegaC; this->omegaF = omegaF; - LBMReal dtC = (3.0*shearViscosity)/((1/omegaC)-0.5); - LBMReal dtF = (3.0*shearViscosity)/((1/omegaF)-0.5); + real dtC = (3.0*shearViscosity)/((1/omegaC)-0.5); + real dtF = (3.0*shearViscosity)/((1/omegaF)-0.5); if (bulkViscosity != 0) { @@ -54,7 +54,7 @@ void CompressibleOffsetMomentsInterpolationProcessor::setOmegas( LBMReal omegaC, } } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetMomentsInterpolationProcessor::setOffsets(LBMReal xoff, LBMReal yoff, LBMReal zoff) +void CompressibleOffsetMomentsInterpolationProcessor::setOffsets(real xoff, real yoff, real zoff) { this->xoff = xoff; this->yoff = yoff; @@ -64,7 +64,7 @@ void CompressibleOffsetMomentsInterpolationProcessor::setOffsets(LBMReal xoff, L this->zoff_sq = zoff * zoff; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetMomentsInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, LBMReal xoff, LBMReal yoff, LBMReal zoff) +void CompressibleOffsetMomentsInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); calcInterpolatedCoefficiets(icellC, omegaC, 0.5); @@ -78,20 +78,20 @@ void CompressibleOffsetMomentsInterpolationProcessor::interpolateCoarseToFine(D3 calcInterpolatedNodeCF(icellF.TNE, omegaF, 0.25, 0.25, 0.25, calcPressTNE(), 1, 1, 1); } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetMomentsInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC, LBMReal xoff, LBMReal yoff, LBMReal zoff) +void CompressibleOffsetMomentsInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); calcInterpolatedCoefficiets(icellF, omegaF, 2.0); calcInterpolatedNodeFC(icellC, omegaC); } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetMomentsInterpolationProcessor::calcMoments(const LBMReal* const f, LBMReal omega, LBMReal& press, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3, - LBMReal& kxy, LBMReal& kyz, LBMReal& kxz, LBMReal& kxxMyy, LBMReal& kxxMzz) +void CompressibleOffsetMomentsInterpolationProcessor::calcMoments(const real* const f, real omega, real& press, real& vx1, real& vx2, real& vx3, + real& kxy, real& kyz, real& kxz, real& kxxMyy, real& kxxMzz) { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal drho = 0.0; + real drho = 0.0; D3Q27System::calcCompMacroscopicValues(f,drho,vx1,vx2,vx3); press = drho; //interpolate rho! @@ -103,25 +103,25 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcMoments(const LBMReal* 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]))/(one + drho)-(vx1*vx1-vx3*vx3)); } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, LBMReal omega, LBMReal eps_new) +void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, real omega, real eps_new) { - LBMReal vx1_SWT,vx2_SWT,vx3_SWT; - LBMReal vx1_NWT,vx2_NWT,vx3_NWT; - LBMReal vx1_NET,vx2_NET,vx3_NET; - LBMReal vx1_SET,vx2_SET,vx3_SET; - LBMReal vx1_SWB,vx2_SWB,vx3_SWB; - LBMReal vx1_NWB,vx2_NWB,vx3_NWB; - LBMReal vx1_NEB,vx2_NEB,vx3_NEB; - LBMReal vx1_SEB,vx2_SEB,vx3_SEB; - - LBMReal kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT; - LBMReal kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT; - LBMReal kxyFromfcNEQ_NET, kyzFromfcNEQ_NET, kxzFromfcNEQ_NET, kxxMyyFromfcNEQ_NET, kxxMzzFromfcNEQ_NET; - LBMReal kxyFromfcNEQ_SET, kyzFromfcNEQ_SET, kxzFromfcNEQ_SET, kxxMyyFromfcNEQ_SET, kxxMzzFromfcNEQ_SET; - LBMReal kxyFromfcNEQ_SWB, kyzFromfcNEQ_SWB, kxzFromfcNEQ_SWB, kxxMyyFromfcNEQ_SWB, kxxMzzFromfcNEQ_SWB; - LBMReal kxyFromfcNEQ_NWB, kyzFromfcNEQ_NWB, kxzFromfcNEQ_NWB, kxxMyyFromfcNEQ_NWB, kxxMzzFromfcNEQ_NWB; - LBMReal kxyFromfcNEQ_NEB, kyzFromfcNEQ_NEB, kxzFromfcNEQ_NEB, kxxMyyFromfcNEQ_NEB, kxxMzzFromfcNEQ_NEB; - LBMReal kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; + real vx1_SWT,vx2_SWT,vx3_SWT; + real vx1_NWT,vx2_NWT,vx3_NWT; + real vx1_NET,vx2_NET,vx3_NET; + real vx1_SET,vx2_SET,vx3_SET; + real vx1_SWB,vx2_SWB,vx3_SWB; + real vx1_NWB,vx2_NWB,vx3_NWB; + real vx1_NEB,vx2_NEB,vx3_NEB; + real vx1_SEB,vx2_SEB,vx3_SEB; + + real kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT; + real kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT; + real kxyFromfcNEQ_NET, kyzFromfcNEQ_NET, kxzFromfcNEQ_NET, kxxMyyFromfcNEQ_NET, kxxMzzFromfcNEQ_NET; + real kxyFromfcNEQ_SET, kyzFromfcNEQ_SET, kxzFromfcNEQ_SET, kxxMyyFromfcNEQ_SET, kxxMzzFromfcNEQ_SET; + real kxyFromfcNEQ_SWB, kyzFromfcNEQ_SWB, kxzFromfcNEQ_SWB, kxxMyyFromfcNEQ_SWB, kxxMzzFromfcNEQ_SWB; + real kxyFromfcNEQ_NWB, kyzFromfcNEQ_NWB, kxzFromfcNEQ_NWB, kxxMyyFromfcNEQ_NWB, kxxMzzFromfcNEQ_NWB; + real kxyFromfcNEQ_NEB, kyzFromfcNEQ_NEB, kxzFromfcNEQ_NEB, kxxMyyFromfcNEQ_NEB, kxxMzzFromfcNEQ_NEB; + real kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; calcMoments(icell.TSW,omega,press_SWT,vx1_SWT,vx2_SWT,vx3_SWT, kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT); calcMoments(icell.TNW,omega,press_NWT,vx1_NWT,vx2_NWT,vx3_NWT, kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT); @@ -376,7 +376,7 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedCoefficiet cyz= cyz + xoff*cxyz; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - const LBMReal o = omega; + 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)); @@ -484,62 +484,62 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedCoefficiet yz_TNW = 0.0625*eps_new *(( bxyz + cxyz)/(72.*o)); } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeCF(LBMReal* f, LBMReal omega, LBMReal x, LBMReal y, LBMReal z, LBMReal press, LBMReal xs, LBMReal ys, LBMReal zs) +void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeCF(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; - LBMReal eps_new = 0.5; - LBMReal o = omega; + real eps_new = 0.5; + real o = omega; //bulk viscosity - LBMReal oP = OxxPyyPzzF; + 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.; - LBMReal 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); - LBMReal 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); - LBMReal 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 mfcbb = zeroReal; - LBMReal mfabb = zeroReal; - LBMReal mfbcb = zeroReal; - LBMReal mfbab = zeroReal; - LBMReal mfbbc = zeroReal; - LBMReal mfbba = zeroReal; - LBMReal mfccb = zeroReal; - LBMReal mfaab = zeroReal; - LBMReal mfcab = zeroReal; - LBMReal mfacb = zeroReal; - LBMReal mfcbc = zeroReal; - LBMReal mfaba = zeroReal; - LBMReal mfcba = zeroReal; - LBMReal mfabc = zeroReal; - LBMReal mfbcc = zeroReal; - LBMReal mfbaa = zeroReal; - LBMReal mfbca = zeroReal; - LBMReal mfbac = zeroReal; - LBMReal mfbbb = zeroReal; - LBMReal mfccc = zeroReal; - LBMReal mfaac = zeroReal; - LBMReal mfcac = zeroReal; - LBMReal mfacc = zeroReal; - LBMReal mfcca = zeroReal; - LBMReal mfaaa = zeroReal; - LBMReal mfcaa = zeroReal; - LBMReal mfaca = zeroReal; + 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 mfcbb = zeroReal; + real mfabb = zeroReal; + real mfbcb = zeroReal; + real mfbab = zeroReal; + real mfbbc = zeroReal; + real mfbba = zeroReal; + real mfccb = zeroReal; + real mfaab = zeroReal; + real mfcab = zeroReal; + real mfacb = zeroReal; + real mfcbc = zeroReal; + real mfaba = zeroReal; + real mfcba = zeroReal; + real mfabc = zeroReal; + real mfbcc = zeroReal; + real mfbaa = zeroReal; + real mfbca = zeroReal; + real mfbac = zeroReal; + real mfbbb = zeroReal; + real mfccc = zeroReal; + real mfaac = zeroReal; + real mfcac = zeroReal; + real mfacc = zeroReal; + real mfcca = zeroReal; + real mfaaa = zeroReal; + real mfcaa = zeroReal; + real mfaca = zeroReal; mfaaa = press; // if drho is interpolated directly - LBMReal vx1Sq = vx1*vx1; - LBMReal vx2Sq = vx2*vx2; - LBMReal vx3Sq = vx3*vx3; - LBMReal oMdrho = one; + real vx1Sq = vx1*vx1; + real vx2Sq = vx2*vx2; + real vx3Sq = vx3*vx3; + real oMdrho = one; //2.f // linear combinations - LBMReal mxxPyyPzz = mfaaa - c2o3*(ax + by + two*axx*x + bxy*x + axy*y + two*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + two*czz*z)*eps_new / oP* (one + press); - LBMReal mxxMyy = -c2o3*(ax - by + kxxMyyAverage + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (one + press); - LBMReal mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o * (one + press); + real mxxPyyPzz = mfaaa - c2o3*(ax + by + two*axx*x + bxy*x + axy*y + two*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + two*czz*z)*eps_new / oP* (one + press); + real mxxMyy = -c2o3*(ax - by + kxxMyyAverage + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (one + press); + real mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o * (one + press); mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (one + press); mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (one + press); @@ -552,12 +552,12 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeCF(LBM //three mfbbb = zeroReal; - LBMReal mxxyPyzz = zeroReal; - LBMReal mxxyMyzz = zeroReal; - LBMReal mxxzPyyz = zeroReal; - LBMReal mxxzMyyz = zeroReal; - LBMReal mxyyPxzz = zeroReal; - LBMReal mxyyMxzz = zeroReal; + real mxxyPyzz = zeroReal; + real mxxyMyzz = zeroReal; + real mxxzPyyz = zeroReal; + real mxxzMyyz = zeroReal; + real mxyyPxzz = zeroReal; + real mxyyMxzz = zeroReal; // linear combinations back mfcba = (mxxyMyzz + mxxyPyzz) * c1o2; @@ -583,9 +583,9 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeCF(LBM //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren //////////////////////////////////////////////////////////////////////////////////// // Z - Dir - LBMReal m0 = mfaac * c1o2 + mfaab * (vx3 - c1o2) + (mfaaa + one * oMdrho) * (vx3Sq - vx3) * c1o2; - LBMReal m1 = -mfaac - two * mfaab * vx3 + mfaaa * (one - vx3Sq) - one * oMdrho * vx3Sq; - LBMReal m2 = mfaac * c1o2 + mfaab * (vx3 + c1o2) + (mfaaa + one * oMdrho) * (vx3Sq + vx3) * c1o2; + real m0 = mfaac * c1o2 + mfaab * (vx3 - c1o2) + (mfaaa + one * oMdrho) * (vx3Sq - vx3) * c1o2; + real m1 = -mfaac - two * mfaab * vx3 + mfaaa * (one - vx3Sq) - one * oMdrho * vx3Sq; + real m2 = mfaac * c1o2 + mfaab * (vx3 + c1o2) + (mfaaa + one * oMdrho) * (vx3Sq + vx3) * c1o2; mfaaa = m0; mfaab = m1; mfaac = m2; @@ -817,7 +817,7 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeCF(LBM } ////////////////////////////////////////////////////////////////////////// //Position SWB -0.25, -0.25, -0.25 -LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressBSW() +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) + @@ -830,7 +830,7 @@ LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressBSW() } ////////////////////////////////////////////////////////////////////////// //Position SWT -0.25, -0.25, 0.25 -LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressTSW() +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) + @@ -843,7 +843,7 @@ LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressTSW() } ////////////////////////////////////////////////////////////////////////// //Position SET 0.25, -0.25, 0.25 -LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressTSE() +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) + @@ -856,7 +856,7 @@ LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressTSE() } ////////////////////////////////////////////////////////////////////////// //Position SEB 0.25, -0.25, -0.25 -LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressBSE() +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) + @@ -869,7 +869,7 @@ LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressBSE() } ////////////////////////////////////////////////////////////////////////// //Position NWB -0.25, 0.25, -0.25 -LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressBNW() +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) + @@ -882,7 +882,7 @@ LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressBNW() } ////////////////////////////////////////////////////////////////////////// //Position NWT -0.25, 0.25, 0.25 -LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressTNW() +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) + @@ -895,7 +895,7 @@ LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressTNW() } ////////////////////////////////////////////////////////////////////////// //Position NET 0.25, 0.25, 0.25 -LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressTNE() +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) + @@ -908,7 +908,7 @@ LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressTNE() } ////////////////////////////////////////////////////////////////////////// //Position NEB 0.25, 0.25, -0.25 -LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressBNE() +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) + @@ -921,12 +921,12 @@ LBMReal CompressibleOffsetMomentsInterpolationProcessor::calcPressBNE() } ////////////////////////////////////////////////////////////////////////// //Position C 0.0, 0.0, 0.0 -void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* f, LBMReal omega) +void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeFC(real* f, real omega) { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal press = press_NET * (0.125 - 0.25 * xoff - 0.25 * yoff - 0.25 * zoff) + + 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) + @@ -934,61 +934,61 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeFC(LBM 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); - LBMReal vx1 = a0; - LBMReal vx2 = b0; - LBMReal vx3 = c0; + real vx1 = a0; + real vx2 = b0; + real vx3 = c0; // LBMReal rho = press ;//+ (ax+by+cz)/3.; - LBMReal eps_new = 2.; - LBMReal o = omega; + real eps_new = 2.; + real o = omega; //bulk viscosity - LBMReal oP = OxxPyyPzzC; - - LBMReal mfcbb = zeroReal; - LBMReal mfabb = zeroReal; - LBMReal mfbcb = zeroReal; - LBMReal mfbab = zeroReal; - LBMReal mfbbc = zeroReal; - LBMReal mfbba = zeroReal; - LBMReal mfccb = zeroReal; - LBMReal mfaab = zeroReal; - LBMReal mfcab = zeroReal; - LBMReal mfacb = zeroReal; - LBMReal mfcbc = zeroReal; - LBMReal mfaba = zeroReal; - LBMReal mfcba = zeroReal; - LBMReal mfabc = zeroReal; - LBMReal mfbcc = zeroReal; - LBMReal mfbaa = zeroReal; - LBMReal mfbca = zeroReal; - LBMReal mfbac = zeroReal; - LBMReal mfbbb = zeroReal; - LBMReal mfccc = zeroReal; - LBMReal mfaac = zeroReal; - LBMReal mfcac = zeroReal; - LBMReal mfacc = zeroReal; - LBMReal mfcca = zeroReal; - LBMReal mfaaa = zeroReal; - LBMReal mfcaa = zeroReal; - LBMReal mfaca = zeroReal; + real oP = OxxPyyPzzC; + + real mfcbb = zeroReal; + real mfabb = zeroReal; + real mfbcb = zeroReal; + real mfbab = zeroReal; + real mfbbc = zeroReal; + real mfbba = zeroReal; + real mfccb = zeroReal; + real mfaab = zeroReal; + real mfcab = zeroReal; + real mfacb = zeroReal; + real mfcbc = zeroReal; + real mfaba = zeroReal; + real mfcba = zeroReal; + real mfabc = zeroReal; + real mfbcc = zeroReal; + real mfbaa = zeroReal; + real mfbca = zeroReal; + real mfbac = zeroReal; + real mfbbb = zeroReal; + real mfccc = zeroReal; + real mfaac = zeroReal; + real mfcac = zeroReal; + real mfacc = zeroReal; + real mfcca = zeroReal; + real mfaaa = zeroReal; + real mfcaa = zeroReal; + real mfaca = zeroReal; mfaaa = press; // if drho is interpolated directly - LBMReal vx1Sq = vx1*vx1; - LBMReal vx2Sq = vx2*vx2; - LBMReal vx3Sq = vx3*vx3; - LBMReal oMdrho = one; + real vx1Sq = vx1*vx1; + real vx2Sq = vx2*vx2; + real vx3Sq = vx3*vx3; + real oMdrho = one; //oMdrho = one - mfaaa; //2.f // linear combinations ///////////////////////// - LBMReal mxxPyyPzz = mfaaa -c2o3*(ax+by+cz)*eps_new/oP*(one+press); + real mxxPyyPzz = mfaaa -c2o3*(ax+by+cz)*eps_new/oP*(one+press); - LBMReal mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (one + press); - LBMReal mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (one + press); + real mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (one + press); + real mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (one + press); mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (one + press); mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (one + press); @@ -1003,12 +1003,12 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeFC(LBM //three mfbbb = zeroReal; - LBMReal mxxyPyzz = zeroReal; - LBMReal mxxyMyzz = zeroReal; - LBMReal mxxzPyyz = zeroReal; - LBMReal mxxzMyyz = zeroReal; - LBMReal mxyyPxzz = zeroReal; - LBMReal mxyyMxzz = zeroReal; + real mxxyPyzz = zeroReal; + real mxxyMyzz = zeroReal; + real mxxzPyyz = zeroReal; + real mxxzMyyz = zeroReal; + real mxyyPxzz = zeroReal; + real mxyyMxzz = zeroReal; // linear combinations back mfcba = (mxxyMyzz + mxxyPyzz) * c1o2; @@ -1032,9 +1032,9 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeFC(LBM //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren //////////////////////////////////////////////////////////////////////////////////// // Z - Dir - LBMReal m0 = mfaac * c1o2 + mfaab * (vx3 - c1o2) + (mfaaa + one * oMdrho) * (vx3Sq - vx3) * c1o2; - LBMReal m1 = -mfaac - two * mfaab * vx3 + mfaaa * (one - vx3Sq) - one * oMdrho * vx3Sq; - LBMReal m2 = mfaac * c1o2 + mfaab * (vx3 + c1o2) + (mfaaa + one * oMdrho) * (vx3Sq + vx3) * c1o2; + real m0 = mfaac * c1o2 + mfaab * (vx3 - c1o2) + (mfaaa + one * oMdrho) * (vx3Sq - vx3) * c1o2; + real m1 = -mfaac - two * mfaab * vx3 + mfaaa * (one - vx3Sq) - one * oMdrho * vx3Sq; + real m2 = mfaac * c1o2 + mfaab * (vx3 + c1o2) + (mfaaa + one * oMdrho) * (vx3Sq + vx3) * c1o2; mfaaa = m0; mfaab = m1; mfaac = m2; @@ -1265,14 +1265,14 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedNodeFC(LBM f[DIR_MMM] = mfaaa; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedVelocity(LBMReal x, LBMReal y, LBMReal z, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3) +void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedVelocity(real x, real y, real z, real& vx1, real& vx2, real& vx3) { vx1 = a0 + ax*x + ay*y + az*z + axx*x*x + ayy*y*y + azz*z*z + axy*x*y + axz*x*z + ayz*y*z+axyz*x*y*z; vx2 = b0 + bx*x + by*y + bz*z + bxx*x*x + byy*y*y + bzz*z*z + bxy*x*y + bxz*x*z + byz*y*z+bxyz*x*y*z; vx3 = c0 + cx*x + cy*y + cz*z + cxx*x*x + cyy*y*y + czz*z*z + cxy*x*y + cxz*x*z + cyz*y*z+cxyz*x*y*z; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedShearStress(LBMReal x, LBMReal y, LBMReal z,LBMReal& tauxx, LBMReal& tauyy, LBMReal& tauzz,LBMReal& tauxy, LBMReal& tauxz, LBMReal& tauyz) +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; @@ -1282,7 +1282,7 @@ void CompressibleOffsetMomentsInterpolationProcessor::calcInterpolatedShearStres 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)); } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetMomentsInterpolationProcessor::setBulkViscosity(LBMReal shearViscosity, LBMReal bulkViscosity) +void CompressibleOffsetMomentsInterpolationProcessor::setBulkViscosity(real shearViscosity, real bulkViscosity) { this->shearViscosity = shearViscosity; this->bulkViscosity = bulkViscosity; diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.h b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.h index bee108e64..32ab8cedf 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.h +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetMomentsInterpolationProcessor.h @@ -15,57 +15,57 @@ class CompressibleOffsetMomentsInterpolationProcessor : public InterpolationProc { public: CompressibleOffsetMomentsInterpolationProcessor(); - CompressibleOffsetMomentsInterpolationProcessor(LBMReal omegaC, LBMReal omegaF); + CompressibleOffsetMomentsInterpolationProcessor(real omegaC, real omegaF); ~CompressibleOffsetMomentsInterpolationProcessor() override; InterpolationProcessorPtr clone() override; - void setOmegas(LBMReal omegaC, LBMReal omegaF) override; + void setOmegas(real omegaC, real omegaF) override; void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF) override; - void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, LBMReal xoff, LBMReal yoff, LBMReal zoff) override; - void interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC) override; - void interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC, LBMReal xoff, LBMReal yoff, LBMReal zoff) override; - void setBulkViscosity(LBMReal shearViscosity, LBMReal bulkViscosity); + void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff) override; + void interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC) override; + void interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff) override; + void setBulkViscosity(real shearViscosity, real bulkViscosity); protected: private: - LBMReal omegaC{0.0}, omegaF{0.0}; - LBMReal a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz, axyz, bxyz, cxyz; - LBMReal xoff, yoff, zoff; - LBMReal xoff_sq, yoff_sq, zoff_sq; - LBMReal press_SWT, press_NWT, press_NET, press_SET, press_SWB, press_NWB, press_NEB, press_SEB; + real omegaC{0.0}, omegaF{0.0}; + real a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz, axyz, bxyz, cxyz; + real xoff, yoff, zoff; + real xoff_sq, yoff_sq, zoff_sq; + real press_SWT, press_NWT, press_NET, press_SET, press_SWB, press_NWB, press_NEB, press_SEB; - LBMReal f_E, f_N, f_T, f_NE, f_SE, f_BE, f_TE, f_TN, f_BN, f_TNE, f_TNW, f_TSE, f_TSW, f_ZERO; - LBMReal x_E, x_N, x_T, x_NE, x_SE, x_BE, x_TE, x_TN, x_BN, x_TNE, x_TNW, x_TSE, x_TSW, x_ZERO; - LBMReal y_E, y_N, y_T, y_NE, y_SE, y_BE, y_TE, y_TN, y_BN, y_TNE, y_TNW, y_TSE, y_TSW, y_ZERO; - LBMReal z_E, z_N, z_T, z_NE, z_SE, z_BE, z_TE, z_TN, z_BN, z_TNE, z_TNW, z_TSE, z_TSW, z_ZERO; - LBMReal xy_E, xy_N, xy_T, xy_NE, xy_SE, xy_BE, xy_TE, xy_TN, xy_BN, xy_TNE, xy_TNW, xy_TSE, xy_TSW/*, xy_ZERO*/; - LBMReal xz_E, xz_N, xz_T, xz_NE, xz_SE, xz_BE, xz_TE, xz_TN, xz_BN, xz_TNE, xz_TNW, xz_TSE, xz_TSW/*, xz_ZERO*/; - LBMReal yz_E, yz_N, yz_T, yz_NE, yz_SE, yz_BE, yz_TE, yz_TN, yz_BN, yz_TNE, yz_TNW, yz_TSE, yz_TSW/*, yz_ZERO*/; + real f_E, f_N, f_T, f_NE, f_SE, f_BE, f_TE, f_TN, f_BN, f_TNE, f_TNW, f_TSE, f_TSW, f_ZERO; + real x_E, x_N, x_T, x_NE, x_SE, x_BE, x_TE, x_TN, x_BN, x_TNE, x_TNW, x_TSE, x_TSW, x_ZERO; + real y_E, y_N, y_T, y_NE, y_SE, y_BE, y_TE, y_TN, y_BN, y_TNE, y_TNW, y_TSE, y_TSW, y_ZERO; + real z_E, z_N, z_T, z_NE, z_SE, z_BE, z_TE, z_TN, z_BN, z_TNE, z_TNW, z_TSE, z_TSW, z_ZERO; + real xy_E, xy_N, xy_T, xy_NE, xy_SE, xy_BE, xy_TE, xy_TN, xy_BN, xy_TNE, xy_TNW, xy_TSE, xy_TSW/*, xy_ZERO*/; + real xz_E, xz_N, xz_T, xz_NE, xz_SE, xz_BE, xz_TE, xz_TN, xz_BN, xz_TNE, xz_TNW, xz_TSE, xz_TSW/*, xz_ZERO*/; + real yz_E, yz_N, yz_T, yz_NE, yz_SE, yz_BE, yz_TE, yz_TN, yz_BN, yz_TNE, yz_TNW, yz_TSE, yz_TSW/*, yz_ZERO*/; - LBMReal kxyAverage, kyzAverage, kxzAverage, kxxMyyAverage, kxxMzzAverage; + real kxyAverage, kyzAverage, kxzAverage, kxxMyyAverage, kxxMzzAverage; -// LBMReal a,b,c; +// real a,b,c; // bulk viscosity - LBMReal shearViscosity; - LBMReal bulkViscosity; - LBMReal OxxPyyPzzC; - LBMReal OxxPyyPzzF; + real shearViscosity; + real bulkViscosity; + real OxxPyyPzzC; + real OxxPyyPzzF; - void setOffsets(LBMReal xoff, LBMReal yoff, LBMReal zoff) override; - void calcMoments(const LBMReal* const f, LBMReal omega, LBMReal& rho, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3, - LBMReal& kxy, LBMReal& kyz, LBMReal& kxz, LBMReal& kxxMyy, LBMReal& kxxMzz); - void calcInterpolatedCoefficiets(const D3Q27ICell& icell, LBMReal omega, LBMReal eps_new) override; - void calcInterpolatedNodeCF(LBMReal* f, LBMReal omega, LBMReal x, LBMReal y, LBMReal z, LBMReal press, LBMReal xs, LBMReal ys, LBMReal zs); - LBMReal calcPressBSW(); - LBMReal calcPressTSW(); - LBMReal calcPressTSE(); - LBMReal calcPressBSE(); - LBMReal calcPressBNW(); - LBMReal calcPressTNW(); - LBMReal calcPressTNE(); - LBMReal calcPressBNE(); - void calcInterpolatedNodeFC(LBMReal* f, LBMReal omega) override; - void calcInterpolatedVelocity(LBMReal x, LBMReal y, LBMReal z,LBMReal& vx1, LBMReal& vx2, LBMReal& vx3) override; - void calcInterpolatedShearStress(LBMReal x, LBMReal y, LBMReal z,LBMReal& tauxx, LBMReal& tauyy, LBMReal& tauzz,LBMReal& tauxy, LBMReal& tauxz, LBMReal& tauyz) override; + void setOffsets(real xoff, real yoff, real zoff) override; + void calcMoments(const real* const f, real omega, real& rho, real& vx1, real& vx2, real& vx3, + real& kxy, real& kyz, real& kxz, real& kxxMyy, real& kxxMzz); + void calcInterpolatedCoefficiets(const D3Q27ICell& icell, real omega, real eps_new) override; + void calcInterpolatedNodeCF(real* f, real omega, real x, real y, real z, real press, real xs, real ys, real zs); + real calcPressBSW(); + real calcPressTSW(); + real calcPressTSE(); + real calcPressBSE(); + real calcPressBNW(); + real calcPressTNW(); + real calcPressTNE(); + real calcPressBNE(); + void calcInterpolatedNodeFC(real* f, real omega) override; + void calcInterpolatedVelocity(real x, real y, real z,real& vx1, real& vx2, real& vx3) override; + void calcInterpolatedShearStress(real x, real y, real z,real& tauxx, real& tauyy, real& tauzz,real& tauxy, real& tauxz, real& tauyz) override; }; ////////////////////////////////////////////////////////////////////////// @@ -74,7 +74,7 @@ inline void CompressibleOffsetMomentsInterpolationProcessor::interpolateCoarseTo this->interpolateCoarseToFine(icellC, icellF, 0.0, 0.0, 0.0); } ////////////////////////////////////////////////////////////////////////// -inline void CompressibleOffsetMomentsInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC) +inline void CompressibleOffsetMomentsInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC) { this->interpolateFineToCoarse(icellF, icellC, 0.0, 0.0, 0.0); } diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp index c71e1f782..16185b493 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.cpp @@ -11,7 +11,7 @@ CompressibleOffsetSquarePressureInterpolationProcessor::CompressibleOffsetSquare this->OxxPyyPzzF = one; } ////////////////////////////////////////////////////////////////////////// -CompressibleOffsetSquarePressureInterpolationProcessor::CompressibleOffsetSquarePressureInterpolationProcessor(LBMReal omegaC, LBMReal omegaF) +CompressibleOffsetSquarePressureInterpolationProcessor::CompressibleOffsetSquarePressureInterpolationProcessor(real omegaC, real omegaF) : omegaC(omegaC), omegaF(omegaF) { this->bulkOmegaToOmega = false; @@ -38,13 +38,13 @@ InterpolationProcessorPtr CompressibleOffsetSquarePressureInterpolationProcessor return iproc; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetSquarePressureInterpolationProcessor::setOmegas( LBMReal omegaC, LBMReal omegaF ) +void CompressibleOffsetSquarePressureInterpolationProcessor::setOmegas( real omegaC, real omegaF ) { this->omegaC = omegaC; this->omegaF = omegaF; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetSquarePressureInterpolationProcessor::setOffsets(LBMReal xoff, LBMReal yoff, LBMReal zoff) +void CompressibleOffsetSquarePressureInterpolationProcessor::setOffsets(real xoff, real yoff, real zoff) { this->xoff = xoff; this->yoff = yoff; @@ -54,7 +54,7 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::setOffsets(LBMReal this->zoff_sq = zoff * zoff; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetSquarePressureInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, LBMReal xoff, LBMReal yoff, LBMReal zoff) +void CompressibleOffsetSquarePressureInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); calcInterpolatedCoefficiets(icellC, omegaC, 0.5); @@ -68,20 +68,20 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::interpolateCoarseTo calcInterpolatedNodeCF(icellF.TNE, omegaF, 0.25, 0.25, 0.25, calcPressTNE(), 1, 1, 1); } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetSquarePressureInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC, LBMReal xoff, LBMReal yoff, LBMReal zoff) +void CompressibleOffsetSquarePressureInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); calcInterpolatedCoefficiets(icellF, omegaF, 2.0); calcInterpolatedNodeFC(icellC, omegaC); } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetSquarePressureInterpolationProcessor::calcMoments(const LBMReal* const f, LBMReal omega, LBMReal& press, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3, - LBMReal& kxy, LBMReal& kyz, LBMReal& kxz, LBMReal& kxxMyy, LBMReal& kxxMzz) +void CompressibleOffsetSquarePressureInterpolationProcessor::calcMoments(const real* const f, real omega, real& press, real& vx1, real& vx2, real& vx3, + real& kxy, real& kyz, real& kxz, real& kxxMyy, real& kxxMzz) { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal drho = 0.0; + real drho = 0.0; D3Q27System::calcCompMacroscopicValues(f,drho,vx1,vx2,vx3); press = drho; //interpolate rho! @@ -93,25 +93,25 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcMoments(const L 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]))/(one + drho)-(vx1*vx1-vx3*vx3)); } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, LBMReal omega, LBMReal eps_new) +void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, real omega, real eps_new) { - LBMReal vx1_SWT,vx2_SWT,vx3_SWT; - LBMReal vx1_NWT,vx2_NWT,vx3_NWT; - LBMReal vx1_NET,vx2_NET,vx3_NET; - LBMReal vx1_SET,vx2_SET,vx3_SET; - LBMReal vx1_SWB,vx2_SWB,vx3_SWB; - LBMReal vx1_NWB,vx2_NWB,vx3_NWB; - LBMReal vx1_NEB,vx2_NEB,vx3_NEB; - LBMReal vx1_SEB,vx2_SEB,vx3_SEB; - - LBMReal kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT; - LBMReal kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT; - LBMReal kxyFromfcNEQ_NET, kyzFromfcNEQ_NET, kxzFromfcNEQ_NET, kxxMyyFromfcNEQ_NET, kxxMzzFromfcNEQ_NET; - LBMReal kxyFromfcNEQ_SET, kyzFromfcNEQ_SET, kxzFromfcNEQ_SET, kxxMyyFromfcNEQ_SET, kxxMzzFromfcNEQ_SET; - LBMReal kxyFromfcNEQ_SWB, kyzFromfcNEQ_SWB, kxzFromfcNEQ_SWB, kxxMyyFromfcNEQ_SWB, kxxMzzFromfcNEQ_SWB; - LBMReal kxyFromfcNEQ_NWB, kyzFromfcNEQ_NWB, kxzFromfcNEQ_NWB, kxxMyyFromfcNEQ_NWB, kxxMzzFromfcNEQ_NWB; - LBMReal kxyFromfcNEQ_NEB, kyzFromfcNEQ_NEB, kxzFromfcNEQ_NEB, kxxMyyFromfcNEQ_NEB, kxxMzzFromfcNEQ_NEB; - LBMReal kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; + real vx1_SWT,vx2_SWT,vx3_SWT; + real vx1_NWT,vx2_NWT,vx3_NWT; + real vx1_NET,vx2_NET,vx3_NET; + real vx1_SET,vx2_SET,vx3_SET; + real vx1_SWB,vx2_SWB,vx3_SWB; + real vx1_NWB,vx2_NWB,vx3_NWB; + real vx1_NEB,vx2_NEB,vx3_NEB; + real vx1_SEB,vx2_SEB,vx3_SEB; + + real kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT; + real kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT; + real kxyFromfcNEQ_NET, kyzFromfcNEQ_NET, kxzFromfcNEQ_NET, kxxMyyFromfcNEQ_NET, kxxMzzFromfcNEQ_NET; + real kxyFromfcNEQ_SET, kyzFromfcNEQ_SET, kxzFromfcNEQ_SET, kxxMyyFromfcNEQ_SET, kxxMzzFromfcNEQ_SET; + real kxyFromfcNEQ_SWB, kyzFromfcNEQ_SWB, kxzFromfcNEQ_SWB, kxxMyyFromfcNEQ_SWB, kxxMzzFromfcNEQ_SWB; + real kxyFromfcNEQ_NWB, kyzFromfcNEQ_NWB, kxzFromfcNEQ_NWB, kxxMyyFromfcNEQ_NWB, kxxMzzFromfcNEQ_NWB; + real kxyFromfcNEQ_NEB, kyzFromfcNEQ_NEB, kxzFromfcNEQ_NEB, kxxMyyFromfcNEQ_NEB, kxxMzzFromfcNEQ_NEB; + real kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; calcMoments(icell.TSW,omega,press_SWT,vx1_SWT,vx2_SWT,vx3_SWT, kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT); calcMoments(icell.TNW,omega,press_NWT,vx1_NWT,vx2_NWT,vx3_NWT, kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT); @@ -366,7 +366,7 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedCoe cyz= cyz + xoff*cxyz; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - const LBMReal o = omega; + 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)); @@ -474,67 +474,67 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedCoe yz_TNW = 0.0625*eps_new *(( bxyz + cxyz)/(72.*o)); } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNodeCF(LBMReal* f, LBMReal omega, LBMReal x, LBMReal y, LBMReal z, LBMReal press, LBMReal xs, LBMReal ys, LBMReal zs) +void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNodeCF(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; - LBMReal eps_new = 0.5; - LBMReal o = omega; + real eps_new = 0.5; + real o = omega; //bulk viscosity - LBMReal oP = OxxPyyPzzF; + 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 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.; - LBMReal 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!=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); rho=rho+laplaceRho*(3.0/16.0); - LBMReal 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); - LBMReal 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); - LBMReal 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 mfcbb = zeroReal; - LBMReal mfabb = zeroReal; - LBMReal mfbcb = zeroReal; - LBMReal mfbab = zeroReal; - LBMReal mfbbc = zeroReal; - LBMReal mfbba = zeroReal; - LBMReal mfccb = zeroReal; - LBMReal mfaab = zeroReal; - LBMReal mfcab = zeroReal; - LBMReal mfacb = zeroReal; - LBMReal mfcbc = zeroReal; - LBMReal mfaba = zeroReal; - LBMReal mfcba = zeroReal; - LBMReal mfabc = zeroReal; - LBMReal mfbcc = zeroReal; - LBMReal mfbaa = zeroReal; - LBMReal mfbca = zeroReal; - LBMReal mfbac = zeroReal; - LBMReal mfbbb = zeroReal; - LBMReal mfccc = zeroReal; - LBMReal mfaac = zeroReal; - LBMReal mfcac = zeroReal; - LBMReal mfacc = zeroReal; - LBMReal mfcca = zeroReal; - LBMReal mfaaa = zeroReal; - LBMReal mfcaa = zeroReal; - LBMReal mfaca = zeroReal; + 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 mfcbb = zeroReal; + real mfabb = zeroReal; + real mfbcb = zeroReal; + real mfbab = zeroReal; + real mfbbc = zeroReal; + real mfbba = zeroReal; + real mfccb = zeroReal; + real mfaab = zeroReal; + real mfcab = zeroReal; + real mfacb = zeroReal; + real mfcbc = zeroReal; + real mfaba = zeroReal; + real mfcba = zeroReal; + real mfabc = zeroReal; + real mfbcc = zeroReal; + real mfbaa = zeroReal; + real mfbca = zeroReal; + real mfbac = zeroReal; + real mfbbb = zeroReal; + real mfccc = zeroReal; + real mfaac = zeroReal; + real mfcac = zeroReal; + real mfacc = zeroReal; + real mfcca = zeroReal; + real mfaaa = zeroReal; + real mfcaa = zeroReal; + real mfaca = zeroReal; mfaaa = rho; // if drho is interpolated directly - LBMReal vx1Sq = vx1*vx1; - LBMReal vx2Sq = vx2*vx2; - LBMReal vx3Sq = vx3*vx3; - LBMReal oMdrho = one; + real vx1Sq = vx1*vx1; + real vx2Sq = vx2*vx2; + real vx3Sq = vx3*vx3; + real oMdrho = one; //2.f // linear combinations - LBMReal mxxPyyPzz = mfaaa - c2o3*(ax + by + two*axx*x + bxy*x + axy*y + two*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + two*czz*z)*eps_new / oP* (one + press); - LBMReal mxxMyy = -c2o3*(ax - by + kxxMyyAverage + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (one + press); - LBMReal mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o * (one + press); + real mxxPyyPzz = mfaaa - c2o3*(ax + by + two*axx*x + bxy*x + axy*y + two*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + two*czz*z)*eps_new / oP* (one + press); + real mxxMyy = -c2o3*(ax - by + kxxMyyAverage + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (one + press); + real mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o * (one + press); mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (one + press); mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (one + press); @@ -547,12 +547,12 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod //three mfbbb = zeroReal; - LBMReal mxxyPyzz = zeroReal; - LBMReal mxxyMyzz = zeroReal; - LBMReal mxxzPyyz = zeroReal; - LBMReal mxxzMyyz = zeroReal; - LBMReal mxyyPxzz = zeroReal; - LBMReal mxyyMxzz = zeroReal; + real mxxyPyzz = zeroReal; + real mxxyMyzz = zeroReal; + real mxxzPyyz = zeroReal; + real mxxzMyyz = zeroReal; + real mxyyPxzz = zeroReal; + real mxyyMxzz = zeroReal; // linear combinations back mfcba = (mxxyMyzz + mxxyPyzz) * c1o2; @@ -578,9 +578,9 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren //////////////////////////////////////////////////////////////////////////////////// // Z - Dir - LBMReal m0 = mfaac * c1o2 + mfaab * (vx3 - c1o2) + (mfaaa + one * oMdrho) * (vx3Sq - vx3) * c1o2; - LBMReal m1 = -mfaac - two * mfaab * vx3 + mfaaa * (one - vx3Sq) - one * oMdrho * vx3Sq; - LBMReal m2 = mfaac * c1o2 + mfaab * (vx3 + c1o2) + (mfaaa + one * oMdrho) * (vx3Sq + vx3) * c1o2; + real m0 = mfaac * c1o2 + mfaab * (vx3 - c1o2) + (mfaaa + one * oMdrho) * (vx3Sq - vx3) * c1o2; + real m1 = -mfaac - two * mfaab * vx3 + mfaaa * (one - vx3Sq) - one * oMdrho * vx3Sq; + real m2 = mfaac * c1o2 + mfaab * (vx3 + c1o2) + (mfaaa + one * oMdrho) * (vx3Sq + vx3) * c1o2; mfaaa = m0; mfaab = m1; mfaac = m2; @@ -812,7 +812,7 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod } ////////////////////////////////////////////////////////////////////////// //Position SWB -0.25, -0.25, -0.25 -LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressBSW() +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) + @@ -825,7 +825,7 @@ LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressBSW() } ////////////////////////////////////////////////////////////////////////// //Position SWT -0.25, -0.25, 0.25 -LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressTSW() +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) + @@ -838,7 +838,7 @@ LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressTSW() } ////////////////////////////////////////////////////////////////////////// //Position SET 0.25, -0.25, 0.25 -LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressTSE() +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) + @@ -851,7 +851,7 @@ LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressTSE() } ////////////////////////////////////////////////////////////////////////// //Position SEB 0.25, -0.25, -0.25 -LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressBSE() +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) + @@ -864,7 +864,7 @@ LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressBSE() } ////////////////////////////////////////////////////////////////////////// //Position NWB -0.25, 0.25, -0.25 -LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressBNW() +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) + @@ -877,7 +877,7 @@ LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressBNW() } ////////////////////////////////////////////////////////////////////////// //Position NWT -0.25, 0.25, 0.25 -LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressTNW() +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) + @@ -890,7 +890,7 @@ LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressTNW() } ////////////////////////////////////////////////////////////////////////// //Position NET 0.25, 0.25, 0.25 -LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressTNE() +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) + @@ -903,7 +903,7 @@ LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressTNE() } ////////////////////////////////////////////////////////////////////////// //Position NEB 0.25, 0.25, -0.25 -LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressBNE() +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) + @@ -916,12 +916,12 @@ LBMReal CompressibleOffsetSquarePressureInterpolationProcessor::calcPressBNE() } ////////////////////////////////////////////////////////////////////////// //Position C 0.0, 0.0, 0.0 -void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* f, LBMReal omega) +void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNodeFC(real* f, real omega) { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal press = press_NET * (0.125 - 0.25 * xoff - 0.25 * yoff - 0.25 * zoff) + + 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) + @@ -929,66 +929,66 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod 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); - LBMReal vx1 = a0; - LBMReal vx2 = b0; - LBMReal vx3 = c0; + real vx1 = a0; + real vx2 = b0; + real vx3 = c0; - LBMReal rho = press ;//+ (ax+by+cz)/3.; + real rho = press ;//+ (ax+by+cz)/3.; - LBMReal 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!=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); rho=rho-laplaceRho*0.25; - LBMReal eps_new = 2.0; - LBMReal o = omega; + real eps_new = 2.0; + real o = omega; //bulk viscosity - LBMReal oP = OxxPyyPzzC; - - LBMReal mfcbb = zeroReal; - LBMReal mfabb = zeroReal; - LBMReal mfbcb = zeroReal; - LBMReal mfbab = zeroReal; - LBMReal mfbbc = zeroReal; - LBMReal mfbba = zeroReal; - LBMReal mfccb = zeroReal; - LBMReal mfaab = zeroReal; - LBMReal mfcab = zeroReal; - LBMReal mfacb = zeroReal; - LBMReal mfcbc = zeroReal; - LBMReal mfaba = zeroReal; - LBMReal mfcba = zeroReal; - LBMReal mfabc = zeroReal; - LBMReal mfbcc = zeroReal; - LBMReal mfbaa = zeroReal; - LBMReal mfbca = zeroReal; - LBMReal mfbac = zeroReal; - LBMReal mfbbb = zeroReal; - LBMReal mfccc = zeroReal; - LBMReal mfaac = zeroReal; - LBMReal mfcac = zeroReal; - LBMReal mfacc = zeroReal; - LBMReal mfcca = zeroReal; - LBMReal mfaaa = zeroReal; - LBMReal mfcaa = zeroReal; - LBMReal mfaca = zeroReal; + real oP = OxxPyyPzzC; + + real mfcbb = zeroReal; + real mfabb = zeroReal; + real mfbcb = zeroReal; + real mfbab = zeroReal; + real mfbbc = zeroReal; + real mfbba = zeroReal; + real mfccb = zeroReal; + real mfaab = zeroReal; + real mfcab = zeroReal; + real mfacb = zeroReal; + real mfcbc = zeroReal; + real mfaba = zeroReal; + real mfcba = zeroReal; + real mfabc = zeroReal; + real mfbcc = zeroReal; + real mfbaa = zeroReal; + real mfbca = zeroReal; + real mfbac = zeroReal; + real mfbbb = zeroReal; + real mfccc = zeroReal; + real mfaac = zeroReal; + real mfcac = zeroReal; + real mfacc = zeroReal; + real mfcca = zeroReal; + real mfaaa = zeroReal; + real mfcaa = zeroReal; + real mfaca = zeroReal; mfaaa = rho; // if drho is interpolated directly - LBMReal vx1Sq = vx1*vx1; - LBMReal vx2Sq = vx2*vx2; - LBMReal vx3Sq = vx3*vx3; - LBMReal oMdrho = one; + real vx1Sq = vx1*vx1; + real vx2Sq = vx2*vx2; + real vx3Sq = vx3*vx3; + real oMdrho = one; //oMdrho = one - mfaaa; //2.f // linear combinations ///////////////////////// - LBMReal mxxPyyPzz = mfaaa -c2o3*(ax+by+cz)*eps_new/oP*(one+press); + real mxxPyyPzz = mfaaa -c2o3*(ax+by+cz)*eps_new/oP*(one+press); - LBMReal mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (one + press); - LBMReal mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (one + press); + real mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (one + press); + real mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (one + press); mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (one + press); mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (one + press); @@ -1003,12 +1003,12 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod //three mfbbb = zeroReal; - LBMReal mxxyPyzz = zeroReal; - LBMReal mxxyMyzz = zeroReal; - LBMReal mxxzPyyz = zeroReal; - LBMReal mxxzMyyz = zeroReal; - LBMReal mxyyPxzz = zeroReal; - LBMReal mxyyMxzz = zeroReal; + real mxxyPyzz = zeroReal; + real mxxyMyzz = zeroReal; + real mxxzPyyz = zeroReal; + real mxxzMyyz = zeroReal; + real mxyyPxzz = zeroReal; + real mxyyMxzz = zeroReal; // linear combinations back mfcba = (mxxyMyzz + mxxyPyzz) * c1o2; @@ -1032,9 +1032,9 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren //////////////////////////////////////////////////////////////////////////////////// // Z - Dir - LBMReal m0 = mfaac * c1o2 + mfaab * (vx3 - c1o2) + (mfaaa + one * oMdrho) * (vx3Sq - vx3) * c1o2; - LBMReal m1 = -mfaac - two * mfaab * vx3 + mfaaa * (one - vx3Sq) - one * oMdrho * vx3Sq; - LBMReal m2 = mfaac * c1o2 + mfaab * (vx3 + c1o2) + (mfaaa + one * oMdrho) * (vx3Sq + vx3) * c1o2; + real m0 = mfaac * c1o2 + mfaab * (vx3 - c1o2) + (mfaaa + one * oMdrho) * (vx3Sq - vx3) * c1o2; + real m1 = -mfaac - two * mfaab * vx3 + mfaaa * (one - vx3Sq) - one * oMdrho * vx3Sq; + real m2 = mfaac * c1o2 + mfaab * (vx3 + c1o2) + (mfaaa + one * oMdrho) * (vx3Sq + vx3) * c1o2; mfaaa = m0; mfaab = m1; mfaac = m2; @@ -1265,14 +1265,14 @@ void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedNod f[DIR_MMM] = mfaaa; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedVelocity(LBMReal x, LBMReal y, LBMReal z, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3) +void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedVelocity(real x, real y, real z, real& vx1, real& vx2, real& vx3) { vx1 = a0 + ax*x + ay*y + az*z + axx*x*x + ayy*y*y + azz*z*z + axy*x*y + axz*x*z + ayz*y*z+axyz*x*y*z; vx2 = b0 + bx*x + by*y + bz*z + bxx*x*x + byy*y*y + bzz*z*z + bxy*x*y + bxz*x*z + byz*y*z+bxyz*x*y*z; vx3 = c0 + cx*x + cy*y + cz*z + cxx*x*x + cyy*y*y + czz*z*z + cxy*x*y + cxz*x*z + cyz*y*z+cxyz*x*y*z; } ////////////////////////////////////////////////////////////////////////// -void CompressibleOffsetSquarePressureInterpolationProcessor::calcInterpolatedShearStress(LBMReal x, LBMReal y, LBMReal z,LBMReal& tauxx, LBMReal& tauyy, LBMReal& tauzz,LBMReal& tauxy, LBMReal& tauxz, LBMReal& tauyz) +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; diff --git a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.h b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.h index e456668af..d9285289f 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.h +++ b/src/cpu/VirtualFluidsCore/LBM/CompressibleOffsetSquarePressureInterpolationProcessor.h @@ -15,56 +15,56 @@ class CompressibleOffsetSquarePressureInterpolationProcessor : public Interpolat { public: CompressibleOffsetSquarePressureInterpolationProcessor(); - CompressibleOffsetSquarePressureInterpolationProcessor(LBMReal omegaC, LBMReal omegaF); + CompressibleOffsetSquarePressureInterpolationProcessor(real omegaC, real omegaF); ~CompressibleOffsetSquarePressureInterpolationProcessor() override; InterpolationProcessorPtr clone() override; - void setOmegas(LBMReal omegaC, LBMReal omegaF) override; + void setOmegas(real omegaC, real omegaF) override; void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF) override; - void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, LBMReal xoff, LBMReal yoff, LBMReal zoff) override; - void interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC) override; - void interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC, LBMReal xoff, LBMReal yoff, LBMReal zoff) override; + void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff) override; + void interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC) override; + void interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff) override; void setBulkOmegaToOmega(bool value); protected: private: - LBMReal omegaC{0.0}, omegaF{0.0}; - LBMReal a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz, axyz, bxyz, cxyz; - LBMReal xoff, yoff, zoff; - LBMReal xoff_sq, yoff_sq, zoff_sq; - LBMReal press_SWT, press_NWT, press_NET, press_SET, press_SWB, press_NWB, press_NEB, press_SEB; + real omegaC{0.0}, omegaF{0.0}; + real a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz, axyz, bxyz, cxyz; + real xoff, yoff, zoff; + real xoff_sq, yoff_sq, zoff_sq; + real press_SWT, press_NWT, press_NET, press_SET, press_SWB, press_NWB, press_NEB, press_SEB; - LBMReal f_E, f_N, f_T, f_NE, f_SE, f_BE, f_TE, f_TN, f_BN, f_TNE, f_TNW, f_TSE, f_TSW, f_ZERO; - LBMReal x_E, x_N, x_T, x_NE, x_SE, x_BE, x_TE, x_TN, x_BN, x_TNE, x_TNW, x_TSE, x_TSW, x_ZERO; - LBMReal y_E, y_N, y_T, y_NE, y_SE, y_BE, y_TE, y_TN, y_BN, y_TNE, y_TNW, y_TSE, y_TSW, y_ZERO; - LBMReal z_E, z_N, z_T, z_NE, z_SE, z_BE, z_TE, z_TN, z_BN, z_TNE, z_TNW, z_TSE, z_TSW, z_ZERO; - LBMReal xy_E, xy_N, xy_T, xy_NE, xy_SE, xy_BE, xy_TE, xy_TN, xy_BN, xy_TNE, xy_TNW, xy_TSE, xy_TSW/*, xy_ZERO*/; - LBMReal xz_E, xz_N, xz_T, xz_NE, xz_SE, xz_BE, xz_TE, xz_TN, xz_BN, xz_TNE, xz_TNW, xz_TSE, xz_TSW/*, xz_ZERO*/; - LBMReal yz_E, yz_N, yz_T, yz_NE, yz_SE, yz_BE, yz_TE, yz_TN, yz_BN, yz_TNE, yz_TNW, yz_TSE, yz_TSW/*, yz_ZERO*/; + real f_E, f_N, f_T, f_NE, f_SE, f_BE, f_TE, f_TN, f_BN, f_TNE, f_TNW, f_TSE, f_TSW, f_ZERO; + real x_E, x_N, x_T, x_NE, x_SE, x_BE, x_TE, x_TN, x_BN, x_TNE, x_TNW, x_TSE, x_TSW, x_ZERO; + real y_E, y_N, y_T, y_NE, y_SE, y_BE, y_TE, y_TN, y_BN, y_TNE, y_TNW, y_TSE, y_TSW, y_ZERO; + real z_E, z_N, z_T, z_NE, z_SE, z_BE, z_TE, z_TN, z_BN, z_TNE, z_TNW, z_TSE, z_TSW, z_ZERO; + real xy_E, xy_N, xy_T, xy_NE, xy_SE, xy_BE, xy_TE, xy_TN, xy_BN, xy_TNE, xy_TNW, xy_TSE, xy_TSW/*, xy_ZERO*/; + real xz_E, xz_N, xz_T, xz_NE, xz_SE, xz_BE, xz_TE, xz_TN, xz_BN, xz_TNE, xz_TNW, xz_TSE, xz_TSW/*, xz_ZERO*/; + real yz_E, yz_N, yz_T, yz_NE, yz_SE, yz_BE, yz_TE, yz_TN, yz_BN, yz_TNE, yz_TNW, yz_TSE, yz_TSW/*, yz_ZERO*/; - LBMReal kxyAverage, kyzAverage, kxzAverage, kxxMyyAverage, kxxMzzAverage; + real kxyAverage, kyzAverage, kxzAverage, kxxMyyAverage, kxxMzzAverage; -// LBMReal a,b,c; +// real a,b,c; // bulk viscosity bool bulkOmegaToOmega; - LBMReal OxxPyyPzzC; - LBMReal OxxPyyPzzF; + real OxxPyyPzzC; + real OxxPyyPzzF; - void setOffsets(LBMReal xoff, LBMReal yoff, LBMReal zoff) override; - void calcMoments(const LBMReal* const f, LBMReal omega, LBMReal& rho, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3, - LBMReal& kxy, LBMReal& kyz, LBMReal& kxz, LBMReal& kxxMyy, LBMReal& kxxMzz); - void calcInterpolatedCoefficiets(const D3Q27ICell& icell, LBMReal omega, LBMReal eps_new) override; - void calcInterpolatedNodeCF(LBMReal* f, LBMReal omega, LBMReal x, LBMReal y, LBMReal z, LBMReal press, LBMReal xs, LBMReal ys, LBMReal zs); - LBMReal calcPressBSW(); - LBMReal calcPressTSW(); - LBMReal calcPressTSE(); - LBMReal calcPressBSE(); - LBMReal calcPressBNW(); - LBMReal calcPressTNW(); - LBMReal calcPressTNE(); - LBMReal calcPressBNE(); - void calcInterpolatedNodeFC(LBMReal* f, LBMReal omega) override; - void calcInterpolatedVelocity(LBMReal x, LBMReal y, LBMReal z,LBMReal& vx1, LBMReal& vx2, LBMReal& vx3) override; - void calcInterpolatedShearStress(LBMReal x, LBMReal y, LBMReal z,LBMReal& tauxx, LBMReal& tauyy, LBMReal& tauzz,LBMReal& tauxy, LBMReal& tauxz, LBMReal& tauyz) override; + void setOffsets(real xoff, real yoff, real zoff) override; + void calcMoments(const real* const f, real omega, real& rho, real& vx1, real& vx2, real& vx3, + real& kxy, real& kyz, real& kxz, real& kxxMyy, real& kxxMzz); + void calcInterpolatedCoefficiets(const D3Q27ICell& icell, real omega, real eps_new) override; + void calcInterpolatedNodeCF(real* f, real omega, real x, real y, real z, real press, real xs, real ys, real zs); + real calcPressBSW(); + real calcPressTSW(); + real calcPressTSE(); + real calcPressBSE(); + real calcPressBNW(); + real calcPressTNW(); + real calcPressTNE(); + real calcPressBNE(); + void calcInterpolatedNodeFC(real* f, real omega) override; + void calcInterpolatedVelocity(real x, real y, real z,real& vx1, real& vx2, real& vx3) override; + void calcInterpolatedShearStress(real x, real y, real z,real& tauxx, real& tauyy, real& tauzz,real& tauxy, real& tauxz, real& tauyz) override; }; ////////////////////////////////////////////////////////////////////////// @@ -73,7 +73,7 @@ inline void CompressibleOffsetSquarePressureInterpolationProcessor::interpolateC this->interpolateCoarseToFine(icellC, icellF, 0.0, 0.0, 0.0); } ////////////////////////////////////////////////////////////////////////// -inline void CompressibleOffsetSquarePressureInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC) +inline void CompressibleOffsetSquarePressureInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC) { this->interpolateFineToCoarse(icellF, icellC, 0.0, 0.0, 0.0); } diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp index 2a895950a..a9504d8d8 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.cpp @@ -127,7 +127,7 @@ void CumulantK17LBMKernel::calculate(int step) int maxX2 = bcArrayMaxX2 - ghostLayerWidth; int maxX3 = bcArrayMaxX3 - ghostLayerWidth; - LBMReal omega = collFactor; + real omega = collFactor; for (int x3 = minX3; x3 < maxX3; x3++) { @@ -164,54 +164,54 @@ void CumulantK17LBMKernel::calculate(int step) // a b c //-1 0 1 - LBMReal mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); - - LBMReal mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->restDistributions)(x1, x2, x3); + real mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); + + real mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->restDistributions)(x1, x2, x3); //////////////////////////////////////////////////////////////////////////////////// //! - Calculate density and velocity using pyramid summation for low round-off errors as in Eq. (J1)-(J3) //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> //! - LBMReal drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + + real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb)) + (mfbba + mfbbc)) + mfbbb; - LBMReal rho = c1 + drho; - LBMReal OOrho = c1 / rho; + real rho = c1 + drho; + real OOrho = c1 / rho; //////////////////////////////////////////////////////////////////////////////////// - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)) / rho; - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)) / rho; - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)) / rho; //////////////////////////////////////////////////////////////////////////////////// @@ -237,17 +237,17 @@ void CumulantK17LBMKernel::calculate(int step) } //////////////////////////////////////////////////////////////////////////////////// // calculate the square of velocities for this lattice node - LBMReal vx2 = vvx * vvx; - LBMReal vy2 = vvy * vvy; - LBMReal vz2 = vvz * vvz; + real vx2 = vvx * vvx; + real vy2 = vvy * vvy; + real vz2 = vvz * vvz; //////////////////////////////////////////////////////////////////////////////////// //! - Set relaxation limiters for third order cumulants to default value \f$ \lambda=0.001 \f$ according to section 6 in //! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 ]</b></a> //! - LBMReal wadjust; - LBMReal qudricLimitP = c1o100; - LBMReal qudricLimitM = c1o100; - LBMReal qudricLimitD = c1o100; + real wadjust; + real qudricLimitP = c1o100; + real qudricLimitM = c1o100; + real qudricLimitD = c1o100; //////////////////////////////////////////////////////////////////////////////////// //! - Chimera transform from well conditioned distributions to central moments as defined in Appendix J in //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> @@ -304,29 +304,29 @@ void CumulantK17LBMKernel::calculate(int step) //! //////////////////////////////////////////////////////////// //2. - LBMReal OxxPyyPzz = c1; + real OxxPyyPzz = c1; //////////////////////////////////////////////////////////// //3. - LBMReal OxyyPxzz = c8 * (-c2 + omega) * ( c1 + c2*omega) / (-c8 - c14*omega + c7*omega*omega); - LBMReal OxyyMxzz = c8 * (-c2 + omega) * (-c7 + c4*omega) / (c56 - c50*omega + c9*omega*omega); - LBMReal Oxyz = c24 * (-c2 + omega) * (-c2 - c7*omega + c3*omega*omega) / (c48 + c152*omega - c130*omega*omega + c29*omega*omega*omega); + real OxyyPxzz = c8 * (-c2 + omega) * ( c1 + c2*omega) / (-c8 - c14*omega + c7*omega*omega); + real OxyyMxzz = c8 * (-c2 + omega) * (-c7 + c4*omega) / (c56 - c50*omega + c9*omega*omega); + real Oxyz = c24 * (-c2 + omega) * (-c2 - c7*omega + c3*omega*omega) / (c48 + c152*omega - c130*omega*omega + c29*omega*omega*omega); //////////////////////////////////////////////////////////// //4. - LBMReal O4 = c1; + real O4 = c1; //////////////////////////////////////////////////////////// //5. - LBMReal O5 = c1; + real O5 = c1; //////////////////////////////////////////////////////////// //6. - LBMReal O6 = c1; + real O6 = c1; //////////////////////////////////////////////////////////////////////////////////// //! - A and B: parameters for fourth order convergence of the diffusion term according to Eq. (115) and (116) //! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 ]</b></a> //! with simplifications assuming \f$\omega_2 = 1.0\f$ (modify for different bulk viscosity). //! - LBMReal A = (c4 + c2*omega - c3*omega*omega) / (c2 - c7*omega + c5*omega*omega); - LBMReal B = (c4 + c28*omega - c14*omega*omega) / (c6 - c21*omega + c15*omega*omega); + real A = (c4 + c2*omega - c3*omega*omega) / (c2 - c7*omega + c5*omega*omega); + real B = (c4 + c28*omega - c14*omega*omega) / (c6 - c21*omega + c15*omega*omega); //////////////////////////////////////////////////////////////////////////////////// //! - Compute cumulants from central moments according to Eq. (20)-(23) in @@ -334,21 +334,21 @@ void CumulantK17LBMKernel::calculate(int step) //! //////////////////////////////////////////////////////////// //4. - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + c2 * mfbba * mfbab) * OOrho; - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + c2 * mfbba * mfabb) * OOrho; - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + c2 * mfbab * mfabb) * OOrho; + real CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + c2 * mfbba * mfbab) * OOrho; + real CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + c2 * mfbba * mfabb) * OOrho; + real CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + c2 * mfbab * mfabb) * OOrho; - LBMReal CUMcca = mfcca - (((mfcaa * mfaca + c2 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca)) * OOrho - c1o9 * (drho * OOrho)); - LBMReal CUMcac = mfcac - (((mfcaa * mfaac + c2 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac)) * OOrho - c1o9 * (drho * OOrho)); - LBMReal CUMacc = mfacc - (((mfaac * mfaca + c2 * mfabb * mfabb) + c1o3 * (mfaac + mfaca)) * OOrho - c1o9 * (drho * OOrho)); + real CUMcca = mfcca - (((mfcaa * mfaca + c2 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca)) * OOrho - c1o9 * (drho * OOrho)); + real CUMcac = mfcac - (((mfcaa * mfaac + c2 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac)) * OOrho - c1o9 * (drho * OOrho)); + real CUMacc = mfacc - (((mfaac * mfaca + c2 * mfabb * mfabb) + c1o3 * (mfaac + mfaca)) * OOrho - c1o9 * (drho * OOrho)); //////////////////////////////////////////////////////////// //5. - LBMReal CUMbcc = mfbcc - ((mfaac * mfbca + mfaca * mfbac + c4 * mfabb * mfbbb + c2 * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac)) * OOrho; - LBMReal CUMcbc = mfcbc - ((mfaac * mfcba + mfcaa * mfabc + c4 * mfbab * mfbbb + c2 * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc)) * OOrho; - LBMReal CUMccb = mfccb - ((mfcaa * mfacb + mfaca * mfcab + c4 * mfbba * mfbbb + c2 * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab)) * OOrho; + real CUMbcc = mfbcc - ((mfaac * mfbca + mfaca * mfbac + c4 * mfabb * mfbbb + c2 * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac)) * OOrho; + real CUMcbc = mfcbc - ((mfaac * mfcba + mfcaa * mfabc + c4 * mfbab * mfbbb + c2 * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc)) * OOrho; + real CUMccb = mfccb - ((mfcaa * mfacb + mfaca * mfcab + c4 * mfbba * mfbbb + c2 * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab)) * OOrho; //////////////////////////////////////////////////////////// //6. - LBMReal CUMccc = mfccc + ((-c4 * mfbbb * mfbbb + real CUMccc = mfccc + ((-c4 * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - c4 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - c2 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) * OOrho @@ -366,19 +366,19 @@ void CumulantK17LBMKernel::calculate(int step) //! //////////////////////////////////////////////////////////// //2. - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; //////////////////////////////////////////////////////////// //3. - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //////////////////////////////////////////////////////////////////////////////////// //incl. correction @@ -389,12 +389,12 @@ void CumulantK17LBMKernel::calculate(int step) //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> //! Note that the division by rho is omitted here as we need rho times the gradients later. //! - LBMReal Dxy = -c3 * omega * mfbba; - LBMReal Dxz = -c3 * omega * mfbab; - LBMReal Dyz = -c3 * omega * mfabb; - LBMReal dxux = c1o2 * (-omega) * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); - LBMReal dyuy = dxux + omega * c3o2 * mxxMyy; - LBMReal dzuz = dxux + omega * c3o2 * mxxMzz; + real Dxy = -c3 * omega * mfbba; + real Dxz = -c3 * omega * mfbab; + real Dyz = -c3 * omega * mfabb; + real dxux = c1o2 * (-omega) * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); + real dyuy = dxux + omega * c3o2 * mxxMyy; + real dzuz = dxux + omega * c3o2 * mxxMzz; //////////////////////////////////////////////////////////// //! - Relaxation of second order cumulants with correction terms according to Eq. (33)-(35) in //! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 ]</b></a> @@ -575,10 +575,10 @@ void CumulantK17LBMKernel::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal drho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real drho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal dif = drho - drho_post; + real dif = drho - drho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) #else diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.h index aab4d6696..385b8febb 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernel.h @@ -58,24 +58,24 @@ public: double getCalculationTime() override { return .0; } protected: - inline void forwardInverseChimeraWithK(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K); - inline void backwardInverseChimeraWithK(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K); - inline void forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); - inline void backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); + inline void forwardInverseChimeraWithK(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K); + inline void backwardInverseChimeraWithK(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K); + inline void forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); + inline void backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); virtual void initDataSet(); - LBMReal f[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr restDistributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr restDistributions; mu::value_type muX1, muX2, muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; }; //////////////////////////////////////////////////////////////////////////////// @@ -84,12 +84,12 @@ protected: //! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 ]</b></a> //! Modified for lower round-off errors. //////////////////////////////////////////////////////////////////////////////// -inline void CumulantK17LBMKernel::forwardInverseChimeraWithK(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K) +inline void CumulantK17LBMKernel::forwardInverseChimeraWithK(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K) { using namespace UbMath; - LBMReal m2 = mfa + mfc; - LBMReal m1 = mfc - mfa; - LBMReal m0 = m2 + mfb; + real m2 = mfa + mfc; + real m1 = mfc - mfa; + real m0 = m2 + mfb; mfa = m0; m0 *= Kinverse; m0 += c1; @@ -102,11 +102,11 @@ inline void CumulantK17LBMKernel::forwardInverseChimeraWithK(LBMReal& mfa, LBMRe //! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 ]</b></a> //! ] Modified for lower round-off errors. //////////////////////////////////////////////////////////////////////////////// -inline void CumulantK17LBMKernel::backwardInverseChimeraWithK(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K) +inline void CumulantK17LBMKernel::backwardInverseChimeraWithK(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K) { using namespace UbMath; - LBMReal m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + c1) * (v2 - vv) * c1o2) * K; - LBMReal m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + c1) * (-v2)) * K; + real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + c1) * (v2 - vv) * c1o2) * K; + real m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + c1) * (-v2)) * K; mfc = (((mfc + mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + c1) * (v2 + vv) * c1o2) * K; mfa = m0; mfb = m1; @@ -118,11 +118,11 @@ inline void CumulantK17LBMKernel::backwardInverseChimeraWithK(LBMReal& mfa, LBMR //! for \f$ K_{abc}=0 \f$. This is to avoid unnessary floating point operations. //! Modified for lower round-off errors. //////////////////////////////////////////////////////////////////////////////// -inline void CumulantK17LBMKernel::forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) +inline void CumulantK17LBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal m1 = (mfa + mfc) + mfb; - LBMReal m2 = mfc - mfa; + real m1 = (mfa + mfc) + mfb; + real m2 = mfc - mfa; mfc = (mfc + mfa) + (v2 * m1 - c2 * vv * m2); mfb = m2 - vv * m1; mfa = m1; @@ -134,11 +134,11 @@ inline void CumulantK17LBMKernel::forwardChimera(LBMReal& mfa, LBMReal& mfb, LBM //! for \f$ K_{abc}=0 \f$. This is to avoid unnessary floating point operations. //! Modified for lower round-off errors. //////////////////////////////////////////////////////////////////////////////// -inline void CumulantK17LBMKernel::backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) +inline void CumulantK17LBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); - LBMReal mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; + real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); + real mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; mfc = (mfc + mfa * (v2 + vv)) * c1o2 + mfb * (vv + c1o2); mfb = mb; mfa = ma; diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.cpp b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.cpp index e001cbf97..1e19d78bb 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.cpp @@ -132,7 +132,7 @@ void CumulantK17LBMKernelUnified::calculate(int step) int maxX2 = bcArrayMaxX2 - ghostLayerWidth; int maxX3 = bcArrayMaxX3 - ghostLayerWidth; - LBMReal omega = collFactor; + real omega = collFactor; for (int x3 = minX3; x3 < maxX3; x3++) { @@ -169,38 +169,38 @@ void CumulantK17LBMKernelUnified::calculate(int step) // a b c //-1 0 1 - LBMReal mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); - - LBMReal mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->restDistributions)(x1, x2, x3); + real mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); + + real mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->restDistributions)(x1, x2, x3); - LBMReal forces[3] = {0., 0., 0.}; + real forces[3] = {0., 0., 0.}; if (withForcing) { muX1 = static_cast<double>(x1 - 1 + ix1 * maxX1); @@ -281,10 +281,10 @@ void CumulantK17LBMKernelUnified::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal drho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real drho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal dif = distribution.getDensity_() - drho_post; + real dif = distribution.getDensity_() - drho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) #else diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.h b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.h index 175fdd4cb..9f1ec7d0e 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.h +++ b/src/cpu/VirtualFluidsCore/LBM/CumulantK17LBMKernelUnified.h @@ -59,18 +59,18 @@ public: protected: virtual void initDataSet(); - LBMReal f[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr restDistributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr restDistributions; mu::value_type muX1, muX2, muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; }; diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.cpp index 1ecfc5a4c..f43f29a38 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.cpp @@ -1097,50 +1097,50 @@ void CumulantLBMKernel::nodeCollision(int step, int x1, int x2, int x3) // a b c //-1 0 1 - LBMReal mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); - - LBMReal mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributions)(x1, x2, x3); - - //////////////////////////////////////////////////////////////////////////////////// - LBMReal drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + + real mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); + + real mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributions)(x1, x2, x3); + + //////////////////////////////////////////////////////////////////////////////////// + real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb)) + (mfbba + mfbbc)) + mfbbb; - LBMReal rho = UbMath::one + drho; + real rho = UbMath::one + drho; //////////////////////////////////////////////////////////////////////////////////// - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)) / rho; - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)) / rho; - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)) / rho; //////////////////////////////////////////////////////////////////////////////////// @@ -1163,12 +1163,12 @@ void CumulantLBMKernel::nodeCollision(int step, int x1, int x2, int x3) } /////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho = one; // comp special + real oMdrho = one; // comp special //////////////////////////////////////////////////////////////////////////////////// - LBMReal m0, m1, m2; - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real m0, m1, m2; + real vx2; + real vy2; + real vz2; vx2 = vvx * vvx; vy2 = vvy * vvy; vz2 = vvz * vvz; @@ -1420,7 +1420,7 @@ void CumulantLBMKernel::nodeCollision(int step, int x1, int x2, int x3) //////////////////////////////////////////////////////////// //3. ////////////////////////////// - LBMReal OxyyPxzz = one;//three * (two - omega) / (three - omega);// + real OxyyPxzz = one;//three * (two - omega) / (three - omega);// //LBMReal OxyyMxzz = one;//six * (two - omega) / (six - omega);// //LBMReal Oxyz = one;//twelve * (two - omega) / (twelve + omega);// ////////////////////////////// @@ -1444,38 +1444,38 @@ void CumulantLBMKernel::nodeCollision(int step, int x1, int x2, int x3) //////////////////////////////////////////////////////////// //4. ////////////////////////////// - LBMReal O4 = one; + real O4 = one; ////////////////////////////// - //LBMReal O4 = omega;//TRT + //real O4 = omega;//TRT //////////////////////////////////////////////////////////// //5. ////////////////////////////// - LBMReal O5 = one; + real O5 = one; //////////////////////////////////////////////////////////// //6. ////////////////////////////// - LBMReal O6 = one; + real O6 = one; //////////////////////////////////////////////////////////// //central moments to cumulants //4. - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + two * mfbba * mfbab) / rho; //ab 15.05.2015 verwendet - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + two * mfbba * mfabb) / rho; //ab 15.05.2015 verwendet - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + two * mfbab * mfabb) / rho; //ab 15.05.2015 verwendet + real CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + two * mfbba * mfbab) / rho; //ab 15.05.2015 verwendet + real CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + two * mfbba * mfabb) / rho; //ab 15.05.2015 verwendet + real CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + two * mfbab * mfabb) / rho; //ab 15.05.2015 verwendet - LBMReal CUMcca = mfcca - (((mfcaa * mfaca + two * mfbba * mfbba) + c1o3 * (mfcaa + mfaca)) / rho - c1o9 * (drho / rho)); - LBMReal CUMcac = mfcac - (((mfcaa * mfaac + two * mfbab * mfbab) + c1o3 * (mfcaa + mfaac)) / rho - c1o9 * (drho / rho)); - LBMReal CUMacc = mfacc - (((mfaac * mfaca + two * mfabb * mfabb) + c1o3 * (mfaac + mfaca)) / rho - c1o9 * (drho / rho)); + real CUMcca = mfcca - (((mfcaa * mfaca + two * mfbba * mfbba) + c1o3 * (mfcaa + mfaca)) / rho - c1o9 * (drho / rho)); + real CUMcac = mfcac - (((mfcaa * mfaac + two * mfbab * mfbab) + c1o3 * (mfcaa + mfaac)) / rho - c1o9 * (drho / rho)); + real CUMacc = mfacc - (((mfaac * mfaca + two * mfabb * mfabb) + c1o3 * (mfaac + mfaca)) / rho - c1o9 * (drho / rho)); //5. - LBMReal CUMbcc = mfbcc - ((mfaac * mfbca + mfaca * mfbac + four * mfabb * mfbbb + two * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac)) / rho; - LBMReal CUMcbc = mfcbc - ((mfaac * mfcba + mfcaa * mfabc + four * mfbab * mfbbb + two * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc)) / rho; - LBMReal CUMccb = mfccb - ((mfcaa * mfacb + mfaca * mfcab + four * mfbba * mfbbb + two * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab)) / rho; + real CUMbcc = mfbcc - ((mfaac * mfbca + mfaca * mfbac + four * mfabb * mfbbb + two * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac)) / rho; + real CUMcbc = mfcbc - ((mfaac * mfcba + mfcaa * mfabc + four * mfbab * mfbbb + two * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc)) / rho; + real CUMccb = mfccb - ((mfcaa * mfacb + mfaca * mfcab + four * mfbba * mfbbb + two * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab)) / rho; //6. - LBMReal CUMccc = mfccc + ((-four * mfbbb * mfbbb + real CUMccc = mfccc + ((-four * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - four * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - two * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) / rho @@ -1494,9 +1494,9 @@ void CumulantLBMKernel::nodeCollision(int step, int x1, int x2, int x3) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; ////////////////////////////////////////////////////////////////////////// // LBMReal magicBulk=(CUMacc+CUMcac+CUMcca)*(one/OxxPyyPzz-c1o2)*c3o2*8.; @@ -1536,9 +1536,9 @@ void CumulantLBMKernel::nodeCollision(int step, int x1, int x2, int x3) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //incl. correction (hat noch nicht so gut funktioniert...Optimierungsbedarf??) { - LBMReal dxux = c1o2 * (-omega) * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); - LBMReal dyuy = dxux + omega * c3o2 * mxxMyy; - LBMReal dzuz = dxux + omega * c3o2 * mxxMzz; + real dxux = c1o2 * (-omega) * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); + real dyuy = dxux + omega * c3o2 * mxxMyy; + real dzuz = dxux + omega * c3o2 * mxxMzz; //relax mxxPyyPzz += OxxPyyPzz * (mfaaa - mxxPyyPzz) - three * (one - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz);//-magicBulk*OxxPyyPzz; @@ -1579,14 +1579,14 @@ void CumulantLBMKernel::nodeCollision(int step, int x1, int x2, int x3) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //relax ////////////////////////////////////////////////////////////////////////// @@ -1912,11 +1912,11 @@ void CumulantLBMKernel::nodeCollision(int step, int x1, int x2, int x3) //proof correctness ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal drho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real drho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; //LBMReal dif = fabs(rho - rho_post); - LBMReal dif = drho - drho_post; + real dif = drho - drho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) #else diff --git a/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.h index 995ce63d8..b43a70e28 100644 --- a/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/CumulantLBMKernel.h @@ -28,28 +28,28 @@ protected: void initData() override; void nodeCollision(int step, int x1, int x2, int x3) override; void initDataSet(); - LBMReal f[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; UbTimer timer; - LBMReal OxyyMxzz; + real OxyyMxzz; Parameter parameter; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; mu::value_type muX1, muX2, muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; // bulk viscosity bool bulkOmegaToOmega; - LBMReal OxxPyyPzz; + real OxxPyyPzz; - LBMReal omega; + real omega; }; #endif // CumulantLBMKernel_h__ \ No newline at end of file diff --git a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp index e5135558b..13eb98851 100644 --- a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.cpp @@ -38,22 +38,22 @@ const int INVDIR[] = { vf::lbm::dir::DIR_000, vf::lbm::dir::INV_P00, vf::lbm:: -LBMReal getDensity(const LBMReal *const &f /*[27]*/) +real getDensity(const real *const &f /*[27]*/) { return vf::lbm::getDensity(f); } -LBMReal getIncompVelocityX1(const LBMReal *const &f /*[27]*/) +real getIncompVelocityX1(const real *const &f /*[27]*/) { return vf::lbm::getIncompressibleVelocityX1(f); } -LBMReal getIncompVelocityX2(const LBMReal *const &f /*[27]*/) +real getIncompVelocityX2(const real *const &f /*[27]*/) { return vf::lbm::getIncompressibleVelocityX2(f); } -LBMReal getIncompVelocityX3(const LBMReal *const &f /*[27]*/) +real getIncompVelocityX3(const real *const &f /*[27]*/) { return vf::lbm::getIncompressibleVelocityX3(f); } diff --git a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h index fad9bb00a..9678df19d 100644 --- a/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h +++ b/src/cpu/VirtualFluidsCore/LBM/D3Q27System.h @@ -62,9 +62,9 @@ static const int ENDDIR = 26;//26 // all geometric directions extern const int DX1[ENDDIR + 1]; extern const int DX2[ENDDIR + 1]; extern const int DX3[ENDDIR + 1]; -extern const double WEIGTH[ENDDIR + 1]; +extern const real WEIGTH[ENDDIR + 1]; -extern const double cNorm[3][ENDDIR]; +extern const real cNorm[3][ENDDIR]; static const int MINLEVEL = 0; static const int MAXLEVEL = 25; @@ -395,19 +395,19 @@ static inline void setNeighborCoordinatesForDirection(int &x1, int &x2, int &x3, ////////////////////////////////////////////////////////////////////////// // MACROSCOPIC VALUES /*=====================================================================*/ -LBMReal getDensity(const LBMReal *const &f /*[27]*/); +real getDensity(const real *const &f /*[27]*/); /*=====================================================================*/ -static LBMReal getPressure(const LBMReal *const &f /*[27]*/) { return REAL_CAST(UbMath::c1o3) * getDensity(f); } +static real getPressure(const real *const &f /*[27]*/) { return REAL_CAST(UbMath::c1o3) * getDensity(f); } /*=====================================================================*/ -LBMReal getIncompVelocityX1(const LBMReal *const &f /*[27]*/); +real getIncompVelocityX1(const real *const &f /*[27]*/); /*=====================================================================*/ -LBMReal getIncompVelocityX2(const LBMReal *const &f /*[27]*/); +real getIncompVelocityX2(const real *const &f /*[27]*/); /*=====================================================================*/ -LBMReal getIncompVelocityX3(const LBMReal *const &f /*[27]*/); +real getIncompVelocityX3(const real *const &f /*[27]*/); /*=====================================================================*/ -static void calcDensity(const LBMReal *const &f /*[27]*/, LBMReal &rho) +static void calcDensity(const real *const &f /*[27]*/, real &rho) { using namespace vf::lbm::dir; @@ -417,7 +417,7 @@ static void calcDensity(const LBMReal *const &f /*[27]*/, LBMReal &rho) ((f[DIR_P00] + f[DIR_M00]) + (f[DIR_0P0] + f[DIR_0M0]) + (f[DIR_00P] + f[DIR_00M])) + f[DIR_000]; } /*=====================================================================*/ -static void calcIncompVelocityX1(const LBMReal *const &f /*[27]*/, LBMReal &vx1) +static void calcIncompVelocityX1(const real *const &f /*[27]*/, real &vx1) { using namespace vf::lbm::dir; @@ -425,7 +425,7 @@ static void calcIncompVelocityX1(const LBMReal *const &f /*[27]*/, LBMReal &vx1) (((f[DIR_P0M] - f[DIR_M0P]) + (f[DIR_P0P] - f[DIR_M0M])) + ((f[DIR_PM0] - f[DIR_MP0]) + (f[DIR_PP0] - f[DIR_MM0]))) + (f[DIR_P00] - f[DIR_M00])); } /*=====================================================================*/ -static void calcIncompVelocityX2(const LBMReal *const &f /*[27]*/, LBMReal &vx2) +static void calcIncompVelocityX2(const real *const &f /*[27]*/, real &vx2) { using namespace vf::lbm::dir; @@ -433,7 +433,7 @@ static void calcIncompVelocityX2(const LBMReal *const &f /*[27]*/, LBMReal &vx2) (((f[DIR_0PM] - f[DIR_0MP]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_MP0] - f[DIR_PM0]) + (f[DIR_PP0] - f[DIR_MM0]))) + (f[DIR_0P0] - f[DIR_0M0])); } /*=====================================================================*/ -static void calcIncompVelocityX3(const LBMReal *const &f /*[27]*/, LBMReal &vx3) +static void calcIncompVelocityX3(const real *const &f /*[27]*/, real &vx3) { using namespace vf::lbm::dir; @@ -441,7 +441,7 @@ static void calcIncompVelocityX3(const LBMReal *const &f /*[27]*/, LBMReal &vx3) (((f[DIR_0MP] - f[DIR_0PM]) + (f[DIR_0PP] - f[DIR_0MM])) + ((f[DIR_M0P] - f[DIR_P0M]) + (f[DIR_P0P] - f[DIR_M0M]))) + (f[DIR_00P] - f[DIR_00M])); } /*=====================================================================*/ -static LBMReal getCompVelocityX1(const LBMReal *const &f /*[27]*/) +static real getCompVelocityX1(const real *const &f /*[27]*/) { using namespace vf::lbm::dir; @@ -450,7 +450,7 @@ static LBMReal getCompVelocityX1(const LBMReal *const &f /*[27]*/) getDensity(f); } /*=====================================================================*/ -static LBMReal getCompVelocityX2(const LBMReal *const &f /*[27]*/) +static real getCompVelocityX2(const real *const &f /*[27]*/) { using namespace vf::lbm::dir; @@ -459,7 +459,7 @@ static LBMReal getCompVelocityX2(const LBMReal *const &f /*[27]*/) getDensity(f); } /*=====================================================================*/ -static LBMReal getCompVelocityX3(const LBMReal *const &f /*[27]*/) +static real getCompVelocityX3(const real *const &f /*[27]*/) { using namespace vf::lbm::dir; @@ -468,7 +468,7 @@ static LBMReal getCompVelocityX3(const LBMReal *const &f /*[27]*/) getDensity(f); } /*=====================================================================*/ -static void calcCompVelocityX1(const LBMReal *const &f /*[27]*/, LBMReal &vx1) +static void calcCompVelocityX1(const real *const &f /*[27]*/, real &vx1) { using namespace vf::lbm::dir; @@ -477,7 +477,7 @@ static void calcCompVelocityX1(const LBMReal *const &f /*[27]*/, LBMReal &vx1) getDensity(f); } /*=====================================================================*/ -static void calcCompVelocityX2(const LBMReal *const &f /*[27]*/, LBMReal &vx2) +static void calcCompVelocityX2(const real *const &f /*[27]*/, real &vx2) { using namespace vf::lbm::dir; @@ -486,7 +486,7 @@ static void calcCompVelocityX2(const LBMReal *const &f /*[27]*/, LBMReal &vx2) getDensity(f); } /*=====================================================================*/ -static void calcCompVelocityX3(const LBMReal *const &f /*[27]*/, LBMReal &vx3) +static void calcCompVelocityX3(const real *const &f /*[27]*/, real &vx3) { using namespace vf::lbm::dir; @@ -495,8 +495,8 @@ static void calcCompVelocityX3(const LBMReal *const &f /*[27]*/, LBMReal &vx3) getDensity(f); } /*=====================================================================*/ -static void calcIncompMacroscopicValues(const LBMReal *const &f /*[27]*/, LBMReal &rho, LBMReal &vx1, LBMReal &vx2, - LBMReal &vx3) +static void calcIncompMacroscopicValues(const real *const &f /*[27]*/, real &rho, real &vx1, real &vx2, + real &vx3) { D3Q27System::calcDensity(f, rho); D3Q27System::calcIncompVelocityX1(f, vx1); @@ -505,26 +505,26 @@ static void calcIncompMacroscopicValues(const LBMReal *const &f /*[27]*/, LBMRea } /*=====================================================================*/ -static void calcCompMacroscopicValues(const LBMReal *const &f /*[27]*/, LBMReal &drho, LBMReal &vx1, LBMReal &vx2, - LBMReal &vx3) +static void calcCompMacroscopicValues(const real *const &f /*[27]*/, real &drho, real &vx1, real &vx2, + real &vx3) { D3Q27System::calcDensity(f, drho); D3Q27System::calcIncompVelocityX1(f, vx1); D3Q27System::calcIncompVelocityX2(f, vx2); D3Q27System::calcIncompVelocityX3(f, vx3); - LBMReal rho = drho + UbMath::one; + real rho = drho + UbMath::one; vx1 /= rho; vx2 /= rho; vx3 /= rho; } ////////////////////////////////////////////////////////////////////////// -static LBMReal getCompFeqForDirection(const int &direction, const LBMReal &drho, const LBMReal &vx1, const LBMReal &vx2, - const LBMReal &vx3) +static real getCompFeqForDirection(const int &direction, const real &drho, const real &vx1, const real &vx2, + const real &vx3) { using namespace vf::lbm::dir; - LBMReal cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); - LBMReal rho = drho + UbMath::one; + real cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); + real rho = drho + UbMath::one; switch (direction) { case DIR_000: return REAL_CAST(UbMath::c8o27 * (drho + rho * (-cu_sq))); @@ -613,13 +613,13 @@ static LBMReal getCompFeqForDirection(const int &direction, const LBMReal &drho, } } ////////////////////////////////////////////////////////////////////////// -static void calcCompFeq(LBMReal *const &feq /*[27]*/, const LBMReal &drho, const LBMReal &vx1, const LBMReal &vx2, - const LBMReal &vx3) +static void calcCompFeq(real *const &feq /*[27]*/, const real &drho, const real &vx1, const real &vx2, + const real &vx3) { using namespace vf::lbm::dir; - LBMReal cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); - LBMReal rho = drho + UbMath::one; + real cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); + real rho = drho + UbMath::one; feq[DIR_000] = UbMath::c8o27 * (drho + rho * (-cu_sq)); feq[DIR_P00] = UbMath::c2o27 * (drho + rho * (3.0 * (vx1) + UbMath::c9o2 * (vx1) * (vx1)-cu_sq)); @@ -662,12 +662,12 @@ static void calcCompFeq(LBMReal *const &feq /*[27]*/, const LBMReal &drho, const (drho + rho * (3.0 * (-vx1 + vx2 + vx3) + UbMath::c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq)); } ////////////////////////////////////////////////////////////////////////// -static LBMReal getIncompFeqForDirection(const int &direction, const LBMReal &drho, const LBMReal &vx1, - const LBMReal &vx2, const LBMReal &vx3) +static real getIncompFeqForDirection(const int &direction, const real &drho, const real &vx1, + const real &vx2, const real &vx3) { using namespace vf::lbm::dir; - LBMReal cu_sq = 1.5f * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); + real cu_sq = 1.5f * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); switch (direction) { case DIR_000: @@ -749,12 +749,12 @@ static LBMReal getIncompFeqForDirection(const int &direction, const LBMReal &drh } } ////////////////////////////////////////////////////////////////////////// -static void calcIncompFeq(LBMReal *const &feq /*[27]*/, const LBMReal &drho, const LBMReal &vx1, const LBMReal &vx2, - const LBMReal &vx3) +static void calcIncompFeq(real *const &feq /*[27]*/, const real &drho, const real &vx1, const real &vx2, + const real &vx3) { using namespace vf::lbm::dir; - LBMReal cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); + real cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); feq[DIR_000] = UbMath::c8o27 * (drho - cu_sq); feq[DIR_P00] = UbMath::c2o27 * (drho + 3.0 * (vx1) + UbMath::c9o2 * (vx1) * (vx1)-cu_sq); @@ -903,7 +903,7 @@ static std::vector<int> getDX(const int &exn) return ex; } ////////////////////////////////////////////////////////////////////////// -static inline void calcDistanceToNeighbors(std::vector<double> &distNeigh, const double &deltaX1) +static inline void calcDistanceToNeighbors(std::vector<real> &distNeigh, const real &deltaX1) { using namespace vf::lbm::dir; @@ -918,8 +918,8 @@ static inline void calcDistanceToNeighbors(std::vector<double> &distNeigh, const distNeigh[DIR_PPM] = distNeigh[DIR_MPM] = distNeigh[DIR_PMM] = distNeigh[DIR_MMM] = UbMath::sqrt3 * deltaX1; } ////////////////////////////////////////////////////////////////////////// -static inline void calcDistanceToNeighbors(std::vector<double> &distNeigh, const double &deltaX1, const double &deltaX2, - const double &deltaX3) +static inline void calcDistanceToNeighbors(std::vector<real> &distNeigh, const real &deltaX1, const real &deltaX2, + const real &deltaX3) { using namespace vf::lbm::dir; @@ -936,13 +936,13 @@ static inline void calcDistanceToNeighbors(std::vector<double> &distNeigh, const sqrt(deltaX1 * deltaX1 + deltaX2 * deltaX2 + deltaX3 * deltaX3); } ////////////////////////////////////////////////////////////////////////// -static inline void initRayVectors(double *const &rayX1, double *const &rayX2, double *const &rayX3) +static inline void initRayVectors(real *const &rayX1, real *const &rayX2, real *const &rayX3) { using namespace vf::lbm::dir; int fdir; - double c1oS2 = UbMath::one_over_sqrt2; - double c1oS3 = UbMath::one_over_sqrt3; + real c1oS2 = UbMath::one_over_sqrt2; + real c1oS3 = UbMath::one_over_sqrt3; fdir = DIR_P00; rayX1[fdir] = 1.0; rayX2[fdir] = 0.0; @@ -1049,11 +1049,11 @@ static inline void initRayVectors(double *const &rayX1, double *const &rayX2, do rayX3[fdir] = -c1oS3; } ////////////////////////////////////////////////////////////////////////// -static inline LBMReal calcPress(const LBMReal *const f, LBMReal rho, LBMReal vx1, LBMReal vx2, LBMReal vx3) +static inline real calcPress(const real *const f, real rho, real vx1, real vx2, real vx3) { using namespace vf::lbm::dir; - LBMReal op = 1.0; + real op = 1.0; return ((f[DIR_P00] + f[DIR_M00] + f[DIR_0P0] + f[DIR_0M0] + f[DIR_00P] + f[DIR_00M] + 2. * (f[DIR_PP0] + f[DIR_MM0] + f[DIR_PM0] + f[DIR_MP0] + f[DIR_P0P] + f[DIR_M0M] + f[DIR_P0M] + f[DIR_M0P] + f[DIR_0PP] + f[DIR_0MM] + f[DIR_0PM] + f[DIR_0MP]) + 3. * (f[DIR_PPP] + f[DIR_MMP] + f[DIR_PMP] + f[DIR_MPP] + f[DIR_PPM] + f[DIR_MMM] + f[DIR_PMM] + f[DIR_MPM]) - @@ -1063,54 +1063,54 @@ static inline LBMReal calcPress(const LBMReal *const f, LBMReal rho, LBMReal vx1 UbMath::c1o3; } ////////////////////////////////////////////////////////////////////////// -static inline LBMReal getShearRate(const LBMReal *const f, LBMReal collFactorF) +static inline real getShearRate(const real *const f, real collFactorF) { using namespace vf::lbm::dir; - LBMReal mfcbb = f[DIR_P00]; - LBMReal mfbcb = f[DIR_0P0]; - LBMReal mfbbc = f[DIR_00P]; - LBMReal mfccb = f[DIR_PP0]; - LBMReal mfacb = f[DIR_MP0]; - LBMReal mfcbc = f[DIR_P0P]; - LBMReal mfabc = f[DIR_M0P]; - LBMReal mfbcc = f[DIR_0PP]; - LBMReal mfbac = f[DIR_0MP]; - LBMReal mfccc = f[DIR_PPP]; - LBMReal mfacc = f[DIR_MPP]; - LBMReal mfcac = f[DIR_PMP]; - LBMReal mfaac = f[DIR_MMP]; - - LBMReal mfabb = f[DIR_M00]; - LBMReal mfbab = f[DIR_0M0]; - LBMReal mfbba = f[DIR_00M]; - LBMReal mfaab = f[DIR_MM0]; - LBMReal mfcab = f[DIR_PM0]; - LBMReal mfaba = f[DIR_M0M]; - LBMReal mfcba = f[DIR_P0M]; - LBMReal mfbaa = f[DIR_0MM]; - LBMReal mfbca = f[DIR_0PM]; - LBMReal mfaaa = f[DIR_MMM]; - LBMReal mfcaa = f[DIR_PMM]; - LBMReal mfaca = f[DIR_MPM]; - LBMReal mfcca = f[DIR_PPM]; - - LBMReal mfbbb = f[DIR_000]; - - LBMReal m0, m1, m2; - - LBMReal rho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + + real mfcbb = f[DIR_P00]; + real mfbcb = f[DIR_0P0]; + real mfbbc = f[DIR_00P]; + real mfccb = f[DIR_PP0]; + real mfacb = f[DIR_MP0]; + real mfcbc = f[DIR_P0P]; + real mfabc = f[DIR_M0P]; + real mfbcc = f[DIR_0PP]; + real mfbac = f[DIR_0MP]; + real mfccc = f[DIR_PPP]; + real mfacc = f[DIR_MPP]; + real mfcac = f[DIR_PMP]; + real mfaac = f[DIR_MMP]; + + real mfabb = f[DIR_M00]; + real mfbab = f[DIR_0M0]; + real mfbba = f[DIR_00M]; + real mfaab = f[DIR_MM0]; + real mfcab = f[DIR_PM0]; + real mfaba = f[DIR_M0M]; + real mfcba = f[DIR_P0M]; + real mfbaa = f[DIR_0MM]; + real mfbca = f[DIR_0PM]; + real mfaaa = f[DIR_MMM]; + real mfcaa = f[DIR_PMM]; + real mfaca = f[DIR_MPM]; + real mfcca = f[DIR_PPM]; + + real mfbbb = f[DIR_000]; + + real m0, m1, m2; + + real rho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); - LBMReal oMdrho; + real oMdrho; oMdrho = mfccc + mfaaa; m0 = mfaca + mfcac; @@ -1138,9 +1138,9 @@ static inline LBMReal getShearRate(const LBMReal *const f, LBMReal collFactorF) m0 += mfbbb; // hat gefehlt oMdrho = 1. - (oMdrho + m0); - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2 = vvx * vvx; vy2 = vvy * vvy; vz2 = vvz * vvz; @@ -1374,32 +1374,32 @@ static inline LBMReal getShearRate(const LBMReal *const f, LBMReal collFactorF) //////////////////////////////////////////////////////////////////////////////////// // Cumulants //////////////////////////////////////////////////////////////////////////////////// - LBMReal OxxPyyPzz = 1.; // omega2 or bulk viscosity + real OxxPyyPzz = 1.; // omega2 or bulk viscosity - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; - LBMReal dxux = -UbMath::c1o2 * collFactorF * (mxxMyy + mxxMzz) + UbMath::c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); - LBMReal dyuy = dxux + collFactorF * UbMath::c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactorF * UbMath::c3o2 * mxxMzz; + real dxux = -UbMath::c1o2 * collFactorF * (mxxMyy + mxxMzz) + UbMath::c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); + real dyuy = dxux + collFactorF * UbMath::c3o2 * mxxMyy; + real dzuz = dxux + collFactorF * UbMath::c3o2 * mxxMzz; - LBMReal Dxy = -UbMath::three * collFactorF * mfbba; - LBMReal Dxz = -UbMath::three * collFactorF * mfbab; - LBMReal Dyz = -UbMath::three * collFactorF * mfabb; + real Dxy = -UbMath::three * collFactorF * mfbba; + real Dxz = -UbMath::three * collFactorF * mfbab; + real Dyz = -UbMath::three * collFactorF * mfabb; return sqrt(UbMath::c2 * (dxux * dxux + dyuy * dyuy + dzuz * dzuz) + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz) / (rho + UbMath::one); } //Multiphase stuff ////////////////////////////////////////////////////////////////////////// -static void calcMultiphaseFeq(LBMReal *const &feq /*[27]*/, const LBMReal &rho, const LBMReal &p1, const LBMReal &vx1, - const LBMReal &vx2, const LBMReal &vx3) +static void calcMultiphaseFeq(real *const &feq /*[27]*/, const real &rho, const real &p1, const real &vx1, + const real &vx2, const real &vx3) { using namespace vf::lbm::dir; using namespace UbMath; - LBMReal cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); + real cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); feq[DIR_000] = c8o27 * (p1 + rho * c1o3 * (-cu_sq)); feq[DIR_P00] = c2o27 * (p1 + rho * c1o3 * (3.0 * (vx1) + c9o2 * (vx1) * (vx1)-cu_sq)); @@ -1438,13 +1438,13 @@ static void calcMultiphaseFeq(LBMReal *const &feq /*[27]*/, const LBMReal &rho, (p1 + rho * c1o3 * (3.0 * (-vx1 + vx2 + vx3) + c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq)); } ////////////////////////////////////////////////////////////////////////// -static void calcMultiphaseFeqVB(LBMReal *const &feq /*[27]*/, const LBMReal &p1, const LBMReal &vx1, const LBMReal &vx2, - const LBMReal &vx3) +static void calcMultiphaseFeqVB(real *const &feq /*[27]*/, const real &p1, const real &vx1, const real &vx2, + const real &vx3) { using namespace vf::lbm::dir; using namespace UbMath; - LBMReal cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); + real cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); feq[DIR_000] = p1 + c8o27 * (-cu_sq); feq[DIR_P00] = c2o27 * ((3.0 * (vx1) + c9o2 * (vx1) * (vx1)-cu_sq)); @@ -1475,13 +1475,13 @@ static void calcMultiphaseFeqVB(LBMReal *const &feq /*[27]*/, const LBMReal &p1, feq[DIR_MPP] = c1o216 * ((3.0 * (-vx1 + vx2 + vx3) + c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq)); } ////////////////////////////////////////////////////////////////////////// -static void calcMultiphaseHeq(LBMReal *const &heq /*[27]*/, const LBMReal &phi, const LBMReal &vx1, const LBMReal &vx2, - const LBMReal &vx3) +static void calcMultiphaseHeq(real *const &heq /*[27]*/, const real &phi, const real &vx1, const real &vx2, + const real &vx3) { using namespace vf::lbm::dir; using namespace UbMath; - LBMReal cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); + real cu_sq = 1.5 * (vx1 * vx1 + vx2 * vx2 + vx3 * vx3); heq[DIR_000] = c8o27 * phi * (1.0 - cu_sq); heq[DIR_P00] = c2o27 * phi * (1.0 + 3.0 * (vx1) + c9o2 * (vx1) * (vx1)-cu_sq); diff --git a/src/cpu/VirtualFluidsCore/LBM/ICell.h b/src/cpu/VirtualFluidsCore/LBM/ICell.h index c080033b8..e9b07b1ee 100644 --- a/src/cpu/VirtualFluidsCore/LBM/ICell.h +++ b/src/cpu/VirtualFluidsCore/LBM/ICell.h @@ -7,14 +7,14 @@ struct ICell3D { ICell3D(int size); - std::vector<LBMReal> TSW; - std::vector<LBMReal> TNW; - std::vector<LBMReal> TNE; - std::vector<LBMReal> TSE; - std::vector<LBMReal> BSW; - std::vector<LBMReal> BNW; - std::vector<LBMReal> BNE; - std::vector<LBMReal> BSE; + std::vector<real> TSW; + std::vector<real> TNW; + std::vector<real> TNE; + std::vector<real> TSE; + std::vector<real> BSW; + std::vector<real> BNW; + std::vector<real> BNE; + std::vector<real> BSE; }; inline ICell3D::ICell3D(int size) diff --git a/src/cpu/VirtualFluidsCore/LBM/ILBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/ILBMKernel.h index bde61d9d3..7d600b17c 100644 --- a/src/cpu/VirtualFluidsCore/LBM/ILBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/ILBMKernel.h @@ -59,7 +59,7 @@ public: virtual void setCollisionFactor(double collFactor) = 0; virtual bool isInsideOfDomain(const int &x1, const int &x2, const int &x3) const = 0; virtual int getGhostLayerWidth() const = 0; - virtual LBMReal getDeltaT() const = 0; + virtual real getDeltaT() const = 0; virtual bool getWithForcing() const = 0; }; diff --git a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.cpp index ec4b9bbd4..a09370d0e 100644 --- a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.cpp @@ -135,49 +135,49 @@ void IncompressibleCumulantLBMKernel::calculate(int step) // a b c //-1 0 1 - LBMReal mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); - - LBMReal mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributions)(x1, x2, x3); - - LBMReal m0, m1, m2; - - LBMReal rho=(mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) + real mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); + + real mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributions)(x1, x2, x3); + + real m0, m1, m2; + + real rho=(mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) +(mfaab+mfacb+mfcab+mfccb)+(mfaba+mfabc+mfcba+mfcbc)+(mfbaa+mfbac+mfbca+mfbcc) +(mfabb+mfcbb)+(mfbab+mfbcb)+(mfbba+mfbbc)+mfbbb; - LBMReal vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + real vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + (mfcbb-mfabb)); - LBMReal vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + real vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + (mfbcb-mfbab)); - LBMReal vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + real vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + (mfbbc-mfbba)); @@ -198,7 +198,7 @@ void IncompressibleCumulantLBMKernel::calculate(int step) vvz += forcingX3*deltaT*0.5; // Z } /////////////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho; + real oMdrho; oMdrho=mfccc+mfaaa; m0=mfaca+mfcac; @@ -226,15 +226,15 @@ void IncompressibleCumulantLBMKernel::calculate(int step) m0+=mfbbb; //hat gefehlt oMdrho = 1. - (oMdrho + m0); - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2=vvx*vvx; vy2=vvy*vvy; vz2=vvz*vvz; //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -465,33 +465,33 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // Cumulants //////////////////////////////////////////////////////////////////////////////////// - LBMReal OxxPyyPzz = 1.; //omega2 or bulk viscosity - LBMReal OxyyPxzz = 1.;//-s9;//2+s9;// - //LBMReal OxyyMxzz = 1.;//2+s9;// - LBMReal O4 = 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + 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.; //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 - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-1.)*oMdrho); - LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-1.)*oMdrho); - LBMReal CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-1.)*oMdrho); + 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); //Cum 5. - LBMReal CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal 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 + 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; //Cum 6. - LBMReal CUMccc = mfccc +((-4. * mfbbb * mfbbb + real CUMccc = mfccc +((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) @@ -505,13 +505,13 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; - LBMReal dxux = -c1o2 * collFactor *(mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz*(mfaaa - mxxPyyPzz); - LBMReal dyuy = dxux + collFactor * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactor * c3o2 * mxxMzz; + real dxux = -c1o2 * collFactor *(mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz*(mfaaa - mxxPyyPzz); + real dyuy = dxux + collFactor * c3o2 * mxxMyy; + real dzuz = dxux + collFactor * c3o2 * mxxMzz; //relax mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- 3. * (1. - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); @@ -529,14 +529,14 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //relax wadjust = OxyyMxzz+(1.-OxyyMxzz)*fabs(mfbbb)/(fabs(mfbbb)+qudricLimit); @@ -831,11 +831,11 @@ void IncompressibleCumulantLBMKernel::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal rho_post = (mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) + real rho_post = (mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) +(mfaab+mfacb+mfcab+mfccb)+(mfaba+mfabc+mfcba+mfcbc)+(mfbaa+mfbac+mfbca+mfbcc) +(mfabb+mfcbb)+(mfbab+mfbcb)+(mfbba+mfbbc)+mfbbb; - //LBMReal dif = fabs(rho - rho_post); - LBMReal dif = rho - rho_post; + //real dif = fabs(rho - rho_post); + real dif = rho - rho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) #else diff --git a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.h index d7c3c78a6..803fdd3ca 100644 --- a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantLBMKernel.h @@ -27,23 +27,23 @@ public: void setRelaxationParameter(Parameter p); protected: virtual void initDataSet(); - LBMReal f[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; UbTimer timer; - LBMReal OxyyMxzz; + real OxyyMxzz; Parameter parameter; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributions; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributions; mu::value_type muX1,muX2,muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; }; #endif diff --git a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp index c2f293b1b..46023fb3a 100644 --- a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp @@ -44,7 +44,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::initRelaxFactor(int vdir, d double sizeSP = SP / dx; double muX1, muX2, muX3; - LBMReal spongeFactor; + real spongeFactor; SPtr<BCArray3D> bcArray = this->getBCProcessor()->getBCArray(); @@ -59,7 +59,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::initRelaxFactor(int vdir, d int maxX2 = bcArrayMaxX2 - ghostLayerWidth - 1; int maxX3 = bcArrayMaxX3 - ghostLayerWidth - 1; - SPtr<RelaxationFactorArray3D> relaxationFactorPtr = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(maxX1, maxX2, maxX3)); + SPtr<RelaxationFactorArray3D> relaxationFactorPtr = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(maxX1, maxX2, maxX3)); dataSet->setRelaxationFactor(relaxationFactorPtr); for (int x3 = minX3; x3 < maxX3; x3++) @@ -206,8 +206,8 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) int maxX2 = bcArrayMaxX2-ghostLayerWidth-1; int maxX3 = bcArrayMaxX3-ghostLayerWidth-1; - LBMReal collFactor0 = collFactor; - LBMReal spongeFactor; + real collFactor0 = collFactor; + real spongeFactor; for(int x3 = minX3; x3 <= maxX3; x3++) { @@ -233,49 +233,49 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //Rest ist b - LBMReal mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1,x2,x3); - LBMReal mfbcb = (*this->localDistributions)(D3Q27System::ET_N,x1,x2,x3); - LBMReal mfbbc = (*this->localDistributions)(D3Q27System::ET_T,x1,x2,x3); - LBMReal mfccb = (*this->localDistributions)(D3Q27System::ET_NE,x1,x2,x3); - LBMReal mfacb = (*this->localDistributions)(D3Q27System::ET_NW,x1p,x2,x3); - LBMReal mfcbc = (*this->localDistributions)(D3Q27System::ET_TE,x1,x2,x3); - LBMReal mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p,x2,x3); - LBMReal mfbcc = (*this->localDistributions)(D3Q27System::ET_TN,x1,x2,x3); - LBMReal mfbac = (*this->localDistributions)(D3Q27System::ET_TS,x1,x2p,x3); - LBMReal mfccc = (*this->localDistributions)(D3Q27System::ET_TNE,x1,x2,x3); - LBMReal mfacc = (*this->localDistributions)(D3Q27System::ET_TNW,x1p,x2,x3); - LBMReal mfcac = (*this->localDistributions)(D3Q27System::ET_TSE,x1,x2p,x3); - LBMReal mfaac = (*this->localDistributions)(D3Q27System::ET_TSW,x1p,x2p,x3); - - LBMReal mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W,x1p,x2,x3 ); - LBMReal mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S,x1,x2p,x3 ); - LBMReal mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B,x1,x2,x3p ); - LBMReal mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW,x1p,x2p,x3 ); - LBMReal mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE,x1,x2p,x3 ); - LBMReal mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW,x1p,x2,x3p ); - LBMReal mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE,x1,x2,x3p ); - LBMReal mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS,x1,x2p,x3p ); - LBMReal mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN,x1,x2,x3p ); - LBMReal mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW,x1p,x2p,x3p); - LBMReal mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE,x1,x2p,x3p); - LBMReal mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW,x1p,x2,x3p); - LBMReal mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1,x2,x3p); - - LBMReal mfbbb = (*this->zeroDistributions)(x1,x2,x3); - - LBMReal m0, m1, m2; + real mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1,x2,x3); + real mfbcb = (*this->localDistributions)(D3Q27System::ET_N,x1,x2,x3); + real mfbbc = (*this->localDistributions)(D3Q27System::ET_T,x1,x2,x3); + real mfccb = (*this->localDistributions)(D3Q27System::ET_NE,x1,x2,x3); + real mfacb = (*this->localDistributions)(D3Q27System::ET_NW,x1p,x2,x3); + real mfcbc = (*this->localDistributions)(D3Q27System::ET_TE,x1,x2,x3); + real mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p,x2,x3); + real mfbcc = (*this->localDistributions)(D3Q27System::ET_TN,x1,x2,x3); + real mfbac = (*this->localDistributions)(D3Q27System::ET_TS,x1,x2p,x3); + real mfccc = (*this->localDistributions)(D3Q27System::ET_TNE,x1,x2,x3); + real mfacc = (*this->localDistributions)(D3Q27System::ET_TNW,x1p,x2,x3); + real mfcac = (*this->localDistributions)(D3Q27System::ET_TSE,x1,x2p,x3); + real mfaac = (*this->localDistributions)(D3Q27System::ET_TSW,x1p,x2p,x3); + + real mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W,x1p,x2,x3 ); + real mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S,x1,x2p,x3 ); + real mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B,x1,x2,x3p ); + real mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW,x1p,x2p,x3 ); + real mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE,x1,x2p,x3 ); + real mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW,x1p,x2,x3p ); + real mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE,x1,x2,x3p ); + real mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS,x1,x2p,x3p ); + real mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN,x1,x2,x3p ); + real mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW,x1p,x2p,x3p); + real mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE,x1,x2p,x3p); + real mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW,x1p,x2,x3p); + real mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE,x1,x2,x3p); + + real mfbbb = (*this->zeroDistributions)(x1,x2,x3); + + real m0, m1, m2; - LBMReal rho=(mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) + real rho=(mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) +(mfaab+mfacb+mfcab+mfccb)+(mfaba+mfabc+mfcba+mfcbc)+(mfbaa+mfbac+mfbca+mfbcc) +(mfabb+mfcbb)+(mfbab+mfbcb)+(mfbba+mfbbc)+mfbbb; - LBMReal vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + real vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + (mfcbb-mfabb)); - LBMReal vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + real vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + (mfbcb-mfbab)); - LBMReal vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + real vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + (mfbbc-mfbba)); ////////////////////////////////////////////////////////////////////////// @@ -325,7 +325,7 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //} ////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho; + real oMdrho; oMdrho=mfccc+mfaaa; m0=mfaca+mfcac; @@ -353,15 +353,15 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) m0+=mfbbb; //hat gefehlt oMdrho = 1. - (oMdrho + m0); - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2=vvx*vvx; vy2=vvy*vvy; vz2=vvz*vvz; //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -592,29 +592,29 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // Cumulants //////////////////////////////////////////////////////////////////////////////////// - LBMReal OxxPyyPzz = 1.; - LBMReal OxyyPxzz = 1.;//-s9;//2+s9;// - //LBMReal OxyyMxzz = 1.;//2+s9;// - LBMReal O4 = 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + real OxxPyyPzz = 1.; + real OxyyPxzz = 1.;//-s9;//2+s9;// + //real OxyyMxzz = 1.;//2+s9;// + real O4 = 1.; + real O5 = 1.; + real O6 = 1.; //Cum 4. - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3 * oMdrho) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - (mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; - LBMReal CUMcac = mfcac - (mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-1)*oMdrho; - LBMReal CUMacc = mfacc - (mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-1)*oMdrho; + 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; //Cum 5. - LBMReal CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal 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 + 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; //Cum 6. - LBMReal CUMccc = mfccc +((-4. * mfbbb * mfbbb + real CUMccc = mfccc +((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) @@ -628,13 +628,13 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; - LBMReal dxux = -c1o2 * collFactor *(mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz*(mfaaa - mxxPyyPzz); - LBMReal dyuy = dxux + collFactor * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactor * c3o2 * mxxMzz; + real dxux = -c1o2 * collFactor *(mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz*(mfaaa - mxxPyyPzz); + real dyuy = dxux + collFactor * c3o2 * mxxMyy; + real dzuz = dxux + collFactor * c3o2 * mxxMzz; //relax mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- 3. * (1. - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); @@ -652,14 +652,14 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //relax wadjust = OxyyMxzz+(1.-OxyyMxzz)*fabs(mfbbb)/(fabs(mfbbb)+qudricLimit); @@ -950,11 +950,11 @@ void IncompressibleCumulantWithSpongeLayerLBMKernel::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal rho_post = (mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) + real rho_post = (mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) +(mfaab+mfacb+mfcab+mfccb)+(mfaba+mfabc+mfcba+mfcbc)+(mfbaa+mfbac+mfbca+mfbcc) +(mfabb+mfcbb)+(mfbab+mfbcb)+(mfbba+mfbbc)+mfbbb; //LBMReal dif = fabs(rho - rho_post); - LBMReal dif = rho - rho_post; + real dif = rho - rho_post; #ifdef SINGLEPRECISION if(dif > 10.0E-7 || dif < -10.0E-7) #else diff --git a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.h index 2747cdc76..227ef6b84 100644 --- a/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.h @@ -32,7 +32,7 @@ public: void setRelaxFactorParam(int vdir, double vL1, double vdx, double vSP); protected: void initDataSet() override; - LBMReal OxyyMxzz; + real OxyyMxzz; int direction; double L1; double dx; diff --git a/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.cpp index 2d2eef1af..c4759d786 100644 --- a/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.cpp @@ -4,7 +4,7 @@ ////////////////////////////////////////////////////////////////////////// -IncompressibleOffsetInterpolationProcessor::IncompressibleOffsetInterpolationProcessor(LBMReal omegaC, LBMReal omegaF) +IncompressibleOffsetInterpolationProcessor::IncompressibleOffsetInterpolationProcessor(real omegaC, real omegaF) : omegaC(omegaC), omegaF(omegaF) { @@ -19,13 +19,13 @@ InterpolationProcessorPtr IncompressibleOffsetInterpolationProcessor::clone() return iproc; } ////////////////////////////////////////////////////////////////////////// -void IncompressibleOffsetInterpolationProcessor::setOmegas( LBMReal omegaC, LBMReal omegaF ) +void IncompressibleOffsetInterpolationProcessor::setOmegas( real omegaC, real omegaF ) { this->omegaC = omegaC; this->omegaF = omegaF; } ////////////////////////////////////////////////////////////////////////// -void IncompressibleOffsetInterpolationProcessor::setOffsets(LBMReal xoff, LBMReal yoff, LBMReal zoff) +void IncompressibleOffsetInterpolationProcessor::setOffsets(real xoff, real yoff, real zoff) { this->xoff = xoff; this->yoff = yoff; @@ -35,7 +35,7 @@ void IncompressibleOffsetInterpolationProcessor::setOffsets(LBMReal xoff, LBMRea this->zoff_sq = zoff * zoff; } ////////////////////////////////////////////////////////////////////////// -void IncompressibleOffsetInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, LBMReal xoff, LBMReal yoff, LBMReal zoff) +void IncompressibleOffsetInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); calcInterpolatedCoefficiets(icellC, omegaC, 0.5); @@ -49,15 +49,15 @@ void IncompressibleOffsetInterpolationProcessor::interpolateCoarseToFine(D3Q27IC calcInterpolatedNode(icellF.TNE, omegaF, 0.25, 0.25, 0.25, calcPressTNE(), 1, 1, 1); } ////////////////////////////////////////////////////////////////////////// -void IncompressibleOffsetInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC, LBMReal xoff, LBMReal yoff, LBMReal zoff) +void IncompressibleOffsetInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); calcInterpolatedCoefficiets(icellF, omegaF, 2.0); calcInterpolatedNodeFC(icellC, omegaC); } ////////////////////////////////////////////////////////////////////////// -void IncompressibleOffsetInterpolationProcessor::calcMoments(const LBMReal* const f, LBMReal omega, LBMReal& press, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3, - LBMReal& kxy, LBMReal& kyz, LBMReal& kxz, LBMReal& kxxMyy, LBMReal& kxxMzz) +void IncompressibleOffsetInterpolationProcessor::calcMoments(const real* const f, real omega, real& press, real& vx1, real& vx2, real& vx3, + real& kxy, real& kyz, real& kxz, real& kxxMyy, real& kxxMzz) { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -65,7 +65,7 @@ void IncompressibleOffsetInterpolationProcessor::calcMoments(const LBMReal* cons //UBLOG(logINFO,"D3Q27System::DIR_M0M = " << D3Q27System::DIR_M0M); //UBLOG(logINFO,"BW = " << BW);; - LBMReal rho = 0.0; + real rho = 0.0; D3Q27System::calcIncompMacroscopicValues(f,rho,vx1,vx2,vx3); ////////////////////////////////////////////////////////////////////////// @@ -101,25 +101,25 @@ void IncompressibleOffsetInterpolationProcessor::calcMoments(const LBMReal* cons //UBLOG(logINFO,"f[TN] = " << f[TN] << " TN = " << TN); } ////////////////////////////////////////////////////////////////////////// -void IncompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, LBMReal omega, LBMReal eps_new) +void IncompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(const D3Q27ICell& icell, real omega, real eps_new) { - LBMReal vx1_SWT,vx2_SWT,vx3_SWT; - LBMReal vx1_NWT,vx2_NWT,vx3_NWT; - LBMReal vx1_NET,vx2_NET,vx3_NET; - LBMReal vx1_SET,vx2_SET,vx3_SET; - LBMReal vx1_SWB,vx2_SWB,vx3_SWB; - LBMReal vx1_NWB,vx2_NWB,vx3_NWB; - LBMReal vx1_NEB,vx2_NEB,vx3_NEB; - LBMReal vx1_SEB,vx2_SEB,vx3_SEB; - - LBMReal kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT; - LBMReal kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT; - LBMReal kxyFromfcNEQ_NET, kyzFromfcNEQ_NET, kxzFromfcNEQ_NET, kxxMyyFromfcNEQ_NET, kxxMzzFromfcNEQ_NET; - LBMReal kxyFromfcNEQ_SET, kyzFromfcNEQ_SET, kxzFromfcNEQ_SET, kxxMyyFromfcNEQ_SET, kxxMzzFromfcNEQ_SET; - LBMReal kxyFromfcNEQ_SWB, kyzFromfcNEQ_SWB, kxzFromfcNEQ_SWB, kxxMyyFromfcNEQ_SWB, kxxMzzFromfcNEQ_SWB; - LBMReal kxyFromfcNEQ_NWB, kyzFromfcNEQ_NWB, kxzFromfcNEQ_NWB, kxxMyyFromfcNEQ_NWB, kxxMzzFromfcNEQ_NWB; - LBMReal kxyFromfcNEQ_NEB, kyzFromfcNEQ_NEB, kxzFromfcNEQ_NEB, kxxMyyFromfcNEQ_NEB, kxxMzzFromfcNEQ_NEB; - LBMReal kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; + real vx1_SWT,vx2_SWT,vx3_SWT; + real vx1_NWT,vx2_NWT,vx3_NWT; + real vx1_NET,vx2_NET,vx3_NET; + real vx1_SET,vx2_SET,vx3_SET; + real vx1_SWB,vx2_SWB,vx3_SWB; + real vx1_NWB,vx2_NWB,vx3_NWB; + real vx1_NEB,vx2_NEB,vx3_NEB; + real vx1_SEB,vx2_SEB,vx3_SEB; + + real kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT; + real kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT; + real kxyFromfcNEQ_NET, kyzFromfcNEQ_NET, kxzFromfcNEQ_NET, kxxMyyFromfcNEQ_NET, kxxMzzFromfcNEQ_NET; + real kxyFromfcNEQ_SET, kyzFromfcNEQ_SET, kxzFromfcNEQ_SET, kxxMyyFromfcNEQ_SET, kxxMzzFromfcNEQ_SET; + real kxyFromfcNEQ_SWB, kyzFromfcNEQ_SWB, kxzFromfcNEQ_SWB, kxxMyyFromfcNEQ_SWB, kxxMzzFromfcNEQ_SWB; + real kxyFromfcNEQ_NWB, kyzFromfcNEQ_NWB, kxzFromfcNEQ_NWB, kxxMyyFromfcNEQ_NWB, kxxMzzFromfcNEQ_NWB; + real kxyFromfcNEQ_NEB, kyzFromfcNEQ_NEB, kxzFromfcNEQ_NEB, kxxMyyFromfcNEQ_NEB, kxxMzzFromfcNEQ_NEB; + real kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; calcMoments(icell.TSW,omega,press_SWT,vx1_SWT,vx2_SWT,vx3_SWT, kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT); calcMoments(icell.TNW,omega,press_NWT,vx1_NWT,vx2_NWT,vx3_NWT, kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT); @@ -419,7 +419,7 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(con cyz= cyz + xoff*cxyz; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - const LBMReal o = omega; + 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)); @@ -527,22 +527,22 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedCoefficiets(con yz_TNW = 0.0625*eps_new *(( bxyz + cxyz)/(72.*o)); } ////////////////////////////////////////////////////////////////////////// -void IncompressibleOffsetInterpolationProcessor::calcInterpolatedNode(LBMReal* f, LBMReal /*omega*/, LBMReal /*x*/, LBMReal /*y*/, LBMReal /*z*/, LBMReal press, LBMReal xs, LBMReal ys, LBMReal zs) +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; - 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.; - LBMReal 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); - LBMReal 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); - LBMReal 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 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); ////////////////////////////////////////////////////////////////////////// //DRAFT //vx1 -= forcingF*0.5; ////////////////////////////////////////////////////////////////////////// - LBMReal feq[ENDF+1]; + real feq[ENDF+1]; D3Q27System::calcIncompFeq(feq,rho,vx1,vx2,vx3); f[DIR_P00] = f_E + xs*x_E + ys*y_E + zs*z_E + xs*ys*xy_E + xs*zs*xz_E + ys*zs*yz_E + feq[DIR_P00]; @@ -575,7 +575,7 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedNode(LBMReal* f } ////////////////////////////////////////////////////////////////////////// //Position SWB -0.25, -0.25, -0.25 -LBMReal IncompressibleOffsetInterpolationProcessor::calcPressBSW() +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) + @@ -588,7 +588,7 @@ LBMReal IncompressibleOffsetInterpolationProcessor::calcPressBSW() } ////////////////////////////////////////////////////////////////////////// //Position SWT -0.25, -0.25, 0.25 -LBMReal IncompressibleOffsetInterpolationProcessor::calcPressTSW() +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) + @@ -601,7 +601,7 @@ LBMReal IncompressibleOffsetInterpolationProcessor::calcPressTSW() } ////////////////////////////////////////////////////////////////////////// //Position SET 0.25, -0.25, 0.25 -LBMReal IncompressibleOffsetInterpolationProcessor::calcPressTSE() +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) + @@ -614,7 +614,7 @@ LBMReal IncompressibleOffsetInterpolationProcessor::calcPressTSE() } ////////////////////////////////////////////////////////////////////////// //Position SEB 0.25, -0.25, -0.25 -LBMReal IncompressibleOffsetInterpolationProcessor::calcPressBSE() +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) + @@ -627,7 +627,7 @@ LBMReal IncompressibleOffsetInterpolationProcessor::calcPressBSE() } ////////////////////////////////////////////////////////////////////////// //Position NWB -0.25, 0.25, -0.25 -LBMReal IncompressibleOffsetInterpolationProcessor::calcPressBNW() +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) + @@ -640,7 +640,7 @@ LBMReal IncompressibleOffsetInterpolationProcessor::calcPressBNW() } ////////////////////////////////////////////////////////////////////////// //Position NWT -0.25, 0.25, 0.25 -LBMReal IncompressibleOffsetInterpolationProcessor::calcPressTNW() +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) + @@ -653,7 +653,7 @@ LBMReal IncompressibleOffsetInterpolationProcessor::calcPressTNW() } ////////////////////////////////////////////////////////////////////////// //Position NET 0.25, 0.25, 0.25 -LBMReal IncompressibleOffsetInterpolationProcessor::calcPressTNE() +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) + @@ -666,7 +666,7 @@ LBMReal IncompressibleOffsetInterpolationProcessor::calcPressTNE() } ////////////////////////////////////////////////////////////////////////// //Position NEB 0.25, 0.25, -0.25 -LBMReal IncompressibleOffsetInterpolationProcessor::calcPressBNE() +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) + @@ -679,12 +679,12 @@ LBMReal IncompressibleOffsetInterpolationProcessor::calcPressBNE() } ////////////////////////////////////////////////////////////////////////// //Position C 0.0, 0.0, 0.0 -void IncompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* f, LBMReal omega) +void IncompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(real* f, real omega) { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal press = press_NET * (0.125 - 0.25 * xoff - 0.25 * yoff - 0.25 * zoff) + + 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) + @@ -692,22 +692,22 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* 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); - LBMReal vx1 = a0; - LBMReal vx2 = b0; - LBMReal vx3 = c0; + real vx1 = a0; + real vx2 = b0; + real vx3 = c0; - LBMReal rho = press ;//+ (ax+by+cz)/3.; + real rho = press ;//+ (ax+by+cz)/3.; ////////////////////////////////////////////////////////////////////////// //DRAFT //vx1 -= forcingC*0.5; ////////////////////////////////////////////////////////////////////////// - LBMReal feq[ENDF+1]; + real feq[ENDF+1]; D3Q27System::calcIncompFeq(feq,rho,vx1,vx2,vx3); - LBMReal eps_new = 2.; - LBMReal o = omega; + real eps_new = 2.; + real o = omega; // LBMReal op = 1.; //f_E = eps_new *((5.*ax*o + 5.*by*o + 5.*cz*o - 8.*ax*op + 4.*by*op + 4.*cz*op)/(54.*o*op)); @@ -769,14 +769,14 @@ void IncompressibleOffsetInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* f[DIR_000] = f_ZERO + feq[DIR_000]; } ////////////////////////////////////////////////////////////////////////// -void IncompressibleOffsetInterpolationProcessor::calcInterpolatedVelocity(LBMReal x, LBMReal y, LBMReal z, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3) +void IncompressibleOffsetInterpolationProcessor::calcInterpolatedVelocity(real x, real y, real z, real& vx1, real& vx2, real& vx3) { vx1 = a0 + ax*x + ay*y + az*z + axx*x*x + ayy*y*y + azz*z*z + axy*x*y + axz*x*z + ayz*y*z+axyz*x*y*z; vx2 = b0 + bx*x + by*y + bz*z + bxx*x*x + byy*y*y + bzz*z*z + bxy*x*y + bxz*x*z + byz*y*z+bxyz*x*y*z; vx3 = c0 + cx*x + cy*y + cz*z + cxx*x*x + cyy*y*y + czz*z*z + cxy*x*y + cxz*x*z + cyz*y*z+cxyz*x*y*z; } ////////////////////////////////////////////////////////////////////////// -void IncompressibleOffsetInterpolationProcessor::calcInterpolatedShearStress(LBMReal x, LBMReal y, LBMReal z,LBMReal& tauxx, LBMReal& tauyy, LBMReal& tauzz,LBMReal& tauxy, LBMReal& tauxz, LBMReal& tauyz) +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; diff --git a/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.h b/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.h index 6b024d419..866c0f693 100644 --- a/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.h +++ b/src/cpu/VirtualFluidsCore/LBM/IncompressibleOffsetInterpolationProcessor.h @@ -16,51 +16,51 @@ class IncompressibleOffsetInterpolationProcessor : public InterpolationProcessor { public: IncompressibleOffsetInterpolationProcessor() = default; - IncompressibleOffsetInterpolationProcessor(LBMReal omegaC, LBMReal omegaF); + IncompressibleOffsetInterpolationProcessor(real omegaC, real omegaF); ~IncompressibleOffsetInterpolationProcessor() override = default; InterpolationProcessorPtr clone() override; - void setOmegas(LBMReal omegaC, LBMReal omegaF) override; + void setOmegas(real omegaC, real omegaF) override; void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF) override; - void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, LBMReal xoff, LBMReal yoff, LBMReal zoff) override; - void interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC) override; - void interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC, LBMReal xoff, LBMReal yoff, LBMReal zoff) override; - //LBMReal forcingC, forcingF; + void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff) override; + void interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC) override; + void interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff) override; + //real forcingC, forcingF; protected: private: - LBMReal omegaC{0.0}, omegaF{0.0}; - LBMReal a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz, axyz, bxyz, cxyz; - LBMReal xoff, yoff, zoff; - LBMReal xoff_sq, yoff_sq, zoff_sq; - LBMReal press_SWT, press_NWT, press_NET, press_SET, press_SWB, press_NWB, press_NEB, press_SEB; + real omegaC{0.0}, omegaF{0.0}; + real a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz, axyz, bxyz, cxyz; + real xoff, yoff, zoff; + real xoff_sq, yoff_sq, zoff_sq; + real press_SWT, press_NWT, press_NET, press_SET, press_SWB, press_NWB, press_NEB, press_SEB; - LBMReal f_E, f_N, f_T, f_NE, f_SE, f_BE, f_TE, f_TN, f_BN, f_TNE, f_TNW, f_TSE, f_TSW, f_ZERO; - LBMReal x_E, x_N, x_T, x_NE, x_SE, x_BE, x_TE, x_TN, x_BN, x_TNE, x_TNW, x_TSE, x_TSW, x_ZERO; - LBMReal y_E, y_N, y_T, y_NE, y_SE, y_BE, y_TE, y_TN, y_BN, y_TNE, y_TNW, y_TSE, y_TSW, y_ZERO; - LBMReal z_E, z_N, z_T, z_NE, z_SE, z_BE, z_TE, z_TN, z_BN, z_TNE, z_TNW, z_TSE, z_TSW, z_ZERO; - LBMReal xy_E, xy_N, xy_T, xy_NE, xy_SE, xy_BE, xy_TE, xy_TN, xy_BN, xy_TNE, xy_TNW, xy_TSE, xy_TSW/*, xy_ZERO*/; - LBMReal xz_E, xz_N, xz_T, xz_NE, xz_SE, xz_BE, xz_TE, xz_TN, xz_BN, xz_TNE, xz_TNW, xz_TSE, xz_TSW/*, xz_ZERO*/; - LBMReal yz_E, yz_N, yz_T, yz_NE, yz_SE, yz_BE, yz_TE, yz_TN, yz_BN, yz_TNE, yz_TNW, yz_TSE, yz_TSW/*, yz_ZERO*/; + real f_E, f_N, f_T, f_NE, f_SE, f_BE, f_TE, f_TN, f_BN, f_TNE, f_TNW, f_TSE, f_TSW, f_ZERO; + real x_E, x_N, x_T, x_NE, x_SE, x_BE, x_TE, x_TN, x_BN, x_TNE, x_TNW, x_TSE, x_TSW, x_ZERO; + real y_E, y_N, y_T, y_NE, y_SE, y_BE, y_TE, y_TN, y_BN, y_TNE, y_TNW, y_TSE, y_TSW, y_ZERO; + real z_E, z_N, z_T, z_NE, z_SE, z_BE, z_TE, z_TN, z_BN, z_TNE, z_TNW, z_TSE, z_TSW, z_ZERO; + real xy_E, xy_N, xy_T, xy_NE, xy_SE, xy_BE, xy_TE, xy_TN, xy_BN, xy_TNE, xy_TNW, xy_TSE, xy_TSW/*, xy_ZERO*/; + real xz_E, xz_N, xz_T, xz_NE, xz_SE, xz_BE, xz_TE, xz_TN, xz_BN, xz_TNE, xz_TNW, xz_TSE, xz_TSW/*, xz_ZERO*/; + real yz_E, yz_N, yz_T, yz_NE, yz_SE, yz_BE, yz_TE, yz_TN, yz_BN, yz_TNE, yz_TNW, yz_TSE, yz_TSW/*, yz_ZERO*/; - LBMReal kxyAverage, kyzAverage, kxzAverage, kxxMyyAverage, kxxMzzAverage; + real kxyAverage, kyzAverage, kxzAverage, kxxMyyAverage, kxxMzzAverage; // LBMReal a,b,c; - void setOffsets(LBMReal xoff, LBMReal yoff, LBMReal zoff) override; - void calcMoments(const LBMReal* const f, LBMReal omega, LBMReal& rho, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3, - LBMReal& kxy, LBMReal& kyz, LBMReal& kxz, LBMReal& kxxMyy, LBMReal& kxxMzz); - void calcInterpolatedCoefficiets(const D3Q27ICell& icell, LBMReal omega, LBMReal eps_new) override; - void calcInterpolatedNode(LBMReal* f, LBMReal omega, LBMReal x, LBMReal y, LBMReal z, LBMReal press, LBMReal xs, LBMReal ys, LBMReal zs); - LBMReal calcPressBSW(); - LBMReal calcPressTSW(); - LBMReal calcPressTSE(); - LBMReal calcPressBSE(); - LBMReal calcPressBNW(); - LBMReal calcPressTNW(); - LBMReal calcPressTNE(); - LBMReal calcPressBNE(); - void calcInterpolatedNodeFC(LBMReal* f, LBMReal omega) override; - void calcInterpolatedVelocity(LBMReal x, LBMReal y, LBMReal z,LBMReal& vx1, LBMReal& vx2, LBMReal& vx3) override; - void calcInterpolatedShearStress(LBMReal x, LBMReal y, LBMReal z,LBMReal& tauxx, LBMReal& tauyy, LBMReal& tauzz,LBMReal& tauxy, LBMReal& tauxz, LBMReal& tauyz) override; + void setOffsets(real xoff, real yoff, real zoff) override; + void calcMoments(const real* const f, real omega, real& rho, real& vx1, real& vx2, real& vx3, + real& kxy, real& kyz, real& kxz, real& kxxMyy, real& kxxMzz); + void calcInterpolatedCoefficiets(const D3Q27ICell& icell, real omega, real eps_new) override; + void calcInterpolatedNode(real* f, real omega, real x, real y, real z, real press, real xs, real ys, real zs); + real calcPressBSW(); + real calcPressTSW(); + real calcPressTSE(); + real calcPressBSE(); + real calcPressBNW(); + real calcPressTNW(); + real calcPressTNE(); + real calcPressBNE(); + void calcInterpolatedNodeFC(real* f, real omega) override; + void calcInterpolatedVelocity(real x, real y, real z,real& vx1, real& vx2, real& vx3) override; + void calcInterpolatedShearStress(real x, real y, real z,real& tauxx, real& tauyy, real& tauzz,real& tauxy, real& tauxz, real& tauyz) override; }; ////////////////////////////////////////////////////////////////////////// @@ -69,7 +69,7 @@ inline void IncompressibleOffsetInterpolationProcessor::interpolateCoarseToFine( this->interpolateCoarseToFine(icellC, icellF, 0.0, 0.0, 0.0); } ////////////////////////////////////////////////////////////////////////// -inline void IncompressibleOffsetInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC) +inline void IncompressibleOffsetInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC) { this->interpolateFineToCoarse(icellF, icellC, 0.0, 0.0, 0.0); } diff --git a/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp index 613443942..ff962c6de 100644 --- a/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.cpp @@ -39,7 +39,7 @@ SPtr<LBMKernel> InitDensityLBMKernel::clone() return kernel; } -void InitDensityLBMKernel::setVelocity(int x1, int x2, int x3, LBMReal vvx, LBMReal vvy, LBMReal vvz) +void InitDensityLBMKernel::setVelocity(int x1, int x2, int x3, real vvx, real vvy, real vvz) { v(0, x1, x2, x3) = vvx; v(1, x1, x2, x3) = vvy; @@ -864,9 +864,9 @@ void InitDensityLBMKernel::calculate(int /*step*/) SPtr<BCArray3D> bcArray = this->getBCProcessor()->getBCArray(); SPtr<BoundaryConditions> bcPtr; - LBMReal f[D3Q27System::ENDF+1]; - LBMReal feq[D3Q27System::ENDF+1]; - LBMReal drho, vx1, vx2, vx3; + real f[D3Q27System::ENDF+1]; + real feq[D3Q27System::ENDF+1]; + real drho, vx1, vx2, vx3; const int bcArrayMaxX1 = (int)bcArray->getNX1(); const int bcArrayMaxX2 = (int)bcArray->getNX2(); const int bcArrayMaxX3 = (int)bcArray->getNX3(); @@ -955,7 +955,7 @@ void InitDensityLBMKernel::calculate(int /*step*/) //vx2 = vx2+(vvy-vx2); //vx3 = vx3+(vvz-vx3); - LBMReal cu_sq = 1.5*(vx1*vx1+vx2*vx2+vx3*vx3); + 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); @@ -1017,11 +1017,11 @@ void InitDensityLBMKernel::calculate(int /*step*/) ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal rho_post = f[REST]+f[DIR_P00]+f[W]+f[N]+f[S]+f[T]+f[B] + real rho_post = f[REST]+f[DIR_P00]+f[W]+f[N]+f[S]+f[T]+f[B] +f[NE]+f[SW]+f[SE]+f[NW]+f[TE]+f[BW]+f[BE] +f[TW]+f[TN]+f[BS]+f[BN]+f[TS]+f[TNE]+f[TSW] +f[TSE]+f[TNW]+f[BNE]+f[BSW]+f[BSE]+f[BNW]; - LBMReal dif = drho-rho_post; + real dif = drho-rho_post; #ifdef SINGLEPRECISION if (dif>10.0E-7||dif<-10.0E-7) #else diff --git a/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.h index 71833e246..fc4c08fa0 100644 --- a/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/InitDensityLBMKernel.h @@ -14,17 +14,17 @@ public: ~InitDensityLBMKernel() override; void calculate(int step) override; SPtr<LBMKernel> clone() override; - void setVelocity(int x1, int x2, int x3, LBMReal vvx, LBMReal vvy, LBMReal vvz); + void setVelocity(int x1, int x2, int x3, real vvx, real vvy, real vvz); double getCalculationTime() override; protected: void initDataSet(); private: -// LBMReal f[D3Q27System::ENDF+1]; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; +// real f[D3Q27System::ENDF+1]; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions; // LBMReal OxyyMxzz; - CbArray4D<LBMReal, IndexerX4X3X2X1> v; + CbArray4D<real, IndexerX4X3X2X1> v; }; #endif // InitDensityLBMKernel_h__ diff --git a/src/cpu/VirtualFluidsCore/LBM/InterpolationHelper.cpp b/src/cpu/VirtualFluidsCore/LBM/InterpolationHelper.cpp index efe2c8e7c..3dce521f8 100644 --- a/src/cpu/VirtualFluidsCore/LBM/InterpolationHelper.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/InterpolationHelper.cpp @@ -4,15 +4,15 @@ InterpolationHelper::InterpolationHelper(InterpolationProcessorPtr iProcessor) : ////////////////////////////////////////////////////////////////////////// InterpolationHelper::~InterpolationHelper() = default; ////////////////////////////////////////////////////////////////////////// -void InterpolationHelper::interpolate8to1(D3Q27ICell &icellF, LBMReal *icellC, double /*x1*/, double /*x2*/, - double /*x3*/, LBMReal omega) +void InterpolationHelper::interpolate8to1(D3Q27ICell &icellF, real *icellC, double /*x1*/, double /*x2*/, + double /*x3*/, real omega) { iProcessor->calcInterpolatedCoefficiets(icellF, omega, 1.0); iProcessor->calcInterpolatedNodeFC(icellC, omega); } ////////////////////////////////////////////////////////////////////////// void InterpolationHelper::interpolate8to1WithVelocity(D3Q27ICell &icellF, double x1, double x2, double x3, - LBMReal omega, LBMReal &vx1, LBMReal &vx2, LBMReal &vx3) + real omega, real &vx1, real &vx2, real &vx3) { iProcessor->setOffsets(0.0, 0.0, 0.0); iProcessor->calcInterpolatedCoefficiets(icellF, omega, 0.0); @@ -20,10 +20,10 @@ void InterpolationHelper::interpolate8to1WithVelocity(D3Q27ICell &icellF, double } ////////////////////////////////////////////////////////////////////////// void InterpolationHelper::interpolate8to1WithVelocityWithShearStress(D3Q27ICell &icellF, double x1, double x2, - double x3, LBMReal omega, LBMReal &vx1, - LBMReal &vx2, LBMReal &vx3, LBMReal &tauxx, - LBMReal &tauyy, LBMReal &tauzz, LBMReal &tauxy, - LBMReal &tauxz, LBMReal &tauyz) + double x3, real omega, real &vx1, + real &vx2, real &vx3, real &tauxx, + real &tauyy, real &tauzz, real &tauxy, + real &tauxz, real &tauyz) { iProcessor->setOffsets(0.0, 0.0, 0.0); iProcessor->calcInterpolatedCoefficiets(icellF, omega, 0.0); diff --git a/src/cpu/VirtualFluidsCore/LBM/InterpolationHelper.h b/src/cpu/VirtualFluidsCore/LBM/InterpolationHelper.h index 0e7318a8c..3db83ddc9 100644 --- a/src/cpu/VirtualFluidsCore/LBM/InterpolationHelper.h +++ b/src/cpu/VirtualFluidsCore/LBM/InterpolationHelper.h @@ -11,13 +11,13 @@ class InterpolationHelper public: InterpolationHelper(InterpolationProcessorPtr iProcessor); ~InterpolationHelper(); - void interpolate8to1(D3Q27ICell &icellF, LBMReal *icellC, double x1, double x2, double x3, LBMReal omega); - void interpolate8to1WithVelocity(D3Q27ICell &icellF, double x1, double x2, double x3, LBMReal omega, LBMReal &vx1, - LBMReal &vx2, LBMReal &vx3); - void interpolate8to1WithVelocityWithShearStress(D3Q27ICell &icellF, double x1, double x2, double x3, LBMReal omega, - LBMReal &vx1, LBMReal &vx2, LBMReal &vx3, LBMReal &tauxx, - LBMReal &tauyy, LBMReal &tauzz, LBMReal &tauxy, LBMReal &tauxz, - LBMReal &tauyz); + void interpolate8to1(D3Q27ICell &icellF, real *icellC, double x1, double x2, double x3, real omega); + void interpolate8to1WithVelocity(D3Q27ICell &icellF, double x1, double x2, double x3, real omega, real &vx1, + real &vx2, real &vx3); + void interpolate8to1WithVelocityWithShearStress(D3Q27ICell &icellF, double x1, double x2, double x3, real omega, + real &vx1, real &vx2, real &vx3, real &tauxx, + real &tauyy, real &tauzz, real &tauxy, real &tauxz, + real &tauyz); protected: private: diff --git a/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.cpp index 8d2a4163b..a82f397c9 100644 --- a/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.cpp @@ -41,12 +41,12 @@ void InterpolationProcessor::writeICellInv(SPtr<DistributionArray3D> f, const D3 f->setDistributionInv(icell.TNE, x1 + 1, x2 + 1, x3 + 1); } ////////////////////////////////////////////////////////////////////////// -void InterpolationProcessor::writeINode(SPtr<DistributionArray3D> f, const LBMReal *const inode, int x1, int x2, int x3) +void InterpolationProcessor::writeINode(SPtr<DistributionArray3D> f, const real *const inode, int x1, int x2, int x3) { f->setDistribution(inode, x1, x2, x3); } ////////////////////////////////////////////////////////////////////////// -void InterpolationProcessor::writeINodeInv(SPtr<DistributionArray3D> f, const LBMReal *const inode, int x1, int x2, +void InterpolationProcessor::writeINodeInv(SPtr<DistributionArray3D> f, const real *const inode, int x1, int x2, int x3) { f->setDistributionInv(inode, x1, x2, x3); @@ -65,7 +65,7 @@ bool InterpolationProcessor::iCellHasSolid(const SPtr<BCArray3D> bcArray, int x1 ////////////////////////////////////////////////////////////////////////// bool InterpolationProcessor::findNeighborICell(const SPtr<BCArray3D> bcArray, SPtr<DistributionArray3D> f, D3Q27ICell &icell, int maxX1, int maxX2, int maxX3, int x1, int x2, - int x3, LBMReal &xoff, LBMReal &yoff, LBMReal &zoff) + int x3, real &xoff, real &yoff, real &zoff) { m_maxX1 = maxX1; m_maxX2 = maxX2; diff --git a/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.h b/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.h index 627549dc9..f298a531b 100644 --- a/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.h +++ b/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.h @@ -7,14 +7,14 @@ #include "LBMSystem.h" struct D3Q27ICell { - LBMReal TSW[27]; - LBMReal TNW[27]; - LBMReal TNE[27]; - LBMReal TSE[27]; - LBMReal BSW[27]; - LBMReal BNW[27]; - LBMReal BNE[27]; - LBMReal BSE[27]; + real TSW[27]; + real TNW[27]; + real TNE[27]; + real TSE[27]; + real BSW[27]; + real BNW[27]; + real BNE[27]; + real BSE[27]; }; class InterpolationProcessor; @@ -28,34 +28,34 @@ public: InterpolationProcessor(); virtual ~InterpolationProcessor(); virtual InterpolationProcessorPtr clone() = 0; - virtual void setOmegas(LBMReal omegaC, LBMReal omegaF) = 0; + virtual void setOmegas(real omegaC, real omegaF) = 0; virtual void interpolateCoarseToFine(D3Q27ICell &icellC, D3Q27ICell &icellF) = 0; - virtual void interpolateCoarseToFine(D3Q27ICell &icellC, D3Q27ICell &icellF, LBMReal xoff, LBMReal yoff, - LBMReal zoff) = 0; - virtual void interpolateFineToCoarse(D3Q27ICell &icellF, LBMReal *icellC) = 0; - virtual void interpolateFineToCoarse(D3Q27ICell &icellF, LBMReal *icellC, LBMReal xoff, LBMReal yoff, - LBMReal zoff) = 0; + virtual void interpolateCoarseToFine(D3Q27ICell &icellC, D3Q27ICell &icellF, real xoff, real yoff, + real zoff) = 0; + virtual void interpolateFineToCoarse(D3Q27ICell &icellF, real *icellC) = 0; + virtual void interpolateFineToCoarse(D3Q27ICell &icellF, real *icellC, real xoff, real yoff, + real zoff) = 0; static void readICell(SPtr<DistributionArray3D> f, D3Q27ICell &icell, int x1, int x2, int x3); static void writeICell(SPtr<DistributionArray3D> f, const D3Q27ICell &icell, int x1, int x2, int x3); static void writeICellInv(SPtr<DistributionArray3D> f, const D3Q27ICell &icell, int x1, int x2, int x3); - static void writeINode(SPtr<DistributionArray3D> f, const LBMReal *const inode, int x1, int x2, int x3); - static void writeINodeInv(SPtr<DistributionArray3D> f, const LBMReal *const inode, int x1, int x2, int x3); + static void writeINode(SPtr<DistributionArray3D> f, const real *const inode, int x1, int x2, int x3); + static void writeINodeInv(SPtr<DistributionArray3D> f, const real *const inode, int x1, int x2, int x3); static bool iCellHasSolid(const SPtr<BCArray3D> bcArray, int x1, int x2, int x3); static int iCellHowManySolids(const SPtr<BCArray3D> bcArray, int x1, int x2, int x3); bool findNeighborICell(const SPtr<BCArray3D> bcArray, SPtr<DistributionArray3D> f, D3Q27ICell &icell, int maxX1, - int maxX2, int maxX3, int x1, int x2, int x3, LBMReal &xoff, LBMReal &yoff, LBMReal &zoff); + int maxX2, int maxX3, int x1, int x2, int x3, real &xoff, real &yoff, real &zoff); protected: - virtual void calcInterpolatedCoefficiets(const D3Q27ICell &icell, LBMReal omega, LBMReal eps_new) {} - virtual void calcInterpolatedNodeFC(LBMReal *f, LBMReal omega) {} - virtual void calcInterpolatedVelocity(LBMReal x, LBMReal y, LBMReal z, LBMReal &vx1, LBMReal &vx2, LBMReal &vx3) {} - virtual void calcInterpolatedShearStress(LBMReal x, LBMReal y, LBMReal z, LBMReal &tauxx, LBMReal &tauyy, - LBMReal &tauzz, LBMReal &tauxy, LBMReal &tauxz, LBMReal &tauyz) + virtual void calcInterpolatedCoefficiets(const D3Q27ICell &icell, real omega, real eps_new) {} + virtual void calcInterpolatedNodeFC(real *f, real omega) {} + virtual void calcInterpolatedVelocity(real x, real y, real z, real &vx1, real &vx2, real &vx3) {} + virtual void calcInterpolatedShearStress(real x, real y, real z, real &tauxx, real &tauyy, + real &tauzz, real &tauxy, real &tauxz, real &tauyz) { } - virtual void setOffsets(LBMReal xoff, LBMReal yoff, LBMReal zoff) {} + virtual void setOffsets(real xoff, real yoff, real zoff) {} friend class InterpolationHelper; private: diff --git a/src/cpu/VirtualFluidsCore/LBM/LBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/LBMKernel.cpp index 3c588e150..bf3ca4279 100644 --- a/src/cpu/VirtualFluidsCore/LBM/LBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/LBMKernel.cpp @@ -57,18 +57,18 @@ void LBMKernel::setCollisionFactor(double collFactor) { this->collFactor = collF ////////////////////////////////////////////////////////////////////////// double LBMKernel::getCollisionFactor() const { return collFactor; } ////////////////////////////////////////////////////////////////////////// -void LBMKernel::setForcingX1(LBMReal forcingX1) +void LBMKernel::setForcingX1(real forcingX1) { this->muForcingX1.SetExpr(UbSystem::toString(forcingX1, LBMRealLim::digits10)); this->checkFunction(muForcingX1); } ////////////////////////////////////////////////////////////////////////// -void LBMKernel::setForcingX2(LBMReal forcingX2) +void LBMKernel::setForcingX2(real forcingX2) { this->muForcingX2.SetExpr(UbSystem::toString(forcingX2, LBMRealLim::digits10)); this->checkFunction(muForcingX2); } -void LBMKernel::setForcingX3(LBMReal forcingX3) +void LBMKernel::setForcingX3(real forcingX3) { this->muForcingX3.SetExpr(UbSystem::toString(forcingX3, LBMRealLim::digits10)); this->checkFunction(muForcingX3); @@ -141,9 +141,9 @@ void LBMKernel::setIndex(int x1, int x2, int x3) ////////////////////////////////////////////////////////////////////////// SPtr<DataSet3D> LBMKernel::getDataSet() const { return this->dataSet; } ////////////////////////////////////////////////////////////////////////// -LBMReal LBMKernel::getDeltaT() const { return this->deltaT; } +real LBMKernel::getDeltaT() const { return this->deltaT; } ////////////////////////////////////////////////////////////////////////// -void LBMKernel::setDeltaT(LBMReal dt) { deltaT = dt; } +void LBMKernel::setDeltaT(real dt) { deltaT = dt; } ////////////////////////////////////////////////////////////////////////// bool LBMKernel::getCompressible() const { return compressible; } ////////////////////////////////////////////////////////////////////////// @@ -202,13 +202,13 @@ void LBMKernel::setDensityRatio(double densityRatio) { this->densityRatio = dens ////////////////////////////////////////////////////////////////////////// double LBMKernel::getDensityRatio() const { return densityRatio; } ////////////////////////////////////////////////////////////////////////// -void LBMKernel::setMultiphaseModelParameters(LBMReal beta, LBMReal kappa) +void LBMKernel::setMultiphaseModelParameters(real beta, real kappa) { this->beta = beta; this->kappa = kappa; } ////////////////////////////////////////////////////////////////////////// -void LBMKernel::getMultiphaseModelParameters(LBMReal &beta, LBMReal &kappa) +void LBMKernel::getMultiphaseModelParameters(real &beta, real &kappa) { beta = this->beta; kappa = this->kappa; diff --git a/src/cpu/VirtualFluidsCore/LBM/LBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/LBMKernel.h index d5eb02d4c..d0c208baf 100644 --- a/src/cpu/VirtualFluidsCore/LBM/LBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/LBMKernel.h @@ -49,7 +49,7 @@ class Block3D; class LBMKernel : public ILBMKernel, public enableSharedFromThis<LBMKernel> { public: - using LBMRealLim = std::numeric_limits<LBMReal>; + using LBMRealLim = std::numeric_limits<real>; public: LBMKernel(); @@ -71,9 +71,9 @@ public: void setDataSet(SPtr<DataSet3D> dataSet); SPtr<DataSet3D> getDataSet() const override; - void setForcingX1(LBMReal forcingX1); - void setForcingX2(LBMReal forcingX2); - void setForcingX3(LBMReal forcingX3); + void setForcingX1(real forcingX1); + void setForcingX2(real forcingX2); + void setForcingX3(real forcingX3); void setForcingX1(const mu::Parser &parser); void setForcingX2(const mu::Parser &parser); @@ -85,8 +85,8 @@ public: void setIndex(int x1, int x2, int x3); - LBMReal getDeltaT() const override; - void setDeltaT(LBMReal dt); + real getDeltaT() const override; + void setDeltaT(real dt); bool getCompressible() const override; void setCompressible(bool val); @@ -117,8 +117,8 @@ public: double getCollisionFactorG() const; void setDensityRatio(double densityRatio); double getDensityRatio() const; - void setMultiphaseModelParameters(LBMReal beta, LBMReal kappa); - void getMultiphaseModelParameters(LBMReal &beta, LBMReal &kappa); + void setMultiphaseModelParameters(real beta, real kappa); + void getMultiphaseModelParameters(real &beta, real &kappa); void setContactAngle(double contactAngle); double getContactAngle() const; void setPhiL(double phiL); @@ -133,7 +133,7 @@ public: protected: SPtr<DataSet3D> dataSet; SPtr<BCProcessor> bcProcessor; - LBMReal collFactor; + real collFactor; int ghostLayerWidth{ 1 }; bool compressible{ false }; @@ -143,7 +143,7 @@ protected: mu::Parser muForcingX2; mu::Parser muForcingX3; int ix1, ix2, ix3; - LBMReal deltaT{ 1.0 }; + real deltaT{ 1.0 }; // sponge layer bool withSpongeLayer{ false }; @@ -154,17 +154,17 @@ protected: std::array<int, 3> nx; // Multiphase model - LBMReal collFactorL; - LBMReal collFactorG; - LBMReal densityRatio; - LBMReal beta; - LBMReal kappa; - LBMReal contactAngle; - LBMReal phiL; - LBMReal phiH; - LBMReal tauH; - LBMReal mob; - LBMReal interfaceWidth { 4.0 }; + real collFactorL; + real collFactorG; + real densityRatio; + real beta; + real kappa; + real contactAngle; + real phiL; + real phiH; + real tauH; + real mob; + real interfaceWidth { 4.0 }; private: void checkFunction(mu::Parser fct); diff --git a/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp b/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp index ae0b01045..3351bd4df 100644 --- a/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.cpp @@ -61,9 +61,9 @@ void LBMKernelETD3Q27BGK::calculate(int /*step*/) zeroDistributions = std::dynamic_pointer_cast<D3Q27EsoTwist3DSplittedVector>(dataSet->getFdistributions())->getZeroDistributions(); SPtr<BCArray3D> bcArray = this->getBCProcessor()->getBCArray(); - LBMReal f[D3Q27System::ENDF+1]; - LBMReal feq[D3Q27System::ENDF+1]; - LBMReal drho,vx1,vx2,vx3; + real f[D3Q27System::ENDF+1]; + real feq[D3Q27System::ENDF+1]; + real drho,vx1,vx2,vx3; const int bcArrayMaxX1 = (int)bcArray->getNX1(); const int bcArrayMaxX2 = (int)bcArray->getNX2(); const int bcArrayMaxX3 = (int)bcArray->getNX3(); @@ -137,7 +137,7 @@ 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]; - LBMReal cu_sq=1.5*(vx1*vx1+vx2*vx2+vx3*vx3); + 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); @@ -239,11 +239,11 @@ void LBMKernelETD3Q27BGK::calculate(int /*step*/) } ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal rho_post = f[REST] + f[DIR_P00] + f[W] + f[N] + f[S] + f[T] + f[B] + real rho_post = f[REST] + f[DIR_P00] + f[W] + f[N] + f[S] + f[T] + f[B] + f[NE] + f[SW] + f[SE] + f[NW] + f[TE] + f[BW] + f[BE] + f[TW] + f[TN] + f[BS] + f[BN] + f[TS] + f[TNE] + f[TSW] + f[TSE] + f[TNW] + f[BNE] + f[BSW] + f[BSE] + f[BNW]; - LBMReal dif = drho - rho_post; + real dif = drho - rho_post; #ifdef SINGLEPRECISION if(dif > 10.0E-7 || dif < -10.0E-7) #else diff --git a/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.h b/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.h index 09e495c23..1b4e3acb2 100644 --- a/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.h +++ b/src/cpu/VirtualFluidsCore/LBM/LBMKernelETD3Q27BGK.h @@ -21,14 +21,14 @@ private: //void collideAllCompressible(); //void collideAllIncompressible(); - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributions; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributions; mu::value_type muX1,muX2,muX3; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; }; diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp index edb5ee176..0110ed863 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp @@ -112,10 +112,10 @@ void MultiphaseCumulantLBMKernel::calculate(int step) int maxX2 = bcArrayMaxX2 - ghostLayerWidth; int maxX3 = bcArrayMaxX3 - ghostLayerWidth; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField( - new CbArray3D<LBMReal, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr divU( - new CbArray3D<LBMReal, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, 0.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField( + new CbArray3D<real, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr divU( + new CbArray3D<real, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, 0.0)); for (int x3 = 0; x3 <= maxX3; x3++) { @@ -126,34 +126,34 @@ void MultiphaseCumulantLBMKernel::calculate(int step) int x2p = x2 + 1; int x3p = x3 + 1; - LBMReal mfcbb = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsH)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsH)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsH)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsH)(x1, x2, x3); + real mfcbb = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsH)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsH)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsH)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsH)(x1, x2, x3); (*phaseField)(x1, x2, x3) = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + @@ -163,8 +163,8 @@ void MultiphaseCumulantLBMKernel::calculate(int step) } } - LBMReal collFactorM; - LBMReal forcingTerm[D3Q27System::ENDF + 1]; + real collFactorM; + real forcingTerm[D3Q27System::ENDF + 1]; for (int x3 = minX3; x3 < maxX3; x3++) { for (int x2 = minX2; x2 < maxX2; x2++) { @@ -197,52 +197,52 @@ void MultiphaseCumulantLBMKernel::calculate(int step) findNeighbors(phaseField, x1, x2, x3); - LBMReal mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0 / densityRatio; - - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - - LBMReal dX1_phi = gradX1_phi(); - LBMReal dX2_phi = gradX2_phi(); - LBMReal dX3_phi = gradX3_phi(); - - LBMReal denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9; + real mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); + + real rhoH = 1.0; + real rhoL = 1.0 / densityRatio; + + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + + real dX1_phi = gradX1_phi(); + real dX2_phi = gradX2_phi(); + real dX3_phi = gradX3_phi(); + + real denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9; collFactorM = collFactorL + (collFactorL - collFactorG) * (phi[DIR_000] - phiH) / (phiH - phiL); - LBMReal mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); + real mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); //----------- Calculating Macroscopic Values ------------- - LBMReal rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); + real rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); if (withForcing) { // muX1 = static_cast<double>(x1-1+ix1*maxX1); @@ -259,7 +259,7 @@ void MultiphaseCumulantLBMKernel::calculate(int step) forcingX2 = muForcingX2.Eval(); forcingX3 = muForcingX3.Eval(); - LBMReal rho_m = 1.0 / densityRatio; + real rho_m = 1.0 / densityRatio; forcingX1 = forcingX1 * (rho - rho_m); forcingX2 = forcingX2 * (rho - rho_m); forcingX3 = forcingX3 * (rho - rho_m); @@ -269,19 +269,19 @@ void MultiphaseCumulantLBMKernel::calculate(int step) // uz += forcingX3*deltaT*0.5; // Z } - LBMReal ux = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real ux = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)) / (rho * c1o3) + (mu * dX1_phi + forcingX1) / (2 * rho); - LBMReal uy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real uy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)) / (rho * c1o3) + (mu * dX2_phi + forcingX2) / (2 * rho); - LBMReal uz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real uz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)) / (rho * c1o3) + @@ -289,17 +289,17 @@ void MultiphaseCumulantLBMKernel::calculate(int step) //-------------------------------------------------------- - LBMReal ux2 = ux * ux; - LBMReal uy2 = uy * uy; - LBMReal uz2 = uz * uz; + real ux2 = ux * ux; + real uy2 = uy * uy; + real uz2 = uz * uz; //----------- Calculating Forcing Terms * ------------- for (int dir = FSTARTDIR; dir <= FENDDIR; dir++) { - LBMReal velProd = DX1[dir] * ux + DX2[dir] * uy + DX3[dir] * uz; - LBMReal velSq1 = velProd * velProd; - LBMReal gamma = WEIGTH[dir] * (1.0 + 3 * velProd + 4.5 * velSq1 - 1.5 * (ux2 + uy2 + uz2)); + real velProd = DX1[dir] * ux + DX2[dir] * uy + DX3[dir] * uz; + real velSq1 = velProd * velProd; + real gamma = WEIGTH[dir] * (1.0 + 3 * velProd + 4.5 * velSq1 - 1.5 * (ux2 + uy2 + uz2)); - LBMReal fac1 = (gamma - WEIGTH[dir]) * c1o3 * rhoToPhi; + real fac1 = (gamma - WEIGTH[dir]) * c1o3 * rhoToPhi; forcingTerm[dir] = ((-ux) * (fac1 * dX1_phi + gamma * (mu * dX1_phi + forcingX1)) + (-uy) * (fac1 * dX2_phi + gamma * (mu * dX2_phi + forcingX2)) + @@ -309,8 +309,8 @@ void MultiphaseCumulantLBMKernel::calculate(int step) (DX3[dir]) * (fac1 * dX3_phi + gamma * (mu * dX3_phi + forcingX3)); } - LBMReal gamma = WEIGTH[DIR_000] * (1.0 - 1.5 * (ux2 + uy2 + uz2)); - LBMReal fac1 = (gamma - WEIGTH[DIR_000]) * c1o3 * rhoToPhi; + real gamma = WEIGTH[DIR_000] * (1.0 - 1.5 * (ux2 + uy2 + uz2)); + real fac1 = (gamma - WEIGTH[DIR_000]) * c1o3 * rhoToPhi; forcingTerm[DIR_000] = (-ux) * (fac1 * dX1_phi + gamma * (mu * dX1_phi + forcingX1)) + (-uy) * (fac1 * dX2_phi + gamma * (mu * dX2_phi + forcingX2)) + (-uz) * (fac1 * dX3_phi + gamma * (mu * dX3_phi + forcingX3)); @@ -345,13 +345,13 @@ void MultiphaseCumulantLBMKernel::calculate(int step) mfcca = 3.0 * (mfcca + 0.5 * forcingTerm[DIR_PPM]) / rho; //-(3.0*p1 - rho)*WEIGTH[BNE]; mfbbb = 3.0 * (mfbbb + 0.5 * forcingTerm[DIR_000]) / rho; //- (3.0*p1 - rho)*WEIGTH[REST]; - LBMReal rho1 = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + + real rho1 = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal oMdrho, m0, m1, m2; + real oMdrho, m0, m1, m2; oMdrho = mfccc + mfaaa; m0 = mfaca + mfcac; @@ -381,8 +381,8 @@ void MultiphaseCumulantLBMKernel::calculate(int step) // oMdrho = rho - (oMdrho + m0); //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// // Hin //////////////////////////////////////////////////////////////////////////////////// @@ -613,41 +613,41 @@ void MultiphaseCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // Cumulants //////////////////////////////////////////////////////////////////////////////////// - LBMReal OxxPyyPzz = 1.; // omega2 or bulk viscosity - LBMReal OxyyPxzz = 1.; //-s9;//2+s9;// - LBMReal OxyyMxzz = 1.; // 2+s9;// - LBMReal O4 = 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + 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.; // Cum 4. - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + + real CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho); - LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + + real CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho); - LBMReal CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + + real CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho); // Cum 5. - LBMReal CUMbcc = mfbcc - + real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - + real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal CUMccb = mfccb - + real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + 4. * mfbba * mfbbb + 2. * (mfbab * mfbca + mfabb * mfcba)) - c1o3 * (mfacb + mfcab) * oMdrho; // Cum 6. - LBMReal CUMccc = + real CUMccc = mfccc + ((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - @@ -664,13 +664,13 @@ void MultiphaseCumulantLBMKernel::calculate(int step) // 2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; - LBMReal dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); - LBMReal dyuy = dxux + collFactorM * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactorM * c3o2 * mxxMzz; + real dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); + real dyuy = dxux + collFactorM * c3o2 * mxxMyy; + real dzuz = dxux + collFactorM * c3o2 * mxxMzz; (*divU)(x1, x2, x3) = dxux + dyuy + dzuz; @@ -691,14 +691,14 @@ void MultiphaseCumulantLBMKernel::calculate(int step) // 3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; // relax wadjust = OxyyMxzz + (1. - OxyyMxzz) * fabs(mfbbb) / (fabs(mfbbb) + qudricLimit); @@ -1005,12 +1005,12 @@ void MultiphaseCumulantLBMKernel::calculate(int step) // proof correctness ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + + real rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal dif = rho1 - rho_post; + real dif = rho1 - rho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) #else @@ -1123,13 +1123,13 @@ void MultiphaseCumulantLBMKernel::calculate(int step) h[DIR_000] = (*this->zeroDistributionsH)(x1, x2, x3); for (int dir = STARTF; dir < (ENDF + 1); dir++) { - LBMReal velProd = DX1[dir] * ux + DX2[dir] * uy + DX3[dir] * uz; - LBMReal velSq1 = velProd * velProd; - LBMReal hEq; //, gEq; + real velProd = DX1[dir] * ux + DX2[dir] * uy + DX3[dir] * uz; + real velSq1 = velProd * velProd; + real hEq; //, gEq; if (dir != DIR_000) { - LBMReal dirGrad_phi = (phi[dir] - phi[INVDIR[dir]]) / 2.0; - LBMReal hSource = (tauH - 0.5) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * (dirGrad_phi) / denom; + real dirGrad_phi = (phi[dir] - phi[INVDIR[dir]]) / 2.0; + real hSource = (tauH - 0.5) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * (dirGrad_phi) / denom; hEq = phi[DIR_000] * WEIGTH[dir] * (1.0 + 3.0 * velProd + 4.5 * velSq1 - 1.5 * (ux2 + uy2 + uz2)) + hSource * WEIGTH[dir]; // This corresponds with the collision factor of 1.0 which equals (tauH + 0.5). @@ -1181,42 +1181,42 @@ void MultiphaseCumulantLBMKernel::calculate(int step) ////////////////////////////////////////////////////////////////////////// -LBMReal MultiphaseCumulantLBMKernel::gradX1_phi() +real MultiphaseCumulantLBMKernel::gradX1_phi() { using namespace D3Q27System; - LBMReal sum = 0.0; + real sum = 0.0; for (int k = FSTARTDIR; k <= FENDDIR; k++) { sum += WEIGTH[k] * DX1[k] * phi[k]; } return 3.0 * sum; } -LBMReal MultiphaseCumulantLBMKernel::gradX2_phi() +real MultiphaseCumulantLBMKernel::gradX2_phi() { using namespace D3Q27System; - LBMReal sum = 0.0; + real sum = 0.0; for (int k = FSTARTDIR; k <= FENDDIR; k++) { sum += WEIGTH[k] * DX2[k] * phi[k]; } return 3.0 * sum; } -LBMReal MultiphaseCumulantLBMKernel::gradX3_phi() +real MultiphaseCumulantLBMKernel::gradX3_phi() { using namespace D3Q27System; - LBMReal sum = 0.0; + real sum = 0.0; for (int k = FSTARTDIR; k <= FENDDIR; k++) { sum += WEIGTH[k] * DX3[k] * phi[k]; } return 3.0 * sum; } -LBMReal MultiphaseCumulantLBMKernel::nabla2_phi() +real MultiphaseCumulantLBMKernel::nabla2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal sum = 0.0; + real sum = 0.0; for (int k = FSTARTDIR; k <= FENDDIR; k++) { sum += WEIGTH[k] * (phi[k] - phi[DIR_000]); } @@ -1282,7 +1282,7 @@ void MultiphaseCumulantLBMKernel::computePhasefield() } } -void MultiphaseCumulantLBMKernel::findNeighbors(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, +void MultiphaseCumulantLBMKernel::findNeighbors(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3) { using namespace D3Q27System; diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.h index fdc47f340..1b3013880 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.h @@ -55,46 +55,46 @@ public: protected: virtual void initDataSet(); void swapDistributions() override; - LBMReal f1[D3Q27System::ENDF+1]; + real f1[D3Q27System::ENDF+1]; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH; //CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr phaseField; - LBMReal h [D3Q27System::ENDF+1]; - LBMReal g [D3Q27System::ENDF+1]; - LBMReal phi[D3Q27System::ENDF+1]; - LBMReal pr1[D3Q27System::ENDF+1]; - LBMReal phi_cutoff[D3Q27System::ENDF+1]; + real h [D3Q27System::ENDF+1]; + real g [D3Q27System::ENDF+1]; + real phi[D3Q27System::ENDF+1]; + real pr1[D3Q27System::ENDF+1]; + real phi_cutoff[D3Q27System::ENDF+1]; - LBMReal gradX1_phi(); - LBMReal gradX2_phi(); - LBMReal gradX3_phi(); + real gradX1_phi(); + real gradX2_phi(); + real gradX3_phi(); //LBMReal gradX1_pr1(); //LBMReal gradX2_pr1(); //LBMReal gradX3_pr1(); //LBMReal dirgradC_phi(int n, int k); void computePhasefield(); - void findNeighbors(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); + void findNeighbors(CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); //void findNeighbors(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf /*Pressure-Field*/, int x1, int x2, int x3); //void pressureFiltering(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf /*Pressure-Field*/, CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf_filtered /*Pressure-Field*/); - LBMReal nabla2_phi(); + real nabla2_phi(); mu::value_type muX1,muX2,muX3; mu::value_type muDeltaT; mu::value_type muNu; mu::value_type muRho; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; }; #endif diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp index 5e08ca6ef..63f2c1802 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp @@ -51,16 +51,16 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::initDataSet() SPtr<DistributionArray3D> h(new D3Q27EsoTwist3DSplittedVector( nx[0] + 4, nx[1] + 4, nx[2] + 4, -999.9)); // For phase-field SPtr<PhaseFieldArray3D> divU1(new PhaseFieldArray3D( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressure(new CbArray3D<LBMReal, IndexerX3X2X1>( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); - pressureOld = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressure(new CbArray3D<real, IndexerX3X2X1>( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + pressureOld = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); dataSet->setFdistributions(f); dataSet->setHdistributions(h); // For phase-field dataSet->setPhaseField(divU1); dataSet->setPressureField(pressure); - phaseField = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, -999.0)); + phaseField = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, -999.0)); - divU = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + divU = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); } ////////////////////////////////////////////////////////////////////////// SPtr<LBMKernel> MultiphasePressureFilterCompressibleAirLBMKernel::clone() @@ -91,11 +91,11 @@ SPtr<LBMKernel> MultiphasePressureFilterCompressibleAirLBMKernel::clone() return kernel; } ////////////////////////////////////////////////////////////////////////// -void MultiphasePressureFilterCompressibleAirLBMKernel::forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { +void MultiphasePressureFilterCompressibleAirLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m2 = mfa + mfc; - LBMReal m1 = mfc - mfa; - LBMReal m0 = m2 + mfb; + real m2 = mfa + mfc; + real m1 = mfc - mfa; + real m0 = m2 + mfb; mfa = m0; m0 *= Kinverse; m0 += oneMinusRho; @@ -104,10 +104,10 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::forwardInverseChimeraWit } //////////////////////////////////////////////////////////////////////////////// -void MultiphasePressureFilterCompressibleAirLBMKernel::backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { +void MultiphasePressureFilterCompressibleAirLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; - LBMReal m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; + real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; + real m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; mfc = (((mfc + mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 + vv) * c1o2) * K; mfa = m0; mfb = m1; @@ -115,20 +115,20 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::backwardInverseChimeraWi //////////////////////////////////////////////////////////////////////////////// -void MultiphasePressureFilterCompressibleAirLBMKernel::forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { +void MultiphasePressureFilterCompressibleAirLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal m1 = (mfa + mfc) + mfb; - LBMReal m2 = mfc - mfa; + real m1 = (mfa + mfc) + mfb; + real m2 = mfc - mfa; mfc = (mfc + mfa) + (v2 * m1 - c2 * vv * m2); mfb = m2 - vv * m1; mfa = m1; } -void MultiphasePressureFilterCompressibleAirLBMKernel::backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { +void MultiphasePressureFilterCompressibleAirLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); - LBMReal mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; + real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); + real mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; mfc = (mfc + mfa * (v2 + vv)) * c1o2 + mfb * (vv + c1o2); mfb = mb; mfa = ma; @@ -145,7 +145,7 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) forcingX2 = 0.0; forcingX3 = 0.0; - LBMReal oneOverInterfaceScale = c4 / interfaceWidth; //1.0;//1.5; + real oneOverInterfaceScale = c4 / interfaceWidth; //1.0;//1.5; ///////////////////////////////////// localDistributionsF = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getFdistributions())->getLocalDistributions(); @@ -156,7 +156,7 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) nonLocalDistributionsH1 = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getHdistributions())->getNonLocalDistributions(); zeroDistributionsH1 = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getHdistributions())->getZeroDistributions(); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressure = dataSet->getPressureField(); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressure = dataSet->getPressureField(); SPtr<BCArray3D> bcArray = this->getBCProcessor()->getBCArray(); @@ -179,34 +179,34 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) int x2p = x2 + 1; int x3p = x3 + 1; - LBMReal mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsH1)(x1, x2, x3); + real mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsH1)(x1, x2, x3); (*phaseField)(x1, x2, x3) = (((mfaaa + mfccc) + (mfaca + mfcac)) + ((mfaac + mfcca) + (mfcaa + mfacc)) ) + (((mfaab + mfacb) + (mfcab + mfccb)) + ((mfaba + mfabc) + (mfcba + mfcbc)) + ((mfbaa + mfbac) + (mfbca + mfbcc))) + ((mfabb + mfcbb) + @@ -243,16 +243,16 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0 / densityRatio; + real rhoH = 1.0; + real rhoL = 1.0 / densityRatio; - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - LBMReal drho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real drho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal rho = rhoH + rhoToPhi * ((*phaseField)(x1, x2, x3) - phiH); //Incompressible + real rho = rhoH + rhoToPhi * ((*phaseField)(x1, x2, x3) - phiH); //Incompressible //LBMReal rho = rhoH + rhoToPhi * ((*pressure)(x1, x2, x3) - phiH); //wrong? //! variable density -> TRANSFER! //LBMReal rho = rhoH * ((*phaseField)(x1, x2, x3)) + rhoL * ((*phaseField2)(x1, x2, x3)); @@ -267,7 +267,7 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) } } - LBMReal collFactorM; + real collFactorM; ////Periodic Filter for (int x3 = minX3-1; x3 <= maxX3; x3++) { @@ -275,7 +275,7 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) for (int x1 = minX1-1; x1 <= maxX1; x1++) { if (!bcArray->isSolid(x1, x2, x3) && !bcArray->isUndefined(x1, x2, x3)) { - LBMReal sum = 0.; + real sum = 0.; ///Version for boundaries for (int xx = -1; xx <= 1; xx++) { @@ -339,76 +339,76 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) findNeighbors(phaseField, x1, x2, x3); - LBMReal mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0 / densityRatio; - - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - - LBMReal dX1_phi = gradX1_phi(); - LBMReal dX2_phi = gradX2_phi(); - LBMReal dX3_phi = gradX3_phi(); - - LBMReal denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9; - LBMReal normX1 = dX1_phi / denom; - LBMReal normX2 = dX2_phi / denom; - LBMReal normX3 = dX3_phi / denom; + real mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); + + real rhoH = 1.0; + real rhoL = 1.0 / densityRatio; + + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + + real dX1_phi = gradX1_phi(); + real dX2_phi = gradX2_phi(); + real dX3_phi = gradX3_phi(); + + real denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9; + real normX1 = dX1_phi / denom; + real normX2 = dX2_phi / denom; + real normX3 = dX3_phi / denom; collFactorM = collFactorL + (collFactorL - collFactorG) * (phi[DIR_000] - phiH) / (phiH - phiL); - LBMReal mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); + real mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); //----------- Calculating Macroscopic Values ------------- - LBMReal rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); //Incompressible + real rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); //Incompressible //LBMReal rho = rhoL + (rhoH - rhoL) * phi[REST] + (one - phi[REST]) * (*pressure)(x1, x2, x3) * three; //compressible - LBMReal m0, m1, m2; - LBMReal rhoRef=c1; + real m0, m1, m2; + real rhoRef=c1; - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb))/rhoRef; - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab))/rhoRef; - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba))/rhoRef; - LBMReal gradPx = 0.0; - LBMReal gradPy = 0.0; - LBMReal gradPz = 0.0; + real gradPx = 0.0; + real gradPy = 0.0; + real gradPz = 0.0; for (int dir1 = -1; dir1 <= 1; dir1++) { for (int dir2 = -1; dir2 <= 1; dir2++) { int yyy = x2 + dir1; @@ -458,7 +458,7 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) } //Viscosity increase by pressure gradient - LBMReal errPhi = (((1.0 - phi[DIR_000]) * (phi[DIR_000]) * oneOverInterfaceScale)- denom); + real errPhi = (((1.0 - phi[DIR_000]) * (phi[DIR_000]) * oneOverInterfaceScale)- denom); //LBMReal limVis = 0.0000001*10;//0.01; // collFactorM =collFactorM/(c1+limVis*(errPhi*errPhi)*collFactorM); // collFactorM = (collFactorM < 1.8) ? 1.8 : collFactorM; @@ -484,14 +484,14 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) vvy += mu * dX2_phi * c1o2 / rho ; vvz += mu * dX3_phi * c1o2 / rho; - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2 = vvx * vvx; vy2 = vvy * vvy; vz2 = vvz * vvz; /////////////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho; + real oMdrho; oMdrho = mfccc + mfaaa; @@ -521,8 +521,8 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) oMdrho = (rhoRef - (oMdrho + m0))/rhoRef;// 12.03.21 check derivation!!!! //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -755,21 +755,21 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // mfaaa = 0.0; - LBMReal OxxPyyPzz = 1.; //omega2 or bulk viscosity + real OxxPyyPzz = 1.; //omega2 or bulk viscosity // LBMReal OxyyPxzz = 1.;//-s9;//2+s9;// // LBMReal OxyyMxzz = 1.;//2+s9;// - LBMReal O4 = 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + real O4 = 1.; + real O5 = 1.; + real O6 = 1.; /////fourth order parameters; here only for test. Move out of loop! - LBMReal OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); - LBMReal OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); + real OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); + real OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); // LBMReal Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); - LBMReal A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) - LBMReal BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //Cum 4. @@ -777,21 +777,21 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) //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 - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); //Cum 5. - LBMReal CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal 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 + 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; //Cum 6. - LBMReal CUMccc = mfccc + ((-4. * mfbbb * mfbbb + real CUMccc = mfccc + ((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) @@ -805,21 +805,21 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; // LBMReal mfaaaS = (mfaaa * (-4 - 3 * OxxPyyPzz * (-1 + rho)) + 6 * mxxPyyPzz * OxxPyyPzz * (-1 + rho)) / (-4 + 3 * OxxPyyPzz * (-1 + rho)); mxxPyyPzz -= mfaaa ;//12.03.21 shifted by mfaaa //mxxPyyPzz-=(mfaaa+mfaaaS)*c1o2;//12.03.21 shifted by mfaaa - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; - LBMReal dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz); - LBMReal dyuy = dxux + collFactorM * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactorM * c3o2 * mxxMzz; + real dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz); + real dyuy = dxux + collFactorM * c3o2 * mxxMyy; + real dzuz = dxux + collFactorM * c3o2 * mxxMzz; - LBMReal Dxy = -three * collFactorM * mfbba; - LBMReal Dxz = -three * collFactorM * mfbab; - LBMReal Dyz = -three * collFactorM * mfabb; + real Dxy = -three * collFactorM * mfbba; + real Dxz = -three * collFactorM * mfbab; + real Dyz = -three * collFactorM * mfabb; //relax mxxPyyPzz += OxxPyyPzz * (/*mfaaa*/ - mxxPyyPzz) - 3. * (1. - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); @@ -846,14 +846,14 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //relax wadjust = OxyyMxzz + (1. - OxyyMxzz) * fabs(mfbbb) / (fabs(mfbbb) + qudricLimit); @@ -1153,7 +1153,7 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// //#ifdef PROOF_CORRECTNESS - LBMReal rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; // //LBMReal dif = fabs(drho - rho_post); @@ -1212,7 +1212,7 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) ///////////////////// P H A S E - F I E L D S O L V E R //////////////////////////////////////////// /////CUMULANT PHASE-FIELD - LBMReal omegaD =1.0/( 3.0 * mob + 0.5); + real omegaD =1.0/( 3.0 * mob + 0.5); { mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); @@ -1249,31 +1249,31 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) //! //////////////////////////////////////////////////////////////////////////////////// // second component - LBMReal concentration = + real concentration = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; //////////////////////////////////////////////////////////////////////////////////// - LBMReal oneMinusRho = c1- concentration; + real oneMinusRho = c1- concentration; - LBMReal cx = + real cx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal cy = + real cy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal cz = + real cz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); //////////////////////////////////////////////////////////////////////////////////// // calculate the square of velocities for this lattice node - LBMReal cx2 = cx * cx; - LBMReal cy2 = cy * cy; - LBMReal cz2 = cz * cz; + real cx2 = cx * cx; + real cy2 = cy * cy; + real cz2 = cz * cz; //////////////////////////////////////////////////////////////////////////////////// //! - Chimera transform from well conditioned distributions to central moments as defined in Appendix J in \ref //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> @@ -1321,16 +1321,16 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) //! // linearized orthogonalization of 3rd order central moments - LBMReal Mabc = mfabc - mfaba * c1o3; - LBMReal Mbca = mfbca - mfbaa * c1o3; - LBMReal Macb = mfacb - mfaab * c1o3; - LBMReal Mcba = mfcba - mfaba * c1o3; - LBMReal Mcab = mfcab - mfaab * c1o3; - LBMReal Mbac = mfbac - mfbaa * c1o3; + real Mabc = mfabc - mfaba * c1o3; + real Mbca = mfbca - mfbaa * c1o3; + real Macb = mfacb - mfaab * c1o3; + real Mcba = mfcba - mfaba * c1o3; + real Mcab = mfcab - mfaab * c1o3; + real Mbac = mfbac - mfbaa * c1o3; // linearized orthogonalization of 5th order central moments - LBMReal Mcbc = mfcbc - mfaba * c1o9; - LBMReal Mbcc = mfbcc - mfbaa * c1o9; - LBMReal Mccb = mfccb - mfaab * c1o9; + real Mcbc = mfcbc - mfaba * c1o9; + real Mbcc = mfbcc - mfbaa * c1o9; + real Mccb = mfccb - mfaab * c1o9; // collision of 1st order moments cx = cx * (c1 - omegaD) + omegaD * vvx * concentration + @@ -1473,7 +1473,7 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::calculate(int step) } ////////////////////////////////////////////////////////////////////////// -LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX1_phi() +real MultiphasePressureFilterCompressibleAirLBMKernel::gradX1_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -1483,7 +1483,7 @@ LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX1_phi() +WEIGTH[DIR_0P0] * (phi[DIR_P00] - phi[DIR_M00])); } -LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX2_phi() +real MultiphasePressureFilterCompressibleAirLBMKernel::gradX2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -1493,7 +1493,7 @@ LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX2_phi() +WEIGTH[DIR_0P0] * (phi[DIR_0P0] - phi[DIR_0M0])); } -LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX3_phi() +real MultiphasePressureFilterCompressibleAirLBMKernel::gradX3_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -1503,7 +1503,7 @@ LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX3_phi() +WEIGTH[DIR_0P0] * (phi[DIR_00P] - phi[DIR_00M])); } -LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX1_phi2() +real MultiphasePressureFilterCompressibleAirLBMKernel::gradX1_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -1513,7 +1513,7 @@ LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX1_phi2() +WEIGTH[DIR_0P0] * (phi2[DIR_P00] - phi2[DIR_M00])); } -LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX2_phi2() +real MultiphasePressureFilterCompressibleAirLBMKernel::gradX2_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -1523,7 +1523,7 @@ LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX2_phi2() +WEIGTH[DIR_0P0] * (phi2[DIR_0P0] - phi2[DIR_0M0])); } -LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX3_phi2() +real MultiphasePressureFilterCompressibleAirLBMKernel::gradX3_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -1533,12 +1533,12 @@ LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::gradX3_phi2() +WEIGTH[DIR_0P0] * (phi2[DIR_00P] - phi2[DIR_00M])); } -LBMReal MultiphasePressureFilterCompressibleAirLBMKernel::nabla2_phi() +real MultiphasePressureFilterCompressibleAirLBMKernel::nabla2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal sum = 0.0; + real sum = 0.0; sum += WEIGTH[DIR_PPP] * ((((phi[DIR_PPP] - phi[DIR_000]) + (phi[DIR_MMM] - phi[DIR_000])) + ((phi[DIR_MMP] - phi[DIR_000]) + (phi[DIR_PPM] - phi[DIR_000]))) + (((phi[DIR_MPP] - phi[DIR_000]) + (phi[DIR_PMM] - phi[DIR_000])) + ((phi[DIR_PMP] - phi[DIR_000]) + (phi[DIR_MPM] - phi[DIR_000])))); sum += WEIGTH[DIR_0PP] * ( @@ -1614,7 +1614,7 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::computePhasefield() } } -void MultiphasePressureFilterCompressibleAirLBMKernel::findNeighbors(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, +void MultiphasePressureFilterCompressibleAirLBMKernel::findNeighbors(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3) { using namespace D3Q27System; @@ -1635,7 +1635,7 @@ void MultiphasePressureFilterCompressibleAirLBMKernel::findNeighbors(CbArray3D<L } } -void MultiphasePressureFilterCompressibleAirLBMKernel::findNeighbors2(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, +void MultiphasePressureFilterCompressibleAirLBMKernel::findNeighbors2(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3) { using namespace D3Q27System; diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.h index e15f29e04..273c081b5 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.h @@ -64,53 +64,53 @@ protected: void initForcing(); - void forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); - void backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); - - LBMReal f1[D3Q27System::ENDF+1]; - - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; - - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH1; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH1; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH1; - - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressureOld; - - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr divU; - - LBMReal h [D3Q27System::ENDF+1]; - LBMReal h2[D3Q27System::ENDF + 1]; - LBMReal g [D3Q27System::ENDF+1]; - LBMReal phi[D3Q27System::ENDF+1]; - LBMReal phi2[D3Q27System::ENDF + 1]; - LBMReal pr1[D3Q27System::ENDF+1]; - LBMReal phi_cutoff[D3Q27System::ENDF+1]; - - LBMReal gradX1_phi(); - LBMReal gradX2_phi(); - LBMReal gradX3_phi(); - LBMReal gradX1_phi2(); - LBMReal gradX2_phi2(); - LBMReal gradX3_phi2(); + void forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); + void backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); + + real f1[D3Q27System::ENDF+1]; + + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; + + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH1; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH1; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH1; + + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressureOld; + + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr divU; + + real h [D3Q27System::ENDF+1]; + real h2[D3Q27System::ENDF + 1]; + real g [D3Q27System::ENDF+1]; + real phi[D3Q27System::ENDF+1]; + real phi2[D3Q27System::ENDF + 1]; + real pr1[D3Q27System::ENDF+1]; + real phi_cutoff[D3Q27System::ENDF+1]; + + real gradX1_phi(); + real gradX2_phi(); + real gradX3_phi(); + real gradX1_phi2(); + real gradX2_phi2(); + real gradX3_phi2(); void computePhasefield(); - void findNeighbors(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); - void findNeighbors2(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3); + void findNeighbors(CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); + void findNeighbors2(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3); - LBMReal nabla2_phi(); + real nabla2_phi(); mu::value_type muX1,muX2,muX3; mu::value_type muDeltaT; mu::value_type muNu; mu::value_type muRho; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; }; #endif diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.cpp index 31e6ce1c7..d96a84c4d 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.cpp @@ -51,16 +51,16 @@ void MultiphasePressureFilterLBMKernel::initDataSet() SPtr<DistributionArray3D> h(new D3Q27EsoTwist3DSplittedVector( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); // For phase-field //SPtr<PhaseFieldArray3D> divU1(new PhaseFieldArray3D( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressure(new CbArray3D<LBMReal, IndexerX3X2X1>( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); - pressureOld = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressure(new CbArray3D<real, IndexerX3X2X1>( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + pressureOld = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); dataSet->setFdistributions(f); dataSet->setHdistributions(h); // For phase-field //dataSet->setPhaseField(divU1); dataSet->setPressureField(pressure); - phaseField = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + phaseField = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); - divU = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + divU = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); } ////////////////////////////////////////////////////////////////////////// SPtr<LBMKernel> MultiphasePressureFilterLBMKernel::clone() @@ -92,11 +92,11 @@ SPtr<LBMKernel> MultiphasePressureFilterLBMKernel::clone() return kernel; } ////////////////////////////////////////////////////////////////////////// -void MultiphasePressureFilterLBMKernel::forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { +void MultiphasePressureFilterLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m2 = mfa + mfc; - LBMReal m1 = mfc - mfa; - LBMReal m0 = m2 + mfb; + real m2 = mfa + mfc; + real m1 = mfc - mfa; + real m0 = m2 + mfb; mfa = m0; m0 *= Kinverse; m0 += oneMinusRho; @@ -105,10 +105,10 @@ void MultiphasePressureFilterLBMKernel::forwardInverseChimeraWithKincompressibl } //////////////////////////////////////////////////////////////////////////////// -void MultiphasePressureFilterLBMKernel::backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { +void MultiphasePressureFilterLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; - LBMReal m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; + real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; + real m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; mfc = (((mfc + mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 + vv) * c1o2) * K; mfa = m0; mfb = m1; @@ -116,20 +116,20 @@ void MultiphasePressureFilterLBMKernel::backwardInverseChimeraWithKincompressib //////////////////////////////////////////////////////////////////////////////// -void MultiphasePressureFilterLBMKernel::forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { +void MultiphasePressureFilterLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal m1 = (mfa + mfc) + mfb; - LBMReal m2 = mfc - mfa; + real m1 = (mfa + mfc) + mfb; + real m2 = mfc - mfa; mfc = (mfc + mfa) + (v2 * m1 - c2 * vv * m2); mfb = m2 - vv * m1; mfa = m1; } -void MultiphasePressureFilterLBMKernel::backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { +void MultiphasePressureFilterLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); - LBMReal mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; + real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); + real mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; mfc = (mfc + mfa * (v2 + vv)) * c1o2 + mfb * (vv + c1o2); mfb = mb; mfa = ma; @@ -146,7 +146,7 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) forcingX2 = 0.0; forcingX3 = 0.0; - LBMReal oneOverInterfaceScale = c4 / interfaceWidth; //1.0;//1.5; + real oneOverInterfaceScale = c4 / interfaceWidth; //1.0;//1.5; ///////////////////////////////////// localDistributionsF = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getFdistributions())->getLocalDistributions(); @@ -157,7 +157,7 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) nonLocalDistributionsH1 = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getHdistributions())->getNonLocalDistributions(); zeroDistributionsH1 = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getHdistributions())->getZeroDistributions(); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressure = dataSet->getPressureField(); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressure = dataSet->getPressureField(); SPtr<BCArray3D> bcArray = this->getBCProcessor()->getBCArray(); @@ -180,34 +180,34 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) int x2p = x2 + 1; int x3p = x3 + 1; - LBMReal mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsH1)(x1, x2, x3); + real mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsH1)(x1, x2, x3); (*phaseField)(x1, x2, x3) = (((mfaaa + mfccc) + (mfaca + mfcac)) + ((mfaac + mfcca) + (mfcaa + mfacc)) ) + (((mfaab + mfacb) + (mfcab + mfccb)) + ((mfaba + mfabc) + (mfcba + mfcbc)) + ((mfbaa + mfbac) + (mfbca + mfbcc))) + ((mfabb + mfcbb) + @@ -244,16 +244,16 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0 / densityRatio; + real rhoH = 1.0; + real rhoL = 1.0 / densityRatio; - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - LBMReal drho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real drho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal rho = rhoH + rhoToPhi * ((*phaseField)(x1, x2, x3) - phiH); + real rho = rhoH + rhoToPhi * ((*phaseField)(x1, x2, x3) - phiH); (*pressureOld)(x1, x2, x3) = (*pressure)(x1, x2, x3) + rho * c1o3 * drho; } @@ -261,7 +261,7 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) } } - LBMReal collFactorM; + real collFactorM; ////Periodic Filter for (int x3 = minX3-1; x3 <= maxX3; x3++) { @@ -269,7 +269,7 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) for (int x1 = minX1-1; x1 <= maxX1; x1++) { if (!bcArray->isSolid(x1, x2, x3) && !bcArray->isUndefined(x1, x2, x3)) { - LBMReal sum = 0.; + real sum = 0.; ///Version for boundaries for (int xx = -1; xx <= 1; xx++) { @@ -333,48 +333,48 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) findNeighbors(phaseField, x1, x2, x3); - LBMReal mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0 / densityRatio; - - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - - LBMReal dX1_phi = gradX1_phi(); - LBMReal dX2_phi = gradX2_phi(); - LBMReal dX3_phi = gradX3_phi(); - - LBMReal denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9; - LBMReal normX1 = dX1_phi / denom; - LBMReal normX2 = dX2_phi / denom; - LBMReal normX3 = dX3_phi / denom; + real mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); + + real rhoH = 1.0; + real rhoL = 1.0 / densityRatio; + + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + + real dX1_phi = gradX1_phi(); + real dX2_phi = gradX2_phi(); + real dX3_phi = gradX3_phi(); + + real denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9; + real normX1 = dX1_phi / denom; + real normX2 = dX2_phi / denom; + real normX3 = dX3_phi / denom; dX1_phi = normX1 * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * oneOverInterfaceScale; dX2_phi = normX2 * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * oneOverInterfaceScale; @@ -383,27 +383,27 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) collFactorM = collFactorL + (collFactorL - collFactorG) * (phi[DIR_000] - phiH) / (phiH - phiL); - LBMReal mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); + real mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); //----------- Calculating Macroscopic Values ------------- - LBMReal rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); + real rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); - LBMReal m0, m1, m2; - LBMReal rhoRef=c1; + real m0, m1, m2; + real rhoRef=c1; - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb))/rhoRef; - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab))/rhoRef; - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba))/rhoRef; - LBMReal gradPx = 0.0; - LBMReal gradPy = 0.0; - LBMReal gradPz = 0.0; + real gradPx = 0.0; + real gradPy = 0.0; + real gradPz = 0.0; for (int dir1 = -1; dir1 <= 1; dir1++) { for (int dir2 = -1; dir2 <= 1; dir2++) { int yyy = x2 + dir1; @@ -453,7 +453,7 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) } //Viscosity increase by pressure gradient - LBMReal errPhi = (((1.0 - phi[DIR_000]) * (phi[DIR_000]) * oneOverInterfaceScale)- denom); + real errPhi = (((1.0 - phi[DIR_000]) * (phi[DIR_000]) * oneOverInterfaceScale)- denom); //LBMReal limVis = 0.0000001*10;//0.01; // collFactorM =collFactorM/(c1+limVis*(errPhi*errPhi)*collFactorM); // collFactorM = (collFactorM < 1.8) ? 1.8 : collFactorM; @@ -484,45 +484,45 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) //vvz += mu * dX3_phi * c1o2 / rho; //Abbas - LBMReal pStar = ((((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc))) + real pStar = ((((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc))) + (((mfaab + mfccb) + (mfacb + mfcab)) + ((mfaba + mfcbc) + (mfabc + mfcba)) + ((mfbaa + mfbcc) + (mfbac + mfbca)))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb) * c1o3; - LBMReal M200 = ((((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc))) + real M200 = ((((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc))) + (((mfaab + mfccb) + (mfacb + mfcab)) + ((mfaba + mfcbc) + (mfabc + mfcba)))) + ((mfabb + mfcbb)))); - LBMReal M020 = ((((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc))) + real M020 = ((((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc))) + (((mfaab + mfccb) + (mfacb + mfcab)) + ((mfbaa + mfbcc) + (mfbac + mfbca)))) + ((mfbab + mfbcb)))); - LBMReal M002 = ((((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc))) + real M002 = ((((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc))) + (+((mfaba + mfcbc) + (mfabc + mfcba)) + ((mfbaa + mfbcc) + (mfbac + mfbca)))) + ((mfbba + mfbbc)))); - LBMReal M110 = ((((((mfaaa + mfccc) + (-mfcac - mfaca)) + ((mfaac + mfcca) + (-mfcaa - mfacc))) + real M110 = ((((((mfaaa + mfccc) + (-mfcac - mfaca)) + ((mfaac + mfcca) + (-mfcaa - mfacc))) + (((mfaab + mfccb) + (-mfacb - mfcab)))) )); - LBMReal M101 = ((((((mfaaa + mfccc) - (mfaac + mfcca)) + ((mfcac + mfaca) - (mfcaa + mfacc))) + real M101 = ((((((mfaaa + mfccc) - (mfaac + mfcca)) + ((mfcac + mfaca) - (mfcaa + mfacc))) + (((mfaba + mfcbc) + (-mfabc - mfcba)))) )); - LBMReal M011 = ((((((mfaaa + mfccc) - (mfaac + mfcca)) + ((mfcaa + mfacc) - (mfcac + mfaca))) + real M011 = ((((((mfaaa + mfccc) - (mfaac + mfcca)) + ((mfcaa + mfacc) - (mfcac + mfaca))) + (((mfbaa + mfbcc) + (-mfbac - mfbca)))) )); - LBMReal vvxI = vvx; - LBMReal vvyI = vvy; - LBMReal vvzI = vvz; + real vvxI = vvx; + real vvyI = vvy; + real vvzI = vvz; //LBMReal collFactorStore = collFactorM; //LBMReal stress; for (int iter = 0; iter < 1; iter++) { - LBMReal OxxPyyPzz = 1.0; - LBMReal mxxPyyPzz = (M200 - vvxI * vvxI) + (M020 - vvyI * vvyI) + (M002 - vvzI * vvzI); + real OxxPyyPzz = 1.0; + real mxxPyyPzz = (M200 - vvxI * vvxI) + (M020 - vvyI * vvyI) + (M002 - vvzI * vvzI); mxxPyyPzz -= c3 * pStar; - LBMReal mxxMyy = (M200 - vvxI * vvxI) - (M020 - vvyI * vvyI); - LBMReal mxxMzz = (M200 - vvxI * vvxI) - (M002 - vvzI * vvzI); - LBMReal mxy = M110 - vvxI * vvyI; - LBMReal mxz = M101 - vvxI * vvzI; - LBMReal myz = M011 - vvyI * vvzI; + real mxxMyy = (M200 - vvxI * vvxI) - (M020 - vvyI * vvyI); + real mxxMzz = (M200 - vvxI * vvxI) - (M002 - vvzI * vvzI); + real mxy = M110 - vvxI * vvyI; + real mxz = M101 - vvxI * vvzI; + real myz = M011 - vvyI * vvzI; ///////Bingham //LBMReal dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz); @@ -549,9 +549,9 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) myz *= c1 - collFactorM * c1o2; mxxPyyPzz *= c1 - OxxPyyPzz * c1o2; //mxxPyyPzz += c3o2 * pStar; - LBMReal mxx = (mxxMyy + mxxMzz + mxxPyyPzz) * c1o3; - LBMReal myy = (-c2 * mxxMyy + mxxMzz + mxxPyyPzz) * c1o3; - LBMReal mzz = (mxxMyy - c2 * mxxMzz + mxxPyyPzz) * c1o3; + real mxx = (mxxMyy + mxxMzz + mxxPyyPzz) * c1o3; + real myy = (-c2 * mxxMyy + mxxMzz + mxxPyyPzz) * c1o3; + real mzz = (mxxMyy - c2 * mxxMzz + mxxPyyPzz) * c1o3; vvxI = vvx - (mxx * dX1_phi + mxy * dX2_phi + mxz * dX3_phi) * rhoToPhi / (rho); vvyI = vvy - (mxy * dX1_phi + myy * dX2_phi + myz * dX3_phi) * rhoToPhi / (rho); vvzI = vvz - (mxz * dX1_phi + myz * dX2_phi + mzz * dX3_phi) * rhoToPhi / (rho); @@ -601,14 +601,14 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) //!Abbas - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2 = vvx * vvx; vy2 = vvy * vvy; vz2 = vvz * vvz; /////////////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho; + real oMdrho; oMdrho = mfccc + mfaaa; @@ -638,8 +638,8 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) oMdrho = (rhoRef - (oMdrho + m0))/rhoRef;// 12.03.21 check derivation!!!! //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -872,21 +872,21 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // mfaaa = 0.0; - LBMReal OxxPyyPzz = 1.; //omega2 or bulk viscosity + real OxxPyyPzz = 1.; //omega2 or bulk viscosity // LBMReal OxyyPxzz = 1.;//-s9;//2+s9;// // LBMReal OxyyMxzz = 1.;//2+s9;// - LBMReal O4 = 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + real O4 = 1.; + real O5 = 1.; + real O6 = 1.; /////fourth order parameters; here only for test. Move out of loop! - LBMReal OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); - LBMReal OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); - LBMReal Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); - LBMReal A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); + real OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); + real Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); + real A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) - LBMReal BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //Cum 4. @@ -894,21 +894,21 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) //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 - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); //Cum 5. - LBMReal CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal 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 + 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; //Cum 6. - LBMReal CUMccc = mfccc + ((-4. * mfbbb * mfbbb + real CUMccc = mfccc + ((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) @@ -922,21 +922,21 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; // LBMReal mfaaaS = (mfaaa * (-4 - 3 * OxxPyyPzz * (-1 + rho)) + 6 * mxxPyyPzz * OxxPyyPzz * (-1 + rho)) / (-4 + 3 * OxxPyyPzz * (-1 + rho)); mxxPyyPzz -= mfaaa ;//12.03.21 shifted by mfaaa //mxxPyyPzz-=(mfaaa+mfaaaS)*c1o2;//12.03.21 shifted by mfaaa - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; - LBMReal dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz); - LBMReal dyuy = dxux + collFactorM * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactorM * c3o2 * mxxMzz; + real dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz); + real dyuy = dxux + collFactorM * c3o2 * mxxMyy; + real dzuz = dxux + collFactorM * c3o2 * mxxMzz; - LBMReal Dxy = -three * collFactorM * mfbba; - LBMReal Dxz = -three * collFactorM * mfbab; - LBMReal Dyz = -three * collFactorM * mfabb; + real Dxy = -three * collFactorM * mfbba; + real Dxz = -three * collFactorM * mfbab; + real Dyz = -three * collFactorM * mfabb; //relax mxxPyyPzz += OxxPyyPzz * (/*mfaaa*/ - mxxPyyPzz) - 3. * (1. - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); @@ -963,14 +963,14 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //relax wadjust = Oxyz + (1. - Oxyz) * fabs(mfbbb) / (fabs(mfbbb) + qudricLimit); @@ -1302,7 +1302,7 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// //#ifdef PROOF_CORRECTNESS - LBMReal rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; // //LBMReal dif = fabs(drho - rho_post); @@ -1361,7 +1361,7 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) ///////////////////// P H A S E - F I E L D S O L V E R //////////////////////////////////////////// /////CUMULANT PHASE-FIELD - LBMReal omegaD =1.0/( 3.0 * mob + 0.5); + real omegaD =1.0/( 3.0 * mob + 0.5); { mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); @@ -1398,31 +1398,31 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) //! //////////////////////////////////////////////////////////////////////////////////// // second component - LBMReal concentration = + real concentration = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; //////////////////////////////////////////////////////////////////////////////////// - LBMReal oneMinusRho = c1- concentration; + real oneMinusRho = c1- concentration; - LBMReal cx = + real cx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal cy = + real cy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal cz = + real cz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); //////////////////////////////////////////////////////////////////////////////////// // calculate the square of velocities for this lattice node - LBMReal cx2 = cx * cx; - LBMReal cy2 = cy * cy; - LBMReal cz2 = cz * cz; + real cx2 = cx * cx; + real cy2 = cy * cy; + real cz2 = cz * cz; //////////////////////////////////////////////////////////////////////////////////// //! - Chimera transform from well conditioned distributions to central moments as defined in Appendix J in \ref //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> @@ -1470,16 +1470,16 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) //! // linearized orthogonalization of 3rd order central moments - LBMReal Mabc = mfabc - mfaba * c1o3; - LBMReal Mbca = mfbca - mfbaa * c1o3; - LBMReal Macb = mfacb - mfaab * c1o3; - LBMReal Mcba = mfcba - mfaba * c1o3; - LBMReal Mcab = mfcab - mfaab * c1o3; - LBMReal Mbac = mfbac - mfbaa * c1o3; + real Mabc = mfabc - mfaba * c1o3; + real Mbca = mfbca - mfbaa * c1o3; + real Macb = mfacb - mfaab * c1o3; + real Mcba = mfcba - mfaba * c1o3; + real Mcab = mfcab - mfaab * c1o3; + real Mbac = mfbac - mfbaa * c1o3; // linearized orthogonalization of 5th order central moments - LBMReal Mcbc = mfcbc - mfaba * c1o9; - LBMReal Mbcc = mfbcc - mfbaa * c1o9; - LBMReal Mccb = mfccb - mfaab * c1o9; + real Mcbc = mfcbc - mfaba * c1o9; + real Mbcc = mfbcc - mfbaa * c1o9; + real Mccb = mfccb - mfaab * c1o9; // collision of 1st order moments cx = cx * (c1 - omegaD) + omegaD * vvx * concentration + @@ -1622,7 +1622,7 @@ void MultiphasePressureFilterLBMKernel::calculate(int step) } ////////////////////////////////////////////////////////////////////////// -LBMReal MultiphasePressureFilterLBMKernel::gradX1_phi() +real MultiphasePressureFilterLBMKernel::gradX1_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -1632,7 +1632,7 @@ LBMReal MultiphasePressureFilterLBMKernel::gradX1_phi() +WEIGTH[DIR_0P0] * (phi[DIR_P00] - phi[DIR_M00])); } -LBMReal MultiphasePressureFilterLBMKernel::gradX2_phi() +real MultiphasePressureFilterLBMKernel::gradX2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -1642,7 +1642,7 @@ LBMReal MultiphasePressureFilterLBMKernel::gradX2_phi() +WEIGTH[DIR_0P0] * (phi[DIR_0P0] - phi[DIR_0M0])); } -LBMReal MultiphasePressureFilterLBMKernel::gradX3_phi() +real MultiphasePressureFilterLBMKernel::gradX3_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -1652,12 +1652,12 @@ LBMReal MultiphasePressureFilterLBMKernel::gradX3_phi() +WEIGTH[DIR_0P0] * (phi[DIR_00P] - phi[DIR_00M])); } -LBMReal MultiphasePressureFilterLBMKernel::nabla2_phi() +real MultiphasePressureFilterLBMKernel::nabla2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal sum = 0.0; + real sum = 0.0; sum += WEIGTH[DIR_PPP] * ((((phi[DIR_PPP] - phi[DIR_000]) + (phi[DIR_MMM] - phi[DIR_000])) + ((phi[DIR_MMP] - phi[DIR_000]) + (phi[DIR_PPM] - phi[DIR_000]))) + (((phi[DIR_MPP] - phi[DIR_000]) + (phi[DIR_PMM] - phi[DIR_000])) + ((phi[DIR_PMP] - phi[DIR_000]) + (phi[DIR_MPM] - phi[DIR_000])))); sum += WEIGTH[DIR_0PP] * ( @@ -1733,7 +1733,7 @@ void MultiphasePressureFilterLBMKernel::computePhasefield() } } -void MultiphasePressureFilterLBMKernel::findNeighbors(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, +void MultiphasePressureFilterLBMKernel::findNeighbors(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3) { using namespace D3Q27System; diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.h index 9b2b568b2..48366d081 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphasePressureFilterLBMKernel.h @@ -53,11 +53,11 @@ public: SPtr<LBMKernel> clone() override; double getCalculationTime() override { return .0; } - void setPhaseFieldBC(LBMReal bc) + void setPhaseFieldBC(real bc) { phaseFieldBC = bc; } - LBMReal getPhaseFieldBC() + real getPhaseFieldBC() { return phaseFieldBC; } @@ -68,44 +68,44 @@ protected: void initForcing(); - void forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); - void backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); + void forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); + void backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH1; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH1; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH1; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH1; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH1; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH1; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressureOld; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressureOld; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr divU; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr divU; - LBMReal h [D3Q27System::ENDF+1]; - LBMReal phi[D3Q27System::ENDF+1]; + real h [D3Q27System::ENDF+1]; + real phi[D3Q27System::ENDF+1]; - LBMReal gradX1_phi(); - LBMReal gradX2_phi(); - LBMReal gradX3_phi(); + real gradX1_phi(); + real gradX2_phi(); + real gradX3_phi(); void computePhasefield(); - void findNeighbors(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); + void findNeighbors(CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); - LBMReal nabla2_phi(); + real nabla2_phi(); mu::value_type muX1,muX2,muX3; mu::value_type muDeltaT; mu::value_type muNu; mu::value_type muRho; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; - LBMReal phaseFieldBC { 0.0 }; // if 0.0 then light fluid on the wall, else if 1.0 havy fluid + real phaseFieldBC { 0.0 }; // if 0.0 then light fluid on the wall, else if 1.0 havy fluid }; #endif diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.cpp index 163561da8..90eb030bf 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.cpp @@ -81,11 +81,11 @@ SPtr<LBMKernel> MultiphaseScratchCumulantLBMKernel::clone() return kernel; } ////////////////////////////////////////////////////////////////////////// - void MultiphaseScratchCumulantLBMKernel::forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { + void MultiphaseScratchCumulantLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m2 = mfa + mfc; - LBMReal m1 = mfc - mfa; - LBMReal m0 = m2 + mfb; + real m2 = mfa + mfc; + real m1 = mfc - mfa; + real m0 = m2 + mfb; mfa = m0; m0 *= Kinverse; m0 += oneMinusRho; @@ -94,10 +94,10 @@ SPtr<LBMKernel> MultiphaseScratchCumulantLBMKernel::clone() } //////////////////////////////////////////////////////////////////////////////// - void MultiphaseScratchCumulantLBMKernel::backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { + void MultiphaseScratchCumulantLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; - LBMReal m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; + real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; + real m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; mfc = (((mfc + mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 + vv) * c1o2) * K; mfa = m0; mfb = m1; @@ -105,20 +105,20 @@ SPtr<LBMKernel> MultiphaseScratchCumulantLBMKernel::clone() //////////////////////////////////////////////////////////////////////////////// - void MultiphaseScratchCumulantLBMKernel::forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { + void MultiphaseScratchCumulantLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal m1 = (mfa + mfc) + mfb; - LBMReal m2 = mfc - mfa; + real m1 = (mfa + mfc) + mfb; + real m2 = mfc - mfa; mfc = (mfc + mfa) + (v2 * m1 - c2 * vv * m2); mfb = m2 - vv * m1; mfa = m1; } - void MultiphaseScratchCumulantLBMKernel::backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { + void MultiphaseScratchCumulantLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); - LBMReal mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; + real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); + real mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; mfc = (mfc + mfa * (v2 + vv)) * c1o2 + mfb * (vv + c1o2); mfb = mb; mfa = ma; @@ -135,7 +135,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) forcingX2 = 0.0; forcingX3 = 0.0; - LBMReal oneOverInterfaceScale = 1.0;// 1.0 / 3.0; + real oneOverInterfaceScale = 1.0;// 1.0 / 3.0; ///////////////////////////////////// localDistributionsF = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getFdistributions())->getLocalDistributions(); @@ -159,10 +159,10 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) int maxX2 = bcArrayMaxX2 - ghostLayerWidth; int maxX3 = bcArrayMaxX3 - ghostLayerWidth; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField( - new CbArray3D<LBMReal, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr divU( - new CbArray3D<LBMReal, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, 0.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField( + new CbArray3D<real, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr divU( + new CbArray3D<real, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, 0.0)); /////For velocity filter @@ -183,34 +183,34 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) int x2p = x2 + 1; int x3p = x3 + 1; - LBMReal mfcbb = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsH)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsH)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsH)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsH)(x1, x2, x3); + real mfcbb = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsH)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsH)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsH)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsH)(x1, x2, x3); (*phaseField)(x1, x2, x3) = (((mfaaa + mfccc) + (mfaca + mfcac)) + ((mfaac + mfcca) + (mfcaa + mfacc)) ) + (((mfaab + mfacb) + (mfcab + mfccb)) + ((mfaba + mfabc) + (mfcba + mfcbc)) + ((mfbaa + mfbac) + (mfbca + mfbcc))) + ((mfabb + mfcbb) + @@ -223,13 +223,13 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) ///Velocity filter - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0 / densityRatio; + real rhoH = 1.0; + real rhoL = 1.0 / densityRatio; - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - LBMReal rho = rhoH + rhoToPhi * ((*phaseField)(x1, x2, x3) - phiH); + real rho = rhoH + rhoToPhi * ((*phaseField)(x1, x2, x3) - phiH); mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3) / rho * c3; mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3) / rho * c3; @@ -280,7 +280,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) } } - LBMReal collFactorM; + real collFactorM; //LBMReal forcingTerm[D3Q27System::ENDF + 1]; for (int x3 = minX3; x3 < maxX3; x3++) { @@ -318,43 +318,43 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) findNeighbors(phaseField, x1, x2, x3); //// reading distributions here appears to be unnecessary! - LBMReal mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0 / densityRatio; - - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - - LBMReal dX1_phi = gradX1_phi(); - LBMReal dX2_phi = gradX2_phi(); - LBMReal dX3_phi = gradX3_phi(); + real mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); + + real rhoH = 1.0; + real rhoL = 1.0 / densityRatio; + + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + + real dX1_phi = gradX1_phi(); + real dX2_phi = gradX2_phi(); + real dX3_phi = gradX3_phi(); //LBMReal dX1_phi = 3.0*(( // WEIGTH[TNE]*((((*phaseField)(x1 + 1, x2+1, x3+1)- (*phaseField)(x1 - 1, x2 - 1, x3 - 1))+ ((*phaseField)(x1 + 1, x2 - 1, x3 + 1) - (*phaseField)(x1 - 1, x2 + 1, x3 - 1))) @@ -413,10 +413,10 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) //dX3_phi = (2*dX3_phi -1*dX3_phi2);// 2 * dX3_phi - dX3_phi2; - LBMReal denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9; - LBMReal normX1 = dX1_phi/denom; - LBMReal normX2 = dX2_phi/denom; - LBMReal normX3 = dX3_phi/denom; + real denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9; + real normX1 = dX1_phi/denom; + real normX2 = dX2_phi/denom; + real normX3 = dX3_phi/denom; ///test for magnitude of gradient from phase indicator directly @@ -435,10 +435,10 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) collFactorM = collFactorL + (collFactorL - collFactorG) * (phi[DIR_000] - phiH) / (phiH - phiL); //collFactorM = phi[REST] - phiL < (phiH - phiL) * 0.05 ? collFactorG : collFactorL; - LBMReal mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); + real mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); //----------- Calculating Macroscopic Values ------------- - LBMReal rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); + real rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); if (withForcing) { // muX1 = static_cast<double>(x1-1+ix1*maxX1); @@ -449,7 +449,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) forcingX2 = muForcingX2.Eval(); forcingX3 = muForcingX3.Eval(); - LBMReal rho_m = 1.0 / densityRatio; + real rho_m = 1.0 / densityRatio; forcingX1 = forcingX1 * (rho - rho_m); forcingX2 = forcingX2 * (rho - rho_m); forcingX3 = forcingX3 * (rho - rho_m); @@ -490,8 +490,8 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) - LBMReal m0, m1, m2; - LBMReal rhoRef=c1; + real m0, m1, m2; + real rhoRef=c1; //LBMReal // FIXME: warning: unused variable 'drho' @@ -499,13 +499,13 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) // + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) // + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb))/rhoRef; - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab))/rhoRef; - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba))/rhoRef; @@ -577,7 +577,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) ///----Classic source term 8.4.2021 - LBMReal vvxF, vvyF, vvzF; + real vvxF, vvyF, vvzF; vvxF = vvx;//-2*c1o24 * lap_vx;// vvyF = vvy;//-2*c1o24 * lap_vy;// vvzF = vvz;//-2*c1o24 * lap_vz;// @@ -588,10 +588,10 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) //if (vvxF != vvx) { // vvxF = vvxF; //} - LBMReal weightGrad = 1.0-denom*denom/(denom*denom+0.0001*0.001); - LBMReal dX1_phiF = dX1_phi * weightGrad + (1.0 - weightGrad) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * normX1; - LBMReal dX2_phiF = dX2_phi * weightGrad + (1.0 - weightGrad) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * normX2; - LBMReal dX3_phiF = dX3_phi * weightGrad + (1.0 - weightGrad) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * normX3; + real weightGrad = 1.0-denom*denom/(denom*denom+0.0001*0.001); + real dX1_phiF = dX1_phi * weightGrad + (1.0 - weightGrad) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * normX1; + real dX2_phiF = dX2_phi * weightGrad + (1.0 - weightGrad) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * normX2; + real dX3_phiF = dX3_phi * weightGrad + (1.0 - weightGrad) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * normX3; //dX1_phiF *= 1.2; //dX2_phiF *= 1.2; @@ -604,19 +604,19 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) // dX2_phiF = gradPhi * normX2; // dX3_phiF = gradPhi * normX3; - LBMReal ux2; - LBMReal uy2; - LBMReal uz2; + real ux2; + real uy2; + real uz2; ux2 = vvxF * vvxF; uy2 = vvyF * vvyF; uz2 = vvzF * vvzF; - LBMReal forcingTerm[D3Q27System::ENDF + 1]; + real forcingTerm[D3Q27System::ENDF + 1]; for (int dir = FSTARTDIR; dir <= FENDDIR; dir++) { - LBMReal velProd = DX1[dir] * vvxF + DX2[dir] * vvyF + DX3[dir] * vvzF; - LBMReal velSq1 = velProd * velProd; - LBMReal gamma = WEIGTH[dir] * (1.0 + 3 * velProd + (4.5 * velSq1 - 1.5 * (ux2 + uy2 + uz2))); + real velProd = DX1[dir] * vvxF + DX2[dir] * vvyF + DX3[dir] * vvzF; + real velSq1 = velProd * velProd; + real gamma = WEIGTH[dir] * (1.0 + 3 * velProd + (4.5 * velSq1 - 1.5 * (ux2 + uy2 + uz2))); - LBMReal fac1 = (gamma - WEIGTH[dir]) * c1o3 * rhoToPhi; + real fac1 = (gamma - WEIGTH[dir]) * c1o3 * rhoToPhi; forcingTerm[dir] = (-vvxF) * (fac1 * dX1_phiF ) + @@ -647,8 +647,8 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) } - LBMReal gamma = WEIGTH[DIR_000] * (1.0 - 1.5 * (ux2 + uy2 + uz2)); - LBMReal fac1 = (gamma - WEIGTH[DIR_000]) * c1o3 * rhoToPhi; + real gamma = WEIGTH[DIR_000] * (1.0 - 1.5 * (ux2 + uy2 + uz2)); + real fac1 = (gamma - WEIGTH[DIR_000]) * c1o3 * rhoToPhi; forcingTerm[DIR_000] = (-vvxF) * (fac1 * dX1_phiF ) + (-vvyF) * (fac1 * dX2_phiF ) + (-vvzF) * (fac1 * dX3_phiF ); @@ -798,9 +798,9 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) vvz += forcingX3 * deltaT * 0.5; // Z } - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2 = vvx * vvx; vy2 = vvy * vvy; vz2 = vvz * vvz; @@ -810,7 +810,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) /////////////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho; + real oMdrho; oMdrho = mfccc + mfaaa; @@ -841,8 +841,8 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -1073,22 +1073,22 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // Cumulants //////////////////////////////////////////////////////////////////////////////////// - LBMReal OxxPyyPzz = 1.; //omega2 or bulk viscosity + real OxxPyyPzz = 1.; //omega2 or bulk viscosity //LBMReal OxyyPxzz = 2.0 - collFactorM;// 1.;//-s9;//2+s9;// //LBMReal OxyyMxzz = 2.0 - collFactorM;// 1.;//2+s9;// - LBMReal O4 = 1.0;//collFactorM;// 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + real O4 = 1.0;//collFactorM;// 1.; + real O5 = 1.; + real O6 = 1.; /////fourth order parameters; here only for test. Move out of loop! - LBMReal OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); - LBMReal OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); - LBMReal Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); - LBMReal A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); + real OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); + real Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); + real A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) - LBMReal BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //Cum 4. @@ -1096,21 +1096,21 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) //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 - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); //Cum 5. - LBMReal CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal 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 + 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; //Cum 6. - LBMReal CUMccc = mfccc + ((-4. * mfbbb * mfbbb + real CUMccc = mfccc + ((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) @@ -1124,10 +1124,10 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; mxxPyyPzz-=mfaaa;//12.03.21 shifted by mfaaa - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; //applying phase field gradients first part: // mxxPyyPzz += c2o3 * rhoToPhi * (dX1_phi * vvx + dX2_phi * vvy + dX3_phi * vvz); @@ -1153,17 +1153,17 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) //mfbba += c1o6 * (dX1_phi * vvyF + dX2_phi * vvxF) * correctionScaling; - LBMReal dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz); - LBMReal dyuy = dxux + collFactorM * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactorM * c3o2 * mxxMzz; + real dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz); + real dyuy = dxux + collFactorM * c3o2 * mxxMyy; + real dzuz = dxux + collFactorM * c3o2 * mxxMzz; - LBMReal Dxy = -three * collFactorM * mfbba; - LBMReal Dxz = -three * collFactorM * mfbab; - LBMReal Dyz = -three * collFactorM * mfabb; + real Dxy = -three * collFactorM * mfbba; + real Dxz = -three * collFactorM * mfbab; + real Dyz = -three * collFactorM * mfabb; ////relax unfiltered //! divergenceFilter 10.05.2021 - LBMReal divMag= (1.0 - phi[DIR_000]) * (phi[DIR_000])*10*5*sqrt(fabs((OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz) - 3. * (1. - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz)))); + real divMag= (1.0 - phi[DIR_000]) * (phi[DIR_000])*10*5*sqrt(fabs((OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz) - 3. * (1. - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz)))); // LBMReal divMag = 500 *500* 50*(fabs((OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz) - 3. * (1. - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz))))* (fabs((OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz) - 3. * (1. - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz)))); //LBMReal divMag = (dX1_phi * dxux) > 0 ? (dX1_phi * dxux) : 0; //divMag += (dX2_phi * dyuy) > 0 ? (dX2_phi * dyuy) : 0; @@ -1238,14 +1238,14 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //relax wadjust = Oxyz + (1. - Oxyz) * fabs(mfbbb) / (fabs(mfbbb) + qudricLimit); @@ -2514,7 +2514,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) ///////////////////// P H A S E - F I E L D S O L V E R //////////////////////////////////////////// /////CUMULANT PHASE-FIELD - LBMReal omegaD =1.0/( 3.0 * mob + 0.5); + real omegaD =1.0/( 3.0 * mob + 0.5); mfcbb = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); mfbcb = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); @@ -2578,7 +2578,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) // LBMReal vvz = uz; //////////////////////////////////////////////////////////////////////////////////// // second component - LBMReal concentration = + real concentration = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; @@ -2593,26 +2593,26 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) // vvy += fy * c1o2; // vvz += fz * c1o2; //////////////////////////////////////////////////////////////////////////////////// - LBMReal oneMinusRho = c1- concentration; + real oneMinusRho = c1- concentration; - LBMReal cx = + real cx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal cy = + real cy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal cz = + real cz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); //////////////////////////////////////////////////////////////////////////////////// // calculate the square of velocities for this lattice node - LBMReal cx2 = cx * cx; - LBMReal cy2 = cy * cy; - LBMReal cz2 = cz * cz; + real cx2 = cx * cx; + real cy2 = cy * cy; + real cz2 = cz * cz; //////////////////////////////////////////////////////////////////////////////////// //! - Chimera transform from well conditioned distributions to central moments as defined in Appendix J in \ref //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> @@ -2660,16 +2660,16 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) //! // linearized orthogonalization of 3rd order central moments - LBMReal Mabc = mfabc - mfaba * c1o3; - LBMReal Mbca = mfbca - mfbaa * c1o3; - LBMReal Macb = mfacb - mfaab * c1o3; - LBMReal Mcba = mfcba - mfaba * c1o3; - LBMReal Mcab = mfcab - mfaab * c1o3; - LBMReal Mbac = mfbac - mfbaa * c1o3; + real Mabc = mfabc - mfaba * c1o3; + real Mbca = mfbca - mfbaa * c1o3; + real Macb = mfacb - mfaab * c1o3; + real Mcba = mfcba - mfaba * c1o3; + real Mcab = mfcab - mfaab * c1o3; + real Mbac = mfbac - mfbaa * c1o3; // linearized orthogonalization of 5th order central moments - LBMReal Mcbc = mfcbc - mfaba * c1o9; - LBMReal Mbcc = mfbcc - mfbaa * c1o9; - LBMReal Mccb = mfccb - mfaab * c1o9; + real Mcbc = mfcbc - mfaba * c1o9; + real Mbcc = mfbcc - mfbaa * c1o9; + real Mccb = mfccb - mfaab * c1o9; // collision of 1st order moments cx = cx * (c1 - omegaD) + omegaD * vvx * concentration + normX1 * (c1 - 0.5 * omegaD) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * c1o3 * oneOverInterfaceScale; @@ -2919,7 +2919,7 @@ void MultiphaseScratchCumulantLBMKernel::calculate(int step) } ////////////////////////////////////////////////////////////////////////// -LBMReal MultiphaseScratchCumulantLBMKernel::gradX1_phi() +real MultiphaseScratchCumulantLBMKernel::gradX1_phi() { using namespace vf::lbm::dir; using namespace D3Q27System; @@ -2934,7 +2934,7 @@ LBMReal MultiphaseScratchCumulantLBMKernel::gradX1_phi() //return 3.0 * sum; } -LBMReal MultiphaseScratchCumulantLBMKernel::gradX2_phi() +real MultiphaseScratchCumulantLBMKernel::gradX2_phi() { using namespace vf::lbm::dir; using namespace D3Q27System; @@ -2949,7 +2949,7 @@ LBMReal MultiphaseScratchCumulantLBMKernel::gradX2_phi() //return 3.0 * sum; } -LBMReal MultiphaseScratchCumulantLBMKernel::gradX3_phi() +real MultiphaseScratchCumulantLBMKernel::gradX3_phi() { using namespace vf::lbm::dir; using namespace D3Q27System; @@ -2964,12 +2964,12 @@ LBMReal MultiphaseScratchCumulantLBMKernel::gradX3_phi() //return 3.0 * sum; } -LBMReal MultiphaseScratchCumulantLBMKernel::nabla2_phi() +real MultiphaseScratchCumulantLBMKernel::nabla2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal sum = 0.0; + real sum = 0.0; sum += WEIGTH[DIR_PPP] * ((((phi[DIR_PPP] - phi[DIR_000]) + (phi[DIR_MMM] - phi[DIR_000])) + ((phi[DIR_MMP] - phi[DIR_000]) + (phi[DIR_PPM] - phi[DIR_000]))) + (((phi[DIR_MPP] - phi[DIR_000]) + (phi[DIR_PMM] - phi[DIR_000])) + ((phi[DIR_PMP] - phi[DIR_000]) + (phi[DIR_MPM] - phi[DIR_000])))); sum += WEIGTH[DIR_0PP] * ( @@ -3047,7 +3047,7 @@ void MultiphaseScratchCumulantLBMKernel::computePhasefield() } } -void MultiphaseScratchCumulantLBMKernel::findNeighbors(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, +void MultiphaseScratchCumulantLBMKernel::findNeighbors(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3) { using namespace D3Q27System; diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.h index c4cc5c263..7e86c78da 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseScratchCumulantLBMKernel.h @@ -51,54 +51,54 @@ public: virtual ~MultiphaseScratchCumulantLBMKernel(void) = default; void calculate(int step) override; SPtr<LBMKernel> clone() override; - void forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); - void backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); + void forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); + void backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); double getCalculationTime() override { return .0; } protected: virtual void initDataSet(); void swapDistributions() override; - LBMReal f1[D3Q27System::ENDF+1]; + real f1[D3Q27System::ENDF+1]; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH; //CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr phaseField; - LBMReal h [D3Q27System::ENDF+1]; - LBMReal g [D3Q27System::ENDF+1]; - LBMReal phi[D3Q27System::ENDF+1]; - LBMReal pr1[D3Q27System::ENDF+1]; - LBMReal phi_cutoff[D3Q27System::ENDF+1]; + real h [D3Q27System::ENDF+1]; + real g [D3Q27System::ENDF+1]; + real phi[D3Q27System::ENDF+1]; + real pr1[D3Q27System::ENDF+1]; + real phi_cutoff[D3Q27System::ENDF+1]; - LBMReal gradX1_phi(); - LBMReal gradX2_phi(); - LBMReal gradX3_phi(); + real gradX1_phi(); + real gradX2_phi(); + real gradX3_phi(); //LBMReal gradX1_pr1(); //LBMReal gradX2_pr1(); //LBMReal gradX3_pr1(); //LBMReal dirgradC_phi(int n, int k); void computePhasefield(); - void findNeighbors(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); + void findNeighbors(CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); //void findNeighbors(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf /*Pressure-Field*/, int x1, int x2, int x3); //void pressureFiltering(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf /*Pressure-Field*/, CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf_filtered /*Pressure-Field*/); - LBMReal nabla2_phi(); + real nabla2_phi(); mu::value_type muX1,muX2,muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; }; #endif diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.cpp index 626ad538f..9677ffd73 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.cpp @@ -53,19 +53,19 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::initDataSet() SPtr<DistributionArray3D> h(new D3Q27EsoTwist3DSplittedVector( nx[0] + 4, nx[1] + 4, nx[2] + 4, -999.9)); // For phase-field SPtr<DistributionArray3D> h2(new D3Q27EsoTwist3DSplittedVector(nx[0] + 4, nx[1] + 4, nx[2] + 4, -999.9)); SPtr<PhaseFieldArray3D> divU1(new PhaseFieldArray3D( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressure(new CbArray3D<LBMReal, IndexerX3X2X1>( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); - pressureOld = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); - p1Old = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressure(new CbArray3D<real, IndexerX3X2X1>( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + pressureOld = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + p1Old = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); dataSet->setFdistributions(f); dataSet->setHdistributions(h); // For phase-field dataSet->setH2distributions(h2); dataSet->setPhaseField(divU1); dataSet->setPressureField(pressure); - phaseField = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, -999.0)); - phaseFieldOld = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 999.0)); + phaseField = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, -999.0)); + phaseFieldOld = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 999.0)); - divU = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + divU = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); } ////////////////////////////////////////////////////////////////////////// SPtr<LBMKernel> MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::clone() @@ -96,11 +96,11 @@ SPtr<LBMKernel> MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::clone() return kernel; } ////////////////////////////////////////////////////////////////////////// -void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { +void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m2 = mfa + mfc; - LBMReal m1 = mfc - mfa; - LBMReal m0 = m2 + mfb; + real m2 = mfa + mfc; + real m1 = mfc - mfa; + real m0 = m2 + mfb; mfa = m0; m0 *= Kinverse; m0 += oneMinusRho; @@ -109,10 +109,10 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::forwardInverseChime } //////////////////////////////////////////////////////////////////////////////// -void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { +void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; - LBMReal m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; + real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; + real m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; mfc = (((mfc + mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 + vv) * c1o2) * K; mfa = m0; mfb = m1; @@ -120,20 +120,20 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::backwardInverseChim //////////////////////////////////////////////////////////////////////////////// -void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { +void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal m1 = (mfa + mfc) + mfb; - LBMReal m2 = mfc - mfa; + real m1 = (mfa + mfc) + mfb; + real m2 = mfc - mfa; mfc = (mfc + mfa) + (v2 * m1 - c2 * vv * m2); mfb = m2 - vv * m1; mfa = m1; } -void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { +void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); - LBMReal mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; + real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); + real mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; mfc = (mfc + mfa * (v2 + vv)) * c1o2 + mfb * (vv + c1o2); mfb = mb; mfa = ma; @@ -150,7 +150,7 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) forcingX2 = 0.0; forcingX3 = 0.0; - LBMReal oneOverInterfaceScale = c4 / interfaceWidth; //1.0;//1.5; + real oneOverInterfaceScale = c4 / interfaceWidth; //1.0;//1.5; ///////////////////////////////////// localDistributionsF = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getFdistributions())->getLocalDistributions(); @@ -166,7 +166,7 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) zeroDistributionsH2 = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getH2distributions())->getZeroDistributions(); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressure = dataSet->getPressureField(); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressure = dataSet->getPressureField(); SPtr<BCArray3D> bcArray = this->getBCProcessor()->getBCArray(); @@ -180,7 +180,7 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) int maxX1 = bcArrayMaxX1 - ghostLayerWidth; int maxX2 = bcArrayMaxX2 - ghostLayerWidth; int maxX3 = bcArrayMaxX3 - ghostLayerWidth; - LBMReal omegaDRho = 1.0;// 1.25;// 1.3; + real omegaDRho = 1.0;// 1.25;// 1.3; for (int x3 = minX3-ghostLayerWidth; x3 < maxX3+ghostLayerWidth; x3++) { for (int x2 = minX2-ghostLayerWidth; x2 < maxX2+ghostLayerWidth; x2++) { @@ -190,34 +190,34 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) int x2p = x2 + 1; int x3p = x3 + 1; - LBMReal mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsH1)(x1, x2, x3); + real mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsH1)(x1, x2, x3); (*phaseField)(x1, x2, x3) = (((mfaaa + mfccc) + (mfaca + mfcac)) + ((mfaac + mfcca) + (mfcaa + mfacc)) ) + (((mfaab + mfacb) + (mfcab + mfccb)) + ((mfaba + mfabc) + (mfcba + mfcbc)) + ((mfbaa + mfbac) + (mfbca + mfbcc))) + ((mfabb + mfcbb) + @@ -263,18 +263,18 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) //LBMReal rhoH = 1.0; //LBMReal rhoL = 1.0 / densityRatio; - LBMReal rhoH = 1.0*densityRatio; - LBMReal rhoL = 1.0; + real rhoH = 1.0*densityRatio; + real rhoL = 1.0; - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - LBMReal drho = (((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc)) ) + real drho = (((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc)) ) + (((mfaab + mfccb) + (mfacb + mfcab) ) + ((mfaba + mfcbc) + (mfabc + mfcba) ) + ((mfbaa + mfbcc) + (mfbac + mfbca) ))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; omegaDRho = 2.0;// 1.5; drho *= omegaDRho; - LBMReal keepDrho = drho; + real keepDrho = drho; drho = ((*p1Old)(x1, x2, x3) + drho) * c1o2; // drho = ((*p1Old)(x1, x2, x3)*c2o3 + drho*c1o3) ; (*p1Old)(x1, x2, x3) = keepDrho; @@ -323,7 +323,7 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) } } - LBMReal collFactorM; + real collFactorM; ////Periodic Filter //for (int x3 = minX3-1; x3 <= maxX3; x3++) { @@ -395,92 +395,92 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) findNeighbors(phaseField, x1, x2, x3); - LBMReal mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - - - LBMReal mfhcbb = (*this->localDistributionsH2)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfhbcb = (*this->localDistributionsH2)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfhbbc = (*this->localDistributionsH2)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfhccb = (*this->localDistributionsH2)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfhacb = (*this->localDistributionsH2)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfhcbc = (*this->localDistributionsH2)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfhabc = (*this->localDistributionsH2)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfhbcc = (*this->localDistributionsH2)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfhbac = (*this->localDistributionsH2)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfhccc = (*this->localDistributionsH2)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfhacc = (*this->localDistributionsH2)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfhcac = (*this->localDistributionsH2)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfhaac = (*this->localDistributionsH2)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfhabb = (*this->nonLocalDistributionsH2)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfhbab = (*this->nonLocalDistributionsH2)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfhbba = (*this->nonLocalDistributionsH2)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfhaab = (*this->nonLocalDistributionsH2)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfhcab = (*this->nonLocalDistributionsH2)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfhaba = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfhcba = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfhbaa = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfhbca = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfhaaa = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfhcaa = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfhaca = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfhcca = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfhbbb = (*this->zeroDistributionsH2)(x1, x2, x3); + real mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); + + + real mfhcbb = (*this->localDistributionsH2)(D3Q27System::ET_E, x1, x2, x3); + real mfhbcb = (*this->localDistributionsH2)(D3Q27System::ET_N, x1, x2, x3); + real mfhbbc = (*this->localDistributionsH2)(D3Q27System::ET_T, x1, x2, x3); + real mfhccb = (*this->localDistributionsH2)(D3Q27System::ET_NE, x1, x2, x3); + real mfhacb = (*this->localDistributionsH2)(D3Q27System::ET_NW, x1p, x2, x3); + real mfhcbc = (*this->localDistributionsH2)(D3Q27System::ET_TE, x1, x2, x3); + real mfhabc = (*this->localDistributionsH2)(D3Q27System::ET_TW, x1p, x2, x3); + real mfhbcc = (*this->localDistributionsH2)(D3Q27System::ET_TN, x1, x2, x3); + real mfhbac = (*this->localDistributionsH2)(D3Q27System::ET_TS, x1, x2p, x3); + real mfhccc = (*this->localDistributionsH2)(D3Q27System::ET_TNE, x1, x2, x3); + real mfhacc = (*this->localDistributionsH2)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfhcac = (*this->localDistributionsH2)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfhaac = (*this->localDistributionsH2)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfhabb = (*this->nonLocalDistributionsH2)(D3Q27System::ET_W, x1p, x2, x3); + real mfhbab = (*this->nonLocalDistributionsH2)(D3Q27System::ET_S, x1, x2p, x3); + real mfhbba = (*this->nonLocalDistributionsH2)(D3Q27System::ET_B, x1, x2, x3p); + real mfhaab = (*this->nonLocalDistributionsH2)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfhcab = (*this->nonLocalDistributionsH2)(D3Q27System::ET_SE, x1, x2p, x3); + real mfhaba = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfhcba = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BE, x1, x2, x3p); + real mfhbaa = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfhbca = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BN, x1, x2, x3p); + real mfhaaa = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfhcaa = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfhaca = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfhcca = (*this->nonLocalDistributionsH2)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfhbbb = (*this->zeroDistributionsH2)(x1, x2, x3); //LBMReal rhoH = 1.0; //LBMReal rhoL = 1.0 / densityRatio; - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0/ densityRatio; + real rhoH = 1.0; + real rhoL = 1.0/ densityRatio; - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - LBMReal dX1_phi = gradX1_phi(); - LBMReal dX2_phi = gradX2_phi(); - LBMReal dX3_phi = gradX3_phi(); + real dX1_phi = gradX1_phi(); + real dX2_phi = gradX2_phi(); + real dX3_phi = gradX3_phi(); - LBMReal denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9+1e-3; + real denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9+1e-3; // 01.09.2022: unclear what value we have to add to the normal: lager values better cut of in gas phase? - LBMReal normX1 = dX1_phi / denom; - LBMReal normX2 = dX2_phi / denom; - LBMReal normX3 = dX3_phi / denom; + real normX1 = dX1_phi / denom; + real normX2 = dX2_phi / denom; + real normX3 = dX3_phi / denom; collFactorM = collFactorL + (collFactorL - collFactorG) * (phi[DIR_000] - phiH) / (phiH - phiL); - LBMReal mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); + real mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); //----------- Calculating Macroscopic Values ------------- - LBMReal rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); //Incompressible + real rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); //Incompressible ///scaled phase field //LBMReal rho = rhoH + rhoToPhi * ((*phaseField)(x1, x2, x3) * (*phaseField)(x1, x2, x3) / ((*phaseField)(x1, x2, x3) * (*phaseField)(x1, x2, x3) + (c1 - (*phaseField)(x1, x2, x3)) * (c1 - (*phaseField)(x1, x2, x3))) - phiH); @@ -489,23 +489,23 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) //LBMReal rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH)+(one-phi[DIR_000])* (*pressure)(x1, x2, x3)*three; //compressible //LBMReal rho = rhoL + (rhoH - rhoL) * phi[DIR_000] + (one - phi[DIR_000]) * (*pressure)(x1, x2, x3) * three; //compressible - LBMReal m0, m1, m2; - LBMReal rhoRef=c1; + real m0, m1, m2; + real rhoRef=c1; - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb))/rhoRef; - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab))/rhoRef; - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba))/rhoRef; ////Filter&Gradient merged - LBMReal pressureHere = (*pressureOld)(x1, x2, x3); + real pressureHere = (*pressureOld)(x1, x2, x3); //LBMReal pressureHere = (*pressure)(x1, x2, x3); - LBMReal arrayP[3][3][3] = { {{pressureHere,pressureHere,pressureHere},{pressureHere,pressureHere,pressureHere},{pressureHere,pressureHere,pressureHere}}, + real arrayP[3][3][3] = { {{pressureHere,pressureHere,pressureHere},{pressureHere,pressureHere,pressureHere},{pressureHere,pressureHere,pressureHere}}, {{pressureHere,pressureHere,pressureHere},{pressureHere,pressureHere,pressureHere},{pressureHere,pressureHere,pressureHere}}, { {pressureHere,pressureHere,pressureHere},{pressureHere,pressureHere,pressureHere},{pressureHere,pressureHere,pressureHere}} }; //LBMReal LaplaceP = 0.0; @@ -687,7 +687,7 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) /////////////////////////////////////////////// - LBMReal pStarStart = ((((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc))) + real pStarStart = ((((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc))) + (((mfaab + mfccb) + (mfacb + mfcab)) + ((mfaba + mfcbc) + (mfabc + mfcba)) + ((mfbaa + mfbcc) + (mfbac + mfbca)))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb) * c1o3; @@ -794,7 +794,7 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) //Abbas - LBMReal pStar = ((((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc))) + real pStar = ((((((mfaaa + mfccc) + (mfaac + mfcca)) + ((mfcac + mfaca) + (mfcaa + mfacc))) + (((mfaab + mfccb) + (mfacb + mfcab)) + ((mfaba + mfcbc) + (mfabc + mfcba)) + ((mfbaa + mfbcc) + (mfbac + mfbca)))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb) * c1o3; //22.09.22 not yet in balance, repaire here @@ -1047,9 +1047,9 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) //LBMReal M011 = ((((((mfaaa + mfccc) - (mfaac + mfcca)) + ( (mfcaa + mfacc)- (mfcac + mfaca))) // + (((mfbaa + mfbcc) + (-mfbac - mfbca)))) // )); - LBMReal vvxI = vvx; - LBMReal vvyI = vvy; - LBMReal vvzI = vvz; + real vvxI = vvx; + real vvyI = vvy; + real vvzI = vvz; //LBMReal collFactorStore=collFactorM; //LBMReal stress; @@ -1165,16 +1165,16 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) //!Abbas - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2 = vvx * vvx; vy2 = vvy * vvy; vz2 = vvz * vvz; //pStar =ppStar- (vx2 + vy2 + vz2)*pStar; // pStar = (pStar + ppStar)*c1o2; /////////////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho; + real oMdrho; /////////////// //mfabb -= pStar * c2o9; //mfbab -= pStar * c2o9; @@ -1232,8 +1232,8 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) oMdrho = (rhoRef - (oMdrho + m0))/rhoRef;// 12.03.21 check derivation!!!! //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01 / (c1 + 1.0e4 * phi[DIR_000] * (c1 - phi[DIR_000])); //LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01 / (c1 + 1.0e4 * phi[DIR_000] * (c1 - phi[DIR_000])); //real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -1466,24 +1466,24 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // mfaaa = 0.0; - LBMReal OxxPyyPzz = 1.0; //omega2 or bulk viscosity + real OxxPyyPzz = 1.0; //omega2 or bulk viscosity // LBMReal OxyyPxzz = 1.;//-s9;//2+s9;// // LBMReal OxyyMxzz = 1.;//2+s9;// - LBMReal O4 = 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + real O4 = 1.; + real O5 = 1.; + real O6 = 1.; //collFactorM+= (1.7 - collFactorM) * fabs(mfaaa) / (fabs(mfaaa) + 0.001f); /////fourth order parameters; here only for test. Move out of loop! - LBMReal OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); - LBMReal OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); - LBMReal Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); - LBMReal A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); + real OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); + real Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); + real A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::B' ) - LBMReal BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //LBMReal stress = 1.0;// stress / (stress + 1.0e-10); //stress = 1.0; //OxyyPxzz += stress*(1.0-OxyyPxzz); @@ -1498,21 +1498,21 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) //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 - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); //Cum 5. - LBMReal CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal 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 + 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; //Cum 6. - LBMReal CUMccc = mfccc + ((-4. * mfbbb * mfbbb + real CUMccc = mfccc + ((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) @@ -1526,7 +1526,7 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; //pStar = (mxxPyyPzz+vx2+vy2+vz2) * c1o3;//does not work //pStar = (mxxPyyPzz) * c1o3; //pStar = pStar + 1.5 * (mxxPyyPzz * c1o3 - pStar); @@ -1534,25 +1534,25 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) // LBMReal mfaaaS = (mfaaa * (-4 - 3 * OxxPyyPzz * (-1 + rho)) + 6 * mxxPyyPzz * OxxPyyPzz * (-1 + rho)) / (-4 + 3 * OxxPyyPzz * (-1 + rho)); mxxPyyPzz -= mfaaa ;//12.03.21 shifted by mfaaa //mxxPyyPzz-=(mfaaa+mfaaaS)*c1o2;//12.03.21 shifted by mfaaa - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; /// - LBMReal mmfcaa = c1o3 * (mxxMyy + mxxMzz + mxxPyyPzz); - LBMReal mmfaca = c1o3 * (-2. * mxxMyy + mxxMzz + mxxPyyPzz); - LBMReal mmfaac = c1o3 * (mxxMyy - 2. * mxxMzz + mxxPyyPzz); - LBMReal mmfabb = mfabb; - LBMReal mmfbab = mfbab; - LBMReal mmfbba = mfbba; + real mmfcaa = c1o3 * (mxxMyy + mxxMzz + mxxPyyPzz); + real mmfaca = c1o3 * (-2. * mxxMyy + mxxMzz + mxxPyyPzz); + real mmfaac = c1o3 * (mxxMyy - 2. * mxxMzz + mxxPyyPzz); + real mmfabb = mfabb; + real mmfbab = mfbab; + real mmfbba = mfbba; /// - LBMReal dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz)*0; + real dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz)*0; //LBMReal dxux = -c1o2 * (mxxMyy + mxxMzz) * collFactorM - mfaaa * c1o3* omegaDRho; - LBMReal dyuy = dxux + collFactorM * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactorM * c3o2 * mxxMzz; - LBMReal Dxy = -three * collFactorM * mfbba; - LBMReal Dxz = -three * collFactorM * mfbab; - LBMReal Dyz = -three * collFactorM * mfabb; + real dyuy = dxux + collFactorM * c3o2 * mxxMyy; + real dzuz = dxux + collFactorM * c3o2 * mxxMzz; + real Dxy = -three * collFactorM * mfbba; + real Dxz = -three * collFactorM * mfbab; + real Dyz = -three * collFactorM * mfabb; // // attempt to improve implicit stress computation by fixed iteration // LBMReal dX2_rho = (rhoToPhi)*dX2_phi; // LBMReal dX1_rho = (rhoToPhi)*dX1_phi; @@ -1600,14 +1600,14 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; mmfcaa += c1o3 * (mxxMyy + mxxMzz + mxxPyyPzz- mfaaa); mmfaca += c1o3 * (-2. * mxxMyy + mxxMzz + mxxPyyPzz- mfaaa); @@ -2443,7 +2443,7 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// //#ifdef PROOF_CORRECTNESS - LBMReal rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; // //LBMReal dif = fabs(drho - rho_post); @@ -2533,7 +2533,7 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) ///////////////////// P H A S E - F I E L D S O L V E R //////////////////////////////////////////// /////CUMULANT PHASE-FIELD - LBMReal omegaD =1.0/( 3.0 * mob + 0.5); + real omegaD =1.0/( 3.0 * mob + 0.5); { mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); @@ -2570,31 +2570,31 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) //! //////////////////////////////////////////////////////////////////////////////////// // second component - LBMReal concentration = + real concentration = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; //////////////////////////////////////////////////////////////////////////////////// - LBMReal oneMinusRho = c1- concentration; + real oneMinusRho = c1- concentration; - LBMReal cx = + real cx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal cy = + real cy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal cz = + real cz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); //////////////////////////////////////////////////////////////////////////////////// // calculate the square of velocities for this lattice node - LBMReal cx2 = cx * cx; - LBMReal cy2 = cy * cy; - LBMReal cz2 = cz * cz; + real cx2 = cx * cx; + real cy2 = cy * cy; + real cz2 = cz * cz; //////////////////////////////////////////////////////////////////////////////////// //! - Chimera transform from well conditioned distributions to central moments as defined in Appendix J in \ref //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> @@ -2642,16 +2642,16 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) //! // linearized orthogonalization of 3rd order central moments - LBMReal Mabc = mfabc - mfaba * c1o3; - LBMReal Mbca = mfbca - mfbaa * c1o3; - LBMReal Macb = mfacb - mfaab * c1o3; - LBMReal Mcba = mfcba - mfaba * c1o3; - LBMReal Mcab = mfcab - mfaab * c1o3; - LBMReal Mbac = mfbac - mfbaa * c1o3; + real Mabc = mfabc - mfaba * c1o3; + real Mbca = mfbca - mfbaa * c1o3; + real Macb = mfacb - mfaab * c1o3; + real Mcba = mfcba - mfaba * c1o3; + real Mcab = mfcab - mfaab * c1o3; + real Mbac = mfbac - mfbaa * c1o3; // linearized orthogonalization of 5th order central moments - LBMReal Mcbc = mfcbc - mfaba * c1o9; - LBMReal Mbcc = mfbcc - mfbaa * c1o9; - LBMReal Mccb = mfccb - mfaab * c1o9; + real Mcbc = mfcbc - mfaba * c1o9; + real Mbcc = mfbcc - mfbaa * c1o9; + real Mccb = mfccb - mfaab * c1o9; //31.05.2022 addaptive mobility //omegaD = c1 + (sqrt((cx - vvx * concentration) * (cx - vvx * concentration) + (cy - vvy * concentration) * (cy - vvy * concentration) + (cz - vvz * concentration) * (cz - vvz * concentration))) / (sqrt((cx - vvx * concentration) * (cx - vvx * concentration) + (cy - vvy * concentration) * (cy - vvy * concentration) + (cz - vvz * concentration) * (cz - vvz * concentration)) + fabs((1.0 - concentration) * (concentration)) * c1o6 * oneOverInterfaceScale+1.0e-200); @@ -2801,7 +2801,7 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate(int step) } ////////////////////////////////////////////////////////////////////////// -LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX1_phi() +real MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX1_phi() { using namespace vf::lbm::dir; using namespace D3Q27System; @@ -2811,7 +2811,7 @@ LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX1_phi() +WEIGTH[DIR_0P0] * (phi[DIR_P00] - phi[DIR_M00])); } -LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX2_phi() +real MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -2821,7 +2821,7 @@ LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX2_phi() +WEIGTH[DIR_0P0] * (phi[DIR_0P0] - phi[DIR_0M0])); } -LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX3_phi() +real MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX3_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -2831,7 +2831,7 @@ LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX3_phi() +WEIGTH[DIR_0P0] * (phi[DIR_00P] - phi[DIR_00M])); } -LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX1_rhoInv(LBMReal rhoL,LBMReal rhoDIV) +real MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX1_rhoInv(real rhoL,real rhoDIV) { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -2841,7 +2841,7 @@ LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX1_rhoInv(LBM +WEIGTH[DIR_0P0] * (1.0 / (rhoL + rhoDIV * phi[DIR_P00]) - 1.0 / (rhoL + rhoDIV * phi[DIR_M00]))); } -LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX2_rhoInv(LBMReal rhoL,LBMReal rhoDIV) +real MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX2_rhoInv(real rhoL,real rhoDIV) { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -2851,7 +2851,7 @@ LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX2_rhoInv(LBM +WEIGTH[DIR_0P0] * (1.0 / (rhoL + rhoDIV * phi[DIR_0P0]) - 1.0 / (rhoL + rhoDIV * phi[DIR_0M0]))); } -LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX3_rhoInv(LBMReal rhoL, LBMReal rhoDIV) +real MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX3_rhoInv(real rhoL, real rhoDIV) { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -2861,7 +2861,7 @@ LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX3_rhoInv(LBM +WEIGTH[DIR_0P0] * (1.0 / (rhoL + rhoDIV * phi[DIR_00P]) - 1.0 / (rhoL + rhoDIV * phi[DIR_00M]))); } -LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX1_phi2() +real MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX1_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -2871,7 +2871,7 @@ LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX1_phi2() +WEIGTH[DIR_0P0] * (phi2[DIR_P00] - phi2[DIR_M00])); } -LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX2_phi2() +real MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX2_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -2881,7 +2881,7 @@ LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX2_phi2() +WEIGTH[DIR_0P0] * (phi2[DIR_0P0] - phi2[DIR_0M0])); } -LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX3_phi2() +real MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX3_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -2891,12 +2891,12 @@ LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::gradX3_phi2() +WEIGTH[DIR_0P0] * (phi2[DIR_00P] - phi2[DIR_00M])); } -LBMReal MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::nabla2_phi() +real MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::nabla2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal sum = 0.0; + real sum = 0.0; sum += WEIGTH[DIR_PPP] * ((((phi[DIR_PPP] - phi[DIR_000]) + (phi[DIR_MMM] - phi[DIR_000])) + ((phi[DIR_MMP] - phi[DIR_000]) + (phi[DIR_PPM] - phi[DIR_000]))) + (((phi[DIR_MPP] - phi[DIR_000]) + (phi[DIR_PMM] - phi[DIR_000])) + ((phi[DIR_PMP] - phi[DIR_000]) + (phi[DIR_MPM] - phi[DIR_000])))); sum += WEIGTH[DIR_0PP] * ( @@ -2973,7 +2973,7 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::computePhasefield() } } -void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::findNeighbors(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, +void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::findNeighbors(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3) { using namespace D3Q27System; @@ -2998,7 +2998,7 @@ void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::findNeighbors(CbArra } } -void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::findNeighbors2(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, +void MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::findNeighbors2(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3) { using namespace D3Q27System; diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.h index c5bc35604..a75618970 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.h @@ -64,62 +64,62 @@ protected: void initForcing(); - void forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); - void backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); - - LBMReal f1[D3Q27System::ENDF+1]; - - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; - - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH1; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH1; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH1; - - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH2; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH2; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH2; - - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressureOld; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr p1Old; - - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseFieldOld; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr divU; - - LBMReal h [D3Q27System::ENDF+1]; - LBMReal h2[D3Q27System::ENDF + 1]; - LBMReal g [D3Q27System::ENDF+1]; - LBMReal phi[D3Q27System::ENDF+1]; - LBMReal phi2[D3Q27System::ENDF + 1]; - LBMReal pr1[D3Q27System::ENDF+1]; - LBMReal phi_cutoff[D3Q27System::ENDF+1]; - - LBMReal gradX1_phi(); - LBMReal gradX2_phi(); - LBMReal gradX3_phi(); - LBMReal gradX1_rhoInv(LBMReal rhoL, LBMReal rhoDIV); - LBMReal gradX2_rhoInv(LBMReal rhoL, LBMReal rhoDIV); - LBMReal gradX3_rhoInv(LBMReal rhoL, LBMReal rhoDIV); - LBMReal gradX1_phi2(); - LBMReal gradX2_phi2(); - LBMReal gradX3_phi2(); + void forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); + void backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); + + real f1[D3Q27System::ENDF+1]; + + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; + + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH1; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH1; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH1; + + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH2; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH2; + + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressureOld; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr p1Old; + + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseFieldOld; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr divU; + + real h [D3Q27System::ENDF+1]; + real h2[D3Q27System::ENDF + 1]; + real g [D3Q27System::ENDF+1]; + real phi[D3Q27System::ENDF+1]; + real phi2[D3Q27System::ENDF + 1]; + real pr1[D3Q27System::ENDF+1]; + real phi_cutoff[D3Q27System::ENDF+1]; + + real gradX1_phi(); + real gradX2_phi(); + real gradX3_phi(); + real gradX1_rhoInv(real rhoL, real rhoDIV); + real gradX2_rhoInv(real rhoL, real rhoDIV); + real gradX3_rhoInv(real rhoL, real rhoDIV); + real gradX1_phi2(); + real gradX2_phi2(); + real gradX3_phi2(); void computePhasefield(); - void findNeighbors(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); - void findNeighbors2(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3); + void findNeighbors(CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); + void findNeighbors2(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3); - LBMReal nabla2_phi(); + real nabla2_phi(); mu::value_type muX1,muX2,muX3; mu::value_type muDeltaT; mu::value_type muNu; mu::value_type muRho; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; }; #endif diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp index 8f41edc77..a964dbae8 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp @@ -82,11 +82,11 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsCumulantLBMKernel::clone() return kernel; } ////////////////////////////////////////////////////////////////////////// - void MultiphaseTwoPhaseFieldsCumulantLBMKernel::forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { + void MultiphaseTwoPhaseFieldsCumulantLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m2 = mfa + mfc; - LBMReal m1 = mfc - mfa; - LBMReal m0 = m2 + mfb; + real m2 = mfa + mfc; + real m1 = mfc - mfa; + real m0 = m2 + mfb; mfa = m0; m0 *= Kinverse; m0 += oneMinusRho; @@ -95,10 +95,10 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsCumulantLBMKernel::clone() } //////////////////////////////////////////////////////////////////////////////// - void MultiphaseTwoPhaseFieldsCumulantLBMKernel::backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { + void MultiphaseTwoPhaseFieldsCumulantLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; - LBMReal m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; + real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; + real m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; mfc = (((mfc + mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 + vv) * c1o2) * K; mfa = m0; mfb = m1; @@ -106,20 +106,20 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsCumulantLBMKernel::clone() //////////////////////////////////////////////////////////////////////////////// - void MultiphaseTwoPhaseFieldsCumulantLBMKernel::forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { + void MultiphaseTwoPhaseFieldsCumulantLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal m1 = (mfa + mfc) + mfb; - LBMReal m2 = mfc - mfa; + real m1 = (mfa + mfc) + mfb; + real m2 = mfc - mfa; mfc = (mfc + mfa) + (v2 * m1 - c2 * vv * m2); mfb = m2 - vv * m1; mfa = m1; } - void MultiphaseTwoPhaseFieldsCumulantLBMKernel::backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { + void MultiphaseTwoPhaseFieldsCumulantLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); - LBMReal mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; + real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); + real mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; mfc = (mfc + mfa * (v2 + vv)) * c1o2 + mfb * (vv + c1o2); mfb = mb; mfa = ma; @@ -136,7 +136,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) forcingX2 = 0.0; forcingX3 = 0.0; - LBMReal oneOverInterfaceScale = 1.0; + real oneOverInterfaceScale = 1.0; ///////////////////////////////////// localDistributionsF = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getFdistributions())->getLocalDistributions(); @@ -166,12 +166,12 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //TODO //very expensive !!!!! - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField( - new CbArray3D<LBMReal, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField2( - new CbArray3D<LBMReal, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr divU( - new CbArray3D<LBMReal, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, 0.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField( + new CbArray3D<real, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField2( + new CbArray3D<real, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr divU( + new CbArray3D<real, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, 0.0)); for (int x3 = 0; x3 <= maxX3; x3++) { @@ -182,34 +182,34 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) int x2p = x2 + 1; int x3p = x3 + 1; - LBMReal mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsH1)(x1, x2, x3); + real mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsH1)(x1, x2, x3); (*phaseField)(x1, x2, x3) = (((mfaaa + mfccc) + (mfaca + mfcac)) + ((mfaac + mfcca) + (mfcaa + mfacc)) ) + (((mfaab + mfacb) + (mfcab + mfccb)) + ((mfaba + mfabc) + (mfcba + mfcbc)) + ((mfbaa + mfbac) + (mfbca + mfbcc))) + ((mfabb + mfcbb) + @@ -257,7 +257,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) } } - LBMReal collFactorM; + real collFactorM; //LBMReal forcingTerm[D3Q27System::ENDF + 1]; for (int x3 = minX3; x3 < maxX3; x3++) { @@ -292,53 +292,53 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) findNeighbors(phaseField, x1, x2, x3); findNeighbors2(phaseField2, x1, x2, x3); - LBMReal mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0 / densityRatio; - - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - - LBMReal dX1_phi = gradX1_phi(); - LBMReal dX2_phi = gradX2_phi(); - LBMReal dX3_phi = gradX3_phi(); - - LBMReal dX1_phi2 = gradX1_phi2(); - LBMReal dX2_phi2 = gradX2_phi2(); - LBMReal dX3_phi2 = gradX3_phi2(); - - - LBMReal denom2 = sqrt(dX1_phi * dX1_phi+ dX1_phi2 * dX1_phi2 + dX2_phi * dX2_phi + dX2_phi2 * dX2_phi2 + dX3_phi * dX3_phi+ dX3_phi2 * dX3_phi2) + 1e-9; - LBMReal normX1 = (dX1_phi-dX1_phi2)/denom2; - LBMReal normX2 = (dX2_phi-dX2_phi2)/denom2; - LBMReal normX3 = (dX3_phi-dX3_phi2)/denom2; + real mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); + + real rhoH = 1.0; + real rhoL = 1.0 / densityRatio; + + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + + real dX1_phi = gradX1_phi(); + real dX2_phi = gradX2_phi(); + real dX3_phi = gradX3_phi(); + + real dX1_phi2 = gradX1_phi2(); + real dX2_phi2 = gradX2_phi2(); + real dX3_phi2 = gradX3_phi2(); + + + real denom2 = sqrt(dX1_phi * dX1_phi+ dX1_phi2 * dX1_phi2 + dX2_phi * dX2_phi + dX2_phi2 * dX2_phi2 + dX3_phi * dX3_phi+ dX3_phi2 * dX3_phi2) + 1e-9; + real normX1 = (dX1_phi-dX1_phi2)/denom2; + real normX2 = (dX2_phi-dX2_phi2)/denom2; + real normX3 = (dX3_phi-dX3_phi2)/denom2; //LBMReal denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9; //LBMReal normX1 = dX1_phi / denom; @@ -350,10 +350,10 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) collFactorM = collFactorL + (collFactorL - collFactorG) * (phi[DIR_000] - phiH) / (phiH - phiL); - LBMReal mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); + real mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); //----------- Calculating Macroscopic Values ------------- - LBMReal rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); + real rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); ////Incompressible Kernal @@ -388,21 +388,21 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) mfbbb = (*this->zeroDistributionsF)(x1, x2, x3) / rho * c3; - LBMReal m0, m1, m2; - LBMReal rhoRef=c1; + real m0, m1, m2; + real rhoRef=c1; //LBMReal // LBMReal drho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) // + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) // + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb))/rhoRef; - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab))/rhoRef; - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba))/rhoRef; @@ -435,7 +435,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //////classic source term ///----Classic source term 8.4.2021 - LBMReal vvxF, vvyF, vvzF; + real vvxF, vvyF, vvzF; vvxF = vvx;//-2*c1o24 * lap_vx;// vvyF = vvy;//-2*c1o24 * lap_vy;// vvzF = vvz;//-2*c1o24 * lap_vz;// @@ -446,10 +446,10 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //if (vvxF != vvx) { // vvxF = vvxF; //} - LBMReal weightGrad = 1.0;// -denom * denom / (denom * denom + 0.0001 * 0.001); - LBMReal dX1_phiF = dX1_phi * weightGrad + (1.0 - weightGrad) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * normX1; - LBMReal dX2_phiF = dX2_phi * weightGrad + (1.0 - weightGrad) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * normX2; - LBMReal dX3_phiF = dX3_phi * weightGrad + (1.0 - weightGrad) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * normX3; + real weightGrad = 1.0;// -denom * denom / (denom * denom + 0.0001 * 0.001); + real dX1_phiF = dX1_phi * weightGrad + (1.0 - weightGrad) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * normX1; + real dX2_phiF = dX2_phi * weightGrad + (1.0 - weightGrad) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * normX2; + real dX3_phiF = dX3_phi * weightGrad + (1.0 - weightGrad) * (1.0 - phi[DIR_000]) * (phi[DIR_000]) * normX3; //dX1_phiF *= 1.2; //dX2_phiF *= 1.2; @@ -462,17 +462,17 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) // dX2_phiF = gradPhi * normX2; // dX3_phiF = gradPhi * normX3; - LBMReal ux2; - LBMReal uy2; - LBMReal uz2; + real ux2; + real uy2; + real uz2; ux2 = vvxF * vvxF; uy2 = vvyF * vvyF; uz2 = vvzF * vvzF; - LBMReal forcingTerm[D3Q27System::ENDF + 1]; + real forcingTerm[D3Q27System::ENDF + 1]; for (int dir = FSTARTDIR; dir <= FENDDIR; dir++) { - LBMReal velProd = DX1[dir] * vvxF + DX2[dir] * vvyF + DX3[dir] * vvzF; - LBMReal velSq1 = velProd * velProd; - LBMReal gamma = WEIGTH[dir] * (1.0 + 3 * velProd + (4.5 * velSq1 - 1.5 * (ux2 + uy2 + uz2))); + real velProd = DX1[dir] * vvxF + DX2[dir] * vvyF + DX3[dir] * vvzF; + real velSq1 = velProd * velProd; + real gamma = WEIGTH[dir] * (1.0 + 3 * velProd + (4.5 * velSq1 - 1.5 * (ux2 + uy2 + uz2))); //LBMReal fac1 = (gamma - WEIGTH[dir]) * c1o3 * rhoToPhi; @@ -485,7 +485,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) // (DX3[dir]) * (fac1 * dX3_phiF); - LBMReal fac1 = (gamma - WEIGTH[dir]) * c1o3 ; + real fac1 = (gamma - WEIGTH[dir]) * c1o3 ; forcingTerm[dir] = (-vvxF) * (fac1 * (dX1_phiF * rhoH + dX2_phi2 * rhoL)) + @@ -499,8 +499,8 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) } - LBMReal gamma = WEIGTH[DIR_000] * (1.0 - 1.5 * (ux2 + uy2 + uz2)); - LBMReal fac1 = (gamma - WEIGTH[DIR_000]) * c1o3 * rhoToPhi; + real gamma = WEIGTH[DIR_000] * (1.0 - 1.5 * (ux2 + uy2 + uz2)); + real fac1 = (gamma - WEIGTH[DIR_000]) * c1o3 * rhoToPhi; forcingTerm[DIR_000] = (-vvxF) * (fac1 * (dX1_phiF * rhoH + dX2_phi2 * rhoL)) + (-vvyF) * (fac1 * (dX2_phiF * rhoH + dX2_phi2 * rhoL)) + (-vvzF) * (fac1 * (dX3_phiF * rhoH + dX3_phi2 * rhoL)); @@ -657,14 +657,14 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //vvz += forcingX3 * deltaT * 0.5; // Z } - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2 = vvx * vvx; vy2 = vvy * vvy; vz2 = vvz * vvz; /////////////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho; + real oMdrho; oMdrho = mfccc + mfaaa; @@ -694,8 +694,8 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) oMdrho = (rhoRef - (oMdrho + m0))/rhoRef;// 12.03.21 check derivation!!!! //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -926,23 +926,23 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // Cumulants //////////////////////////////////////////////////////////////////////////////////// - LBMReal OxxPyyPzz = 1.; //omega2 or bulk viscosity + real OxxPyyPzz = 1.; //omega2 or bulk viscosity // LBMReal OxyyPxzz = 1.;//-s9;//2+s9;// // LBMReal OxyyMxzz = 1.;//2+s9;// - LBMReal O4 = 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + real O4 = 1.; + real O5 = 1.; + real O6 = 1.; /////fourth order parameters; here only for test. Move out of loop! - LBMReal OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); - LBMReal OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); + real OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); + real OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); // LBMReal Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); - LBMReal A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) - LBMReal BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //Cum 4. @@ -950,21 +950,21 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //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 - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); //Cum 5. - LBMReal CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal 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 + 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; //Cum 6. - LBMReal CUMccc = mfccc + ((-4. * mfbbb * mfbbb + real CUMccc = mfccc + ((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) @@ -978,10 +978,10 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; mxxPyyPzz-=mfaaa;//12.03.21 shifted by mfaaa - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; //applying phase field gradients first part: // mxxPyyPzz += c2o3 * rhoToPhi * (dX1_phi * vvx + dX2_phi * vvy + dX3_phi * vvz); @@ -996,13 +996,13 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //mfbab += c1o6 * (dX1_phi * vvz + dX3_phi * vvx) * correctionScaling; //mfbba += c1o6 * (dX1_phi * vvy + dX2_phi * vvx) * correctionScaling; - LBMReal dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz); - LBMReal dyuy = dxux + collFactorM * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactorM * c3o2 * mxxMzz; + real dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz); + real dyuy = dxux + collFactorM * c3o2 * mxxMyy; + real dzuz = dxux + collFactorM * c3o2 * mxxMzz; - LBMReal Dxy = -three * collFactorM * mfbba; - LBMReal Dxz = -three * collFactorM * mfbab; - LBMReal Dyz = -three * collFactorM * mfabb; + real Dxy = -three * collFactorM * mfbba; + real Dxz = -three * collFactorM * mfbab; + real Dyz = -three * collFactorM * mfabb; //relax @@ -1035,14 +1035,14 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //relax wadjust = OxyyMxzz + (1. - OxyyMxzz) * fabs(mfbbb) / (fabs(mfbbb) + qudricLimit); @@ -2261,7 +2261,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) ///////////////////// P H A S E - F I E L D S O L V E R //////////////////////////////////////////// /////CUMULANT PHASE-FIELD - LBMReal omegaD =1.0/( 3.0 * mob + 0.5); + real omegaD =1.0/( 3.0 * mob + 0.5); { mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); @@ -2325,7 +2325,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) // LBMReal vvz = uz; //////////////////////////////////////////////////////////////////////////////////// // second component - LBMReal concentration = + real concentration = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; @@ -2340,26 +2340,26 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) // vvy += fy * c1o2; // vvz += fz * c1o2; //////////////////////////////////////////////////////////////////////////////////// - LBMReal oneMinusRho = c1- concentration; + real oneMinusRho = c1- concentration; - LBMReal cx = + real cx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal cy = + real cy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal cz = + real cz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); //////////////////////////////////////////////////////////////////////////////////// // calculate the square of velocities for this lattice node - LBMReal cx2 = cx * cx; - LBMReal cy2 = cy * cy; - LBMReal cz2 = cz * cz; + real cx2 = cx * cx; + real cy2 = cy * cy; + real cz2 = cz * cz; //////////////////////////////////////////////////////////////////////////////////// //! - Chimera transform from well conditioned distributions to central moments as defined in Appendix J in \ref //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> @@ -2407,16 +2407,16 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //! // linearized orthogonalization of 3rd order central moments - LBMReal Mabc = mfabc - mfaba * c1o3; - LBMReal Mbca = mfbca - mfbaa * c1o3; - LBMReal Macb = mfacb - mfaab * c1o3; - LBMReal Mcba = mfcba - mfaba * c1o3; - LBMReal Mcab = mfcab - mfaab * c1o3; - LBMReal Mbac = mfbac - mfbaa * c1o3; + real Mabc = mfabc - mfaba * c1o3; + real Mbca = mfbca - mfbaa * c1o3; + real Macb = mfacb - mfaab * c1o3; + real Mcba = mfcba - mfaba * c1o3; + real Mcab = mfcab - mfaab * c1o3; + real Mbac = mfbac - mfbaa * c1o3; // linearized orthogonalization of 5th order central moments - LBMReal Mcbc = mfcbc - mfaba * c1o9; - LBMReal Mbcc = mfbcc - mfbaa * c1o9; - LBMReal Mccb = mfccb - mfaab * c1o9; + real Mcbc = mfcbc - mfaba * c1o9; + real Mbcc = mfbcc - mfbaa * c1o9; + real Mccb = mfccb - mfaab * c1o9; // collision of 1st order moments // LBMReal ccx, ccy, ccz; @@ -2641,7 +2641,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) // LBMReal vvz = uz; //////////////////////////////////////////////////////////////////////////////////// // second component - LBMReal concentration = + real concentration = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; @@ -2656,26 +2656,26 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) // vvy += fy * c1o2; // vvz += fz * c1o2; //////////////////////////////////////////////////////////////////////////////////// - LBMReal oneMinusRho = c1 - concentration; + real oneMinusRho = c1 - concentration; - LBMReal cx = + real cx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal cy = + real cy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal cz = + real cz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); //////////////////////////////////////////////////////////////////////////////////// // calculate the square of velocities for this lattice node - LBMReal cx2 = cx * cx; - LBMReal cy2 = cy * cy; - LBMReal cz2 = cz * cz; + real cx2 = cx * cx; + real cy2 = cy * cy; + real cz2 = cz * cz; //////////////////////////////////////////////////////////////////////////////////// //! - Chimera transform from well conditioned distributions to central moments as defined in Appendix J in \ref //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> @@ -2723,16 +2723,16 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) //! // linearized orthogonalization of 3rd order central moments - LBMReal Mabc = mfabc - mfaba * c1o3; - LBMReal Mbca = mfbca - mfbaa * c1o3; - LBMReal Macb = mfacb - mfaab * c1o3; - LBMReal Mcba = mfcba - mfaba * c1o3; - LBMReal Mcab = mfcab - mfaab * c1o3; - LBMReal Mbac = mfbac - mfbaa * c1o3; + real Mabc = mfabc - mfaba * c1o3; + real Mbca = mfbca - mfbaa * c1o3; + real Macb = mfacb - mfaab * c1o3; + real Mcba = mfcba - mfaba * c1o3; + real Mcab = mfcab - mfaab * c1o3; + real Mbac = mfbac - mfbaa * c1o3; // linearized orthogonalization of 5th order central moments - LBMReal Mcbc = mfcbc - mfaba * c1o9; - LBMReal Mbcc = mfbcc - mfbaa * c1o9; - LBMReal Mccb = mfccb - mfaab * c1o9; + real Mcbc = mfcbc - mfaba * c1o9; + real Mbcc = mfbcc - mfbaa * c1o9; + real Mccb = mfccb - mfaab * c1o9; // collision of 1st order moments cx = cx * (c1 - omegaD) + omegaD * vvx * concentration + @@ -2982,7 +2982,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate(int step) } ////////////////////////////////////////////////////////////////////////// -LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX1_phi() +real MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX1_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -2997,7 +2997,7 @@ LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX1_phi() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX2_phi() +real MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3012,7 +3012,7 @@ LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX2_phi() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX3_phi() +real MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX3_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3027,7 +3027,7 @@ LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX3_phi() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX1_phi2() +real MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX1_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3042,7 +3042,7 @@ LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX1_phi2() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX2_phi2() +real MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX2_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3057,7 +3057,7 @@ LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX2_phi2() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX3_phi2() +real MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX3_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3076,12 +3076,12 @@ LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::gradX3_phi2() -LBMReal MultiphaseTwoPhaseFieldsCumulantLBMKernel::nabla2_phi() +real MultiphaseTwoPhaseFieldsCumulantLBMKernel::nabla2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal sum = 0.0; + real sum = 0.0; sum += WEIGTH[DIR_PPP] * ((((phi[DIR_PPP] - phi[DIR_000]) + (phi[DIR_MMM] - phi[DIR_000])) + ((phi[DIR_MMP] - phi[DIR_000]) + (phi[DIR_PPM] - phi[DIR_000]))) + (((phi[DIR_MPP] - phi[DIR_000]) + (phi[DIR_PMM] - phi[DIR_000])) + ((phi[DIR_PMP] - phi[DIR_000]) + (phi[DIR_MPM] - phi[DIR_000])))); sum += WEIGTH[DIR_0PP] * ( @@ -3159,7 +3159,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::computePhasefield() } } -void MultiphaseTwoPhaseFieldsCumulantLBMKernel::findNeighbors(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, +void MultiphaseTwoPhaseFieldsCumulantLBMKernel::findNeighbors(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3) { using namespace D3Q27System; @@ -3180,7 +3180,7 @@ void MultiphaseTwoPhaseFieldsCumulantLBMKernel::findNeighbors(CbArray3D<LBMReal, } } -void MultiphaseTwoPhaseFieldsCumulantLBMKernel::findNeighbors2(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, +void MultiphaseTwoPhaseFieldsCumulantLBMKernel::findNeighbors2(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3) { using namespace D3Q27System; diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.h index a65fe073f..66c6e1b72 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.h @@ -51,64 +51,64 @@ public: virtual ~MultiphaseTwoPhaseFieldsCumulantLBMKernel(void) = default; void calculate(int step) override; SPtr<LBMKernel> clone() override; - void forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); - void backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); + void forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); + void backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); double getCalculationTime() override { return .0; } protected: virtual void initDataSet(); void swapDistributions() override; - LBMReal f1[D3Q27System::ENDF+1]; + real f1[D3Q27System::ENDF+1]; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH1; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH1; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH1; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH1; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH1; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH1; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH2; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH2; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH2; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH2; - //CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr phaseField; + //CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr phaseField; - LBMReal h [D3Q27System::ENDF+1]; - LBMReal h2[D3Q27System::ENDF + 1]; - LBMReal g [D3Q27System::ENDF+1]; - LBMReal phi[D3Q27System::ENDF+1]; - LBMReal phi2[D3Q27System::ENDF + 1]; - LBMReal pr1[D3Q27System::ENDF+1]; - LBMReal phi_cutoff[D3Q27System::ENDF+1]; + real h [D3Q27System::ENDF+1]; + real h2[D3Q27System::ENDF + 1]; + real g [D3Q27System::ENDF+1]; + real phi[D3Q27System::ENDF+1]; + real phi2[D3Q27System::ENDF + 1]; + real pr1[D3Q27System::ENDF+1]; + real phi_cutoff[D3Q27System::ENDF+1]; - LBMReal gradX1_phi(); - LBMReal gradX2_phi(); - LBMReal gradX3_phi(); - LBMReal gradX1_phi2(); - LBMReal gradX2_phi2(); - LBMReal gradX3_phi2(); + real gradX1_phi(); + real gradX2_phi(); + real gradX3_phi(); + real gradX1_phi2(); + real gradX2_phi2(); + real gradX3_phi2(); //LBMReal gradX1_pr1(); //LBMReal gradX2_pr1(); //LBMReal gradX3_pr1(); //LBMReal dirgradC_phi(int n, int k); void computePhasefield(); - void findNeighbors(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); - void findNeighbors2(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3); + void findNeighbors(CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); + void findNeighbors2(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3); //void findNeighbors(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf /*Pressure-Field*/, int x1, int x2, int x3); //void pressureFiltering(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf /*Pressure-Field*/, CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf_filtered /*Pressure-Field*/); - LBMReal nabla2_phi(); + real nabla2_phi(); mu::value_type muX1,muX2,muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; }; #endif diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp index 89a3b4fc1..a2386ea37 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp @@ -52,8 +52,8 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::initDataSet() SPtr<DistributionArray3D> h2(new D3Q27EsoTwist3DSplittedVector(nx[0] + 4, nx[1] + 4, nx[2] + 4, -999.9)); // For phase-field //SPtr<PhaseFieldArray3D> divU(new PhaseFieldArray3D( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); SPtr<PhaseFieldArray3D> divU1(new PhaseFieldArray3D( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressure(new CbArray3D<LBMReal, IndexerX3X2X1>( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); - pressureOld = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressure(new CbArray3D<real, IndexerX3X2X1>( nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + pressureOld = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); dataSet->setFdistributions(f); dataSet->setHdistributions(h); // For phase-field dataSet->setH2distributions(h2); // For phase-field @@ -61,9 +61,9 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::initDataSet() dataSet->setPhaseField(divU1); dataSet->setPressureField(pressure); - phaseField = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, -999.0)); - phaseField2 = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, -999.0)); - divU = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); + phaseField = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, -999.0)); + phaseField2 = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, -999.0)); + divU = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 4, nx[1] + 4, nx[2] + 4, 0.0)); } ////////////////////////////////////////////////////////////////////////// @@ -95,11 +95,11 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::clone() return kernel; } ////////////////////////////////////////////////////////////////////////// - void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { + void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m2 = mfa + mfc; - LBMReal m1 = mfc - mfa; - LBMReal m0 = m2 + mfb; + real m2 = mfa + mfc; + real m1 = mfc - mfa; + real m0 = m2 + mfb; mfa = m0; m0 *= Kinverse; m0 += oneMinusRho; @@ -108,10 +108,10 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::clone() } //////////////////////////////////////////////////////////////////////////////// - void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { + void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; - LBMReal m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; + real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; + real m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; mfc = (((mfc + mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 + vv) * c1o2) * K; mfa = m0; mfb = m1; @@ -119,20 +119,20 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::clone() //////////////////////////////////////////////////////////////////////////////// - void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { + void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal m1 = (mfa + mfc) + mfb; - LBMReal m2 = mfc - mfa; + real m1 = (mfa + mfc) + mfb; + real m2 = mfc - mfa; mfc = (mfc + mfa) + (v2 * m1 - c2 * vv * m2); mfb = m2 - vv * m1; mfa = m1; } - void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { + void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); - LBMReal mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; + real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); + real mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; mfc = (mfc + mfa * (v2 + vv)) * c1o2 + mfb * (vv + c1o2); mfb = mb; mfa = ma; @@ -149,7 +149,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) forcingX2 = 0.0; forcingX3 = 0.0; - LBMReal oneOverInterfaceScale = c4 / interfaceWidth; //1.0;//1.5; + real oneOverInterfaceScale = c4 / interfaceWidth; //1.0;//1.5; ///////////////////////////////////// localDistributionsF = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getFdistributions())->getLocalDistributions(); @@ -164,7 +164,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) nonLocalDistributionsH2 = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getH2distributions())->getNonLocalDistributions(); zeroDistributionsH2 = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getH2distributions())->getZeroDistributions(); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressure = dataSet->getPressureField(); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressure = dataSet->getPressureField(); SPtr<BCArray3D> bcArray = this->getBCProcessor()->getBCArray(); @@ -183,7 +183,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) //TODO //very expensive !!!!! - //CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField( + //CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField( // new CbArray3D<LBMReal, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); // CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField2( // new CbArray3D<LBMReal, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); @@ -199,34 +199,34 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) int x2p = x2 + 1; int x3p = x3 + 1; - LBMReal mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsH1)(x1, x2, x3); + real mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsH1)(x1, x2, x3); (*phaseField)(x1, x2, x3) = (((mfaaa + mfccc) + (mfaca + mfcac)) + ((mfaac + mfcca) + (mfcaa + mfacc)) ) + (((mfaab + mfacb) + (mfcab + mfccb)) + ((mfaba + mfabc) + (mfcba + mfcbc)) + ((mfbaa + mfbac) + (mfbca + mfbcc))) + ((mfabb + mfcbb) + @@ -302,16 +302,16 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0 / densityRatio; + real rhoH = 1.0; + real rhoL = 1.0 / densityRatio; - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - LBMReal drho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real drho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal rho = rhoH + rhoToPhi * ((*phaseField)(x1, x2, x3) - phiH); + real rho = rhoH + rhoToPhi * ((*phaseField)(x1, x2, x3) - phiH); //! variable density -> TRANSFER! //LBMReal rho = rhoH * ((*phaseField)(x1, x2, x3)) + rhoL * ((*phaseField2)(x1, x2, x3)); @@ -325,7 +325,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) } } - LBMReal collFactorM; + real collFactorM; //LBMReal forcingTerm[D3Q27System::ENDF + 1]; ////filter @@ -386,7 +386,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) for (int x1 = minX1-1; x1 <= maxX1; x1++) { if (!bcArray->isSolid(x1, x2, x3) && !bcArray->isUndefined(x1, x2, x3)) { - LBMReal sum = 0.; + real sum = 0.; @@ -513,43 +513,43 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) findNeighbors(phaseField, x1, x2, x3); findNeighbors2(phaseField2, x1, x2, x3); - LBMReal mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0 / densityRatio; - - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - - LBMReal dX1_phi = gradX1_phi(); - LBMReal dX2_phi = gradX2_phi(); - LBMReal dX3_phi = gradX3_phi(); + real mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); + + real rhoH = 1.0; + real rhoL = 1.0 / densityRatio; + + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + + real dX1_phi = gradX1_phi(); + real dX2_phi = gradX2_phi(); + real dX3_phi = gradX3_phi(); //LBMReal dX1_phi2 = gradX1_phi2(); //LBMReal dX2_phi2 = gradX2_phi2(); @@ -561,20 +561,20 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) //LBMReal normX2 = (dX2_phi-dX2_phi2)/denom2; //LBMReal normX3 = (dX3_phi-dX3_phi2)/denom2; - LBMReal denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9; - LBMReal normX1 = dX1_phi / denom; - LBMReal normX2 = dX2_phi / denom; - LBMReal normX3 = dX3_phi / denom; + real denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9; + real normX1 = dX1_phi / denom; + real normX2 = dX2_phi / denom; + real normX3 = dX3_phi / denom; collFactorM = collFactorL + (collFactorL - collFactorG) * (phi[DIR_000] - phiH) / (phiH - phiL); - LBMReal mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); + real mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); //----------- Calculating Macroscopic Values ------------- - LBMReal rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); + real rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); //! variable density -> TRANSFER! //LBMReal rho = rhoH * ((*phaseField)(x1, x2, x3)) + rhoL * ((*phaseField2)(x1, x2, x3)); @@ -612,21 +612,21 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) //mfbbb = (*this->zeroDistributionsF)(x1, x2, x3);// / rho * c3; - LBMReal m0, m1, m2; - LBMReal rhoRef=c1; + real m0, m1, m2; + real rhoRef=c1; //LBMReal // LBMReal drho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) // + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) // + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb))/rhoRef; - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab))/rhoRef; - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba))/rhoRef; @@ -661,9 +661,9 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) // + WEIGTH[DIR_P00] * ((*pressure)(x1, x2, x3+1) - (*pressure)(x1, x2, x3-1))); - LBMReal gradPx = 0.0; - LBMReal gradPy = 0.0; - LBMReal gradPz = 0.0; + real gradPx = 0.0; + real gradPy = 0.0; + real gradPz = 0.0; for (int dir1 = -1; dir1 <= 1; dir1++) { for (int dir2 = -1; dir2 <= 1; dir2++) { int yyy = x2 + dir1; @@ -713,7 +713,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) } //Viscosity increase by pressure gradient - LBMReal errPhi = (((1.0 - phi[DIR_000]) * (phi[DIR_000]) * oneOverInterfaceScale)- denom); + real errPhi = (((1.0 - phi[DIR_000]) * (phi[DIR_000]) * oneOverInterfaceScale)- denom); //LBMReal limVis = 0.0000001*10;//0.01; // collFactorM =collFactorM/(c1+limVis*(errPhi*errPhi)*collFactorM); // collFactorM = (collFactorM < 1.8) ? 1.8 : collFactorM; @@ -986,14 +986,14 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) // //vvz += forcingX3 * deltaT * 0.5; // Z //} - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2 = vvx * vvx; vy2 = vvy * vvy; vz2 = vvz * vvz; /////////////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho; + real oMdrho; oMdrho = mfccc + mfaaa; @@ -1023,8 +1023,8 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) oMdrho = (rhoRef - (oMdrho + m0))/rhoRef;// 12.03.21 check derivation!!!! //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -1258,23 +1258,23 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) // mfaaa = 0.0; - LBMReal OxxPyyPzz = 1.; //omega2 or bulk viscosity + real OxxPyyPzz = 1.; //omega2 or bulk viscosity // LBMReal OxyyPxzz = 1.;//-s9;//2+s9;// // LBMReal OxyyMxzz = 1.;//2+s9;// - LBMReal O4 = 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + real O4 = 1.; + real O5 = 1.; + real O6 = 1.; /////fourth order parameters; here only for test. Move out of loop! - LBMReal OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); - LBMReal OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); - // LBMReal Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); - LBMReal A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); + real OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); + // real Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); + real A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) - LBMReal BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //Cum 4. @@ -1282,21 +1282,21 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) //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 - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); //Cum 5. - LBMReal CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal 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 + 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; //Cum 6. - LBMReal CUMccc = mfccc + ((-4. * mfbbb * mfbbb + real CUMccc = mfccc + ((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) @@ -1318,13 +1318,13 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; // LBMReal mfaaaS = (mfaaa * (-4 - 3 * OxxPyyPzz * (-1 + rho)) + 6 * mxxPyyPzz * OxxPyyPzz * (-1 + rho)) / (-4 + 3 * OxxPyyPzz * (-1 + rho)); mxxPyyPzz -= mfaaa ;//12.03.21 shifted by mfaaa //mxxPyyPzz-=(mfaaa+mfaaaS)*c1o2;//12.03.21 shifted by mfaaa - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; //applying phase field gradients first part: // mxxPyyPzz += c2o3 * rhoToPhi * (dX1_phi * vvx + dX2_phi * vvy + dX3_phi * vvz); @@ -1339,13 +1339,13 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) //mfbab += c1o6 * (dX1_phi * vvz + dX3_phi * vvx) * correctionScaling; //mfbba += c1o6 * (dX1_phi * vvy + dX2_phi * vvx) * correctionScaling; - LBMReal dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz); - LBMReal dyuy = dxux + collFactorM * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactorM * c3o2 * mxxMzz; + real dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz); + real dyuy = dxux + collFactorM * c3o2 * mxxMyy; + real dzuz = dxux + collFactorM * c3o2 * mxxMzz; - LBMReal Dxy = -three * collFactorM * mfbba; - LBMReal Dxz = -three * collFactorM * mfbab; - LBMReal Dyz = -three * collFactorM * mfabb; + real Dxy = -three * collFactorM * mfbba; + real Dxz = -three * collFactorM * mfbab; + real Dyz = -three * collFactorM * mfabb; //relax @@ -1383,14 +1383,14 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //relax wadjust = OxyyMxzz + (1. - OxyyMxzz) * fabs(mfbbb) / (fabs(mfbbb) + qudricLimit); @@ -1732,7 +1732,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// //#ifdef PROOF_CORRECTNESS - LBMReal rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; // //LBMReal dif = fabs(drho - rho_post); @@ -2619,7 +2619,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) ///////////////////// P H A S E - F I E L D S O L V E R //////////////////////////////////////////// /////CUMULANT PHASE-FIELD - LBMReal omegaD =1.0/( 3.0 * mob + 0.5); + real omegaD =1.0/( 3.0 * mob + 0.5); { mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); @@ -2683,7 +2683,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) // LBMReal vvz = uz; //////////////////////////////////////////////////////////////////////////////////// // second component - LBMReal concentration = + real concentration = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; @@ -2698,26 +2698,26 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) // vvy += fy * c1o2; // vvz += fz * c1o2; //////////////////////////////////////////////////////////////////////////////////// - LBMReal oneMinusRho = c1- concentration; + real oneMinusRho = c1- concentration; - LBMReal cx = + real cx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal cy = + real cy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal cz = + real cz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); //////////////////////////////////////////////////////////////////////////////////// // calculate the square of velocities for this lattice node - LBMReal cx2 = cx * cx; - LBMReal cy2 = cy * cy; - LBMReal cz2 = cz * cz; + real cx2 = cx * cx; + real cy2 = cy * cy; + real cz2 = cz * cz; //////////////////////////////////////////////////////////////////////////////////// //! - Chimera transform from well conditioned distributions to central moments as defined in Appendix J in \ref //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> @@ -2765,16 +2765,16 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) //! // linearized orthogonalization of 3rd order central moments - LBMReal Mabc = mfabc - mfaba * c1o3; - LBMReal Mbca = mfbca - mfbaa * c1o3; - LBMReal Macb = mfacb - mfaab * c1o3; - LBMReal Mcba = mfcba - mfaba * c1o3; - LBMReal Mcab = mfcab - mfaab * c1o3; - LBMReal Mbac = mfbac - mfbaa * c1o3; + real Mabc = mfabc - mfaba * c1o3; + real Mbca = mfbca - mfbaa * c1o3; + real Macb = mfacb - mfaab * c1o3; + real Mcba = mfcba - mfaba * c1o3; + real Mcab = mfcab - mfaab * c1o3; + real Mbac = mfbac - mfbaa * c1o3; // linearized orthogonalization of 5th order central moments - LBMReal Mcbc = mfcbc - mfaba * c1o9; - LBMReal Mbcc = mfbcc - mfbaa * c1o9; - LBMReal Mccb = mfccb - mfaab * c1o9; + real Mcbc = mfcbc - mfaba * c1o9; + real Mbcc = mfbcc - mfbaa * c1o9; + real Mccb = mfccb - mfaab * c1o9; // collision of 1st order moments // LBMReal ccx, ccy, ccz; @@ -3006,7 +3006,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) // LBMReal vvz = uz; //////////////////////////////////////////////////////////////////////////////////// // second component - LBMReal concentration = + real concentration = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; @@ -3021,26 +3021,26 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) // vvy += fy * c1o2; // vvz += fz * c1o2; //////////////////////////////////////////////////////////////////////////////////// - LBMReal oneMinusRho = c1 - concentration; + real oneMinusRho = c1 - concentration; - LBMReal cx = + real cx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal cy = + real cy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal cz = + real cz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); //////////////////////////////////////////////////////////////////////////////////// // calculate the square of velocities for this lattice node - LBMReal cx2 = cx * cx; - LBMReal cy2 = cy * cy; - LBMReal cz2 = cz * cz; + real cx2 = cx * cx; + real cy2 = cy * cy; + real cz2 = cz * cz; //////////////////////////////////////////////////////////////////////////////////// //! - Chimera transform from well conditioned distributions to central moments as defined in Appendix J in \ref //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> @@ -3088,16 +3088,16 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) //! // linearized orthogonalization of 3rd order central moments - LBMReal Mabc = mfabc - mfaba * c1o3; - LBMReal Mbca = mfbca - mfbaa * c1o3; - LBMReal Macb = mfacb - mfaab * c1o3; - LBMReal Mcba = mfcba - mfaba * c1o3; - LBMReal Mcab = mfcab - mfaab * c1o3; - LBMReal Mbac = mfbac - mfbaa * c1o3; + real Mabc = mfabc - mfaba * c1o3; + real Mbca = mfbca - mfbaa * c1o3; + real Macb = mfacb - mfaab * c1o3; + real Mcba = mfcba - mfaba * c1o3; + real Mcab = mfcab - mfaab * c1o3; + real Mbac = mfbac - mfbaa * c1o3; // linearized orthogonalization of 5th order central moments - LBMReal Mcbc = mfcbc - mfaba * c1o9; - LBMReal Mbcc = mfbcc - mfbaa * c1o9; - LBMReal Mccb = mfccb - mfaab * c1o9; + real Mcbc = mfcbc - mfaba * c1o9; + real Mbcc = mfbcc - mfbaa * c1o9; + real Mccb = mfccb - mfaab * c1o9; // collision of 1st order moments cx = cx * (c1 - omegaD) + omegaD * vvx * concentration + @@ -3347,7 +3347,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate(int step) } ////////////////////////////////////////////////////////////////////////// -LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX1_phi() +real MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX1_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3362,7 +3362,7 @@ LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX1_phi() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX2_phi() +real MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3377,7 +3377,7 @@ LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX2_phi() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX3_phi() +real MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX3_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3392,7 +3392,7 @@ LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX3_phi() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX1_phi2() +real MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX1_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3407,7 +3407,7 @@ LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX1_phi2() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX2_phi2() +real MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX2_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3422,7 +3422,7 @@ LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX2_phi2() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX3_phi2() +real MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX3_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3441,12 +3441,12 @@ LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::gradX3_phi2() -LBMReal MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::nabla2_phi() +real MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::nabla2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal sum = 0.0; + real sum = 0.0; sum += WEIGTH[DIR_PPP] * ((((phi[DIR_PPP] - phi[DIR_000]) + (phi[DIR_MMM] - phi[DIR_000])) + ((phi[DIR_MMP] - phi[DIR_000]) + (phi[DIR_PPM] - phi[DIR_000]))) + (((phi[DIR_MPP] - phi[DIR_000]) + (phi[DIR_PMM] - phi[DIR_000])) + ((phi[DIR_PMP] - phi[DIR_000]) + (phi[DIR_MPM] - phi[DIR_000])))); sum += WEIGTH[DIR_0PP] * ( @@ -3524,7 +3524,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::computePhasefield() } } -void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::findNeighbors(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, +void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::findNeighbors(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3) { using namespace D3Q27System; @@ -3545,7 +3545,7 @@ void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::findNeighbors(CbArray3D<LB } } -void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::findNeighbors2(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, +void MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::findNeighbors2(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3) { using namespace D3Q27System; diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.h index 7d20f8210..717da6347 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.h @@ -64,67 +64,67 @@ protected: void initForcing(); - void forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); - void backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); + void forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); + void backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); - LBMReal f1[D3Q27System::ENDF+1]; + real f1[D3Q27System::ENDF+1]; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH1; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH1; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH1; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH1; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH1; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH1; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH2; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH2; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH2; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH2; //CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr phaseField; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressureOld; - - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField2; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr divU; - - LBMReal h [D3Q27System::ENDF+1]; - LBMReal h2[D3Q27System::ENDF + 1]; - LBMReal g [D3Q27System::ENDF+1]; - LBMReal phi[D3Q27System::ENDF+1]; - LBMReal phi2[D3Q27System::ENDF + 1]; - LBMReal pr1[D3Q27System::ENDF+1]; - LBMReal phi_cutoff[D3Q27System::ENDF+1]; - - LBMReal gradX1_phi(); - LBMReal gradX2_phi(); - LBMReal gradX3_phi(); - LBMReal gradX1_phi2(); - LBMReal gradX2_phi2(); - LBMReal gradX3_phi2(); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressureOld; + + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField2; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr divU; + + real h [D3Q27System::ENDF+1]; + real h2[D3Q27System::ENDF + 1]; + real g [D3Q27System::ENDF+1]; + real phi[D3Q27System::ENDF+1]; + real phi2[D3Q27System::ENDF + 1]; + real pr1[D3Q27System::ENDF+1]; + real phi_cutoff[D3Q27System::ENDF+1]; + + real gradX1_phi(); + real gradX2_phi(); + real gradX3_phi(); + real gradX1_phi2(); + real gradX2_phi2(); + real gradX3_phi2(); //LBMReal gradX1_pr1(); //LBMReal gradX2_pr1(); //LBMReal gradX3_pr1(); //LBMReal dirgradC_phi(int n, int k); void computePhasefield(); - void findNeighbors(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); - void findNeighbors2(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3); + void findNeighbors(CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); + void findNeighbors2(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3); //void findNeighbors(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf /*Pressure-Field*/, int x1, int x2, int x3); //void pressureFiltering(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf /*Pressure-Field*/, CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf_filtered /*Pressure-Field*/); - LBMReal nabla2_phi(); + real nabla2_phi(); mu::value_type muX1,muX2,muX3; mu::value_type muDeltaT; mu::value_type muNu; mu::value_type muRho; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; }; #endif diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp index 2ff3d70f8..fc295634c 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp @@ -51,8 +51,8 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::initDataSet() SPtr<DistributionArray3D> h(new D3Q27EsoTwist3DSplittedVector(nx[0] + 2, nx[1] + 2, nx[2] + 2, -999.9)); // For phase-field SPtr<DistributionArray3D> h2(new D3Q27EsoTwist3DSplittedVector(nx[0] + 2, nx[1] + 2, nx[2] + 2, -999.9)); // For phase-field SPtr<PhaseFieldArray3D> divU(new PhaseFieldArray3D(nx[0] + 2, nx[1] + 2, nx[2] + 2, 0.0)); - pressure= CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 2, nx[1] + 2, nx[2] + 2, 0.0)); - pressureOld = CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<LBMReal, IndexerX3X2X1>(nx[0] + 2, nx[1] + 2, nx[2] + 2, 0.0)); + pressure= CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 2, nx[1] + 2, nx[2] + 2, 0.0)); + pressureOld = CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr(new CbArray3D<real, IndexerX3X2X1>(nx[0] + 2, nx[1] + 2, nx[2] + 2, 0.0)); dataSet->setFdistributions(f); dataSet->setHdistributions(h); // For phase-field dataSet->setH2distributions(h2); // For phase-field @@ -84,11 +84,11 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::clone() return kernel; } ////////////////////////////////////////////////////////////////////////// - void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { + void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m2 = mfa + mfc; - LBMReal m1 = mfc - mfa; - LBMReal m0 = m2 + mfb; + real m2 = mfa + mfc; + real m1 = mfc - mfa; + real m0 = m2 + mfb; mfa = m0; m0 *= Kinverse; m0 += oneMinusRho; @@ -97,10 +97,10 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::clone() } //////////////////////////////////////////////////////////////////////////////// - void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho) { + void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho) { using namespace UbMath; - LBMReal m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; - LBMReal m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; + real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 - vv) * c1o2) * K; + real m1 = (((mfa - mfc) - c2 * mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (-v2)) * K; mfc = (((mfc + mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + oneMinusRho) * (v2 + vv) * c1o2) * K; mfa = m0; mfb = m1; @@ -108,20 +108,20 @@ SPtr<LBMKernel> MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::clone() //////////////////////////////////////////////////////////////////////////////// - void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { + void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal m1 = (mfa + mfc) + mfb; - LBMReal m2 = mfc - mfa; + real m1 = (mfa + mfc) + mfb; + real m2 = mfc - mfa; mfc = (mfc + mfa) + (v2 * m1 - c2 * vv * m2); mfb = m2 - vv * m1; mfa = m1; } - void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2) { + void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) { using namespace UbMath; - LBMReal ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); - LBMReal mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; + real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); + real mb = ((mfa - mfc) - mfa * v2) - c2 * mfb * vv; mfc = (mfc + mfa * (v2 + vv)) * c1o2 + mfb * (vv + c1o2); mfb = mb; mfa = ma; @@ -138,7 +138,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) forcingX2 = 0.0; forcingX3 = 0.0; - LBMReal oneOverInterfaceScale = 1.0; + real oneOverInterfaceScale = 1.0; ///////////////////////////////////// localDistributionsF = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(dataSet->getFdistributions())->getLocalDistributions(); @@ -168,12 +168,12 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) //TODO //very expensive !!!!! - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField( - new CbArray3D<LBMReal, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr phaseField2( - new CbArray3D<LBMReal, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr divU( - new CbArray3D<LBMReal, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, 0.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField( + new CbArray3D<real, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr phaseField2( + new CbArray3D<real, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, -999.0)); + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr divU( + new CbArray3D<real, IndexerX3X2X1>(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3, 0.0)); #pragma omp parallel for for (int x3 = 0; x3 <= maxX3; x3++) { @@ -184,34 +184,34 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) int x2p = x2 + 1; int x3p = x3 + 1; - LBMReal mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsH1)(x1, x2, x3); + real mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsH1)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsH1)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsH1)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsH1)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsH1)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsH1)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsH1)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsH1)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsH1)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsH1)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsH1)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsH1)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsH1)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsH1)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsH1)(x1, x2, x3); (*phaseField)(x1, x2, x3) = (((mfaaa + mfccc) + (mfaca + mfcac)) + ((mfaac + mfcca) + (mfcaa + mfacc)) ) + (((mfaab + mfacb) + (mfcab + mfccb)) + ((mfaba + mfabc) + (mfcba + mfcbc)) + ((mfbaa + mfbac) + (mfbca + mfbcc))) + ((mfabb + mfcbb) + @@ -287,16 +287,16 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0 / densityRatio; + real rhoH = 1.0; + real rhoL = 1.0 / densityRatio; - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - LBMReal drho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real drho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); + real rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); (*pressure)(x1, x2, x3) = (*pressure)(x1, x2, x3) + rho * c1o3 * drho; ////!!!!!! relplace by pointer swap! @@ -306,7 +306,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) } } - LBMReal collFactorM; + real collFactorM; //LBMReal forcingTerm[D3Q27System::ENDF + 1]; ////filter @@ -367,7 +367,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) for (int x1 = 0; x1 <= maxX1; x1++) { if (!bcArray->isSolid(x1, x2, x3) && !bcArray->isUndefined(x1, x2, x3)) { - LBMReal sum = 0.; + real sum = 0.; @@ -491,43 +491,43 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) findNeighbors(phaseField, x1, x2, x3); findNeighbors2(phaseField2, x1, x2, x3); - LBMReal mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0 / densityRatio; - - LBMReal rhoToPhi = (rhoH - rhoL) / (phiH - phiL); - - LBMReal dX1_phi = gradX1_phi(); - LBMReal dX2_phi = gradX2_phi(); - LBMReal dX3_phi = gradX3_phi(); + real mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); + + real rhoH = 1.0; + real rhoL = 1.0 / densityRatio; + + real rhoToPhi = (rhoH - rhoL) / (phiH - phiL); + + real dX1_phi = gradX1_phi(); + real dX2_phi = gradX2_phi(); + real dX3_phi = gradX3_phi(); //LBMReal dX1_phi2 = gradX1_phi2(); //LBMReal dX2_phi2 = gradX2_phi2(); @@ -539,20 +539,20 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) //LBMReal normX2 = (dX2_phi-dX2_phi2)/denom2; //LBMReal normX3 = (dX3_phi-dX3_phi2)/denom2; - LBMReal denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9; - LBMReal normX1 = dX1_phi / denom; - LBMReal normX2 = dX2_phi / denom; - LBMReal normX3 = dX3_phi / denom; + real denom = sqrt(dX1_phi * dX1_phi + dX2_phi * dX2_phi + dX3_phi * dX3_phi) + 1e-9; + real normX1 = dX1_phi / denom; + real normX2 = dX2_phi / denom; + real normX3 = dX3_phi / denom; collFactorM = collFactorL + (collFactorL - collFactorG) * (phi[DIR_000] - phiH) / (phiH - phiL); - LBMReal mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); + real mu = 2 * beta * phi[DIR_000] * (phi[DIR_000] - 1) * (2 * phi[DIR_000] - 1) - kappa * nabla2_phi(); //----------- Calculating Macroscopic Values ------------- - LBMReal rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); + real rho = rhoH + rhoToPhi * (phi[DIR_000] - phiH); ////Incompressible Kernal @@ -586,21 +586,21 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) //mfbbb = (*this->zeroDistributionsF)(x1, x2, x3);// / rho * c3; - LBMReal m0, m1, m2; - LBMReal rhoRef=c1; + real m0, m1, m2; + real rhoRef=c1; //LBMReal // LBMReal drho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) // + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) // + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb))/rhoRef; - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab))/rhoRef; - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba))/rhoRef; @@ -635,9 +635,9 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) // + WEIGTH[DIR_P00] * ((*pressure)(x1, x2, x3+1) - (*pressure)(x1, x2, x3-1))); - LBMReal gradPx = 0.0; - LBMReal gradPy = 0.0; - LBMReal gradPz = 0.0; + real gradPx = 0.0; + real gradPy = 0.0; + real gradPz = 0.0; for (int dir1 = -1; dir1 <= 1; dir1++) { for (int dir2 = -1; dir2 <= 1; dir2++) { int yyy = x2 + dir1; @@ -944,14 +944,14 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) //vvz += forcingX3 * deltaT * 0.5; // Z } - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2 = vvx * vvx; vy2 = vvy * vvy; vz2 = vvz * vvz; /////////////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho; + real oMdrho; oMdrho = mfccc + mfaaa; @@ -981,8 +981,8 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) oMdrho = (rhoRef - (oMdrho + m0))/rhoRef;// 12.03.21 check derivation!!!! //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -1216,23 +1216,23 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) // mfaaa = 0.0; - LBMReal OxxPyyPzz = 1.; //omega2 or bulk viscosity + real OxxPyyPzz = 1.; //omega2 or bulk viscosity // LBMReal OxyyPxzz = 1.;//-s9;//2+s9;// // LBMReal OxyyMxzz = 1.;//2+s9;// - LBMReal O4 = 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + real O4 = 1.; + real O5 = 1.; + real O6 = 1.; /////fourth order parameters; here only for test. Move out of loop! - LBMReal OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); - LBMReal OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); - // LBMReal Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); - LBMReal A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real OxyyPxzz = 8.0 * (collFactorM - 2.0) * (OxxPyyPzz * (3.0 * collFactorM - 1.0) - 5.0 * collFactorM) / (8.0 * (5.0 - 2.0 * collFactorM) * collFactorM + OxxPyyPzz * (8.0 + collFactorM * (9.0 * collFactorM - 26.0))); + real OxyyMxzz = 8.0 * (collFactorM - 2.0) * (collFactorM + OxxPyyPzz * (3.0 * collFactorM - 7.0)) / (OxxPyyPzz * (56.0 - 42.0 * collFactorM + 9.0 * collFactorM * collFactorM) - 8.0 * collFactorM); + // real Oxyz = 24.0 * (collFactorM - 2.0) * (4.0 * collFactorM * collFactorM + collFactorM * OxxPyyPzz * (18.0 - 13.0 * collFactorM) + OxxPyyPzz * OxxPyyPzz * (2.0 + collFactorM * (6.0 * collFactorM - 11.0))) / (16.0 * collFactorM * collFactorM * (collFactorM - 6.0) - 2.0 * collFactorM * OxxPyyPzz * (216.0 + 5.0 * collFactorM * (9.0 * collFactorM - 46.0)) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (3.0 * collFactorM - 10.0) * (15.0 * collFactorM - 28.0) - 48.0)); + real A = (4.0 * collFactorM * collFactorM + 2.0 * collFactorM * OxxPyyPzz * (collFactorM - 6.0) + OxxPyyPzz * OxxPyyPzz * (collFactorM * (10.0 - 3.0 * collFactorM) - 4.0)) / ((collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //FIXME: warning C4459: declaration of 'B' hides global declaration (message : see declaration of 'D3Q27System::DIR_00M' ) - LBMReal BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); + real BB = (4.0 * collFactorM * OxxPyyPzz * (9.0 * collFactorM - 16.0) - 4.0 * collFactorM * collFactorM - 2.0 * OxxPyyPzz * OxxPyyPzz * (2.0 + 9.0 * collFactorM * (collFactorM - 2.0))) / (3.0 * (collFactorM - OxxPyyPzz) * (OxxPyyPzz * (2.0 + 3.0 * collFactorM) - 8.0 * collFactorM)); //Cum 4. @@ -1240,21 +1240,21 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) //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 - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); - LBMReal CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); + real CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - c1) * oMdrho); //Cum 5. - LBMReal CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal 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 + 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; //Cum 6. - LBMReal CUMccc = mfccc + ((-4. * mfbbb * mfbbb + real CUMccc = mfccc + ((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) @@ -1268,13 +1268,13 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; // LBMReal mfaaaS = (mfaaa * (-4 - 3 * OxxPyyPzz * (-1 + rho)) + 6 * mxxPyyPzz * OxxPyyPzz * (-1 + rho)) / (-4 + 3 * OxxPyyPzz * (-1 + rho)); mxxPyyPzz -= mfaaa ;//12.03.21 shifted by mfaaa //mxxPyyPzz-=(mfaaa+mfaaaS)*c1o2;//12.03.21 shifted by mfaaa - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; //applying phase field gradients first part: // mxxPyyPzz += c2o3 * rhoToPhi * (dX1_phi * vvx + dX2_phi * vvy + dX3_phi * vvz); @@ -1289,13 +1289,13 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) //mfbab += c1o6 * (dX1_phi * vvz + dX3_phi * vvx) * correctionScaling; //mfbba += c1o6 * (dX1_phi * vvy + dX2_phi * vvx) * correctionScaling; - LBMReal dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz); - LBMReal dyuy = dxux + collFactorM * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactorM * c3o2 * mxxMzz; + real dxux = -c1o2 * collFactorM * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (/*mfaaa*/ -mxxPyyPzz); + real dyuy = dxux + collFactorM * c3o2 * mxxMyy; + real dzuz = dxux + collFactorM * c3o2 * mxxMzz; - LBMReal Dxy = -three * collFactorM * mfbba; - LBMReal Dxz = -three * collFactorM * mfbab; - LBMReal Dyz = -three * collFactorM * mfabb; + real Dxy = -three * collFactorM * mfbba; + real Dxz = -three * collFactorM * mfbab; + real Dyz = -three * collFactorM * mfabb; //relax @@ -1333,14 +1333,14 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //relax wadjust = OxyyMxzz + (1. - OxyyMxzz) * fabs(mfbbb) / (fabs(mfbbb) + qudricLimit); @@ -2558,7 +2558,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) ///////////////////// P H A S E - F I E L D S O L V E R //////////////////////////////////////////// /////CUMULANT PHASE-FIELD - LBMReal omegaD =1.0/( 3.0 * mob + 0.5); + real omegaD =1.0/( 3.0 * mob + 0.5); { mfcbb = (*this->localDistributionsH1)(D3Q27System::ET_E, x1, x2, x3); mfbcb = (*this->localDistributionsH1)(D3Q27System::ET_N, x1, x2, x3); @@ -2622,7 +2622,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) // LBMReal vvz = uz; //////////////////////////////////////////////////////////////////////////////////// // second component - LBMReal concentration = + real concentration = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; @@ -2637,26 +2637,26 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) // vvy += fy * c1o2; // vvz += fz * c1o2; //////////////////////////////////////////////////////////////////////////////////// - LBMReal oneMinusRho = c1- concentration; + real oneMinusRho = c1- concentration; - LBMReal cx = + real cx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal cy = + real cy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal cz = + real cz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); //////////////////////////////////////////////////////////////////////////////////// // calculate the square of velocities for this lattice node - LBMReal cx2 = cx * cx; - LBMReal cy2 = cy * cy; - LBMReal cz2 = cz * cz; + real cx2 = cx * cx; + real cy2 = cy * cy; + real cz2 = cz * cz; //////////////////////////////////////////////////////////////////////////////////// //! - Chimera transform from well conditioned distributions to central moments as defined in Appendix J in \ref //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> @@ -2704,16 +2704,16 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) //! // linearized orthogonalization of 3rd order central moments - LBMReal Mabc = mfabc - mfaba * c1o3; - LBMReal Mbca = mfbca - mfbaa * c1o3; - LBMReal Macb = mfacb - mfaab * c1o3; - LBMReal Mcba = mfcba - mfaba * c1o3; - LBMReal Mcab = mfcab - mfaab * c1o3; - LBMReal Mbac = mfbac - mfbaa * c1o3; + real Mabc = mfabc - mfaba * c1o3; + real Mbca = mfbca - mfbaa * c1o3; + real Macb = mfacb - mfaab * c1o3; + real Mcba = mfcba - mfaba * c1o3; + real Mcab = mfcab - mfaab * c1o3; + real Mbac = mfbac - mfbaa * c1o3; // linearized orthogonalization of 5th order central moments - LBMReal Mcbc = mfcbc - mfaba * c1o9; - LBMReal Mbcc = mfbcc - mfbaa * c1o9; - LBMReal Mccb = mfccb - mfaab * c1o9; + real Mcbc = mfcbc - mfaba * c1o9; + real Mbcc = mfbcc - mfbaa * c1o9; + real Mccb = mfccb - mfaab * c1o9; // collision of 1st order moments // LBMReal ccx, ccy, ccz; @@ -2938,7 +2938,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) // LBMReal vvz = uz; //////////////////////////////////////////////////////////////////////////////////// // second component - LBMReal concentration = + real concentration = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; @@ -2953,26 +2953,26 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) // vvy += fy * c1o2; // vvz += fz * c1o2; //////////////////////////////////////////////////////////////////////////////////// - LBMReal oneMinusRho = c1 - concentration; + real oneMinusRho = c1 - concentration; - LBMReal cx = + real cx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal cy = + real cy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal cz = + real cz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); //////////////////////////////////////////////////////////////////////////////////// // calculate the square of velocities for this lattice node - LBMReal cx2 = cx * cx; - LBMReal cy2 = cy * cy; - LBMReal cz2 = cz * cz; + real cx2 = cx * cx; + real cy2 = cy * cy; + real cz2 = cz * cz; //////////////////////////////////////////////////////////////////////////////////// //! - Chimera transform from well conditioned distributions to central moments as defined in Appendix J in \ref //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> @@ -3020,16 +3020,16 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) //! // linearized orthogonalization of 3rd order central moments - LBMReal Mabc = mfabc - mfaba * c1o3; - LBMReal Mbca = mfbca - mfbaa * c1o3; - LBMReal Macb = mfacb - mfaab * c1o3; - LBMReal Mcba = mfcba - mfaba * c1o3; - LBMReal Mcab = mfcab - mfaab * c1o3; - LBMReal Mbac = mfbac - mfbaa * c1o3; + real Mabc = mfabc - mfaba * c1o3; + real Mbca = mfbca - mfbaa * c1o3; + real Macb = mfacb - mfaab * c1o3; + real Mcba = mfcba - mfaba * c1o3; + real Mcab = mfcab - mfaab * c1o3; + real Mbac = mfbac - mfbaa * c1o3; // linearized orthogonalization of 5th order central moments - LBMReal Mcbc = mfcbc - mfaba * c1o9; - LBMReal Mbcc = mfbcc - mfbaa * c1o9; - LBMReal Mccb = mfccb - mfaab * c1o9; + real Mcbc = mfcbc - mfaba * c1o9; + real Mbcc = mfbcc - mfbaa * c1o9; + real Mccb = mfccb - mfaab * c1o9; // collision of 1st order moments cx = cx * (c1 - omegaD) + omegaD * vvx * concentration + @@ -3279,7 +3279,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate(int step) } ////////////////////////////////////////////////////////////////////////// -LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX1_phi() +real MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX1_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3294,7 +3294,7 @@ LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX1_phi() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX2_phi() +real MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3309,7 +3309,7 @@ LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX2_phi() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX3_phi() +real MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX3_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3324,7 +3324,7 @@ LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX3_phi() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX1_phi2() +real MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX1_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3339,7 +3339,7 @@ LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX1_phi2() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX2_phi2() +real MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX2_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3354,7 +3354,7 @@ LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX2_phi2() //return 3.0 * sum; } -LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX3_phi2() +real MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX3_phi2() { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -3373,12 +3373,12 @@ LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::gradX3_phi2() -LBMReal MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::nabla2_phi() +real MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::nabla2_phi() { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal sum = 0.0; + real sum = 0.0; sum += WEIGTH[DIR_PPP] * ((((phi[DIR_PPP] - phi[DIR_000]) + (phi[DIR_MMM] - phi[DIR_000])) + ((phi[DIR_MMP] - phi[DIR_000]) + (phi[DIR_PPM] - phi[DIR_000]))) + (((phi[DIR_MPP] - phi[DIR_000]) + (phi[DIR_PMM] - phi[DIR_000])) + ((phi[DIR_PMP] - phi[DIR_000]) + (phi[DIR_MPM] - phi[DIR_000])))); sum += WEIGTH[DIR_0PP] * ( @@ -3456,7 +3456,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::computePhasefield() } } -void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::findNeighbors(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, +void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::findNeighbors(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3) { using namespace D3Q27System; @@ -3477,7 +3477,7 @@ void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::findNeighbors(CbArray3D< } } -void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::findNeighbors2(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, +void MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::findNeighbors2(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3) { using namespace D3Q27System; diff --git a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.h index 070aff23f..df3989c57 100644 --- a/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.h @@ -51,69 +51,69 @@ public: virtual ~MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel(void) = default; void calculate(int step) override; SPtr<LBMKernel> clone() override; - void forwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void backwardInverseChimeraWithKincompressible(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2, LBMReal Kinverse, LBMReal K, LBMReal oneMinusRho); - void forwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); - void backwardChimera(LBMReal& mfa, LBMReal& mfb, LBMReal& mfc, LBMReal vv, LBMReal v2); + void forwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void backwardInverseChimeraWithKincompressible(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K, real oneMinusRho); + void forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); + void backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); ///refactor - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressure; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr pressureOld; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressure; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr pressureOld; double getCalculationTime() override { return .0; } protected: virtual void initDataSet(); void swapDistributions() override; - LBMReal f1[D3Q27System::ENDF+1]; + real f1[D3Q27System::ENDF+1]; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH1; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH1; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH1; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH1; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH1; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH1; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH2; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH2; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH2; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH2; //CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr phaseField; - LBMReal h [D3Q27System::ENDF+1]; - LBMReal h2[D3Q27System::ENDF + 1]; - LBMReal g [D3Q27System::ENDF+1]; - LBMReal phi[D3Q27System::ENDF+1]; - LBMReal phi2[D3Q27System::ENDF + 1]; - LBMReal pr1[D3Q27System::ENDF+1]; - LBMReal phi_cutoff[D3Q27System::ENDF+1]; - - LBMReal gradX1_phi(); - LBMReal gradX2_phi(); - LBMReal gradX3_phi(); - LBMReal gradX1_phi2(); - LBMReal gradX2_phi2(); - LBMReal gradX3_phi2(); + real h [D3Q27System::ENDF+1]; + real h2[D3Q27System::ENDF + 1]; + real g [D3Q27System::ENDF+1]; + real phi[D3Q27System::ENDF+1]; + real phi2[D3Q27System::ENDF + 1]; + real pr1[D3Q27System::ENDF+1]; + real phi_cutoff[D3Q27System::ENDF+1]; + + real gradX1_phi(); + real gradX2_phi(); + real gradX3_phi(); + real gradX1_phi2(); + real gradX2_phi2(); + real gradX3_phi2(); //LBMReal gradX1_pr1(); //LBMReal gradX2_pr1(); //LBMReal gradX3_pr1(); //LBMReal dirgradC_phi(int n, int k); void computePhasefield(); - void findNeighbors(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); - void findNeighbors2(CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3); + void findNeighbors(CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, int x1, int x2, int x3); + void findNeighbors2(CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr ph, int x1, int x2, int x3); //void findNeighbors(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr ph /*Phase-Field*/, CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf /*Pressure-Field*/, int x1, int x2, int x3); //void pressureFiltering(CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf /*Pressure-Field*/, CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr pf_filtered /*Pressure-Field*/); - LBMReal nabla2_phi(); + real nabla2_phi(); mu::value_type muX1,muX2,muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; }; #endif diff --git a/src/cpu/VirtualFluidsCore/LBM/Rheology.cpp b/src/cpu/VirtualFluidsCore/LBM/Rheology.cpp index 55f8bba50..79d2c26cc 100644 --- a/src/cpu/VirtualFluidsCore/LBM/Rheology.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/Rheology.cpp @@ -33,13 +33,13 @@ #include "Rheology.h" SPtr<Rheology> Rheology::instance = SPtr<Rheology>(); -LBMReal Rheology::tau0 = 0; -LBMReal Rheology::k = 0; -LBMReal Rheology::n = 1; -LBMReal Rheology::omegaMin = 0; -LBMReal Rheology::beta = 0; -LBMReal Rheology::c = 0; -LBMReal Rheology::mu0 = 0; +real Rheology::tau0 = 0; +real Rheology::k = 0; +real Rheology::n = 1; +real Rheology::omegaMin = 0; +real Rheology::beta = 0; +real Rheology::c = 0; +real Rheology::mu0 = 0; ////////////////////////////////////////////////////////////////////////// SPtr<Rheology> Rheology::getInstance() @@ -49,66 +49,66 @@ SPtr<Rheology> Rheology::getInstance() return instance; } -void Rheology::setYieldStress(LBMReal yieldStress) +void Rheology::setYieldStress(real yieldStress) { tau0 = yieldStress; } -LBMReal Rheology::getYieldStress() const +real Rheology::getYieldStress() const { return tau0; } -void Rheology::setViscosityParameter(LBMReal kParameter) +void Rheology::setViscosityParameter(real kParameter) { k = kParameter; } -LBMReal Rheology::getViscosityParameter() const +real Rheology::getViscosityParameter() const { return k; } -void Rheology::setPowerIndex(LBMReal index) +void Rheology::setPowerIndex(real index) { n = index; } -LBMReal Rheology::getPowerIndex() const +real Rheology::getPowerIndex() const { return n; } -void Rheology::setOmegaMin(LBMReal omega) +void Rheology::setOmegaMin(real omega) { omegaMin = omega; } -LBMReal Rheology::getOmegaMin() const +real Rheology::getOmegaMin() const { return omegaMin; } -void Rheology::setBeta(LBMReal PowellEyringBeta) +void Rheology::setBeta(real PowellEyringBeta) { beta = PowellEyringBeta; } -LBMReal Rheology::getBeta() const +real Rheology::getBeta() const { return beta; } -void Rheology::setC(LBMReal PowellEyringC) +void Rheology::setC(real PowellEyringC) { c = PowellEyringC; } -LBMReal Rheology::getC() const +real Rheology::getC() const { return c; } -void Rheology::setMu0(LBMReal mu) +void Rheology::setMu0(real mu) { mu0 = mu; } -LBMReal Rheology::getMu0() const +real Rheology::getMu0() const { return mu0; } diff --git a/src/cpu/VirtualFluidsCore/LBM/Rheology.h b/src/cpu/VirtualFluidsCore/LBM/Rheology.h index b1aa22478..7e3ec0f61 100644 --- a/src/cpu/VirtualFluidsCore/LBM/Rheology.h +++ b/src/cpu/VirtualFluidsCore/LBM/Rheology.h @@ -45,53 +45,53 @@ public: Rheology(Rheology const&) = delete; Rheology& operator=(Rheology const&) = delete; static SPtr<Rheology> getInstance(); - void setYieldStress(LBMReal tau0); - LBMReal getYieldStress() const; + void setYieldStress(real tau0); + real getYieldStress() const; - void setViscosityParameter(LBMReal k); - LBMReal getViscosityParameter() const; + void setViscosityParameter(real k); + real getViscosityParameter() const; - void setPowerIndex(LBMReal n); - LBMReal getPowerIndex() const; + void setPowerIndex(real n); + real getPowerIndex() const; - void setOmegaMin(LBMReal omegaMin); - LBMReal getOmegaMin() const; + void setOmegaMin(real omegaMin); + real getOmegaMin() const; - void setBeta(LBMReal PowellEyringBeta); - LBMReal getBeta() const; + void setBeta(real PowellEyringBeta); + real getBeta() const; - void setC(LBMReal PowellEyringC); - LBMReal getC() const; + void setC(real PowellEyringC); + real getC() const; - void setMu0(LBMReal mu); - LBMReal getMu0() const; + void setMu0(real mu); + real getMu0() const; - static LBMReal getBinghamCollFactorOld(LBMReal omegaInf, LBMReal shearRate, LBMReal drho); - static LBMReal getBinghamCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho); - static LBMReal getHerschelBulkleyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho); - static LBMReal getHerschelBulkleyCollFactorBackward(LBMReal shearRate, LBMReal drho); - static LBMReal getPowellEyringCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho); + static real getBinghamCollFactorOld(real omegaInf, real shearRate, real drho); + static real getBinghamCollFactor(real omegaInf, real shearRate, real drho); + static real getHerschelBulkleyCollFactor(real omegaInf, real shearRate, real drho); + static real getHerschelBulkleyCollFactorBackward(real shearRate, real drho); + static real getPowellEyringCollFactor(real omegaInf, real shearRate, real drho); private: Rheology(); static SPtr<Rheology> instance; - static LBMReal tau0; - static LBMReal k; - static LBMReal n; - static LBMReal omegaMin; - static LBMReal beta; - static LBMReal c; - static LBMReal mu0; + static real tau0; + static real k; + static real n; + static real omegaMin; + static real beta; + static real c; + static real mu0; }; ////////////////////////////////////////////////////////////////////////// -inline LBMReal Rheology::getBinghamCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) +inline real Rheology::getBinghamCollFactor(real omegaInf, real shearRate, real drho) { - LBMReal cs2 = UbMath::one_over_sqrt3 * UbMath::one_over_sqrt3; - LBMReal rho = UbMath::one + drho; + real cs2 = UbMath::one_over_sqrt3 * UbMath::one_over_sqrt3; + real rho = UbMath::one + drho; //analytical solution - LBMReal omega = omegaInf * (UbMath::one - (omegaInf * tau0) / (shearRate * cs2 * rho + UbMath::Epsilon<LBMReal>::val())); + real omega = omegaInf * (UbMath::one - (omegaInf * tau0) / (shearRate * cs2 * rho + UbMath::Epsilon<real>::val())); //LBMReal omega = cs2 * cs2 * shearRate * shearRate * omegaInf * rho * rho / (cs2 * cs2 * shearRate * shearRate * rho * rho + cs2 * shearRate * omegaInf * rho * tau0+omegaInf*omegaInf*tau0*tau0); @@ -117,10 +117,10 @@ inline LBMReal Rheology::getBinghamCollFactor(LBMReal omegaInf, LBMReal shearRat return omega; } -inline LBMReal Rheology::getBinghamCollFactorOld(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) +inline real Rheology::getBinghamCollFactorOld(real omegaInf, real shearRate, real drho) { - const LBMReal cs2 = UbMath::c1o3; // UbMath::one_over_sqrt3* UbMath::one_over_sqrt3; - LBMReal rho = UbMath::one + drho; + const real cs2 = UbMath::c1o3; // UbMath::one_over_sqrt3* UbMath::one_over_sqrt3; + real rho = UbMath::one + drho; if (rho * cs2 * (UbMath::c1 / omegaInf - UbMath::c1o2) * shearRate < tau0) return 0.0; @@ -128,19 +128,19 @@ inline LBMReal Rheology::getBinghamCollFactorOld(LBMReal omegaInf, LBMReal shear return omegaInf; } ////////////////////////////////////////////////////////////////////////// -inline LBMReal Rheology::getHerschelBulkleyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) +inline real Rheology::getHerschelBulkleyCollFactor(real omegaInf, real shearRate, real drho) { - LBMReal cs2 = UbMath::one_over_sqrt3 * UbMath::one_over_sqrt3; - LBMReal rho = UbMath::one + drho; - LBMReal gammaDot = shearRate; - LBMReal omega = omegaInf; - LBMReal epsilon = 1; - LBMReal gammaDotPowN = std::pow(gammaDot, n); + real cs2 = UbMath::one_over_sqrt3 * UbMath::one_over_sqrt3; + real rho = UbMath::one + drho; + real gammaDot = shearRate; + real omega = omegaInf; + real epsilon = 1; + real gammaDotPowN = std::pow(gammaDot, n); while (epsilon > 1e-10) { - LBMReal omegaOld = omega; - LBMReal omegaByOmegaInfPowN = std::pow(omega / omegaInf, n);/* + real omegaOld = omega; + real omegaByOmegaInfPowN = std::pow(omega / omegaInf, n);/* LBMReal gammaDotPowOneMinusN = std::pow(gammaDot,1- n); LBMReal omegaByOmegaInfPowOneMinusN = std::pow(omega / omegaInf, 1-n); LBMReal numeratorA = (2.0* k * omegaInf + cs2 * gammaDotPowOneMinusN * omegaByOmegaInfPowOneMinusN *omegaInf* rho ); @@ -148,8 +148,8 @@ inline LBMReal Rheology::getHerschelBulkleyCollFactor(LBMReal omegaInf, LBMReal LBMReal denominatorA = (2.0 * k * n * omegaInf + cs2 * gammaDot * rho * omegaInf* gammaDotPowOneMinusN * omegaByOmegaInfPowOneMinusN) + UbMath::Epsilon<LBMReal>::val(); LBMReal denominatorB = (2.0 * k * n * gammaDotPowN * omegaByOmegaInfPowN * omegaInf + cs2 * gammaDot * rho * omega) + UbMath::Epsilon<LBMReal>::val(); omega = omega - omega *( numeratorA / denominatorA+ numeratorB / denominatorB);*/ - LBMReal numerator = (2.0 * gammaDotPowN * k * omegaByOmegaInfPowN * omegaInf + cs2 * gammaDot * (omega - 2.0) * rho + 2.0 * omegaInf * tau0); - LBMReal denominator = (2.0 * k * n * gammaDotPowN * omegaByOmegaInfPowN * omegaInf + cs2 * gammaDot * rho * omega) + UbMath::Epsilon<LBMReal>::val(); + real numerator = (2.0 * gammaDotPowN * k * omegaByOmegaInfPowN * omegaInf + cs2 * gammaDot * (omega - 2.0) * rho + 2.0 * omegaInf * tau0); + real denominator = (2.0 * k * n * gammaDotPowN * omegaByOmegaInfPowN * omegaInf + cs2 * gammaDot * rho * omega) + UbMath::Epsilon<real>::val(); omega = omega - omega * numerator / denominator; omega = (omega < UbMath::zeroReal) ? UbMath::c1o2 * omegaOld : omega; //omega = (omega < omegaMin) ? UbMath::c1o2 * (omegaOld-omegaMin)+omegaMin : omega; @@ -159,32 +159,32 @@ inline LBMReal Rheology::getHerschelBulkleyCollFactor(LBMReal omegaInf, LBMReal return omega; } ////////////////////////////////////////////////////////////////////////// -inline LBMReal Rheology::getHerschelBulkleyCollFactorBackward(LBMReal shearRate, LBMReal drho) +inline real Rheology::getHerschelBulkleyCollFactorBackward(real shearRate, real drho) { - LBMReal rho = UbMath::one + drho; - LBMReal gamma = shearRate + UbMath::Epsilon<LBMReal>::val(); - LBMReal cs2 = UbMath::one_over_sqrt3 * UbMath::one_over_sqrt3; + real rho = UbMath::one + drho; + real gamma = shearRate + UbMath::Epsilon<real>::val(); + real cs2 = UbMath::one_over_sqrt3 * UbMath::one_over_sqrt3; return 1.0 / ((tau0 + k * std::pow(gamma, n)) / (cs2 * rho * gamma) + UbMath::c1o2); } ////////////////////////////////////////////////////////////////////////// -inline LBMReal Rheology::getPowellEyringCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) +inline real Rheology::getPowellEyringCollFactor(real omegaInf, real shearRate, real drho) { using namespace UbMath; - LBMReal cs2 = c1o3; // UbMath::one_over_sqrt3* UbMath::one_over_sqrt3; - LBMReal rho = c1 + drho; - LBMReal gammaDot = shearRate; - LBMReal omega = omegaInf; - LBMReal epsilon = 1; + real cs2 = c1o3; // UbMath::one_over_sqrt3* UbMath::one_over_sqrt3; + real rho = c1 + drho; + real gammaDot = shearRate; + real omega = omegaInf; + real epsilon = 1; while (epsilon > 1e-10) { - LBMReal omegaOld = omega; + real omegaOld = omega; epsilon = std::abs(omega - omegaOld); - LBMReal numerator = c*sqrt(c1+(gammaDot*gammaDot*omega*omega)/(c*c*omegaInf*omegaInf))*(beta*(c2*gammaDot*mu0*omega+cs2*gammaDot*(omega-c2)*rho+c2*omegaInf*tau0)+c2*omegaInf*(asinh((gammaDot*omega)/(c*omegaInf)))); + real numerator = c*sqrt(c1+(gammaDot*gammaDot*omega*omega)/(c*c*omegaInf*omegaInf))*(beta*(c2*gammaDot*mu0*omega+cs2*gammaDot*(omega-c2)*rho+c2*omegaInf*tau0)+c2*omegaInf*(asinh((gammaDot*omega)/(c*omegaInf)))); - LBMReal denominator = gammaDot*(c2+beta*c*sqrt(c1+(gammaDot*gammaDot*omega*omega)/(c*c*omegaInf*omegaInf))*(c2*mu0+cs2*rho)) + UbMath::Epsilon<LBMReal>::val(); + real denominator = gammaDot*(c2+beta*c*sqrt(c1+(gammaDot*gammaDot*omega*omega)/(c*c*omegaInf*omegaInf))*(c2*mu0+cs2*rho)) + UbMath::Epsilon<real>::val(); omega = omega - numerator / denominator; diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyBinghamModelLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/RheologyBinghamModelLBMKernel.h index 5bd2601da..da51e6c4e 100644 --- a/src/cpu/VirtualFluidsCore/LBM/RheologyBinghamModelLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/RheologyBinghamModelLBMKernel.h @@ -61,7 +61,7 @@ public: return kernel; } protected: - LBMReal getRheologyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) const override + real getRheologyCollFactor(real omegaInf, real shearRate, real drho) const override { return Rheology::getBinghamCollFactor(omegaInf, shearRate, drho); } diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyHerschelBulkleyModelLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/RheologyHerschelBulkleyModelLBMKernel.h index 57478041e..2422efefd 100644 --- a/src/cpu/VirtualFluidsCore/LBM/RheologyHerschelBulkleyModelLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/RheologyHerschelBulkleyModelLBMKernel.h @@ -60,7 +60,7 @@ public: return kernel; } protected: - LBMReal getRheologyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) const override + real getRheologyCollFactor(real omegaInf, real shearRate, real drho) const override { return Rheology::getHerschelBulkleyCollFactor(omegaInf, shearRate, drho); } diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyInterpolationProcessor.cpp b/src/cpu/VirtualFluidsCore/LBM/RheologyInterpolationProcessor.cpp index 20fe44a55..0a9c380de 100644 --- a/src/cpu/VirtualFluidsCore/LBM/RheologyInterpolationProcessor.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/RheologyInterpolationProcessor.cpp @@ -42,7 +42,7 @@ RheologyInterpolationProcessor::RheologyInterpolationProcessor() } ////////////////////////////////////////////////////////////////////////// -RheologyInterpolationProcessor::RheologyInterpolationProcessor(LBMReal omegaC, LBMReal omegaF, LBMReal omegaMin) +RheologyInterpolationProcessor::RheologyInterpolationProcessor(real omegaC, real omegaF, real omegaMin) : omegaC(omegaC), omegaF(omegaF), omegaMin(omegaMin) { @@ -59,18 +59,18 @@ InterpolationProcessorPtr RheologyInterpolationProcessor::clone() return iproc; } ////////////////////////////////////////////////////////////////////////// -void RheologyInterpolationProcessor::setOmegas( LBMReal omegaC, LBMReal omegaF ) +void RheologyInterpolationProcessor::setOmegas( real omegaC, real omegaF ) { this->omegaC = omegaC; this->omegaF = omegaF; } ////////////////////////////////////////////////////////////////////////// -void RheologyInterpolationProcessor::setOmegaMin( LBMReal omegaMin ) +void RheologyInterpolationProcessor::setOmegaMin( real omegaMin ) { this->omegaMin = omegaMin; } ////////////////////////////////////////////////////////////////////////// -void RheologyInterpolationProcessor::setOffsets(LBMReal xoff, LBMReal yoff, LBMReal zoff) +void RheologyInterpolationProcessor::setOffsets(real xoff, real yoff, real zoff) { this->xoff = xoff; this->yoff = yoff; @@ -80,7 +80,7 @@ void RheologyInterpolationProcessor::setOffsets(LBMReal xoff, LBMReal yoff, LBMR this->zoff_sq = zoff * zoff; } ////////////////////////////////////////////////////////////////////////// -void RheologyInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, LBMReal xoff, LBMReal yoff, LBMReal zoff) +void RheologyInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); calcInterpolatedCoefficiets_intern(icellC, omegaC, 0.5, 0.25, -0.25, -0.25, -1, -1, -1); @@ -101,14 +101,14 @@ void RheologyInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& icellC, calcInterpolatedNode(icellF.TNE, /*omegaF,*/ 0.25, 0.25, 0.25, calcPressTNE(), 1, 1, 1); } ////////////////////////////////////////////////////////////////////////// -void RheologyInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC, LBMReal xoff, LBMReal yoff, LBMReal zoff) +void RheologyInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff) { setOffsets(xoff, yoff, zoff); calcInterpolatedCoefficiets_intern(icellF, omegaF, 2.0, 0, 0, 0, 0, 0, 0); calcInterpolatedNodeFC(icellC, omegaC); } ////////////////////////////////////////////////////////////////////////// -void RheologyInterpolationProcessor::calcMoments(const LBMReal* const f, LBMReal omegaInf, LBMReal& press, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3, LBMReal& kxy, LBMReal& kyz, LBMReal& kxz, LBMReal& kxxMyy, LBMReal& kxxMzz) +void RheologyInterpolationProcessor::calcMoments(const real* const f, real omegaInf, real& press, real& vx1, real& vx2, real& vx3, real& kxy, real& kyz, real& kxz, real& kxxMyy, real& kxxMzz) { using namespace D3Q27System; using namespace vf::lbm::dir; @@ -118,7 +118,7 @@ void RheologyInterpolationProcessor::calcMoments(const LBMReal* const f, LBMReal shearRate = D3Q27System::getShearRate(f, omegaInf); - LBMReal omega = Rheology::getHerschelBulkleyCollFactor(omegaInf, shearRate, rho); + real omega = Rheology::getHerschelBulkleyCollFactor(omegaInf, shearRate, rho); press = rho; //interpolate rho! @@ -130,32 +130,32 @@ void RheologyInterpolationProcessor::calcMoments(const LBMReal* const f, LBMReal } ////////////////////////////////////////////////////////////////////////// void RheologyInterpolationProcessor::calcInterpolatedCoefficiets_intern(const D3Q27ICell& icell, - LBMReal omega, - LBMReal eps_new, - LBMReal x, - LBMReal y, - LBMReal z, - LBMReal xs, - LBMReal ys, - LBMReal zs) + real omega, + real eps_new, + real x, + real y, + real z, + real xs, + real ys, + real zs) { - LBMReal vx1_SWT,vx2_SWT,vx3_SWT; - LBMReal vx1_NWT,vx2_NWT,vx3_NWT; - LBMReal vx1_NET,vx2_NET,vx3_NET; - LBMReal vx1_SET,vx2_SET,vx3_SET; - LBMReal vx1_SWB,vx2_SWB,vx3_SWB; - LBMReal vx1_NWB,vx2_NWB,vx3_NWB; - LBMReal vx1_NEB,vx2_NEB,vx3_NEB; - LBMReal vx1_SEB,vx2_SEB,vx3_SEB; - - LBMReal kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT; - LBMReal kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT; - LBMReal kxyFromfcNEQ_NET, kyzFromfcNEQ_NET, kxzFromfcNEQ_NET, kxxMyyFromfcNEQ_NET, kxxMzzFromfcNEQ_NET; - LBMReal kxyFromfcNEQ_SET, kyzFromfcNEQ_SET, kxzFromfcNEQ_SET, kxxMyyFromfcNEQ_SET, kxxMzzFromfcNEQ_SET; - LBMReal kxyFromfcNEQ_SWB, kyzFromfcNEQ_SWB, kxzFromfcNEQ_SWB, kxxMyyFromfcNEQ_SWB, kxxMzzFromfcNEQ_SWB; - LBMReal kxyFromfcNEQ_NWB, kyzFromfcNEQ_NWB, kxzFromfcNEQ_NWB, kxxMyyFromfcNEQ_NWB, kxxMzzFromfcNEQ_NWB; - LBMReal kxyFromfcNEQ_NEB, kyzFromfcNEQ_NEB, kxzFromfcNEQ_NEB, kxxMyyFromfcNEQ_NEB, kxxMzzFromfcNEQ_NEB; - LBMReal kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; + real vx1_SWT,vx2_SWT,vx3_SWT; + real vx1_NWT,vx2_NWT,vx3_NWT; + real vx1_NET,vx2_NET,vx3_NET; + real vx1_SET,vx2_SET,vx3_SET; + real vx1_SWB,vx2_SWB,vx3_SWB; + real vx1_NWB,vx2_NWB,vx3_NWB; + real vx1_NEB,vx2_NEB,vx3_NEB; + real vx1_SEB,vx2_SEB,vx3_SEB; + + real kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT; + real kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT; + real kxyFromfcNEQ_NET, kyzFromfcNEQ_NET, kxzFromfcNEQ_NET, kxxMyyFromfcNEQ_NET, kxxMzzFromfcNEQ_NET; + real kxyFromfcNEQ_SET, kyzFromfcNEQ_SET, kxzFromfcNEQ_SET, kxxMyyFromfcNEQ_SET, kxxMzzFromfcNEQ_SET; + real kxyFromfcNEQ_SWB, kyzFromfcNEQ_SWB, kxzFromfcNEQ_SWB, kxxMyyFromfcNEQ_SWB, kxxMzzFromfcNEQ_SWB; + real kxyFromfcNEQ_NWB, kyzFromfcNEQ_NWB, kxzFromfcNEQ_NWB, kxxMyyFromfcNEQ_NWB, kxxMzzFromfcNEQ_NWB; + real kxyFromfcNEQ_NEB, kyzFromfcNEQ_NEB, kxzFromfcNEQ_NEB, kxxMyyFromfcNEQ_NEB, kxxMzzFromfcNEQ_NEB; + real kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; calcMoments(icell.TSW,omega,press_SWT,vx1_SWT,vx2_SWT,vx3_SWT, kxyFromfcNEQ_SWT, kyzFromfcNEQ_SWT, kxzFromfcNEQ_SWT, kxxMyyFromfcNEQ_SWT, kxxMzzFromfcNEQ_SWT); calcMoments(icell.TNW,omega,press_NWT,vx1_NWT,vx2_NWT,vx3_NWT, kxyFromfcNEQ_NWT, kyzFromfcNEQ_NWT, kxzFromfcNEQ_NWT, kxxMyyFromfcNEQ_NWT, kxxMzzFromfcNEQ_NWT); @@ -310,18 +310,18 @@ void RheologyInterpolationProcessor::calcInterpolatedCoefficiets_intern(const D3 cyz= cyz + xoff*cxyz; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - LBMReal dxux = ax + 0.5*axx*xs+ 0.25*(axy*ys+axz*zs)+0.0625*axyz*ys*zs; - LBMReal dyuy = by + 0.5 * byy * ys + 0.25 * (bxy * xs + byz * zs) + 0.0625 * bxyz * xs * zs; - LBMReal dzuz = cz + 0.5 * czz * zs + 0.25 * (cxz * xs + cyz * ys) + 0.0625 * cxyz * xs * ys; + real dxux = ax + 0.5*axx*xs+ 0.25*(axy*ys+axz*zs)+0.0625*axyz*ys*zs; + real dyuy = by + 0.5 * byy * ys + 0.25 * (bxy * xs + byz * zs) + 0.0625 * bxyz * xs * zs; + real dzuz = cz + 0.5 * czz * zs + 0.25 * (cxz * xs + cyz * ys) + 0.0625 * cxyz * xs * ys; - LBMReal Dxy = bx + 0.5 * bxx * xs + 0.25 * (bxy * ys + bxz * zs) + 0.0625 * bxyz * ys * zs + ay + 0.5 * ayy * ys + 0.25 * (axy * xs + ayz * zs) + 0.0625 * axyz * xs * zs; - LBMReal Dxz = cx + 0.5 * cxx * xs + 0.25 * (cxy * ys + cxz * zs) + 0.0625 * cxyz * ys * zs + az + 0.5 * azz * zs + 0.25 * (axz * xs + ayz * ys) + 0.0625 * axyz * xs * ys; - LBMReal Dyz = cy + 0.5 * cyy * ys + 0.25 * (cxy * xs + cyz * zs) + 0.0625 * cxyz * xs * zs + bz + 0.5 * bzz * zs + 0.25 * (bxz * xs + byz * ys) + 0.0625 * bxyz * xs * ys; + real Dxy = bx + 0.5 * bxx * xs + 0.25 * (bxy * ys + bxz * zs) + 0.0625 * bxyz * ys * zs + ay + 0.5 * ayy * ys + 0.25 * (axy * xs + ayz * zs) + 0.0625 * axyz * xs * zs; + real Dxz = cx + 0.5 * cxx * xs + 0.25 * (cxy * ys + cxz * zs) + 0.0625 * cxyz * ys * zs + az + 0.5 * azz * zs + 0.25 * (axz * xs + ayz * ys) + 0.0625 * axyz * xs * ys; + real Dyz = cy + 0.5 * cyy * ys + 0.25 * (cxy * xs + cyz * zs) + 0.0625 * cxyz * xs * zs + bz + 0.5 * bzz * zs + 0.25 * (bxz * xs + byz * ys) + 0.0625 * bxyz * xs * ys; shearRate = sqrt(dxux * dxux + dyuy * dyuy + dzuz * dzuz + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz); - LBMReal o = Rheology::getHerschelBulkleyCollFactorBackward(shearRate, rho); //omega; + real o = Rheology::getHerschelBulkleyCollFactorBackward(shearRate, rho); //omega; if (o < omegaMin) o = omegaMin; @@ -432,17 +432,17 @@ void RheologyInterpolationProcessor::calcInterpolatedCoefficiets_intern(const D3 yz_TNW = 0.0625*eps_new *(( bxyz + cxyz)/(72.*o)); } ////////////////////////////////////////////////////////////////////////// -void RheologyInterpolationProcessor::calcInterpolatedNode(LBMReal* f, /*LBMReal omega,*/ LBMReal x, LBMReal y, LBMReal z, LBMReal press, LBMReal xs, LBMReal ys, LBMReal zs) +void RheologyInterpolationProcessor::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; - LBMReal rho = press ; - LBMReal 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); - LBMReal 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); - LBMReal 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 rho = press ; + 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 feq[ENDF+1]; + real feq[ENDF+1]; D3Q27System::calcIncompFeq(feq,rho,vx1,vx2,vx3); f[DIR_P00] = f_E + xs*x_E + ys*y_E + zs*z_E + xs*ys*xy_E + xs*zs*xz_E + ys*zs*yz_E + feq[DIR_P00]; @@ -475,7 +475,7 @@ void RheologyInterpolationProcessor::calcInterpolatedNode(LBMReal* f, /*LBMReal } ////////////////////////////////////////////////////////////////////////// //Position SWB -0.25, -0.25, -0.25 -LBMReal RheologyInterpolationProcessor::calcPressBSW() +real RheologyInterpolationProcessor::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) + @@ -488,7 +488,7 @@ LBMReal RheologyInterpolationProcessor::calcPressBSW() } ////////////////////////////////////////////////////////////////////////// //Position SWT -0.25, -0.25, 0.25 -LBMReal RheologyInterpolationProcessor::calcPressTSW() +real RheologyInterpolationProcessor::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) + @@ -501,7 +501,7 @@ LBMReal RheologyInterpolationProcessor::calcPressTSW() } ////////////////////////////////////////////////////////////////////////// //Position SET 0.25, -0.25, 0.25 -LBMReal RheologyInterpolationProcessor::calcPressTSE() +real RheologyInterpolationProcessor::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) + @@ -514,7 +514,7 @@ LBMReal RheologyInterpolationProcessor::calcPressTSE() } ////////////////////////////////////////////////////////////////////////// //Position SEB 0.25, -0.25, -0.25 -LBMReal RheologyInterpolationProcessor::calcPressBSE() +real RheologyInterpolationProcessor::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) + @@ -527,7 +527,7 @@ LBMReal RheologyInterpolationProcessor::calcPressBSE() } ////////////////////////////////////////////////////////////////////////// //Position NWB -0.25, 0.25, -0.25 -LBMReal RheologyInterpolationProcessor::calcPressBNW() +real RheologyInterpolationProcessor::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) + @@ -540,7 +540,7 @@ LBMReal RheologyInterpolationProcessor::calcPressBNW() } ////////////////////////////////////////////////////////////////////////// //Position NWT -0.25, 0.25, 0.25 -LBMReal RheologyInterpolationProcessor::calcPressTNW() +real RheologyInterpolationProcessor::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) + @@ -553,7 +553,7 @@ LBMReal RheologyInterpolationProcessor::calcPressTNW() } ////////////////////////////////////////////////////////////////////////// //Position NET 0.25, 0.25, 0.25 -LBMReal RheologyInterpolationProcessor::calcPressTNE() +real RheologyInterpolationProcessor::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) + @@ -566,7 +566,7 @@ LBMReal RheologyInterpolationProcessor::calcPressTNE() } ////////////////////////////////////////////////////////////////////////// //Position NEB 0.25, 0.25, -0.25 -LBMReal RheologyInterpolationProcessor::calcPressBNE() +real RheologyInterpolationProcessor::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) + @@ -579,12 +579,12 @@ LBMReal RheologyInterpolationProcessor::calcPressBNE() } ////////////////////////////////////////////////////////////////////////// //Position C 0.0, 0.0, 0.0 -void RheologyInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* f, LBMReal omega) +void RheologyInterpolationProcessor::calcInterpolatedNodeFC(real* f, real omega) { using namespace D3Q27System; using namespace vf::lbm::dir; - LBMReal press = press_NET * (0.125 - 0.25 * xoff - 0.25 * yoff - 0.25 * zoff) + + 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) + @@ -592,30 +592,30 @@ void RheologyInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* f, LBMReal 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); - LBMReal vx1 = a0; - LBMReal vx2 = b0; - LBMReal vx3 = c0; + real vx1 = a0; + real vx2 = b0; + real vx3 = c0; - LBMReal rho = press ; + real rho = press ; - LBMReal feq[ENDF+1]; + real feq[ENDF+1]; D3Q27System::calcIncompFeq(feq,rho,vx1,vx2,vx3); - LBMReal eps_new = 2.; + real eps_new = 2.; - LBMReal dxux = ax; - LBMReal dyuy = by; - LBMReal dzuz = cz; + real dxux = ax; + real dyuy = by; + real dzuz = cz; - LBMReal Dxy = bx + ay; - LBMReal Dxz = cx + az; - LBMReal Dyz = cy + bz; + real Dxy = bx + ay; + real Dxz = cx + az; + real Dyz = cy + bz; shearRate = sqrt(dxux * dxux + dyuy * dyuy + dzuz * dzuz + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz); - LBMReal o = Rheology::getHerschelBulkleyCollFactorBackward(shearRate, rho); //omega; + real o = Rheology::getHerschelBulkleyCollFactorBackward(shearRate, rho); //omega; if (o < omegaMin) o = omegaMin; @@ -664,14 +664,14 @@ void RheologyInterpolationProcessor::calcInterpolatedNodeFC(LBMReal* f, LBMReal f[DIR_000] = f_ZERO + feq[DIR_000]; } ////////////////////////////////////////////////////////////////////////// -void RheologyInterpolationProcessor::calcInterpolatedVelocity(LBMReal x, LBMReal y, LBMReal z, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3) +void RheologyInterpolationProcessor::calcInterpolatedVelocity(real x, real y, real z, real& vx1, real& vx2, real& vx3) { vx1 = a0 + ax*x + ay*y + az*z + axx*x*x + ayy*y*y + azz*z*z + axy*x*y + axz*x*z + ayz*y*z+axyz*x*y*z; vx2 = b0 + bx*x + by*y + bz*z + bxx*x*x + byy*y*y + bzz*z*z + bxy*x*y + bxz*x*z + byz*y*z+bxyz*x*y*z; vx3 = c0 + cx*x + cy*y + cz*z + cxx*x*x + cyy*y*y + czz*z*z + cxy*x*y + cxz*x*z + cyz*y*z+cxyz*x*y*z; } ////////////////////////////////////////////////////////////////////////// -void RheologyInterpolationProcessor::calcInterpolatedShearStress(LBMReal x, LBMReal y, LBMReal z,LBMReal& tauxx, LBMReal& tauyy, LBMReal& tauzz,LBMReal& tauxy, LBMReal& tauxz, LBMReal& tauyz) +void RheologyInterpolationProcessor::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; diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyInterpolationProcessor.h b/src/cpu/VirtualFluidsCore/LBM/RheologyInterpolationProcessor.h index bce0c3d89..178932204 100644 --- a/src/cpu/VirtualFluidsCore/LBM/RheologyInterpolationProcessor.h +++ b/src/cpu/VirtualFluidsCore/LBM/RheologyInterpolationProcessor.h @@ -42,55 +42,55 @@ class RheologyInterpolationProcessor : public InterpolationProcessor { public: RheologyInterpolationProcessor(); - RheologyInterpolationProcessor(LBMReal omegaC, LBMReal omegaF, LBMReal omegaMin); + RheologyInterpolationProcessor(real omegaC, real omegaF, real omegaMin); virtual ~RheologyInterpolationProcessor(); InterpolationProcessorPtr clone(); - void setOmegas(LBMReal omegaC, LBMReal omegaF); - void setOmegaMin(LBMReal omegaMin); + void setOmegas(real omegaC, real omegaF); + void setOmegaMin(real omegaMin); void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF); - void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, LBMReal xoff, LBMReal yoff, LBMReal zoff); - void interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC); - void interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC, LBMReal xoff, LBMReal yoff, LBMReal zoff); - //LBMReal forcingC, forcingF; + void interpolateCoarseToFine(D3Q27ICell& icellC, D3Q27ICell& icellF, real xoff, real yoff, real zoff); + void interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC); + void interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC, real xoff, real yoff, real zoff); + //real forcingC, forcingF; protected: private: - LBMReal omegaC, omegaF; - LBMReal a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz, axyz, bxyz, cxyz; - LBMReal xoff, yoff, zoff; - LBMReal xoff_sq, yoff_sq, zoff_sq; - LBMReal press_SWT, press_NWT, press_NET, press_SET, press_SWB, press_NWB, press_NEB, press_SEB; + real omegaC, omegaF; + real a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz, axyz, bxyz, cxyz; + real xoff, yoff, zoff; + real xoff_sq, yoff_sq, zoff_sq; + real press_SWT, press_NWT, press_NET, press_SET, press_SWB, press_NWB, press_NEB, press_SEB; - LBMReal f_E, f_N, f_T, f_NE, f_SE, f_BE, f_TE, f_TN, f_BN, f_TNE, f_TNW, f_TSE, f_TSW, f_ZERO; - LBMReal x_E, x_N, x_T, x_NE, x_SE, x_BE, x_TE, x_TN, x_BN, x_TNE, x_TNW, x_TSE, x_TSW, x_ZERO; - LBMReal y_E, y_N, y_T, y_NE, y_SE, y_BE, y_TE, y_TN, y_BN, y_TNE, y_TNW, y_TSE, y_TSW, y_ZERO; - LBMReal z_E, z_N, z_T, z_NE, z_SE, z_BE, z_TE, z_TN, z_BN, z_TNE, z_TNW, z_TSE, z_TSW, z_ZERO; - LBMReal xy_E, xy_N, xy_T, xy_NE, xy_SE, xy_BE, xy_TE, xy_TN, xy_BN, xy_TNE, xy_TNW, xy_TSE, xy_TSW/*, xy_ZERO*/; - LBMReal xz_E, xz_N, xz_T, xz_NE, xz_SE, xz_BE, xz_TE, xz_TN, xz_BN, xz_TNE, xz_TNW, xz_TSE, xz_TSW/*, xz_ZERO*/; - LBMReal yz_E, yz_N, yz_T, yz_NE, yz_SE, yz_BE, yz_TE, yz_TN, yz_BN, yz_TNE, yz_TNW, yz_TSE, yz_TSW/*, yz_ZERO*/; + real f_E, f_N, f_T, f_NE, f_SE, f_BE, f_TE, f_TN, f_BN, f_TNE, f_TNW, f_TSE, f_TSW, f_ZERO; + real x_E, x_N, x_T, x_NE, x_SE, x_BE, x_TE, x_TN, x_BN, x_TNE, x_TNW, x_TSE, x_TSW, x_ZERO; + real y_E, y_N, y_T, y_NE, y_SE, y_BE, y_TE, y_TN, y_BN, y_TNE, y_TNW, y_TSE, y_TSW, y_ZERO; + real z_E, z_N, z_T, z_NE, z_SE, z_BE, z_TE, z_TN, z_BN, z_TNE, z_TNW, z_TSE, z_TSW, z_ZERO; + real xy_E, xy_N, xy_T, xy_NE, xy_SE, xy_BE, xy_TE, xy_TN, xy_BN, xy_TNE, xy_TNW, xy_TSE, xy_TSW/*, xy_ZERO*/; + real xz_E, xz_N, xz_T, xz_NE, xz_SE, xz_BE, xz_TE, xz_TN, xz_BN, xz_TNE, xz_TNW, xz_TSE, xz_TSW/*, xz_ZERO*/; + real yz_E, yz_N, yz_T, yz_NE, yz_SE, yz_BE, yz_TE, yz_TN, yz_BN, yz_TNE, yz_TNW, yz_TSE, yz_TSW/*, yz_ZERO*/; - LBMReal kxyAverage, kyzAverage, kxzAverage, kxxMyyAverage, kxxMzzAverage; + real kxyAverage, kyzAverage, kxzAverage, kxxMyyAverage, kxxMzzAverage; - LBMReal rho; - LBMReal shearRate; + real rho; + real shearRate; - LBMReal omegaMin; + real omegaMin; - void setOffsets(LBMReal xoff, LBMReal yoff, LBMReal zoff); - void calcMoments(const LBMReal* const f, LBMReal omegaInf, LBMReal& rho, LBMReal& vx1, LBMReal& vx2, LBMReal& vx3, - LBMReal& kxy, LBMReal& kyz, LBMReal& kxz, LBMReal& kxxMyy, LBMReal& kxxMzz); - void calcInterpolatedCoefficiets_intern(const D3Q27ICell& icell, LBMReal omega, LBMReal eps_new, LBMReal x, LBMReal y, LBMReal z, LBMReal xs, LBMReal ys, LBMReal zs); - void calcInterpolatedNode(LBMReal* f, /*LBMReal omega,*/ LBMReal x, LBMReal y, LBMReal z, LBMReal press, LBMReal xs, LBMReal ys, LBMReal zs); - LBMReal calcPressBSW(); - LBMReal calcPressTSW(); - LBMReal calcPressTSE(); - LBMReal calcPressBSE(); - LBMReal calcPressBNW(); - LBMReal calcPressTNW(); - LBMReal calcPressTNE(); - LBMReal calcPressBNE(); - void calcInterpolatedNodeFC(LBMReal* f, LBMReal omega); - void calcInterpolatedVelocity(LBMReal x, LBMReal y, LBMReal z,LBMReal& vx1, LBMReal& vx2, LBMReal& vx3); - void calcInterpolatedShearStress(LBMReal x, LBMReal y, LBMReal z,LBMReal& tauxx, LBMReal& tauyy, LBMReal& tauzz,LBMReal& tauxy, LBMReal& tauxz, LBMReal& tauyz); + void setOffsets(real xoff, real yoff, real zoff); + void calcMoments(const real* const f, real omegaInf, real& rho, real& vx1, real& vx2, real& vx3, + real& kxy, real& kyz, real& kxz, real& kxxMyy, real& kxxMzz); + void calcInterpolatedCoefficiets_intern(const D3Q27ICell& icell, real omega, real eps_new, real x, real y, real z, real xs, real ys, real zs); + void calcInterpolatedNode(real* f, /*real omega,*/ real x, real y, real z, real press, real xs, real ys, real zs); + real calcPressBSW(); + real calcPressTSW(); + real calcPressTSE(); + real calcPressBSE(); + real calcPressBNW(); + real calcPressTNW(); + real calcPressTNE(); + real calcPressBNE(); + void calcInterpolatedNodeFC(real* f, real omega); + void calcInterpolatedVelocity(real x, real y, real z,real& vx1, real& vx2, real& vx3); + void calcInterpolatedShearStress(real x, real y, real z,real& tauxx, real& tauyy, real& tauzz,real& tauxy, real& tauxz, real& tauyz); }; ////////////////////////////////////////////////////////////////////////// @@ -99,7 +99,7 @@ inline void RheologyInterpolationProcessor::interpolateCoarseToFine(D3Q27ICell& this->interpolateCoarseToFine(icellC, icellF, 0.0, 0.0, 0.0); } ////////////////////////////////////////////////////////////////////////// -inline void RheologyInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, LBMReal* icellC) +inline void RheologyInterpolationProcessor::interpolateFineToCoarse(D3Q27ICell& icellF, real* icellC) { this->interpolateFineToCoarse(icellF, icellC, 0.0, 0.0, 0.0); } diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyK17LBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/RheologyK17LBMKernel.cpp index 94fbad358..63b350c98 100644 --- a/src/cpu/VirtualFluidsCore/LBM/RheologyK17LBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/RheologyK17LBMKernel.cpp @@ -190,55 +190,55 @@ void RheologyK17LBMKernel::calculate(int step) // a b c //-1 0 1 - LBMReal mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); - - LBMReal mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributions)(x1, x2, x3); - - //////////////////////////////////////////////////////////////////////////////////// - LBMReal drho = ((((mfccc+mfaaa)+(mfaca+mfcac))+((mfacc+mfcaa)+(mfaac+mfcca)))+ + real mfcbb = (*this->localDistributions)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributions)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributions)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributions)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributions)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributions)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributions)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributions)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributions)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributions)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributions)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributions)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributions)(D3Q27System::ET_TSW, x1p, x2p, x3); + + real mfabb = (*this->nonLocalDistributions)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributions)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributions)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributions)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributions)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributions)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributions)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributions)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributions)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributions)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributions)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributions)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributions)(x1, x2, x3); + + //////////////////////////////////////////////////////////////////////////////////// + real drho = ((((mfccc+mfaaa)+(mfaca+mfcac))+((mfacc+mfcaa)+(mfaac+mfcca)))+ (((mfbac+mfbca)+(mfbaa+mfbcc))+((mfabc+mfcba)+(mfaba+mfcbc))+((mfacb+mfcab)+(mfaab+mfccb)))+ ((mfabb+mfcbb)+(mfbab+mfbcb))+(mfbba+mfbbc))+mfbbb; - LBMReal rho = one+drho; + real rho = one+drho; //////////////////////////////////////////////////////////////////////////////////// - LBMReal vvx = ((((mfccc-mfaaa)+(mfcac-mfaca))+((mfcaa-mfacc)+(mfcca-mfaac)))+ + real vvx = ((((mfccc-mfaaa)+(mfcac-mfaca))+((mfcaa-mfacc)+(mfcca-mfaac)))+ (((mfcba-mfabc)+(mfcbc-mfaba))+((mfcab-mfacb)+(mfccb-mfaab)))+ (mfcbb-mfabb))/rho; - LBMReal vvy = ((((mfccc-mfaaa)+(mfaca-mfcac))+((mfacc-mfcaa)+(mfcca-mfaac)))+ + real vvy = ((((mfccc-mfaaa)+(mfaca-mfcac))+((mfacc-mfcaa)+(mfcca-mfaac)))+ (((mfbca-mfbac)+(mfbcc-mfbaa))+((mfacb-mfcab)+(mfccb-mfaab)))+ (mfbcb-mfbab))/rho; - LBMReal vvz = ((((mfccc-mfaaa)+(mfcac-mfaca))+((mfacc-mfcaa)+(mfaac-mfcca)))+ + real vvz = ((((mfccc-mfaaa)+(mfcac-mfaca))+((mfacc-mfcaa)+(mfaac-mfcca)))+ (((mfbac-mfbca)+(mfbcc-mfbaa))+((mfabc-mfcba)+(mfcbc-mfaba)))+ (mfbbc-mfbba))/rho; //////////////////////////////////////////////////////////////////////////////////// - LBMReal omega = collFactor; + real omega = collFactor; //forcing /////////////////////////////////////////////////////////////////////////////////////////// @@ -258,20 +258,20 @@ void RheologyK17LBMKernel::calculate(int step) } /////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho = one; // comp special + real oMdrho = one; // comp special //////////////////////////////////////////////////////////////////////////////////// - LBMReal m0, m1, m2; - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real m0, m1, m2; + real vx2; + real vy2; + real vz2; vx2 = vvx*vvx; vy2 = vvy*vvy; vz2 = vvz*vvz; //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimitP = 0.01;// * 0.0001f; - LBMReal qudricLimitM = 0.01;// * 0.0001f; - LBMReal qudricLimitD = 0.01;// * 0.001f; + real wadjust; + real qudricLimitP = 0.01;// * 0.0001f; + real qudricLimitM = 0.01;// * 0.0001f; + real qudricLimitD = 0.01;// * 0.001f; //LBMReal s9 = minusomega; //test //s9 = 0.; @@ -545,38 +545,38 @@ void RheologyK17LBMKernel::calculate(int step) //////////////////////////////////////////////////////////// //4. ////////////////////////////// - LBMReal O4 = one; + real O4 = one; ////////////////////////////// //LBMReal O4 = omega;//TRT //////////////////////////////////////////////////////////// //5. ////////////////////////////// - LBMReal O5 = one; + real O5 = one; //////////////////////////////////////////////////////////// //6. ////////////////////////////// - LBMReal O6 = one; + real O6 = one; //////////////////////////////////////////////////////////// //central moments to cumulants //4. - LBMReal CUMcbb = mfcbb-((mfcaa+c1o3) * mfabb+two * mfbba * mfbab)/rho; //ab 15.05.2015 verwendet - LBMReal CUMbcb = mfbcb-((mfaca+c1o3) * mfbab+two * mfbba * mfabb)/rho; //ab 15.05.2015 verwendet - LBMReal CUMbbc = mfbbc-((mfaac+c1o3) * mfbba+two * mfbab * mfabb)/rho; //ab 15.05.2015 verwendet + real CUMcbb = mfcbb-((mfcaa+c1o3) * mfabb+two * mfbba * mfbab)/rho; //ab 15.05.2015 verwendet + real CUMbcb = mfbcb-((mfaca+c1o3) * mfbab+two * mfbba * mfabb)/rho; //ab 15.05.2015 verwendet + real CUMbbc = mfbbc-((mfaac+c1o3) * mfbba+two * mfbab * mfabb)/rho; //ab 15.05.2015 verwendet - LBMReal CUMcca = mfcca-(((mfcaa * mfaca+two * mfbba * mfbba)+c1o3 * (mfcaa+mfaca))/rho-c1o9*(drho/rho)); - LBMReal CUMcac = mfcac-(((mfcaa * mfaac+two * mfbab * mfbab)+c1o3 * (mfcaa+mfaac))/rho-c1o9*(drho/rho)); - LBMReal CUMacc = mfacc-(((mfaac * mfaca+two * mfabb * mfabb)+c1o3 * (mfaac+mfaca))/rho-c1o9*(drho/rho)); + real CUMcca = mfcca-(((mfcaa * mfaca+two * mfbba * mfbba)+c1o3 * (mfcaa+mfaca))/rho-c1o9*(drho/rho)); + real CUMcac = mfcac-(((mfcaa * mfaac+two * mfbab * mfbab)+c1o3 * (mfcaa+mfaac))/rho-c1o9*(drho/rho)); + real CUMacc = mfacc-(((mfaac * mfaca+two * mfabb * mfabb)+c1o3 * (mfaac+mfaca))/rho-c1o9*(drho/rho)); //5. - LBMReal CUMbcc = mfbcc-((mfaac * mfbca+mfaca * mfbac+four * mfabb * mfbbb+two * (mfbab * mfacb+mfbba * mfabc))+c1o3 * (mfbca+mfbac))/rho; - LBMReal CUMcbc = mfcbc-((mfaac * mfcba+mfcaa * mfabc+four * mfbab * mfbbb+two * (mfabb * mfcab+mfbba * mfbac))+c1o3 * (mfcba+mfabc))/rho; - LBMReal CUMccb = mfccb-((mfcaa * mfacb+mfaca * mfcab+four * mfbba * mfbbb+two * (mfbab * mfbca+mfabb * mfcba))+c1o3 * (mfacb+mfcab))/rho; + real CUMbcc = mfbcc-((mfaac * mfbca+mfaca * mfbac+four * mfabb * mfbbb+two * (mfbab * mfacb+mfbba * mfabc))+c1o3 * (mfbca+mfbac))/rho; + real CUMcbc = mfcbc-((mfaac * mfcba+mfcaa * mfabc+four * mfbab * mfbbb+two * (mfabb * mfcab+mfbba * mfbac))+c1o3 * (mfcba+mfabc))/rho; + real CUMccb = mfccb-((mfcaa * mfacb+mfaca * mfcab+four * mfbba * mfbbb+two * (mfbab * mfbca+mfabb * mfcba))+c1o3 * (mfacb+mfcab))/rho; //6. - LBMReal CUMccc = mfccc+((-four * mfbbb * mfbbb + real CUMccc = mfccc+((-four * mfbbb * mfbbb -(mfcaa * mfacc+mfaca * mfcac+mfaac * mfcca) -four * (mfabb * mfcbb+mfbab * mfbcb+mfbba * mfbbc) -two * (mfbca * mfbac+mfcba * mfabc+mfcab * mfacb))/rho @@ -595,9 +595,9 @@ void RheologyK17LBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa+mfaca+mfaac; - LBMReal mxxMyy = mfcaa-mfaca; - LBMReal mxxMzz = mfcaa-mfaac; + real mxxPyyPzz = mfcaa+mfaca+mfaac; + real mxxMyy = mfcaa-mfaca; + real mxxMzz = mfcaa-mfaac; ////////////////////////////////////////////////////////////////////////// // LBMReal magicBulk=(CUMacc+CUMcac+CUMcca)*(one/OxxPyyPzz-c1o2)*c3o2*8.; @@ -637,17 +637,17 @@ void RheologyK17LBMKernel::calculate(int step) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //incl. correction (hat noch nicht so gut funktioniert...Optimierungsbedarf??) - LBMReal dxux = c1o2 * (-omega) * (mxxMyy + mxxMzz);// +c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); - LBMReal dyuy = dxux+omega * c3o2 * mxxMyy; - LBMReal dzuz = dxux+omega * c3o2 * mxxMzz; + real dxux = c1o2 * (-omega) * (mxxMyy + mxxMzz);// +c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); + real dyuy = dxux+omega * c3o2 * mxxMyy; + real dzuz = dxux+omega * c3o2 * mxxMzz; - LBMReal Dxy =-three*omega*mfbba; - LBMReal Dxz =-three*omega*mfbab; - LBMReal Dyz =-three*omega*mfabb; + real Dxy =-three*omega*mfbba; + real Dxz =-three*omega*mfbab; + real Dyz =-three*omega*mfabb; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //non Newtonian fluid collision factor - LBMReal shearRate = sqrt(c2 * (dxux * dxux + dyuy * dyuy + dzuz * dzuz) + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz) / (drho + c1); + real shearRate = sqrt(c2 * (dxux * dxux + dyuy * dyuy + dzuz * dzuz) + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz) / (drho + c1); omega = getRheologyCollFactor(omega, shearRate, rho); //omega = Rheology::getHerschelBulkleyCollFactor(omega, shearRate, drho); //omega = Rheology::getBinghamCollFactor(omega, shearRate, drho); @@ -673,16 +673,16 @@ void RheologyK17LBMKernel::calculate(int step) //omega = collFactor; //magic parameter for rheology - LBMReal a = 10; + real a = 10; OxxPyyPzz = c1 / (a * ((c1 / omega) - c1o2) + c1o2); OxxPyyPzz = (OxxPyyPzz > c1) ? c1 : OxxPyyPzz; - LBMReal 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))); - LBMReal 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); - LBMReal 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 = 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)); - LBMReal 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)); - LBMReal 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 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 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)); //relax @@ -729,14 +729,14 @@ void RheologyK17LBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba+mfabc; - LBMReal mxxyMyzz = mfcba-mfabc; + real mxxyPyzz = mfcba+mfabc; + real mxxyMyzz = mfcba-mfabc; - LBMReal mxxzPyyz = mfcab+mfacb; - LBMReal mxxzMyyz = mfcab-mfacb; + real mxxzPyyz = mfcab+mfacb; + real mxxzMyyz = mfcab-mfacb; - LBMReal mxyyPxzz = mfbca+mfbac; - LBMReal mxyyMxzz = mfbca-mfbac; + real mxyyPxzz = mfbca+mfbac; + real mxyyMxzz = mfbca-mfbac; //relax ////////////////////////////////////////////////////////////////////////// @@ -1073,11 +1073,11 @@ void RheologyK17LBMKernel::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal drho_post = (mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) + real drho_post = (mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca) +(mfaab+mfacb+mfcab+mfccb)+(mfaba+mfabc+mfcba+mfcbc)+(mfbaa+mfbac+mfbca+mfbcc) +(mfabb+mfcbb)+(mfbab+mfbcb)+(mfbba+mfbbc)+mfbbb; //LBMReal dif = fabs(rho - rho_post); - LBMReal dif = drho - drho_post; + real dif = drho - drho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) #else @@ -1137,7 +1137,7 @@ double RheologyK17LBMKernel::getCalculationTime() return timer.getTotalTime(); } ////////////////////////////////////////////////////////////////////////// -void RheologyK17LBMKernel::setBulkViscosity(LBMReal value) +void RheologyK17LBMKernel::setBulkViscosity(real value) { bulkViscosity = value; } diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyK17LBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/RheologyK17LBMKernel.h index 77bb5ce84..395af8741 100644 --- a/src/cpu/VirtualFluidsCore/LBM/RheologyK17LBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/RheologyK17LBMKernel.h @@ -56,33 +56,33 @@ public: virtual SPtr<LBMKernel> clone() override; double getCalculationTime() override; //! The value should not be equal to a shear viscosity - void setBulkViscosity(LBMReal value); + void setBulkViscosity(real value); protected: virtual void initDataSet(); - virtual LBMReal getRheologyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) const + virtual real getRheologyCollFactor(real omegaInf, real shearRate, real drho) const { - UB_THROW(UbException("LBMReal getRheologyCollFactor() - belongs in the derived class")); + UB_THROW(UbException("real getRheologyCollFactor() - belongs in the derived class")); } - LBMReal f[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; UbTimer timer; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr localDistributions; - CbArray4D<LBMReal,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; - CbArray3D<LBMReal,IndexerX3X2X1>::CbArray3DPtr zeroDistributions; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr localDistributions; + CbArray4D<real,IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions; + CbArray3D<real,IndexerX3X2X1>::CbArray3DPtr zeroDistributions; mu::value_type muX1,muX2,muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; // bulk viscosity - LBMReal OxxPyyPzz; //omega2 (bulk viscosity) - LBMReal bulkViscosity; + real OxxPyyPzz; //omega2 (bulk viscosity) + real bulkViscosity; }; #endif // RheologyK17LBMKernel_h__ diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel.cpp index f399a0006..a01c08ec4 100644 --- a/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel.cpp @@ -130,53 +130,53 @@ void RheologyModelLBMKernel::calculate(int step) // a b c //-1 0 1 - LBMReal mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); - - LBMReal mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - - LBMReal m0, m1, m2; - - LBMReal rho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); + + real mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); + + real m0, m1, m2; + + real rho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); - LBMReal collFactorF = collFactor; + real collFactorF = collFactor; //forcing /////////////////////////////////////////////////////////////////////////////////////////// @@ -195,7 +195,7 @@ void RheologyModelLBMKernel::calculate(int step) vvz += forcingX3 * deltaT * 0.5; // Z } /////////////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho; + real oMdrho; oMdrho = mfccc + mfaaa; m0 = mfaca + mfcac; @@ -223,15 +223,15 @@ void RheologyModelLBMKernel::calculate(int step) m0 += mfbbb; //hat gefehlt oMdrho = 1. - (oMdrho + m0); - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2 = vvx * vvx; vy2 = vvy * vvy; vz2 = vvz * vvz; //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -462,33 +462,33 @@ void RheologyModelLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // Cumulants //////////////////////////////////////////////////////////////////////////////////// - LBMReal OxxPyyPzz = 1.; //omega2 or bulk viscosity - LBMReal OxyyPxzz = 1.;//-s9;//2+s9;// + real OxxPyyPzz = 1.; //omega2 or bulk viscosity + real OxyyPxzz = 1.;//-s9;//2+s9;// //LBMReal OxyyMxzz = 1.;//2+s9;// - LBMReal O4 = 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + real O4 = 1.; + real O5 = 1.; + real O6 = 1.; //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 - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho); - LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho); - LBMReal CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho); + 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); //Cum 5. - LBMReal CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal 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 + 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; //Cum 6. - LBMReal CUMccc = mfccc + ((-4. * mfbbb * mfbbb + real CUMccc = mfccc + ((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) @@ -502,20 +502,20 @@ void RheologyModelLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; - LBMReal dxux = -c1o2 * collFactorF * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); - LBMReal dyuy = dxux + collFactorF * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactorF * c3o2 * mxxMzz; + real dxux = -c1o2 * collFactorF * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); + real dyuy = dxux + collFactorF * c3o2 * mxxMyy; + real dzuz = dxux + collFactorF * c3o2 * mxxMzz; - LBMReal Dxy = -three * collFactorF * mfbba; - LBMReal Dxz = -three * collFactorF * mfbab; - LBMReal Dyz = -three * collFactorF * mfabb; + real Dxy = -three * collFactorF * mfbba; + real Dxz = -three * collFactorF * mfbab; + real Dyz = -three * collFactorF * mfabb; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //non Newtonian fluid collision factor - LBMReal shearRate = sqrt(c2 * (dxux * dxux + dyuy * dyuy + dzuz * dzuz) + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz) / (rho + one); + real shearRate = sqrt(c2 * (dxux * dxux + dyuy * dyuy + dzuz * dzuz) + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz) / (rho + one); collFactorF = getRheologyCollFactor(collFactorF, shearRate, rho); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -535,14 +535,14 @@ void RheologyModelLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //relax wadjust = OxyyMxzz + (1. - OxyyMxzz) * fabs(mfbbb) / (fabs(mfbbb) + qudricLimit); @@ -837,11 +837,11 @@ void RheologyModelLBMKernel::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; //LBMReal dif = fabs(rho - rho_post); - LBMReal dif = rho - rho_post; + real dif = rho - rho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) #else diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel.h index 0aba5a273..811e07feb 100644 --- a/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel.h @@ -58,24 +58,24 @@ public: protected: void initDataSet(); - virtual LBMReal getRheologyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) const { UB_THROW(UbException("LBMReal getRheologyCollFactor() - belongs in the derived class")); } + virtual real getRheologyCollFactor(real omegaInf, real shearRate, real drho) const { UB_THROW(UbException("real getRheologyCollFactor() - belongs in the derived class")); } - LBMReal f[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; UbTimer timer; - LBMReal OxyyMxzz; + real OxyyMxzz; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; mu::value_type muX1, muX2, muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; bool test; }; diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel2.cpp b/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel2.cpp index 2ab87c0b6..d563f8b95 100644 --- a/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel2.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel2.cpp @@ -99,53 +99,53 @@ void RheologyModelLBMKernel2::calculate(int step) // a b c //-1 0 1 - LBMReal mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); - - LBMReal mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); - - LBMReal mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - - LBMReal m0, m1, m2; - - LBMReal rho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real mfcbb = (*this->localDistributionsF)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsF)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsF)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsF)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsF)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsF)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsF)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsF)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsF)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsF)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsF)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsF)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsF)(D3Q27System::ET_TSW, x1p, x2p, x3); + + real mfabb = (*this->nonLocalDistributionsF)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsF)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsF)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsF)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsF)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsF)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsF)(D3Q27System::ET_BNE, x1, x2, x3p); + + real mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); + + real m0, m1, m2; + + real rho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); - LBMReal collFactorF = collFactor; + real collFactorF = collFactor; //forcing /////////////////////////////////////////////////////////////////////////////////////////// @@ -164,7 +164,7 @@ void RheologyModelLBMKernel2::calculate(int step) vvz += forcingX3 * deltaT * 0.5; // Z } /////////////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho; + real oMdrho; oMdrho = mfccc + mfaaa; m0 = mfaca + mfcac; @@ -192,15 +192,15 @@ void RheologyModelLBMKernel2::calculate(int step) m0 += mfbbb; //hat gefehlt oMdrho = 1. - (oMdrho + m0); - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2 = vvx * vvx; vy2 = vvy * vvy; vz2 = vvz * vvz; //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -431,33 +431,33 @@ void RheologyModelLBMKernel2::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // Cumulants //////////////////////////////////////////////////////////////////////////////////// - LBMReal OxxPyyPzz = 1.; //omega2 or bulk viscosity - LBMReal OxyyPxzz = 1.;//-s9;//2+s9;// - //LBMReal OxyyMxzz = 1.;//2+s9;// - LBMReal O4 = 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + 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.; //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 - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho); - LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho); - LBMReal CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9 * (oMdrho - 1) * oMdrho); + 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); //Cum 5. - LBMReal CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal 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 + 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; //Cum 6. - LBMReal CUMccc = mfccc + ((-4. * mfbbb * mfbbb + real CUMccc = mfccc + ((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) @@ -471,13 +471,13 @@ void RheologyModelLBMKernel2::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; - LBMReal dxux = -c1o2 * collFactorF * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); - LBMReal dyuy = dxux + collFactorF * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactorF * c3o2 * mxxMzz; + real dxux = -c1o2 * collFactorF * (mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); + real dyuy = dxux + collFactorF * c3o2 * mxxMyy; + real dzuz = dxux + collFactorF * c3o2 * mxxMzz; // LBMReal Dxy = -three * collFactorF * mfbba; // LBMReal Dxz = -three * collFactorF * mfbab; @@ -486,7 +486,7 @@ void RheologyModelLBMKernel2::calculate(int step) //non Newtonian fluid collision factor // LBMReal shearRate = sqrt(c2 * (dxux * dxux + dyuy * dyuy + dzuz * dzuz) + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz) / (rho + one); - LBMReal shearFactor = sqrt(c1o2 * ((mfcaa - mfaaa * c1o3) * (mfcaa - mfaaa * c1o3) + (mfaca - mfaaa * c1o3) * (mfaca - mfaaa * c1o3) + (mfaac - mfaaa * c1o3) * (mfaac - mfaaa * c1o3)) + mfbba * mfbba + mfbab * mfbab + mfabb * mfabb) + UbMath::Epsilon<LBMReal>::val(); + real shearFactor = sqrt(c1o2 * ((mfcaa - mfaaa * c1o3) * (mfcaa - mfaaa * c1o3) + (mfaca - mfaaa * c1o3) * (mfaca - mfaaa * c1o3) + (mfaac - mfaaa * c1o3) * (mfaac - mfaaa * c1o3)) + mfbba * mfbba + mfbab * mfbab + mfabb * mfabb) + UbMath::Epsilon<real>::val(); //collFactorF = getRheologyCollFactor(collFactorF, shearRate, rho); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -505,7 +505,7 @@ void RheologyModelLBMKernel2::calculate(int step) //mfbba += getRheologyCollFactor(collFactorF, std::abs(Dxy) / (rho + one), rho) * (-mfbba); SPtr<Rheology> thix = Rheology::getInstance(); - LBMReal tau0 = thix->getYieldStress(); + real tau0 = thix->getYieldStress(); mxxPyyPzz += OxxPyyPzz * (mfaaa - mxxPyyPzz /*+ ((mxxPyyPzz-mfaaa)/shearFactor*tau0)*/) - 3. * (1. - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); //mxxPyyPzz += OxxPyyPzz * (mfaaa - mxxPyyPzz) - 3. * (1. - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); @@ -533,14 +533,14 @@ void RheologyModelLBMKernel2::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //relax wadjust = OxyyMxzz + (1. - OxyyMxzz) * fabs(mfbbb) / (fabs(mfbbb) + qudricLimit); @@ -835,11 +835,11 @@ void RheologyModelLBMKernel2::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; //LBMReal dif = fabs(rho - rho_post); - LBMReal dif = rho - rho_post; + real dif = rho - rho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) #else diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel2.h b/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel2.h index c3a20a110..46f9bf19e 100644 --- a/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel2.h +++ b/src/cpu/VirtualFluidsCore/LBM/RheologyModelLBMKernel2.h @@ -26,24 +26,24 @@ public: protected: void initDataSet(); - virtual LBMReal getRheologyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) const { UB_THROW(UbException("LBMReal getRheologyCollFactor() - belongs in the derived class")); } + virtual real getRheologyCollFactor(real omegaInf, real shearRate, real drho) const { UB_THROW(UbException("real getRheologyCollFactor() - belongs in the derived class")); } - LBMReal f[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; UbTimer timer; - LBMReal OxyyMxzz; + real OxyyMxzz; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; mu::value_type muX1, muX2, muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; bool test; }; diff --git a/src/cpu/VirtualFluidsCore/LBM/RheologyPowellEyringModelLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/RheologyPowellEyringModelLBMKernel.h index a68eca9cd..acd02101f 100644 --- a/src/cpu/VirtualFluidsCore/LBM/RheologyPowellEyringModelLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/RheologyPowellEyringModelLBMKernel.h @@ -60,7 +60,7 @@ public: return kernel; } protected: - LBMReal getRheologyCollFactor(LBMReal omegaInf, LBMReal shearRate, LBMReal drho) const override + real getRheologyCollFactor(real omegaInf, real shearRate, real drho) const override { return Rheology::getPowellEyringCollFactor(omegaInf, shearRate, drho); } diff --git a/src/cpu/VirtualFluidsCore/LBM/ThixotropyExpLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/ThixotropyExpLBMKernel.cpp index a13e4fc71..7719e5d65 100644 --- a/src/cpu/VirtualFluidsCore/LBM/ThixotropyExpLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/ThixotropyExpLBMKernel.cpp @@ -134,37 +134,37 @@ void ThixotropyExpLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// - LBMReal mfcbb = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfcbb = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsH)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsH)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsH)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); + real mfabb = (*this->nonLocalDistributionsH)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsH)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsH)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); - LBMReal mfbbb = (*this->zeroDistributionsH)(x1, x2, x3); + real mfbbb = (*this->zeroDistributionsH)(x1, x2, x3); - LBMReal lambda = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real lambda = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; @@ -214,19 +214,19 @@ void ThixotropyExpLBMKernel::calculate(int step) mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - LBMReal m0, m1, m2; + real m0, m1, m2; - LBMReal rho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real rho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); @@ -253,7 +253,7 @@ void ThixotropyExpLBMKernel::calculate(int step) vvz += forcingX3*deltaT*0.5; // Z } /////////////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho; + real oMdrho; oMdrho = mfccc + mfaaa; m0 = mfaca + mfcac; @@ -281,15 +281,15 @@ void ThixotropyExpLBMKernel::calculate(int step) m0 += mfbbb; //hat gefehlt oMdrho = 1. - (oMdrho + m0); - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2 = vvx*vvx; vy2 = vvy*vvy; vz2 = vvz*vvz; //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -520,33 +520,33 @@ void ThixotropyExpLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // Cumulants //////////////////////////////////////////////////////////////////////////////////// - LBMReal OxxPyyPzz = 1.; //omega2 or bulk viscosity - LBMReal OxyyPxzz = 1.;//-s9;//2+s9;// + real OxxPyyPzz = 1.; //omega2 or bulk viscosity + real OxyyPxzz = 1.;//-s9;//2+s9;// //LBMReal OxyyMxzz = 1.;//2+s9;// - LBMReal O4 = 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + real O4 = 1.; + real O5 = 1.; + real O6 = 1.; //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 - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho - 1)*oMdrho); - LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho - 1)*oMdrho); - LBMReal CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho - 1)*oMdrho); + 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); //Cum 5. - LBMReal CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal 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 + 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; //Cum 6. - LBMReal CUMccc = mfccc + ((-4. * mfbbb * mfbbb + real CUMccc = mfccc + ((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) @@ -560,19 +560,19 @@ void ThixotropyExpLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; - LBMReal dxux = -c1o2 * collFactorF *(mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz*(mfaaa - mxxPyyPzz); - LBMReal dyuy = dxux + collFactorF * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactorF * c3o2 * mxxMzz; + real dxux = -c1o2 * collFactorF *(mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz*(mfaaa - mxxPyyPzz); + real dyuy = dxux + collFactorF * c3o2 * mxxMyy; + real dzuz = dxux + collFactorF * c3o2 * mxxMzz; - LBMReal Dxy =-three*collFactorF*mfbba; - LBMReal Dxz =-three*collFactorF*mfbab; - LBMReal Dyz =-three*collFactorF*mfabb; + real Dxy =-three*collFactorF*mfbba; + real Dxz =-three*collFactorF*mfbab; + real Dyz =-three*collFactorF*mfabb; - LBMReal gammaDot = sqrt(dxux * dxux + dyuy * dyuy + dzuz * dzuz + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz) / (rho + one); + real gammaDot = sqrt(dxux * dxux + dyuy * dyuy + dzuz * dzuz + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz) / (rho + one); //collFactorF = BinghamModel::getBinghamCollFactor(collFactorF, gammaDot, rho); //relax @@ -591,14 +591,14 @@ void ThixotropyExpLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //relax wadjust = OxyyMxzz + (1. - OxyyMxzz)*fabs(mfbbb) / (fabs(mfbbb) + qudricLimit); @@ -893,11 +893,11 @@ void ThixotropyExpLBMKernel::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; //LBMReal dif = fabs(rho - rho_post); - LBMReal dif = rho - rho_post; + real dif = rho - rho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) #else @@ -959,7 +959,7 @@ void ThixotropyExpLBMKernel::calculate(int step) - LBMReal ux, uy, uz; + real ux, uy, uz; ux = vvx; uy = vvy; @@ -1005,7 +1005,7 @@ void ThixotropyExpLBMKernel::calculate(int step) mfbbb = (*this->zeroDistributionsH)(x1, x2, x3); //////////////////////////////////////////////////////////////////////////////////// - LBMReal drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + + real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb)) + (mfbba + mfbbc)) + mfbbb; @@ -1021,56 +1021,56 @@ void ThixotropyExpLBMKernel::calculate(int step) //collFactorF = (collFactorF < 0.5) ? 0.5 : collFactorF; - LBMReal dlambda = one / theta - alpha * lambda * gammaDot; + real dlambda = one / theta - alpha * lambda * gammaDot; ////////////////////////////////////////////////////////////////////////// //collision Factorized Central moment Kernel Geier 2015 ////////////////////////////////////////////////////////////////////////// - LBMReal Mom000 = mfaaa + mfaab + mfaac + mfaba + mfabb + mfabc + mfaca + + real Mom000 = mfaaa + mfaab + mfaac + mfaba + mfabb + mfabc + mfaca + mfacb + mfacc + mfbaa + mfbab + mfbac + mfbba + mfbbb + mfbbc + mfbca + mfbcb + mfbcc + mfcaa + mfcab + mfcac + mfcba + mfcbb + mfcbc + mfcca + mfccb + mfccc; Mom000 += dlambda*c1o2; //1 //(100)// - LBMReal Mom100 = mfaaa*(-1 - ux) + mfaab*(-1 - ux) + mfaac*(-1 - ux) + mfaba*(-1 - ux) + mfabb*(-1 - ux) + mfabc*(-1 - ux) + mfaca*(-1 - ux) + + real Mom100 = mfaaa*(-1 - ux) + mfaab*(-1 - ux) + mfaac*(-1 - ux) + mfaba*(-1 - ux) + mfabb*(-1 - ux) + mfabc*(-1 - ux) + mfaca*(-1 - ux) + mfacb*(-1 - ux) + mfacc*(-1 - ux) + mfcaa*(1 - ux) + mfcab*(1 - ux) + mfcac*(1 - ux) + mfcba*(1 - ux) + mfcbb*(1 - ux) + mfcbc*(1 - ux) + mfcca*(1 - ux) + mfccb*(1 - ux) + mfccc*(1 - ux) - mfbaa*ux - mfbab*ux - mfbac*ux - mfbba*ux - mfbbb*ux - mfbbc*ux - mfbca*ux - mfbcb*ux - mfbcc*ux; - LBMReal Mom010 = mfaaa*(-1 - uy) + mfaab*(-1 - uy) + mfaac*(-1 - uy) + mfbaa*(-1 - uy) + mfbab*(-1 - uy) + mfbac*(-1 - uy) + mfcaa*(-1 - uy) + + real Mom010 = mfaaa*(-1 - uy) + mfaab*(-1 - uy) + mfaac*(-1 - uy) + mfbaa*(-1 - uy) + mfbab*(-1 - uy) + mfbac*(-1 - uy) + mfcaa*(-1 - uy) + mfcab*(-1 - uy) + mfcac*(-1 - uy) + mfaca*(1 - uy) + mfacb*(1 - uy) + mfacc*(1 - uy) + mfbca*(1 - uy) + mfbcb*(1 - uy) + mfbcc*(1 - uy) + mfcca*(1 - uy) + mfccb*(1 - uy) + mfccc*(1 - uy) - mfaba*uy - mfabb*uy - mfabc*uy - mfbba*uy - mfbbb*uy - mfbbc*uy - mfcba*uy - mfcbb*uy - mfcbc*uy; - LBMReal Mom001 = mfaaa*(-1 - uz) + mfaba*(-1 - uz) + mfaca*(-1 - uz) + mfbaa*(-1 - uz) + mfbba*(-1 - uz) + mfbca*(-1 - uz) + mfcaa*(-1 - uz) + + real Mom001 = mfaaa*(-1 - uz) + mfaba*(-1 - uz) + mfaca*(-1 - uz) + mfbaa*(-1 - uz) + mfbba*(-1 - uz) + mfbca*(-1 - uz) + mfcaa*(-1 - uz) + mfcba*(-1 - uz) + mfcca*(-1 - uz) + mfaac*(1 - uz) + mfabc*(1 - uz) + mfacc*(1 - uz) + mfbac*(1 - uz) + mfbbc*(1 - uz) + mfbcc*(1 - uz) + mfcac*(1 - uz) + mfcbc*(1 - uz) + mfccc*(1 - uz) - mfaab*uz - mfabb*uz - mfacb*uz - mfbab*uz - mfbbb*uz - mfbcb*uz - mfcab*uz - mfcbb*uz - mfccb*uz; //// //(110)// - LBMReal Mom110 = mfaaa*(-1 - ux)*(-1 - uy) + mfaab*(-1 - ux)*(-1 - uy) + mfaac*(-1 - ux)*(-1 - uy) + mfcaa*(1 - ux)*(-1 - uy) + + real Mom110 = mfaaa*(-1 - ux)*(-1 - uy) + mfaab*(-1 - ux)*(-1 - uy) + mfaac*(-1 - ux)*(-1 - uy) + mfcaa*(1 - ux)*(-1 - uy) + mfcab*(1 - ux)*(-1 - uy) + mfcac*(1 - ux)*(-1 - uy) - mfbaa*ux*(-1 - uy) - mfbab*ux*(-1 - uy) - mfbac*ux*(-1 - uy) + mfaca*(-1 - ux)*(1 - uy) + mfacb*(-1 - ux)*(1 - uy) + mfacc*(-1 - ux)*(1 - uy) + mfcca*(1 - ux)*(1 - uy) + mfccb*(1 - ux)*(1 - uy) + mfccc*(1 - ux)*(1 - uy) - mfbca*ux*(1 - uy) - mfbcb*ux*(1 - uy) - mfbcc*ux*(1 - uy) - mfaba*(-1 - ux)*uy - mfabb*(-1 - ux)*uy - mfabc*(-1 - ux)*uy - mfcba*(1 - ux)*uy - mfcbb*(1 - ux)*uy - mfcbc*(1 - ux)*uy + mfbba*ux*uy + mfbbb*ux*uy + mfbbc*ux*uy; - LBMReal Mom101 = mfaaa*(-1 - ux)*(-1 - uz) + mfaba*(-1 - ux)*(-1 - uz) + mfaca*(-1 - ux)*(-1 - uz) + mfcaa*(1 - ux)*(-1 - uz) + + real Mom101 = mfaaa*(-1 - ux)*(-1 - uz) + mfaba*(-1 - ux)*(-1 - uz) + mfaca*(-1 - ux)*(-1 - uz) + mfcaa*(1 - ux)*(-1 - uz) + mfcba*(1 - ux)*(-1 - uz) + mfcca*(1 - ux)*(-1 - uz) - mfbaa*ux*(-1 - uz) - mfbba*ux*(-1 - uz) - mfbca*ux*(-1 - uz) + mfaac*(-1 - ux)*(1 - uz) + mfabc*(-1 - ux)*(1 - uz) + mfacc*(-1 - ux)*(1 - uz) + mfcac*(1 - ux)*(1 - uz) + mfcbc*(1 - ux)*(1 - uz) + mfccc*(1 - ux)*(1 - uz) - mfbac*ux*(1 - uz) - mfbbc*ux*(1 - uz) - mfbcc*ux*(1 - uz) - mfaab*(-1 - ux)*uz - mfabb*(-1 - ux)*uz - mfacb*(-1 - ux)*uz - mfcab*(1 - ux)*uz - mfcbb*(1 - ux)*uz - mfccb*(1 - ux)*uz + mfbab*ux*uz + mfbbb*ux*uz + mfbcb*ux*uz; - LBMReal Mom011 = mfaaa*(-1 - uy)*(-1 - uz) + mfbaa*(-1 - uy)*(-1 - uz) + mfcaa*(-1 - uy)*(-1 - uz) + mfaca*(1 - uy)*(-1 - uz) + + real Mom011 = mfaaa*(-1 - uy)*(-1 - uz) + mfbaa*(-1 - uy)*(-1 - uz) + mfcaa*(-1 - uy)*(-1 - uz) + mfaca*(1 - uy)*(-1 - uz) + mfbca*(1 - uy)*(-1 - uz) + mfcca*(1 - uy)*(-1 - uz) - mfaba*uy*(-1 - uz) - mfbba*uy*(-1 - uz) - mfcba*uy*(-1 - uz) + mfaac*(-1 - uy)*(1 - uz) + mfbac*(-1 - uy)*(1 - uz) + mfcac*(-1 - uy)*(1 - uz) + mfacc*(1 - uy)*(1 - uz) + mfbcc*(1 - uy)*(1 - uz) + mfccc*(1 - uy)*(1 - uz) - mfabc*uy*(1 - uz) - mfbbc*uy*(1 - uz) - mfcbc*uy*(1 - uz) - mfaab*(-1 - uy)*uz - mfbab*(-1 - uy)*uz - mfcab*(-1 - uy)*uz - mfacb*(1 - uy)*uz - mfbcb*(1 - uy)*uz - mfccb*(1 - uy)*uz + mfabb*uy*uz + mfbbb*uy*uz + mfcbb*uy*uz; //// - LBMReal Mom111 = mfaaa*(-1 - ux)*(-1 - uy)*(-1 - uz) + mfcaa*(1 - ux)*(-1 - uy)*(-1 - uz) - mfbaa*ux*(-1 - uy)*(-1 - uz) + + real Mom111 = mfaaa*(-1 - ux)*(-1 - uy)*(-1 - uz) + mfcaa*(1 - ux)*(-1 - uy)*(-1 - uz) - mfbaa*ux*(-1 - uy)*(-1 - uz) + mfaca*(-1 - ux)*(1 - uy)*(-1 - uz) + mfcca*(1 - ux)*(1 - uy)*(-1 - uz) - mfbca*ux*(1 - uy)*(-1 - uz) - mfaba*(-1 - ux)*uy*(-1 - uz) - mfcba*(1 - ux)*uy*(-1 - uz) + mfbba*ux*uy*(-1 - uz) + mfaac*(-1 - ux)*(-1 - uy)*(1 - uz) + mfcac*(1 - ux)*(-1 - uy)*(1 - uz) - mfbac*ux*(-1 - uy)*(1 - uz) + mfacc*(-1 - ux)*(1 - uy)*(1 - uz) + @@ -1080,14 +1080,14 @@ void ThixotropyExpLBMKernel::calculate(int step) mfbbb*ux*uy*uz; //(200)// - LBMReal Mom200 = ((mfcaa + mfcab + mfcac + mfcba + mfcbb + mfcbc + mfcca + mfccb + + real Mom200 = ((mfcaa + mfcab + mfcac + mfcba + mfcbb + mfcbc + mfcca + mfccb + mfccc)*pow(-1 + ux, 2) + (mfbaa + mfbab + mfbac + mfbba + mfbbb + mfbbc + mfbca + mfbcb + mfbcc)*pow(ux, 2) + (mfaaa + mfaab + mfaac + mfaba + mfabb + mfabc + mfaca + mfacb + mfacc)*pow(1 + ux, 2)) - Mom000 / 3; - LBMReal Mom020 = ((mfaca + mfacb + mfacc)*pow(-1 + uy, 2) + + real Mom020 = ((mfaca + mfacb + mfacc)*pow(-1 + uy, 2) + (mfbca + mfbcb + mfbcc)*pow(-1 + uy, 2) + (mfcca + mfccb + mfccc)*pow(-1 + uy, 2) + (mfaba + mfabb + mfabc)*pow(uy, 2) + @@ -1097,7 +1097,7 @@ void ThixotropyExpLBMKernel::calculate(int step) (mfbaa + mfbab + mfbac)*pow(1 + uy, 2) + (mfcaa + mfcab + mfcac)*pow(1 + uy, 2)) - Mom000 / 3; - LBMReal Mom002 = (mfaba + mfabc + mfaca + mfacc + mfbba + mfbbc + mfbca + mfbcc + + real Mom002 = (mfaba + mfabc + mfaca + mfacc + mfbba + mfbbc + mfbca + mfbcc + mfcba + mfcbc + mfcca + mfccc + mfaac*pow(-1 + uz, 2) + mfbac*pow(-1 + uz, 2) + mfcac*pow(-1 + uz, 2) + 2 * mfaba*uz - 2 * mfabc*uz + 2 * mfaca*uz - 2 * mfacc*uz + @@ -1115,7 +1115,7 @@ void ThixotropyExpLBMKernel::calculate(int step) //// //(210)// - LBMReal Mom210 = (pow(1 + ux, 2)*(-((mfaca + mfacb + mfacc)*(-1 + uy)) - + real Mom210 = (pow(1 + ux, 2)*(-((mfaca + mfacb + mfacc)*(-1 + uy)) - (mfaba + mfabb + mfabc)*uy - (mfaaa + mfaab + mfaac)*(1 + uy)) + pow(ux, 2)*(-((mfbca + mfbcb + mfbcc)*(-1 + uy)) - @@ -1125,7 +1125,7 @@ void ThixotropyExpLBMKernel::calculate(int step) (mfcba + mfcbb + mfcbc)*uy - (mfcaa + mfcab + mfcac)*(1 + uy))) - Mom010 / 3; - LBMReal Mom201 = (-(pow(1 + ux, 2)*(mfaba - mfabc + mfaca - mfacc + + real Mom201 = (-(pow(1 + ux, 2)*(mfaba - mfabc + mfaca - mfacc + mfaac*(-1 + uz) + mfaab*uz + mfaba*uz + mfabb*uz + mfabc*uz + mfaca*uz + mfacb*uz + mfacc*uz + mfaaa*(1 + uz))) - @@ -1136,7 +1136,7 @@ void ThixotropyExpLBMKernel::calculate(int step) mfcac*(-1 + uz) + mfcab*uz + mfcba*uz + mfcbb*uz + mfcbc*uz + mfcca*uz + mfccb*uz + mfccc*uz + mfcaa*(1 + uz))) - Mom001 / 3; - LBMReal Mom120 = ((-1 - ux)*((mfaca + mfacb + mfacc)*pow(-1 + uy, 2) + + real Mom120 = ((-1 - ux)*((mfaca + mfacb + mfacc)*pow(-1 + uy, 2) + (mfaba + mfabb + mfabc)*pow(uy, 2) + (mfaaa + mfaab + mfaac)*pow(1 + uy, 2)) - ux*((mfbca + mfbcb + mfbcc)*pow(-1 + uy, 2) + @@ -1147,7 +1147,7 @@ void ThixotropyExpLBMKernel::calculate(int step) (mfcaa + mfcab + mfcac)*pow(1 + uy, 2))) - Mom100 / 3; - LBMReal Mom102 = (-((1 + ux)*(mfaba + mfabc + mfaca + mfacc + + real Mom102 = (-((1 + ux)*(mfaba + mfabc + mfaca + mfacc + mfaac*pow(-1 + uz, 2) + 2 * mfaba*uz - 2 * mfabc*uz + 2 * mfaca*uz - 2 * mfacc*uz + mfaab*pow(uz, 2) + mfaba*pow(uz, 2) + mfabb*pow(uz, 2) + @@ -1168,7 +1168,7 @@ void ThixotropyExpLBMKernel::calculate(int step) mfccb*pow(uz, 2) + mfccc*pow(uz, 2) + mfcaa*pow(1 + uz, 2))) - Mom100 / 3; - LBMReal Mom021 = (-(pow(1 + uy, 2)*(mfaac*(-1 + uz) + mfaab*uz + + real Mom021 = (-(pow(1 + uy, 2)*(mfaac*(-1 + uz) + mfaab*uz + mfaaa*(1 + uz))) - pow(uy, 2)*(mfabc*(-1 + uz) + mfabb*uz + mfaba*(1 + uz)) - pow(-1 + uy, 2)*(mfacc*(-1 + uz) + mfacb*uz + @@ -1181,7 +1181,7 @@ void ThixotropyExpLBMKernel::calculate(int step) pow(uy, 2)*(mfcbc*(-1 + uz) + mfcbb*uz + mfcba*(1 + uz)) - pow(-1 + uy, 2)*(mfccc*(-1 + uz) + mfccb*uz + mfcca*(1 + uz))) - Mom001 / 3; - LBMReal Mom012 = (-((1 + uy)*(mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + + real Mom012 = (-((1 + uy)*(mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + mfaaa*pow(1 + uz, 2))) - uy*(mfabc*pow(-1 + uz, 2) + mfabb*pow(uz, 2) + mfaba*pow(1 + uz, 2)) - @@ -1203,7 +1203,7 @@ void ThixotropyExpLBMKernel::calculate(int step) //(220)// - LBMReal Mom220 = (pow(1 + ux, 2)*((mfaca + mfacb + mfacc)*pow(-1 + uy, 2) + + real Mom220 = (pow(1 + ux, 2)*((mfaca + mfacb + mfacc)*pow(-1 + uy, 2) + (mfaba + mfabb + mfabc)*pow(uy, 2) + (mfaaa + mfaab + mfaac)*pow(1 + uy, 2)) + pow(ux, 2)*((mfbca + mfbcb + mfbcc)*pow(-1 + uy, 2) + @@ -1213,7 +1213,7 @@ void ThixotropyExpLBMKernel::calculate(int step) (mfcba + mfcbb + mfcbc)*pow(uy, 2) + (mfcaa + mfcab + mfcac)*pow(1 + uy, 2))) - Mom000 / 9; - LBMReal Mom202 = (pow(1 + ux, 2)*(mfaba + mfabc + mfaca + mfacc + + real Mom202 = (pow(1 + ux, 2)*(mfaba + mfabc + mfaca + mfacc + mfaac*pow(-1 + uz, 2) + 2 * mfaba*uz - 2 * mfabc*uz + 2 * mfaca*uz - 2 * mfacc*uz + mfaab*pow(uz, 2) + mfaba*pow(uz, 2) + mfabb*pow(uz, 2) + @@ -1235,7 +1235,7 @@ void ThixotropyExpLBMKernel::calculate(int step) mfccb*pow(uz, 2) + mfccc*pow(uz, 2) + mfcaa*pow(1 + uz, 2))) - Mom000 / 9; - LBMReal Mom022 = (pow(1 + uy, 2)*(mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + + real Mom022 = (pow(1 + uy, 2)*(mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + mfaaa*pow(1 + uz, 2)) + pow(uy, 2)*(mfabc*pow(-1 + uz, 2) + mfabb*pow(uz, 2) + mfaba*pow(1 + uz, 2)) + @@ -1256,7 +1256,7 @@ void ThixotropyExpLBMKernel::calculate(int step) //// //(221)// - LBMReal Mom221 = (pow(1 + ux, 2)*(-(pow(1 + uy, 2)* + real Mom221 = (pow(1 + ux, 2)*(-(pow(1 + uy, 2)* (mfaac*(-1 + uz) + mfaab*uz + mfaaa*(1 + uz))) - pow(uy, 2)*(mfabc*(-1 + uz) + mfabb*uz + mfaba*(1 + uz)) - @@ -1275,7 +1275,7 @@ void ThixotropyExpLBMKernel::calculate(int step) pow(-1 + uy, 2)*(mfccc*(-1 + uz) + mfccb*uz + mfcca*(1 + uz)))) - Mom001 / 9; - LBMReal Mom212 = (pow(1 + ux, 2)*(-((1 + uy)* + real Mom212 = (pow(1 + ux, 2)*(-((1 + uy)* (mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + mfaaa*pow(1 + uz, 2))) - uy*(mfabc*pow(-1 + uz, 2) + mfabb*pow(uz, 2) + @@ -1297,7 +1297,7 @@ void ThixotropyExpLBMKernel::calculate(int step) (-1 + uy)*(mfccc*pow(-1 + uz, 2) + mfccb*pow(uz, 2) + mfcca*pow(1 + uz, 2)))) - Mom010 / 9; - LBMReal Mom122 = ((-1 - ux)*(pow(1 + uy, 2)* + real Mom122 = ((-1 - ux)*(pow(1 + uy, 2)* (mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + mfaaa*pow(1 + uz, 2)) + pow(uy, 2)*(mfabc*pow(-1 + uz, 2) + mfabb*pow(uz, 2) + @@ -1320,7 +1320,7 @@ void ThixotropyExpLBMKernel::calculate(int step) //// //(211)// - LBMReal Mom211 = (pow(1 + ux, 2)*((1 + uy)*(mfaac*(-1 + uz) + mfaab*uz + + real Mom211 = (pow(1 + ux, 2)*((1 + uy)*(mfaac*(-1 + uz) + mfaab*uz + mfaaa*(1 + uz)) + uy*(mfabc*(-1 + uz) + mfabb*uz + mfaba*(1 + uz)) + (-1 + uy)*(mfacc*(-1 + uz) + mfacb*uz + mfaca*(1 + uz))) + @@ -1333,7 +1333,7 @@ void ThixotropyExpLBMKernel::calculate(int step) uy*(mfcbc*(-1 + uz) + mfcbb*uz + mfcba*(1 + uz)) + (-1 + uy)*(mfccc*(-1 + uz) + mfccb*uz + mfcca*(1 + uz)))) - Mom011 / 3; - LBMReal Mom121 = ((-1 - ux)*(-(pow(1 + uy, 2)* + real Mom121 = ((-1 - ux)*(-(pow(1 + uy, 2)* (mfaac*(-1 + uz) + mfaab*uz + mfaaa*(1 + uz))) - pow(uy, 2)*(mfabc*(-1 + uz) + mfabb*uz + mfaba*(1 + uz)) - @@ -1352,7 +1352,7 @@ void ThixotropyExpLBMKernel::calculate(int step) pow(-1 + uy, 2)*(mfccc*(-1 + uz) + mfccb*uz + mfcca*(1 + uz)))) - Mom101 / 3; - LBMReal Mom112 = ((-1 - ux)*(-((1 + uy)*(mfaac*pow(-1 + uz, 2) + + real Mom112 = ((-1 - ux)*(-((1 + uy)*(mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + mfaaa*pow(1 + uz, 2))) - uy*(mfabc*pow(-1 + uz, 2) + mfabb*pow(uz, 2) + mfaba*pow(1 + uz, 2)) - @@ -1373,7 +1373,7 @@ void ThixotropyExpLBMKernel::calculate(int step) //// //(222)// - LBMReal Mom222 = (pow(1 + ux, 2)*(pow(1 + uy, 2)* + real Mom222 = (pow(1 + ux, 2)*(pow(1 + uy, 2)* (mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + mfaaa*pow(1 + uz, 2)) + pow(uy, 2)*(mfabc*pow(-1 + uz, 2) + mfabb*pow(uz, 2) + @@ -1400,7 +1400,7 @@ void ThixotropyExpLBMKernel::calculate(int step) - LBMReal Meq000 = drho+dlambda*c1o2; + real Meq000 = drho+dlambda*c1o2; // relaxation Central Moment MRT diff --git a/src/cpu/VirtualFluidsCore/LBM/ThixotropyExpLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/ThixotropyExpLBMKernel.h index 3104808ad..108282735 100644 --- a/src/cpu/VirtualFluidsCore/LBM/ThixotropyExpLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/ThixotropyExpLBMKernel.h @@ -39,33 +39,33 @@ public: protected: virtual void initDataSet(); - LBMReal f[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; UbTimer timer; - LBMReal OxyyMxzz; + real OxyyMxzz; Parameter parameter; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH; mu::value_type muX1, muX2, muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; - LBMReal collFactorF; - LBMReal collFactorH; + real collFactorF; + real collFactorH; - LBMReal theta; - LBMReal alpha; + real theta; + real alpha; }; #endif diff --git a/src/cpu/VirtualFluidsCore/LBM/ThixotropyLBMKernel.cpp b/src/cpu/VirtualFluidsCore/LBM/ThixotropyLBMKernel.cpp index b369b45a6..b605025f2 100644 --- a/src/cpu/VirtualFluidsCore/LBM/ThixotropyLBMKernel.cpp +++ b/src/cpu/VirtualFluidsCore/LBM/ThixotropyLBMKernel.cpp @@ -134,37 +134,37 @@ void ThixotropyLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// - LBMReal mfcbb = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); - LBMReal mfbcb = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); - LBMReal mfbbc = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); - LBMReal mfccb = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); - LBMReal mfacb = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); - LBMReal mfcbc = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); - LBMReal mfabc = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); - LBMReal mfbcc = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); - LBMReal mfbac = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); - LBMReal mfccc = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); - LBMReal mfacc = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); - LBMReal mfcac = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); - LBMReal mfaac = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); + real mfcbb = (*this->localDistributionsH)(D3Q27System::ET_E, x1, x2, x3); + real mfbcb = (*this->localDistributionsH)(D3Q27System::ET_N, x1, x2, x3); + real mfbbc = (*this->localDistributionsH)(D3Q27System::ET_T, x1, x2, x3); + real mfccb = (*this->localDistributionsH)(D3Q27System::ET_NE, x1, x2, x3); + real mfacb = (*this->localDistributionsH)(D3Q27System::ET_NW, x1p, x2, x3); + real mfcbc = (*this->localDistributionsH)(D3Q27System::ET_TE, x1, x2, x3); + real mfabc = (*this->localDistributionsH)(D3Q27System::ET_TW, x1p, x2, x3); + real mfbcc = (*this->localDistributionsH)(D3Q27System::ET_TN, x1, x2, x3); + real mfbac = (*this->localDistributionsH)(D3Q27System::ET_TS, x1, x2p, x3); + real mfccc = (*this->localDistributionsH)(D3Q27System::ET_TNE, x1, x2, x3); + real mfacc = (*this->localDistributionsH)(D3Q27System::ET_TNW, x1p, x2, x3); + real mfcac = (*this->localDistributionsH)(D3Q27System::ET_TSE, x1, x2p, x3); + real mfaac = (*this->localDistributionsH)(D3Q27System::ET_TSW, x1p, x2p, x3); - LBMReal mfabb = (*this->nonLocalDistributionsH)(D3Q27System::ET_W, x1p, x2, x3); - LBMReal mfbab = (*this->nonLocalDistributionsH)(D3Q27System::ET_S, x1, x2p, x3); - LBMReal mfbba = (*this->nonLocalDistributionsH)(D3Q27System::ET_B, x1, x2, x3p); - LBMReal mfaab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); - LBMReal mfcab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); - LBMReal mfaba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); - LBMReal mfcba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); - LBMReal mfbaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); - LBMReal mfbca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); - LBMReal mfaaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); - LBMReal mfcaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); - LBMReal mfaca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); - LBMReal mfcca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); + real mfabb = (*this->nonLocalDistributionsH)(D3Q27System::ET_W, x1p, x2, x3); + real mfbab = (*this->nonLocalDistributionsH)(D3Q27System::ET_S, x1, x2p, x3); + real mfbba = (*this->nonLocalDistributionsH)(D3Q27System::ET_B, x1, x2, x3p); + real mfaab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SW, x1p, x2p, x3); + real mfcab = (*this->nonLocalDistributionsH)(D3Q27System::ET_SE, x1, x2p, x3); + real mfaba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BW, x1p, x2, x3p); + real mfcba = (*this->nonLocalDistributionsH)(D3Q27System::ET_BE, x1, x2, x3p); + real mfbaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BS, x1, x2p, x3p); + real mfbca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BN, x1, x2, x3p); + real mfaaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSW, x1p, x2p, x3p); + real mfcaa = (*this->nonLocalDistributionsH)(D3Q27System::ET_BSE, x1, x2p, x3p); + real mfaca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNW, x1p, x2, x3p); + real mfcca = (*this->nonLocalDistributionsH)(D3Q27System::ET_BNE, x1, x2, x3p); - LBMReal mfbbb = (*this->zeroDistributionsH)(x1, x2, x3); + real mfbbb = (*this->zeroDistributionsH)(x1, x2, x3); - LBMReal lambda = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real lambda = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; @@ -214,25 +214,25 @@ void ThixotropyLBMKernel::calculate(int step) mfbbb = (*this->zeroDistributionsF)(x1, x2, x3); - LBMReal m0, m1, m2; + real m0, m1, m2; - LBMReal rho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real rho = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; - LBMReal vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + (mfcbb - mfabb)); - LBMReal vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + (mfbcb - mfbab)); - LBMReal vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + (mfbbc - mfbba)); - LBMReal eta0 = (1/collFactor-c1o2)*c1o3; - LBMReal eta = (1 + lambda)* eta0; + real eta0 = (1/collFactor-c1o2)*c1o3; + real eta = (1 + lambda)* eta0; collFactorF = one/(3*eta/(rho+one)+c1o2); //collFactorF = collFactor; @@ -253,7 +253,7 @@ void ThixotropyLBMKernel::calculate(int step) vvz += forcingX3*deltaT*0.5; // Z } /////////////////////////////////////////////////////////////////////////////////////////// - LBMReal oMdrho; + real oMdrho; oMdrho = mfccc + mfaaa; m0 = mfaca + mfcac; @@ -281,15 +281,15 @@ void ThixotropyLBMKernel::calculate(int step) m0 += mfbbb; //hat gefehlt oMdrho = 1. - (oMdrho + m0); - LBMReal vx2; - LBMReal vy2; - LBMReal vz2; + real vx2; + real vy2; + real vz2; vx2 = vvx*vvx; vy2 = vvy*vvy; vz2 = vvz*vvz; //////////////////////////////////////////////////////////////////////////////////// - LBMReal wadjust; - LBMReal qudricLimit = 0.01; + real wadjust; + real qudricLimit = 0.01; //////////////////////////////////////////////////////////////////////////////////// //Hin //////////////////////////////////////////////////////////////////////////////////// @@ -520,33 +520,33 @@ void ThixotropyLBMKernel::calculate(int step) //////////////////////////////////////////////////////////////////////////////////// // Cumulants //////////////////////////////////////////////////////////////////////////////////// - LBMReal OxxPyyPzz = 1.; //omega2 or bulk viscosity - LBMReal OxyyPxzz = 1.;//-s9;//2+s9;// - //LBMReal OxyyMxzz = 1.;//2+s9;// - LBMReal O4 = 1.; - LBMReal O5 = 1.; - LBMReal O6 = 1.; + 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.; //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 - LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + 2. * mfbba * mfbab); - LBMReal CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + 2. * mfbba * mfabb); - LBMReal CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + 2. * mfbab * mfabb); + 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); - LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho - 1)*oMdrho); - LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho - 1)*oMdrho); - LBMReal CUMacc = mfacc - ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho - 1)*oMdrho); + 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); //Cum 5. - LBMReal CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + 4. * mfabb * mfbbb + 2. * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - LBMReal CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + 4. * mfbab * mfbbb + 2. * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - LBMReal 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 + 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; //Cum 6. - LBMReal CUMccc = mfccc + ((-4. * mfbbb * mfbbb + real CUMccc = mfccc + ((-4. * mfbbb * mfbbb - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - 4. * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - 2. * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) @@ -560,17 +560,17 @@ void ThixotropyLBMKernel::calculate(int step) //2. // linear combinations - LBMReal mxxPyyPzz = mfcaa + mfaca + mfaac; - LBMReal mxxMyy = mfcaa - mfaca; - LBMReal mxxMzz = mfcaa - mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; - LBMReal dxux = -c1o2 * collFactorF *(mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz*(mfaaa - mxxPyyPzz); - LBMReal dyuy = dxux + collFactorF * c3o2 * mxxMyy; - LBMReal dzuz = dxux + collFactorF * c3o2 * mxxMzz; + real dxux = -c1o2 * collFactorF *(mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz*(mfaaa - mxxPyyPzz); + real dyuy = dxux + collFactorF * c3o2 * mxxMyy; + real dzuz = dxux + collFactorF * c3o2 * mxxMzz; - LBMReal Dxy =-three*collFactorF*mfbba; - LBMReal Dxz =-three*collFactorF*mfbab; - LBMReal Dyz =-three*collFactorF*mfabb; + real Dxy =-three*collFactorF*mfbba; + real Dxz =-three*collFactorF*mfbab; + real Dyz =-three*collFactorF*mfabb; //relax mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz) - 3. * (1. - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); @@ -588,14 +588,14 @@ void ThixotropyLBMKernel::calculate(int step) //3. // linear combinations - LBMReal mxxyPyzz = mfcba + mfabc; - LBMReal mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - LBMReal mxxzPyyz = mfcab + mfacb; - LBMReal mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - LBMReal mxyyPxzz = mfbca + mfbac; - LBMReal mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; //relax wadjust = OxyyMxzz + (1. - OxyyMxzz)*fabs(mfbbb) / (fabs(mfbbb) + qudricLimit); @@ -890,11 +890,11 @@ void ThixotropyLBMKernel::calculate(int step) //proof correctness ////////////////////////////////////////////////////////////////////////// #ifdef PROOF_CORRECTNESS - LBMReal rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + real rho_post = (mfaaa + mfaac + mfaca + mfcaa + mfacc + mfcac + mfccc + mfcca) + (mfaab + mfacb + mfcab + mfccb) + (mfaba + mfabc + mfcba + mfcbc) + (mfbaa + mfbac + mfbca + mfbcc) + (mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc) + mfbbb; //LBMReal dif = fabs(rho - rho_post); - LBMReal dif = rho - rho_post; + real dif = rho - rho_post; #ifdef SINGLEPRECISION if (dif > 10.0E-7 || dif < -10.0E-7) #else @@ -956,7 +956,7 @@ void ThixotropyLBMKernel::calculate(int step) - LBMReal ux, uy, uz; + real ux, uy, uz; ux = vvx; uy = vvy; @@ -1002,7 +1002,7 @@ void ThixotropyLBMKernel::calculate(int step) mfbbb = (*this->zeroDistributionsH)(x1, x2, x3); //////////////////////////////////////////////////////////////////////////////////// - LBMReal drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + + real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + ((mfabb + mfcbb) + (mfbab + mfbcb)) + (mfbba + mfbbc)) + mfbbb; @@ -1012,59 +1012,59 @@ void ThixotropyLBMKernel::calculate(int step) //LBMReal theta = 60 * 1.28172e+06; //LBMReal alpha = 0.005;// *10.0; - LBMReal gammaDot = sqrt(dxux * dxux + dyuy * dyuy + dzuz * dzuz + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz) / (rho + one); + real gammaDot = sqrt(dxux * dxux + dyuy * dyuy + dzuz * dzuz + Dxy * Dxy + Dxz * Dxz + Dyz * Dyz) / (rho + one); - LBMReal dlambda = one / theta - alpha * lambda * gammaDot; + real dlambda = one / theta - alpha * lambda * gammaDot; //LBMReal dlambda = one / (T*pow(lambda,m)) - alpha * lambda * gammaDot; ////////////////////////////////////////////////////////////////////////// //collision Factorized Central moment Kernel Geier 2015 ////////////////////////////////////////////////////////////////////////// - LBMReal Mom000 = mfaaa + mfaab + mfaac + mfaba + mfabb + mfabc + mfaca + + real Mom000 = mfaaa + mfaab + mfaac + mfaba + mfabb + mfabc + mfaca + mfacb + mfacc + mfbaa + mfbab + mfbac + mfbba + mfbbb + mfbbc + mfbca + mfbcb + mfbcc + mfcaa + mfcab + mfcac + mfcba + mfcbb + mfcbc + mfcca + mfccb + mfccc; Mom000 += dlambda*c1o2; //1 //(100)// - LBMReal Mom100 = mfaaa*(-1 - ux) + mfaab*(-1 - ux) + mfaac*(-1 - ux) + mfaba*(-1 - ux) + mfabb*(-1 - ux) + mfabc*(-1 - ux) + mfaca*(-1 - ux) + + real Mom100 = mfaaa*(-1 - ux) + mfaab*(-1 - ux) + mfaac*(-1 - ux) + mfaba*(-1 - ux) + mfabb*(-1 - ux) + mfabc*(-1 - ux) + mfaca*(-1 - ux) + mfacb*(-1 - ux) + mfacc*(-1 - ux) + mfcaa*(1 - ux) + mfcab*(1 - ux) + mfcac*(1 - ux) + mfcba*(1 - ux) + mfcbb*(1 - ux) + mfcbc*(1 - ux) + mfcca*(1 - ux) + mfccb*(1 - ux) + mfccc*(1 - ux) - mfbaa*ux - mfbab*ux - mfbac*ux - mfbba*ux - mfbbb*ux - mfbbc*ux - mfbca*ux - mfbcb*ux - mfbcc*ux; - LBMReal Mom010 = mfaaa*(-1 - uy) + mfaab*(-1 - uy) + mfaac*(-1 - uy) + mfbaa*(-1 - uy) + mfbab*(-1 - uy) + mfbac*(-1 - uy) + mfcaa*(-1 - uy) + + real Mom010 = mfaaa*(-1 - uy) + mfaab*(-1 - uy) + mfaac*(-1 - uy) + mfbaa*(-1 - uy) + mfbab*(-1 - uy) + mfbac*(-1 - uy) + mfcaa*(-1 - uy) + mfcab*(-1 - uy) + mfcac*(-1 - uy) + mfaca*(1 - uy) + mfacb*(1 - uy) + mfacc*(1 - uy) + mfbca*(1 - uy) + mfbcb*(1 - uy) + mfbcc*(1 - uy) + mfcca*(1 - uy) + mfccb*(1 - uy) + mfccc*(1 - uy) - mfaba*uy - mfabb*uy - mfabc*uy - mfbba*uy - mfbbb*uy - mfbbc*uy - mfcba*uy - mfcbb*uy - mfcbc*uy; - LBMReal Mom001 = mfaaa*(-1 - uz) + mfaba*(-1 - uz) + mfaca*(-1 - uz) + mfbaa*(-1 - uz) + mfbba*(-1 - uz) + mfbca*(-1 - uz) + mfcaa*(-1 - uz) + + real Mom001 = mfaaa*(-1 - uz) + mfaba*(-1 - uz) + mfaca*(-1 - uz) + mfbaa*(-1 - uz) + mfbba*(-1 - uz) + mfbca*(-1 - uz) + mfcaa*(-1 - uz) + mfcba*(-1 - uz) + mfcca*(-1 - uz) + mfaac*(1 - uz) + mfabc*(1 - uz) + mfacc*(1 - uz) + mfbac*(1 - uz) + mfbbc*(1 - uz) + mfbcc*(1 - uz) + mfcac*(1 - uz) + mfcbc*(1 - uz) + mfccc*(1 - uz) - mfaab*uz - mfabb*uz - mfacb*uz - mfbab*uz - mfbbb*uz - mfbcb*uz - mfcab*uz - mfcbb*uz - mfccb*uz; //// //(110)// - LBMReal Mom110 = mfaaa*(-1 - ux)*(-1 - uy) + mfaab*(-1 - ux)*(-1 - uy) + mfaac*(-1 - ux)*(-1 - uy) + mfcaa*(1 - ux)*(-1 - uy) + + real Mom110 = mfaaa*(-1 - ux)*(-1 - uy) + mfaab*(-1 - ux)*(-1 - uy) + mfaac*(-1 - ux)*(-1 - uy) + mfcaa*(1 - ux)*(-1 - uy) + mfcab*(1 - ux)*(-1 - uy) + mfcac*(1 - ux)*(-1 - uy) - mfbaa*ux*(-1 - uy) - mfbab*ux*(-1 - uy) - mfbac*ux*(-1 - uy) + mfaca*(-1 - ux)*(1 - uy) + mfacb*(-1 - ux)*(1 - uy) + mfacc*(-1 - ux)*(1 - uy) + mfcca*(1 - ux)*(1 - uy) + mfccb*(1 - ux)*(1 - uy) + mfccc*(1 - ux)*(1 - uy) - mfbca*ux*(1 - uy) - mfbcb*ux*(1 - uy) - mfbcc*ux*(1 - uy) - mfaba*(-1 - ux)*uy - mfabb*(-1 - ux)*uy - mfabc*(-1 - ux)*uy - mfcba*(1 - ux)*uy - mfcbb*(1 - ux)*uy - mfcbc*(1 - ux)*uy + mfbba*ux*uy + mfbbb*ux*uy + mfbbc*ux*uy; - LBMReal Mom101 = mfaaa*(-1 - ux)*(-1 - uz) + mfaba*(-1 - ux)*(-1 - uz) + mfaca*(-1 - ux)*(-1 - uz) + mfcaa*(1 - ux)*(-1 - uz) + + real Mom101 = mfaaa*(-1 - ux)*(-1 - uz) + mfaba*(-1 - ux)*(-1 - uz) + mfaca*(-1 - ux)*(-1 - uz) + mfcaa*(1 - ux)*(-1 - uz) + mfcba*(1 - ux)*(-1 - uz) + mfcca*(1 - ux)*(-1 - uz) - mfbaa*ux*(-1 - uz) - mfbba*ux*(-1 - uz) - mfbca*ux*(-1 - uz) + mfaac*(-1 - ux)*(1 - uz) + mfabc*(-1 - ux)*(1 - uz) + mfacc*(-1 - ux)*(1 - uz) + mfcac*(1 - ux)*(1 - uz) + mfcbc*(1 - ux)*(1 - uz) + mfccc*(1 - ux)*(1 - uz) - mfbac*ux*(1 - uz) - mfbbc*ux*(1 - uz) - mfbcc*ux*(1 - uz) - mfaab*(-1 - ux)*uz - mfabb*(-1 - ux)*uz - mfacb*(-1 - ux)*uz - mfcab*(1 - ux)*uz - mfcbb*(1 - ux)*uz - mfccb*(1 - ux)*uz + mfbab*ux*uz + mfbbb*ux*uz + mfbcb*ux*uz; - LBMReal Mom011 = mfaaa*(-1 - uy)*(-1 - uz) + mfbaa*(-1 - uy)*(-1 - uz) + mfcaa*(-1 - uy)*(-1 - uz) + mfaca*(1 - uy)*(-1 - uz) + + real Mom011 = mfaaa*(-1 - uy)*(-1 - uz) + mfbaa*(-1 - uy)*(-1 - uz) + mfcaa*(-1 - uy)*(-1 - uz) + mfaca*(1 - uy)*(-1 - uz) + mfbca*(1 - uy)*(-1 - uz) + mfcca*(1 - uy)*(-1 - uz) - mfaba*uy*(-1 - uz) - mfbba*uy*(-1 - uz) - mfcba*uy*(-1 - uz) + mfaac*(-1 - uy)*(1 - uz) + mfbac*(-1 - uy)*(1 - uz) + mfcac*(-1 - uy)*(1 - uz) + mfacc*(1 - uy)*(1 - uz) + mfbcc*(1 - uy)*(1 - uz) + mfccc*(1 - uy)*(1 - uz) - mfabc*uy*(1 - uz) - mfbbc*uy*(1 - uz) - mfcbc*uy*(1 - uz) - mfaab*(-1 - uy)*uz - mfbab*(-1 - uy)*uz - mfcab*(-1 - uy)*uz - mfacb*(1 - uy)*uz - mfbcb*(1 - uy)*uz - mfccb*(1 - uy)*uz + mfabb*uy*uz + mfbbb*uy*uz + mfcbb*uy*uz; //// - LBMReal Mom111 = mfaaa*(-1 - ux)*(-1 - uy)*(-1 - uz) + mfcaa*(1 - ux)*(-1 - uy)*(-1 - uz) - mfbaa*ux*(-1 - uy)*(-1 - uz) + + real Mom111 = mfaaa*(-1 - ux)*(-1 - uy)*(-1 - uz) + mfcaa*(1 - ux)*(-1 - uy)*(-1 - uz) - mfbaa*ux*(-1 - uy)*(-1 - uz) + mfaca*(-1 - ux)*(1 - uy)*(-1 - uz) + mfcca*(1 - ux)*(1 - uy)*(-1 - uz) - mfbca*ux*(1 - uy)*(-1 - uz) - mfaba*(-1 - ux)*uy*(-1 - uz) - mfcba*(1 - ux)*uy*(-1 - uz) + mfbba*ux*uy*(-1 - uz) + mfaac*(-1 - ux)*(-1 - uy)*(1 - uz) + mfcac*(1 - ux)*(-1 - uy)*(1 - uz) - mfbac*ux*(-1 - uy)*(1 - uz) + mfacc*(-1 - ux)*(1 - uy)*(1 - uz) + @@ -1074,14 +1074,14 @@ void ThixotropyLBMKernel::calculate(int step) mfbbb*ux*uy*uz; //(200)// - LBMReal Mom200 = ((mfcaa + mfcab + mfcac + mfcba + mfcbb + mfcbc + mfcca + mfccb + + real Mom200 = ((mfcaa + mfcab + mfcac + mfcba + mfcbb + mfcbc + mfcca + mfccb + mfccc)*pow(-1 + ux, 2) + (mfbaa + mfbab + mfbac + mfbba + mfbbb + mfbbc + mfbca + mfbcb + mfbcc)*pow(ux, 2) + (mfaaa + mfaab + mfaac + mfaba + mfabb + mfabc + mfaca + mfacb + mfacc)*pow(1 + ux, 2)) - Mom000 / 3; - LBMReal Mom020 = ((mfaca + mfacb + mfacc)*pow(-1 + uy, 2) + + real Mom020 = ((mfaca + mfacb + mfacc)*pow(-1 + uy, 2) + (mfbca + mfbcb + mfbcc)*pow(-1 + uy, 2) + (mfcca + mfccb + mfccc)*pow(-1 + uy, 2) + (mfaba + mfabb + mfabc)*pow(uy, 2) + @@ -1091,7 +1091,7 @@ void ThixotropyLBMKernel::calculate(int step) (mfbaa + mfbab + mfbac)*pow(1 + uy, 2) + (mfcaa + mfcab + mfcac)*pow(1 + uy, 2)) - Mom000 / 3; - LBMReal Mom002 = (mfaba + mfabc + mfaca + mfacc + mfbba + mfbbc + mfbca + mfbcc + + real Mom002 = (mfaba + mfabc + mfaca + mfacc + mfbba + mfbbc + mfbca + mfbcc + mfcba + mfcbc + mfcca + mfccc + mfaac*pow(-1 + uz, 2) + mfbac*pow(-1 + uz, 2) + mfcac*pow(-1 + uz, 2) + 2 * mfaba*uz - 2 * mfabc*uz + 2 * mfaca*uz - 2 * mfacc*uz + @@ -1109,7 +1109,7 @@ void ThixotropyLBMKernel::calculate(int step) //// //(210)// - LBMReal Mom210 = (pow(1 + ux, 2)*(-((mfaca + mfacb + mfacc)*(-1 + uy)) - + real Mom210 = (pow(1 + ux, 2)*(-((mfaca + mfacb + mfacc)*(-1 + uy)) - (mfaba + mfabb + mfabc)*uy - (mfaaa + mfaab + mfaac)*(1 + uy)) + pow(ux, 2)*(-((mfbca + mfbcb + mfbcc)*(-1 + uy)) - @@ -1119,7 +1119,7 @@ void ThixotropyLBMKernel::calculate(int step) (mfcba + mfcbb + mfcbc)*uy - (mfcaa + mfcab + mfcac)*(1 + uy))) - Mom010 / 3; - LBMReal Mom201 = (-(pow(1 + ux, 2)*(mfaba - mfabc + mfaca - mfacc + + real Mom201 = (-(pow(1 + ux, 2)*(mfaba - mfabc + mfaca - mfacc + mfaac*(-1 + uz) + mfaab*uz + mfaba*uz + mfabb*uz + mfabc*uz + mfaca*uz + mfacb*uz + mfacc*uz + mfaaa*(1 + uz))) - @@ -1130,7 +1130,7 @@ void ThixotropyLBMKernel::calculate(int step) mfcac*(-1 + uz) + mfcab*uz + mfcba*uz + mfcbb*uz + mfcbc*uz + mfcca*uz + mfccb*uz + mfccc*uz + mfcaa*(1 + uz))) - Mom001 / 3; - LBMReal Mom120 = ((-1 - ux)*((mfaca + mfacb + mfacc)*pow(-1 + uy, 2) + + real Mom120 = ((-1 - ux)*((mfaca + mfacb + mfacc)*pow(-1 + uy, 2) + (mfaba + mfabb + mfabc)*pow(uy, 2) + (mfaaa + mfaab + mfaac)*pow(1 + uy, 2)) - ux*((mfbca + mfbcb + mfbcc)*pow(-1 + uy, 2) + @@ -1141,7 +1141,7 @@ void ThixotropyLBMKernel::calculate(int step) (mfcaa + mfcab + mfcac)*pow(1 + uy, 2))) - Mom100 / 3; - LBMReal Mom102 = (-((1 + ux)*(mfaba + mfabc + mfaca + mfacc + + real Mom102 = (-((1 + ux)*(mfaba + mfabc + mfaca + mfacc + mfaac*pow(-1 + uz, 2) + 2 * mfaba*uz - 2 * mfabc*uz + 2 * mfaca*uz - 2 * mfacc*uz + mfaab*pow(uz, 2) + mfaba*pow(uz, 2) + mfabb*pow(uz, 2) + @@ -1162,7 +1162,7 @@ void ThixotropyLBMKernel::calculate(int step) mfccb*pow(uz, 2) + mfccc*pow(uz, 2) + mfcaa*pow(1 + uz, 2))) - Mom100 / 3; - LBMReal Mom021 = (-(pow(1 + uy, 2)*(mfaac*(-1 + uz) + mfaab*uz + + real Mom021 = (-(pow(1 + uy, 2)*(mfaac*(-1 + uz) + mfaab*uz + mfaaa*(1 + uz))) - pow(uy, 2)*(mfabc*(-1 + uz) + mfabb*uz + mfaba*(1 + uz)) - pow(-1 + uy, 2)*(mfacc*(-1 + uz) + mfacb*uz + @@ -1175,7 +1175,7 @@ void ThixotropyLBMKernel::calculate(int step) pow(uy, 2)*(mfcbc*(-1 + uz) + mfcbb*uz + mfcba*(1 + uz)) - pow(-1 + uy, 2)*(mfccc*(-1 + uz) + mfccb*uz + mfcca*(1 + uz))) - Mom001 / 3; - LBMReal Mom012 = (-((1 + uy)*(mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + + real Mom012 = (-((1 + uy)*(mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + mfaaa*pow(1 + uz, 2))) - uy*(mfabc*pow(-1 + uz, 2) + mfabb*pow(uz, 2) + mfaba*pow(1 + uz, 2)) - @@ -1197,7 +1197,7 @@ void ThixotropyLBMKernel::calculate(int step) //(220)// - LBMReal Mom220 = (pow(1 + ux, 2)*((mfaca + mfacb + mfacc)*pow(-1 + uy, 2) + + real Mom220 = (pow(1 + ux, 2)*((mfaca + mfacb + mfacc)*pow(-1 + uy, 2) + (mfaba + mfabb + mfabc)*pow(uy, 2) + (mfaaa + mfaab + mfaac)*pow(1 + uy, 2)) + pow(ux, 2)*((mfbca + mfbcb + mfbcc)*pow(-1 + uy, 2) + @@ -1207,7 +1207,7 @@ void ThixotropyLBMKernel::calculate(int step) (mfcba + mfcbb + mfcbc)*pow(uy, 2) + (mfcaa + mfcab + mfcac)*pow(1 + uy, 2))) - Mom000 / 9; - LBMReal Mom202 = (pow(1 + ux, 2)*(mfaba + mfabc + mfaca + mfacc + + real Mom202 = (pow(1 + ux, 2)*(mfaba + mfabc + mfaca + mfacc + mfaac*pow(-1 + uz, 2) + 2 * mfaba*uz - 2 * mfabc*uz + 2 * mfaca*uz - 2 * mfacc*uz + mfaab*pow(uz, 2) + mfaba*pow(uz, 2) + mfabb*pow(uz, 2) + @@ -1229,7 +1229,7 @@ void ThixotropyLBMKernel::calculate(int step) mfccb*pow(uz, 2) + mfccc*pow(uz, 2) + mfcaa*pow(1 + uz, 2))) - Mom000 / 9; - LBMReal Mom022 = (pow(1 + uy, 2)*(mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + + real Mom022 = (pow(1 + uy, 2)*(mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + mfaaa*pow(1 + uz, 2)) + pow(uy, 2)*(mfabc*pow(-1 + uz, 2) + mfabb*pow(uz, 2) + mfaba*pow(1 + uz, 2)) + @@ -1250,7 +1250,7 @@ void ThixotropyLBMKernel::calculate(int step) //// //(221)// - LBMReal Mom221 = (pow(1 + ux, 2)*(-(pow(1 + uy, 2)* + real Mom221 = (pow(1 + ux, 2)*(-(pow(1 + uy, 2)* (mfaac*(-1 + uz) + mfaab*uz + mfaaa*(1 + uz))) - pow(uy, 2)*(mfabc*(-1 + uz) + mfabb*uz + mfaba*(1 + uz)) - @@ -1269,7 +1269,7 @@ void ThixotropyLBMKernel::calculate(int step) pow(-1 + uy, 2)*(mfccc*(-1 + uz) + mfccb*uz + mfcca*(1 + uz)))) - Mom001 / 9; - LBMReal Mom212 = (pow(1 + ux, 2)*(-((1 + uy)* + real Mom212 = (pow(1 + ux, 2)*(-((1 + uy)* (mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + mfaaa*pow(1 + uz, 2))) - uy*(mfabc*pow(-1 + uz, 2) + mfabb*pow(uz, 2) + @@ -1291,7 +1291,7 @@ void ThixotropyLBMKernel::calculate(int step) (-1 + uy)*(mfccc*pow(-1 + uz, 2) + mfccb*pow(uz, 2) + mfcca*pow(1 + uz, 2)))) - Mom010 / 9; - LBMReal Mom122 = ((-1 - ux)*(pow(1 + uy, 2)* + real Mom122 = ((-1 - ux)*(pow(1 + uy, 2)* (mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + mfaaa*pow(1 + uz, 2)) + pow(uy, 2)*(mfabc*pow(-1 + uz, 2) + mfabb*pow(uz, 2) + @@ -1314,7 +1314,7 @@ void ThixotropyLBMKernel::calculate(int step) //// //(211)// - LBMReal Mom211 = (pow(1 + ux, 2)*((1 + uy)*(mfaac*(-1 + uz) + mfaab*uz + + real Mom211 = (pow(1 + ux, 2)*((1 + uy)*(mfaac*(-1 + uz) + mfaab*uz + mfaaa*(1 + uz)) + uy*(mfabc*(-1 + uz) + mfabb*uz + mfaba*(1 + uz)) + (-1 + uy)*(mfacc*(-1 + uz) + mfacb*uz + mfaca*(1 + uz))) + @@ -1327,7 +1327,7 @@ void ThixotropyLBMKernel::calculate(int step) uy*(mfcbc*(-1 + uz) + mfcbb*uz + mfcba*(1 + uz)) + (-1 + uy)*(mfccc*(-1 + uz) + mfccb*uz + mfcca*(1 + uz)))) - Mom011 / 3; - LBMReal Mom121 = ((-1 - ux)*(-(pow(1 + uy, 2)* + real Mom121 = ((-1 - ux)*(-(pow(1 + uy, 2)* (mfaac*(-1 + uz) + mfaab*uz + mfaaa*(1 + uz))) - pow(uy, 2)*(mfabc*(-1 + uz) + mfabb*uz + mfaba*(1 + uz)) - @@ -1346,7 +1346,7 @@ void ThixotropyLBMKernel::calculate(int step) pow(-1 + uy, 2)*(mfccc*(-1 + uz) + mfccb*uz + mfcca*(1 + uz)))) - Mom101 / 3; - LBMReal Mom112 = ((-1 - ux)*(-((1 + uy)*(mfaac*pow(-1 + uz, 2) + + real Mom112 = ((-1 - ux)*(-((1 + uy)*(mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + mfaaa*pow(1 + uz, 2))) - uy*(mfabc*pow(-1 + uz, 2) + mfabb*pow(uz, 2) + mfaba*pow(1 + uz, 2)) - @@ -1367,7 +1367,7 @@ void ThixotropyLBMKernel::calculate(int step) //// //(222)// - LBMReal Mom222 = (pow(1 + ux, 2)*(pow(1 + uy, 2)* + real Mom222 = (pow(1 + ux, 2)*(pow(1 + uy, 2)* (mfaac*pow(-1 + uz, 2) + mfaab*pow(uz, 2) + mfaaa*pow(1 + uz, 2)) + pow(uy, 2)*(mfabc*pow(-1 + uz, 2) + mfabb*pow(uz, 2) + @@ -1394,7 +1394,7 @@ void ThixotropyLBMKernel::calculate(int step) - LBMReal Meq000 = drho+dlambda*c1o2; + real Meq000 = drho+dlambda*c1o2; // relaxation Central Moment MRT diff --git a/src/cpu/VirtualFluidsCore/LBM/ThixotropyLBMKernel.h b/src/cpu/VirtualFluidsCore/LBM/ThixotropyLBMKernel.h index c74af1b1e..8f2f242d2 100644 --- a/src/cpu/VirtualFluidsCore/LBM/ThixotropyLBMKernel.h +++ b/src/cpu/VirtualFluidsCore/LBM/ThixotropyLBMKernel.h @@ -39,33 +39,33 @@ public: protected: virtual void initDataSet(); - LBMReal f[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; UbTimer timer; - LBMReal OxyyMxzz; + real OxyyMxzz; Parameter parameter; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsF; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsF; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsF; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH; - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH; - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsH; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsH; + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsH; mu::value_type muX1, muX2, muX3; mu::value_type muDeltaT; mu::value_type muNu; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; - LBMReal collFactorF; - LBMReal collFactorH; + real collFactorF; + real collFactorH; - LBMReal theta; - LBMReal alpha; + real theta; + real alpha; }; #endif diff --git a/src/cpu/VirtualFluidsCore/Visitors/CreateTransmittersHelper.cpp b/src/cpu/VirtualFluidsCore/Visitors/CreateTransmittersHelper.cpp index 7602438a2..b931cbbbd 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/CreateTransmittersHelper.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/CreateTransmittersHelper.cpp @@ -87,22 +87,22 @@ void CreateTransmittersHelper::createTransmitters(SPtr<Block3D> sblock, SPtr<Blo string sendPoolKey = generatePoolKey(srcRank, srcLevel, tgtRank, tgtLevel); string receivePoolKey = generatePoolKey(tgtRank, tgtLevel, srcRank, srcLevel); - TbCbVectorMpiPool<LBMReal>::MpiPoolPtr sendPool = TbCbVectorMpiPool<LBMReal>::getTbCbVectorMpiPool(sendPoolKey); - TbCbVectorMpiPool<LBMReal>::MpiPoolPtr recvPool = - TbCbVectorMpiPool<LBMReal>::getTbCbVectorMpiPool(receivePoolKey); + TbCbVectorMpiPool<real>::MpiPoolPtr sendPool = TbCbVectorMpiPool<real>::getTbCbVectorMpiPool(sendPoolKey); + TbCbVectorMpiPool<real>::MpiPoolPtr recvPool = + TbCbVectorMpiPool<real>::getTbCbVectorMpiPool(receivePoolKey); MPI_Comm mpi_comm = *((MPI_Comm *)comm->getNativeCommunicator()); if (!sendPool) - sendPool = TbCbVectorMpiPool<LBMReal>::createTbCbVectorMpiPool( + sendPool = TbCbVectorMpiPool<real>::createTbCbVectorMpiPool( sendPoolKey, tgtRank, generateMPITag(srcLevel, tgtLevel), mpi_comm); if (!recvPool) - recvPool = TbCbVectorMpiPool<LBMReal>::createTbCbVectorMpiPool( + recvPool = TbCbVectorMpiPool<real>::createTbCbVectorMpiPool( receivePoolKey, tgtRank, generateMPITag(tgtLevel, srcLevel), mpi_comm); - TbCbVectorMpiPool<LBMReal>::CbVectorKey keyOfSendCbVectorKey = + TbCbVectorMpiPool<real>::CbVectorKey keyOfSendCbVectorKey = generateVectorKey(sblock->getX1(), sblock->getX2(), sblock->getX3() /*tgtID*/, dir, ib); - TbCbVectorMpiPool<LBMReal>::CbVectorKey keyOfRecvCbVectorKey = + TbCbVectorMpiPool<real>::CbVectorKey keyOfRecvCbVectorKey = generateVectorKey(tblock->getX1(), tblock->getX2(), tblock->getX3() /*srcID*/, invDir, ib); //////////////////////////////////////////////////////// @@ -118,8 +118,8 @@ void CreateTransmittersHelper::createTransmitters(SPtr<Block3D> sblock, SPtr<Blo //////////////////////////////////////////////////////// // create sender-/receiver - sender = TransmitterPtr(new TbCbVectorSenderMpiPool<LBMReal>(keyOfSendCbVectorKey, sendPool.get())); - receiver = TransmitterPtr(new TbCbVectorReceiverMpiPool<LBMReal>(keyOfRecvCbVectorKey, recvPool.get())); + sender = TransmitterPtr(new TbCbVectorSenderMpiPool<real>(keyOfSendCbVectorKey, sendPool.get())); + receiver = TransmitterPtr(new TbCbVectorReceiverMpiPool<real>(keyOfRecvCbVectorKey, recvPool.get())); } #ifdef VF_FETOL if (tType == BOND) { @@ -129,24 +129,24 @@ void CreateTransmittersHelper::createTransmitters(SPtr<Block3D> sblock, SPtr<Blo int sendBondPoolKey = generatePoolKey(srcBondRank, srcLevel, tgtBondRank, tgtLevel); int receiveBondPoolKey = generatePoolKey(tgtBondRank, tgtLevel, srcBondRank, srcLevel); - TbCbVectorBondPool<LBMReal>::BondPoolPtr sendPool = - TbCbVectorBondPool<LBMReal>::getTbCbVectorBondPool(sendBondPoolKey); - TbCbVectorBondPool<LBMReal>::BondPoolPtr recvPool = - TbCbVectorBondPool<LBMReal>::getTbCbVectorBondPool(receiveBondPoolKey); + TbCbVectorBondPool<real>::BondPoolPtr sendPool = + TbCbVectorBondPool<real>::getTbCbVectorBondPool(sendBondPoolKey); + TbCbVectorBondPool<real>::BondPoolPtr recvPool = + TbCbVectorBondPool<real>::getTbCbVectorBondPool(receiveBondPoolKey); if (!sendPool) - sendPool = TbCbVectorBondPool<LBMReal>::createTbCbVectorBondPool(sendBondPoolKey, tgtBondRank, + sendPool = TbCbVectorBondPool<real>::createTbCbVectorBondPool(sendBondPoolKey, tgtBondRank, generateMPITag(srcLevel, tgtLevel)); if (!recvPool) - recvPool = TbCbVectorBondPool<LBMReal>::createTbCbVectorBondPool(receiveBondPoolKey, tgtBondRank, + recvPool = TbCbVectorBondPool<real>::createTbCbVectorBondPool(receiveBondPoolKey, tgtBondRank, generateMPITag(tgtLevel, srcLevel)); - TbCbVectorBondPool<LBMReal>::CbVectorKey keyOfSendCbVectorKey = generateVectorKey(tgtID, dir, ib); - TbCbVectorBondPool<LBMReal>::CbVectorKey keyOfRecvCbVectorKey = generateVectorKey(srcID, invDir, ib); + TbCbVectorBondPool<real>::CbVectorKey keyOfSendCbVectorKey = generateVectorKey(tgtID, dir, ib); + TbCbVectorBondPool<real>::CbVectorKey keyOfRecvCbVectorKey = generateVectorKey(srcID, invDir, ib); // create sender-/receiver - sender = TransmitterPtr(new TbCbVectorSenderBondPool<LBMReal>(keyOfSendCbVectorKey, sendPool.get())); - receiver = TransmitterPtr(new TbCbVectorReceiverBondPool<LBMReal>(keyOfRecvCbVectorKey, recvPool.get())); + sender = TransmitterPtr(new TbCbVectorSenderBondPool<real>(keyOfSendCbVectorKey, sendPool.get())); + receiver = TransmitterPtr(new TbCbVectorReceiverBondPool<real>(keyOfRecvCbVectorKey, recvPool.get())); } #endif } diff --git a/src/cpu/VirtualFluidsCore/Visitors/CreateTransmittersHelper.h b/src/cpu/VirtualFluidsCore/Visitors/CreateTransmittersHelper.h index d51f6352a..af60de0a2 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/CreateTransmittersHelper.h +++ b/src/cpu/VirtualFluidsCore/Visitors/CreateTransmittersHelper.h @@ -55,7 +55,7 @@ public: enum TransmitterType { MPI, BOND, MPI2BOND }; public: - using DataType = CbVector<LBMReal>; + using DataType = CbVector<real>; using TransmitterPtr = SPtr<TbTransmitter<DataType>>; public: diff --git a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsBlockVisitor.cpp index 61bd67e15..1c4860070 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsBlockVisitor.cpp @@ -97,25 +97,25 @@ void InitDistributionsBlockVisitor::setRho(const std::string &muParserString) this->checkFunction(muRho); } ////////////////////////////////////////////////////////////////////////// -void InitDistributionsBlockVisitor::setVx1(LBMReal vx1) +void InitDistributionsBlockVisitor::setVx1(real vx1) { this->muVx1.SetExpr(UbSystem::toString(vx1, D3Q27RealLim::digits10)); this->checkFunction(muVx1); } ////////////////////////////////////////////////////////////////////////// -void InitDistributionsBlockVisitor::setVx2(LBMReal vx2) +void InitDistributionsBlockVisitor::setVx2(real vx2) { this->muVx2.SetExpr(UbSystem::toString(vx2, D3Q27RealLim::digits10)); this->checkFunction(muVx2); } ////////////////////////////////////////////////////////////////////////// -void InitDistributionsBlockVisitor::setVx3(LBMReal vx3) +void InitDistributionsBlockVisitor::setVx3(real vx3) { this->muVx3.SetExpr(UbSystem::toString(vx3, D3Q27RealLim::digits10)); this->checkFunction(muVx3); } ////////////////////////////////////////////////////////////////////////// -void InitDistributionsBlockVisitor::setRho(LBMReal rho) +void InitDistributionsBlockVisitor::setRho(real rho) { this->muRho.SetExpr(UbSystem::toString(rho, D3Q27RealLim::digits10)); this->checkFunction(muRho); @@ -128,7 +128,7 @@ void InitDistributionsBlockVisitor::visit(const SPtr<Grid3D> grid, SPtr<Block3D> if(!block) UB_THROW( UbException(UB_EXARGS,"block is not exist") ); - double dx = grid->getDeltaX(block); + real dx = grid->getDeltaX(block); //define vars for functions mu::value_type x1,x2,x3; @@ -137,11 +137,11 @@ void InitDistributionsBlockVisitor::visit(const SPtr<Grid3D> grid, SPtr<Block3D> this->muVx3.DefineVar("x1",&x1); this->muVx3.DefineVar("x2",&x2); this->muVx3.DefineVar("x3",&x3); this->muRho.DefineVar("x1",&x1); this->muRho.DefineVar("x2",&x2); this->muRho.DefineVar("x3",&x3); - using CalcFeqsFct = void (*)(LBMReal *const & /*feq[27]*/, const LBMReal & /*(d)rho*/, const LBMReal & /*vx1*/, - const LBMReal & /*vx2*/, const LBMReal & /*vx3*/); + using CalcFeqsFct = void (*)(real *const & /*feq[27]*/, const real & /*(d)rho*/, const real & /*vx1*/, + const real & /*vx2*/, const real & /*vx3*/); CalcFeqsFct calcFeqsFct = NULL; - LBMReal vx1, vx2, vx3, rho; + real vx1, vx2, vx3, rho; int gridRank = grid->getRank(); int blockRank = block->getRank(); @@ -160,9 +160,9 @@ void InitDistributionsBlockVisitor::visit(const SPtr<Grid3D> grid, SPtr<Block3D> SPtr<BCArray3D> bcArray = kernel->getBCProcessor()->getBCArray(); SPtr<DistributionArray3D> distributions = kernel->getDataSet()->getFdistributions(); - LBMReal o = kernel->getCollisionFactor(); + real o = kernel->getCollisionFactor(); - LBMReal f[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; for(std::size_t ix3=0; ix3<bcArray->getNX3(); ix3++) for(std::size_t ix2=0; ix2<bcArray->getNX2(); ix2++) @@ -179,73 +179,73 @@ void InitDistributionsBlockVisitor::visit(const SPtr<Grid3D> grid, SPtr<Block3D> rho = muRho.Eval(); //x-derivative - double deltaX=dx*0.5; + real deltaX=dx*0.5; x1 = coords[0]+deltaX; - double vx1Plusx1 = muVx1.Eval(); - double vx2Plusx1 = muVx2.Eval(); - double vx3Plusx1 = muVx3.Eval(); + real vx1Plusx1 = muVx1.Eval(); + real vx2Plusx1 = muVx2.Eval(); + real vx3Plusx1 = muVx3.Eval(); x1 = coords[0]-deltaX; - double vx1Minusx1 = muVx1.Eval(); - double vx2Minusx1 = muVx2.Eval(); - double vx3Minusx1 = muVx3.Eval(); + real vx1Minusx1 = muVx1.Eval(); + real vx2Minusx1 = muVx2.Eval(); + real vx3Minusx1 = muVx3.Eval(); //y-derivative x1 = coords[0]; x2 = coords[1]+deltaX; - double vx1Plusx2 = muVx1.Eval(); - double vx2Plusx2 = muVx2.Eval(); - double vx3Plusx2 = muVx3.Eval(); + real vx1Plusx2 = muVx1.Eval(); + real vx2Plusx2 = muVx2.Eval(); + real vx3Plusx2 = muVx3.Eval(); x2 = coords[1]-deltaX; - double vx1Minusx2 = muVx1.Eval(); - double vx2Minusx2 = muVx2.Eval(); - double vx3Minusx2 = muVx3.Eval(); + real vx1Minusx2 = muVx1.Eval(); + real vx2Minusx2 = muVx2.Eval(); + real vx3Minusx2 = muVx3.Eval(); //z-derivative x2 = coords[1]; x3 = coords[2]+deltaX; - double vx1Plusx3 = muVx1.Eval(); - double vx2Plusx3 = muVx2.Eval(); - double vx3Plusx3 = muVx3.Eval(); + real vx1Plusx3 = muVx1.Eval(); + real vx2Plusx3 = muVx2.Eval(); + real vx3Plusx3 = muVx3.Eval(); x3 = coords[2]-deltaX; - double vx1Minusx3 = muVx1.Eval(); - double vx2Minusx3 = muVx2.Eval(); - double vx3Minusx3 = muVx3.Eval(); + real vx1Minusx3 = muVx1.Eval(); + real vx2Minusx3 = muVx2.Eval(); + real vx3Minusx3 = muVx3.Eval(); - double ax=(vx1Plusx1-vx1Minusx1)/(2.0*deltaX)*dx; - double bx=(vx2Plusx1-vx2Minusx1)/(2.0*deltaX)*dx; - double cx=(vx3Plusx1-vx3Minusx1)/(2.0*deltaX)*dx; + real ax=(vx1Plusx1-vx1Minusx1)/(2.0*deltaX)*dx; + real bx=(vx2Plusx1-vx2Minusx1)/(2.0*deltaX)*dx; + real cx=(vx3Plusx1-vx3Minusx1)/(2.0*deltaX)*dx; - double ay=(vx1Plusx2-vx1Minusx2)/(2.0*deltaX)*dx; - double by=(vx2Plusx2-vx2Minusx2)/(2.0*deltaX)*dx; - double cy=(vx3Plusx2-vx3Minusx2)/(2.0*deltaX)*dx; + real ay=(vx1Plusx2-vx1Minusx2)/(2.0*deltaX)*dx; + real by=(vx2Plusx2-vx2Minusx2)/(2.0*deltaX)*dx; + real cy=(vx3Plusx2-vx3Minusx2)/(2.0*deltaX)*dx; - double az=(vx1Plusx3-vx1Minusx3)/(2.0*deltaX)*dx; - double bz=(vx2Plusx3-vx2Minusx3)/(2.0*deltaX)*dx; - double cz=(vx3Plusx3-vx3Minusx3)/(2.0*deltaX)*dx; - double eps_new=1.0; - LBMReal op = 1.; + real az=(vx1Plusx3-vx1Minusx3)/(2.0*deltaX)*dx; + real bz=(vx2Plusx3-vx2Minusx3)/(2.0*deltaX)*dx; + real cz=(vx3Plusx3-vx3Minusx3)/(2.0*deltaX)*dx; + real eps_new=1.0; + real op = 1.; - LBMReal feq[27]; + real feq[27]; calcFeqsFct(feq,rho,vx1,vx2,vx3); - double f_E = eps_new *((5.*ax*o + 5.*by*o + 5.*cz*o - 8.*ax*op + 4.*by*op + 4.*cz*op)/(54.*o*op)); - double f_N = f_E + eps_new *((2.*(ax - by))/(9.*o)); - double f_T = f_E + eps_new *((2.*(ax - cz))/(9.*o)); - double f_NE = eps_new *(-(5.*cz*o + 3.*(ay + bx)*op - 2.*cz*op + ax*(5.*o + op) + by*(5.*o + op))/(54.*o*op)); - double f_SE = f_NE + eps_new *(( ay + bx )/(9.*o)); - double f_TE = eps_new *(-(5.*cz*o + by*(5.*o - 2.*op) + 3.*(az + cx)*op + cz*op + ax*(5.*o + op))/(54.*o*op)); - double f_BE = f_TE + eps_new *(( az + cx )/(9.*o)); - double f_TN = eps_new *(-(5.*ax*o + 5.*by*o + 5.*cz*o - 2.*ax*op + by*op + 3.*bz*op + 3.*cy*op + cz*op)/(54.*o*op)); - double f_BN = f_TN + eps_new *(( bz + cy )/(9.*o)); - double f_ZERO = eps_new *((5.*(ax + by + cz))/(9.*op)); - double f_TNE = eps_new *(-(ay + az + bx + bz + cx + cy)/(72.*o)); - double f_TSW = - eps_new *((ay + bx)/(36.*o)) - f_TNE; - double f_TSE = - eps_new *((az + cx)/(36.*o)) - f_TNE; - double f_TNW = - eps_new *((bz + cy)/(36.*o)) - f_TNE; + real f_E = eps_new *((5.*ax*o + 5.*by*o + 5.*cz*o - 8.*ax*op + 4.*by*op + 4.*cz*op)/(54.*o*op)); + real f_N = f_E + eps_new *((2.*(ax - by))/(9.*o)); + real f_T = f_E + eps_new *((2.*(ax - cz))/(9.*o)); + real f_NE = eps_new *(-(5.*cz*o + 3.*(ay + bx)*op - 2.*cz*op + ax*(5.*o + op) + by*(5.*o + op))/(54.*o*op)); + real f_SE = f_NE + eps_new *(( ay + bx )/(9.*o)); + real f_TE = eps_new *(-(5.*cz*o + by*(5.*o - 2.*op) + 3.*(az + cx)*op + cz*op + ax*(5.*o + op))/(54.*o*op)); + real f_BE = f_TE + eps_new *(( az + cx )/(9.*o)); + real f_TN = eps_new *(-(5.*ax*o + 5.*by*o + 5.*cz*o - 2.*ax*op + by*op + 3.*bz*op + 3.*cy*op + cz*op)/(54.*o*op)); + real f_BN = f_TN + eps_new *(( bz + cy )/(9.*o)); + real f_ZERO = eps_new *((5.*(ax + by + cz))/(9.*op)); + real f_TNE = eps_new *(-(ay + az + bx + bz + cx + cy)/(72.*o)); + real f_TSW = - eps_new *((ay + bx)/(36.*o)) - f_TNE; + real f_TSE = - eps_new *((az + cx)/(36.*o)) - f_TNE; + real f_TNW = - eps_new *((bz + cy)/(36.*o)) - f_TNE; f[DIR_P00] = f_E + feq[DIR_P00]; @@ -298,7 +298,7 @@ void InitDistributionsBlockVisitor::visit(const SPtr<Grid3D> grid, SPtr<Block3D> ////////////////////////////////////////////////////////////////////////// void InitDistributionsBlockVisitor::checkFunction(mu::Parser fct) { - double x1 = 1.0, x2 = 1.0, x3 = 1.0; + real x1 = 1.0, x2 = 1.0, x3 = 1.0; fct.DefineVar("x1", &x1); fct.DefineVar("x2", &x2); fct.DefineVar("x3", &x3); diff --git a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsBlockVisitor.h index c64f0ed93..68ba69f83 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsBlockVisitor.h +++ b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsBlockVisitor.h @@ -63,7 +63,7 @@ class Block3D; class InitDistributionsBlockVisitor : public Block3DVisitor { public: - using D3Q27RealLim = std::numeric_limits<LBMReal>; + using D3Q27RealLim = std::numeric_limits<real>; public: InitDistributionsBlockVisitor(); @@ -81,10 +81,10 @@ public: void setVx3(const std::string &muParserString); void setRho(const std::string &muParserString); ////////////////////////////////////////////////////////////////////////// - void setVx1(LBMReal vx1); - void setVx2(LBMReal vx2); - void setVx3(LBMReal vx3); - void setRho(LBMReal rho); + void setVx1(real vx1); + void setVx2(real vx2); + void setVx3(real vx3); + void setRho(real rho); void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override; diff --git a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsFromFileBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsFromFileBlockVisitor.cpp index 1bcb6057f..2632f2c59 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsFromFileBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsFromFileBlockVisitor.cpp @@ -10,7 +10,7 @@ #include "LBMKernel.h" #include <basics/utilities/UbFileInputASCII.h> -InitDistributionsFromFileBlockVisitor::InitDistributionsFromFileBlockVisitor(/*LBMReal nu, */ LBMReal rho, +InitDistributionsFromFileBlockVisitor::InitDistributionsFromFileBlockVisitor(/*LBMReal nu, */ real rho, std::string filename) : Block3DVisitor(0, D3Q27System::MAXLEVEL), /*nu(nu),*/ rho(rho) { @@ -23,7 +23,7 @@ InitDistributionsFromFileBlockVisitor::InitDistributionsFromFileBlockVisitor(/*L int nodesX2 = in.readInteger(); int nodesX3 = in.readInteger(); - matrix = CbArray4D<LBMReal, IndexerX4X3X2X1>(3, nodesX1, nodesX2, nodesX3, 0); + matrix = CbArray4D<real, IndexerX4X3X2X1>(3, nodesX1, nodesX2, nodesX3, 0); for (int x3 = 0; x3 < nodesX3; x3++) for (int x2 = 0; x2 < nodesX2; x2++) @@ -52,11 +52,11 @@ void InitDistributionsFromFileBlockVisitor::visit(const SPtr<Grid3D> grid, SPtr< // LBMReal o = LBMSystem::calcCollisionFactor(nu, block->getLevel()); // Funktionszeiger - typedef void (*CalcFeqsFct)(LBMReal *const & /*feq[27]*/, const LBMReal & /*(d)rho*/, const LBMReal & /*vx1*/, - const LBMReal & /*vx2*/, const LBMReal & /*vx3*/); + typedef void (*CalcFeqsFct)(real *const & /*feq[27]*/, const real & /*(d)rho*/, const real & /*vx1*/, + const real & /*vx2*/, const real & /*vx3*/); CalcFeqsFct calcFeqsFct = NULL; - LBMReal vx1, vx2, vx3; + real vx1, vx2, vx3; int gridRank = grid->getRank(); int blockRank = block->getRank(); @@ -76,7 +76,7 @@ void InitDistributionsFromFileBlockVisitor::visit(const SPtr<Grid3D> grid, SPtr< SPtr<BCArray3D> bcArray = kernel->getBCProcessor()->getBCArray(); SPtr<EsoTwist3D> distributions = dynamicPointerCast<EsoTwist3D>(kernel->getDataSet()->getFdistributions()); - LBMReal f[D3Q27System::ENDF + 1]; + real f[D3Q27System::ENDF + 1]; // size_t nx1 = distributions->getNX1(); // size_t nx2 = distributions->getNX2(); diff --git a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsFromFileBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsFromFileBlockVisitor.h index 1f40abade..cc7acc395 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsFromFileBlockVisitor.h +++ b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsFromFileBlockVisitor.h @@ -12,14 +12,14 @@ class Block3D; class InitDistributionsFromFileBlockVisitor : public Block3DVisitor { public: - InitDistributionsFromFileBlockVisitor(/*LBMReal nu, */ LBMReal rho, std::string file); + InitDistributionsFromFileBlockVisitor(/*real nu, */ real rho, std::string file); void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override; private: - CbArray4D<LBMReal, IndexerX4X3X2X1> matrix; + CbArray4D<real, IndexerX4X3X2X1> matrix; enum Velocity { Vx1, Vx2, Vx3 }; // LBMReal nu; - LBMReal rho; + real rho; }; #endif // InitDistributionsFromFileBlockVisitor_h__ diff --git a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsWithInterpolationGridVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsWithInterpolationGridVisitor.cpp index 567ce2e7f..6dd6976ca 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsWithInterpolationGridVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsWithInterpolationGridVisitor.cpp @@ -16,7 +16,7 @@ using namespace std; InitDistributionsWithInterpolationGridVisitor::InitDistributionsWithInterpolationGridVisitor( - SPtr<Grid3D> oldGrid, InterpolationProcessorPtr iProcessor, LBMReal nu) + SPtr<Grid3D> oldGrid, InterpolationProcessorPtr iProcessor, real nu) : oldGrid(oldGrid), iProcessor(iProcessor), nu(nu) { } @@ -119,11 +119,11 @@ void InitDistributionsWithInterpolationGridVisitor::copyRemoteBlock(SPtr<Block3D SPtr<EsoTwist3D> oldDistributions = dynamicPointerCast<EsoTwist3D>(oldKernel->getDataSet()->getFdistributions()); - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions = + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getLocalDistributions(); - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions = + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getNonLocalDistributions(); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions = + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getZeroDistributions(); MPI_Send(localDistributions->getStartAdressOfSortedArray(0, 0, 0, 0), @@ -141,11 +141,11 @@ void InitDistributionsWithInterpolationGridVisitor::copyRemoteBlock(SPtr<Block3D SPtr<EsoTwist3D> newDistributions = dynamicPointerCast<EsoTwist3D>(newKernel->getDataSet()->getFdistributions()); - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions = + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(newDistributions)->getLocalDistributions(); - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions = + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(newDistributions)->getNonLocalDistributions(); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions = + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(newDistributions)->getZeroDistributions(); MPI_Recv(localDistributions->getStartAdressOfSortedArray(0, 0, 0, 0), @@ -165,10 +165,10 @@ void InitDistributionsWithInterpolationGridVisitor::interpolateLocalBlockCoarseT { D3Q27ICell icellC; D3Q27ICell icellF; - LBMReal xoff, yoff, zoff; + real xoff, yoff, zoff; - LBMReal omegaC = LBMSystem::calcCollisionFactor(nu, oldBlock->getLevel()); - LBMReal omegaF = LBMSystem::calcCollisionFactor(nu, newBlock->getLevel()); + real omegaC = LBMSystem::calcCollisionFactor(nu, oldBlock->getLevel()); + real omegaF = LBMSystem::calcCollisionFactor(nu, newBlock->getLevel()); iProcessor->setOmegas(omegaC, omegaF); @@ -265,11 +265,11 @@ void InitDistributionsWithInterpolationGridVisitor::interpolateRemoteBlockCoarse SPtr<EsoTwist3D> oldDistributions = dynamicPointerCast<EsoTwist3D>(oldKernel->getDataSet()->getFdistributions()); - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions = + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getLocalDistributions(); - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions = + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getNonLocalDistributions(); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions = + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getZeroDistributions(); MPI_Send(localDistributions->getStartAdressOfSortedArray(0, 0, 0, 0), @@ -285,10 +285,10 @@ void InitDistributionsWithInterpolationGridVisitor::interpolateRemoteBlockCoarse } else if (newBlockRank == newGridRank && newBlock->isActive()) { D3Q27ICell icellC; D3Q27ICell icellF; - LBMReal xoff, yoff, zoff; + real xoff, yoff, zoff; - LBMReal omegaC = LBMSystem::calcCollisionFactor(nu, oldBlock->getLevel()); - LBMReal omegaF = LBMSystem::calcCollisionFactor(nu, newBlock->getLevel()); + real omegaC = LBMSystem::calcCollisionFactor(nu, oldBlock->getLevel()); + real omegaF = LBMSystem::calcCollisionFactor(nu, newBlock->getLevel()); iProcessor->setOmegas(omegaC, omegaF); @@ -313,11 +313,11 @@ void InitDistributionsWithInterpolationGridVisitor::interpolateRemoteBlockCoarse SPtr<EsoTwist3D> oldDistributions(new D3Q27EsoTwist3DSplittedVector(bMaxX1, bMaxX2, bMaxX3, 0)); - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions = + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getLocalDistributions(); - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions = + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getNonLocalDistributions(); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions = + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getZeroDistributions(); MPI_Recv(localDistributions->getStartAdressOfSortedArray(0, 0, 0, 0), @@ -393,12 +393,12 @@ void InitDistributionsWithInterpolationGridVisitor::interpolateRemoteBlockCoarse void InitDistributionsWithInterpolationGridVisitor::interpolateLocalBlockFineToCoarse(SPtr<Block3D> oldBlock, SPtr<Block3D> newBlock) { - LBMReal icellC[27]; + real icellC[27]; D3Q27ICell icellF; - LBMReal xoff, yoff, zoff; + real xoff, yoff, zoff; - LBMReal omegaF = LBMSystem::calcCollisionFactor(nu, oldBlock->getLevel()); - LBMReal omegaC = LBMSystem::calcCollisionFactor(nu, newBlock->getLevel()); + real omegaF = LBMSystem::calcCollisionFactor(nu, oldBlock->getLevel()); + real omegaC = LBMSystem::calcCollisionFactor(nu, newBlock->getLevel()); iProcessor->setOmegas(omegaC, omegaF); @@ -496,11 +496,11 @@ void InitDistributionsWithInterpolationGridVisitor::interpolateRemoteBlockFineTo SPtr<EsoTwist3D> oldDistributions = dynamicPointerCast<EsoTwist3D>(oldKernel->getDataSet()->getFdistributions()); - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions = + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getLocalDistributions(); - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions = + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getNonLocalDistributions(); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions = + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getZeroDistributions(); MPI_Send(localDistributions->getStartAdressOfSortedArray(0, 0, 0, 0), @@ -514,12 +514,12 @@ void InitDistributionsWithInterpolationGridVisitor::interpolateRemoteBlockFineTo std::vector<int> &bcDataVector = bcArrayOldBlock->getBcindexmatrixDataVector(); MPI_Send(&bcDataVector[0], (int)bcDataVector.size(), MPI_INT, newBlockRank, 0, MPI_COMM_WORLD); } else if (newBlockRank == newGridRank && newBlock->isActive()) { - LBMReal icellC[27]; + real icellC[27]; D3Q27ICell icellF; - LBMReal xoff, yoff, zoff; + real xoff, yoff, zoff; - LBMReal omegaF = LBMSystem::calcCollisionFactor(nu, oldBlock->getLevel()); - LBMReal omegaC = LBMSystem::calcCollisionFactor(nu, newBlock->getLevel()); + real omegaF = LBMSystem::calcCollisionFactor(nu, oldBlock->getLevel()); + real omegaC = LBMSystem::calcCollisionFactor(nu, newBlock->getLevel()); iProcessor->setOmegas(omegaC, omegaF); @@ -544,11 +544,11 @@ void InitDistributionsWithInterpolationGridVisitor::interpolateRemoteBlockFineTo SPtr<EsoTwist3D> oldDistributions(new D3Q27EsoTwist3DSplittedVector(bMaxX1, bMaxX2, bMaxX3, 0)); - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr localDistributions = + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getLocalDistributions(); - CbArray4D<LBMReal, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions = + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getNonLocalDistributions(); - CbArray3D<LBMReal, IndexerX3X2X1>::CbArray3DPtr zeroDistributions = + CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributions = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(oldDistributions)->getZeroDistributions(); MPI_Recv(localDistributions->getStartAdressOfSortedArray(0, 0, 0, 0), diff --git a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsWithInterpolationGridVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsWithInterpolationGridVisitor.h index 207656e1f..a143ab6b0 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsWithInterpolationGridVisitor.h +++ b/src/cpu/VirtualFluidsCore/Visitors/InitDistributionsWithInterpolationGridVisitor.h @@ -14,7 +14,7 @@ class InitDistributionsWithInterpolationGridVisitor : public Grid3DVisitor { public: InitDistributionsWithInterpolationGridVisitor(SPtr<Grid3D> oldGrid, SPtr<InterpolationProcessor> iProcessor, - LBMReal nu); + real nu); ~InitDistributionsWithInterpolationGridVisitor() override; void visit(SPtr<Grid3D> grid) override; @@ -28,7 +28,7 @@ private: SPtr<Grid3D> newGrid; SPtr<Grid3D> oldGrid; - LBMReal nu; + real nu; SPtr<InterpolationProcessor> iProcessor; }; diff --git a/src/cpu/VirtualFluidsCore/Visitors/InitThixotropyBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/InitThixotropyBlockVisitor.cpp index 9c8c05bab..6c447fb2f 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/InitThixotropyBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/InitThixotropyBlockVisitor.cpp @@ -209,7 +209,7 @@ void InitThixotropyBlockVisitor::setLambda(const std::string& muParserString) // this->checkFunction(muf3); //} ////////////////////////////////////////////////////////////////////////// -void InitThixotropyBlockVisitor::setLambda(LBMReal lambda) +void InitThixotropyBlockVisitor::setLambda(real lambda) { this->muLambda.SetExpr(UbSystem::toString(lambda, D3Q27RealLim::digits10)); this->checkFunction(muLambda); @@ -233,7 +233,7 @@ void InitThixotropyBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block) this->muLambda.DefineVar("x1",&x1); this->muLambda.DefineVar("x2",&x2); this->muLambda.DefineVar("x3",&x3); //Funktionszeiger - typedef void (*CalcFeqsFct)(LBMReal* const& /*feq[27]*/,const LBMReal& /*(d)rho*/,const LBMReal& /*vx1*/,const LBMReal& /*vx2*/,const LBMReal& /*vx3*/); + typedef void (*CalcFeqsFct)(real* const& /*feq[27]*/,const real& /*(d)rho*/,const real& /*vx1*/,const real& /*vx2*/,const real& /*vx3*/); CalcFeqsFct calcFeqsFct = NULL; int gridRank = grid->getRank(); @@ -253,7 +253,7 @@ void InitThixotropyBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block) SPtr<BCArray3D> bcArray = kernel->getBCProcessor()->getBCArray(); SPtr<DistributionArray3D> distributions = kernel->getDataSet()->getHdistributions(); - LBMReal h[D3Q27System::ENDF+1]; + real h[D3Q27System::ENDF+1]; for(std::size_t ix3=0; ix3<bcArray->getNX3(); ix3++) for(std::size_t ix2=0; ix2<bcArray->getNX2(); ix2++) @@ -281,7 +281,7 @@ void InitThixotropyBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block) //distributionsf->setDistribution(f, ix1, ix2, ix3); //distributionsf->setDistributionInv(f, ix1, ix2, ix3); - LBMReal lambda = muLambda.Eval(); + real lambda = muLambda.Eval(); calcFeqsFct(h,lambda,0.0,0.0,0.0); diff --git a/src/cpu/VirtualFluidsCore/Visitors/InitThixotropyBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/InitThixotropyBlockVisitor.h index a9105e027..eb35a9ad7 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/InitThixotropyBlockVisitor.h +++ b/src/cpu/VirtualFluidsCore/Visitors/InitThixotropyBlockVisitor.h @@ -51,7 +51,7 @@ class InitThixotropyBlockVisitor : public Block3DVisitor { public: - typedef std::numeric_limits<LBMReal> D3Q27RealLim; + typedef std::numeric_limits<real> D3Q27RealLim; public: InitThixotropyBlockVisitor(); @@ -98,7 +98,7 @@ public: //void setf1(LBMReal f1); //void setf2(LBMReal f2); //void setf3(LBMReal f3); - void setLambda(LBMReal lambda); + void setLambda(real lambda); //void setD(LBMReal D); //void initialize(double* f, double x1, double x2, double x3, double vx1, double vx2, double vx3, double rho, UbTupleDouble3 coords, double dx, double o, bool NSE); @@ -107,7 +107,7 @@ public: protected: void checkFunction(mu::Parser fct); - typedef void(*CalcFeqsFct)(LBMReal* const& /*feq[27]*/, const LBMReal& /*(d)rho*/, const LBMReal& /*vx1*/, const LBMReal& /*vx2*/, const LBMReal& /*vx3*/); + typedef void(*CalcFeqsFct)(real* const& /*feq[27]*/, const real& /*(d)rho*/, const real& /*vx1*/, const real& /*vx2*/, const real& /*vx3*/); private: mu::Parser muVx1; diff --git a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseBoundaryConditionsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseBoundaryConditionsBlockVisitor.cpp index 003d5d312..b4eee2dfb 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseBoundaryConditionsBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseBoundaryConditionsBlockVisitor.cpp @@ -77,12 +77,12 @@ void MultiphaseBoundaryConditionsBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Blo SPtr<BCArray3D> bcArray = bcProcessor->getBCArray(); bool compressible = kernel->getCompressible(); - double collFactorL = kernel->getCollisionFactorL(); - double collFactorG = kernel->getCollisionFactorG(); - double collFactorPh = 1.0/kernel->getPhaseFieldRelaxation(); - double densityRatio = kernel->getDensityRatio(); - LBMReal phiL = kernel->getPhiL(); - LBMReal phiH = kernel->getPhiH(); + real collFactorL = kernel->getCollisionFactorL(); + real collFactorG = kernel->getCollisionFactorG(); + real collFactorPh = 1.0/kernel->getPhaseFieldRelaxation(); + real densityRatio = kernel->getDensityRatio(); + real phiL = kernel->getPhiL(); + real phiH = kernel->getPhiH(); //int level = block->getLevel(); int minX1 = 0; diff --git a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.cpp index 2a407d17f..73fcd28ba 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.cpp @@ -50,7 +50,7 @@ MultiphaseInitDistributionsBlockVisitor::MultiphaseInitDistributionsBlockVisitor this->setRho(0.0); } ////////////////////////////////////////////////////////////////////////// -MultiphaseInitDistributionsBlockVisitor::MultiphaseInitDistributionsBlockVisitor( LBMReal densityRatio, LBMReal vx1, LBMReal vx2, LBMReal vx3, LBMReal rho) +MultiphaseInitDistributionsBlockVisitor::MultiphaseInitDistributionsBlockVisitor( real densityRatio, real vx1, real vx2, real vx3, real rho) : Block3DVisitor(0, D3Q27System::MAXLEVEL), densityRatio(densityRatio) { this->setVx1(vx1); @@ -118,31 +118,31 @@ void MultiphaseInitDistributionsBlockVisitor::setPhi( const std::string& muParse this->checkFunction(muPhi); } ////////////////////////////////////////////////////////////////////////// -void MultiphaseInitDistributionsBlockVisitor::setVx1( LBMReal vx1 ) +void MultiphaseInitDistributionsBlockVisitor::setVx1( real vx1 ) { this->muVx1.SetExpr( UbSystem::toString(vx1,D3Q27RealLim::digits10) ); this->checkFunction(muVx1); } ////////////////////////////////////////////////////////////////////////// -void MultiphaseInitDistributionsBlockVisitor::setVx2( LBMReal vx2 ) +void MultiphaseInitDistributionsBlockVisitor::setVx2( real vx2 ) { this->muVx2.SetExpr( UbSystem::toString(vx2,D3Q27RealLim::digits10) ); this->checkFunction(muVx2); } ////////////////////////////////////////////////////////////////////////// -void MultiphaseInitDistributionsBlockVisitor::setVx3( LBMReal vx3 ) +void MultiphaseInitDistributionsBlockVisitor::setVx3( real vx3 ) { this->muVx3.SetExpr( UbSystem::toString(vx3,D3Q27RealLim::digits10) ); this->checkFunction(muVx3); } ////////////////////////////////////////////////////////////////////////// -void MultiphaseInitDistributionsBlockVisitor::setRho( LBMReal rho ) +void MultiphaseInitDistributionsBlockVisitor::setRho( real rho ) { this->muRho.SetExpr( UbSystem::toString(rho,D3Q27RealLim::digits10) ); this->checkFunction(muRho); } ////////////////////////////////////////////////////////////////////////// -void MultiphaseInitDistributionsBlockVisitor::setPhi( LBMReal phi ) +void MultiphaseInitDistributionsBlockVisitor::setPhi( real phi ) { this->muPhi.SetExpr( UbSystem::toString(phi,D3Q27RealLim::digits10) ); this->checkFunction(muPhi); @@ -163,7 +163,7 @@ void MultiphaseInitDistributionsBlockVisitor::visit(const SPtr<Grid3D> grid, SPt this->muRho.DefineVar("x1",&x1); this->muRho.DefineVar("x2",&x2); this->muRho.DefineVar("x3",&x3); this->muPhi.DefineVar("x1",&x1); this->muPhi.DefineVar("x2",&x2); this->muPhi.DefineVar("x3",&x3); - LBMReal vx1, vx2, vx3, rho, /*p1,*/ phi; + real vx1, vx2, vx3, rho, /*p1,*/ phi; int gridRank = grid->getRank(); int blockRank = block->getRank(); @@ -179,10 +179,10 @@ void MultiphaseInitDistributionsBlockVisitor::visit(const SPtr<Grid3D> grid, SPt SPtr<EsoTwist3D> distributionsH = dynamicPointerCast<EsoTwist3D>(kernel->getDataSet()->getHdistributions()); SPtr<EsoTwist3D> distributionsH2 = dynamicPointerCast<EsoTwist3D>(kernel->getDataSet()->getH2distributions()); - LBMReal phiL = kernel->getPhiL(); - LBMReal phiH = kernel->getPhiH(); + real phiL = kernel->getPhiL(); + real phiH = kernel->getPhiH(); - LBMReal f[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; for(int ix3=0; ix3<(int)bcArray->getNX3(); ix3++) for (int ix2 = 0; ix2 < (int)bcArray->getNX2(); ix2++) @@ -202,23 +202,23 @@ void MultiphaseInitDistributionsBlockVisitor::visit(const SPtr<Grid3D> grid, SPt phi = muPhi.Eval(); //rho = phi*1.0 + (1.0-phi)/densityRatio; - LBMReal rhoH = 1.0; - LBMReal rhoL = 1.0/densityRatio; + real rhoH = 1.0; + real rhoL = 1.0/densityRatio; rho = rhoH + (rhoH - rhoL)*(phi - phiH)/(phiH - phiL); - LBMReal feq[27]; - LBMReal geq[27]; + real feq[27]; + real geq[27]; //calcFeqsFct(feq,rho,vx1,vx2,vx3); - LBMReal vx1Sq = vx1*vx1; - LBMReal vx2Sq = vx2*vx2; - LBMReal vx3Sq = vx3*vx3; + real vx1Sq = vx1*vx1; + real vx2Sq = vx2*vx2; + real vx3Sq = vx3*vx3; for (int dir = STARTF; dir < (ENDF+1); dir++) { - LBMReal velProd = DX1[dir]*vx1 + DX2[dir]*vx2 + DX3[dir]*vx3; - LBMReal velSq1 = velProd*velProd; - LBMReal gamma = WEIGTH[dir]*(3*velProd + 4.5*velSq1 - 1.5*(vx1Sq+vx2Sq+vx3Sq)); + real velProd = DX1[dir]*vx1 + DX2[dir]*vx2 + DX3[dir]*vx3; + real velSq1 = velProd*velProd; + real gamma = WEIGTH[dir]*(3*velProd + 4.5*velSq1 - 1.5*(vx1Sq+vx2Sq+vx3Sq)); feq[dir] = rho*WEIGTH[dir]*(1 + 3*velProd + 4.5*velSq1 - 1.5*(vx1Sq+vx2Sq+vx3Sq)); //geq[dir] = p1*WEIGTH[dir] + gamma; @@ -336,7 +336,7 @@ void MultiphaseInitDistributionsBlockVisitor::visit(const SPtr<Grid3D> grid, SPt ////////////////////////////////////////////////////////////////////////// void MultiphaseInitDistributionsBlockVisitor::checkFunction(mu::Parser fct) { - double x1=1.0,x2=1.0,x3=1.0; + real x1=1.0,x2=1.0,x3=1.0; fct.DefineVar("x1",&x1); fct.DefineVar("x2",&x2); fct.DefineVar("x3",&x3); @@ -353,7 +353,7 @@ void MultiphaseInitDistributionsBlockVisitor::checkFunction(mu::Parser fct) } } ////////////////////////////////////////////////////////////////////////// -void MultiphaseInitDistributionsBlockVisitor::setNu( LBMReal nu ) +void MultiphaseInitDistributionsBlockVisitor::setNu( real nu ) { this->nu = nu; } diff --git a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.h index 6ff60387d..6077a1294 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.h +++ b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseInitDistributionsBlockVisitor.h @@ -45,7 +45,7 @@ class MultiphaseInitDistributionsBlockVisitor : public Block3DVisitor { public: - typedef std::numeric_limits<LBMReal> D3Q27RealLim; + typedef std::numeric_limits<real> D3Q27RealLim; public: MultiphaseInitDistributionsBlockVisitor(); @@ -56,7 +56,7 @@ public: //! \param vx1 - velocity in x //! \param vx2 - velocity in y //! \param vx3 - velocity in z - MultiphaseInitDistributionsBlockVisitor( LBMReal densityRatio, LBMReal vx1=0.0, LBMReal vx2=0.0, LBMReal vx3=0.0, LBMReal rho=0.0); + MultiphaseInitDistributionsBlockVisitor( real densityRatio, real vx1=0.0, real vx2=0.0, real vx3=0.0, real rho=0.0); ////////////////////////////////////////////////////////////////////////// //automatic vars are: x1,x2, x3 //ussage example: setVx1("x1*0.01+x2*0.003") @@ -74,12 +74,12 @@ public: void setPhi( const std::string& muParserString); ////////////////////////////////////////////////////////////////////////// - void setVx1( LBMReal vx1 ); - void setVx2( LBMReal vx2 ); - void setVx3( LBMReal vx3 ); - void setRho( LBMReal rho ); - void setPhi( LBMReal rho ); - void setNu( LBMReal nu ); + void setVx1( real vx1 ); + void setVx2( real vx2 ); + void setVx3( real vx3 ); + void setRho( real rho ); + void setPhi( real rho ); + void setNu( real nu ); void visit(SPtr<Grid3D> grid, SPtr<Block3D> block); @@ -93,8 +93,8 @@ private: mu::Parser muRho; mu::Parser muPhi; - LBMReal nu; - LBMReal densityRatio; + real nu; + real densityRatio; }; #endif //D3Q27INITDISTRIBUTIONSPATCHVISITOR_H diff --git a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseSetKernelBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseSetKernelBlockVisitor.cpp index 4990690e2..8885b09ea 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseSetKernelBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseSetKernelBlockVisitor.cpp @@ -19,7 +19,7 @@ // } //} ////////////////////////////////////////////////////////////////////////// -MultiphaseSetKernelBlockVisitor::MultiphaseSetKernelBlockVisitor(SPtr<LBMKernel> kernel, LBMReal nuL, LBMReal nuG, double availMem, double needMem, MultiphaseSetKernelBlockVisitor::Action action /*= SetKernelBlockVisitor::New*/) : +MultiphaseSetKernelBlockVisitor::MultiphaseSetKernelBlockVisitor(SPtr<LBMKernel> kernel, real nuL, real nuG, real availMem, real needMem, MultiphaseSetKernelBlockVisitor::Action action /*= SetKernelBlockVisitor::New*/) : Block3DVisitor(0, D3Q27System::MAXLEVEL), kernel(kernel), nuL(nuL), nuG(nuG), action(action), dataSetFlag(true) { if (needMem > availMem) @@ -32,8 +32,8 @@ void MultiphaseSetKernelBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> blo { if(kernel && (block->getRank() == grid->getRank())) { - LBMReal collFactorL = LBMSystem::calcCollisionFactor(nuL, block->getLevel()); - LBMReal collFactorG = LBMSystem::calcCollisionFactor(nuG, block->getLevel()); + real collFactorL = LBMSystem::calcCollisionFactor(nuL, block->getLevel()); + real collFactorG = LBMSystem::calcCollisionFactor(nuG, block->getLevel()); kernel->setCollisionFactorMultiphase(collFactorL, collFactorG); kernel->setIndex(block->getX1(), block->getX2(), block->getX3()); diff --git a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseSetKernelBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseSetKernelBlockVisitor.h index 24d2b35c3..566419d7f 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseSetKernelBlockVisitor.h +++ b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseSetKernelBlockVisitor.h @@ -42,7 +42,7 @@ class MultiphaseSetKernelBlockVisitor : public Block3DVisitor public: enum Action { NewKernel, ChangeKernel, ChangeKernelWithData}; public: - MultiphaseSetKernelBlockVisitor(SPtr<LBMKernel> kernel, LBMReal nuL, LBMReal nuG, double availMem, double needMem, + MultiphaseSetKernelBlockVisitor(SPtr<LBMKernel> kernel, real nuL, real nuG, real availMem, real needMem, MultiphaseSetKernelBlockVisitor::Action action = MultiphaseSetKernelBlockVisitor::NewKernel); virtual ~MultiphaseSetKernelBlockVisitor() {} @@ -53,8 +53,8 @@ public: private: SPtr<LBMKernel> kernel; - LBMReal nuL; - LBMReal nuG; + real nuL; + real nuG; Action action; bool dataSetFlag; }; diff --git a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.cpp index 0a501e8e0..575c6f039 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.cpp @@ -121,31 +121,31 @@ void MultiphaseVelocityFormInitDistributionsBlockVisitor::setPressure(const std: this->checkFunction(muPressure); } ////////////////////////////////////////////////////////////////////////// -void MultiphaseVelocityFormInitDistributionsBlockVisitor::setVx1( LBMReal vx1 ) +void MultiphaseVelocityFormInitDistributionsBlockVisitor::setVx1( real vx1 ) { this->muVx1.SetExpr( UbSystem::toString(vx1,D3Q27RealLim::digits10) ); this->checkFunction(muVx1); } ////////////////////////////////////////////////////////////////////////// -void MultiphaseVelocityFormInitDistributionsBlockVisitor::setVx2( LBMReal vx2 ) +void MultiphaseVelocityFormInitDistributionsBlockVisitor::setVx2( real vx2 ) { this->muVx2.SetExpr( UbSystem::toString(vx2,D3Q27RealLim::digits10) ); this->checkFunction(muVx2); } ////////////////////////////////////////////////////////////////////////// -void MultiphaseVelocityFormInitDistributionsBlockVisitor::setVx3( LBMReal vx3 ) +void MultiphaseVelocityFormInitDistributionsBlockVisitor::setVx3( real vx3 ) { this->muVx3.SetExpr( UbSystem::toString(vx3,D3Q27RealLim::digits10) ); this->checkFunction(muVx3); } ////////////////////////////////////////////////////////////////////////// -void MultiphaseVelocityFormInitDistributionsBlockVisitor::setRho( LBMReal rho ) +void MultiphaseVelocityFormInitDistributionsBlockVisitor::setRho( real rho ) { this->muRho.SetExpr( UbSystem::toString(rho,D3Q27RealLim::digits10) ); this->checkFunction(muRho); } ////////////////////////////////////////////////////////////////////////// -void MultiphaseVelocityFormInitDistributionsBlockVisitor::setPhi( LBMReal phi ) +void MultiphaseVelocityFormInitDistributionsBlockVisitor::setPhi( real phi ) { this->muPhi.SetExpr( UbSystem::toString(phi,D3Q27RealLim::digits10) ); this->checkFunction(muPhi); @@ -188,7 +188,7 @@ void MultiphaseVelocityFormInitDistributionsBlockVisitor::visit(const SPtr<Grid3 //LBMReal phiL = kernel->getPhiL(); //LBMReal phiH = kernel->getPhiH(); - LBMReal f[D3Q27System::ENDF+1]; + real f[D3Q27System::ENDF+1]; for(int ix3=0; ix3<(int)bcArray->getNX3(); ix3++) for (int ix2 = 0; ix2 < (int)bcArray->getNX2(); ix2++) @@ -199,7 +199,7 @@ void MultiphaseVelocityFormInitDistributionsBlockVisitor::visit(const SPtr<Grid3 x2 = coords[1]; x3 = coords[2]; - LBMReal vx1 = 0, vx2 = 0, vx3 = 0, p1 = 0, phi = 0,pres=0; + real vx1 = 0, vx2 = 0, vx3 = 0, p1 = 0, phi = 0,pres=0; //p1 = 0.0; p1 = muRho.Eval(); vx1 = muVx1.Eval(); @@ -216,18 +216,18 @@ void MultiphaseVelocityFormInitDistributionsBlockVisitor::visit(const SPtr<Grid3 //LBMReal rho = rhoH + (rhoH - rhoL)*(phi - phiH)/(phiH - phiL); - LBMReal feq[27]; - LBMReal geq[27]; + real feq[27]; + real geq[27]; //calcFeqsFct(feq,rho,vx1,vx2,vx3); - LBMReal vx1Sq = vx1*vx1; - LBMReal vx2Sq = vx2*vx2; - LBMReal vx3Sq = vx3*vx3; + real vx1Sq = vx1*vx1; + real vx2Sq = vx2*vx2; + real vx3Sq = vx3*vx3; for (int dir = STARTF; dir < (ENDF+1); dir++) { - LBMReal velProd = DX1[dir]*vx1 + DX2[dir]*vx2 + DX3[dir]*vx3; - LBMReal velSq1 = velProd*velProd; - LBMReal gamma = WEIGTH[dir]*(3*velProd + 4.5*velSq1 - 1.5*(vx1Sq+vx2Sq+vx3Sq)); + real velProd = DX1[dir]*vx1 + DX2[dir]*vx2 + DX3[dir]*vx3; + real velSq1 = velProd*velProd; + real gamma = WEIGTH[dir]*(3*velProd + 4.5*velSq1 - 1.5*(vx1Sq+vx2Sq+vx3Sq)); //feq[dir] = rho*WEIGTH[dir]*(1 + 3*velProd + 4.5*velSq1 - 1.5*(vx1Sq+vx2Sq+vx3Sq)); feq[dir] = WEIGTH[dir] * (1 + 3 * velProd + 4.5 * velSq1 - 1.5 * (vx1Sq + vx2Sq + vx3Sq)); @@ -347,7 +347,7 @@ void MultiphaseVelocityFormInitDistributionsBlockVisitor::visit(const SPtr<Grid3 ////////////////////////////////////////////////////////////////////////// void MultiphaseVelocityFormInitDistributionsBlockVisitor::checkFunction(mu::Parser fct) { - double x1=1.0,x2=1.0,x3=1.0; + real x1=1.0,x2=1.0,x3=1.0; fct.DefineVar("x1",&x1); fct.DefineVar("x2",&x2); fct.DefineVar("x3",&x3); @@ -364,12 +364,12 @@ void MultiphaseVelocityFormInitDistributionsBlockVisitor::checkFunction(mu::Pars } } ////////////////////////////////////////////////////////////////////////// -void MultiphaseVelocityFormInitDistributionsBlockVisitor::setNu( LBMReal nu ) +void MultiphaseVelocityFormInitDistributionsBlockVisitor::setNu( real nu ) { this->nu = nu; } -void MultiphaseVelocityFormInitDistributionsBlockVisitor::setPressure(LBMReal pres) +void MultiphaseVelocityFormInitDistributionsBlockVisitor::setPressure(real pres) { this->muPressure.SetExpr(UbSystem::toString(pres, D3Q27RealLim::digits10)); this->checkFunction(muPressure); diff --git a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.h index 553cfe75b..92ab5eff9 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.h +++ b/src/cpu/VirtualFluidsCore/Visitors/MultiphaseVelocityFormInitDistributionsBlockVisitor.h @@ -45,7 +45,7 @@ class MultiphaseVelocityFormInitDistributionsBlockVisitor : public Block3DVisitor { public: - typedef std::numeric_limits<LBMReal> D3Q27RealLim; + typedef std::numeric_limits<real> D3Q27RealLim; public: MultiphaseVelocityFormInitDistributionsBlockVisitor(); @@ -75,13 +75,13 @@ public: void setPressure(const std::string& muParserString); ////////////////////////////////////////////////////////////////////////// - void setVx1( LBMReal vx1 ); - void setVx2( LBMReal vx2 ); - void setVx3( LBMReal vx3 ); - void setRho( LBMReal rho ); - void setPhi( LBMReal rho ); - void setNu( LBMReal nu ); - void setPressure(LBMReal pres); + void setVx1( real vx1 ); + void setVx2( real vx2 ); + void setVx3( real vx3 ); + void setRho( real rho ); + void setPhi( real rho ); + void setNu( real nu ); + void setPressure(real pres); void visit(SPtr<Grid3D> grid, SPtr<Block3D> block); @@ -96,7 +96,7 @@ private: mu::Parser muPhi; mu::Parser muPressure; - LBMReal nu; + real nu; }; #endif //D3Q27INITDISTRIBUTIONSPATCHVISITOR_H diff --git a/src/cpu/VirtualFluidsCore/Visitors/RefineAroundGbObjectHelper.cpp b/src/cpu/VirtualFluidsCore/Visitors/RefineAroundGbObjectHelper.cpp index c1645afeb..2a377c834 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/RefineAroundGbObjectHelper.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/RefineAroundGbObjectHelper.cpp @@ -10,7 +10,7 @@ RefineAroundGbObjectHelper::RefineAroundGbObjectHelper(SPtr<Grid3D> grid, int refineLevel, SPtr<D3Q27TriFaceMeshInteractor> objectIter, - double startDistance, double stopDistance, + real startDistance, real stopDistance, std::shared_ptr<vf::mpi::Communicator> comm) : grid(grid), refineLevel(refineLevel), objectIter(objectIter), startDistance(startDistance), stopDistance(stopDistance), comm(comm) diff --git a/src/cpu/VirtualFluidsCore/Visitors/RefineAroundGbObjectHelper.h b/src/cpu/VirtualFluidsCore/Visitors/RefineAroundGbObjectHelper.h index 0421a963e..76874ce76 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/RefineAroundGbObjectHelper.h +++ b/src/cpu/VirtualFluidsCore/Visitors/RefineAroundGbObjectHelper.h @@ -2,6 +2,7 @@ #define RefineAroundGbObjectHelper_H #include <PointerDefinitions.h> +#include "lbm/constants/D3Q27.h" class Grid3D; namespace vf::mpi {class Communicator;} @@ -20,7 +21,7 @@ public: //! \param startDistance start distance from geometry for refinement //! \param stopDistance stop distance from geometry for refinement RefineAroundGbObjectHelper(SPtr<Grid3D> grid, int maxRefineLevel, SPtr<D3Q27TriFaceMeshInteractor> objectIter, - double startDistance, double stopDistance, std::shared_ptr<vf::mpi::Communicator> comm); + real startDistance, real stopDistance, std::shared_ptr<vf::mpi::Communicator> comm); virtual ~RefineAroundGbObjectHelper(); //! start refinement void refine(); @@ -29,7 +30,7 @@ private: SPtr<Grid3D> grid; SPtr<D3Q27TriFaceMeshInteractor> objectIter; int refineLevel; - double startDistance, stopDistance; + real startDistance, stopDistance; std::shared_ptr<vf::mpi::Communicator> comm; }; diff --git a/src/cpu/VirtualFluidsCore/Visitors/RefineInterGbObjectsVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/RefineInterGbObjectsVisitor.cpp index 7fa6a6283..b1a9a3b39 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/RefineInterGbObjectsVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/RefineInterGbObjectsVisitor.cpp @@ -3,6 +3,7 @@ #include "Block3D.h" #include "Grid3D.h" #include <geometry3d/GbObject3D.h> +#include "lbm/constants/D3Q27.h" RefineInterGbObjectsBlockVisitor::RefineInterGbObjectsBlockVisitor() : Block3DVisitor(-1, -1) {} ////////////////////////////////////////////////////////////////////////// @@ -29,12 +30,12 @@ void RefineInterGbObjectsBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> bl UbTupleDouble3 coords = grid->getBlockWorldCoordinates(block); UbTupleDouble3 delta = grid->getBlockLengths(block); - double cellMinX1 = val<1>(coords); - double cellMinX2 = val<2>(coords); - double cellMinX3 = val<3>(coords); - double cellMaxX1 = val<1>(coords) + val<1>(delta); - double cellMaxX2 = val<2>(coords) + val<2>(delta); - double cellMaxX3 = val<3>(coords) + val<3>(delta); + real cellMinX1 = val<1>(coords); + real cellMinX2 = val<2>(coords); + real cellMinX3 = val<3>(coords); + real cellMaxX1 = val<1>(coords) + val<1>(delta); + real cellMaxX2 = val<2>(coords) + val<2>(delta); + real cellMaxX3 = val<3>(coords) + val<3>(delta); bool insideInclude = false; for (size_t i = 0; i < includeGbObjects3D.size(); i++) { diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetForcingBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/SetForcingBlockVisitor.cpp index abf828a06..a325fc5ac 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/SetForcingBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/SetForcingBlockVisitor.cpp @@ -4,7 +4,7 @@ #include "D3Q27System.h" #include "LBMSystem.h" -SetForcingBlockVisitor::SetForcingBlockVisitor(LBMReal forcingX1, LBMReal forcingX2, LBMReal forcingX3) +SetForcingBlockVisitor::SetForcingBlockVisitor(real forcingX1, real forcingX2, real forcingX3) : Block3DVisitor(0, D3Q27System::MAXLEVEL), forcingX1(forcingX1), forcingX2(forcingX2), forcingX3(forcingX3) { ftype = 0; diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetForcingBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/SetForcingBlockVisitor.h index a6d13c2a7..e7237d7fc 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/SetForcingBlockVisitor.h +++ b/src/cpu/VirtualFluidsCore/Visitors/SetForcingBlockVisitor.h @@ -13,7 +13,7 @@ class Grid3D; class SetForcingBlockVisitor : public Block3DVisitor { public: - SetForcingBlockVisitor(LBMReal forcingX1, LBMReal forcingX2, LBMReal forcingX3); + SetForcingBlockVisitor(real forcingX1, real forcingX2, real forcingX3); SetForcingBlockVisitor(const mu::Parser &muForcingX1, const mu::Parser &muForcingX2, const mu::Parser &muForcingX3); @@ -25,9 +25,9 @@ public: private: int ftype; - LBMReal forcingX1; - LBMReal forcingX2; - LBMReal forcingX3; + real forcingX1; + real forcingX2; + real forcingX3; mu::Parser muForcingX1; mu::Parser muForcingX2; mu::Parser muForcingX3; diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationConnectorsBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationConnectorsBlockVisitor.cpp index e4558f5c4..7ff7d20b9 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationConnectorsBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationConnectorsBlockVisitor.cpp @@ -42,7 +42,7 @@ #include <mpi/Communicator.h> #include "InterpolationProcessor.h" -SetInterpolationConnectorsBlockVisitor::SetInterpolationConnectorsBlockVisitor(std::shared_ptr<vf::mpi::Communicator> comm, LBMReal nue, SPtr<InterpolationProcessor> iProcessor) : +SetInterpolationConnectorsBlockVisitor::SetInterpolationConnectorsBlockVisitor(std::shared_ptr<vf::mpi::Communicator> comm, real nue, SPtr<InterpolationProcessor> iProcessor) : Block3DVisitor(0, D3Q27System::MAXLEVEL), comm(comm), nue(nue), @@ -345,12 +345,12 @@ void SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors(SPtr<Blo if(fBlockNE) fBlockNERank = fBlockNE->getRank(); int cBlockRank = cBlock->getRank(); - LBMReal omegaF {0.0}; + real omegaF {0.0}; if(fBlockSW) omegaF =LBMSystem::calcCollisionFactor(nue, fBlockSW->getLevel()); if(fBlockNW) omegaF =LBMSystem::calcCollisionFactor(nue, fBlockNW->getLevel()); if(fBlockSE) omegaF =LBMSystem::calcCollisionFactor(nue, fBlockSE->getLevel()); if(fBlockNE) omegaF =LBMSystem::calcCollisionFactor(nue, fBlockNE->getLevel()); - LBMReal omegaC = LBMSystem::calcCollisionFactor(nue, cBlock->getLevel()); + real omegaC = LBMSystem::calcCollisionFactor(nue, cBlock->getLevel()); iProcessor->setOmegas(omegaC, omegaF); InterpolationProcessorPtr cIProcessor(iProcessor->clone()); @@ -375,7 +375,7 @@ void SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors(SPtr<Blo if(cBlockRank == gridRank) { - SPtr<Block3DConnector> connector(new CoarseToFineVectorConnector< TbTransmitter< CbVector< LBMReal > > >(cBlock, + SPtr<Block3DConnector> connector(new CoarseToFineVectorConnector< TbTransmitter< CbVector< real > > >(cBlock, senderCFevenEvenSW, receiverCFevenEvenSW, senderCFevenOddNW, receiverCFevenOddNW, senderCFoddEvenSE, receiverCFoddEvenSE, senderCFoddOddNE, receiverCFoddOddNE, dir, cIProcessor) ); @@ -383,25 +383,25 @@ void SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors(SPtr<Blo } if(fBlockSW && fBlockSWRank == gridRank) { - SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< LBMReal > > >(fBlockSW, + SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< real > > >(fBlockSW, senderFCevenEvenSW, receiverFCevenEvenSW, dir, fIProcessorSW, EvenEvenSW) ); fBlockSW->setConnector(connector); } if(fBlockNW && fBlockNWRank == gridRank) { - SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< LBMReal > > >(fBlockNW, + SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< real > > >(fBlockNW, senderFCevenOddNW, receiverFCevenOddNW, dir, fIProcessorNW, EvenOddNW) ); fBlockNW->setConnector(connector); } if(fBlockSE && fBlockSERank == gridRank) { - SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< LBMReal > > >(fBlockSE, + SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< real > > >(fBlockSE, senderFCoddEvenSE, receiverFCoddEvenSE, dir, fIProcessorSE, OddEvenSE) ); fBlockSE->setConnector(connector); } if(fBlockNE && fBlockNERank == gridRank) { - SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< LBMReal > > >(fBlockNE, + SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< real > > >(fBlockNE, senderFCoddOddNE, receiverFCoddOddNE, dir, fIProcessorNE, OddOddNE) ); fBlockNE->setConnector(connector); } @@ -421,8 +421,8 @@ void SetInterpolationConnectorsBlockVisitor::createTransmitters(SPtr<Block3D> cB int cBlockRank = cBlock->getRank(); if(fBlockRank == cBlockRank && fBlockRank == gridRank) { - senderCF = receiverFC = CreateTransmittersHelper::TransmitterPtr( new TbLocalTransmitter< CbVector< LBMReal > >()); - senderFC = receiverCF = CreateTransmittersHelper::TransmitterPtr( new TbLocalTransmitter< CbVector< LBMReal > >()); + senderCF = receiverFC = CreateTransmittersHelper::TransmitterPtr( new TbLocalTransmitter< CbVector< real > >()); + senderFC = receiverCF = CreateTransmittersHelper::TransmitterPtr( new TbLocalTransmitter< CbVector< real > >()); } else if(cBlockRank == gridRank) { diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationConnectorsBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationConnectorsBlockVisitor.h index 7ae54b0b6..c30d87eca 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationConnectorsBlockVisitor.h +++ b/src/cpu/VirtualFluidsCore/Visitors/SetInterpolationConnectorsBlockVisitor.h @@ -50,7 +50,7 @@ class InterpolationProcessor; class SetInterpolationConnectorsBlockVisitor : public Block3DVisitor { public: - SetInterpolationConnectorsBlockVisitor(std::shared_ptr<vf::mpi::Communicator> comm, LBMReal nue, SPtr<InterpolationProcessor> iProcessor); + SetInterpolationConnectorsBlockVisitor(std::shared_ptr<vf::mpi::Communicator> comm, real nue, SPtr<InterpolationProcessor> iProcessor); ~SetInterpolationConnectorsBlockVisitor() override; void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override; ////////////////////////////////////////////////////////////////////////// @@ -65,7 +65,7 @@ protected: CreateTransmittersHelper::TransmitterPtr &receiverFC); std::shared_ptr<vf::mpi::Communicator> comm; int gridRank; - LBMReal nue; + real nue; SPtr<InterpolationProcessor> iProcessor; }; diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.cpp index 354a577e7..54271370c 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.cpp @@ -44,7 +44,7 @@ #include <utility> ////////////////////////////////////////////////////////////////////////// -SetKernelBlockVisitor::SetKernelBlockVisitor(SPtr<LBMKernel> kernel, LBMReal nue, double availMem, double needMem, +SetKernelBlockVisitor::SetKernelBlockVisitor(SPtr<LBMKernel> kernel, real nue, real availMem, real needMem, SetKernelBlockVisitor::Action action) : Block3DVisitor(0, D3Q27System::MAXLEVEL), kernel(std::move(kernel)), nue(nue), action(action), dataSetFlag(true) { @@ -53,7 +53,7 @@ SetKernelBlockVisitor::SetKernelBlockVisitor(SPtr<LBMKernel> kernel, LBMReal nue } } -SetKernelBlockVisitor::SetKernelBlockVisitor(SPtr<LBMKernel> kernel, LBMReal nue, int numberOfProcesses, +SetKernelBlockVisitor::SetKernelBlockVisitor(SPtr<LBMKernel> kernel, real nue, int numberOfProcesses, SetKernelBlockVisitor::Action action) : Block3DVisitor(0, D3Q27System::MAXLEVEL), kernel(std::move(kernel)), nue(nue), action(action), dataSetFlag(true), numberOfProcesses(numberOfProcesses) @@ -66,7 +66,7 @@ void SetKernelBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block) throwExceptionIfNotEnoughMemory(grid); if (kernel && (block->getRank() == grid->getRank())) { - LBMReal collFactor = LBMSystem::calcCollisionFactor(nue, block->getLevel()); + real collFactor = LBMSystem::calcCollisionFactor(nue, block->getLevel()); kernel->setCollisionFactor(collFactor); kernel->setIndex(block->getX1(), block->getX2(), block->getX3()); kernel->setDeltaT(LBMSystem::getDeltaT(block->getLevel())); @@ -122,7 +122,7 @@ void SetKernelBlockVisitor::throwExceptionIfNotEnoughMemory(const SPtr<Grid3D> & throw UbException(UB_EXARGS, "SetKernelBlockVisitor: Not enough memory!!!"); } -double SetKernelBlockVisitor::getRequiredPhysicalMemory(const SPtr<Grid3D> &grid) const +real SetKernelBlockVisitor::getRequiredPhysicalMemory(const SPtr<Grid3D> &grid) const { unsigned long long numberOfNodesPerBlockWithGhostLayer; auto numberOfBlocks = (unsigned long long)grid->getNumberOfBlocks(); @@ -133,7 +133,7 @@ double SetKernelBlockVisitor::getRequiredPhysicalMemory(const SPtr<Grid3D> &grid (val<2>(blockNx) + ghostLayer) * (val<3>(blockNx) + ghostLayer); auto needMemAll = - double(numberOfNodesPerBlockWithGhostLayer * (27 * sizeof(double) + sizeof(int) + sizeof(float) * 4)); + real(numberOfNodesPerBlockWithGhostLayer * (27 * sizeof(real) + sizeof(int) + sizeof(float) * 4)); - return needMemAll / double(numberOfProcesses); + return needMemAll / real(numberOfProcesses); } diff --git a/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.h index 1e0621f22..c80fd5678 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.h +++ b/src/cpu/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.h @@ -49,10 +49,10 @@ class SetKernelBlockVisitor : public Block3DVisitor public: enum Action { NewKernel, ChangeKernel, ChangeKernelWithData }; - SetKernelBlockVisitor(SPtr<LBMKernel> kernel, LBMReal nue, double availMem, double needMem, + SetKernelBlockVisitor(SPtr<LBMKernel> kernel, real nue, double availMem, double needMem, SetKernelBlockVisitor::Action action = SetKernelBlockVisitor::NewKernel); - SetKernelBlockVisitor(SPtr<LBMKernel> kernel, LBMReal nue, int numberOfProcesses, + SetKernelBlockVisitor(SPtr<LBMKernel> kernel, real nue, int numberOfProcesses, SetKernelBlockVisitor::Action action = SetKernelBlockVisitor::NewKernel); ~SetKernelBlockVisitor() override = default; @@ -63,7 +63,7 @@ public: private: SPtr<LBMKernel> kernel; - LBMReal nue; + real nue; Action action; bool dataSetFlag; diff --git a/src/cpu/VirtualFluidsCore/Visitors/SpongeLayerBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/SpongeLayerBlockVisitor.cpp index 95594b892..618302427 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/SpongeLayerBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/SpongeLayerBlockVisitor.cpp @@ -13,7 +13,7 @@ using namespace std; -SpongeLayerBlockVisitor::SpongeLayerBlockVisitor(SPtr<GbCuboid3D> boundingBox, SPtr<LBMKernel> kernel, double nue, +SpongeLayerBlockVisitor::SpongeLayerBlockVisitor(SPtr<GbCuboid3D> boundingBox, SPtr<LBMKernel> kernel, real nue, int dir) : Block3DVisitor(0, D3Q27System::MAXLEVEL), boundingBox(boundingBox), kernel(kernel), nue(nue), dir(dir) { @@ -35,15 +35,15 @@ void SpongeLayerBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block) UbTupleDouble3 org = grid->getBlockWorldCoordinates(block); UbTupleDouble3 blockLengths = grid->getBlockLengths(block); - double minX1 = val<1>(org); - double minX2 = val<2>(org); - double minX3 = val<3>(org); - double maxX1 = val<1>(org) + val<1>(blockLengths); - double maxX2 = val<2>(org) + val<2>(blockLengths); - double maxX3 = val<3>(org) + val<3>(blockLengths); + real minX1 = val<1>(org); + real minX2 = val<2>(org); + real minX3 = val<3>(org); + real maxX1 = val<1>(org) + val<1>(blockLengths); + real maxX2 = val<2>(org) + val<2>(blockLengths); + real maxX3 = val<3>(org) + val<3>(blockLengths); if (boundingBox->isCellInsideGbObject3D(minX1, minX2, minX3, maxX1, maxX2, maxX3)) { - LBMReal collFactor = LBMSystem::calcCollisionFactor(nue, block->getLevel()); + real collFactor = LBMSystem::calcCollisionFactor(nue, block->getLevel()); kernel->setCollisionFactor(collFactor); kernel->setIndex(block->getX1(), block->getX2(), block->getX3()); kernel->setDeltaT(LBMSystem::getDeltaT(block->getLevel())); @@ -65,35 +65,35 @@ void SpongeLayerBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block) } newKernel->setBCProcessor(bcProc); - double oldCollFactor = newKernel->getCollisionFactor(); + real oldCollFactor = newKernel->getCollisionFactor(); UbTupleInt3 ixMin = grid->getBlockIndexes(boundingBox->getX1Minimum(), boundingBox->getX2Minimum(), boundingBox->getX3Minimum()); UbTupleInt3 ixMax = grid->getBlockIndexes(boundingBox->getX1Maximum(), boundingBox->getX2Maximum(), boundingBox->getX3Maximum()); - double newCollFactor; + real newCollFactor; if (dir == DIR_P00) { int ibX1 = block->getX1(); int ibMax = val<1>(ixMax) - val<1>(ixMin) + 1; - double index = (double)(ibX1 - val<1>(ixMin) + 1); - newCollFactor = oldCollFactor - (oldCollFactor - 1.0) / (double)(ibMax)*index; + real index = (real)(ibX1 - val<1>(ixMin) + 1); + newCollFactor = oldCollFactor - (oldCollFactor - 1.0) / (real)(ibMax)*index; } else if (dir == DIR_M00) { int ibX1 = block->getX1(); int ibMax = val<1>(ixMax) - val<1>(ixMin) + 1; - double index = (double)(ibX1 - val<1>(ixMin) + 1); - newCollFactor = (oldCollFactor - 1.0) / (double)(ibMax)*index; + real index = (real)(ibX1 - val<1>(ixMin) + 1); + newCollFactor = (oldCollFactor - 1.0) / (real)(ibMax)*index; } else if (dir == DIR_00P) { int ibX3 = block->getX3(); int ibMax = val<3>(ixMax) - val<3>(ixMin) + 1; - double index = (double)(ibX3 - val<3>(ixMin) + 1); - newCollFactor = oldCollFactor - (oldCollFactor - 1.0) / (double)(ibMax)*index; + real index = (real)(ibX3 - val<3>(ixMin) + 1); + newCollFactor = oldCollFactor - (oldCollFactor - 1.0) / (real)(ibMax)*index; } else if (dir == DIR_00M) { int ibX3 = block->getX3(); int ibMax = val<3>(ixMax) - val<3>(ixMin) + 1; - double index = (double)(ibX3 - val<3>(ixMin) + 1); - newCollFactor = (oldCollFactor - 1.0) / (double)(ibMax)*index; + real index = (real)(ibX3 - val<3>(ixMin) + 1); + newCollFactor = (oldCollFactor - 1.0) / (real)(ibMax)*index; } else UB_THROW(UbException(UB_EXARGS, "Problem: no orthogonal sponge layer!")); diff --git a/src/cpu/VirtualFluidsCore/Visitors/SpongeLayerBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/SpongeLayerBlockVisitor.h index 0896db065..184a89eba 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/SpongeLayerBlockVisitor.h +++ b/src/cpu/VirtualFluidsCore/Visitors/SpongeLayerBlockVisitor.h @@ -15,7 +15,7 @@ class LBMKernel; class SpongeLayerBlockVisitor : public Block3DVisitor { public: - SpongeLayerBlockVisitor(SPtr<GbCuboid3D> boundingBox, SPtr<LBMKernel> kernel, double nue, int dir); + SpongeLayerBlockVisitor(SPtr<GbCuboid3D> boundingBox, SPtr<LBMKernel> kernel, real nue, int dir); ~SpongeLayerBlockVisitor() override; void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override; @@ -23,7 +23,7 @@ public: private: SPtr<GbCuboid3D> boundingBox; SPtr<LBMKernel> kernel; - double nue; + real nue; int dir; }; diff --git a/src/cpu/VirtualFluidsCore/Visitors/ViscosityBlockVisitor.cpp b/src/cpu/VirtualFluidsCore/Visitors/ViscosityBlockVisitor.cpp index 311a8bf19..3dbe4d9c7 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/ViscosityBlockVisitor.cpp +++ b/src/cpu/VirtualFluidsCore/Visitors/ViscosityBlockVisitor.cpp @@ -5,12 +5,12 @@ #include "ILBMKernel.h" #include "LBMSystem.h" -ViscosityBlockVisitor::ViscosityBlockVisitor(LBMReal nu) : Block3DVisitor(0, D3Q27System::MAXLEVEL), nu(nu) {} +ViscosityBlockVisitor::ViscosityBlockVisitor(real nu) : Block3DVisitor(0, D3Q27System::MAXLEVEL), nu(nu) {} ////////////////////////////////////////////////////////////////////////// void ViscosityBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block) { if (block->getRank() == grid->getRank()) { - LBMReal collFactor = LBMSystem::calcCollisionFactor(nu, block->getLevel()); + real collFactor = LBMSystem::calcCollisionFactor(nu, block->getLevel()); block->getKernel()->setCollisionFactor(collFactor); } } diff --git a/src/cpu/VirtualFluidsCore/Visitors/ViscosityBlockVisitor.h b/src/cpu/VirtualFluidsCore/Visitors/ViscosityBlockVisitor.h index 003bd41e1..cb665f41c 100644 --- a/src/cpu/VirtualFluidsCore/Visitors/ViscosityBlockVisitor.h +++ b/src/cpu/VirtualFluidsCore/Visitors/ViscosityBlockVisitor.h @@ -12,14 +12,14 @@ class Block3D; class ViscosityBlockVisitor : public Block3DVisitor { public: - ViscosityBlockVisitor(LBMReal nu); + ViscosityBlockVisitor(real nu); ~ViscosityBlockVisitor() override = default; void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override; private: - LBMReal nu; + real nu; }; #endif diff --git a/src/lbm/constants/D3Q27.h b/src/lbm/constants/D3Q27.h index b9c9d34f7..f923695f3 100644 --- a/src/lbm/constants/D3Q27.h +++ b/src/lbm/constants/D3Q27.h @@ -6,7 +6,7 @@ namespace vf::lbm::dir { - + //real, double und float auf real static constexpr int STARTDIR = 0; static constexpr int ENDDIR = 26; -- GitLab