From add775e6ef46de22af80373ef23c7af452e05f10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Peters?= <dev.peters@icloud.com> Date: Thu, 16 Nov 2023 11:45:36 +0100 Subject: [PATCH] Remove accidentally kept files. --- lizard.txt | 185 ---------- .../NonReflectingInflowBCStrategy.cpp | 340 ------------------ .../NonReflectingOutflowBCStrategy.cpp | 232 ------------ ...lectingOutflowWithRelaxationBCStrategy.cpp | 232 ------------ .../BoundaryConditions/SlipBCStrategy.cpp | 83 ----- 5 files changed, 1072 deletions(-) delete mode 100644 lizard.txt delete mode 100644 src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingInflowBCStrategy.cpp delete mode 100644 src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCStrategy.cpp delete mode 100644 src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowWithRelaxationBCStrategy.cpp delete mode 100644 src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCStrategy.cpp diff --git a/lizard.txt b/lizard.txt deleted file mode 100644 index 927eca599..000000000 --- a/lizard.txt +++ /dev/null @@ -1,185 +0,0 @@ -src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp:90: warning: RayCastingDiscretizationStrategy::doDiscretize has 117 NLOC, 33 CCN, 1018 token, 4 PARAM, 138 length -src/gpu/GridGenerator/TransientBCSetter/TransientBCSetter.cpp:259: warning: VTKReader::fillArrays has 110 NLOC, 23 CCN, 976 token, 2 PARAM, 132 length -src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp:232: warning: MultipleGridBuilder::getStaggeredCoordinates has 61 NLOC, 24 CCN, 827 token, 6 PARAM, 114 length -src/gpu/GridGenerator/grid/GridImp.cpp:364: warning: GridImp::fixRefinementIntoWall has 36 NLOC, 44 CCN, 630 token, 4 PARAM, 58 length -src/gpu/GridGenerator/grid/GridImp.cpp:612: warning: GridImp::nodeInNextCellIs has 24 NLOC, 17 CCN, 346 token, 2 PARAM, 30 length -src/gpu/GridGenerator/grid/GridImp.cpp:643: warning: GridImp::nodeInPreviousCellIs has 24 NLOC, 17 CCN, 346 token, 2 PARAM, 30 length -src/gpu/GridGenerator/io/STLReaderWriter/STLReader.cpp:110: warning: STLReader::readASCIISTLWithPatches has 76 NLOC, 24 CCN, 599 token, 2 PARAM, 99 length -src/gpu/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp:162: warning: GridVTKWriter::writeInterpolationCellsToVTKXML has 84 NLOC, 16 CCN, 1035 token, 3 PARAM, 114 length -src/gpu/core/LBM/Simulation.cpp:88: warning: Simulation::init has 127 NLOC, 24 CCN, 1214 token, 4 PARAM, 307 length -src/gpu/core/LBM/Simulation.cpp:506: warning: Simulation::calculateTimestep has 151 NLOC, 31 CCN, 1391 token, 1 PARAM, 209 length -src/gpu/core/LBM/Simulation.cpp:716: warning: Simulation::readAndWriteFiles has 77 NLOC, 21 CCN, 718 token, 1 PARAM, 258 length -src/gpu/core/LBM/Simulation.cpp:975: warning: Simulation::~Simulation has 96 NLOC, 24 CCN, 748 token, 0 PARAM, 153 length -src/gpu/core/GPU/GeometryUtils.h:19: warning: findNearestCellBSW has 18 NLOC, 16 CCN, 347 token, 11 PARAM, 23 length -src/gpu/core/DataStructureInitializer/GridReaderFiles/GridReader.cpp:329: warning: GridReader::initalValuesDomainDecompostion has 157 NLOC, 21 CCN, 2302 token, 1 PARAM, 212 length -src/gpu/core/DataStructureInitializer/GridReaderGenerator/GridGenerator.cpp:210: warning: GridGenerator::allocArrays_BoundaryValues has 177 NLOC, 23 CCN, 2395 token, 0 PARAM, 272 length -src/gpu/core/DataStructureInitializer/GridReaderGenerator/GridGenerator.cpp:483: warning: GridGenerator::initalValuesDomainDecompostion has 321 NLOC, 42 CCN, 4222 token, 0 PARAM, 429 length -src/gpu/core/DataStructureInitializer/GridReaderGenerator/GridGenerator.cpp:913: warning: GridGenerator::allocArrays_BoundaryQs has 135 NLOC, 21 CCN, 1339 token, 0 PARAM, 235 length -src/gpu/core/Particles/Particles.cpp:58: warning: initParticles has 156 NLOC, 29 CCN, 2248 token, 1 PARAM, 239 length -src/gpu/core/Calculation/Cp.cpp:224: warning: excludeGridInterfaceNodesForMirror has 55 NLOC, 16 CCN, 899 token, 2 PARAM, 59 length -src/gpu/core/Calculation/Cp.cpp:373: warning: printGeoFile has 132 NLOC, 25 CCN, 1208 token, 2 PARAM, 166 length -src/gpu/core/Parameter/Parameter.cpp:83: warning: Parameter::readConfigData has 175 NLOC, 82 CCN, 1974 token, 1 PARAM, 268 length -src/gpu/core/FindInterface/FindInterface.cpp:3: warning: interpolation has 2320 NLOC, 271 CCN, 22540 token, 16 PARAM, 2893 length -src/gpu/core/Output/UnstructuredGridWriter.hpp:170: warning: UnstructuredGridWriter::writeUnstrucuredGridLT has 86 NLOC, 20 CCN, 978 token, 3 PARAM, 129 length -src/gpu/core/Output/UnstructuredGridWriter.hpp:307: warning: UnstructuredGridWriter::writeUnstrucuredGridLTwithTurbulentViscosity has 89 NLOC, 20 CCN, 1018 token, 3 PARAM, 115 length -src/gpu/core/Output/UnstructuredGridWriter.hpp:430: warning: UnstructuredGridWriter::writeUnstrucuredGridLTwithTurbulentViscosityDebug has 122 NLOC, 20 CCN, 1566 token, 3 PARAM, 146 length -src/gpu/core/Output/UnstructuredGridWriter.hpp:584: warning: UnstructuredGridWriter::writeUnstrucuredGridPM has 86 NLOC, 36 CCN, 1278 token, 3 PARAM, 128 length -src/gpu/core/Output/UnstructuredGridWriter.hpp:720: warning: UnstructuredGridWriter::writeUnstrucuredGridLTConc has 89 NLOC, 20 CCN, 1030 token, 3 PARAM, 112 length -src/gpu/core/Output/UnstructuredGridWriter.hpp:845: warning: UnstructuredGridWriter::writeUnstrucuredGridBig has 169 NLOC, 42 CCN, 2461 token, 4 PARAM, 246 length -src/gpu/core/Output/UnstructuredGridWriter.hpp:1285: warning: UnstructuredGridWriter::writeUnstrucuredGridMedianLT has 86 NLOC, 20 CCN, 965 token, 3 PARAM, 109 length -src/gpu/core/Output/UnstructuredGridWriter.hpp:1403: warning: UnstructuredGridWriter::writeUnstrucuredGridMedianLTConc has 88 NLOC, 20 CCN, 993 token, 3 PARAM, 108 length -src/gpu/core/Output/UnstructuredGridWriter.hpp:1520: warning: UnstructuredGridWriter::writeUnstrucuredGridMedianLTwithDerivationsAndSqaredVelos has 115 NLOC, 20 CCN, 1669 token, 3 PARAM, 138 length -src/gpu/core/Output/UnstructuredGridWriter.hpp:2209: warning: UnstructuredGridWriter::writeQs has 81 NLOC, 30 CCN, 1196 token, 3 PARAM, 96 length -src/gpu/core/Output/UnstructuredGridWriter.hpp:2313: warning: UnstructuredGridWriter::writeQsInflow has 82 NLOC, 31 CCN, 1210 token, 3 PARAM, 97 length -src/gpu/core/Output/UnstructuredGridWriter.hpp:2418: warning: UnstructuredGridWriter::writeQsPressure has 82 NLOC, 31 CCN, 1210 token, 3 PARAM, 97 length -src/gpu/core/Output/FileWriter.cpp:305: warning: FileWriter::writeUnstructuredGridMedianLT has 79 NLOC, 23 CCN, 957 token, 3 PARAM, 101 length -src/gpu/core/Output/InterfaceDebugWriter.hpp:719: warning: InterfaceDebugWriter::writeSendNodesStream has 79 NLOC, 16 CCN, 943 token, 2 PARAM, 96 length -src/gpu/core/Output/VtkSGWriter.hpp:118: warning: VtkSGWriter::writeVTKsgSP has 119 NLOC, 21 CCN, 1071 token, 25 PARAM, 146 length -src/gpu/core/Output/VtkSGWriter.hpp:272: warning: VtkSGWriter::writeVTKsgSPbin has 120 NLOC, 24 CCN, 1229 token, 26 PARAM, 138 length -src/gpu/core/Output/VtkSGWriter.hpp:413: warning: VtkSGWriter::writeVTKmedSPbin has 120 NLOC, 24 CCN, 1252 token, 27 PARAM, 138 length -src/gpu/core/Output/VtkSGWriter.hpp:554: warning: VtkSGWriter::writeVTKsgSPbinTEST has 77 NLOC, 17 CCN, 643 token, 1 PARAM, 85 length -src/gpu/core/Output/VtkSGWriter.hpp:646: warning: VtkSGWriter::writeVTKsgThS has 109 NLOC, 20 CCN, 999 token, 25 PARAM, 125 length -src/gpu/core/Output/VtkSGWriter.hpp:776: warning: VtkSGWriter::writeVTKsgSPbinAS has 125 NLOC, 30 CCN, 1207 token, 28 PARAM, 153 length -src/gpu/core/Output/VtkSGWriter.hpp:932: warning: VtkSGWriter::writeVTKmedSPbinAS has 125 NLOC, 30 CCN, 1233 token, 29 PARAM, 155 length -src/cpu/MultiphaseFlow/LBM/MultiphaseScaleDistributionLBMKernel.cpp:153: warning: MultiphaseScaleDistributionLBMKernel::calculate has 841 NLOC, 95 CCN, 15448 token, 1 PARAM, 4867 length -src/cpu/MultiphaseFlow/LBM/MultiphasePressureFilterLBMKernel.cpp:147: warning: MultiphasePressureFilterLBMKernel::calculate has 1056 NLOC, 38 CCN, 15517 token, 1 PARAM, 1485 length -src/cpu/MultiphaseFlow/LBM/MultiphaseScratchCumulantLBMKernel.cpp:136: warning: MultiphaseScratchCumulantLBMKernel::calculate has 998 NLOC, 15 CCN, 15155 token, 1 PARAM, 2793 length -src/cpu/MultiphaseFlow/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp:147: warning: MultiphasePressureFilterCompressibleAirLBMKernel::calculate has 954 NLOC, 37 CCN, 13902 token, 1 PARAM, 1337 length -src/cpu/MultiphaseFlow/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp:139: warning: MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate has 1183 NLOC, 48 CCN, 17408 token, 1 PARAM, 3150 length -src/cpu/MultiphaseFlow/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.cpp:145: warning: MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate has 1091 NLOC, 20 CCN, 16030 token, 1 PARAM, 2659 length -src/cpu/MultiphaseFlow/LBM/MultiphaseCumulantLBMKernel.cpp:83: warning: MultiphaseCumulantLBMKernel::calculate has 840 NLOC, 21 CCN, 11775 token, 1 PARAM, 1099 length -src/cpu/MultiphaseFlow/LBM/MultiphaseSharpInterfaceLBMKernel.cpp:153: warning: MultiphaseSharpInterfaceLBMKernel::calculate has 780 NLOC, 87 CCN, 13990 token, 1 PARAM, 1305 length -src/cpu/MultiphaseFlow/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp:137: warning: MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate has 1183 NLOC, 14 CCN, 17738 token, 1 PARAM, 2855 length -src/cpu/MultiphaseFlow/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp:151: warning: MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate has 1173 NLOC, 37 CCN, 17390 token, 1 PARAM, 3207 length -src/cpu/MultiphaseFlow/LBM/MultiphaseScaleDistributionLBMKernel.h:138: warning: MultiphaseScaleDistributionLBMKernel::isGas has 33 NLOC, 28 CCN, 282 token, 3 PARAM, 33 length -src/cpu/MultiphaseFlow/SimulationObservers/WriteSharpInterfaceQuantitiesSimulationObserver.cpp:144: warning: WriteSharpInterfaceQuantitiesSimulationObserver::addDataMQ has 151 NLOC, 30 CCN, 2116 token, 1 PARAM, 226 length -src/cpu/MultiphaseFlow/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.cpp:147: warning: WriteMultiphaseQuantitiesSimulationObserver::addDataMQ has 235 NLOC, 37 CCN, 3976 token, 1 PARAM, 329 length -src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseVelocityBC.cpp:177: warning: MultiphaseVelocityBC::init has 82 NLOC, 30 CCN, 907 token, 2 PARAM, 91 length -src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseSlipBCStrategy.cpp:65: warning: MultiphaseSlipBCStrategy::applyBC has 64 NLOC, 29 CCN, 1117 token, 0 PARAM, 79 length -src/cpu/LiggghtsCoupling/LBM/IBcumulantK17LBMKernel.cpp:99: warning: IBcumulantK17LBMKernel::calculate has 502 NLOC, 20 CCN, 7949 token, 1 PARAM, 809 length -src/cpu/LiggghtsCoupling/LBM/IBsharpInterfaceLBMKernel.cpp:173: warning: IBsharpInterfaceLBMKernel::calculate has 919 NLOC, 97 CCN, 17677 token, 1 PARAM, 1367 length -src/cpu/LiggghtsCoupling/SimulationObserver/LiggghtsCouplingSimulationObserver.cpp:92: warning: LiggghtsCouplingSimulationObserver::setSingleSphere3D has 64 NLOC, 21 CCN, 839 token, 5 PARAM, 112 length -src/cpu/NonNewtonianFluids/LBM/RheologyK17LBMKernel.cpp:97: warning: RheologyK17LBMKernel::calculate has 613 NLOC, 16 CCN, 8545 token, 1 PARAM, 1037 length -src/cpu/NonNewtonianFluids/LBM/ThixotropyLBMKernel.cpp:68: warning: ThixotropyLBMKernel::calculate has 1355 NLOC, 14 CCN, 25623 token, 1 PARAM, 1750 length -src/cpu/NonNewtonianFluids/LBM/ThixotropyExpLBMKernel.cpp:68: warning: ThixotropyExpLBMKernel::calculate has 1353 NLOC, 14 CCN, 25585 token, 1 PARAM, 1756 length -src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyVelocityWithDensityBCStrategy.cpp:65: warning: ThixotropyVelocityWithDensityBCStrategy::applyBC has 50 NLOC, 16 CCN, 520 token, 0 PARAM, 67 length -src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyNonReflectingOutflowBCStrategy.cpp:70: warning: ThixotropyNonReflectingOutflowBCStrategy::applyBC has 280 NLOC, 19 CCN, 7096 token, 0 PARAM, 305 length -src/cpu/NonNewtonianFluids/Visitors/RheologyBoundaryConditionsBlockVisitor.cpp:61: warning: BoundaryConditionsBlockVisitor::visit has 63 NLOC, 16 CCN, 551 token, 2 PARAM, 75 length -src/cpu/core/LBM/Interpolation/Interpolator.cpp:77: warning: Interpolator::findNeighborICell has 220 NLOC, 53 CCN, 1748 token, 12 PARAM, 255 length -src/cpu/core/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp:35: warning: IncompressibleCumulantWithSpongeLayerLBMKernel::initRelaxFactor has 74 NLOC, 16 CCN, 597 token, 4 PARAM, 82 length -src/cpu/core/LBM/D3Q27System.h:246: warning: D3Q27System::getDirectionString has 60 NLOC, 27 CCN, 182 token, 1 PARAM, 61 length -src/cpu/core/LBM/D3Q27System.h:308: warning: D3Q27System::setNeighborCoordinatesForDirection has 114 NLOC, 27 CCN, 337 token, 4 PARAM, 115 length -src/cpu/core/LBM/D3Q27System.h:551: warning: D3Q27System::getCompFeqForDirection has 93 NLOC, 28 CCN, 1594 token, 5 PARAM, 94 length -src/cpu/core/LBM/D3Q27System.h:695: warning: D3Q27System::getIncompFeqForDirection has 84 NLOC, 28 CCN, 1472 token, 5 PARAM, 86 length -src/cpu/core/LBM/D3Q27System.h:826: warning: D3Q27System::getBoundaryVelocityForDirection has 61 NLOC, 27 CCN, 676 token, 4 PARAM, 62 length -src/cpu/core/Connectors/CoarseToFineVectorConnector.h:150: warning: CoarseToFineVectorConnector<VectorTransmitter>::CoarseToFineVectorConnector has 23 NLOC, 27 CCN, 227 token, 11 PARAM, 24 length -src/cpu/core/Connectors/CoarseToFineVectorConnector.h:182: warning: CoarseToFineVectorConnector<VectorTransmitter>::isRemoteConnector has 11 NLOC, 16 CCN, 93 token, 0 PARAM, 11 length -src/cpu/core/Connectors/CoarseToFineVectorConnector.h:301: warning: CoarseToFineVectorConnector<VectorTransmitter>::init has 80 NLOC, 35 CCN, 526 token, 0 PARAM, 87 length -src/cpu/core/Connectors/CoarseToFineVectorConnector.h:390: warning: CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors has 311 NLOC, 27 CCN, 3140 token, 0 PARAM, 406 length -src/cpu/core/Connectors/CoarseToFineVectorConnector.h:896: warning: CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors has 592 NLOC, 27 CCN, 6167 token, 0 PARAM, 706 length -src/cpu/core/Connectors/CoarseToFineVectorConnector.h:1634: warning: CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax has 120 NLOC, 73 CCN, 933 token, 6 PARAM, 139 length -src/cpu/core/Connectors/CoarseToFineVectorConnector.h:1775: warning: CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax has 121 NLOC, 73 CCN, 935 token, 7 PARAM, 138 length -src/cpu/core/Connectors/FullDirectConnector.cpp:60: warning: FullDirectConnector::exchangeData has 115 NLOC, 51 CCN, 1071 token, 0 PARAM, 129 length -src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.cpp:64: warning: ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData has 234 NLOC, 51 CCN, 2628 token, 0 PARAM, 256 length -src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.cpp:51: warning: ThreeDistributionsDoubleGhostLayerFullVectorConnector::init has 42 NLOC, 28 CCN, 384 token, 0 PARAM, 50 length -src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.cpp:108: warning: ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData has 230 NLOC, 51 CCN, 2353 token, 0 PARAM, 258 length -src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.cpp:373: warning: ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData has 230 NLOC, 51 CCN, 2353 token, 0 PARAM, 248 length -src/cpu/core/Connectors/TwoDistributionsFullVectorConnector.cpp:51: warning: TwoDistributionsFullVectorConnector::init has 40 NLOC, 28 CCN, 322 token, 0 PARAM, 48 length -src/cpu/core/Connectors/OneDistributionFullVectorConnector.cpp:13: warning: OneDistributionFullVectorConnector::init has 55 NLOC, 28 CCN, 294 token, 0 PARAM, 63 length -src/cpu/core/Connectors/FullVectorConnector.cpp:60: warning: FullVectorConnector::fillData has 177 NLOC, 62 CCN, 979 token, 0 PARAM, 189 length -src/cpu/core/Connectors/FullVectorConnector.cpp:256: warning: FullVectorConnector::distributeData has 175 NLOC, 62 CCN, 925 token, 0 PARAM, 185 length -src/cpu/core/Connectors/FineToCoarseVectorConnector.h:140: warning: FineToCoarseVectorConnector<VectorTransmitter>::FineToCoarseVectorConnector has 22 NLOC, 27 CCN, 187 token, 6 PARAM, 25 length -src/cpu/core/Connectors/FineToCoarseVectorConnector.h:227: warning: FineToCoarseVectorConnector<VectorTransmitter>::init has 57 NLOC, 27 CCN, 373 token, 0 PARAM, 61 length -src/cpu/core/Connectors/FineToCoarseVectorConnector.h:290: warning: FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors has 422 NLOC, 28 CCN, 3315 token, 0 PARAM, 500 length -src/cpu/core/Connectors/FineToCoarseVectorConnector.h:856: warning: FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors has 233 NLOC, 27 CCN, 1623 token, 0 PARAM, 262 length -src/cpu/core/Connectors/FineToCoarseVectorConnector.h:1164: warning: FineToCoarseVectorConnector<VectorTransmitter>::getLocalMinMax has 120 NLOC, 73 CCN, 933 token, 6 PARAM, 140 length -src/cpu/core/Connectors/FineToCoarseVectorConnector.h:1306: warning: FineToCoarseVectorConnector<VectorTransmitter>::getLocalMinMax has 121 NLOC, 73 CCN, 935 token, 7 PARAM, 139 length -src/cpu/core/Connectors/FineToCoarseVectorConnector.h:1458: warning: FineToCoarseVectorConnector<VectorTransmitter>::getLocalMins has 74 NLOC, 37 CCN, 312 token, 6 PARAM, 101 length -src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.cpp:62: warning: TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData has 234 NLOC, 51 CCN, 2628 token, 0 PARAM, 256 length -src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.cpp:51: warning: TwoDistributionsDoubleGhostLayerFullVectorConnector::init has 41 NLOC, 28 CCN, 358 token, 0 PARAM, 49 length -src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.cpp:107: warning: TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData has 230 NLOC, 51 CCN, 2353 token, 0 PARAM, 258 length -src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.cpp:372: warning: TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData has 230 NLOC, 51 CCN, 2353 token, 0 PARAM, 248 length -src/cpu/core/Connectors/ThreeDistributionsFullVectorConnector.cpp:51: warning: ThreeDistributionsFullVectorConnector::init has 41 NLOC, 28 CCN, 348 token, 0 PARAM, 49 length -src/cpu/core/Interactors/D3Q27Interactor.cpp:286: warning: D3Q27Interactor::setDifferencesToGbObject3D has 233 NLOC, 55 CCN, 2007 token, 1 PARAM, 289 length -src/cpu/core/Interactors/D3Q27Interactor.cpp:576: warning: D3Q27Interactor::addQsLineSet has 180 NLOC, 35 CCN, 1190 token, 2 PARAM, 192 length -src/cpu/core/Interactors/D3Q27Interactor.cpp:769: warning: D3Q27Interactor::getQsLineSet has 213 NLOC, 71 CCN, 1422 token, 0 PARAM, 223 length -src/cpu/core/Interactors/D3Q27TriFaceMeshInteractor.cpp:123: warning: D3Q27TriFaceMeshInteractor::setQs has 290 NLOC, 46 CCN, 3345 token, 1 PARAM, 454 length -src/cpu/core/Interactors/D3Q27TriFaceMeshInteractor.cpp:592: warning: D3Q27TriFaceMeshInteractor::initInteractor2 has 389 NLOC, 62 CCN, 4303 token, 1 PARAM, 719 length -src/cpu/core/Interactors/D3Q27TriFaceMeshInteractor.cpp:1312: warning: D3Q27TriFaceMeshInteractor::refineBlockGridToLevel has 129 NLOC, 26 CCN, 1733 token, 3 PARAM, 181 length -src/cpu/core/Interactors/Interactor3D.cpp:107: warning: Interactor3D::isBlockOutsideGeoObject has 33 NLOC, 21 CCN, 406 token, 7 PARAM, 39 length -src/cpu/core/Interactors/Interactor3D.cpp:147: warning: Interactor3D::isBlockInsideGeoObject has 33 NLOC, 21 CCN, 405 token, 7 PARAM, 39 length -src/cpu/core/Interactors/Interactor3D.cpp:187: warning: Interactor3D::isBlockCuttingGeoObject has 33 NLOC, 21 CCN, 405 token, 7 PARAM, 39 length -src/cpu/core/Parallel/SimpleGeometricPartitioner.h:21: warning: SimpleGeometricPartitioner::createDimensions has 59 NLOC, 20 CCN, 414 token, 4 PARAM, 69 length -src/cpu/core/SimulationObservers/InSituCatalystSimulationObserver.cpp:92: warning: InSituCatalystSimulationObserver::addData has 63 NLOC, 16 CCN, 655 token, 1 PARAM, 76 length -src/cpu/core/SimulationObservers/InSituCatalystSimulationObserver.cpp:209: warning: InSituCatalystSimulationObserver::addVTKGridData has 97 NLOC, 21 CCN, 1115 token, 1 PARAM, 126 length -src/cpu/core/SimulationObservers/MPIIOMigrationBESimulationObserver.cpp:855: warning: MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::write4DArray.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::write4DArray.MPIIOMigrationBESimulationObserver::write3DArray.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::write4DArray.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::write4DArray.MPIIOMigrationBESimulationObserver::write3DArray.MPIIOMigrationBESimulationObserver::writeBoundaryConds.MPIIOMigrationBESimulationObserver::blocksExchange has 110 NLOC, 21 CCN, 939 token, 6 PARAM, 132 length -src/cpu/core/SimulationObservers/InSituVTKSimulationObserver.cpp:125: warning: InSituVTKSimulationObserver::addData has 101 NLOC, 21 CCN, 1188 token, 1 PARAM, 136 length -src/cpu/core/SimulationObservers/WriteMQFromSelectionSimulationObserver.cpp:111: warning: WriteMQFromSelectionSimulationObserver::addDataMQ has 74 NLOC, 16 CCN, 756 token, 1 PARAM, 103 length -src/cpu/core/SimulationObservers/QCriterionSimulationObserver.cpp:205: warning: QCriterionSimulationObserver::getNeighborVelocities has 103 NLOC, 30 CCN, 1174 token, 9 PARAM, 143 length -src/cpu/core/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.cpp:144: warning: WriteMacroscopicQuantitiesSimulationObserver::addDataMQ has 79 NLOC, 18 CCN, 1004 token, 1 PARAM, 135 length -src/cpu/core/SimulationObservers/PressureCoefficientSimulationObserver.cpp:43: warning: PressureCoefficientSimulationObserver::calculateRho has 68 NLOC, 16 CCN, 642 token, 0 PARAM, 79 length -src/cpu/core/SimulationObservers/LineTimeSeriesSimulationObserver.cpp:89: warning: LineTimeSeriesSimulationObserver::collectData has 111 NLOC, 26 CCN, 957 token, 0 PARAM, 116 length -src/cpu/core/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.cpp:144: warning: WriteMacroscopicQuantitiesPlusMassSimulationObserver::addDataMQ has 79 NLOC, 19 CCN, 1016 token, 1 PARAM, 135 length -src/cpu/core/SimulationObservers/TimeAveragedValuesSimulationObserver.cpp:193: warning: TimeAveragedValuesSimulationObserver::addData has 126 NLOC, 18 CCN, 1543 token, 1 PARAM, 161 length -src/cpu/core/SimulationObservers/TimeAveragedValuesSimulationObserver.cpp:579: warning: TimeAveragedValuesSimulationObserver::calculateAverageValues.TimeAveragedValuesSimulationObserver::planarAverage has 97 NLOC, 19 CCN, 805 token, 1 PARAM, 122 length -src/cpu/core/SimulationObservers/ShearStressSimulationObserver.cpp:413: warning: ShearStressSimulationObserver::findPlane has 399 NLOC, 122 CCN, 3322 token, 10 PARAM, 417 length -src/cpu/core/SimulationObservers/ShearStressSimulationObserver.cpp:845: warning: ShearStressSimulationObserver::initDistance has 85 NLOC, 24 CCN, 739 token, 0 PARAM, 109 length -src/cpu/core/Data/D3Q27EsoTwist3DSplittedVector.cpp:199: warning: D3Q27EsoTwist3DSplittedVector::setPostCollisionDistributionForDirection has 59 NLOC, 28 CCN, 1083 token, 5 PARAM, 60 length -src/cpu/core/Data/D3Q27EsoTwist3DSplittedVector.cpp:260: warning: D3Q27EsoTwist3DSplittedVector::setPostCollisionDistributionForDirection has 90 NLOC, 28 CCN, 772 token, 5 PARAM, 91 length -src/cpu/core/Data/D3Q27EsoTwist3DSplittedVector.cpp:352: warning: D3Q27EsoTwist3DSplittedVector::setPreCollisionDistributionForDirection has 59 NLOC, 28 CCN, 1083 token, 5 PARAM, 60 length -src/cpu/core/Data/D3Q27EsoTwist3DSplittedVector.cpp:413: warning: D3Q27EsoTwist3DSplittedVector::setPreCollisionDistributionForDirection has 90 NLOC, 28 CCN, 774 token, 5 PARAM, 91 length -src/cpu/core/Data/D3Q27EsoTwist3DSplittedVector.cpp:505: warning: D3Q27EsoTwist3DSplittedVector::getPreCollisionDistributionForDirection has 62 NLOC, 28 CCN, 688 token, 4 PARAM, 63 length -src/cpu/core/Data/D3Q27EsoTwist3DSplittedVector.cpp:569: warning: D3Q27EsoTwist3DSplittedVector::getDistributionInvForDirection has 62 NLOC, 28 CCN, 688 token, 4 PARAM, 63 length -src/cpu/core/Simulation/Simulation.cpp:128: warning: Simulation::initRemoteConnectors has 50 NLOC, 16 CCN, 435 token, 0 PARAM, 67 length -src/cpu/core/Simulation/Simulation.cpp:245: warning: Simulation::run has 59 NLOC, 20 CCN, 452 token, 0 PARAM, 110 length -src/cpu/core/Simulation/Grid3D.cpp:181: warning: Grid3D::getBlock has 29 NLOC, 21 CCN, 316 token, 4 PARAM, 32 length -src/cpu/core/Simulation/Grid3D.cpp:1103: warning: Grid3D::getNeighborBlocksForDirection has 87 NLOC, 27 CCN, 641 token, 7 PARAM, 88 length -src/cpu/core/Simulation/Grid3D.cpp:1209: warning: Grid3D::getSubBlocksZero has 50 NLOC, 17 CCN, 510 token, 6 PARAM, 58 length -src/cpu/core/Simulation/Grid3D.cpp:1268: warning: Grid3D::getNeighborBlocksForDirectionWithREST has 90 NLOC, 28 CCN, 663 token, 7 PARAM, 91 length -src/cpu/core/BoundaryConditions/BoundaryConditions.h:194: warning: BoundaryConditions::getBoundaryVelocity has 62 NLOC, 27 CCN, 661 token, 1 PARAM, 63 length -src/cpu/core/BoundaryConditions/VelocityBC.cpp:201: warning: VelocityBC::init has 77 NLOC, 30 CCN, 901 token, 2 PARAM, 85 length -src/cpu/core/BoundaryConditions/SimpleSlipBCStrategy.cpp:59: warning: SimpleSlipBCStrategy::applyBC has 56 NLOC, 29 CCN, 928 token, 0 PARAM, 62 length -src/cpu/core/BoundaryConditions/SlipBCStrategy.cpp:21: warning: SlipBCStrategy::applyBC has 57 NLOC, 29 CCN, 1020 token, 0 PARAM, 64 length -src/cpu/core/Visitors/SetInterpolationConnectorsBlockVisitor.cpp:73: warning: SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors has 221 NLOC, 101 CCN, 2901 token, 2 PARAM, 264 length -src/cpu/core/Visitors/SetInterpolationConnectorsBlockVisitor.cpp:338: warning: SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors has 67 NLOC, 22 CCN, 678 token, 6 PARAM, 72 length -src/cpu/core/Visitors/SetUndefinedNodesBlockVisitor.cpp:16: warning: SetUndefinedNodesBlockVisitor::visit has 630 NLOC, 119 CCN, 4504 token, 2 PARAM, 653 length -src/cpu/core/Visitors/SetInterpolationDirsBlockVisitor.cpp:12: warning: SetInterpolationDirsBlockVisitor::visit has 128 NLOC, 46 CCN, 822 token, 2 PARAM, 133 length -src/cpu/core/Visitors/InitDistributionsWithInterpolationGridVisitor.cpp:26: warning: InitDistributionsWithInterpolationGridVisitor::visit has 57 NLOC, 19 CCN, 479 token, 1 PARAM, 69 length -src/basics/utilities/Vector3D.cpp:274: warning: Vector3D::GetBarycentrics has 154 NLOC, 25 CCN, 1462 token, 5 PARAM, 186 length -src/basics/writer/WbWriterAvsASCII.cpp:219: warning: WbWriterAvsASCII::writeQuadsWithNodeData has 104 NLOC, 17 CCN, 1162 token, 5 PARAM, 131 length -src/basics/writer/WbWriterAvsASCII.cpp:351: warning: WbWriterAvsASCII::writeQuadsWithCellData has 106 NLOC, 17 CCN, 1166 token, 5 PARAM, 134 length -src/basics/writer/WbWriterAvsASCII.cpp:486: warning: WbWriterAvsASCII::writeQuadsWithNodeAndCellData has 140 NLOC, 25 CCN, 1567 token, 7 PARAM, 181 length -src/basics/writer/WbWriterAvsASCII.cpp:741: warning: WbWriterAvsASCII::writeTrianglesWithNodeData has 105 NLOC, 17 CCN, 1146 token, 5 PARAM, 132 length -src/basics/writer/WbWriterAvsASCII.cpp:874: warning: WbWriterAvsASCII::writeOctsWithCellData has 112 NLOC, 17 CCN, 1286 token, 5 PARAM, 140 length -src/basics/writer/WbWriterAvsASCII.cpp:1015: warning: WbWriterAvsASCII::writeOctsWithNodeData has 116 NLOC, 19 CCN, 1334 token, 5 PARAM, 144 length -src/basics/writer/WbWriterVtkBinary.cpp:373: warning: WbWriterVtkBinary::writeQuadsWithNodeAndCellData has 105 NLOC, 19 CCN, 1147 token, 7 PARAM, 128 length -src/basics/writer/WbWriterAvsBinary.cpp:389: warning: WbWriterAvsBinary::writeTrianglesWithNodeData has 105 NLOC, 17 CCN, 1144 token, 5 PARAM, 132 length -src/basics/writer/WbWriterAvsBinary.cpp:522: warning: WbWriterAvsBinary::writeQuadsWithNodeData has 105 NLOC, 17 CCN, 1162 token, 5 PARAM, 132 length -src/basics/writer/WbWriterAvsBinary.cpp:655: warning: WbWriterAvsBinary::writeQuadsWithCellData has 105 NLOC, 17 CCN, 1164 token, 5 PARAM, 133 length -src/basics/writer/WbWriterAvsBinary.cpp:789: warning: WbWriterAvsBinary::writeQuadsWithNodeAndCellData has 139 NLOC, 25 CCN, 1565 token, 7 PARAM, 180 length -src/basics/writer/WbWriterAvsBinary.cpp:970: warning: WbWriterAvsBinary::writeOctsWithCellData has 112 NLOC, 17 CCN, 1284 token, 5 PARAM, 140 length -src/basics/writer/WbWriterAvsBinary.cpp:1111: warning: WbWriterAvsBinary::writeOctsWithNodeData has 116 NLOC, 19 CCN, 1332 token, 5 PARAM, 144 length -src/basics/geometry3d/KdTree/splitalgorithms/KdSAHSplit.h:162: warning: Kd::SAHSplit::findPossibleSplitCandidates has 37 NLOC, 18 CCN, 440 token, 3 PARAM, 61 length -src/basics/geometry3d/GbObject3D.cpp:59: warning: GbObject3D::isCellCuttingGbObject3D has 15 NLOC, 17 CCN, 232 token, 6 PARAM, 15 length -src/basics/geometry3d/GbTriangularMesh3D.cpp:156: warning: GbTriangularMesh3D::deleteRedundantNodes has 78 NLOC, 17 CCN, 740 token, 0 PARAM, 85 length -src/basics/geometry3d/GbTriangularMesh3D.cpp:1339: warning: GbTriangularMesh3D::InTri2D has 21 NLOC, 34 CCN, 368 token, 2 PARAM, 30 length -src/basics/geometry3d/GbTriangularMesh3D.cpp:1426: warning: GbTriangularMesh3D::SegTriCross has 27 NLOC, 25 CCN, 358 token, 3 PARAM, 42 length -src/basics/geometry3d/GbMeshTools3D.h:70: warning: GbMeshTools3D::triBoxOverlap has 159 NLOC, 35 CCN, 1686 token, 3 PARAM, 245 length -src/basics/geometry3d/GbTriFaceMesh3D.cpp:150: warning: GbTriFaceMesh3D::deleteRedundantNodes has 69 NLOC, 18 CCN, 589 token, 0 PARAM, 127 length -src/basics/geometry3d/GbHalfSpaceKrischan3D.cpp:100: warning: GbHalfSpaceKrischan3D::getCellVolumeInsideGbObject3D has 117 NLOC, 27 CCN, 1378 token, 6 PARAM, 203 length -src/basics/geometry3d/GbVoxelMatrix3D.cpp:173: warning: GbVoxelMatrix3D::getIntersectionRaytraceFactor has 36 NLOC, 26 CCN, 533 token, 6 PARAM, 43 length -src/basics/geometry3d/GbVoxelMatrix3D.cpp:722: warning: GbVoxelMatrix3D::rotateAroundY has 44 NLOC, 20 CCN, 411 token, 1 PARAM, 63 length -src/basics/geometry3d/GbSystem3D.cpp:47: warning: GbSystem3D::calculateIntersectionPoint3D has 55 NLOC, 22 CCN, 634 token, 4 PARAM, 60 length -src/basics/geometry3d/GbSystem3D.cpp:109: warning: GbSystem3D::hasIntersectionPoint3D has 55 NLOC, 22 CCN, 626 token, 4 PARAM, 59 length -src/basics/geometry3d/GbSystem3D.cpp:202: warning: GbSystem3D::createClipLine3D has 119 NLOC, 22 CCN, 1168 token, 8 PARAM, 147 length -src/basics/geometry3d/GbSystem3D.cpp:687: warning: GbSystem3D::clipPolygon3D has 256 NLOC, 53 CCN, 3060 token, 7 PARAM, 292 length -src/basics/geometry3d/GbSystem3D.cpp:980: warning: GbSystem3D::clipRectangle3D has 50 NLOC, 16 CCN, 388 token, 8 PARAM, 53 length -src/basics/geometry3d/GbVector3D.cpp:308: warning: GbVector3D::GetBarycentrics has 156 NLOC, 25 CCN, 1574 token, 5 PARAM, 181 length -src/basics/geometry3d/GbSphere3D.cpp:760: warning: GbSphere3D::getCellVolumeInsideGbObject3DHelperFunction has 113 NLOC, 27 CCN, 1309 token, 6 PARAM, 155 length -src/basics/geometry3d/GbCylinder3D.cpp:114: warning: GbCylinder3D::calculateValues has 47 NLOC, 17 CCN, 407 token, 0 PARAM, 52 length -src/basics/geometry3d/GbCylinder3D.cpp:252: warning: GbCylinder3D::isPointInGbObject3D has 23 NLOC, 21 CCN, 278 token, 4 PARAM, 31 length -src/basics/geometry3d/GbCylinder3D.cpp:325: warning: GbCylinder3D::isCellInsideOrCuttingGbObject3D has 59 NLOC, 31 CCN, 657 token, 6 PARAM, 78 length -src/basics/geometry3d/GbCylinder3D.cpp:404: warning: GbCylinder3D::createClippedLine3D has 250 NLOC, 48 CCN, 3201 token, 2 PARAM, 301 length -src/basics/geometry3d/GbCylinder3D.cpp:1155: warning: GbCylinder3D::getIntersectionRaytraceFactor has 138 NLOC, 54 CCN, 1319 token, 6 PARAM, 189 length -src/basics/geometry3d/GbTriangle3D.cpp:645: warning: GbTriangle3D::enclosesPoint2D has 79 NLOC, 30 CCN, 640 token, 2 PARAM, 88 length -src/basics/geometry3d/GbTriangle3D.cpp:965: warning: GbTriangle3D::getDistanceFromPoint has 171 NLOC, 26 CCN, 1453 token, 1 PARAM, 184 length diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingInflowBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingInflowBCStrategy.cpp deleted file mode 100644 index 066f59c00..000000000 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingInflowBCStrategy.cpp +++ /dev/null @@ -1,340 +0,0 @@ -//======================================================================================= -// ____ ____ __ ______ __________ __ __ __ __ -// \ \ | | | | | _ \ |___ ___| | | | | / \ | | -// \ \ | | | | | |_) | | | | | | | / \ | | -// \ \ | | | | | _ / | | | | | | / /\ \ | | -// \ \ | | | | | | \ \ | | | \__/ | / ____ \ | |____ -// \ \ | | |__| |__| \__\ |__| \________/ /__/ \__\ |_______| -// \ \ | | ________________________________________________________________ -// \ \ | | | ______________________________________________________________| -// \ \| | | | __ __ __ __ ______ _______ -// \ | | |_____ | | | | | | | | | _ \ / _____) -// \ | | _____| | | | | | | | | | | \ \ \_______ -// \ | | | | |_____ | \_/ | | | | |_/ / _____ | -// \ _____| |__| |________| \_______/ |__| |______/ (_______/ -// -// This file is part of VirtualFluids. VirtualFluids is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// VirtualFluids is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// for more details. -// -// You should have received a copy of the GNU General Public License along -// with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. -// -//! \file NonReflectingInflowBCStrategy.cpp -//! \ingroup BoundarConditions -//! \author Hussein Alihussein -//======================================================================================= -#include "NonReflectingInflowBCStrategy.h" - -#include "BoundaryConditions.h" -#include "D3Q27System.h" -#include "DistributionArray3D.h" - -NonReflectingInflowBCStrategy::NonReflectingInflowBCStrategy() -{ - BCStrategy::preCollision = true; -} -////////////////////////////////////////////////////////////////////////// -NonReflectingInflowBCStrategy::~NonReflectingInflowBCStrategy() = default; -////////////////////////////////////////////////////////////////////////// -SPtr<BCStrategy> NonReflectingInflowBCStrategy::clone() -{ - SPtr<BCStrategy> bc(new NonReflectingInflowBCStrategy()); - return bc; -} -////////////////////////////////////////////////////////////////////////// -void NonReflectingInflowBCStrategy::addDistributions(SPtr<DistributionArray3D> distributions) -{ - this->distributions = distributions; -} -////////////////////////////////////////////////////////////////////////// -void NonReflectingInflowBCStrategy::applyBC() -{ - using namespace vf::lbm::dir; - using namespace D3Q27System; - // using namespace UbMath; - using namespace vf::basics::constant; - - LBMReal f[ENDF + 1]; - LBMReal ftemp[ENDF + 1]; - - int nx1 = x1; - int nx2 = x2; - int nx3 = x3; - int direction = -1; - - // flag points in direction of fluid - if (bcPtr->hasDensityBoundaryFlag(DIR_P00)) { - nx1 += 1; - direction = DIR_P00; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_M00)) { - nx1 -= 1; - direction = DIR_M00; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_0P0)) { - nx2 += 1; - direction = DIR_0P0; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_0M0)) { - nx2 -= 1; - direction = DIR_0M0; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_00P)) { - nx3 += 1; - direction = DIR_00P; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_00M)) { - nx3 -= 1; - direction = DIR_00M; - } else - UB_THROW(UbException(UB_EXARGS, "Danger...no orthogonal BC-Flag on density boundary...")); - - distributions->getDistribution(f, x1, x2, x3); - distributions->getDistribution(ftemp, nx1, nx2, nx3); - - LBMReal rho, vx1, vx2, vx3; - calcMacrosFct(f, rho, vx1, vx2, vx3); - //vx1 = 0.; - LBMReal BCVeloWeight = c1o2; - // LBMReal velocity = 0.004814077025232405; - // LBMReal velocity = 0.00057735; - //LBMReal velocity = 0.04; - // LBMReal velocity = 0.01; - // LBMReal velocity = 1./112.; - // LBMReal velocity = 1./126.; - LBMReal velocity = c1o100/2; - // LBMReal velocity = 0.005; - //LBMReal delf =(-velocity+vx1)*0.5 ; - LBMReal delf; - - switch (direction) { - case DIR_P00: - delf = (-velocity + vx1) * BCVeloWeight; - // delf = (-velocity ) * BCVeloWeight; - f[DIR_P00] = ftemp[DIR_P00] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_P00] - delf* WEIGTH[DIR_P00]; - f[DIR_PP0] = ftemp[DIR_PP0] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PP0]- delf* WEIGTH[DIR_PP0]; - f[DIR_PM0] = ftemp[DIR_PM0] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PM0]- delf* WEIGTH[DIR_PM0]; - f[DIR_P0P] = ftemp[DIR_P0P] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_P0P]- delf* WEIGTH[DIR_P0P]; - f[DIR_P0M] = ftemp[DIR_P0M] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_P0M]- delf* WEIGTH[DIR_P0M]; - f[DIR_PPP] = ftemp[DIR_PPP] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PPP]- delf* WEIGTH[DIR_PPP]; - f[DIR_PMP] = ftemp[DIR_PMP] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PMP]- delf* WEIGTH[DIR_PMP]; - f[DIR_PPM] = ftemp[DIR_PPM] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PPM]- delf* WEIGTH[DIR_PPM]; - f[DIR_PMM] = ftemp[DIR_PMM] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PMM]- delf* WEIGTH[DIR_PMM]; - //f[DIR_P00] = (ftemp[DIR_P00] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_P00]) * - // (1 - BCVeloWeight) + - // (ftemp[DIR_M00] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_M00] + - // velocity*(6)*WEIGTH[DIR_P00]/* bcPtr->getBoundaryVelocity(INVDIR[DIR_M00])*/) * - // (BCVeloWeight) ; - //f[DIR_PP0] = (ftemp[DIR_PP0] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_PP0]) * - // (1 - BCVeloWeight) + - // (ftemp[DIR_MM0] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_MM0] + - // velocity * (6) * WEIGTH[DIR_PP0] /*bcPtr->getBoundaryVelocity(INVDIR[DIR_MM0])*/) * - // (BCVeloWeight); - //f[DIR_PM0] = (ftemp[DIR_PM0] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_PM0]) * - // (1 - BCVeloWeight) + - // (ftemp[DIR_MP0] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_MP0] + - // velocity*(6)*WEIGTH[DIR_PP0]/* bcPtr->getBoundaryVelocity(INVDIR[DIR_MP0])*/) * - // (BCVeloWeight); - //f[DIR_P0P] = (ftemp[DIR_P0P] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_P0P]) * - // (1 - BCVeloWeight) + - // (ftemp[DIR_M0M] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_M0M] + - // velocity*(6)*WEIGTH[DIR_P0P]/* bcPtr->getBoundaryVelocity(INVDIR[DIR_M0M])*/) * - // (BCVeloWeight); - //f[DIR_P0M] = (ftemp[DIR_P0M] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_P0M])* - // (1 - BCVeloWeight) + - // (ftemp[DIR_M0P] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_M0P] + - // velocity*(6)*WEIGTH[DIR_P0M]/* bcPtr->getBoundaryVelocity(INVDIR[DIR_M0P])*/) * - // (BCVeloWeight); - //f[DIR_PPP] = (ftemp[DIR_PPP] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_PPP])* - // (1 - BCVeloWeight) + - // (ftemp[DIR_MMM] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_MMM] + - // velocity * (6) * WEIGTH[DIR_PPP] /* bcPtr->getBoundaryVelocity(INVDIR[DIR_MMM])*/) * - // (BCVeloWeight); - //f[DIR_PMP] = (ftemp[DIR_PMP] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_PMP]) * - // (1 - BCVeloWeight) + - // (ftemp[DIR_MPM] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_MPM] + - // velocity * (6) * WEIGTH[DIR_PPP] /*bcPtr->getBoundaryVelocity(INVDIR[DIR_MPM])*/) * - // (BCVeloWeight); - //f[DIR_PPM] = (ftemp[DIR_PPM] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_PPM]) * - // (1 - BCVeloWeight) + - // (ftemp[DIR_MMP] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_MMP] + - // velocity * (6) * WEIGTH[DIR_PPP] /* bcPtr->getBoundaryVelocity(INVDIR[DIR_MMP])*/) * - // (BCVeloWeight); - //f[DIR_PMM] = (ftemp[DIR_PMM] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_PMM]) * - // (1 - BCVeloWeight) + - // (ftemp[DIR_MPP] * (one_over_sqrt3 + vx1) + (1.0 - one_over_sqrt3 - vx1) * f[DIR_MPP] + - // velocity * (6) * WEIGTH[DIR_PPP] /* bcPtr->getBoundaryVelocity(INVDIR[DIR_MPP])*/) * - // (BCVeloWeight); - - distributions->setDistributionInvForDirection(f[DIR_P00], x1 + DX1[DIR_M00], x2 + DX2[DIR_M00], x3 + DX3[DIR_M00], DIR_M00); - distributions->setDistributionInvForDirection(f[DIR_PP0], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0); - distributions->setDistributionInvForDirection(f[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0); - distributions->setDistributionInvForDirection(f[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M); - distributions->setDistributionInvForDirection(f[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P); - distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); - distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); - distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); - distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); - break; - case DIR_M00: - delf = (-velocity - vx1) * BCVeloWeight; - f[DIR_M00] = ftemp[DIR_M00] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_M00] - - delf * WEIGTH[DIR_M00]; - f[DIR_MP0] = ftemp[DIR_MP0] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MP0] - - delf * WEIGTH[DIR_MP0]; - f[DIR_MM0] = ftemp[DIR_MM0] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MM0] - - delf * WEIGTH[DIR_MM0]; - f[DIR_M0P] = ftemp[DIR_M0P] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_M0P] - - delf * WEIGTH[DIR_M0P]; - f[DIR_M0M] = ftemp[DIR_M0M] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_M0M] - - delf * WEIGTH[DIR_M0M]; - f[DIR_MPP] = ftemp[DIR_MPP] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MPP] - - delf * WEIGTH[DIR_MPP]; - f[DIR_MMP] = ftemp[DIR_MMP] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MMP] - - delf * WEIGTH[DIR_MMP]; - f[DIR_MPM] = ftemp[DIR_MPM] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MPM] - - delf * WEIGTH[DIR_MPM]; - f[DIR_MMM] = ftemp[DIR_MMM] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MMM] - - delf * WEIGTH[DIR_MMM]; - - distributions->setDistributionInvForDirection(f[DIR_M00], x1 + DX1[DIR_P00], x2 + DX2[DIR_P00], x3 + DX3[DIR_P00], DIR_P00); - distributions->setDistributionInvForDirection(f[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0); - distributions->setDistributionInvForDirection(f[DIR_MM0], x1 + DX1[DIR_PP0], x2 + DX2[DIR_PP0], x3 + DX3[DIR_PP0], DIR_PP0); - distributions->setDistributionInvForDirection(f[DIR_M0P], x1 + DX1[DIR_P0M], x2 + DX2[DIR_P0M], x3 + DX3[DIR_P0M], DIR_P0M); - distributions->setDistributionInvForDirection(f[DIR_M0M], x1 + DX1[DIR_P0P], x2 + DX2[DIR_P0P], x3 + DX3[DIR_P0P], DIR_P0P); - distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); - distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); - distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); - distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); - break; - case DIR_0P0: - delf = (-velocity + vx2) * BCVeloWeight; - f[DIR_0P0] = ftemp[DIR_0P0] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_0P0] - - delf * WEIGTH[DIR_0P0]; - f[DIR_PP0] = ftemp[DIR_PP0] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_PP0] - - delf * WEIGTH[DIR_PP0]; - f[DIR_MP0] = ftemp[DIR_MP0] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_MP0] - - delf * WEIGTH[DIR_MP0]; - f[DIR_0PP] = ftemp[DIR_0PP] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_0PP] - - delf * WEIGTH[DIR_0PP]; - f[DIR_0PM] = ftemp[DIR_0PM] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_0PM] - - delf * WEIGTH[DIR_0PM]; - f[DIR_PPP] = ftemp[DIR_PPP] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_PPP] - - delf * WEIGTH[DIR_PPP]; - f[DIR_MPP] = ftemp[DIR_MPP] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_MPP] - - delf * WEIGTH[DIR_MPP]; - f[DIR_PPM] = ftemp[DIR_PPM] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_PPM] - - delf * WEIGTH[DIR_PPM]; - f[DIR_MPM] = ftemp[DIR_MPM] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_MPM] - - delf * WEIGTH[DIR_MPM]; - - distributions->setDistributionInvForDirection(f[DIR_0P0], x1 + DX1[DIR_0M0], x2 + DX2[DIR_0M0], x3 + DX3[DIR_0M0], DIR_0M0); - distributions->setDistributionInvForDirection(f[DIR_PP0], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0); - distributions->setDistributionInvForDirection(f[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0); - distributions->setDistributionInvForDirection(f[DIR_0PP], x1 + DX1[DIR_0MM], x2 + DX2[DIR_0MM], x3 + DX3[DIR_0MM], DIR_0MM); - distributions->setDistributionInvForDirection(f[DIR_0PM], x1 + DX1[DIR_0MP], x2 + DX2[DIR_0MP], x3 + DX3[DIR_0MP], DIR_0MP); - distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); - distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); - distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); - distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); - break; - case DIR_0M0: - delf = (-velocity - vx2) * BCVeloWeight; - f[DIR_0M0] = ftemp[DIR_0M0] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_0M0] - - delf * WEIGTH[DIR_0M0]; - f[DIR_PM0] = ftemp[DIR_PM0] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_PM0] - - delf * WEIGTH[DIR_PM0]; - f[DIR_MM0] = ftemp[DIR_MM0] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_MM0] - - delf * WEIGTH[DIR_MM0]; - f[DIR_0MP] = ftemp[DIR_0MP] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_0MP] - - delf * WEIGTH[DIR_0MP]; - f[DIR_0MM] = ftemp[DIR_0MM] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_0MM] - - delf * WEIGTH[DIR_0MM]; - f[DIR_PMP] = ftemp[DIR_PMP] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_PMP] - - delf * WEIGTH[DIR_PMP]; - f[DIR_MMP] = ftemp[DIR_MMP] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_MMP] - - delf * WEIGTH[DIR_MMP]; - f[DIR_PMM] = ftemp[DIR_PMM] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_PMM] - - delf * WEIGTH[DIR_PMM]; - f[DIR_MMM] = ftemp[DIR_MMM] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_MMM] - - delf * WEIGTH[DIR_MMM]; - - distributions->setDistributionInvForDirection(f[DIR_0M0], x1 + DX1[DIR_0P0], x2 + DX2[DIR_0P0], x3 + DX3[DIR_0P0], DIR_0P0); - distributions->setDistributionInvForDirection(f[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0); - distributions->setDistributionInvForDirection(f[DIR_MM0], x1 + DX1[DIR_PP0], x2 + DX2[DIR_PP0], x3 + DX3[DIR_PP0], DIR_PP0); - distributions->setDistributionInvForDirection(f[DIR_0MP], x1 + DX1[DIR_0PM], x2 + DX2[DIR_0PM], x3 + DX3[DIR_0PM], DIR_0PM); - distributions->setDistributionInvForDirection(f[DIR_0MM], x1 + DX1[DIR_0PP], x2 + DX2[DIR_0PP], x3 + DX3[DIR_0PP], DIR_0PP); - distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); - distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); - distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); - distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); - break; - case DIR_00P: - delf = (-velocity + vx3) * BCVeloWeight; - f[DIR_00P] = ftemp[DIR_00P] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_00P] - - delf * WEIGTH[DIR_00P]; - f[DIR_P0P] = ftemp[DIR_P0P] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_P0P] - - delf * WEIGTH[DIR_P0P]; - f[DIR_M0P] = ftemp[DIR_M0P] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_M0P] - - delf * WEIGTH[DIR_M0P]; - f[DIR_0PP] = ftemp[DIR_0PP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_0PP] - - delf * WEIGTH[DIR_0PP]; - f[DIR_0MP] = ftemp[DIR_0MP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_0MP] - - delf * WEIGTH[DIR_0MP]; - f[DIR_PPP] = ftemp[DIR_PPP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_PPP] - - delf * WEIGTH[DIR_PPP]; - f[DIR_MPP] = ftemp[DIR_MPP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_MPP] - - delf * WEIGTH[DIR_MPP]; - f[DIR_PMP] = ftemp[DIR_PMP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_PMP] - - delf * WEIGTH[DIR_PMP]; - f[DIR_MMP] = ftemp[DIR_MMP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_MMP] - - delf * WEIGTH[DIR_MMP]; - - distributions->setDistributionInvForDirection(f[DIR_00P], x1 + DX1[DIR_00M], x2 + DX2[DIR_00M], x3 + DX3[DIR_00M], DIR_00M); - distributions->setDistributionInvForDirection(f[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M); - distributions->setDistributionInvForDirection(f[DIR_M0P], x1 + DX1[DIR_P0M], x2 + DX2[DIR_P0M], x3 + DX3[DIR_P0M], DIR_P0M); - distributions->setDistributionInvForDirection(f[DIR_0PP], x1 + DX1[DIR_0MM], x2 + DX2[DIR_0MM], x3 + DX3[DIR_0MM], DIR_0MM); - distributions->setDistributionInvForDirection(f[DIR_0MP], x1 + DX1[DIR_0PM], x2 + DX2[DIR_0PM], x3 + DX3[DIR_0PM], DIR_0PM); - distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); - distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); - distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); - distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); - break; - case DIR_00M: - delf = (-velocity - vx3) * BCVeloWeight; - f[DIR_00M] = ftemp[DIR_00M] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_00M] - - delf * WEIGTH[DIR_00M]; - f[DIR_P0M] = ftemp[DIR_P0M] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_P0M] - - delf * WEIGTH[DIR_P0M]; - f[DIR_M0M] = ftemp[DIR_M0M] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_M0M] - - delf * WEIGTH[DIR_M0M]; - f[DIR_0PM] = ftemp[DIR_0PM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_0PM] - - delf * WEIGTH[DIR_0PM]; - f[DIR_0MM] = ftemp[DIR_0MM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_0MM] - - delf * WEIGTH[DIR_0MM]; - f[DIR_PPM] = ftemp[DIR_PPM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_PPM] - - delf * WEIGTH[DIR_PPM]; - f[DIR_MPM] = ftemp[DIR_MPM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_MPM] - - delf * WEIGTH[DIR_MPM]; - f[DIR_PMM] = ftemp[DIR_PMM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_PMM] - - delf * WEIGTH[DIR_PMM]; - f[DIR_MMM] = ftemp[DIR_MMM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_MMM] - - delf * WEIGTH[DIR_MMM]; - - distributions->setDistributionInvForDirection(f[DIR_00M], x1 + DX1[DIR_00P], x2 + DX2[DIR_00P], x3 + DX3[DIR_00P], DIR_00P); - distributions->setDistributionInvForDirection(f[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P); - distributions->setDistributionInvForDirection(f[DIR_M0M], x1 + DX1[DIR_P0P], x2 + DX2[DIR_P0P], x3 + DX3[DIR_P0P], DIR_P0P); - distributions->setDistributionInvForDirection(f[DIR_0PM], x1 + DX1[DIR_0MP], x2 + DX2[DIR_0MP], x3 + DX3[DIR_0MP], DIR_0MP); - distributions->setDistributionInvForDirection(f[DIR_0MM], x1 + DX1[DIR_0PP], x2 + DX2[DIR_0PP], x3 + DX3[DIR_0PP], DIR_0PP); - distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); - distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); - distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); - distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); - break; - default: - UB_THROW( - UbException(UB_EXARGS, "It isn't implemented non reflecting density boundary for this direction!")); - } -} diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCStrategy.cpp deleted file mode 100644 index 637787dc0..000000000 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCStrategy.cpp +++ /dev/null @@ -1,232 +0,0 @@ -//======================================================================================= -// ____ ____ __ ______ __________ __ __ __ __ -// \ \ | | | | | _ \ |___ ___| | | | | / \ | | -// \ \ | | | | | |_) | | | | | | | / \ | | -// \ \ | | | | | _ / | | | | | | / /\ \ | | -// \ \ | | | | | | \ \ | | | \__/ | / ____ \ | |____ -// \ \ | | |__| |__| \__\ |__| \________/ /__/ \__\ |_______| -// \ \ | | ________________________________________________________________ -// \ \ | | | ______________________________________________________________| -// \ \| | | | __ __ __ __ ______ _______ -// \ | | |_____ | | | | | | | | | _ \ / _____) -// \ | | _____| | | | | | | | | | | \ \ \_______ -// \ | | | | |_____ | \_/ | | | | |_/ / _____ | -// \ _____| |__| |________| \_______/ |__| |______/ (_______/ -// -// This file is part of VirtualFluids. VirtualFluids is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// VirtualFluids is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// for more details. -// -// You should have received a copy of the GNU General Public License along -// with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. -// -//! \file NonReflectingOutflowBCStrategy.cpp -//! \ingroup BoundarConditions -//! \author Konstantin Kutscher -//======================================================================================= -#include "NonReflectingOutflowBCStrategy.h" - -#include "BoundaryConditions.h" -#include "D3Q27System.h" -#include "DistributionArray3D.h" - -NonReflectingOutflowBCStrategy::NonReflectingOutflowBCStrategy() -{ - BCStrategy::preCollision = true; -} -////////////////////////////////////////////////////////////////////////// -NonReflectingOutflowBCStrategy::~NonReflectingOutflowBCStrategy() = default; -////////////////////////////////////////////////////////////////////////// -SPtr<BCStrategy> NonReflectingOutflowBCStrategy::clone() -{ - SPtr<BCStrategy> bc(new NonReflectingOutflowBCStrategy()); - return bc; -} -////////////////////////////////////////////////////////////////////////// -void NonReflectingOutflowBCStrategy::addDistributions(SPtr<DistributionArray3D> distributions) -{ - this->distributions = distributions; -} -////////////////////////////////////////////////////////////////////////// -void NonReflectingOutflowBCStrategy::applyBC() -{ - using namespace vf::lbm::dir; - - using namespace D3Q27System; - // using namespace UbMath; - using namespace vf::basics::constant; - - real f[ENDF + 1]; - real ftemp[ENDF + 1]; - - int nx1 = x1; - int nx2 = x2; - int nx3 = x3; - int direction = -1; - - // flag points in direction of fluid - if (bcPtr->hasDensityBoundaryFlag(DIR_P00)) { - nx1 += 1; - direction = DIR_P00; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_M00)) { - nx1 -= 1; - direction = DIR_M00; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_0P0)) { - nx2 += 1; - direction = DIR_0P0; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_0M0)) { - nx2 -= 1; - direction = DIR_0M0; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_00P)) { - nx3 += 1; - direction = DIR_00P; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_00M)) { - nx3 -= 1; - direction = DIR_00M; - } else - UB_THROW(UbException(UB_EXARGS, "Danger...no orthogonal BC-Flag on density boundary...")); - - distributions->getDistribution(f, x1, x2, x3); - distributions->getDistribution(ftemp, nx1, nx2, nx3); - - real rho, vx1, vx2, vx3; - calcMacrosFct(f, rho, vx1, vx2, vx3); - - switch (direction) { - case DIR_P00: - f[DIR_P00] = ftemp[DIR_P00] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_P00]; - f[DIR_PP0] = ftemp[DIR_PP0] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PP0]; - f[DIR_PM0] = ftemp[DIR_PM0] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PM0]; - f[DIR_P0P] = ftemp[DIR_P0P] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_P0P]; - f[DIR_P0M] = ftemp[DIR_P0M] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_P0M]; - f[DIR_PPP] = ftemp[DIR_PPP] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PPP]; - f[DIR_PMP] = ftemp[DIR_PMP] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PMP]; - f[DIR_PPM] = ftemp[DIR_PPM] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PPM]; - f[DIR_PMM] = ftemp[DIR_PMM] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PMM]; - - distributions->setDistributionInvForDirection(f[DIR_P00], x1 + DX1[DIR_M00], x2 + DX2[DIR_M00], x3 + DX3[DIR_M00], DIR_M00); - distributions->setDistributionInvForDirection(f[DIR_PP0], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0); - distributions->setDistributionInvForDirection(f[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0); - distributions->setDistributionInvForDirection(f[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M); - distributions->setDistributionInvForDirection(f[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P); - distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); - distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); - distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); - distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); - break; - case DIR_M00: - f[DIR_M00] = ftemp[DIR_M00] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_M00]; - f[DIR_MP0] = ftemp[DIR_MP0] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MP0]; - f[DIR_MM0] = ftemp[DIR_MM0] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MM0]; - f[DIR_M0P] = ftemp[DIR_M0P] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_M0P]; - f[DIR_M0M] = ftemp[DIR_M0M] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_M0M]; - f[DIR_MPP] = ftemp[DIR_MPP] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MPP]; - f[DIR_MMP] = ftemp[DIR_MMP] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MMP]; - f[DIR_MPM] = ftemp[DIR_MPM] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MPM]; - f[DIR_MMM] = ftemp[DIR_MMM] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MMM]; - - distributions->setDistributionInvForDirection(f[DIR_M00], x1 + DX1[DIR_P00], x2 + DX2[DIR_P00], x3 + DX3[DIR_P00], DIR_P00); - distributions->setDistributionInvForDirection(f[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0); - distributions->setDistributionInvForDirection(f[DIR_MM0], x1 + DX1[DIR_PP0], x2 + DX2[DIR_PP0], x3 + DX3[DIR_PP0], DIR_PP0); - distributions->setDistributionInvForDirection(f[DIR_M0P], x1 + DX1[DIR_P0M], x2 + DX2[DIR_P0M], x3 + DX3[DIR_P0M], DIR_P0M); - distributions->setDistributionInvForDirection(f[DIR_M0M], x1 + DX1[DIR_P0P], x2 + DX2[DIR_P0P], x3 + DX3[DIR_P0P], DIR_P0P); - distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); - distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); - distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); - distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); - break; - case DIR_0P0: - f[DIR_0P0] = ftemp[DIR_0P0] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_0P0]; - f[DIR_PP0] = ftemp[DIR_PP0] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_PP0]; - f[DIR_MP0] = ftemp[DIR_MP0] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_MP0]; - f[DIR_0PP] = ftemp[DIR_0PP] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_0PP]; - f[DIR_0PM] = ftemp[DIR_0PM] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_0PM]; - f[DIR_PPP] = ftemp[DIR_PPP] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_PPP]; - f[DIR_MPP] = ftemp[DIR_MPP] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_MPP]; - f[DIR_PPM] = ftemp[DIR_PPM] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_PPM]; - f[DIR_MPM] = ftemp[DIR_MPM] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_MPM]; - - distributions->setDistributionInvForDirection(f[DIR_0P0], x1 + DX1[DIR_0M0], x2 + DX2[DIR_0M0], x3 + DX3[DIR_0M0], DIR_0M0); - distributions->setDistributionInvForDirection(f[DIR_PP0], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0); - distributions->setDistributionInvForDirection(f[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0); - distributions->setDistributionInvForDirection(f[DIR_0PP], x1 + DX1[DIR_0MM], x2 + DX2[DIR_0MM], x3 + DX3[DIR_0MM], DIR_0MM); - distributions->setDistributionInvForDirection(f[DIR_0PM], x1 + DX1[DIR_0MP], x2 + DX2[DIR_0MP], x3 + DX3[DIR_0MP], DIR_0MP); - distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); - distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); - distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); - distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); - break; - case DIR_0M0: - f[DIR_0M0] = ftemp[DIR_0M0] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_0M0]; - f[DIR_PM0] = ftemp[DIR_PM0] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_PM0]; - f[DIR_MM0] = ftemp[DIR_MM0] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_MM0]; - f[DIR_0MP] = ftemp[DIR_0MP] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_0MP]; - f[DIR_0MM] = ftemp[DIR_0MM] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_0MM]; - f[DIR_PMP] = ftemp[DIR_PMP] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_PMP]; - f[DIR_MMP] = ftemp[DIR_MMP] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_MMP]; - f[DIR_PMM] = ftemp[DIR_PMM] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_PMM]; - f[DIR_MMM] = ftemp[DIR_MMM] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_MMM]; - - distributions->setDistributionInvForDirection(f[DIR_0M0], x1 + DX1[DIR_0P0], x2 + DX2[DIR_0P0], x3 + DX3[DIR_0P0], DIR_0P0); - distributions->setDistributionInvForDirection(f[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0); - distributions->setDistributionInvForDirection(f[DIR_MM0], x1 + DX1[DIR_PP0], x2 + DX2[DIR_PP0], x3 + DX3[DIR_PP0], DIR_PP0); - distributions->setDistributionInvForDirection(f[DIR_0MP], x1 + DX1[DIR_0PM], x2 + DX2[DIR_0PM], x3 + DX3[DIR_0PM], DIR_0PM); - distributions->setDistributionInvForDirection(f[DIR_0MM], x1 + DX1[DIR_0PP], x2 + DX2[DIR_0PP], x3 + DX3[DIR_0PP], DIR_0PP); - distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); - distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); - distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); - distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); - break; - case DIR_00P: - f[DIR_00P] = ftemp[DIR_00P] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_00P]; - f[DIR_P0P] = ftemp[DIR_P0P] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_P0P]; - f[DIR_M0P] = ftemp[DIR_M0P] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_M0P]; - f[DIR_0PP] = ftemp[DIR_0PP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_0PP]; - f[DIR_0MP] = ftemp[DIR_0MP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_0MP]; - f[DIR_PPP] = ftemp[DIR_PPP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_PPP]; - f[DIR_MPP] = ftemp[DIR_MPP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_MPP]; - f[DIR_PMP] = ftemp[DIR_PMP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_PMP]; - f[DIR_MMP] = ftemp[DIR_MMP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_MMP]; - - distributions->setDistributionInvForDirection(f[DIR_00P], x1 + DX1[DIR_00M], x2 + DX2[DIR_00M], x3 + DX3[DIR_00M], DIR_00M); - distributions->setDistributionInvForDirection(f[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M); - distributions->setDistributionInvForDirection(f[DIR_M0P], x1 + DX1[DIR_P0M], x2 + DX2[DIR_P0M], x3 + DX3[DIR_P0M], DIR_P0M); - distributions->setDistributionInvForDirection(f[DIR_0PP], x1 + DX1[DIR_0MM], x2 + DX2[DIR_0MM], x3 + DX3[DIR_0MM], DIR_0MM); - distributions->setDistributionInvForDirection(f[DIR_0MP], x1 + DX1[DIR_0PM], x2 + DX2[DIR_0PM], x3 + DX3[DIR_0PM], DIR_0PM); - distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); - distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); - distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); - distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); - break; - case DIR_00M: - f[DIR_00M] = ftemp[DIR_00M] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_00M]; - f[DIR_P0M] = ftemp[DIR_P0M] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_P0M]; - f[DIR_M0M] = ftemp[DIR_M0M] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_M0M]; - f[DIR_0PM] = ftemp[DIR_0PM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_0PM]; - f[DIR_0MM] = ftemp[DIR_0MM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_0MM]; - f[DIR_PPM] = ftemp[DIR_PPM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_PPM]; - f[DIR_MPM] = ftemp[DIR_MPM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_MPM]; - f[DIR_PMM] = ftemp[DIR_PMM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_PMM]; - f[DIR_MMM] = ftemp[DIR_MMM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_MMM]; - - distributions->setDistributionInvForDirection(f[DIR_00M], x1 + DX1[DIR_00P], x2 + DX2[DIR_00P], x3 + DX3[DIR_00P], DIR_00P); - distributions->setDistributionInvForDirection(f[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P); - distributions->setDistributionInvForDirection(f[DIR_M0M], x1 + DX1[DIR_P0P], x2 + DX2[DIR_P0P], x3 + DX3[DIR_P0P], DIR_P0P); - distributions->setDistributionInvForDirection(f[DIR_0PM], x1 + DX1[DIR_0MP], x2 + DX2[DIR_0MP], x3 + DX3[DIR_0MP], DIR_0MP); - distributions->setDistributionInvForDirection(f[DIR_0MM], x1 + DX1[DIR_0PP], x2 + DX2[DIR_0PP], x3 + DX3[DIR_0PP], DIR_0PP); - distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); - distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); - distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); - distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); - break; - default: - UB_THROW( - UbException(UB_EXARGS, "It isn't implemented non reflecting density boundary for this direction!")); - } -} diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowWithRelaxationBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowWithRelaxationBCStrategy.cpp deleted file mode 100644 index 0e7be0e3d..000000000 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowWithRelaxationBCStrategy.cpp +++ /dev/null @@ -1,232 +0,0 @@ -//======================================================================================= -// ____ ____ __ ______ __________ __ __ __ __ -// \ \ | | | | | _ \ |___ ___| | | | | / \ | | -// \ \ | | | | | |_) | | | | | | | / \ | | -// \ \ | | | | | _ / | | | | | | / /\ \ | | -// \ \ | | | | | | \ \ | | | \__/ | / ____ \ | |____ -// \ \ | | |__| |__| \__\ |__| \________/ /__/ \__\ |_______| -// \ \ | | ________________________________________________________________ -// \ \ | | | ______________________________________________________________| -// \ \| | | | __ __ __ __ ______ _______ -// \ | | |_____ | | | | | | | | | _ \ / _____) -// \ | | _____| | | | | | | | | | | \ \ \_______ -// \ | | | | |_____ | \_/ | | | | |_/ / _____ | -// \ _____| |__| |________| \_______/ |__| |______/ (_______/ -// -// This file is part of VirtualFluids. VirtualFluids is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// VirtualFluids is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// for more details. -// -// You should have received a copy of the GNU General Public License along -// with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. -// -//! \file NonReflectingOutflowWithRelaxationBCStrategy.cpp -//! \ingroup BoundarConditions -//! \author Konstantin Kutscher, Hussein Alihussein -//======================================================================================= -#include "NonReflectingOutflowWithRelaxationBCStrategy.h" - -#include "BoundaryConditions.h" -#include "D3Q27System.h" -#include "DistributionArray3D.h" - -NonReflectingOutflowWithRelaxationBCStrategy::NonReflectingOutflowWithRelaxationBCStrategy() -{ - BCStrategy::preCollision = true; -} -////////////////////////////////////////////////////////////////////////// -NonReflectingOutflowWithRelaxationBCStrategy::~NonReflectingOutflowWithRelaxationBCStrategy() = default; -////////////////////////////////////////////////////////////////////////// -SPtr<BCStrategy> NonReflectingOutflowWithRelaxationBCStrategy::clone() -{ - SPtr<BCStrategy> bc(new NonReflectingOutflowWithRelaxationBCStrategy()); - return bc; -} -////////////////////////////////////////////////////////////////////////// -void NonReflectingOutflowWithRelaxationBCStrategy::addDistributions(SPtr<DistributionArray3D> distributions) -{ - this->distributions = distributions; -} -////////////////////////////////////////////////////////////////////////// -void NonReflectingOutflowWithRelaxationBCStrategy::applyBC() -{ - using namespace vf::lbm::dir; - - using namespace D3Q27System; - // using namespace UbMath; - using namespace vf::basics::constant; - - LBMReal f[ENDF + 1]; - LBMReal ftemp[ENDF + 1]; - - int nx1 = x1; - int nx2 = x2; - int nx3 = x3; - int direction = -1; - - // flag points in direction of fluid - if (bcPtr->hasDensityBoundaryFlag(DIR_P00)) { - nx1 += 1; - direction = DIR_P00; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_M00)) { - nx1 -= 1; - direction = DIR_M00; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_0P0)) { - nx2 += 1; - direction = DIR_0P0; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_0M0)) { - nx2 -= 1; - direction = DIR_0M0; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_00P)) { - nx3 += 1; - direction = DIR_00P; - } else if (bcPtr->hasDensityBoundaryFlag(DIR_00M)) { - nx3 -= 1; - direction = DIR_00M; - } else - UB_THROW(UbException(UB_EXARGS, "Danger...no orthogonal BC-Flag on density boundary...")); - - distributions->getDistribution(f, x1, x2, x3); - distributions->getDistribution(ftemp, nx1, nx2, nx3); - - LBMReal rho, vx1, vx2, vx3; - calcMacrosFct(f, rho, vx1, vx2, vx3); - LBMReal delf = rho* c1o100; - switch (direction) { - case DIR_P00: - f[DIR_P00] = ftemp[DIR_P00] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_P00] - delf* WEIGTH[DIR_P00]; - f[DIR_PP0] = ftemp[DIR_PP0] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PP0]- delf* WEIGTH[DIR_PP0]; - f[DIR_PM0] = ftemp[DIR_PM0] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PM0]- delf* WEIGTH[DIR_PM0]; - f[DIR_P0P] = ftemp[DIR_P0P] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_P0P]- delf* WEIGTH[DIR_P0P]; - f[DIR_P0M] = ftemp[DIR_P0M] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_P0M]- delf* WEIGTH[DIR_P0M]; - f[DIR_PPP] = ftemp[DIR_PPP] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PPP]- delf* WEIGTH[DIR_PPP]; - f[DIR_PMP] = ftemp[DIR_PMP] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PMP]- delf* WEIGTH[DIR_PMP]; - f[DIR_PPM] = ftemp[DIR_PPM] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PPM]- delf* WEIGTH[DIR_PPM]; - f[DIR_PMM] = ftemp[DIR_PMM] * (one_over_sqrt3 + vx1) + (c1o1 - one_over_sqrt3 - vx1) * f[DIR_PMM]- delf* WEIGTH[DIR_PMM]; - - distributions->setDistributionInvForDirection(f[DIR_P00], x1 + DX1[DIR_M00], x2 + DX2[DIR_M00], x3 + DX3[DIR_M00], DIR_M00); - distributions->setDistributionInvForDirection(f[DIR_PP0], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0); - distributions->setDistributionInvForDirection(f[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0); - distributions->setDistributionInvForDirection(f[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M); - distributions->setDistributionInvForDirection(f[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P); - distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); - distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); - distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); - distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); - break; - case DIR_M00: - f[DIR_M00] = ftemp[DIR_M00] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_M00]- delf* WEIGTH[DIR_M00]; - f[DIR_MP0] = ftemp[DIR_MP0] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MP0]- delf* WEIGTH[DIR_MP0]; - f[DIR_MM0] = ftemp[DIR_MM0] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MM0]- delf* WEIGTH[DIR_MM0]; - f[DIR_M0P] = ftemp[DIR_M0P] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_M0P]- delf* WEIGTH[DIR_M0P]; - f[DIR_M0M] = ftemp[DIR_M0M] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_M0M]- delf* WEIGTH[DIR_M0M]; - f[DIR_MPP] = ftemp[DIR_MPP] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MPP]- delf* WEIGTH[DIR_MPP]; - f[DIR_MMP] = ftemp[DIR_MMP] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MMP]- delf* WEIGTH[DIR_MMP]; - f[DIR_MPM] = ftemp[DIR_MPM] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MPM]- delf* WEIGTH[DIR_MPM]; - f[DIR_MMM] = ftemp[DIR_MMM] * (one_over_sqrt3 - vx1) + (c1o1 - one_over_sqrt3 + vx1) * f[DIR_MMM]- delf* WEIGTH[DIR_MMM]; - - distributions->setDistributionInvForDirection(f[DIR_M00], x1 + DX1[DIR_P00], x2 + DX2[DIR_P00], x3 + DX3[DIR_P00], DIR_P00); - distributions->setDistributionInvForDirection(f[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0); - distributions->setDistributionInvForDirection(f[DIR_MM0], x1 + DX1[DIR_PP0], x2 + DX2[DIR_PP0], x3 + DX3[DIR_PP0], DIR_PP0); - distributions->setDistributionInvForDirection(f[DIR_M0P], x1 + DX1[DIR_P0M], x2 + DX2[DIR_P0M], x3 + DX3[DIR_P0M], DIR_P0M); - distributions->setDistributionInvForDirection(f[DIR_M0M], x1 + DX1[DIR_P0P], x2 + DX2[DIR_P0P], x3 + DX3[DIR_P0P], DIR_P0P); - distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); - distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); - distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); - distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); - break; - case DIR_0P0: - f[DIR_0P0] = ftemp[DIR_0P0] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_0P0]- delf* WEIGTH[DIR_0P0]; - f[DIR_PP0] = ftemp[DIR_PP0] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_PP0]- delf* WEIGTH[DIR_PP0]; - f[DIR_MP0] = ftemp[DIR_MP0] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_MP0]- delf* WEIGTH[DIR_MP0]; - f[DIR_0PP] = ftemp[DIR_0PP] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_0PP]- delf* WEIGTH[DIR_0PP]; - f[DIR_0PM] = ftemp[DIR_0PM] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_0PM]- delf* WEIGTH[DIR_0PM]; - f[DIR_PPP] = ftemp[DIR_PPP] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_PPP]- delf* WEIGTH[DIR_PPP]; - f[DIR_MPP] = ftemp[DIR_MPP] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_MPP]- delf* WEIGTH[DIR_MPP]; - f[DIR_PPM] = ftemp[DIR_PPM] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_PPM]- delf* WEIGTH[DIR_PPM]; - f[DIR_MPM] = ftemp[DIR_MPM] * (one_over_sqrt3 + vx2) + (c1o1 - one_over_sqrt3 - vx2) * f[DIR_MPM]- delf* WEIGTH[DIR_MPM]; - - distributions->setDistributionInvForDirection(f[DIR_0P0], x1 + DX1[DIR_0M0], x2 + DX2[DIR_0M0], x3 + DX3[DIR_0M0], DIR_0M0); - distributions->setDistributionInvForDirection(f[DIR_PP0], x1 + DX1[DIR_MM0], x2 + DX2[DIR_MM0], x3 + DX3[DIR_MM0], DIR_MM0); - distributions->setDistributionInvForDirection(f[DIR_MP0], x1 + DX1[DIR_PM0], x2 + DX2[DIR_PM0], x3 + DX3[DIR_PM0], DIR_PM0); - distributions->setDistributionInvForDirection(f[DIR_0PP], x1 + DX1[DIR_0MM], x2 + DX2[DIR_0MM], x3 + DX3[DIR_0MM], DIR_0MM); - distributions->setDistributionInvForDirection(f[DIR_0PM], x1 + DX1[DIR_0MP], x2 + DX2[DIR_0MP], x3 + DX3[DIR_0MP], DIR_0MP); - distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); - distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); - distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); - distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); - break; - case DIR_0M0: - f[DIR_0M0] = ftemp[DIR_0M0] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_0M0]- delf* WEIGTH[DIR_0M0]; - f[DIR_PM0] = ftemp[DIR_PM0] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_PM0]- delf* WEIGTH[DIR_PM0]; - f[DIR_MM0] = ftemp[DIR_MM0] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_MM0]- delf* WEIGTH[DIR_MM0]; - f[DIR_0MP] = ftemp[DIR_0MP] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_0MP]- delf* WEIGTH[DIR_0MP]; - f[DIR_0MM] = ftemp[DIR_0MM] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_0MM]- delf* WEIGTH[DIR_0MM]; - f[DIR_PMP] = ftemp[DIR_PMP] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_PMP]- delf* WEIGTH[DIR_PMP]; - f[DIR_MMP] = ftemp[DIR_MMP] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_MMP]- delf* WEIGTH[DIR_MMP]; - f[DIR_PMM] = ftemp[DIR_PMM] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_PMM]- delf* WEIGTH[DIR_PMM]; - f[DIR_MMM] = ftemp[DIR_MMM] * (one_over_sqrt3 - vx2) + (c1o1 - one_over_sqrt3 + vx2) * f[DIR_MMM]- delf* WEIGTH[DIR_MMM]; - - distributions->setDistributionInvForDirection(f[DIR_0M0], x1 + DX1[DIR_0P0], x2 + DX2[DIR_0P0], x3 + DX3[DIR_0P0], DIR_0P0); - distributions->setDistributionInvForDirection(f[DIR_PM0], x1 + DX1[DIR_MP0], x2 + DX2[DIR_MP0], x3 + DX3[DIR_MP0], DIR_MP0); - distributions->setDistributionInvForDirection(f[DIR_MM0], x1 + DX1[DIR_PP0], x2 + DX2[DIR_PP0], x3 + DX3[DIR_PP0], DIR_PP0); - distributions->setDistributionInvForDirection(f[DIR_0MP], x1 + DX1[DIR_0PM], x2 + DX2[DIR_0PM], x3 + DX3[DIR_0PM], DIR_0PM); - distributions->setDistributionInvForDirection(f[DIR_0MM], x1 + DX1[DIR_0PP], x2 + DX2[DIR_0PP], x3 + DX3[DIR_0PP], DIR_0PP); - distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); - distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); - distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); - distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); - break; - case DIR_00P: - f[DIR_00P] = ftemp[DIR_00P] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_00P]- delf* WEIGTH[DIR_00P]; - f[DIR_P0P] = ftemp[DIR_P0P] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_P0P]- delf* WEIGTH[DIR_P0P]; - f[DIR_M0P] = ftemp[DIR_M0P] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_M0P]- delf* WEIGTH[DIR_M0P]; - f[DIR_0PP] = ftemp[DIR_0PP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_0PP]- delf* WEIGTH[DIR_0PP]; - f[DIR_0MP] = ftemp[DIR_0MP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_0MP]- delf* WEIGTH[DIR_0MP]; - f[DIR_PPP] = ftemp[DIR_PPP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_PPP]- delf* WEIGTH[DIR_PPP]; - f[DIR_MPP] = ftemp[DIR_MPP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_MPP]- delf* WEIGTH[DIR_MPP]; - f[DIR_PMP] = ftemp[DIR_PMP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_PMP]- delf* WEIGTH[DIR_PMP]; - f[DIR_MMP] = ftemp[DIR_MMP] * (one_over_sqrt3 + vx3) + (c1o1 - one_over_sqrt3 - vx3) * f[DIR_MMP]- delf* WEIGTH[DIR_MMP]; - - distributions->setDistributionInvForDirection(f[DIR_00P], x1 + DX1[DIR_00M], x2 + DX2[DIR_00M], x3 + DX3[DIR_00M], DIR_00M); - distributions->setDistributionInvForDirection(f[DIR_P0P], x1 + DX1[DIR_M0M], x2 + DX2[DIR_M0M], x3 + DX3[DIR_M0M], DIR_M0M); - distributions->setDistributionInvForDirection(f[DIR_M0P], x1 + DX1[DIR_P0M], x2 + DX2[DIR_P0M], x3 + DX3[DIR_P0M], DIR_P0M); - distributions->setDistributionInvForDirection(f[DIR_0PP], x1 + DX1[DIR_0MM], x2 + DX2[DIR_0MM], x3 + DX3[DIR_0MM], DIR_0MM); - distributions->setDistributionInvForDirection(f[DIR_0MP], x1 + DX1[DIR_0PM], x2 + DX2[DIR_0PM], x3 + DX3[DIR_0PM], DIR_0PM); - distributions->setDistributionInvForDirection(f[DIR_PPP], x1 + DX1[DIR_MMM], x2 + DX2[DIR_MMM], x3 + DX3[DIR_MMM], DIR_MMM); - distributions->setDistributionInvForDirection(f[DIR_MPP], x1 + DX1[DIR_PMM], x2 + DX2[DIR_PMM], x3 + DX3[DIR_PMM], DIR_PMM); - distributions->setDistributionInvForDirection(f[DIR_PMP], x1 + DX1[DIR_MPM], x2 + DX2[DIR_MPM], x3 + DX3[DIR_MPM], DIR_MPM); - distributions->setDistributionInvForDirection(f[DIR_MMP], x1 + DX1[DIR_PPM], x2 + DX2[DIR_PPM], x3 + DX3[DIR_PPM], DIR_PPM); - break; - case DIR_00M: - f[DIR_00M] = ftemp[DIR_00M] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_00M]- delf* WEIGTH[DIR_00M]; - f[DIR_P0M] = ftemp[DIR_P0M] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_P0M]- delf* WEIGTH[DIR_P0M]; - f[DIR_M0M] = ftemp[DIR_M0M] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_M0M]- delf* WEIGTH[DIR_M0M]; - f[DIR_0PM] = ftemp[DIR_0PM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_0PM]- delf* WEIGTH[DIR_0PM]; - f[DIR_0MM] = ftemp[DIR_0MM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_0MM]- delf* WEIGTH[DIR_0MM]; - f[DIR_PPM] = ftemp[DIR_PPM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_PPM]- delf* WEIGTH[DIR_PPM]; - f[DIR_MPM] = ftemp[DIR_MPM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_MPM]- delf* WEIGTH[DIR_MPM]; - f[DIR_PMM] = ftemp[DIR_PMM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_PMM]- delf* WEIGTH[DIR_PMM]; - f[DIR_MMM] = ftemp[DIR_MMM] * (one_over_sqrt3 - vx3) + (c1o1 - one_over_sqrt3 + vx3) * f[DIR_MMM]- delf* WEIGTH[DIR_MMM]; - - distributions->setDistributionInvForDirection(f[DIR_00M], x1 + DX1[DIR_00P], x2 + DX2[DIR_00P], x3 + DX3[DIR_00P], DIR_00P); - distributions->setDistributionInvForDirection(f[DIR_P0M], x1 + DX1[DIR_M0P], x2 + DX2[DIR_M0P], x3 + DX3[DIR_M0P], DIR_M0P); - distributions->setDistributionInvForDirection(f[DIR_M0M], x1 + DX1[DIR_P0P], x2 + DX2[DIR_P0P], x3 + DX3[DIR_P0P], DIR_P0P); - distributions->setDistributionInvForDirection(f[DIR_0PM], x1 + DX1[DIR_0MP], x2 + DX2[DIR_0MP], x3 + DX3[DIR_0MP], DIR_0MP); - distributions->setDistributionInvForDirection(f[DIR_0MM], x1 + DX1[DIR_0PP], x2 + DX2[DIR_0PP], x3 + DX3[DIR_0PP], DIR_0PP); - distributions->setDistributionInvForDirection(f[DIR_PPM], x1 + DX1[DIR_MMP], x2 + DX2[DIR_MMP], x3 + DX3[DIR_MMP], DIR_MMP); - distributions->setDistributionInvForDirection(f[DIR_MPM], x1 + DX1[DIR_PMP], x2 + DX2[DIR_PMP], x3 + DX3[DIR_PMP], DIR_PMP); - distributions->setDistributionInvForDirection(f[DIR_PMM], x1 + DX1[DIR_MPP], x2 + DX2[DIR_MPP], x3 + DX3[DIR_MPP], DIR_MPP); - distributions->setDistributionInvForDirection(f[DIR_MMM], x1 + DX1[DIR_PPP], x2 + DX2[DIR_PPP], x3 + DX3[DIR_PPP], DIR_PPP); - break; - default: - UB_THROW( - UbException(UB_EXARGS, "It isn't implemented non reflecting density boundary for this direction!")); - } -} diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCStrategy.cpp deleted file mode 100644 index 1c8938e98..000000000 --- a/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCStrategy.cpp +++ /dev/null @@ -1,83 +0,0 @@ -#include "SlipBCStrategy.h" -#include "BoundaryConditions.h" -#include "DistributionArray3D.h" - -SlipBCStrategy::SlipBCStrategy() -{ - BCStrategy::preCollision = false; -} -////////////////////////////////////////////////////////////////////////// -SlipBCStrategy::~SlipBCStrategy() = default; -////////////////////////////////////////////////////////////////////////// -SPtr<BCStrategy> SlipBCStrategy::clone() -{ - SPtr<BCStrategy> bc(new SlipBCStrategy()); - return bc; -} -////////////////////////////////////////////////////////////////////////// -void SlipBCStrategy::addDistributions(SPtr<DistributionArray3D> distributions) { this->distributions = distributions; } -////////////////////////////////////////////////////////////////////////// -void SlipBCStrategy::applyBC() -{ - using namespace vf::lbm::dir; - - real f[D3Q27System::ENDF + 1]; - real feq[D3Q27System::ENDF + 1]; - distributions->getDistributionInv(f, x1, x2, x3); - real rho, vx1, vx2, vx3, drho; - calcMacrosFct(f, drho, vx1, vx2, vx3); - calcFeqFct(feq, drho, vx1, vx2, vx3); - - UbTupleFloat3 normale = bcPtr->getNormalVector(); - 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! - vx3 = vx3 - amp * val<3>(normale); // normale zeigt von struktur weg! - - rho = vf::basics::constant::c1o1 + drho * compressibleFactor; - - for (int fdir = D3Q27System::FSTARTDIR; fdir<=D3Q27System::FENDDIR; fdir++) - { - if (bcPtr->hasSlipBoundaryFlag(fdir)) - { - //quadratic bounce back - const int invDir = D3Q27System::INVDIR[fdir]; - real q = bcPtr->getQ(invDir);// m+m q=0 stabiler - //vx3=0; - real velocity = vf::basics::constant::c0o1; - switch (invDir) - { - case DIR_P00: velocity = (vf::basics::constant::c4o9*(+vx1)); break; //(2/cs^2)(=6)*rho_0(=1 bei imkompr)*wi*u*ei mit cs=1/sqrt(3) - case DIR_M00: velocity = (vf::basics::constant::c4o9*(-vx1)); break; //z.B. aus paper manfred MRT LB models in three dimensions (2002) - case DIR_0P0: velocity = (vf::basics::constant::c4o9*(+vx2)); break; - case DIR_0M0: velocity = (vf::basics::constant::c4o9*(-vx2)); break; - case DIR_00P: velocity = (vf::basics::constant::c4o9*(+vx3)); break; - case DIR_00M: velocity = (vf::basics::constant::c4o9*(-vx3)); break; - case DIR_PP0: velocity = (vf::basics::constant::c1o9*(+vx1+vx2)); break; - case DIR_MM0: velocity = (vf::basics::constant::c1o9*(-vx1-vx2)); break; - case DIR_PM0: velocity = (vf::basics::constant::c1o9*(+vx1-vx2)); break; - case DIR_MP0: velocity = (vf::basics::constant::c1o9*(-vx1+vx2)); break; - case DIR_P0P: velocity = (vf::basics::constant::c1o9*(+vx1+vx3)); break; - case DIR_M0M: velocity = (vf::basics::constant::c1o9*(-vx1-vx3)); break; - case DIR_P0M: velocity = (vf::basics::constant::c1o9*(+vx1-vx3)); break; - case DIR_M0P: velocity = (vf::basics::constant::c1o9*(-vx1+vx3)); break; - case DIR_0PP: velocity = (vf::basics::constant::c1o9*(+vx2+vx3)); break; - case DIR_0MM: velocity = (vf::basics::constant::c1o9*(-vx2-vx3)); break; - case DIR_0PM: velocity = (vf::basics::constant::c1o9*(+vx2-vx3)); break; - case DIR_0MP: velocity = (vf::basics::constant::c1o9*(-vx2+vx3)); break; - case DIR_PPP: velocity = (vf::basics::constant::c1o36*(+vx1+vx2+vx3)); break; - case DIR_MMM: velocity = (vf::basics::constant::c1o36*(-vx1-vx2-vx3)); break; - case DIR_PPM: velocity = (vf::basics::constant::c1o36*(+vx1+vx2-vx3)); break; - case DIR_MMP: velocity = (vf::basics::constant::c1o36*(-vx1-vx2+vx3)); break; - case DIR_PMP: velocity = (vf::basics::constant::c1o36*(+vx1-vx2+vx3)); break; - case DIR_MPM: velocity = (vf::basics::constant::c1o36*(-vx1+vx2-vx3)); break; - case DIR_PMM: velocity = (vf::basics::constant::c1o36*(+vx1-vx2-vx3)); break; - case DIR_MPP: velocity = (vf::basics::constant::c1o36*(-vx1+vx2+vx3)); break; - default: throw UbException(UB_EXARGS, "unknown error"); - } - real fReturn = ((vf::basics::constant::c1o1-q)/(vf::basics::constant::c1o1+q))*((f[invDir]-feq[invDir])/(vf::basics::constant::c1o1-collFactor)+feq[invDir])+((q*(f[invDir]+f[fdir])-velocity*rho)/(vf::basics::constant::c1o1+q)); - distributions->setDistributionForDirection(fReturn, x1+D3Q27System::DX1[invDir], x2+D3Q27System::DX2[invDir], x3+D3Q27System::DX3[invDir], fdir); - } - } -} \ No newline at end of file -- GitLab