diff --git a/apps/cpu/CylinderSt/cylinder_st.cpp b/apps/cpu/CylinderSt/cylinder_st.cpp index 15e17a8f94099982791d844a8effbe7eff403292..a3ec1e602cd528cdd7396fbe72b743a25b8b8506 100644 --- a/apps/cpu/CylinderSt/cylinder_st.cpp +++ b/apps/cpu/CylinderSt/cylinder_st.cpp @@ -231,7 +231,7 @@ void run(const char *cstr) if (refineLevel > 0) { - if(myid == 0) UBLOG(logINFO,"Refinement - start"); + if(myid == 0) UBLOG(logINFO,"Refinement - start"); RefineCrossAndInsideGbObjectBlockVisitor refVisitor(refineCube, baseLevel, refineLevel-1); grid->accept(refVisitor); @@ -248,7 +248,7 @@ void run(const char *cstr) D3Q27System::getLBMDirections(dirs); SetInterpolationDirsBlockVisitor interDirsVisitor(dirs); grid->accept(interDirsVisitor); - if(myid == 0) UBLOG(logINFO,"Refinement - end"); + if(myid == 0) UBLOG(logINFO,"Refinement - end"); } MetisPartitioningGridVisitor metisVisitor(numOfThreads, D3Q27System::B, comm, false); diff --git a/apps/cpu/FlowAroundCylinder/cylinder.cpp b/apps/cpu/FlowAroundCylinder/cylinder.cpp index 58907a20942059fe7fd29e2e2308f3512451c630..2ee3bfc7a036d28ed80c625c3c00edda47fac38f 100644 --- a/apps/cpu/FlowAroundCylinder/cylinder.cpp +++ b/apps/cpu/FlowAroundCylinder/cylinder.cpp @@ -288,11 +288,11 @@ void run(string configname) grid->accept(bcVisitor); } - //set connectors - //InterpolationProcessorPtr iProcessor(new CompressibleOffsetMomentsInterpolator()); - //SetConnectorsBlockVisitor setConnsVisitor(comm, true, D3Q27System::ENDDIR, nueLB, iProcessor); + //set connectors + //InterpolationProcessorPtr iProcessor(new CompressibleOffsetMomentsInterpolator()); + //SetConnectorsBlockVisitor setConnsVisitor(comm, true, D3Q27System::ENDDIR, nueLB, iProcessor); OneDistributionSetConnectorsBlockVisitor setConnsVisitor(comm); - grid->accept(setConnsVisitor); + grid->accept(setConnsVisitor); SPtr<Interpolator> iProcessor(new CompressibleOffsetMomentsInterpolator()); // SPtr<Interpolator> iProcessor(new CompressibleOffsetMomentsInterpolationProcessor_old()); @@ -301,7 +301,7 @@ void run(string configname) SPtr<UbScheduler> stepSch(new UbScheduler(outTime)); - SPtr<SimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, stepSch, pathOut, WbWriterVtkXmlBinary::getInstance(), conv, comm)); + SPtr<SimulationObserver> writeMQSimulationObserver(new WriteMacroscopicQuantitiesSimulationObserver(grid, stepSch, pathOut, WbWriterVtkXmlBinary::getInstance(), conv, comm)); real area = (2.0*radius*H)/(dx*dx); real v = 4.0*uLB/9.0; @@ -309,18 +309,18 @@ void run(string configname) SPtr<CalculateForcesSimulationObserver> fp = make_shared<CalculateForcesSimulationObserver>(grid, forceSch, pathOut + "/results/forces.txt", comm, v, area); fp->addInteractor(cylinderInt); - SPtr<UbScheduler> nupsSch(new UbScheduler(nupsStep[0], nupsStep[1], nupsStep[2])); - std::shared_ptr<SimulationObserver> nupsSimulationObserver(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); + SPtr<UbScheduler> nupsSch(new UbScheduler(nupsStep[0], nupsStep[1], nupsStep[2])); + std::shared_ptr<SimulationObserver> nupsSimulationObserver(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); - omp_set_num_threads(numOfThreads); - SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1)); - SPtr<Simulation> simulation(new Simulation(grid, stepGhostLayer, endTime)); - simulation->addSimulationObserver(nupsSimulationObserver); + omp_set_num_threads(numOfThreads); + SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1)); + SPtr<Simulation> simulation(new Simulation(grid, stepGhostLayer, endTime)); + simulation->addSimulationObserver(nupsSimulationObserver); simulation->addSimulationObserver(fp); simulation->addSimulationObserver(writeMQSimulationObserver); if(myid == 0) UBLOG(logINFO,"Simulation-start"); - simulation->run(); + simulation->run(); if(myid == 0) UBLOG(logINFO,"Simulation-end"); } catch(std::exception& e) diff --git a/apps/cpu/FlowAroundCylinder/cylinder.cpp.old b/apps/cpu/FlowAroundCylinder/cylinder.cpp.old index 774ed812b5fab63538a56744ddd41a2611eadc72..311e5ee963322acafc4e7220f4397e94924863dd 100644 --- a/apps/cpu/FlowAroundCylinder/cylinder.cpp.old +++ b/apps/cpu/FlowAroundCylinder/cylinder.cpp.old @@ -199,12 +199,12 @@ void run(const char *cstr) if (refineLevel > 0) { - if(myid == 0) UBLOG(logINFO,"Refinement - start"); + if(myid == 0) UBLOG(logINFO,"Refinement - start"); RefineCrossAndInsideGbObjectHelper refineHelper(grid, refineLevel); //refineHelper.addGbObject(refineCube, refineLevel); refineHelper.addGbObject(refCylinder, refineLevel); refineHelper.refine(); - if(myid == 0) UBLOG(logINFO,"Refinement - end"); + if(myid == 0) UBLOG(logINFO,"Refinement - end"); } MetisPartitioningGridVisitor metisVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::B); @@ -570,12 +570,12 @@ void run2(const char *cstr) if (refineLevel > 0) { - if(myid == 0) UBLOG(logINFO,"Refinement - start"); + if(myid == 0) UBLOG(logINFO,"Refinement - start"); RefineCrossAndInsideGbObjectHelper refineHelper(grid, refineLevel); //refineHelper.addGbObject(refineCube, refineLevel); refineHelper.addGbObject(refCylinder, refineLevel); refineHelper.refine(); - if(myid == 0) UBLOG(logINFO,"Refinement - end"); + if(myid == 0) UBLOG(logINFO,"Refinement - end"); } MetisPartitioningGridVisitor metisVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::B); diff --git a/apps/cpu/FlowAroundCylinder/cylinder.cpp1 b/apps/cpu/FlowAroundCylinder/cylinder.cpp1 index f4001248da3e7fec9921da00d6932c376ea6dc66..b9c1f3f480e09774f01edc7680f917dc150241fa 100644 --- a/apps/cpu/FlowAroundCylinder/cylinder.cpp1 +++ b/apps/cpu/FlowAroundCylinder/cylinder.cpp1 @@ -207,7 +207,7 @@ void run(const char *cstr) if (refineLevel > 0) { - if(myid == 0) UBLOG(logINFO,"Refinement - start"); + if(myid == 0) UBLOG(logINFO,"Refinement - start"); RefineCrossAndInsideGbObjectBlockVisitor refVisitor(refineCube, baseLevel, refineLevel-1); grid->accept(refVisitor); @@ -224,7 +224,7 @@ void run(const char *cstr) D3Q27System::getLBMDirections(dirs); SetInterpolationDirsBlockVisitor interDirsVisitor(dirs); grid->accept(interDirsVisitor); - if(myid == 0) UBLOG(logINFO,"Refinement - end"); + if(myid == 0) UBLOG(logINFO,"Refinement - end"); } MetisPartitioningGridVisitor metisVisitor(numOfThreads, D3Q27System::B, comm, false); diff --git a/apps/cpu/FlowAroundCylinder/cylinder.cpp2 b/apps/cpu/FlowAroundCylinder/cylinder.cpp2 index 107f4882f38dbada406a106ce6bfa2a8122f7379..133329782f2ac61a87d9e76a70eb32f64719fa26 100644 --- a/apps/cpu/FlowAroundCylinder/cylinder.cpp2 +++ b/apps/cpu/FlowAroundCylinder/cylinder.cpp2 @@ -221,7 +221,7 @@ void run(const char *cstr) if (refineLevel > 0) { - if(myid == 0) UBLOG(logINFO,"Refinement - start"); + if(myid == 0) UBLOG(logINFO,"Refinement - start"); RefineCrossAndInsideGbObjectBlockVisitor refVisitor(refineCube, baseLevel, refineLevel-1); grid->accept(refVisitor); @@ -238,7 +238,7 @@ void run(const char *cstr) D3Q27System::getLBMDirections(dirs); SetInterpolationDirsBlockVisitor interDirsVisitor(dirs); grid->accept(interDirsVisitor); - if(myid == 0) UBLOG(logINFO,"Refinement - end"); + if(myid == 0) UBLOG(logINFO,"Refinement - end"); } MetisPartitioningGridVisitor metisVisitor(numOfThreads, D3Q27System::B, comm, false); diff --git a/apps/cpu/TPMSRow/TPMSRow.cpp b/apps/cpu/TPMSRow/TPMSRow.cpp index ebb4c2d1ab71360f63c32648745f8274dbe5e26c..a1f2b9ba6a21242ebc110e72437c6cb575311d56 100644 --- a/apps/cpu/TPMSRow/TPMSRow.cpp +++ b/apps/cpu/TPMSRow/TPMSRow.cpp @@ -153,11 +153,11 @@ void run(string configname) //kernel->setSpongeLayer(spongeLayer); // kernel = ; // kernel = SPtr<LBMKernel>(new CumulantK17LBMKernel()); - // mu::Parser fctForcingX1; - // fctForcingX1.SetExpr("Fx2"); - // fctForcingX1.DefineConst("Fx2", 5e-4); - // kernel->setForcingX1(fctForcingX1); - // kernel->setWithForcing(true); + // mu::Parser fctForcingX1; + // fctForcingX1.SetExpr("Fx2"); + // fctForcingX1.DefineConst("Fx2", 5e-4); + // kernel->setForcingX1(fctForcingX1); + // kernel->setWithForcing(true); // // SPtr<ThinWallBCProcessor> bcProc(new ThinWallBCProcessor()); SPtr<BCSet> bcProc(new BCSet()); @@ -186,10 +186,10 @@ void run(string configname) TPMSOrigin[2] + TPMSL[2], UnitEdgeLength, dx, 2.5e-4)); - // for (int i = 0; i < 12; i++) - // { - // cout << tpms->evaluateImplicitFunction(0.002, 0.002, i/1000., 1.)<<endl; - // } + // for (int i = 0; i < 12; i++) + // { + // cout << tpms->evaluateImplicitFunction(0.002, 0.002, i/1000., 1.)<<endl; + // } if (myid == 0) GbSystem3D::writeGeoObject(tpms.get(), pathname + "/geo/tpms", WbWriterVtkXmlBinary::getInstance()); @@ -399,7 +399,7 @@ void run(string configname) // if (refineLevel > 0) // { - // SetUndefinedNodesBlockVisitor undefNodesVisitor; + // SetUndefinedNodesBlockVisitor undefNodesVisitor; // grid->accept(undefNodesVisitor); // } diff --git a/apps/cpu/band/band.cpp b/apps/cpu/band/band.cpp index b454ff1284bbb1d64d657e9c87a51be2cbf06d66..da9a14d9e069c6deb165d4c6e469ef78f37f4519 100644 --- a/apps/cpu/band/band.cpp +++ b/apps/cpu/band/band.cpp @@ -265,11 +265,11 @@ void run(const char *cstr) if (refineLevel > 0) { - if(myid == 0) UBLOG(logINFO,"Refinement - start"); + if(myid == 0) UBLOG(logINFO,"Refinement - start"); RefineCrossAndInsideGbObjectHelper refineHelper(grid, refineLevel); refineHelper.addGbObject(refinePlatteBox, refineLevel); refineHelper.refine(); - if(myid == 0) UBLOG(logINFO,"Refinement - end"); + if(myid == 0) UBLOG(logINFO,"Refinement - end"); } ///////////////////////////////////////////////// @@ -331,7 +331,7 @@ void run(const char *cstr) //////////////////////////////////////////// //METIS - Grid3DVisitorPtr metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::B)); + Grid3DVisitorPtr metisVisitor(new MetisPartitioningGridVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::B)); //////////////////////////////////////////// /////delete solid blocks @@ -350,7 +350,7 @@ void run(const char *cstr) intHelper.addInteractor(densInteractor); intHelper.addInteractor(velBCInteractor); intHelper.selectBlocks(); - if(myid == 0) UBLOG(logINFO,"deleteSolidBlocks - end"); + if(myid == 0) UBLOG(logINFO,"deleteSolidBlocks - end"); ////////////////////////////////////// //domain decomposition for threads diff --git a/apps/cpu/block_test/block_test_all.hpp b/apps/cpu/block_test/block_test_all.hpp index bbe172dd3f6477a5262bc9eee997d32ceed95e5e..fddbce9d91d75458ba709d1fdfa822518ebb8332 100644 --- a/apps/cpu/block_test/block_test_all.hpp +++ b/apps/cpu/block_test/block_test_all.hpp @@ -196,7 +196,7 @@ void block_test_all(const char *cstr) if (refineLevel > 0) { - if(myid == 0) UBLOG(logINFO,"Refinement - start"); + if(myid == 0) UBLOG(logINFO,"Refinement - start"); RefineCrossAndInsideGbObjectBlockVisitor refVisitor(refineCube, baseLevel, refineLevel-1); grid->accept(refVisitor); @@ -213,7 +213,7 @@ void block_test_all(const char *cstr) D3Q27System::getLBMDirections(dirs); SetInterpolationDirsBlockVisitor interDirsVisitor(dirs); grid->accept(interDirsVisitor); - if(myid == 0) UBLOG(logINFO,"Refinement - end"); + if(myid == 0) UBLOG(logINFO,"Refinement - end"); } MetisPartitioningGridVisitor metisVisitor(numOfThreads, D3Q27System::B, comm, true); diff --git a/apps/cpu/block_test/block_test_incompressible.hpp b/apps/cpu/block_test/block_test_incompressible.hpp index 61b8d762bdf727816f07833c30e02e86e02c2c20..429bb8fe9469a723aa9c28db474a96e6257e9a0a 100644 --- a/apps/cpu/block_test/block_test_incompressible.hpp +++ b/apps/cpu/block_test/block_test_incompressible.hpp @@ -198,11 +198,11 @@ void block_test_incompressible(const char *cstr1, const char *cstr2) if (refineLevel > 0) { - if(myid == 0) UBLOG(logINFO,"Refinement - start"); + if(myid == 0) UBLOG(logINFO,"Refinement - start"); RefineCrossAndInsideGbObjectHelper refineHelper(grid, refineLevel); refineHelper.addGbObject(refineCube, refineLevel); refineHelper.refine(); - if(myid == 0) UBLOG(logINFO,"Refinement - end"); + if(myid == 0) UBLOG(logINFO,"Refinement - end"); } diff --git a/apps/cpu/block_test/block_test_periodic.hpp b/apps/cpu/block_test/block_test_periodic.hpp index 4189a903a791cbff4dac801f8b0e34c25bcfac4c..3b11e4c3902394d13bb1aa8e101b6431cdfca707 100644 --- a/apps/cpu/block_test/block_test_periodic.hpp +++ b/apps/cpu/block_test/block_test_periodic.hpp @@ -189,7 +189,7 @@ void block_test_periodic(const char *cstr1, const char *cstr2) if (refineLevel > 0) { - if(myid == 0) UBLOG(logINFO,"Refinement - start"); + if(myid == 0) UBLOG(logINFO,"Refinement - start"); RefineCrossAndInsideGbObjectBlockVisitor refVisitor(refineCube, refineLevel); grid->accept(refVisitor); @@ -206,7 +206,7 @@ void block_test_periodic(const char *cstr1, const char *cstr2) D3Q27System::getLBMDirections(dirs); SetInterpolationDirsBlockVisitor interDirsVisitor(dirs); grid->accept(interDirsVisitor); - if(myid == 0) UBLOG(logINFO,"Refinement - end"); + if(myid == 0) UBLOG(logINFO,"Refinement - end"); } MetisPartitioningGridVisitor metisVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::B, true, numOfThreads); diff --git a/apps/cpu/bond_benchmark/bonb_b_chanel.cpp b/apps/cpu/bond_benchmark/bonb_b_chanel.cpp index 7df5a016279b60337a5a24b4c3a5241d7f0555b9..6aac623f406496ee692f2f6b4141cc6827a7e215 100644 --- a/apps/cpu/bond_benchmark/bonb_b_chanel.cpp +++ b/apps/cpu/bond_benchmark/bonb_b_chanel.cpp @@ -167,11 +167,11 @@ void chanel(const char *cstr) if (refineLevel > 0) { - if(myid == 0) UBLOG(logINFO,"Refinement - start"); + if(myid == 0) UBLOG(logINFO,"Refinement - start"); RefineCrossAndInsideGbObjectHelper refineHelper(grid, refineLevel); refineHelper.addGbObject(refineCube, 1); refineHelper.refine(); - if(myid == 0) UBLOG(logINFO,"Refinement - end"); + if(myid == 0) UBLOG(logINFO,"Refinement - end"); } diff --git a/apps/cpu/bond_benchmark/bond_b.cpp b/apps/cpu/bond_benchmark/bond_b.cpp index e3924595d89afd1f81cd4dde159f42a569e0cd01..02a1e4d0ff652a7f600074164687859f61a0193c 100644 --- a/apps/cpu/bond_benchmark/bond_b.cpp +++ b/apps/cpu/bond_benchmark/bond_b.cpp @@ -172,11 +172,11 @@ void periodic(const char *cstr1, const char *cstr2) //if (refineLevel > 0) //{ - // if(myid == 0) UBLOG(logINFO,"Refinement - start"); + // if(myid == 0) UBLOG(logINFO,"Refinement - start"); // RefineCrossAndInsideGbObjectHelper refineHelper(grid, refineLevel); // refineHelper.addGbObject(refineCube, 1); // refineHelper.refine(); - // if(myid == 0) UBLOG(logINFO,"Refinement - end"); + // if(myid == 0) UBLOG(logINFO,"Refinement - end"); //} D3Q27InterpolationProcessorPtr iProcessor(new D3Q27IncompressibleOffsetInterpolationProcessor()); @@ -191,7 +191,7 @@ void periodic(const char *cstr1, const char *cstr2) else if(comm_type == "BOND") { //MetisPartitioningWithBundlesGridVisitor metisVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::B, true, numOfThreads); - MetisPartitioningGridVisitor metisVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::B, true, numOfThreads); + MetisPartitioningGridVisitor metisVisitor(comm, MetisPartitioningGridVisitor::LevelBased, D3Q27System::B, true, numOfThreads); grid->accept( metisVisitor ); D3Q27BondSetConnectorsBlockVisitor setConnsVisitor(comm, true, D3Q27System::ENDDIR, nueLB, iProcessor); grid->accept( setConnsVisitor ); diff --git a/apps/cpu/bond_benchmark/bond_b_test.cpp b/apps/cpu/bond_benchmark/bond_b_test.cpp index 8ad0b60c37d84ef7038fd0c016ba6fd8146bc504..52e96c0888f018a6a2555e3f1552bc38a87db95e 100644 --- a/apps/cpu/bond_benchmark/bond_b_test.cpp +++ b/apps/cpu/bond_benchmark/bond_b_test.cpp @@ -44,7 +44,7 @@ int agent_main() MPI_Initialized(&_mpiInitialized); if(!_mpiInitialized) { - MPI_Init(0, 0); + MPI_Init(0, 0); _mpiInitialized = true; } diff --git a/src/basics/geometry3d/CoordinateTransformation3D.cpp b/src/basics/geometry3d/CoordinateTransformation3D.cpp index be758ced5561449c447abca8b0affd306077c420..d3a89c6f92ee2f63579d1f8c18cc61e47014a105 100644 --- a/src/basics/geometry3d/CoordinateTransformation3D.cpp +++ b/src/basics/geometry3d/CoordinateTransformation3D.cpp @@ -64,9 +64,9 @@ CoordinateTransformation3D::CoordinateTransformation3D(CoordinateTransformation3 /*======================================================*/ // void CoordinateTransformation3D::init() // { -// this->Tx1 = 0.0; this->Tx2 = 0.0; this->Tx3 = 0.0; -// this->Sx1 = 1.0; this->Sx2 = 1.0; this->Sx3 = 1.0; -// this->alpha = 0.0; this->beta = 0.0; this->gamma = 0.0; +// this->Tx1 = 0.0; this->Tx2 = 0.0; this->Tx3 = 0.0; +// this->Sx1 = 1.0; this->Sx2 = 1.0; this->Sx3 = 1.0; +// this->alpha = 0.0; this->beta = 0.0; this->gamma = 0.0; // // this->toX1factorX1 = 1.0; this->toX1factorX2 = 0.0; this->toX1factorX3 = 0.0; // this->toX2factorX1 = 0.0; this->toX2factorX2 = 1.0; this->toX2factorX3 = 0.0; diff --git a/src/basics/geometry3d/GbImplicitSurface.cpp b/src/basics/geometry3d/GbImplicitSurface.cpp index 6dec5717341d0f55e2b34b3e87d4f15e2b077f8c..132b71fca06f02d6f784be34a7e162e3e74bfbe5 100644 --- a/src/basics/geometry3d/GbImplicitSurface.cpp +++ b/src/basics/geometry3d/GbImplicitSurface.cpp @@ -49,8 +49,8 @@ using boost::math::tools::bisect; /*=======================================================*/ // ObObjectCreator* GbImplicitSurface::getCreator() // { -// GbObject3DCreator instance; -// return &instance; +// GbObject3DCreator instance; +// return &instance; // } /*=======================================================*/ // Konstruktor @@ -62,39 +62,39 @@ GbImplicitSurface::GbImplicitSurface() //: GbObject3D() // Konstruktor GbImplicitSurface::GbImplicitSurface(const double& x1a, const double& x2a, const double& x3a, const double& x1b, const double& x2b, const double& x3b, const double& edgeLength, const double& dx, const double& thickness) :GbObject3D() { - this->p1 = new GbPoint3D(x1a, x2a, x3a); - this->p2 = new GbPoint3D(x1b, x2b, x3b); + this->p1 = new GbPoint3D(x1a, x2a, x3a); + this->p2 = new GbPoint3D(x1b, x2b, x3b); this->p1->addObserver(this); this->p2->addObserver(this); - this->p3 = new GbPoint3D(x1a, x2a, x3a); - this->p4 = new GbPoint3D(x1b, x2b, x3b); + this->p3 = new GbPoint3D(x1a, x2a, x3a); + this->p4 = new GbPoint3D(x1b, x2b, x3b); this->p3->addObserver(this); this->p4->addObserver(this); - this->edgeLength = edgeLength; - this->dx = dx; - this->thickness = thickness; + this->edgeLength = edgeLength; + this->dx = dx; + this->thickness = thickness; } /*=======================================================*/ // Konstruktor //GbImplicitSurface::GbImplicitSurface( -// const double& x1a, const double& x2a, const double& x3a, -// const double& x1b, const double& x2b, const double& x3b, +// const double& x1a, const double& x2a, const double& x3a, +// const double& x1b, const double& x2b, const double& x3b, // -// const double& x1c, const double& x2c, const double& x3c, -// const double& x1d, const double& x2d, const double& x3d, +// const double& x1c, const double& x2c, const double& x3c, +// const double& x1d, const double& x2d, const double& x3d, // -// const double& edgeLength, const double& dx) :GbObject3D() +// const double& edgeLength, const double& dx) :GbObject3D() //{ -// this->p1 = new GbPoint3D(x1a, x2a, x3a); -// this->p2 = new GbPoint3D(x1b, x2b, x3b); +// this->p1 = new GbPoint3D(x1a, x2a, x3a); +// this->p2 = new GbPoint3D(x1b, x2b, x3b); // -// this->p3 = new GbPoint3D(x1c, x2c, x3c); -// this->p4 = new GbPoint3D(x1d, x2d, x3d); +// this->p3 = new GbPoint3D(x1c, x2c, x3c); +// this->p4 = new GbPoint3D(x1d, x2d, x3d); // -// this->edgeLength = edgeLength; -// this->dx = dx; +// this->edgeLength = edgeLength; +// this->dx = dx; //} GbImplicitSurface::GbImplicitSurface(GbImplicitSurface * imp) { @@ -114,295 +114,295 @@ GbImplicitSurface::~GbImplicitSurface() } /*=======================================================*/ struct TerminationCondition { - bool operator() (double min, double max) { - return abs(min - max) <= 10e-10; - } + bool operator() (double min, double max) { + return abs(min - max) <= 10e-10; + } }; /*============================================M-===========*/ struct FunctionToApproximate { - double x, y, z; - double dir1, dir2, dir3, L; - double operator() (double q) { - return sin(2.*M_PI / L*(x + q*dir1))*cos(2.*M_PI / L*(y + q*dir2)) + sin(2.*M_PI / L*(y + q*dir2))*cos(2.*M_PI / L*(z + q*dir3)) + sin(2.*M_PI / L*(z + q*dir3))*cos(2.*M_PI / L*(x + q*dir1)); - } + double x, y, z; + double dir1, dir2, dir3, L; + double operator() (double q) { + return sin(2.*M_PI / L*(x + q*dir1))*cos(2.*M_PI / L*(y + q*dir2)) + sin(2.*M_PI / L*(y + q*dir2))*cos(2.*M_PI / L*(z + q*dir3)) + sin(2.*M_PI / L*(z + q*dir3))*cos(2.*M_PI / L*(x + q*dir1)); + } }; /*=======================================================*/ struct FunctionGyroidThirdOrder { - double x, y, z; - double dir1, dir2, dir3, L; - double h; - - double t17, t3, t2, t18, t20, t8, t13, t5, t9, t6, t11, t14; - double f300, f210, f201, f120, f102, f030, f021, f012, f003, f200, f110, f101, f020, f011, f002, f100, f010, f001, f000; + double x, y, z; + double dir1, dir2, dir3, L; + double h; + + double t17, t3, t2, t18, t20, t8, t13, t5, t9, t6, t11, t14; + double f300, f210, f201, f120, f102, f030, f021, f012, f003, f200, f110, f101, f020, f011, f002, f100, f010, f001, f000; - double repeatedTerm, repeatedTermRoot; - double T1, T2, T3, T4, T5, T6, T7, T8, T9, Gyroidh; + double repeatedTerm, repeatedTermRoot; + double T1, T2, T3, T4, T5, T6, T7, T8, T9, Gyroidh; - double operator() (double q) { - //sins and cosines combinations - t2 = sin((2. * M_PI*(x+q*dir1)) / L)*sin((2. * M_PI*(y+q*dir2)) / L); - t3 = sin((2. * M_PI*(x+q*dir1)) / L)*sin((2. * M_PI*(z+q*dir3)) / L); - t5 = cos((2. * M_PI*(y+q*dir2)) / L)*sin((2. * M_PI*(x+q*dir1)) / L); - t6 = cos((2. * M_PI*(z+q*dir3)) / L)*sin((2. * M_PI*(x+q*dir1)) / L); - t8 = sin((2. * M_PI*(y+q*dir2)) / L)*sin((2. * M_PI*(z+q*dir3)) / L); - t9 = cos((2. * M_PI*(x+q*dir1)) / L)*sin((2. * M_PI*(y+q*dir2)) / L); - t11 = cos((2. * M_PI*(z+q*dir3)) / L)*sin((2. * M_PI*(y+q*dir2)) / L); - t13 = cos((2. * M_PI*(x+q*dir1)) / L)*sin((2. * M_PI*(z+q*dir3)) / L); - t14 = cos((2. * M_PI*(y+q*dir2)) / L)*sin((2. * M_PI*(z+q*dir3)) / L); - t17 = cos((2. * M_PI*(x+q*dir1)) / L)*cos((2. * M_PI*(y+q*dir2)) / L); - t18 = cos((2. * M_PI*(x+q*dir1)) / L)*cos((2. * M_PI*(z+q*dir3)) / L); - t20 = cos((2. * M_PI*(y+q*dir2)) / L)*cos((2. * M_PI*(z+q*dir3)) / L); + double operator() (double q) { + //sins and cosines combinations + t2 = sin((2. * M_PI*(x+q*dir1)) / L)*sin((2. * M_PI*(y+q*dir2)) / L); + t3 = sin((2. * M_PI*(x+q*dir1)) / L)*sin((2. * M_PI*(z+q*dir3)) / L); + t5 = cos((2. * M_PI*(y+q*dir2)) / L)*sin((2. * M_PI*(x+q*dir1)) / L); + t6 = cos((2. * M_PI*(z+q*dir3)) / L)*sin((2. * M_PI*(x+q*dir1)) / L); + t8 = sin((2. * M_PI*(y+q*dir2)) / L)*sin((2. * M_PI*(z+q*dir3)) / L); + t9 = cos((2. * M_PI*(x+q*dir1)) / L)*sin((2. * M_PI*(y+q*dir2)) / L); + t11 = cos((2. * M_PI*(z+q*dir3)) / L)*sin((2. * M_PI*(y+q*dir2)) / L); + t13 = cos((2. * M_PI*(x+q*dir1)) / L)*sin((2. * M_PI*(z+q*dir3)) / L); + t14 = cos((2. * M_PI*(y+q*dir2)) / L)*sin((2. * M_PI*(z+q*dir3)) / L); + t17 = cos((2. * M_PI*(x+q*dir1)) / L)*cos((2. * M_PI*(y+q*dir2)) / L); + t18 = cos((2. * M_PI*(x+q*dir1)) / L)*cos((2. * M_PI*(z+q*dir3)) / L); + t20 = cos((2. * M_PI*(y+q*dir2)) / L)*cos((2. * M_PI*(z+q*dir3)) / L); - //Gyroid third order derivatives - f300 = (8. * pow(M_PI, 3.)*(-t17 + t3)) / pow(L, 3.); - f210 = (8. * pow(M_PI, 3.)*t2) / pow(L, 3.); - f201 = (-8. * pow(M_PI, 3.)*t18) / pow(L, 3.); - f120 = (-8. * pow(M_PI, 3.)*t17) / pow(L, 3.); - f102 = (8. * pow(M_PI, 3.)*t3) / pow(L, 3.); - f030 = (8. * pow(M_PI, 3.)*(t2 - t20)) / pow(L, 3.); - f021 = (8. * pow(M_PI, 3.)*t8) / pow(L, 3.); - f012 = (-8. * pow(M_PI, 3.)*t20) / pow(L, 3.); - f003 = (8. * pow(M_PI, 3.)*(-t18 + t8)) / pow(L, 3.); + //Gyroid third order derivatives + f300 = (8. * pow(M_PI, 3.)*(-t17 + t3)) / pow(L, 3.); + f210 = (8. * pow(M_PI, 3.)*t2) / pow(L, 3.); + f201 = (-8. * pow(M_PI, 3.)*t18) / pow(L, 3.); + f120 = (-8. * pow(M_PI, 3.)*t17) / pow(L, 3.); + f102 = (8. * pow(M_PI, 3.)*t3) / pow(L, 3.); + f030 = (8. * pow(M_PI, 3.)*(t2 - t20)) / pow(L, 3.); + f021 = (8. * pow(M_PI, 3.)*t8) / pow(L, 3.); + f012 = (-8. * pow(M_PI, 3.)*t20) / pow(L, 3.); + f003 = (8. * pow(M_PI, 3.)*(-t18 + t8)) / pow(L, 3.); - //Gyroid second order derivatives - f200 = (-4. * pow(M_PI, 2.)*(t13 + t5)) / pow(L, 2.); - f110 = (-4. * pow(M_PI, 2.)*t9) / pow(L, 2.); - f101 = (-4. * pow(M_PI, 2.)*t6) / pow(L, 2.); - f020 = (-4. * pow(M_PI, 2.)*(t11 + t5)) / pow(L, 2.); - f011 = (-4. * pow(M_PI, 2.)*t14) / pow(L, 2.); - f002 = (-4. * pow(M_PI, 2.)*(t11 + t13)) / pow(L, 2.); + //Gyroid second order derivatives + f200 = (-4. * pow(M_PI, 2.)*(t13 + t5)) / pow(L, 2.); + f110 = (-4. * pow(M_PI, 2.)*t9) / pow(L, 2.); + f101 = (-4. * pow(M_PI, 2.)*t6) / pow(L, 2.); + f020 = (-4. * pow(M_PI, 2.)*(t11 + t5)) / pow(L, 2.); + f011 = (-4. * pow(M_PI, 2.)*t14) / pow(L, 2.); + f002 = (-4. * pow(M_PI, 2.)*(t11 + t13)) / pow(L, 2.); - //Gyroid first order derivatives - f100 = (2. * M_PI*(t17 - t3)) / L; - f010 = (2. * M_PI*(-t2 + t20)) / L; - f001 = (2. * M_PI*(t18 - t8)) / L; + //Gyroid first order derivatives + f100 = (2. * M_PI*(t17 - t3)) / L; + f010 = (2. * M_PI*(-t2 + t20)) / L; + f001 = (2. * M_PI*(t18 - t8)) / L; - //Gyroid - f000 = t11 + t13 + t5; + //Gyroid + f000 = t11 + t13 + t5; - repeatedTerm = f100*f100 + f010*f010 + f001*f001; - repeatedTermRoot = sqrt(repeatedTerm); + repeatedTerm = f100*f100 + f010*f010 + f001*f001; + repeatedTermRoot = sqrt(repeatedTerm); - T1 = f001*f002 + f010*f011 + f100*f101; - T2 = f001*f011 + f010*f020 + f100*f110; - T3 = f001*f101 + f010*f110 + f100*f200; - T4 = f002*f011 + f001*f012 + f011*f020 + f010*f021 + f101*f110; - T5 = f002*f101 + f001*f102 + f011*f110 + f101*f200 + f100*f201; - T6 = f011*f101 + f020*f110 + f010*f120 + f110*f200 + f100*f210; - T7 = f001*f002*h + f010*f011*h + f100*f101*h; - T8 = f001*f011*h + f010*f020*h + f100*f110*h; - T9 = f001*f101*h + f010*f110*h + f100*f200*h; + T1 = f001*f002 + f010*f011 + f100*f101; + T2 = f001*f011 + f010*f020 + f100*f110; + T3 = f001*f101 + f010*f110 + f100*f200; + T4 = f002*f011 + f001*f012 + f011*f020 + f010*f021 + f101*f110; + T5 = f002*f101 + f001*f102 + f011*f110 + f101*f200 + f100*f201; + T6 = f011*f101 + f020*f110 + f010*f120 + f110*f200 + f100*f210; + T7 = f001*f002*h + f010*f011*h + f100*f101*h; + T8 = f001*f011*h + f010*f020*h + f100*f110*h; + T9 = f001*f101*h + f010*f110*h + f100*f200*h; - Gyroidh = 2 * h*sqrt(pow(f001 - (T1*h) / (2.*repeatedTermRoot), 2) + pow(f010 - (T2*h) / (2.*repeatedTermRoot), 2) + pow(f100 - (T3*h) / (2.*repeatedTermRoot), 2)) - - (3 * h*sqrt(pow(f001 - (T1*h) / (3.*repeatedTermRoot), 2) + pow(f010 - (T2*h) / (3.*repeatedTermRoot), 2) + pow(f100 - (T3*h) / (3.*repeatedTermRoot), 2))) / 2. - - (3 * h*sqrt(pow(f001 - (T1*h) / (3.*repeatedTermRoot) + (h*((T7 - 3 * f001*repeatedTermRoot)* - (4 * pow(T1, 2)*h - 4 * (pow(f002, 2) + f001*f003 + pow(f011, 2) + f010*f012 + pow(f101, 2) + f100*f102)*h*repeatedTerm + 12 * f002*pow(repeatedTerm, 1.5)) + - (T8 - 3 * f010*repeatedTermRoot)*(4 * T1*T2*h - 4 * (T4)*h*repeatedTerm + 12 * f011*pow(repeatedTerm, 1.5)) + - (T9 - 3 * f100*repeatedTermRoot)*(4 * T1*T3*h - 4 * (T5)*h*repeatedTerm + 12 * f101*pow(repeatedTerm, 1.5)))) / - (108.*sqrt(pow(f001 - (T1*h) / (3.*repeatedTermRoot), 2) + pow(f010 - (T2*h) / (3.*repeatedTermRoot), 2) + pow(f100 - (T3*h) / (3.*repeatedTermRoot), 2))* - pow(repeatedTerm, 2)), 2) + pow(f010 - (T2*h) / (3.*repeatedTermRoot) + - (h*((T7 - 3 * f001*repeatedTermRoot)*(4 * T1*T2*h - 4 * (T4)*h*repeatedTerm + 12 * f011*pow(repeatedTerm, 1.5)) + - (T8 - 3 * f010*repeatedTermRoot)*(4 * pow(T2, 2)*h - 4 * (pow(f011, 2) + pow(f020, 2) + f001*f021 + f010*f030 + pow(f110, 2) + f100*f120)*h*repeatedTerm + 12 * f020*pow(repeatedTerm, 1.5)) + - (T9 - 3 * f100*repeatedTermRoot)*(4 * T2*T3*h - 4 * (T6)*h*repeatedTerm + 12 * f110*pow(repeatedTerm, 1.5)))) / - (108.*sqrt(pow(f001 - (T1*h) / (3.*repeatedTermRoot), 2) + pow(f010 - (T2*h) / (3.*repeatedTermRoot), 2) + pow(f100 - (T3*h) / (3.*repeatedTermRoot), 2))* - pow(repeatedTerm, 2)), 2) + pow(f100 - (T3*h) / (3.*repeatedTermRoot) + - (h*((T7 - 3 * f001*repeatedTermRoot)*(4 * T1*T3*h - 4 * (T5)*h*repeatedTerm + 12 * f101*pow(repeatedTerm, 1.5)) + - (T8 - 3 * f010*repeatedTermRoot)*(4 * T2*T3*h - 4 * (T6)*h*repeatedTerm + 12 * f110*pow(repeatedTerm, 1.5)) + - (T9 - 3 * f100*repeatedTermRoot)*(4 * pow(T3, 2)*h - 4 * (pow(f101, 2) + pow(f110, 2) + pow(f200, 2) + f001*f201 + f010*f210 + f100*f300)*h*repeatedTerm + 12 * f200*pow(repeatedTerm, 1.5)))) / - (108.*sqrt(pow(f001 - (T1*h) / (3.*repeatedTermRoot), 2) + pow(f010 - (T2*h) / (3.*repeatedTermRoot), 2) + pow(f100 - (T3*h) / (3.*repeatedTermRoot), 2))* - pow(repeatedTerm, 2)), 2))) / 2. + f000; - - return Gyroidh; - } + Gyroidh = 2 * h*sqrt(pow(f001 - (T1*h) / (2.*repeatedTermRoot), 2) + pow(f010 - (T2*h) / (2.*repeatedTermRoot), 2) + pow(f100 - (T3*h) / (2.*repeatedTermRoot), 2)) + - (3 * h*sqrt(pow(f001 - (T1*h) / (3.*repeatedTermRoot), 2) + pow(f010 - (T2*h) / (3.*repeatedTermRoot), 2) + pow(f100 - (T3*h) / (3.*repeatedTermRoot), 2))) / 2. + - (3 * h*sqrt(pow(f001 - (T1*h) / (3.*repeatedTermRoot) + (h*((T7 - 3 * f001*repeatedTermRoot)* + (4 * pow(T1, 2)*h - 4 * (pow(f002, 2) + f001*f003 + pow(f011, 2) + f010*f012 + pow(f101, 2) + f100*f102)*h*repeatedTerm + 12 * f002*pow(repeatedTerm, 1.5)) + + (T8 - 3 * f010*repeatedTermRoot)*(4 * T1*T2*h - 4 * (T4)*h*repeatedTerm + 12 * f011*pow(repeatedTerm, 1.5)) + + (T9 - 3 * f100*repeatedTermRoot)*(4 * T1*T3*h - 4 * (T5)*h*repeatedTerm + 12 * f101*pow(repeatedTerm, 1.5)))) / + (108.*sqrt(pow(f001 - (T1*h) / (3.*repeatedTermRoot), 2) + pow(f010 - (T2*h) / (3.*repeatedTermRoot), 2) + pow(f100 - (T3*h) / (3.*repeatedTermRoot), 2))* + pow(repeatedTerm, 2)), 2) + pow(f010 - (T2*h) / (3.*repeatedTermRoot) + + (h*((T7 - 3 * f001*repeatedTermRoot)*(4 * T1*T2*h - 4 * (T4)*h*repeatedTerm + 12 * f011*pow(repeatedTerm, 1.5)) + + (T8 - 3 * f010*repeatedTermRoot)*(4 * pow(T2, 2)*h - 4 * (pow(f011, 2) + pow(f020, 2) + f001*f021 + f010*f030 + pow(f110, 2) + f100*f120)*h*repeatedTerm + 12 * f020*pow(repeatedTerm, 1.5)) + + (T9 - 3 * f100*repeatedTermRoot)*(4 * T2*T3*h - 4 * (T6)*h*repeatedTerm + 12 * f110*pow(repeatedTerm, 1.5)))) / + (108.*sqrt(pow(f001 - (T1*h) / (3.*repeatedTermRoot), 2) + pow(f010 - (T2*h) / (3.*repeatedTermRoot), 2) + pow(f100 - (T3*h) / (3.*repeatedTermRoot), 2))* + pow(repeatedTerm, 2)), 2) + pow(f100 - (T3*h) / (3.*repeatedTermRoot) + + (h*((T7 - 3 * f001*repeatedTermRoot)*(4 * T1*T3*h - 4 * (T5)*h*repeatedTerm + 12 * f101*pow(repeatedTerm, 1.5)) + + (T8 - 3 * f010*repeatedTermRoot)*(4 * T2*T3*h - 4 * (T6)*h*repeatedTerm + 12 * f110*pow(repeatedTerm, 1.5)) + + (T9 - 3 * f100*repeatedTermRoot)*(4 * pow(T3, 2)*h - 4 * (pow(f101, 2) + pow(f110, 2) + pow(f200, 2) + f001*f201 + f010*f210 + f100*f300)*h*repeatedTerm + 12 * f200*pow(repeatedTerm, 1.5)))) / + (108.*sqrt(pow(f001 - (T1*h) / (3.*repeatedTermRoot), 2) + pow(f010 - (T2*h) / (3.*repeatedTermRoot), 2) + pow(f100 - (T3*h) / (3.*repeatedTermRoot), 2))* + pow(repeatedTerm, 2)), 2))) / 2. + f000; + + return Gyroidh; + } }; /*==========================================================*/ bool GbImplicitSurface::isPointInGbObject3D(const double& x1, const double& x2, const double& x3) { - //double f = sin(2.*M_PI*x1/edgeLength)*cos(2.*M_PI*x2 / edgeLength) + sin(2.*M_PI*x2 / edgeLength)*cos(2.*M_PI*x3 / edgeLength) + sin(2.*M_PI*x3 / edgeLength)*cos(2.*M_PI*x1 / edgeLength); - //evaluateImplicitFunction(x1,x2,x3, 0., 0., 0.) - double f1 = evaluateImplicitFunction(x1, x2, x3, 1.); - double f2 = evaluateImplicitFunction(x1, x2, x3, -1.); - // if (f < 10.0E-15 && f > -10.0E-15) - //if (fabs(f) <= 10e-15) - //if (f <= 0) - if (f1 <= 0. && f2 >= 0.) + //double f = sin(2.*M_PI*x1/edgeLength)*cos(2.*M_PI*x2 / edgeLength) + sin(2.*M_PI*x2 / edgeLength)*cos(2.*M_PI*x3 / edgeLength) + sin(2.*M_PI*x3 / edgeLength)*cos(2.*M_PI*x1 / edgeLength); + //evaluateImplicitFunction(x1,x2,x3, 0., 0., 0.) + double f1 = evaluateImplicitFunction(x1, x2, x3, 1.); + double f2 = evaluateImplicitFunction(x1, x2, x3, -1.); + // if (f < 10.0E-15 && f > -10.0E-15) + //if (fabs(f) <= 10e-15) + //if (f <= 0) + if (f1 <= 0. && f2 >= 0.) { - return true; + return true; } else { - return false; + return false; } } /*==========================================================*/ double GbImplicitSurface::getIntersectionRaytraceFactor(const double& x1, const double& x2, const double& x3, const double& rx1, const double& rx2, const double& rx3) { - double from = 0; // The solution must lie in the interval [from, to], additionally f(from) <= 0 && f(to) >= 0 - double to = dx*sqrt(rx1*rx1+ rx2*rx2+ rx3*rx3); - FunctionGyroidThirdOrder f; - //FunctionToApproximate f; - f.x =x1 ; - f.y =x2 ; - f.z =x3 ; - f.dir1 = rx1; - f.dir2 = rx2; - f.dir3 = rx3; - f.L = edgeLength; - f.h = thickness; - if (f(from)*f(to)<0) - { - std::pair<double, double> result = bisect(f, from, to, TerminationCondition()); - double root = (result.first + result.second) / 2; - return root; - } - f.h = -thickness; - if (f(from)*f(to) < 0) - { - std::pair<double, double> result = bisect(f, from, to, TerminationCondition()); - double root = (result.first + result.second) / 2; - return root; - } - else - { - return 999; - } - + double from = 0; // The solution must lie in the interval [from, to], additionally f(from) <= 0 && f(to) >= 0 + double to = dx*sqrt(rx1*rx1+ rx2*rx2+ rx3*rx3); + FunctionGyroidThirdOrder f; + //FunctionToApproximate f; + f.x =x1 ; + f.y =x2 ; + f.z =x3 ; + f.dir1 = rx1; + f.dir2 = rx2; + f.dir3 = rx3; + f.L = edgeLength; + f.h = thickness; + if (f(from)*f(to)<0) + { + std::pair<double, double> result = bisect(f, from, to, TerminationCondition()); + double root = (result.first + result.second) / 2; + return root; + } + f.h = -thickness; + if (f(from)*f(to) < 0) + { + std::pair<double, double> result = bisect(f, from, to, TerminationCondition()); + double root = (result.first + result.second) / 2; + return root; + } + else + { + return 999; + } + } /*=======================================================*/ double GbImplicitSurface::evaluateImplicitFunction(const double& x1, const double& x2, const double& x3, const double& position) { - double to = 0.; - FunctionGyroidThirdOrder f; - f.x = x1; - f.y = x2; - f.z = x3; - f.dir1 = 0.; - f.dir2 = 0.; - f.dir3 = 0.; - f.L = edgeLength; - f.h = position*thickness; - return f(to); + double to = 0.; + FunctionGyroidThirdOrder f; + f.x = x1; + f.y = x2; + f.z = x3; + f.dir1 = 0.; + f.dir2 = 0.; + f.dir3 = 0.; + f.L = edgeLength; + f.h = position*thickness; + return f(to); } /*=======================================================*/ double GbImplicitSurface::getX1Centroid() { - return (0.5*(p1->x1 + p2->x1)); + return (0.5*(p1->x1 + p2->x1)); } /*=======================================================*/ double GbImplicitSurface::getX1Minimum() { - return (this->p1->x1 < this->p2->x1 ? this->p1->x1 : this->p2->x1); + return (this->p1->x1 < this->p2->x1 ? this->p1->x1 : this->p2->x1); } /*=======================================================*/ double GbImplicitSurface::getX1Maximum() { - return (this->p1->x1 > this->p2->x1 ? this->p1->x1 : this->p2->x1); + return (this->p1->x1 > this->p2->x1 ? this->p1->x1 : this->p2->x1); } /*=======================================================*/ double GbImplicitSurface::getX2Centroid() { - return (0.5*(p1->x2 + p2->x2)); + return (0.5*(p1->x2 + p2->x2)); } /*=======================================================*/ double GbImplicitSurface::getX2Minimum() { - return (this->p1->x2 < this->p2->x2 ? this->p1->x2 : this->p2->x2); + return (this->p1->x2 < this->p2->x2 ? this->p1->x2 : this->p2->x2); } /*=======================================================*/ double GbImplicitSurface::getX2Maximum() { - return (this->p1->x2 > this->p2->x2 ? this->p1->x2 : this->p2->x2); + return (this->p1->x2 > this->p2->x2 ? this->p1->x2 : this->p2->x2); } /*=======================================================*/ double GbImplicitSurface::getX3Centroid() { - return (0.5*(p1->x3 + p2->x3)); + return (0.5*(p1->x3 + p2->x3)); } /*=======================================================*/ double GbImplicitSurface::getX3Minimum() { - return (this->p1->x3 < this->p2->x3 ? this->p1->x3 : this->p2->x3); + return (this->p1->x3 < this->p2->x3 ? this->p1->x3 : this->p2->x3); } /*=======================================================*/ double GbImplicitSurface::getX3Maximum() { - return (this->p1->x3 > this->p2->x3 ? this->p1->x3 : this->p2->x3); + return (this->p1->x3 > this->p2->x3 ? this->p1->x3 : this->p2->x3); } /*=======================================================*/ bool GbImplicitSurface::isCellInsideGbObject3D(const double& x1a, const double& x2a, const double& x3a, const double& x1b, const double& x2b, const double& x3b) { - if (this->isPointInGbObject3D(x1a, x2a, x3a) - && this->isPointInGbObject3D(x1b, x2a, x3a) - && this->isPointInGbObject3D(x1b, x2b, x3a) - && this->isPointInGbObject3D(x1a, x2b, x3a) - && this->isPointInGbObject3D(x1a, x2a, x3b) - && this->isPointInGbObject3D(x1b, x2a, x3b) - && this->isPointInGbObject3D(x1b, x2b, x3b) - && this->isPointInGbObject3D(x1a, x2b, x3b)) - { - return true; - } - return false; + if (this->isPointInGbObject3D(x1a, x2a, x3a) + && this->isPointInGbObject3D(x1b, x2a, x3a) + && this->isPointInGbObject3D(x1b, x2b, x3a) + && this->isPointInGbObject3D(x1a, x2b, x3a) + && this->isPointInGbObject3D(x1a, x2a, x3b) + && this->isPointInGbObject3D(x1b, x2a, x3b) + && this->isPointInGbObject3D(x1b, x2b, x3b) + && this->isPointInGbObject3D(x1a, x2b, x3b)) + { + return true; + } + return false; } /*=======================================================*/ bool GbImplicitSurface::isCellInsideOrCuttingGbObject3D(const double& x1a, const double& x2a, const double& x3a, const double& x1b, const double& x2b, const double& x3b) { - if ((this->isPointInGbObject3D(x1a, x2a, x3a) == false) - && (this->isPointInGbObject3D(x1b, x2a, x3a) == false) - && (this->isPointInGbObject3D(x1b, x2b, x3a) == false) - && (this->isPointInGbObject3D(x1a, x2b, x3a) == false) - && (this->isPointInGbObject3D(x1a, x2a, x3b) == false) - && (this->isPointInGbObject3D(x1b, x2a, x3b) == false) - && (this->isPointInGbObject3D(x1b, x2b, x3b) == false) - && (this->isPointInGbObject3D(x1a, x2b, x3b) == false)) - { - return false; - } - return true; + if ((this->isPointInGbObject3D(x1a, x2a, x3a) == false) + && (this->isPointInGbObject3D(x1b, x2a, x3a) == false) + && (this->isPointInGbObject3D(x1b, x2b, x3a) == false) + && (this->isPointInGbObject3D(x1a, x2b, x3a) == false) + && (this->isPointInGbObject3D(x1a, x2a, x3b) == false) + && (this->isPointInGbObject3D(x1b, x2a, x3b) == false) + && (this->isPointInGbObject3D(x1b, x2b, x3b) == false) + && (this->isPointInGbObject3D(x1a, x2b, x3b) == false)) + { + return false; + } + return true; } /*=======================================================*/ bool GbImplicitSurface::isCellCuttingGbObject3D(const double& x1a, const double& x2a, const double& x3a, const double& x1b, const double& x2b, const double& x3b) { - if (!this->isCellInsideGbObject3D(x1a, x2a, x3a, x1b, x2b, x3b) - && this->isCellInsideOrCuttingGbObject3D(x1a, x2a, x3a, x1b, x2b, x3b)) - { - return true; - } - return false; + if (!this->isCellInsideGbObject3D(x1a, x2a, x3a, x1b, x2b, x3b) + && this->isCellInsideOrCuttingGbObject3D(x1a, x2a, x3a, x1b, x2b, x3b)) + { + return true; + } + return false; } /*=======================================================*/ void GbImplicitSurface::addSurfaceTriangleSet(vector<UbTupleFloat3>& nodes, vector<UbTupleInt3>& triangles) { - /*0*/nodes.push_back(makeUbTuple((float)getX1Minimum(), (float)getX2Minimum(), (float)getX3Minimum())); - /*1*/nodes.push_back(makeUbTuple((float)getX1Maximum(), (float)getX2Minimum(), (float)getX3Minimum())); - /*2*/nodes.push_back(makeUbTuple((float)getX1Maximum(), (float)getX2Maximum(), (float)getX3Minimum())); - /*3.*/nodes.push_back(makeUbTuple((float)getX1Minimum(), (float)getX2Maximum(), (float)getX3Minimum())); + /*0*/nodes.push_back(makeUbTuple((float)getX1Minimum(), (float)getX2Minimum(), (float)getX3Minimum())); + /*1*/nodes.push_back(makeUbTuple((float)getX1Maximum(), (float)getX2Minimum(), (float)getX3Minimum())); + /*2*/nodes.push_back(makeUbTuple((float)getX1Maximum(), (float)getX2Maximum(), (float)getX3Minimum())); + /*3.*/nodes.push_back(makeUbTuple((float)getX1Minimum(), (float)getX2Maximum(), (float)getX3Minimum())); - /*4*/nodes.push_back(makeUbTuple((float)getX1Minimum(), (float)getX2Minimum(), (float)getX3Maximum())); - /*5*/nodes.push_back(makeUbTuple((float)getX1Maximum(), (float)getX2Minimum(), (float)getX3Maximum())); - /*6*/nodes.push_back(makeUbTuple((float)getX1Maximum(), (float)getX2Maximum(), (float)getX3Maximum())); - /*7*/nodes.push_back(makeUbTuple((float)getX1Minimum(), (float)getX2Maximum(), (float)getX3Maximum())); + /*4*/nodes.push_back(makeUbTuple((float)getX1Minimum(), (float)getX2Minimum(), (float)getX3Maximum())); + /*5*/nodes.push_back(makeUbTuple((float)getX1Maximum(), (float)getX2Minimum(), (float)getX3Maximum())); + /*6*/nodes.push_back(makeUbTuple((float)getX1Maximum(), (float)getX2Maximum(), (float)getX3Maximum())); + /*7*/nodes.push_back(makeUbTuple((float)getX1Minimum(), (float)getX2Maximum(), (float)getX3Maximum())); - //"unten" - triangles.push_back(makeUbTuple(0, 1, 2)); - triangles.push_back(makeUbTuple(0, 2, 3)); - //"oben" - triangles.push_back(makeUbTuple(4, 5, 6)); - triangles.push_back(makeUbTuple(4, 6, 7)); - //"links" - triangles.push_back(makeUbTuple(0, 3, 7)); - triangles.push_back(makeUbTuple(0, 7, 4)); - //"rechts" - triangles.push_back(makeUbTuple(1, 2, 6)); - triangles.push_back(makeUbTuple(1, 6, 5)); - //"hinten" - triangles.push_back(makeUbTuple(3, 2, 7)); - triangles.push_back(makeUbTuple(2, 7, 6)); - //"vorne" - triangles.push_back(makeUbTuple(0, 1, 5)); - triangles.push_back(makeUbTuple(0, 5, 4)); + //"unten" + triangles.push_back(makeUbTuple(0, 1, 2)); + triangles.push_back(makeUbTuple(0, 2, 3)); + //"oben" + triangles.push_back(makeUbTuple(4, 5, 6)); + triangles.push_back(makeUbTuple(4, 6, 7)); + //"links" + triangles.push_back(makeUbTuple(0, 3, 7)); + triangles.push_back(makeUbTuple(0, 7, 4)); + //"rechts" + triangles.push_back(makeUbTuple(1, 2, 6)); + triangles.push_back(makeUbTuple(1, 6, 5)); + //"hinten" + triangles.push_back(makeUbTuple(3, 2, 7)); + triangles.push_back(makeUbTuple(2, 7, 6)); + //"vorne" + triangles.push_back(makeUbTuple(0, 1, 5)); + triangles.push_back(makeUbTuple(0, 5, 4)); } /*==========================================================*/ void GbImplicitSurface::objectChanged(UbObservable *changedObject) diff --git a/src/basics/geometry3d/GbImplicitSurface.h b/src/basics/geometry3d/GbImplicitSurface.h index a72c9442eca57d3bdd99887c8e5692afec939e1d..6d6b4276c4f457271fda7347addfb028708c8086 100644 --- a/src/basics/geometry3d/GbImplicitSurface.h +++ b/src/basics/geometry3d/GbImplicitSurface.h @@ -56,40 +56,40 @@ using GbImplicitSurfacePtr = SPtr<GbImplicitSurface>; class GbImplicitSurface : public GbObject3D, public UbObserver { public: - GbImplicitSurface(); - GbImplicitSurface(const double& x1a, const double& x2a, const double& x3a, const double& x1b, const double& x2b, const double& x3b, const double& edgeLength, const double& dx, const double& thickness=0); + GbImplicitSurface(); + GbImplicitSurface(const double& x1a, const double& x2a, const double& x3a, const double& x1b, const double& x2b, const double& x3b, const double& edgeLength, const double& dx, const double& thickness=0); - GbImplicitSurface(const double & x1a, const double & x2a, const double & x3a, const double & x1b, const double & x2b, const double & x3b, const double & x1c, const double & x2c, const double & x3c, const double & x1d, const double & x2d, const double & x3d, const double & edgeLength, const double & dx); - //GbImplicitSurface(const double& minX1, const double& minX2, const double& minX3, const double& maxX1, const double& maxX2, const double& maxX3); - GbImplicitSurface(GbImplicitSurface *imp); - ~GbImplicitSurface(); + GbImplicitSurface(const double & x1a, const double & x2a, const double & x3a, const double & x1b, const double & x2b, const double & x3b, const double & x1c, const double & x2c, const double & x3c, const double & x1d, const double & x2d, const double & x3d, const double & edgeLength, const double & dx); + //GbImplicitSurface(const double& minX1, const double& minX2, const double& minX3, const double& maxX1, const double& maxX2, const double& maxX3); + GbImplicitSurface(GbImplicitSurface *imp); + ~GbImplicitSurface(); - GbImplicitSurface* clone() override { return new GbImplicitSurface(this); } - void finalize() override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } + GbImplicitSurface* clone() override { return new GbImplicitSurface(this); } + void finalize() override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } - double getX1Centroid() override; - double getX1Minimum() override; - double getX1Maximum() override; - double getX2Centroid()override; - double getX2Minimum() override; - double getX2Maximum() override; - double getX3Centroid()override; - double getX3Minimum() override; - double getX3Maximum() override; + double getX1Centroid() override; + double getX1Minimum() override; + double getX1Maximum() override; + double getX2Centroid()override; + double getX2Minimum() override; + double getX2Maximum() override; + double getX3Centroid()override; + double getX3Minimum() override; + double getX3Maximum() override; void setCenterCoordinates(const double &x1, const double &x2, const double &x3) override {throw UbException(UB_EXARGS, "finalize() - not implemented"); } - void translate(const double& x1, const double& x2, const double& x3) override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } - void rotate(const double& rx1, const double& rx2, const double& rx3) override{ throw UbException(UB_EXARGS, "finalize() - not implemented"); } - void scale(const double& sx1, const double& sx2, const double& sx3) override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } + void translate(const double& x1, const double& x2, const double& x3) override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } + void rotate(const double& rx1, const double& rx2, const double& rx3) override{ throw UbException(UB_EXARGS, "finalize() - not implemented"); } + void scale(const double& sx1, const double& sx2, const double& sx3) override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } - double getLengthX1(); - double getLengthX2(); - double getLengthX3(); - - bool isPointInGbObject3D(const double &x1p, const double &x2p, const double &x3p, bool &pointinboundary) override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } + double getLengthX1(); + double getLengthX2(); + double getLengthX3(); + + bool isPointInGbObject3D(const double &x1p, const double &x2p, const double &x3p, bool &pointinboundary) override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } bool isPointInGbObject3D(const double &x1p, const double &x2p, const double &x3p) override; bool isCellInsideGbObject3D(const double &x1a, const double &x2a, const double &x3a, const double &x1b, const double &x2b, const double &x3b) override; @@ -100,58 +100,58 @@ public: double getCellVolumeInsideGbObject3D(const double &x1a, const double &x2a, const double &x3a, const double &x1b, const double &x2b, const double &x3b) override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } - GbPoint3D *calculateInterSectionPoint3D(GbPoint3D &point1, GbPoint3D &point2); - //GbImplicitSurface* createClippedRectangle3D(const double& x1a,const double& x2a,const double& x3a,const double& x1b,const double& x2b,const double& x3b); + GbPoint3D *calculateInterSectionPoint3D(GbPoint3D &point1, GbPoint3D &point2); + //GbImplicitSurface* createClippedRectangle3D(const double& x1a,const double& x2a,const double& x3a,const double& x1b,const double& x2b,const double& x3b); GbLine3D *createClippedLine3D (GbPoint3D &point1, GbPoint3D &point2) override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } - std::vector<GbTriangle3D *> getSurfaceTriangleSet() override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } + std::vector<GbTriangle3D *> getSurfaceTriangleSet() override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } - void addSurfaceTriangleSet(std::vector<UbTupleFloat3> &nodes, std::vector<UbTupleInt3> &triangles) override; + void addSurfaceTriangleSet(std::vector<UbTupleFloat3> &nodes, std::vector<UbTupleInt3> &triangles) override; - bool hasRaytracing() override { return true; } + bool hasRaytracing() override { return true; } - /*|r| must be 1! einheitsvector!!*/ - double getIntersectionRaytraceFactor (const double& x1, const double& x2, const double& x3, const double& rx1, const double& rx2, const double& rx3) override; + /*|r| must be 1! einheitsvector!!*/ + double getIntersectionRaytraceFactor (const double& x1, const double& x2, const double& x3, const double& rx1, const double& rx2, const double& rx3) override; - double evaluateImplicitFunction(const double & x1, const double & x2, const double & x3, const double & position); + double evaluateImplicitFunction(const double & x1, const double & x2, const double & x3, const double & position); - double getDistance(const double& x1p, const double& x2p, const double& x3p) - { - throw UbException(UB_EXARGS, "not implemented"); + double getDistance(const double& x1p, const double& x2p, const double& x3p) + { + throw UbException(UB_EXARGS, "not implemented"); - // falls punkt innerhalt ist: minimalen abstand ausrechnen - if (this->isPointInGbObject3D(x1p, x2p, x3p)) - { - double x1Dist = UbMath::min(std::abs(x1p - this->getX1Minimum()), std::abs(x1p - this->getX1Maximum())); - double x2Dist = UbMath::min(std::abs(x2p - this->getX2Minimum()), std::abs(x2p - this->getX2Maximum())); - double x3Dist = UbMath::min(std::abs(x3p - this->getX3Minimum()), std::abs(x3p - this->getX3Maximum())); + // falls punkt innerhalt ist: minimalen abstand ausrechnen + if (this->isPointInGbObject3D(x1p, x2p, x3p)) + { + double x1Dist = UbMath::min(std::abs(x1p - this->getX1Minimum()), std::abs(x1p - this->getX1Maximum())); + double x2Dist = UbMath::min(std::abs(x2p - this->getX2Minimum()), std::abs(x2p - this->getX2Maximum())); + double x3Dist = UbMath::min(std::abs(x3p - this->getX3Minimum()), std::abs(x3p - this->getX3Maximum())); - return UbMath::min(x1Dist, x2Dist, x3Dist); - } - else - { + return UbMath::min(x1Dist, x2Dist, x3Dist); + } + else + { - } - } + } + } - std::string toString() override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } + std::string toString() override { throw UbException(UB_EXARGS, "finalize() - not implemented"); } // virtuelle Methoden von UbObserver void objectChanged(UbObservable *changedObject) override; void objectWillBeDeleted(UbObservable *objectForDeletion) override; - using GbObject3D::isPointInGbObject3D; //Grund: dadurch muss man hier isPointInGbObject3D(GbPoint3D*) nicht ausprogrammieren, welche sonst hier "ueberdeckt" waere + using GbObject3D::isPointInGbObject3D; //Grund: dadurch muss man hier isPointInGbObject3D(GbPoint3D*) nicht ausprogrammieren, welche sonst hier "ueberdeckt" waere protected: - GbPoint3D* p1; - GbPoint3D* p2; - GbPoint3D* p3; - GbPoint3D* p4; - double edgeLength; - double dx; - double thickness; + GbPoint3D* p1; + GbPoint3D* p2; + GbPoint3D* p3; + GbPoint3D* p4; + double edgeLength; + double dx; + double thickness; private: }; diff --git a/src/basics/geometry3d/GbMeshTools3D.h b/src/basics/geometry3d/GbMeshTools3D.h index 2464bcc34788dadfd99e64b9a94878d22df4a54b..17b02cfac9cdc2f64059d550183da9a176747d3c 100644 --- a/src/basics/geometry3d/GbMeshTools3D.h +++ b/src/basics/geometry3d/GbMeshTools3D.h @@ -342,27 +342,27 @@ inline int triBoxOverlap(float boxcenter[3], float boxhalfsize[3], float trivert // if(x2<min) min=x2; // if(x2>max) max=x2; // -// int planeBoxOverlap(float normal[3], float vert[3], float maxbox[3]) // -NJMP- +// int planeBoxOverlap(float normal[3], float vert[3], float maxbox[3]) // -NJMP- //{ // int q; // float vmin[3],vmax[3],v; // // for(q=X;q<=Z;q++) // { -// v=vert[q]; // -NJMP- +// v=vert[q]; // -NJMP- // if(normal[q]>0.0f) // { -// vmin[q]=-maxbox[q] - v; // -NJMP- -// vmax[q]= maxbox[q] - v; // -NJMP- +// vmin[q]=-maxbox[q] - v; // -NJMP- +// vmax[q]= maxbox[q] - v; // -NJMP- // } // else // { -// vmin[q]= maxbox[q] - v; // -NJMP- -// vmax[q]=-maxbox[q] - v; // -NJMP- +// vmin[q]= maxbox[q] - v; // -NJMP- +// vmax[q]=-maxbox[q] - v; // -NJMP- // } // } -// if(DOT(normal,vmin)>0.0f) return 0; // -NJMP- -// if(DOT(normal,vmax)>=0.0f) return 1; // -NJMP- +// if(DOT(normal,vmin)>0.0f) return 0; // -NJMP- +// if(DOT(normal,vmax)>=0.0f) return 1; // -NJMP- // return 0; //} // @@ -430,7 +430,7 @@ inline int triBoxOverlap(float boxcenter[3], float boxhalfsize[3], float trivert // // // float axis[3]; // -// float min,max,p0,p1,p2,rad,fex,fey,fez; // -NJMP- "d" local variable removed +// float min,max,p0,p1,p2,rad,fex,fey,fez; // -NJMP- "d" local variable removed // float normal[3],e0[3],e1[3],e2[3]; // // /* This is the fastest branch on Sun */ @@ -491,6 +491,6 @@ inline int triBoxOverlap(float boxcenter[3], float boxhalfsize[3], float trivert // CROSS(normal,e0,e1); // // // -NJMP- (line removed here) -// if(!planeBoxOverlap(normal,v0,boxhalfsize)) return 0; // -NJMP- +// if(!planeBoxOverlap(normal,v0,boxhalfsize)) return 0; // -NJMP- // return 1; /* box and triangle overlaps */ //} diff --git a/src/basics/geometry3d/GbPolygon3D.cpp b/src/basics/geometry3d/GbPolygon3D.cpp index 7905576ed5dae855350a333275cf5dcd1f6dbd3a..dc7b2fc3e842a1a3ae3d68f0755d43c71d75f4be 100644 --- a/src/basics/geometry3d/GbPolygon3D.cpp +++ b/src/basics/geometry3d/GbPolygon3D.cpp @@ -53,7 +53,7 @@ void GbPolygon3D::init() x2max = 0.0; x3min = 0.0; x3max = 0.0; - // points = NULL; + // points = NULL; consistent = false; ps = NULL; } @@ -99,9 +99,9 @@ GbPolygon3D::~GbPolygon3D() // if(points) // for(unsigned u=0; u<points->size(); u++) //{ - // delete (*points)[u]; + // delete (*points)[u]; //} - // delete this->points; + // delete this->points; delete this->ps; } @@ -331,7 +331,7 @@ void GbPolygon3D::addPoints(vector<GbPoint3D> &points) */ void GbPolygon3D::clear() { - // delete this->points; + // delete this->points; this->ps->clearAndTrim(); delete this->ps; diff --git a/src/basics/geometry3d/GbPolygon3D.h b/src/basics/geometry3d/GbPolygon3D.h index e4f44b5be5d31e3751be584c6623597229df5cd2..f1f584a5de61e59206aba08c61d8c1d4207692be 100644 --- a/src/basics/geometry3d/GbPolygon3D.h +++ b/src/basics/geometry3d/GbPolygon3D.h @@ -229,7 +229,7 @@ public: // { // try // { - // GbPolygon2D polygon = (GbPolygon2D) object; + // GbPolygon2D polygon = (GbPolygon2D) object; // int n = this.size(); // if(n != polygon.size()) return(false); diff --git a/src/basics/geometry3d/GbQuadFaceMesh3D.cpp b/src/basics/geometry3d/GbQuadFaceMesh3D.cpp index 1b2c2aeaabf1eacd78577cc67b678be895747e05..d7ee29ab00c845f28390cd475aeff58e575d3031 100644 --- a/src/basics/geometry3d/GbQuadFaceMesh3D.cpp +++ b/src/basics/geometry3d/GbQuadFaceMesh3D.cpp @@ -64,7 +64,7 @@ GbQuadFaceMesh3D::GbQuadFaceMesh3D(string name, vector<Vertex> *nodes, vector<Qu GbQuadFaceMesh3D::~GbQuadFaceMesh3D() { if (nodes) { - // for(unsigned u=0; u<nodes->size(); u++) delete (*nodes)[u]; + // for(unsigned u=0; u<nodes->size(); u++) delete (*nodes)[u]; delete nodes; } if (quads) { diff --git a/src/basics/geometry3d/GbSphere3D.cpp b/src/basics/geometry3d/GbSphere3D.cpp index 2cb94c462c6e2c1b95e820fab06fe2d37325ecb1..a7d056ee3470d43c2408ef92b2292f797413bb91 100644 --- a/src/basics/geometry3d/GbSphere3D.cpp +++ b/src/basics/geometry3d/GbSphere3D.cpp @@ -195,7 +195,7 @@ bool GbSphere3D::isPointInGbObject3D(const double &x1p, const double &x2p, const // if(this->isPointInCrossection(x11, x12) || this->isPointInCrossection(x21, x22) || this->isPointInCrossection(x11, // x22) || this->isPointInCrossection(x21, x12)) // { -// if(!this->isPointInCrossection(x11, x12) || !this->isPointInCrossection(x21, x22) || +// if(!this->isPointInCrossection(x11, x12) || !this->isPointInCrossection(x21, x22) || //!this->isPointInCrossection(x11, x22) || !this->isPointInCrossection(x21, x12)) return true; // } // return false; diff --git a/src/basics/geometry3d/GbSystem3D.cpp b/src/basics/geometry3d/GbSystem3D.cpp index 2a49aff7d55cb3f18ff316eb6310c96b92bbc721..154955394309c6238e71cadb8e211bfec38e769f 100644 --- a/src/basics/geometry3d/GbSystem3D.cpp +++ b/src/basics/geometry3d/GbSystem3D.cpp @@ -367,205 +367,205 @@ GbLine3D *GbSystem3D::createClipLine3D(GbPoint3D &pA, GbPoint3D &pB, double x1a, // /* */ // if(less(ps.getX2Minimum(), x12)) // { -// ps.clear(); -// last = points[0]; -// if(less((*points)[0]->x2, x12)) flag = false; -// else -// { -// ps.add(points[0]); -// flag = true; -// } -// for(i=1; i<n; i++) -// { -// if(less((*points)[i]->x2, x12)) -// { -// if(flag) -// { -// f = (x12-(*points)[i]->x2)/((*points)[i]->x2-last->x2); -// ps.add(new GbPoint3D((*points)[i]->x1 + ((*points)[i]->x1-last->x1)*f, x12, (*points)[i]->x3 + +// ps.clear(); +// last = points[0]; +// if(less((*points)[0]->x2, x12)) flag = false; +// else +// { +// ps.add(points[0]); +// flag = true; +// } +// for(i=1; i<n; i++) +// { +// if(less((*points)[i]->x2, x12)) +// { +// if(flag) +// { +// f = (x12-(*points)[i]->x2)/((*points)[i]->x2-last->x2); +// ps.add(new GbPoint3D((*points)[i]->x1 + ((*points)[i]->x1-last->x1)*f, x12, (*points)[i]->x3 + //((*points)[i]->x3-last->x3)*f)); -// } -// flag = false; -// } -// else -// { -// if(!flag) -// { -// f = (x12-(*points)[i]->x2)/((*points)[i]->x2-last->x2); -// ps.add(new GbPoint3D((*points)[i]->x1 + ((*points)[i]->x1-last->x1)*f, x12, (*points)[i]->x3 + +// } +// flag = false; +// } +// else +// { +// if(!flag) +// { +// f = (x12-(*points)[i]->x2)/((*points)[i]->x2-last->x2); +// ps.add(new GbPoint3D((*points)[i]->x1 + ((*points)[i]->x1-last->x1)*f, x12, (*points)[i]->x3 + //((*points)[i]->x3-last->x3)*f)); -// } -// ps.add((*points)[i]); -// flag = true; -// } -// last = points[i]; -// } -// if(!((less(points[0].x2, x12)) ^ flag)) -// { -// f = (x12-points[0].x2)/(points[0].x2-last->x2); -// ps.add(new GbPoint3D(points[0].x1 + (points[0].x1-last->x1)*f, x12, points[0].x3 + (points[0].x3-last->x3)*f)); -// } +// } +// ps.add((*points)[i]); +// flag = true; +// } +// last = points[i]; +// } +// if(!((less(points[0].x2, x12)) ^ flag)) +// { +// f = (x12-points[0].x2)/(points[0].x2-last->x2); +// ps.add(new GbPoint3D(points[0].x1 + (points[0].x1-last->x1)*f, x12, points[0].x3 + (points[0].x3-last->x3)*f)); +// } // -// points = ps.getPoints(); -// n = points.length; +// points = ps.getPoints(); +// n = points.length; // -// if(n == 0) return(null); +// if(n == 0) return(null); // } // /*-------------------------------------------------------------------*/ // /* Schneiden an rechter Kante */ // /* */ // if(greater(ps.getX1Maximum(), x21)) // { -// ps.clear(); -// last = points[0]; -// if(greater(points[0].x1, x21)) flag = false; -// else -// { -// ps.add(points[0]); -// flag = true; -// } -// for(i=1; i<n; i++) -// { -// if(greater((*points)[i]->x1, x21)) -// { -// if(flag) -// { -// f = (x21-(*points)[i]->x1)/((*points)[i]->x1-last->x1); -// ps.add(new GbPoint3D(x21, (*points)[i]->x2 + ((*points)[i]->x2-last->x2)*f, (*points)[i]->x3 + +// ps.clear(); +// last = points[0]; +// if(greater(points[0].x1, x21)) flag = false; +// else +// { +// ps.add(points[0]); +// flag = true; +// } +// for(i=1; i<n; i++) +// { +// if(greater((*points)[i]->x1, x21)) +// { +// if(flag) +// { +// f = (x21-(*points)[i]->x1)/((*points)[i]->x1-last->x1); +// ps.add(new GbPoint3D(x21, (*points)[i]->x2 + ((*points)[i]->x2-last->x2)*f, (*points)[i]->x3 + //((*points)[i]->x3-last->x3)*f)); -// } -// flag = false; -// } -// else -// { -// if(!flag) -// { -// f = (x21-(*points)[i]->x1)/((*points)[i]->x1-last->x1); -// ps.add(new GbPoint3D(x21, (*points)[i]->x2 + ((*points)[i]->x2-last->x2)*f, (*points)[i]->x3 + +// } +// flag = false; +// } +// else +// { +// if(!flag) +// { +// f = (x21-(*points)[i]->x1)/((*points)[i]->x1-last->x1); +// ps.add(new GbPoint3D(x21, (*points)[i]->x2 + ((*points)[i]->x2-last->x2)*f, (*points)[i]->x3 + //((*points)[i]->x3-last->x3)*f)); -// } -// ps.add(points[i]); -// flag = true; -// } -// last = points[i]; -// } -// if(!((greater(points[0].x1, x21)) ^ flag)) -// { -// f = (x21-points[0].x1)/(points[0].x1-last.x1); -// ps.add(new GbPoint3D(x21, points[0].x2 + (points[0].x2-last.x2)*f, points[0].x3 + (points[0].x3-last.x3)*f)); -// } +// } +// ps.add(points[i]); +// flag = true; +// } +// last = points[i]; +// } +// if(!((greater(points[0].x1, x21)) ^ flag)) +// { +// f = (x21-points[0].x1)/(points[0].x1-last.x1); +// ps.add(new GbPoint3D(x21, points[0].x2 + (points[0].x2-last.x2)*f, points[0].x3 + (points[0].x3-last.x3)*f)); +// } // -// points = ps.getPoints(); -// n = points.length; +// points = ps.getPoints(); +// n = points.length; // -// if(n == 0) return(null); +// if(n == 0) return(null); // } // /*-------------------------------------------------------------------*/ // /* Schneiden an oberer Kante */ // /* */ // if(greater(ps.getX2Maximum(), x22)) // { -// ps.clear(); -// last = points[0]; -// if(greater(points[0].x2, x22)) flag = false; -// else -// { -// ps.add(points[0]); -// flag = true; -// } -// for(i=1; i<n; i++) -// { -// if(greater((*points)[i]->x2, x22)) -// { -// if(flag) -// { -// f = (x22-(*points)[i]->x2)/(points[i].x2-last.x2); -// ps.add(new GbPoint3D(points[i].x1 + (points[i].x1-last.x1)*f, x22, points[i].x3 + +// ps.clear(); +// last = points[0]; +// if(greater(points[0].x2, x22)) flag = false; +// else +// { +// ps.add(points[0]); +// flag = true; +// } +// for(i=1; i<n; i++) +// { +// if(greater((*points)[i]->x2, x22)) +// { +// if(flag) +// { +// f = (x22-(*points)[i]->x2)/(points[i].x2-last.x2); +// ps.add(new GbPoint3D(points[i].x1 + (points[i].x1-last.x1)*f, x22, points[i].x3 + //(points[i].x3-last.x3)*f)); -// } -// flag = false; -// } -// else -// { -// if(!flag) -// { -// f = (x22-points[i].x2)/(points[i].x2-last.x2); -// ps.add(new GbPoint3D(points[i].x1 + (points[i].x1-last.x1)*f, x22, points[i].x3 + +// } +// flag = false; +// } +// else +// { +// if(!flag) +// { +// f = (x22-points[i].x2)/(points[i].x2-last.x2); +// ps.add(new GbPoint3D(points[i].x1 + (points[i].x1-last.x1)*f, x22, points[i].x3 + //(points[i].x3-last.x3)*f)); -// } -// ps.add(points[i]); -// flag = true; -// } -// last = points[i]; -// } -// if(!((greater(points[0].x2, x22)) ^ flag)) -// { -// f = (x22-points[0].x2)/(points[0].x2-last.x2); -// ps.add(new GbPoint3D(points[0].x1 + (points[0].x1-last.x1)*f, x22, points[0].x3 + (points[0].x3-last.x3)*f)); -// } +// } +// ps.add(points[i]); +// flag = true; +// } +// last = points[i]; +// } +// if(!((greater(points[0].x2, x22)) ^ flag)) +// { +// f = (x22-points[0].x2)/(points[0].x2-last.x2); +// ps.add(new GbPoint3D(points[0].x1 + (points[0].x1-last.x1)*f, x22, points[0].x3 + (points[0].x3-last.x3)*f)); +// } // -// points = ps.getPoints(); -// n = points.length; +// points = ps.getPoints(); +// n = points.length; // -// if(n == 0) return(null); +// if(n == 0) return(null); // } // /*-------------------------------------------------------------------*/ // /* Schneiden an linker Kante */ // /* */ // if(less(ps.getX1Minimum(), x11)) // { -// ps.clear(); -// last = points[0]; -// if(less(points[0].x1, x11)) flag = false; -// else -// { -// ps.add(points[0]); -// flag = true; -// } -// for(i=1; i<n; i++) -// { -// if(less(points[i].x1, x11)) -// { -// if(flag) -// { -// f = (x11-points[i].x1)/(points[i].x1-last.x1); -// ps.add(new GbPoint3D(x11, points[i].x2 + (points[i].x2-last.x2)*f, points[i].x3 + +// ps.clear(); +// last = points[0]; +// if(less(points[0].x1, x11)) flag = false; +// else +// { +// ps.add(points[0]); +// flag = true; +// } +// for(i=1; i<n; i++) +// { +// if(less(points[i].x1, x11)) +// { +// if(flag) +// { +// f = (x11-points[i].x1)/(points[i].x1-last.x1); +// ps.add(new GbPoint3D(x11, points[i].x2 + (points[i].x2-last.x2)*f, points[i].x3 + //(points[i].x3-last.x3)*f)); -// } -// flag = false; -// } -// else -// { -// if(!flag) -// { -// f = (x11-points[i].x1)/(points[i].x1-last.x1); -// ps.add(new GbPoint3D(x11, points[i].x2 + (points[i].x2-last.x2)*f, points[i].x3 + +// } +// flag = false; +// } +// else +// { +// if(!flag) +// { +// f = (x11-points[i].x1)/(points[i].x1-last.x1); +// ps.add(new GbPoint3D(x11, points[i].x2 + (points[i].x2-last.x2)*f, points[i].x3 + //(points[i].x3-last.x3)*f)); -// } -// ps.add(points[i]); -// flag = true; -// } -// last = points[i]; -// } -// if(!((less(points[0].x1, x11)) ^ flag)) -// { -// f = (x11-points[0].x1)/(points[0].x1-last.x1); -// ps.add(new GbPoint3D(x11, points[0].x2 + (points[0].x2-last.x2)*f, points[0].x3 + (points[0].x3-last.x3)*f)); -// } +// } +// ps.add(points[i]); +// flag = true; +// } +// last = points[i]; +// } +// if(!((less(points[0].x1, x11)) ^ flag)) +// { +// f = (x11-points[0].x1)/(points[0].x1-last.x1); +// ps.add(new GbPoint3D(x11, points[0].x2 + (points[0].x2-last.x2)*f, points[0].x3 + (points[0].x3-last.x3)*f)); +// } // -// points = ps.getPoints(); -// n = points.length; +// points = ps.getPoints(); +// n = points.length; // -// if(n == 0) return(null); +// if(n == 0) return(null); // } // /*-------------------------------------------------------------------*/ // GbPolygon3D polygon = new GbPolygon3D(points); // // if(n > 2) // { -// for(i=2; i<n; i++) if(zero(i_TA(points[i-2], points[i-1], points[i]))) polygon.deletePoint(points[i-1]); -// if(zero(i_TA(points[n-2], points[n-1], points[0]))) polygon.deletePoint(points[n-1]); -// if(zero(i_TA(points[n-1], points[0], points[1]))) polygon.deletePoint(points[0]); +// for(i=2; i<n; i++) if(zero(i_TA(points[i-2], points[i-1], points[i]))) polygon.deletePoint(points[i-1]); +// if(zero(i_TA(points[n-2], points[n-1], points[0]))) polygon.deletePoint(points[n-1]); +// if(zero(i_TA(points[n-1], points[0], points[1]))) polygon.deletePoint(points[0]); // } // return(polygon); // } @@ -586,98 +586,98 @@ GbLine3D *GbSystem3D::createClipLine3D(GbPoint3D &pA, GbPoint3D &pB, double x1a, // /* */ // if(less(ps.getX3Minimum(), x13)) // { -// ps.clear(); -// last = points[0]; -// if(less(points[0].x3, x13)) flag = false; -// else -// { -// ps.add(points[0]); -// flag = true; -// } -// for(i=1; i<n; i++) -// { -// if(less(points[i].x3, x13)) -// { -// if(flag) -// { -// f = (x13-points[i].x3)/(points[i].x3-last.x3); -// ps.add(new GbPoint3D(points[i].x1 + (points[i].x1-last.x1)*f, points[i].x2 + (points[i].x2-last.x2)*f, +// ps.clear(); +// last = points[0]; +// if(less(points[0].x3, x13)) flag = false; +// else +// { +// ps.add(points[0]); +// flag = true; +// } +// for(i=1; i<n; i++) +// { +// if(less(points[i].x3, x13)) +// { +// if(flag) +// { +// f = (x13-points[i].x3)/(points[i].x3-last.x3); +// ps.add(new GbPoint3D(points[i].x1 + (points[i].x1-last.x1)*f, points[i].x2 + (points[i].x2-last.x2)*f, //x13)); -// } -// flag = false; -// } -// else -// { -// if(!flag) -// { -// f = (x13-points[i].x3)/(points[i].x3-last.x3); -// ps.add(new GbPoint3D(points[i].x1 + (points[i].x1-last.x1)*f, points[i].x2 + (points[i].x2-last.x2)*f, +// } +// flag = false; +// } +// else +// { +// if(!flag) +// { +// f = (x13-points[i].x3)/(points[i].x3-last.x3); +// ps.add(new GbPoint3D(points[i].x1 + (points[i].x1-last.x1)*f, points[i].x2 + (points[i].x2-last.x2)*f, //x13)); -// } -// ps.add(points[i]); -// flag = true; -// } -// last = points[i]; -// } -// if(!((less(points[0].x3, x13)) ^ flag)) -// { -// f = (x13-points[0].x3)/(points[0].x3-last.x3); -// ps.add(new GbPoint3D(points[0].x1 + (points[0].x1-last.x1)*f, points[0].x2 + (points[0].x2-last.x2)*f, x13)); -// } +// } +// ps.add(points[i]); +// flag = true; +// } +// last = points[i]; +// } +// if(!((less(points[0].x3, x13)) ^ flag)) +// { +// f = (x13-points[0].x3)/(points[0].x3-last.x3); +// ps.add(new GbPoint3D(points[0].x1 + (points[0].x1-last.x1)*f, points[0].x2 + (points[0].x2-last.x2)*f, x13)); +// } // -// points = ps.getPoints(); -// n = points.length; +// points = ps.getPoints(); +// n = points.length; // -// if(n == 0) return(null); +// if(n == 0) return(null); // } // /*-------------------------------------------------------------------*/ // /* Schneiden an hinterer Kante */ // /* */ // if(greater(ps.getX3Maximum(), x23)) // { -// ps.clear(); -// last = points[0]; -// if(greater(points[0].x3, x23)) flag = false; -// else -// { -// ps.add(points[0]); -// flag = true; -// } -// for(i=1; i<n; i++) -// { -// if(greater(points[i].x3, x23)) -// { -// if(flag) -// { -// f = (x23-points[i].x3)/(points[i].x3-last.x3); -// ps.add(new GbPoint3D(points[i].x1 + (points[i].x1-last.x1)*f, points[i].x2 + (points[i].x2-last.x2)*f, +// ps.clear(); +// last = points[0]; +// if(greater(points[0].x3, x23)) flag = false; +// else +// { +// ps.add(points[0]); +// flag = true; +// } +// for(i=1; i<n; i++) +// { +// if(greater(points[i].x3, x23)) +// { +// if(flag) +// { +// f = (x23-points[i].x3)/(points[i].x3-last.x3); +// ps.add(new GbPoint3D(points[i].x1 + (points[i].x1-last.x1)*f, points[i].x2 + (points[i].x2-last.x2)*f, //x23)); -// } -// flag = false; -// } -// else -// { -// if(!flag) -// { -// f = (x23-points[i].x3)/(points[i].x3-last.x3); -// ps.add(new GbPoint3D(points[i].x1 + ((*points)[i]->x1-last.x1)*f, (*points)[i]->x2 + +// } +// flag = false; +// } +// else +// { +// if(!flag) +// { +// f = (x23-points[i].x3)/(points[i].x3-last.x3); +// ps.add(new GbPoint3D(points[i].x1 + ((*points)[i]->x1-last.x1)*f, (*points)[i]->x2 + //((*points)[i]->x2-last.x2)*f, x23)); -// } -// ps.add(points[i]); -// flag = true; -// } -// last = points[i]; -// } -// if(!((greater(points[0].x3, x23)) ^ flag)) -// { -// f = (x23-points[0].x3)/(points[0].x3-last.x3); -// ps.add(new GbPoint3D(points[0].x1 + (points[0].x1-last.x1)*f, points[0].x2 + (points[0].x2-last.x2)*f, x23)); -// } +// } +// ps.add(points[i]); +// flag = true; +// } +// last = points[i]; +// } +// if(!((greater(points[0].x3, x23)) ^ flag)) +// { +// f = (x23-points[0].x3)/(points[0].x3-last.x3); +// ps.add(new GbPoint3D(points[0].x1 + (points[0].x1-last.x1)*f, points[0].x2 + (points[0].x2-last.x2)*f, x23)); +// } // -// points = ps.getPoints(); -// n = points.length; +// points = ps.getPoints(); +// n = points.length; // -// if(n == 0) return(null); +// if(n == 0) return(null); // } // /*-------------------------------------------------------------------*/ // GbPolygon3D polygon = new GbPolygon3D(points); diff --git a/src/basics/geometry3d/GbSystem3D.h b/src/basics/geometry3d/GbSystem3D.h index 239a4c30da2c15d3a07355716c1160e79016f128..16e65e6bc76f3a7fcc3eb2623fa04d5bc0900aa4 100644 --- a/src/basics/geometry3d/GbSystem3D.h +++ b/src/basics/geometry3d/GbSystem3D.h @@ -244,33 +244,33 @@ public: (this->points)[u++] = (p)[b]; // u = this->sizet; // for(int b=0; b<(int)p->size(); b++) - // cout<<(this->points)[u++].toString()<<endl; + // cout<<(this->points)[u++].toString()<<endl; this->consistent = false; this->sizet += (int)p.size(); }; - // void insert(GbPoint3D *point, int index) + // void insert(GbPoint3D *point, int index) // { - // if(this.size == this.points.length) - // { - // GbPoint3D a[] = new GbPoint3D[1+(this.size<<1)]; - // System.arraycopy(this.points, 0, a, 0, this.size); - // this.points = a; - // } - // System.arraycopy(this.points, index, this.points, index+1, this.size-index); - // this.points[index] = point; - // this.consistent = false; - // this.size++; + // if(this.size == this.points.length) + // { + // GbPoint3D a[] = new GbPoint3D[1+(this.size<<1)]; + // System.arraycopy(this.points, 0, a, 0, this.size); + // this.points = a; + // } + // System.arraycopy(this.points, index, this.points, index+1, this.size-index); + // this.points[index] = point; + // this.consistent = false; + // this.size++; // } // void delete(GbPoint3D point) // { - // for(int i=this.size-1; i>=0; i--) if(this.points[i] == point) this.delete(i); + // for(int i=this.size-1; i>=0; i--) if(this.points[i] == point) this.delete(i); // } // void delete(int index) // { - // int j = this.size - index - 1; - // if(j > 0) System.arraycopy(this.points, index + 1, this.points, index, j); - // this.consistent = false; - // this.size--; + // int j = this.size - index - 1; + // if(j > 0) System.arraycopy(this.points, index + 1, this.points, index, j); + // this.consistent = false; + // this.size--; // } void clear() { @@ -397,25 +397,25 @@ public: }; // boolean containsEqualLine(GbPoint2D point1, GbPoint2D point2) // { - // for(int i=this.size-1; i>=0; i--) if(this.points[i].equals(point1)) - // { - // if(i == 0) - // { - // if(this.points[i+1].equals(point2)) return(true); - // if(this.points[this.size-1].equals(point2)) return(true); - // } - // else if(i == this.size-1) - // { - // if(this.points[0].equals(point2)) return(true); - // if(this.points[i-1].equals(point2)) return(true); - // } - // else - // { - // if(this.points[i+1].equals(point2)) return(true); - // if(this.points[i-1].equals(point2)) return(true); - // } - // } - // return(false); + // for(int i=this.size-1; i>=0; i--) if(this.points[i].equals(point1)) + // { + // if(i == 0) + // { + // if(this.points[i+1].equals(point2)) return(true); + // if(this.points[this.size-1].equals(point2)) return(true); + // } + // else if(i == this.size-1) + // { + // if(this.points[0].equals(point2)) return(true); + // if(this.points[i-1].equals(point2)) return(true); + // } + // else + // { + // if(this.points[i+1].equals(point2)) return(true); + // if(this.points[i-1].equals(point2)) return(true); + // } + // } + // return(false); // } GbPoint3D *getPoint(int index) { return (&(this->points)[index]); } GbPoint3D *getFirstPoint() { return (&(this->points)[0]); } @@ -430,7 +430,7 @@ public: // vector<GbPoint3D*> *a = new vector<GbPoint3D*>; // a->resize(l, NULL); - // for(int u=0; u<l; u++) { (*a)[u] = &((points)[u]); } + // for(int u=0; u<l; u++) { (*a)[u] = &((points)[u]); } // return(a); } }; diff --git a/src/basics/geometry3d/GbTriangularMesh3D.cpp b/src/basics/geometry3d/GbTriangularMesh3D.cpp index 3fc0495fad3a1426a9749b43bca7348be4aa6186..8db585a67669c959ec2ac04a0aa23d09ce9ad49b 100644 --- a/src/basics/geometry3d/GbTriangularMesh3D.cpp +++ b/src/basics/geometry3d/GbTriangularMesh3D.cpp @@ -655,41 +655,41 @@ double GbTriangularMesh3D::getVolumeForRectangle(const double & /*p1x1*/, const // for(int i=0; i<this.triangles.length; i++) // { - // t1min = this.triangles[i].getX1Minimum(); - // t1max = this.triangles[i].getX1Maximum(); - // if(GbSystem.less2(t1min, t1max, p1x1, p2x1)) continue; - // if(GbSystem.greater2(t1min, t1max, p1x1, p2x1)) continue; - - // t2min = this.triangles[i].getX2Minimum(); - // t2max = this.triangles[i].getX2Maximum(); - // if(GbSystem.less2(t2min, t2max, p1x2, p2x2)) continue; - // if(GbSystem.greater2(t2min, t2max, p1x2, p2x2)) continue; - - // if(GbSystem.inOpenInterval(t1min, p1x1, p2x1) && GbSystem.inOpenInterval(t1max, p1x1, p2x1) && - // GbSystem.inOpenInterval(t2min, p1x2, p2x2) && GbSystem.inOpenInterval(t2max, p1x2, p2x2)) - // { - // volume += this.triangles[i].getVolume(); - // area2 += this.triangles[i].getArea(); - // f = true; - // } - // else - // { - // polygon = this.triangles[i].createClippedPolygon3D(p1x1, p1x2, p2x1, p2x2); - - // if(polygon != null && polygon.size() > 2) - // { - // try - // { - // x1 = polygon.getX1Centroid(); - // x2 = polygon.getX2Centroid(); - // volume += this.triangles[i].getX3Coordinate(x1, x2) * Math.abs(polygon.getArea()); - // area2 += Math.abs(polygon.getArea()); - // f = true; - // } - // catch(Exception e){} - // } - // } - // if(GbSystem.greaterEqual(area2, area1)) break; + // t1min = this.triangles[i].getX1Minimum(); + // t1max = this.triangles[i].getX1Maximum(); + // if(GbSystem.less2(t1min, t1max, p1x1, p2x1)) continue; + // if(GbSystem.greater2(t1min, t1max, p1x1, p2x1)) continue; + + // t2min = this.triangles[i].getX2Minimum(); + // t2max = this.triangles[i].getX2Maximum(); + // if(GbSystem.less2(t2min, t2max, p1x2, p2x2)) continue; + // if(GbSystem.greater2(t2min, t2max, p1x2, p2x2)) continue; + + // if(GbSystem.inOpenInterval(t1min, p1x1, p2x1) && GbSystem.inOpenInterval(t1max, p1x1, p2x1) && + // GbSystem.inOpenInterval(t2min, p1x2, p2x2) && GbSystem.inOpenInterval(t2max, p1x2, p2x2)) + // { + // volume += this.triangles[i].getVolume(); + // area2 += this.triangles[i].getArea(); + // f = true; + // } + // else + // { + // polygon = this.triangles[i].createClippedPolygon3D(p1x1, p1x2, p2x1, p2x2); + + // if(polygon != null && polygon.size() > 2) + // { + // try + // { + // x1 = polygon.getX1Centroid(); + // x2 = polygon.getX2Centroid(); + // volume += this.triangles[i].getX3Coordinate(x1, x2) * Math.abs(polygon.getArea()); + // area2 += Math.abs(polygon.getArea()); + // f = true; + // } + // catch(Exception e){} + // } + // } + // if(GbSystem.greaterEqual(area2, area1)) break; //} // if(f) return(volume); // else throw new NullPointerException(); @@ -715,32 +715,32 @@ vector<GbTriangle3D *> *GbTriangularMesh3D::getTrianglesForRectangle(const doubl // for(int i=0; i<this.triangles.length; i++) // { - // t1min = this.triangles[i].getX1Minimum(); - // t1max = this.triangles[i].getX1Maximum(); - // if(GbSystem.less2(t1min, t1max, p1x1, p2x1)) continue; - // if(GbSystem.greater2(t1min, t1max, p1x1, p2x1)) continue; - - // t2min = this.triangles[i].getX2Minimum(); - // t2max = this.triangles[i].getX2Maximum(); - // if(GbSystem.less2(t2min, t2max, p1x2, p2x2)) continue; - // if(GbSystem.greater2(t2min, t2max, p1x2, p2x2)) continue; - - // if(GbSystem.inOpenInterval(t1min, p1x1, p2x1) && GbSystem.inOpenInterval(t1max, p1x1, p2x1) && - // GbSystem.inOpenInterval(t2min, p1x2, p2x2) && GbSystem.inOpenInterval(t2max, p1x2, p2x2)) - // { - // try { triangleList.append(this.triangles[i]); } catch(Exception e){} - // area2 += this.triangles[i].getArea(); - // } - // else - // { - // polygon = this.triangles[i].createClippedPolygon3D(p1x1, p1x2, p2x1, p2x2); - // if(polygon != null && polygon.size() > 2) - // { - // try { triangleList.append(this.triangles[i]); } catch(Exception e){} - // area2 += Math.abs(polygon.getArea()); - // } - // } - // if(GbSystem.greaterEqual(area2, area1)) break; + // t1min = this.triangles[i].getX1Minimum(); + // t1max = this.triangles[i].getX1Maximum(); + // if(GbSystem.less2(t1min, t1max, p1x1, p2x1)) continue; + // if(GbSystem.greater2(t1min, t1max, p1x1, p2x1)) continue; + + // t2min = this.triangles[i].getX2Minimum(); + // t2max = this.triangles[i].getX2Maximum(); + // if(GbSystem.less2(t2min, t2max, p1x2, p2x2)) continue; + // if(GbSystem.greater2(t2min, t2max, p1x2, p2x2)) continue; + + // if(GbSystem.inOpenInterval(t1min, p1x1, p2x1) && GbSystem.inOpenInterval(t1max, p1x1, p2x1) && + // GbSystem.inOpenInterval(t2min, p1x2, p2x2) && GbSystem.inOpenInterval(t2max, p1x2, p2x2)) + // { + // try { triangleList.append(this.triangles[i]); } catch(Exception e){} + // area2 += this.triangles[i].getArea(); + // } + // else + // { + // polygon = this.triangles[i].createClippedPolygon3D(p1x1, p1x2, p2x1, p2x2); + // if(polygon != null && polygon.size() > 2) + // { + // try { triangleList.append(this.triangles[i]); } catch(Exception e){} + // area2 += Math.abs(polygon.getArea()); + // } + // } + // if(GbSystem.greaterEqual(area2, area1)) break; //} // return((GbTriangle3D[])triangleList.getObjectArray()); } @@ -763,7 +763,7 @@ vector<GbPoint3D *> *GbTriangularMesh3D::getNodesForRectangle(const double & /*p // if(GbSystem.inClosedInterval(this.nodes[i].getX1Coordinate(), p1x1, p2x1) && // GbSystem.inClosedInterval(this.nodes[i].getX2Coordinate(), p1x2, p2x2)) //{ - // try { nodeList.append(this.nodes[i]); } catch(Exception e){} + // try { nodeList.append(this.nodes[i]); } catch(Exception e){} //} // } // return((GbPoint3D[])nodeList.getObjectArray()); diff --git a/src/basics/utilities/UbObservable.h b/src/basics/utilities/UbObservable.h index 0cbbe5655a47a9f238d038358d1b9855e4e52f80..36e21f3216f2395e1a7d2738ead7364ad6ce5482 100644 --- a/src/basics/utilities/UbObservable.h +++ b/src/basics/utilities/UbObservable.h @@ -57,9 +57,9 @@ class UbObserver; //! a copy of an UbservableObject will NOT copy the observerList //! <UL> //! <LI><B>Extending:</B> This UbObservable is the observable object itself. Extending should be used -//! where object types can be extended from UbObservable. +//! where object types can be extended from UbObservable. //! <LI><B>Associating:</B> Initialization is done via the constructor <tt>UbObservable(ObservableObject)</tt>. -//! Associating may be used, where object types to be observed could not be extended from UbObservable. +//! Associating may be used, where object types to be observed could not be extended from UbObservable. //! </UL> //! //! see UbObserver diff --git a/src/basics/utilities/UbScheduler.h b/src/basics/utilities/UbScheduler.h index 08bb38ba8ae8755d8ef1e38cd92279e26b994610..6eca946a13f545826f65ff46766b5805f37ab7c4 100644 --- a/src/basics/utilities/UbScheduler.h +++ b/src/basics/utilities/UbScheduler.h @@ -328,20 +328,20 @@ using UbSchedule = UbScheduler::UbSchedule; // int main(int argc, char** argv) //{ -// UbScheduler writeSchedule; -//// writeSchedule.addSchedule(0,2000,100); -//// writeSchedule.addSchedule(3005,4500,300); -//// writeSchedule.addSchedule(0,10,1); -//// writeSchedule.addSchedule(0,100001,100); -// writeSchedule.addSchedule(0,2,1); -// writeSchedule.addSchedule(0,100001,200); +// UbScheduler writeSchedule; +//// writeSchedule.addSchedule(0,2000,100); +//// writeSchedule.addSchedule(3005,4500,300); +//// writeSchedule.addSchedule(0,10,1); +//// writeSchedule.addSchedule(0,100001,100); +// writeSchedule.addSchedule(0,2,1); +// writeSchedule.addSchedule(0,100001,200); // -// for(int t = 0; t < 1001; t++) -// { -// if(writeSchedule.isDue(t)) -// { -// cout<<"due@ "<<t<<endl; -// } -// } -// return 0; +// for(int t = 0; t < 1001; t++) +// { +// if(writeSchedule.isDue(t)) +// { +// cout<<"due@ "<<t<<endl; +// } +// } +// return 0; //} diff --git a/src/basics/utilities/UbStringInputASCII.cpp b/src/basics/utilities/UbStringInputASCII.cpp index 6a04f86aeb8d5b7be9e96ca39d1808b987c1f711..a86465c80e1d2f95d69b68c09769ca262e05474f 100644 --- a/src/basics/utilities/UbStringInputASCII.cpp +++ b/src/basics/utilities/UbStringInputASCII.cpp @@ -6,10 +6,10 @@ // // UbStringInputASCII::UbStringInputASCII(string inputString) : UbFileInputASCII("") //{ -// instream.str(inputString); +// instream.str(inputString); // // -//// this->filename = filename; +//// this->filename = filename; //// this->commentindicator = 'C'; //// //// infile.open(filename.c_str()); @@ -18,9 +18,9 @@ ///*==========================================================*/ // int UbStringInputASCII::readInteger() //{ -// int dummy; -// instream>>dummy; -// return dummy; +// int dummy; +// instream>>dummy; +// return dummy; //} ///*==========================================================*/ // std::size_t UbStringInputASCII::readSize_t() @@ -32,20 +32,20 @@ ///*==========================================================*/ // string UbStringInputASCII::getFileName() //{ -// return this->filename; +// return this->filename; //} // ///*==========================================================*/ // void UbStringInputASCII::skipLine() //{ -// string dummy; -// getline(instream, dummy); +// string dummy; +// getline(instream, dummy); //} ///*==========================================================*/ // void UbStringInputASCII::readLine() //{ -// string dummy; -// getline(instream, dummy); +// string dummy; +// getline(instream, dummy); //} ///*==========================================================*/ // string UbStringInputASCII::readStringLine() @@ -57,16 +57,16 @@ ///*==========================================================*/ // string UbStringInputASCII::readLineTill(char stop) //{ -// string dummy; -// getline(instream, dummy, stop); -// return dummy; +// string dummy; +// getline(instream, dummy, stop); +// return dummy; //} ///*==========================================================*/ // string UbStringInputASCII::parseString() //{ -// string dummy; -// getline(instream, dummy, ' '); -// return dummy; +// string dummy; +// getline(instream, dummy, ' '); +// return dummy; //} ///*==========================================================*/ // double UbStringInputASCII::readDouble() @@ -92,9 +92,9 @@ ///*==========================================================*/ // string UbStringInputASCII::readString() //{ -// string dummy; -// instream>>dummy; -// return dummy; +// string dummy; +// instream>>dummy; +// return dummy; //} ///*==========================================================*/ // bool UbStringInputASCII::containsString(string var) @@ -105,7 +105,7 @@ // { // instream.getline(line,512); // if(instream.eof()) return false; -// }while (strstr(line,var.c_str()) != line); // Ende Schleife, wenn varname ganz in zeile vorkommt +// }while (strstr(line,var.c_str()) != line); // Ende Schleife, wenn varname ganz in zeile vorkommt // // return true; //} @@ -118,7 +118,7 @@ // { // instream.getline(line,512); // if(instream.eof()) UB_THROW( UbException(UB_EXARGS,var+" wasn't found in "+this->filename) ); -// }while (strstr(line,var.c_str()) != line); // Ende Schleife, wenn varname ganz in zeile vorkommt +// }while (strstr(line,var.c_str()) != line); // Ende Schleife, wenn varname ganz in zeile vorkommt //} ///*==========================================================*/ // int UbStringInputASCII::readIntegerAfterString(string var) @@ -134,12 +134,12 @@ // { // instream.getline(line,512); // if(instream.eof()) UB_THROW( UbException(UB_EXARGS,var+" wasn't found in "+this->filename) ); -// }while (strstr(line,var.c_str()) != line); // Ende Schleife, wenn varname ganz in zeile vorkommt +// }while (strstr(line,var.c_str()) != line); // Ende Schleife, wenn varname ganz in zeile vorkommt // -// strcpy (line, (line+strlen(var.c_str()))); // zeile um "varname" kuerzen -// while ((line[0] == ' ') || (line[0] == '\t')) strcpy (line, (line+1)); // Whitespaces entfernen +// strcpy (line, (line+strlen(var.c_str()))); // zeile um "varname" kuerzen +// while ((line[0] == ' ') || (line[0] == '\t')) strcpy (line, (line+1)); // Whitespaces entfernen // -// return(atoi(line)); // Umwandlung in int +// return(atoi(line)); // Umwandlung in int //} ///*==========================================================*/ //// last change [10.3.2004] at [9:46] @@ -155,14 +155,14 @@ // { // instream.getline(line,512); // if(instream.eof()) UB_THROW( UbException(UB_EXARGS,var+" wasn't found in "+this->filename) ); -// }while (/*!strncmp(varname,line,sizeof(varname))==0*/strstr(line,var.c_str()) != line); // Ende Schleife, wenn +// }while (/*!strncmp(varname,line,sizeof(varname))==0*/strstr(line,var.c_str()) != line); // Ende Schleife, wenn // varname ganz in zeile vorkommt // // -// strcpy (line, (line+strlen(var.c_str()))); // zeile um "varname" kuerzen -// while ((line[0] == ' ') || (line[0] == '\t')) strcpy (line, (line+1)); // Whitespaces entfernen +// strcpy (line, (line+strlen(var.c_str()))); // zeile um "varname" kuerzen +// while ((line[0] == ' ') || (line[0] == '\t')) strcpy (line, (line+1)); // Whitespaces entfernen // -// return (atof(line)); // Umwandlung in double +// return (atof(line)); // Umwandlung in double //} ///*==========================================================*/ //// [9.9.2002] @@ -178,16 +178,16 @@ // do{ // instream.getline(line,512); // if(instream.eof()) UB_THROW( UbException(UB_EXARGS,var+" wasn't found in "+this->filename) ); -// }while (strstr(line,var.c_str()) != line); // Ende Schleife, wenn varname ganz in zeile vorkommt +// }while (strstr(line,var.c_str()) != line); // Ende Schleife, wenn varname ganz in zeile vorkommt // -// strcpy (line, (line+strlen(var.c_str()))); // zeile um "varname" kuerzen -// while ((line[0] == ' ') || (line[0] == '\t')) strcpy (line, (line+1)); // Whitespaces entfernen +// strcpy (line, (line+strlen(var.c_str()))); // zeile um "varname" kuerzen +// while ((line[0] == ' ') || (line[0] == '\t')) strcpy (line, (line+1)); // Whitespaces entfernen // // char *p; // p=strtok(line," "); //schneidet alles "ab und inklusive space " nach namen ab // p=strtok(line,"\t");//schneidet alles "ab und inklusive tab " nach namen ab // -// return (string)p; // Umwandlung in string +// return (string)p; // Umwandlung in string //} ///*==========================================================*/ //// last change [10.3.2004] at [9:46] diff --git a/src/basics/utilities/UbStringInputASCII.h b/src/basics/utilities/UbStringInputASCII.h index d83adde4dee62f703a6a6070b7a2c0eb6c66360f..177a68b7f13665cddd5b15495f937566be511d38 100644 --- a/src/basics/utilities/UbStringInputASCII.h +++ b/src/basics/utilities/UbStringInputASCII.h @@ -19,34 +19,34 @@ // class UbStringInputASCII : public UbFileInputASCII //{ // public: -// UbStringInputASCII(std::string inputString); +// UbStringInputASCII(std::string inputString); // -// std::string getFileName(); -// void skipLine(); // Springt zur naechsten Zeile +// std::string getFileName(); +// void skipLine(); // Springt zur naechsten Zeile // // void readLine(); // std::string readStringLine(); // std::size_t readSize_t(); -// int readInteger(); // Liest einen Int-Wert ein -// double readDouble(); // Liest einen double-Wert ein -// float readFloat(); // Liest einen float-Wert ein -// bool readBool(); // Liest einen bool-Wert ein +// int readInteger(); // Liest einen Int-Wert ein +// double readDouble(); // Liest einen double-Wert ein +// float readFloat(); // Liest einen float-Wert ein +// bool readBool(); // Liest einen bool-Wert ein // char readChar(); // Liest einen char-Wert ein -// std::string readString(); // Liest ein Wort ein -// std::string readLineTill(char stop); // Liest gesamte Zeile ein bis zu einem bestimmten Zeichen -// std::string parseString(); +// std::string readString(); // Liest ein Wort ein +// std::string readLineTill(char stop); // Liest gesamte Zeile ein bis zu einem bestimmten Zeichen +// std::string parseString(); // // bool containsString(std::string var); // void setPosAfterLineWithString(std::string var); -// int readIntegerAfterString(std::string var); -// double readDoubleAfterString(std::string var); +// int readIntegerAfterString(std::string var); +// double readDoubleAfterString(std::string var); // bool readBoolAfterString(std::string var); // std::string readStringAfterString(std::string var); // // FILETYPE getFileType() { return ASCII; } // // private: -// std::istringstream instream; +// std::istringstream instream; //}; // // diff --git a/src/basics/writer/WbWriterVtkXmlASCII.cpp b/src/basics/writer/WbWriterVtkXmlASCII.cpp index e217b5e24c328e32fb2e3110986f3bb895b98485..ac20c5aa0bcc13a21b00922a11bf79c417dacb4c 100644 --- a/src/basics/writer/WbWriterVtkXmlASCII.cpp +++ b/src/basics/writer/WbWriterVtkXmlASCII.cpp @@ -180,7 +180,7 @@ std::string WbWriterVtkXmlASCII::writeQuads(const string &filename, vector<UbTup << "\n"; out << " <UnstructuredGrid>" << "\n"; - out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; + out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; // POINTS SECTION out << " <Points>\n"; @@ -252,7 +252,7 @@ std::string WbWriterVtkXmlASCII::writeQuadsWithNodeData(const string &filename, << "\n"; out << " <UnstructuredGrid>" << "\n"; - out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; + out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; // POINTS SECTION out << " <Points>\n"; @@ -336,7 +336,7 @@ std::string WbWriterVtkXmlASCII::writeQuadsWithCellData(const string &filename, << "\n"; out << " <UnstructuredGrid>" << "\n"; - out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; + out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; // POINTS SECTION out << " <Points>\n"; @@ -425,7 +425,7 @@ string WbWriterVtkXmlASCII::writeQuadsWithNodeAndCellData(const string &filename << "\n"; out << " <UnstructuredGrid>" << "\n"; - out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; + out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; // POINTS SECTION out << " <Points>\n"; @@ -521,7 +521,7 @@ std::string WbWriterVtkXmlASCII::writeLines(const string &filename, vector<UbTup << "\n"; out << " <UnstructuredGrid>" << "\n"; - out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofLines << "\"> \n"; + out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofLines << "\"> \n"; // POINTS SECTION out << " <Points>\n"; @@ -586,7 +586,7 @@ std::string WbWriterVtkXmlASCII::writeLines(const string &filename, vector<UbTup // //VTK FILE // out<<"<VTKFile type=\"UnstructuredGrid\" version=\"0.1\" byte_order=\"LittleEndian\" >"<<"\n"; // out<<" <UnstructuredGrid>"<<"\n"; -// out<<" <Piece NumberOfPoints=\""<<nofNodes<<"\" NumberOfCells=\""<<nofLines<<"\"> \n"; +// out<<" <Piece NumberOfPoints=\""<<nofNodes<<"\" NumberOfCells=\""<<nofLines<<"\"> \n"; // // //POINTS SECTION // out<<" <Points>\n"; @@ -669,7 +669,7 @@ std::string WbWriterVtkXmlASCII::writeTriangles(const string &filename, vector<U << "\n"; out << " <UnstructuredGrid>" << "\n"; - out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofTriangles << "\"> \n"; + out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofTriangles << "\"> \n"; // POINTS SECTION out << " <Points>\n"; @@ -742,7 +742,7 @@ std::string WbWriterVtkXmlASCII::writeTrianglesWithNodeData(const std::string &f << "\n"; out << " <UnstructuredGrid>" << "\n"; - out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; + out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; // POINTS SECTION out << " <Points>\n"; @@ -826,7 +826,7 @@ std::string WbWriterVtkXmlASCII::writeOctsWithCellData(const string &filename, v << "\n"; out << " <UnstructuredGrid>" << "\n"; - out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; + out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; // POINTS SECTION out << " <Points>\n"; @@ -913,7 +913,7 @@ std::string WbWriterVtkXmlASCII::writeOctsWithNodeData(const string &filename, v << "\n"; out << " <UnstructuredGrid>" << "\n"; - out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; + out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; // POINTS SECTION out << " <Points>\n"; @@ -1001,7 +1001,7 @@ std::string WbWriterVtkXmlASCII::writeOcts(const string &filename, vector<UbTupl << "\n"; out << " <UnstructuredGrid>" << "\n"; - out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; + out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofCells << "\"> \n"; // POINTS SECTION out << " <Points>\n"; @@ -1070,7 +1070,7 @@ std::string WbWriterVtkXmlASCII::writeNodes(const std::string &filename, std::ve << "\n"; out << " <UnstructuredGrid>" << "\n"; - out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofNodes << "\"> \n"; + out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofNodes << "\"> \n"; // POINTS SECTION out << " <Points>\n"; @@ -1139,7 +1139,7 @@ std::string WbWriterVtkXmlASCII::writeNodesWithNodeData(const std::string &filen << "\n"; out << " <UnstructuredGrid>" << "\n"; - out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofNodes << "\"> \n"; + out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofNodes << "\"> \n"; // POINTS SECTION out << " <Points>\n"; @@ -1227,7 +1227,7 @@ std::string WbWriterVtkXmlASCII::writeNodesWithNodeDataDouble(const std::string << "\n"; out << " <UnstructuredGrid>" << "\n"; - out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofNodes << "\"> \n"; + out << " <Piece NumberOfPoints=\"" << nofNodes << "\" NumberOfCells=\"" << nofNodes << "\"> \n"; // POINTS SECTION out << " <Points>\n"; diff --git a/src/cpu/core/Connectors/CoarseToFineVectorConnector.h b/src/cpu/core/Connectors/CoarseToFineVectorConnector.h index 9a0612f2afa4d226341ea4ab8132566203454226..aff1ceea9cae0a7f04baa3f0395329acb74aa9cb 100644 --- a/src/cpu/core/Connectors/CoarseToFineVectorConnector.h +++ b/src/cpu/core/Connectors/CoarseToFineVectorConnector.h @@ -1059,7 +1059,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdOd, indexOdOd); break; - // /////E-W-N-S + // /////E-W-N-S case dPP0: lMinX1 = maxX1 - 4; lMaxX1 = lMinX1 + 3; @@ -1167,7 +1167,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, dataOdEv, indexOdEv); break; - // /////T-B-E-W + // /////T-B-E-W case dP0P: lMinX1 = maxX1 - 4; lMaxX1 = lMinX1 + 3; @@ -1699,7 +1699,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, maxX2 -= 2; } - // ////T-B-E-W + // ////T-B-E-W if (block.lock()->hasInterpolationFlagCF(dP0P) && !block.lock()->hasInterpolationFlagCF(dP00) && !block.lock()->hasInterpolationFlagCF(d00P)) { if (maxX1 == TmaxX1) @@ -1841,7 +1841,7 @@ void CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax(int &minX1, maxX2 -= 2; } - // ////T-B-E-W + // ////T-B-E-W if (block.lock()->hasInterpolationFlagCF(dP0P) && !block.lock()->hasInterpolationFlagCF(dP00) && !block.lock()->hasInterpolationFlagCF(d00P)) { if (maxX1 == TmaxX1) diff --git a/src/cpu/core/Connectors/FineToCoarseVectorConnector.h b/src/cpu/core/Connectors/FineToCoarseVectorConnector.h index 7b92bac07e2cd606fcf4f5531c6992e442bf4ee1..2a79ddb57959dfb0def42f321ead401e20f69f06 100644 --- a/src/cpu/core/Connectors/FineToCoarseVectorConnector.h +++ b/src/cpu/core/Connectors/FineToCoarseVectorConnector.h @@ -370,7 +370,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors() fillSendVector(fFrom, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - // ////N-S-E-W + // ////N-S-E-W case dPP0: getLocalMinMax(lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3); getLocalMins(lMinX1, lMinX2, lMinX3, oMinX1, oMinX2, oMinX3); @@ -958,7 +958,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; // - // /////T-B-E-W + // /////T-B-E-W case dP0P: lMinX1 = maxX1 - 4; lMaxX1 = lMinX1 + 3; @@ -995,7 +995,7 @@ void FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors() distributeReceiveVector(fTo, lMinX1, lMinX2, lMinX3, lMaxX1, lMaxX2, lMaxX3, data, index); break; - // ////////////////T-B-N-S + // ////////////////T-B-N-S // case d0PP: lMinX2 = maxX2 - 4; @@ -1518,16 +1518,16 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMins(int &minX1, in case dP0M: case dM0P: if (connType == OddEvenSE) - // minX1 += oMinX1; + // minX1 += oMinX1; if (connType == OddOddNE) { - // minX1 += oMinX1; + // minX1 += oMinX1; minX2 += oMinX2; } if (connType == EvenOddNW) minX2 += oMinX2; break; - // ////// + // ////// case d0PP: case d0MM: case d0PM: @@ -1542,18 +1542,18 @@ void FineToCoarseVectorConnector<VectorTransmitter>::getLocalMins(int &minX1, in // minX3 += oMinX3; break; - // ///// - // case TNE: case TNW: case TSE: case TSW: case BNE: case BNW: case BSE: case BSW: - // if(connType == OddEvenSE) - // // minX1 += oMinX1; - // if(connType == OddOddNE) - // { - // //minX1 += oMinX1; - // //minX3 += oMinX3; - // } - // if(connType == EvenOddNW) - // //minX3 += oMinX3; - // break; + // ///// + // case TNE: case TNW: case TSE: case TSW: case BNE: case BNW: case BSE: case BSW: + // if(connType == OddEvenSE) + // // minX1 += oMinX1; + // if(connType == OddOddNE) + // { + // //minX1 += oMinX1; + // //minX3 += oMinX3; + // } + // if(connType == EvenOddNW) + // //minX3 += oMinX3; + // break; } } ////////////////////////////////////////////////////////////////////////// diff --git a/src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.cpp b/src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.cpp index ce4f88cb7760c412a27fa53e9823353bcfa1f494..9dffa624cae9768ed36ab47c87d3c4bf8fac65af 100644 --- a/src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.cpp +++ b/src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.cpp @@ -45,10 +45,10 @@ void ThreeDistributionsDoubleGhostLayerFullDirectConnector::init() { FullDirectConnector::init(); - fFrom =dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getFdistributions()); - fTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getFdistributions()); - hFrom = dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getHdistributions()); - hTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getHdistributions()); + fFrom =dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getFdistributions()); + fTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getFdistributions()); + hFrom = dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getHdistributions()); + hTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getHdistributions()); hFrom2 = dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getH2distributions()); hTo2 = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getH2distributions()); pressureFrom = from.lock()->getKernel()->getDataSet()->getPressureField(); diff --git a/src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.h b/src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.h index 21a37e3427747d0c813c34b6fcf14b18ff3e1a76..0efc6d2d981e2846a9f6718f2730b0077de43095 100644 --- a/src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.h +++ b/src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.h @@ -48,7 +48,7 @@ class ThreeDistributionsDoubleGhostLayerFullDirectConnector : public FullDirectConnector { public: - ThreeDistributionsDoubleGhostLayerFullDirectConnector(SPtr<Block3D> from, SPtr<Block3D> to, int sendDir); + ThreeDistributionsDoubleGhostLayerFullDirectConnector(SPtr<Block3D> from, SPtr<Block3D> to, int sendDir); void init() override; void sendVectors() override; @@ -58,23 +58,23 @@ protected: inline void exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To) override; private: - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; - CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh2; CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh2; CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh2; @@ -82,7 +82,7 @@ private: CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh2; CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh2; - SPtr<EsoTwist3D> fFrom, hFrom, hFrom2; + SPtr<EsoTwist3D> fFrom, hFrom, hFrom2; SPtr<EsoTwist3D> fTo, hTo, hTo2; SPtr<PressureFieldArray3D> pressureFrom, pressureTo; @@ -117,68 +117,68 @@ inline void ThreeDistributionsDoubleGhostLayerFullDirectConnector::updatePointer ////////////////////////////////////////////////////////////////////////// inline void ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To) { - (*this->localDistributionsTof)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_E, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_N, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_T, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NE, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TE, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TN, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNE, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); - - (*this->nonLocalDistributionsTof)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_W, x1From + 1, x2From, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_S, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_B, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); - - (*this->zeroDistributionsTof)(x1To, x2To, x3To) = (*this->zeroDistributionsFromf)(x1From, x2From, x3From); - - - (*this->localDistributionsToh)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_E, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_N, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_T, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NE, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TE, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TN, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNE, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); - - (*this->nonLocalDistributionsToh)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_W, x1From + 1, x2From, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_S, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_B, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); - - (*this->zeroDistributionsToh)(x1To, x2To, x3To) = (*this->zeroDistributionsFromh)(x1From, x2From, x3From); - - (*this->localDistributionsToh2)(D3Q27System::ET_E, x1To, x2To, x3To) = + (*this->localDistributionsTof)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_E, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_N, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_T, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NE, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TE, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TN, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNE, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); + + (*this->nonLocalDistributionsTof)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_W, x1From + 1, x2From, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_S, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_B, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); + + (*this->zeroDistributionsTof)(x1To, x2To, x3To) = (*this->zeroDistributionsFromf)(x1From, x2From, x3From); + + + (*this->localDistributionsToh)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_E, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_N, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_T, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NE, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TE, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TN, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNE, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); + + (*this->nonLocalDistributionsToh)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_W, x1From + 1, x2From, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_S, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_B, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); + + (*this->zeroDistributionsToh)(x1To, x2To, x3To) = (*this->zeroDistributionsFromh)(x1From, x2From, x3From); + + (*this->localDistributionsToh2)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromh2)(D3Q27System::ET_E, x1From, x2From, x3From); (*this->localDistributionsToh2)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromh2)(D3Q27System::ET_N, x1From, x2From, x3From); diff --git a/src/cpu/core/Connectors/ThreeDistributionsFullDirectConnector.cpp b/src/cpu/core/Connectors/ThreeDistributionsFullDirectConnector.cpp index 727ed79ebb8e5a71fd625c77fb436db2c29b302c..b01920e867b7b45f4cf0027b42c0d0ef01e97183 100644 --- a/src/cpu/core/Connectors/ThreeDistributionsFullDirectConnector.cpp +++ b/src/cpu/core/Connectors/ThreeDistributionsFullDirectConnector.cpp @@ -45,10 +45,10 @@ void ThreeDistributionsFullDirectConnector::init() { FullDirectConnector::init(); - fFrom =dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getFdistributions()); - fTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getFdistributions()); - hFrom = dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getHdistributions()); - hTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getHdistributions()); + fFrom =dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getFdistributions()); + fTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getFdistributions()); + hFrom = dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getHdistributions()); + hTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getHdistributions()); hFrom2 = dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getH2distributions()); hTo2 = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getH2distributions()); } diff --git a/src/cpu/core/Connectors/ThreeDistributionsFullDirectConnector.h b/src/cpu/core/Connectors/ThreeDistributionsFullDirectConnector.h index 3cb443a474d373552125ddd2626a4f797d040429..d31b775f51347b5471512b0da763dc9f9ca90596 100644 --- a/src/cpu/core/Connectors/ThreeDistributionsFullDirectConnector.h +++ b/src/cpu/core/Connectors/ThreeDistributionsFullDirectConnector.h @@ -47,7 +47,7 @@ class ThreeDistributionsFullDirectConnector : public FullDirectConnector { public: - ThreeDistributionsFullDirectConnector(SPtr<Block3D> from, SPtr<Block3D> to, int sendDir); + ThreeDistributionsFullDirectConnector(SPtr<Block3D> from, SPtr<Block3D> to, int sendDir); void init() override; protected: @@ -55,23 +55,23 @@ protected: inline void exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To) override; private: - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; - CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh2; + CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh2; CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh2; CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh2; @@ -79,7 +79,7 @@ private: CbArray4D<real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh2; CbArray3D<real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh2; - SPtr<EsoTwist3D> fFrom, hFrom, hFrom2; + SPtr<EsoTwist3D> fFrom, hFrom, hFrom2; SPtr<EsoTwist3D> fTo, hTo, hTo2; }; ////////////////////////////////////////////////////////////////////////// @@ -112,68 +112,68 @@ inline void ThreeDistributionsFullDirectConnector::updatePointers() ////////////////////////////////////////////////////////////////////////// inline void ThreeDistributionsFullDirectConnector::exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To) { - (*this->localDistributionsTof)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_E, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_N, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_T, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NE, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TE, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TN, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNE, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); - - (*this->nonLocalDistributionsTof)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_W, x1From + 1, x2From, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_S, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_B, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); - - (*this->zeroDistributionsTof)(x1To, x2To, x3To) = (*this->zeroDistributionsFromf)(x1From, x2From, x3From); - - - (*this->localDistributionsToh)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_E, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_N, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_T, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NE, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TE, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TN, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNE, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); - - (*this->nonLocalDistributionsToh)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_W, x1From + 1, x2From, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_S, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_B, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); - - (*this->zeroDistributionsToh)(x1To, x2To, x3To) = (*this->zeroDistributionsFromh)(x1From, x2From, x3From); - - (*this->localDistributionsToh2)(D3Q27System::ET_E, x1To, x2To, x3To) = + (*this->localDistributionsTof)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_E, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_N, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_T, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NE, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TE, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TN, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNE, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); + + (*this->nonLocalDistributionsTof)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_W, x1From + 1, x2From, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_S, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_B, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); + + (*this->zeroDistributionsTof)(x1To, x2To, x3To) = (*this->zeroDistributionsFromf)(x1From, x2From, x3From); + + + (*this->localDistributionsToh)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_E, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_N, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_T, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NE, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TE, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TN, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNE, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); + + (*this->nonLocalDistributionsToh)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_W, x1From + 1, x2From, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_S, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_B, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); + + (*this->zeroDistributionsToh)(x1To, x2To, x3To) = (*this->zeroDistributionsFromh)(x1From, x2From, x3From); + + (*this->localDistributionsToh2)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromh2)(D3Q27System::ET_E, x1From, x2From, x3From); (*this->localDistributionsToh2)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromh2)(D3Q27System::ET_N, x1From, x2From, x3From); diff --git a/src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.cpp b/src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.cpp index 7413f237ecc603a73ad6d39a61689b0f9785b042..4e21297a92acb071db16f1a0f8cdea78a2cb5eee 100644 --- a/src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.cpp +++ b/src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.cpp @@ -45,10 +45,10 @@ void TwoDistributionsDoubleGhostLayerFullDirectConnector::init() { FullDirectConnector::init(); - fFrom =dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getFdistributions()); - fTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getFdistributions()); - hFrom = dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getHdistributions()); - hTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getHdistributions()); + fFrom =dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getFdistributions()); + fTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getFdistributions()); + hFrom = dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getHdistributions()); + hTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getHdistributions()); pressureFrom = from.lock()->getKernel()->getDataSet()->getPressureField(); pressureTo = to.lock()->getKernel()->getDataSet()->getPressureField(); } diff --git a/src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.h b/src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.h index 40f119cd61a80126cf80853ab9f7511d38132215..25769481d79ea2c5fc3185531542ede8c3256701 100644 --- a/src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.h +++ b/src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.h @@ -48,7 +48,7 @@ class TwoDistributionsDoubleGhostLayerFullDirectConnector : public FullDirectConnector { public: - TwoDistributionsDoubleGhostLayerFullDirectConnector(SPtr<Block3D> from, SPtr<Block3D> to, int sendDir); + TwoDistributionsDoubleGhostLayerFullDirectConnector(SPtr<Block3D> from, SPtr<Block3D> to, int sendDir); void init() override; void sendVectors() override; @@ -58,23 +58,23 @@ protected: inline void exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To) override; private: - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; - SPtr<EsoTwist3D> fFrom, hFrom; + SPtr<EsoTwist3D> fFrom, hFrom; SPtr<EsoTwist3D> fTo, hTo; SPtr<PressureFieldArray3D> pressureFrom, pressureTo; @@ -101,68 +101,68 @@ inline void TwoDistributionsDoubleGhostLayerFullDirectConnector::updatePointers( ////////////////////////////////////////////////////////////////////////// inline void TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To) { - (*this->localDistributionsTof)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_E, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_N, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_T, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NE, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TE, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TN, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNE, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); - - (*this->nonLocalDistributionsTof)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_W, x1From + 1, x2From, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_S, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_B, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); - - (*this->zeroDistributionsTof)(x1To, x2To, x3To) = (*this->zeroDistributionsFromf)(x1From, x2From, x3From); - - - (*this->localDistributionsToh)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_E, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_N, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_T, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NE, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TE, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TN, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNE, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); - - (*this->nonLocalDistributionsToh)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_W, x1From + 1, x2From, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_S, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_B, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); - - (*this->zeroDistributionsToh)(x1To, x2To, x3To) = (*this->zeroDistributionsFromh)(x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_E, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_N, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_T, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NE, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TE, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TN, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNE, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); + + (*this->nonLocalDistributionsTof)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_W, x1From + 1, x2From, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_S, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_B, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); + + (*this->zeroDistributionsTof)(x1To, x2To, x3To) = (*this->zeroDistributionsFromf)(x1From, x2From, x3From); + + + (*this->localDistributionsToh)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_E, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_N, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_T, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NE, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TE, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TN, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNE, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); + + (*this->nonLocalDistributionsToh)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_W, x1From + 1, x2From, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_S, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_B, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); + + (*this->zeroDistributionsToh)(x1To, x2To, x3To) = (*this->zeroDistributionsFromh)(x1From, x2From, x3From); if (this->pressureTo) - (*this->pressureTo)(x1To, x2To, x3To) = (*this->pressureFrom)(x1From, x2From, x3From); + (*this->pressureTo)(x1To, x2To, x3To) = (*this->pressureFrom)(x1From, x2From, x3From); } #endif \ No newline at end of file diff --git a/src/cpu/core/Connectors/TwoDistributionsFullDirectConnector.cpp b/src/cpu/core/Connectors/TwoDistributionsFullDirectConnector.cpp index 55c3ffd41a948255c33ce3711e7ed52b7ba823cc..85aff835ca5f9e63fe6a2398ff339ba323a4b224 100644 --- a/src/cpu/core/Connectors/TwoDistributionsFullDirectConnector.cpp +++ b/src/cpu/core/Connectors/TwoDistributionsFullDirectConnector.cpp @@ -45,8 +45,8 @@ void TwoDistributionsFullDirectConnector::init() { FullDirectConnector::init(); - fFrom =dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getFdistributions()); - fTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getFdistributions()); - hFrom = dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getHdistributions()); - hTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getHdistributions()); + fFrom =dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getFdistributions()); + fTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getFdistributions()); + hFrom = dynamicPointerCast<EsoTwist3D>(from.lock()->getKernel()->getDataSet()->getHdistributions()); + hTo = dynamicPointerCast<EsoTwist3D>(to.lock()->getKernel()->getDataSet()->getHdistributions()); } diff --git a/src/cpu/core/Connectors/TwoDistributionsFullDirectConnector.h b/src/cpu/core/Connectors/TwoDistributionsFullDirectConnector.h index 625b8f6e3292cf4f56eab91536e5e9c8069b238d..7c92fc7fc66302daa5e7f3ea455d21c227d73d3f 100644 --- a/src/cpu/core/Connectors/TwoDistributionsFullDirectConnector.h +++ b/src/cpu/core/Connectors/TwoDistributionsFullDirectConnector.h @@ -47,7 +47,7 @@ class TwoDistributionsFullDirectConnector : public FullDirectConnector { public: - TwoDistributionsFullDirectConnector(SPtr<Block3D> from, SPtr<Block3D> to, int sendDir); + TwoDistributionsFullDirectConnector(SPtr<Block3D> from, SPtr<Block3D> to, int sendDir); void init() override; protected: @@ -55,24 +55,24 @@ protected: inline void exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To) override; private: - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromf; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromf; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromf; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsTof; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsTof; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsTof; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsFromh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsFromh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsFromh; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; - CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; - CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr localDistributionsToh; + CbArray4D <real, IndexerX4X3X2X1>::CbArray4DPtr nonLocalDistributionsToh; + CbArray3D <real, IndexerX3X2X1>::CbArray3DPtr zeroDistributionsToh; - SPtr<EsoTwist3D> fFrom, hFrom; - SPtr<EsoTwist3D> fTo, hTo; + SPtr<EsoTwist3D> fFrom, hFrom; + SPtr<EsoTwist3D> fTo, hTo; }; ////////////////////////////////////////////////////////////////////////// inline void TwoDistributionsFullDirectConnector::updatePointers() @@ -96,65 +96,65 @@ inline void TwoDistributionsFullDirectConnector::updatePointers() ////////////////////////////////////////////////////////////////////////// inline void TwoDistributionsFullDirectConnector::exchangeData(int x1From, int x2From, int x3From, int x1To, int x2To, int x3To) { - (*this->localDistributionsTof)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_E, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_N, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_T, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NE, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TE, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TN, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNE, x1From, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); - (*this->localDistributionsTof)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); - - (*this->nonLocalDistributionsTof)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_W, x1From + 1, x2From, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_S, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_B, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); - - (*this->zeroDistributionsTof)(x1To, x2To, x3To) = (*this->zeroDistributionsFromf)(x1From, x2From, x3From); - - - (*this->localDistributionsToh)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_E, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_N, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_T, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NE, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TE, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TN, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNE, x1From, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); - (*this->localDistributionsToh)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); - - (*this->nonLocalDistributionsToh)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_W, x1From + 1, x2From, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_S, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_B, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); - (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); - - (*this->zeroDistributionsToh)(x1To, x2To, x3To) = (*this->zeroDistributionsFromh)(x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_E, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_N, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_T, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NE, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TE, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TN, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNE, x1From, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); + (*this->localDistributionsTof)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromf)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); + + (*this->nonLocalDistributionsTof)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_W, x1From + 1, x2From, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_S, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_B, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsTof)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromf)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); + + (*this->zeroDistributionsTof)(x1To, x2To, x3To) = (*this->zeroDistributionsFromf)(x1From, x2From, x3From); + + + (*this->localDistributionsToh)(D3Q27System::ET_E, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_E, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_N, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_N, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_T, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_T, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_NE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NE, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_NW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_NW, x1From + 1, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TE, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TW, x1From + 1, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TN, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TN, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TS, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TS, x1From, x2From + 1, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TNE, x1To, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNE, x1From, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TNW, x1To + 1, x2To, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TNW, x1From + 1, x2From, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TSE, x1To, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSE, x1From, x2From + 1, x3From); + (*this->localDistributionsToh)(D3Q27System::ET_TSW, x1To + 1, x2To + 1, x3To) = (*this->localDistributionsFromh)(D3Q27System::ET_TSW, x1From + 1, x2From + 1, x3From); + + (*this->nonLocalDistributionsToh)(D3Q27System::ET_W, x1To + 1, x2To, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_W, x1From + 1, x2From, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_S, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_S, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_B, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_B, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_SW, x1To + 1, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SW, x1From + 1, x2From + 1, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_SE, x1To, x2To + 1, x3To) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_SE, x1From, x2From + 1, x3From); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BE, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BS, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BS, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BN, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BN, x1From, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSW, x1To + 1, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSW, x1From + 1, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BSE, x1To, x2To + 1, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BSE, x1From, x2From + 1, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNW, x1To + 1, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNW, x1From + 1, x2From, x3From + 1); + (*this->nonLocalDistributionsToh)(D3Q27System::ET_BNE, x1To, x2To, x3To + 1) = (*this->nonLocalDistributionsFromh)(D3Q27System::ET_BNE, x1From, x2From, x3From + 1); + + (*this->zeroDistributionsToh)(x1To, x2To, x3To) = (*this->zeroDistributionsFromh)(x1From, x2From, x3From); } #endif \ No newline at end of file diff --git a/src/cpu/core/Interactors/D3Q27TriFaceMeshInteractor.cpp b/src/cpu/core/Interactors/D3Q27TriFaceMeshInteractor.cpp index f655ac84d1c12b9206dad27d53250f1ff9702f02..d4dc0b3499f5dd936ead549c463e980cab88f4cc 100644 --- a/src/cpu/core/Interactors/D3Q27TriFaceMeshInteractor.cpp +++ b/src/cpu/core/Interactors/D3Q27TriFaceMeshInteractor.cpp @@ -894,18 +894,18 @@ void D3Q27TriFaceMeshInteractor::initInteractor2(const real &timeStep) internX2 = val<2>(coords) + nodeDx2 * ix2 - c1o2 * nodeDx2; for (int ix1 = indexMinX1; ix1 < indexMaxX1; ix1++) { - // int blx1 =block->getX1(); - // int blx2 = block->getX2(); - // int blx3 = block->getX3(); - - // if (blx1==0&&blx2==1&&blx3==0) - // { - // //if (ix2==39&&ix3==4) - // if (ix2==39&&ix3==4) - // { - // int seb=0; - // } - // } + // int blx1 =block->getX1(); + // int blx2 = block->getX2(); + // int blx3 = block->getX3(); + + // if (blx1==0&&blx2==1&&blx3==0) + // { + // //if (ix2==39&&ix3==4) + // if (ix2==39&&ix3==4) + // { + // int seb=0; + // } + // } // Problem: wenn voher der punkt durch eine andere geo not active gesetzt wird und // dieser nun uebersprungen wird, dann hat man spaeter beim fuellalgorithmus luecken // in der front und der block wird u.U. faelschlicher weise komplett solid markiert @@ -1208,10 +1208,10 @@ void D3Q27TriFaceMeshInteractor::initInteractor2(const real &timeStep) for (int bx2 = 0; bx2 < blocknx2; ++bx2) { for (int bx1 = 0; bx1 < blocknx1; ++bx1) { - // if (bx2==9&&bx3==29) - // { - // int ride=0; - // } + // if (bx2==9&&bx3==29) + // { + // int ride=0; + // } if (flagField(bx1, bx2, bx3) == UNDEF_FLAG) { if (mesh->isPointInGbObject3D(val<1>(coords) + bx1 * nodeDeltaX1 - c1o2 * nodeDeltaX1, val<2>(coords) + bx2 * nodeDeltaX2 - c1o2 * nodeDeltaX2, diff --git a/src/cpu/core/LBM/Interpolation/IncompressibleOffsetInterpolator.cpp b/src/cpu/core/LBM/Interpolation/IncompressibleOffsetInterpolator.cpp index d8f7efac4cfab144e163bb0263993dc8ba997d17..7dd88a51556b22cedc636eebcd24d2df5e21cc22 100644 --- a/src/cpu/core/LBM/Interpolation/IncompressibleOffsetInterpolator.cpp +++ b/src/cpu/core/LBM/Interpolation/IncompressibleOffsetInterpolator.cpp @@ -794,19 +794,19 @@ void IncompressibleOffsetInterpolator::calcInterpolatedNodeFC(real* f, real omeg ////////////////////////////////////////////////////////////////////////// void IncompressibleOffsetInterpolator::calcInterpolatedVelocity(real x, real y, real z, real& vx1, real& vx2, real& vx3) { - vx1 = a0 + ax*x + ay*y + az*z + axx*x*x + ayy*y*y + azz*z*z + axy*x*y + axz*x*z + ayz*y*z+axyz*x*y*z; - vx2 = b0 + bx*x + by*y + bz*z + bxx*x*x + byy*y*y + bzz*z*z + bxy*x*y + bxz*x*z + byz*y*z+bxyz*x*y*z; - vx3 = c0 + cx*x + cy*y + cz*z + cxx*x*x + cyy*y*y + czz*z*z + cxy*x*y + cxz*x*z + cyz*y*z+cxyz*x*y*z; + vx1 = a0 + ax*x + ay*y + az*z + axx*x*x + ayy*y*y + azz*z*z + axy*x*y + axz*x*z + ayz*y*z+axyz*x*y*z; + vx2 = b0 + bx*x + by*y + bz*z + bxx*x*x + byy*y*y + bzz*z*z + bxy*x*y + bxz*x*z + byz*y*z+bxyz*x*y*z; + vx3 = c0 + cx*x + cy*y + cz*z + cxx*x*x + cyy*y*y + czz*z*z + cxy*x*y + cxz*x*z + cyz*y*z+cxyz*x*y*z; } ////////////////////////////////////////////////////////////////////////// void IncompressibleOffsetInterpolator::calcInterpolatedShearStress(real x, real y, real z,real& tauxx, real& tauyy, real& tauzz,real& tauxy, real& tauxz, real& tauyz) { using namespace vf::basics::constant; - tauxx=ax+c2o1*axx*x+axy*y+axz*z+axyz*y*z; - tauyy=by+c2o1*byy*y+bxy*x+byz*z+bxyz*x*z; - tauzz=cz+c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y; - tauxy=c1o2*((ay+c2o1*ayy*y+axy*x+ayz*z+axyz*x*z)+(bx+c2o1*bxx*x+bxy*y+bxz*z+bxyz*y*z)); - tauxz=c1o2*((az+c2o1*azz*z+axz*x+ayz*y+axyz*x*y)+(cx+c2o1*cxx*x+cxy*y+cxz*z+cxyz*y*z)); - tauyz=c1o2*((bz+c2o1*bzz*z+bxz*x+byz*y+bxyz*x*y)+(cy+c2o1*cyy*y+cxy*x+cyz*z+cxyz*x*z)); + tauxx=ax+c2o1*axx*x+axy*y+axz*z+axyz*y*z; + tauyy=by+c2o1*byy*y+bxy*x+byz*z+bxyz*x*z; + tauzz=cz+c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y; + tauxy=c1o2*((ay+c2o1*ayy*y+axy*x+ayz*z+axyz*x*z)+(bx+c2o1*bxx*x+bxy*y+bxz*z+bxyz*y*z)); + tauxz=c1o2*((az+c2o1*azz*z+axz*x+ayz*y+axyz*x*y)+(cx+c2o1*cxx*x+cxy*y+cxz*z+cxyz*y*z)); + tauyz=c1o2*((bz+c2o1*bzz*z+bxz*x+byz*y+bxyz*x*y)+(cy+c2o1*cyy*y+cxy*x+cyz*z+cxyz*x*z)); } diff --git a/src/cpu/core/LBM/K15CompressibleNavierStokes.cpp b/src/cpu/core/LBM/K15CompressibleNavierStokes.cpp index 7594364ada722e66ed22522af82fc4f673308c82..4b8e2259eb54c050535d6346cf9544765cc5d802 100644 --- a/src/cpu/core/LBM/K15CompressibleNavierStokes.cpp +++ b/src/cpu/core/LBM/K15CompressibleNavierStokes.cpp @@ -235,7 +235,7 @@ void K15CompressibleNavierStokes::calculate(int step) mfaaa = m0; m0 += c1o36 * oMdrho; mfaab = m1-m0 * vvz; - mfaac = m2-c2o1* m1 * vvz+vz2 * m0; + mfaac = m2-c2o1* m1 * vvz+vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaba+mfabc; m1 = mfabc-mfaba; @@ -243,7 +243,7 @@ void K15CompressibleNavierStokes::calculate(int step) mfaba = m0; m0 += c1o9 * oMdrho; mfabb = m1-m0 * vvz; - mfabc = m2-c2o1* m1 * vvz+vz2 * m0; + mfabc = m2-c2o1* m1 * vvz+vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaca+mfacc; m1 = mfacc-mfaca; @@ -251,7 +251,7 @@ void K15CompressibleNavierStokes::calculate(int step) mfaca = m0; m0 += c1o36 * oMdrho; mfacb = m1-m0 * vvz; - mfacc = m2-c2o1* m1 * vvz+vz2 * m0; + mfacc = m2-c2o1* m1 * vvz+vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfbaa+mfbac; @@ -260,7 +260,7 @@ void K15CompressibleNavierStokes::calculate(int step) mfbaa = m0; m0 += c1o9 * oMdrho; mfbab = m1-m0 * vvz; - mfbac = m2-c2o1* m1 * vvz+vz2 * m0; + mfbac = m2-c2o1* m1 * vvz+vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfbba+mfbbc; m1 = mfbbc-mfbba; @@ -268,7 +268,7 @@ void K15CompressibleNavierStokes::calculate(int step) mfbba = m0; m0 += c4o9 * oMdrho; mfbbb = m1-m0 * vvz; - mfbbc = m2-c2o1* m1 * vvz+vz2 * m0; + mfbbc = m2-c2o1* m1 * vvz+vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfbca+mfbcc; m1 = mfbcc-mfbca; @@ -276,7 +276,7 @@ void K15CompressibleNavierStokes::calculate(int step) mfbca = m0; m0 += c1o9 * oMdrho; mfbcb = m1-m0 * vvz; - mfbcc = m2-c2o1* m1 * vvz+vz2 * m0; + mfbcc = m2-c2o1* m1 * vvz+vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfcaa+mfcac; @@ -285,7 +285,7 @@ void K15CompressibleNavierStokes::calculate(int step) mfcaa = m0; m0 += c1o36 * oMdrho; mfcab = m1-m0 * vvz; - mfcac = m2-c2o1* m1 * vvz+vz2 * m0; + mfcac = m2-c2o1* m1 * vvz+vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfcba+mfcbc; m1 = mfcbc-mfcba; @@ -293,7 +293,7 @@ void K15CompressibleNavierStokes::calculate(int step) mfcba = m0; m0 += c1o9 * oMdrho; mfcbb = m1-m0 * vvz; - mfcbc = m2-c2o1* m1 * vvz+vz2 * m0; + mfcbc = m2-c2o1* m1 * vvz+vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfcca+mfccc; m1 = mfccc-mfcca; @@ -301,7 +301,7 @@ void K15CompressibleNavierStokes::calculate(int step) mfcca = m0; m0 += c1o36 * oMdrho; mfccb = m1-m0 * vvz; - mfccc = m2-c2o1* m1 * vvz+vz2 * m0; + mfccc = m2-c2o1* m1 * vvz+vz2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren @@ -313,14 +313,14 @@ void K15CompressibleNavierStokes::calculate(int step) mfaaa = m0; m0 += c1o6 * oMdrho; mfaba = m1-m0 * vvy; - mfaca = m2-c2o1* m1 * vvy+vy2 * m0; + mfaca = m2-c2o1* m1 * vvy+vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaab+mfacb; m1 = mfacb-mfaab; m0 = m2+mfabb; mfaab = m0; mfabb = m1-m0 * vvy; - mfacb = m2-c2o1* m1 * vvy+vy2 * m0; + mfacb = m2-c2o1* m1 * vvy+vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaac+mfacc; m1 = mfacc-mfaac; @@ -328,7 +328,7 @@ void K15CompressibleNavierStokes::calculate(int step) mfaac = m0; m0 += c1o18 * oMdrho; mfabc = m1-m0 * vvy; - mfacc = m2-c2o1* m1 * vvy+vy2 * m0; + mfacc = m2-c2o1* m1 * vvy+vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfbaa+mfbca; @@ -337,14 +337,14 @@ void K15CompressibleNavierStokes::calculate(int step) mfbaa = m0; m0 += c2o3 * oMdrho; mfbba = m1-m0 * vvy; - mfbca = m2-c2o1* m1 * vvy+vy2 * m0; + mfbca = m2-c2o1* m1 * vvy+vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfbab+mfbcb; m1 = mfbcb-mfbab; m0 = m2+mfbbb; mfbab = m0; mfbbb = m1-m0 * vvy; - mfbcb = m2-c2o1* m1 * vvy+vy2 * m0; + mfbcb = m2-c2o1* m1 * vvy+vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfbac+mfbcc; m1 = mfbcc-mfbac; @@ -352,7 +352,7 @@ void K15CompressibleNavierStokes::calculate(int step) mfbac = m0; m0 += c2o9 * oMdrho; mfbbc = m1-m0 * vvy; - mfbcc = m2-c2o1* m1 * vvy+vy2 * m0; + mfbcc = m2-c2o1* m1 * vvy+vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfcaa+mfcca; @@ -361,14 +361,14 @@ void K15CompressibleNavierStokes::calculate(int step) mfcaa = m0; m0 += c1o6 * oMdrho; mfcba = m1-m0 * vvy; - mfcca = m2-c2o1* m1 * vvy+vy2 * m0; + mfcca = m2-c2o1* m1 * vvy+vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfcab+mfccb; m1 = mfccb-mfcab; m0 = m2+mfcbb; mfcab = m0; mfcbb = m1-m0 * vvy; - mfccb = m2-c2o1* m1 * vvy+vy2 * m0; + mfccb = m2-c2o1* m1 * vvy+vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfcac+mfccc; m1 = mfccc-mfcac; @@ -376,10 +376,10 @@ void K15CompressibleNavierStokes::calculate(int step) mfcac = m0; m0 += c1o18 * oMdrho; mfcbc = m1-m0 * vvy; - mfccc = m2-c2o1* m1 * vvy+vy2 * m0; + mfccc = m2-c2o1* m1 * vvy+vy2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren //////////////////////////////////////////////////////////////////////////////////// // X - Dir m2 = mfaaa+mfcaa; @@ -388,14 +388,14 @@ void K15CompressibleNavierStokes::calculate(int step) mfaaa = m0; m0 += c1o1* oMdrho; mfbaa = m1-m0 * vvx; - mfcaa = m2-c2o1* m1 * vvx+vx2 * m0; + mfcaa = m2-c2o1* m1 * vvx+vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaba+mfcba; m1 = mfcba-mfaba; m0 = m2+mfbba; mfaba = m0; mfbba = m1-m0 * vvx; - mfcba = m2-c2o1* m1 * vvx+vx2 * m0; + mfcba = m2-c2o1* m1 * vvx+vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfaca+mfcca; m1 = mfcca-mfaca; @@ -403,7 +403,7 @@ void K15CompressibleNavierStokes::calculate(int step) mfaca = m0; m0 += c1o3 * oMdrho; mfbca = m1-m0 * vvx; - mfcca = m2-c2o1* m1 * vvx+vx2 * m0; + mfcca = m2-c2o1* m1 * vvx+vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfaab+mfcab; @@ -411,21 +411,21 @@ void K15CompressibleNavierStokes::calculate(int step) m0 = m2+mfbab; mfaab = m0; mfbab = m1-m0 * vvx; - mfcab = m2-c2o1* m1 * vvx+vx2 * m0; + mfcab = m2-c2o1* m1 * vvx+vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfabb+mfcbb; m1 = mfcbb-mfabb; m0 = m2+mfbbb; mfabb = m0; mfbbb = m1-m0 * vvx; - mfcbb = m2-c2o1* m1 * vvx+vx2 * m0; + mfcbb = m2-c2o1* m1 * vvx+vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfacb+mfccb; m1 = mfccb-mfacb; m0 = m2+mfbcb; mfacb = m0; mfbcb = m1-m0 * vvx; - mfccb = m2-c2o1* m1 * vvx+vx2 * m0; + mfccb = m2-c2o1* m1 * vvx+vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// m2 = mfaac+mfcac; @@ -434,14 +434,14 @@ void K15CompressibleNavierStokes::calculate(int step) mfaac = m0; m0 += c1o3 * oMdrho; mfbac = m1-m0 * vvx; - mfcac = m2-c2o1* m1 * vvx+vx2 * m0; + mfcac = m2-c2o1* m1 * vvx+vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfabc+mfcbc; m1 = mfcbc-mfabc; m0 = m2+mfbbc; mfabc = m0; mfbbc = m1-m0 * vvx; - mfcbc = m2-c2o1* m1 * vvx+vx2 * m0; + mfcbc = m2-c2o1* m1 * vvx+vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// m2 = mfacc+mfccc; m1 = mfccc-mfacc; @@ -449,7 +449,7 @@ void K15CompressibleNavierStokes::calculate(int step) mfacc = m0; m0 += c1o9 * oMdrho; mfbcc = m1-m0 * vvx; - mfccc = m2-c2o1* m1 * vvx+vx2 * m0; + mfccc = m2-c2o1* m1 * vvx+vx2 * m0; //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// @@ -483,7 +483,7 @@ void K15CompressibleNavierStokes::calculate(int step) //central moments to cumulants //4. - real CUMcbb = mfcbb-((mfcaa+c1o3) * mfabb+c2o1 * mfbba * mfbab)/rho; //ab 15.05.2015 verwendet + real CUMcbb = mfcbb-((mfcaa+c1o3) * mfabb+c2o1 * mfbba * mfbab)/rho; //ab 15.05.2015 verwendet real CUMbcb = mfbcb-((mfaca+c1o3) * mfbab+c2o1 * mfbba * mfabb)/rho; //ab 15.05.2015 verwendet real CUMbbc = mfbbc-((mfaac+c1o3) * mfbba+c2o1 * mfbab * mfabb)/rho; //ab 15.05.2015 verwendet @@ -522,7 +522,7 @@ void K15CompressibleNavierStokes::calculate(int step) real mxxMzz = mfcaa-mfaac; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //incl. correction (hat noch nicht so gut funktioniert...Optimierungsbedarf??) + //incl. correction (hat noch nicht so gut funktioniert...Optimierungsbedarf??) { real dxux = c1o2 * (-omega) *(mxxMyy+mxxMzz)+c1o2 * OxxPyyPzz * (mfaaa-mxxPyyPzz); real dyuy = dxux+omega * c3o2 * mxxMyy; diff --git a/src/cpu/core/Parallel/MPIIODataStructures.h b/src/cpu/core/Parallel/MPIIODataStructures.h index cb0ed85782f9b8bbdda8b4243f622cc4407df519..aa10500fb3acf71e74afb8f5d7a22aadccf84e53 100644 --- a/src/cpu/core/Parallel/MPIIODataStructures.h +++ b/src/cpu/core/Parallel/MPIIODataStructures.h @@ -109,7 +109,7 @@ struct DataSetSmallMigration { //! \details The structure is used to write data describing boundary conditions of the blocks when saving the grid //! and to read it when restoring the grid struct BoundaryCondition { - long long noslipBoundaryFlags; // MPI_LONG_LONG + long long noslipBoundaryFlags; // MPI_LONG_LONG long long slipBoundaryFlags; long long velocityBoundaryFlags; long long densityBoundaryFlags; @@ -141,11 +141,11 @@ struct boundCondParam { //! \brief Structure describes parameters of the BCAdd in MPIIORestartSimulationObserver format //! \details The structure is used when reading from the file struct BCAddRestart { - int x1; // to find the right block + int x1; // to find the right block int x2; int x3; int level; - int boundCond_count; // how many BoundaryCondition-structures are in this block + int boundCond_count; // how many BoundaryCondition-structures are in this block int indexContainer_count; // how many indexContainer-values are in this block }; @@ -156,7 +156,7 @@ struct BCAddRestart { //! and to set common parameters struct BCAddMigration { int globalID; - int boundCond_count; // how many BoundaryCondition-structures are in this block + int boundCond_count; // how many BoundaryCondition-structures are in this block int indexContainer_count; // how many indexContainer-values are in this block }; diff --git a/src/cpu/core/Simulation/Grid3D.cpp b/src/cpu/core/Simulation/Grid3D.cpp index faa3d793b72f4e1c51c7c6d87d060c68dfbed7d9..635f92ad6cb9ee90151c06509b9d329601d83998 100644 --- a/src/cpu/core/Simulation/Grid3D.cpp +++ b/src/cpu/core/Simulation/Grid3D.cpp @@ -165,7 +165,7 @@ void Grid3D::deleteBlocks() int maxInitLevel = D3Q27System::MAXLEVEL; for (int level = minInitLevel; level < maxInitLevel; level++) { getBlocks(level, blocksVector[level]); - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level deleteBlock(block); } } @@ -239,7 +239,7 @@ SPtr<Block3D> Grid3D::getSuperBlock(int ix1, int ix2, int ix3, int level) if (level < 1) throw UbException(UB_EXARGS, "level <1"); - // from Lower Level to higher: >> 1 in x1,x2,x3 + // from Lower Level to higher: >> 1 in x1,x2,x3 SPtr<Block3D> block; for (int l = level - 1; l >= 0; l--) { ix1 = ix1 >> 1; diff --git a/src/cpu/core/SimulationObservers/AverageValuesSimulationObserver.cpp b/src/cpu/core/SimulationObservers/AverageValuesSimulationObserver.cpp index 4542a2837b7c08653e138e73df18493a67b96bde..f0e2d84af4fa33ae7fc2145a1a94a130eaa1136e 100644 --- a/src/cpu/core/SimulationObservers/AverageValuesSimulationObserver.cpp +++ b/src/cpu/core/SimulationObservers/AverageValuesSimulationObserver.cpp @@ -221,7 +221,7 @@ void AverageValuesSimulationObserver::clearData() void AverageValuesSimulationObserver::addData(const SPtr<Block3D> block) { UbTupleDouble3 org = grid->getBlockWorldCoordinates(block); - // UbTupleDouble3 blockLengths = grid->getBlockLengths(block); + // UbTupleDouble3 blockLengths = grid->getBlockLengths(block); UbTupleDouble3 nodeOffset = grid->getNodeOffset(block); real dx = grid->getDeltaX(block); @@ -454,97 +454,97 @@ void AverageValuesSimulationObserver::calculateAverageValues(real timeStep) // void AverageValuesSimulationObserver::initPlotData(double step) //{ // std::shared_ptr<vf::parallel::Communicator> comm = vf::parallel::Communicator::getInstance(); -// if (comm->getProcessID() == comm->getRoot()) -// { -// std::ofstream ostr; -// string fname = path + "_PlotData_" + UbSystem::toString(step) + ".txt"; -// ostr.open(fname.c_str(), std::ios_base::out); -// if(!ostr) -// { -// ostr.clear(); -// string path = UbSystem::getPathFromString(fname); -// if(path.size()>0){ UbSystem::makeDirectory(path); ostr.open(fname.c_str(), std::ios_base::out);} -// if(!ostr) throw UbException(UB_EXARGS,"couldn't open file "+fname); -// } -// ostr << "Time"<< "\t" <<"Ref.Time"<<"\t"<< "Z_Coor"<< "\t" << "Pore fraction" << "\t"; -// ostr << "Vx" << "\t" << "Vy" << "\t" << "Vz" << "\t"; -// ostr << "TSx" << "\t" << "TSy"<< "\t" << "TSz"<< "TSxz"; -// ostr << endl; -// ostr.close(); -// } +// if (comm->getProcessID() == comm->getRoot()) +// { +// std::ofstream ostr; +// string fname = path + "_PlotData_" + UbSystem::toString(step) + ".txt"; +// ostr.open(fname.c_str(), std::ios_base::out); +// if(!ostr) +// { +// ostr.clear(); +// string path = UbSystem::getPathFromString(fname); +// if(path.size()>0){ UbSystem::makeDirectory(path); ostr.open(fname.c_str(), std::ios_base::out);} +// if(!ostr) throw UbException(UB_EXARGS,"couldn't open file "+fname); +// } +// ostr << "Time"<< "\t" <<"Ref.Time"<<"\t"<< "Z_Coor"<< "\t" << "Pore fraction" << "\t"; +// ostr << "Vx" << "\t" << "Vy" << "\t" << "Vz" << "\t"; +// ostr << "TSx" << "\t" << "TSy"<< "\t" << "TSz"<< "TSxz"; +// ostr << endl; +// ostr.close(); +// } //} ////////////////////////////////////////////////////////////////////////////// // void AverageValuesSimulationObserver::collectPlotData(double step) //{ // -// double hminX1 = 0.9; -// double hminX2 = 0.0; -// double hmaxX1 = 0.95; -// double hmaxX2 = 0.01; //systemabmessungen world units +// double hminX1 = 0.9; +// double hminX2 = 0.0; +// double hmaxX1 = 0.95; +// double hmaxX2 = 0.01; //systemabmessungen world units // -// // 3 level platte standard: -// double hX3_level[] = {0.305, 0.309,0.3365,0.35}; -// //0.004, 0,0365,0.045 -// //musis: 3 level refinement -// //double hX3_level[] = {0.42, 0.28, 0.105, 0.0}; //refinement coords -// //bsislevel von 0.42-0.28,... (level 0 bis 2 , 3 insgesamt) -// //musis: 4 level refinement -// //double hX3_level[] = {0.42, 0.3, 0.195, 0.078, 0.0}; -// //musis: 5 level refinement -// //double hX3_level[] = {0.396, 0.28, 0.18, 0.08, 0.006, 0.0}; +// // 3 level platte standard: +// double hX3_level[] = {0.305, 0.309,0.3365,0.35}; +// //0.004, 0,0365,0.045 +// //musis: 3 level refinement +// //double hX3_level[] = {0.42, 0.28, 0.105, 0.0}; //refinement coords +// //bsislevel von 0.42-0.28,... (level 0 bis 2 , 3 insgesamt) +// //musis: 4 level refinement +// //double hX3_level[] = {0.42, 0.3, 0.195, 0.078, 0.0}; +// //musis: 5 level refinement +// //double hX3_level[] = {0.396, 0.28, 0.18, 0.08, 0.006, 0.0}; // -// ostringstream Str; -// Str << step; -// string step2string(Str.str()); -// string fname = path + "_PlotZ_" + step2string + ".txt"; +// ostringstream Str; +// Str << step; +// string step2string(Str.str()); +// string fname = path + "_PlotZ_" + step2string + ".txt"; // // -// for(int level = minInitLevel; level<=maxInitLevel;level++) -// { -// double dx = grid->getDeltaX(level); +// for(int level = minInitLevel; level<=maxInitLevel;level++) +// { +// double dx = grid->getDeltaX(level); // -// for (double hi =hX3_level[level]; hi >= hX3_level[level+1]; hi=hi-dx ){ -// D3Q27IntegrateValuesHelper h1(grid, comm, -// hminX1, hminX2, hi, -// hmaxX1, hmaxX2, hi-dx); +// for (double hi =hX3_level[level]; hi >= hX3_level[level+1]; hi=hi-dx ){ +// D3Q27IntegrateValuesHelper h1(grid, comm, +// hminX1, hminX2, hi, +// hmaxX1, hmaxX2, hi-dx); // -// h1.calculateAV(); -// double nn1 = h1.getNumberOfNodes(); -// double ns1 = h1.getNumberOfSolids(); -// if (nn1 > 0.0){ -// // get data and write into txt files -// if (comm->getProcessID() == comm->getRoot()) -// { -// int istep = static_cast<int>(step); -// std::ofstream ostr; +// h1.calculateAV(); +// double nn1 = h1.getNumberOfNodes(); +// double ns1 = h1.getNumberOfSolids(); +// if (nn1 > 0.0){ +// // get data and write into txt files +// if (comm->getProcessID() == comm->getRoot()) +// { +// int istep = static_cast<int>(step); +// std::ofstream ostr; // -// double AvVx1 = h1.getAvVx1()/nn1; -// double AvVx2 = h1.getAvVx2()/nn1; -// double AvVx3 = h1.getAvVx3()/nn1; +// double AvVx1 = h1.getAvVx1()/nn1; +// double AvVx2 = h1.getAvVx2()/nn1; +// double AvVx3 = h1.getAvVx3()/nn1; // -// double AvTSx1 = h1.getTSx1()/nn1; -// double AvTSx2 = h1.getTSx2()/nn1; -// double AvTSx3 = h1.getTSx3()/nn1; +// double AvTSx1 = h1.getTSx1()/nn1; +// double AvTSx2 = h1.getTSx2()/nn1; +// double AvTSx3 = h1.getTSx3()/nn1; // -// double AvTSx1x3 = h1.getTSx1x3()/nn1; +// double AvTSx1x3 = h1.getTSx1x3()/nn1; // -// ostr.open(fname.c_str(), std::ios_base::out | std::ios_base::app); -// if(!ostr) -// { -// ostr.clear(); -// string path = UbSystem::getPathFromString(fname); -// if(path.size()>0){ UbSystem::makeDirectory(path); ostr.open(fname.c_str(), std::ios_base::out | -//std::ios_base::app);} if(!ostr) throw UbException(UB_EXARGS,"couldn't open file "+fname); -// } -// ostr << istep << "\t" << resetStep << "\t" << hi+0.5*dx << "\t" << nn1/(nn1+ns1)*100.0 << "%\t"; -// ostr << AvVx1 << "\t" << AvVx2 << "\t" << AvVx3 << "\t"; -// ostr << AvTSx1<< "\t" << AvTSx2<< "\t" << AvTSx3<< "\t" << AvTSx1x3; -// ostr << endl; -// ostr.close(); +// ostr.open(fname.c_str(), std::ios_base::out | std::ios_base::app); +// if(!ostr) +// { +// ostr.clear(); +// string path = UbSystem::getPathFromString(fname); +// if(path.size()>0){ UbSystem::makeDirectory(path); ostr.open(fname.c_str(), std::ios_base::out | +//std::ios_base::app);} if(!ostr) throw UbException(UB_EXARGS,"couldn't open file "+fname); +// } +// ostr << istep << "\t" << resetStep << "\t" << hi+0.5*dx << "\t" << nn1/(nn1+ns1)*100.0 << "%\t"; +// ostr << AvVx1 << "\t" << AvVx2 << "\t" << AvVx3 << "\t"; +// ostr << AvTSx1<< "\t" << AvTSx2<< "\t" << AvTSx3<< "\t" << AvTSx1x3; +// ostr << endl; +// ostr.close(); // -// } -// } -// } +// } +// } +// } // -// } +// } //} diff --git a/src/cpu/core/SimulationObservers/IntegrateValuesHelper.h b/src/cpu/core/SimulationObservers/IntegrateValuesHelper.h index 6404ca7bfab37599c6c833b53798f9048c5e265b..91550bf980f8ce309584ed93ba81187e0b1933db 100644 --- a/src/cpu/core/SimulationObservers/IntegrateValuesHelper.h +++ b/src/cpu/core/SimulationObservers/IntegrateValuesHelper.h @@ -12,8 +12,8 @@ // struct CalcNodes //{ -// SPtr<Block3D> block; -// std::vector<UbTupleInt3> nodes; +// SPtr<Block3D> block; +// std::vector<UbTupleInt3> nodes; //}; // // struct Nodes diff --git a/src/cpu/core/SimulationObservers/MPIIOMigrationBESimulationObserver.cpp b/src/cpu/core/SimulationObservers/MPIIOMigrationBESimulationObserver.cpp index 068390833729d9877220614f2db1e59500519ac8..c1dd846c43fb25037586033930ece502865c93ae 100644 --- a/src/cpu/core/SimulationObservers/MPIIOMigrationBESimulationObserver.cpp +++ b/src/cpu/core/SimulationObservers/MPIIOMigrationBESimulationObserver.cpp @@ -137,7 +137,7 @@ void MPIIOMigrationBESimulationObserver::writeDataSet(int step) for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { D3Q27EsoTwist3DSplittedVectorPtrF = dynamicPointerCast<D3Q27EsoTwist3DSplittedVector>(block->getKernel()->getDataSet()->getFdistributions()); localDistributionsF = D3Q27EsoTwist3DSplittedVectorPtrF->getLocalDistributions(); @@ -438,7 +438,7 @@ void MPIIOMigrationBESimulationObserver::write4DArray(int step, Arrays arrayType for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { switch (arrayType) { @@ -554,7 +554,7 @@ void MPIIOMigrationBESimulationObserver::write3DArray(int step, Arrays arrayType for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { switch (arrayType) { diff --git a/src/cpu/core/SimulationObservers/MPIIOMigrationSimulationObserver.cpp b/src/cpu/core/SimulationObservers/MPIIOMigrationSimulationObserver.cpp index b6ea1bbf6b8bc0135330f70f9847743e16086d42..7552ee428c16c065e7c3e506c0facfeca2476268 100644 --- a/src/cpu/core/SimulationObservers/MPIIOMigrationSimulationObserver.cpp +++ b/src/cpu/core/SimulationObservers/MPIIOMigrationSimulationObserver.cpp @@ -159,7 +159,7 @@ void MPIIOMigrationSimulationObserver::writeDataSet(int step) for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { kernel = dynamicPointerCast<LBMKernel>(block->getKernel()); @@ -487,7 +487,7 @@ void MPIIOMigrationSimulationObserver::write4DArray(int step, Arrays arrayType, for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { dataSetSmallArray[ic].globalID = block->getGlobalID(); // id of the block needed to find it while regenerating the grid @@ -617,7 +617,7 @@ void MPIIOMigrationSimulationObserver::write3DArray(int step, Arrays arrayType, for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { dataSetSmallArray[ic].globalID = block->getGlobalID(); // id of the block needed to find it while regenerating the grid @@ -987,7 +987,7 @@ void MPIIOMigrationSimulationObserver::readDataSet(int step) for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { read_offset = (MPI_Offset)(3 * sizeof(dataSetParam) + block->getGlobalID() * sizeofOneDataSet); MPI_File_read_at(file_handler, read_offset, &dataSetArray[ic], 1, dataSetType, MPI_STATUS_IGNORE); @@ -1016,7 +1016,7 @@ void MPIIOMigrationSimulationObserver::readDataSet(int step) for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { read_offset = (MPI_Offset)(block->getGlobalID() * sizeofOneDataSet); MPI_File_read_at(file_handler, read_offset, &doubleValuesArrayH1[ic * doubleCountInBlock], 1, dataSetDoubleType, MPI_STATUS_IGNORE); @@ -1043,7 +1043,7 @@ void MPIIOMigrationSimulationObserver::readDataSet(int step) for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { read_offset = (MPI_Offset)(block->getGlobalID() * sizeofOneDataSet); MPI_File_read_at(file_handler, read_offset, &doubleValuesArrayH2[ic * doubleCountInBlock], 1, dataSetDoubleType, MPI_STATUS_IGNORE); @@ -1265,7 +1265,7 @@ void MPIIOMigrationSimulationObserver::readArray(int step, Arrays arrType, std:: for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { read_offset = (MPI_Offset)(sizeof(dataSetParam) + block->getGlobalID() * sizeofOneDataSet); MPI_File_read_at(file_handler, read_offset, &dataSetSmallArray[ic], 1, dataSetSmallType, MPI_STATUS_IGNORE); @@ -1425,7 +1425,7 @@ void MPIIOMigrationSimulationObserver::readBoundaryConds(int step) MPI_Offset read_offset1, read_offset2; for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { read_offset1 = (MPI_Offset)(sizeof(boundCondParam) + block->getGlobalID() * sizeof(size_t)); diff --git a/src/cpu/core/SimulationObservers/MPIIORestartSimulationObserver.cpp b/src/cpu/core/SimulationObservers/MPIIORestartSimulationObserver.cpp index 87de527b6e7c0af133f18f861e121c8f806a0a44..71133fc81aa247e87b92898c6bd8a006fa27b62c 100644 --- a/src/cpu/core/SimulationObservers/MPIIORestartSimulationObserver.cpp +++ b/src/cpu/core/SimulationObservers/MPIIORestartSimulationObserver.cpp @@ -164,7 +164,7 @@ void MPIIORestartSimulationObserver::writeDataSet(int step) for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { kernel = dynamicPointerCast<LBMKernel>(block->getKernel()); @@ -508,7 +508,7 @@ void MPIIORestartSimulationObserver::write4DArray(int step, Arrays arrayType, st for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { dataSetSmallArray[ic].x1 = block->getX1(); // coordinates of the block needed to find it while regenerating the grid dataSetSmallArray[ic].x2 = block->getX2(); @@ -665,7 +665,7 @@ void MPIIORestartSimulationObserver::write3DArray(int step, Arrays arrayType, st for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level { dataSetSmallArray[ic].x1 = block->getX1(); // coordinates of the block needed to find it while regenerating the grid dataSetSmallArray[ic].x2 = block->getX2(); diff --git a/src/cpu/core/SimulationObservers/MPIIOSimulationObserver.cpp b/src/cpu/core/SimulationObservers/MPIIOSimulationObserver.cpp index 19ea0482a1528a2c8a0e64d4d9f7c85e1a8ed612..644a420531fed62b9da51effe0293fd4c21ef0f4 100644 --- a/src/cpu/core/SimulationObservers/MPIIOSimulationObserver.cpp +++ b/src/cpu/core/SimulationObservers/MPIIOSimulationObserver.cpp @@ -164,7 +164,7 @@ void MPIIOSimulationObserver::writeBlocks(int step) Block3d *block3dArray = new Block3d[blocksCount]; int ic = 0; for (int level = minInitLevel; level <= maxInitLevel; level++) { - for (SPtr<Block3D> block : blocksVector[level]) // all the blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // all the blocks of the current level { // save data describing the block block3dArray[ic].x1 = block->getX1(); diff --git a/src/cpu/core/SimulationObservers/QCriterionSimulationObserver.cpp b/src/cpu/core/SimulationObservers/QCriterionSimulationObserver.cpp index 397f576f63b99a4107d55bfce4e884dc987830b0..e6689b697cfef95636f882018d5bf9e81a6d9309 100644 --- a/src/cpu/core/SimulationObservers/QCriterionSimulationObserver.cpp +++ b/src/cpu/core/SimulationObservers/QCriterionSimulationObserver.cpp @@ -92,7 +92,7 @@ void QCriterionSimulationObserver::addData(const SPtr<Block3D> block) using namespace vf::basics::constant; UbTupleDouble3 org = grid->getBlockWorldCoordinates(block); - // UbTupleDouble3 blockLengths = grid->getBlockLengths(block); + // UbTupleDouble3 blockLengths = grid->getBlockLengths(block); UbTupleDouble3 nodeOffset = grid->getNodeOffset(block); real dx = grid->getDeltaX(block); @@ -213,9 +213,9 @@ void QCriterionSimulationObserver::getNeighborVelocities(int offx, int offy, int bool compressible = block->getKernel()->getCompressible(); - // int minX1 = 0; - // int minX2 = 0; - // int minX3 = 0; + // int minX1 = 0; + // int minX2 = 0; + // int minX3 = 0; int maxX1 = (int)(distributions->getNX1()); // int maxX2 = (int)(distributions->getNX2()); diff --git a/src/cpu/core/SimulationObservers/QCriterionSimulationObserver.h b/src/cpu/core/SimulationObservers/QCriterionSimulationObserver.h index 45eddf04a2b838cfa52a64b10fd5fb4cfed88c29..806829092ff3b0ff8fb77b5d50264c6a11d527c3 100644 --- a/src/cpu/core/SimulationObservers/QCriterionSimulationObserver.h +++ b/src/cpu/core/SimulationObservers/QCriterionSimulationObserver.h @@ -22,7 +22,7 @@ class Block3D; //! \brief Computes the value Q with which vortices can be visualized as isocontours to Q=0, writes to .vtk, For //! uniform, serial setups only! \details writes at given time intervals specified in scheduler (s) //! Processing: paraview, take isolines of entry for Q-criterion vortex detection -//! Q-Criterion: Visualize Vorteces as regions where Vorticity is larger than strain rate (Hunt, 1988) +//! Q-Criterion: Visualize Vorteces as regions where Vorticity is larger than strain rate (Hunt, 1988) //! \author Sonja Uphoff class QCriterionSimulationObserver : public SimulationObserver diff --git a/src/cpu/core/Utilities/ChangeRandomQs.hpp b/src/cpu/core/Utilities/ChangeRandomQs.hpp index 0c0f84b27f55d194b155688cdcae29c3e8397d83..ff1c30c741e2cf02171b611c6d1eda2d234ab9ac 100644 --- a/src/cpu/core/Utilities/ChangeRandomQs.hpp +++ b/src/cpu/core/Utilities/ChangeRandomQs.hpp @@ -22,8 +22,8 @@ namespace Utilities SPtr<BoundaryConditions> bc = bcArray->getBC(val<1>(node), val<2>(node), val<3>(node)); if (bc) { - for (int fdir=D3Q27System::FSTARTDIR; fdir<=D3Q27System::FENDDIR; fdir++) - { + for (int fdir=D3Q27System::FSTARTDIR; fdir<=D3Q27System::FENDDIR; fdir++) + { if (bc->hasNoSlipBoundaryFlag(fdir)) { const int invDir = D3Q27System::INVDIR[fdir]; @@ -41,7 +41,7 @@ namespace Utilities } bc->setQ(q_temp, fdir); } - } + } } } } diff --git a/src/cpu/core/Utilities/CheckpointConverter.cpp b/src/cpu/core/Utilities/CheckpointConverter.cpp index 0f41364ad614cf8ffb511461d713336e58fd0d1c..f882fd5678eb7b118f4abff78252dc058180e773 100644 --- a/src/cpu/core/Utilities/CheckpointConverter.cpp +++ b/src/cpu/core/Utilities/CheckpointConverter.cpp @@ -177,7 +177,7 @@ void CheckpointConverter::convertBlocks(int step, int procCount) int maxInitLevel = this->grid->getFinestInitializedLevel(); for (int level = minInitLevel; level <= maxInitLevel; level++) { grid->getBlocks(level, blocksVector[level]); - for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level + for (SPtr<Block3D> block : blocksVector[level]) // blocks of the current level grid->deleteBlock(block); } } diff --git a/src/cpu/core/Visitors/InitThixotropyBlockVisitor.cpp b/src/cpu/core/Visitors/InitThixotropyBlockVisitor.cpp index 00d0e9e7f26d6d50caa9ec5f46f7984ab7c3b1c8..29104ed99d6d3057954989a2e091568a13e2111a 100644 --- a/src/cpu/core/Visitors/InitThixotropyBlockVisitor.cpp +++ b/src/cpu/core/Visitors/InitThixotropyBlockVisitor.cpp @@ -58,19 +58,19 @@ InitThixotropyBlockVisitor::InitThixotropyBlockVisitor() } ////////////////////////////////////////////////////////////////////////// //InitThixotropyBlockVisitor::InitThixotropyBlockVisitor(LBMReal lambda /*LBMReal nu, LBMReal D, LBMReal rho, LBMReal vx1, LBMReal vx2, LBMReal vx3, LBMReal c, LBMReal f1, LBMReal f2, LBMReal f3*/) -// : Block3DVisitor(0, D3Q27System::MAXLEVEL) +// : Block3DVisitor(0, D3Q27System::MAXLEVEL) //{ -// //this->setVx1(vx1); -// //this->setVx2(vx2); -// //this->setVx3(vx3); -// //this->setRho(rho); -// //this->setf1(vx1); -// //this->setf2(vx2); -// //this->setf3(vx3); -// //this->setConcentration(rho); -// //this->setNu(nu); -// //this->setD(D); -// this->setLambda(lambda); +// //this->setVx1(vx1); +// //this->setVx2(vx2); +// //this->setVx3(vx3); +// //this->setRho(rho); +// //this->setf1(vx1); +// //this->setf2(vx2); +// //this->setf3(vx3); +// //this->setConcentration(rho); +// //this->setNu(nu); +// //this->setD(D); +// this->setLambda(lambda); //} ////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setVx1(const mu::Parser& parser) @@ -93,26 +93,26 @@ InitThixotropyBlockVisitor::InitThixotropyBlockVisitor() //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setRho(const mu::Parser& parser) //{ -// this->checkFunction(parser); -// this->muRho = parser; +// this->checkFunction(parser); +// this->muRho = parser; //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setf1(const mu::Parser& parser) //{ -// this->checkFunction(parser); -// this->muf1 = parser; +// this->checkFunction(parser); +// this->muf1 = parser; //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setf2(const mu::Parser& parser) //{ -// this->checkFunction(parser); -// this->muf2 = parser; +// this->checkFunction(parser); +// this->muf2 = parser; //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setf3(const mu::Parser& parser) //{ -// this->checkFunction(parser); -// this->muf3 = parser; +// this->checkFunction(parser); +// this->muf3 = parser; //} //////////////////////////////////////////////////////////////////////////// void InitThixotropyBlockVisitor::setLambda(const mu::Parser& parser) @@ -123,44 +123,44 @@ void InitThixotropyBlockVisitor::setLambda(const mu::Parser& parser) //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setVx1(const std::string& muParserString) //{ -// this->muVx1.SetExpr(muParserString); -// this->checkFunction(muVx1); +// this->muVx1.SetExpr(muParserString); +// this->checkFunction(muVx1); //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setVx2(const std::string& muParserString) //{ -// this->muVx2.SetExpr(muParserString); -// this->checkFunction(muVx2); +// this->muVx2.SetExpr(muParserString); +// this->checkFunction(muVx2); //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setVx3(const std::string& muParserString) //{ -// this->muVx3.SetExpr(muParserString); -// this->checkFunction(muVx3); +// this->muVx3.SetExpr(muParserString); +// this->checkFunction(muVx3); //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setRho(const std::string& muParserString) //{ -// this->muRho.SetExpr(muParserString); -// this->checkFunction(muRho); +// this->muRho.SetExpr(muParserString); +// this->checkFunction(muRho); //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setf1(const std::string& muParserString) //{ -// this->muf1.SetExpr(muParserString); -// this->checkFunction(muf1); +// this->muf1.SetExpr(muParserString); +// this->checkFunction(muf1); //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setf2(const std::string& muParserString) //{ -// this->muf2.SetExpr(muParserString); -// this->checkFunction(muf2); +// this->muf2.SetExpr(muParserString); +// this->checkFunction(muf2); //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setf3(const std::string& muParserString) //{ -// this->muf3.SetExpr(muParserString); -// this->checkFunction(muf3); +// this->muf3.SetExpr(muParserString); +// this->checkFunction(muf3); //} //////////////////////////////////////////////////////////////////////////// void InitThixotropyBlockVisitor::setLambda(const std::string& muParserString) @@ -171,44 +171,44 @@ void InitThixotropyBlockVisitor::setLambda(const std::string& muParserString) //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setVx1(LBMReal vx1) //{ -// this->muVx1.SetExpr(UbSystem::toString(vx1, D3Q27RealLim::digits10)); -// this->checkFunction(muVx1); +// this->muVx1.SetExpr(UbSystem::toString(vx1, D3Q27RealLim::digits10)); +// this->checkFunction(muVx1); //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setVx2(LBMReal vx2) //{ -// this->muVx2.SetExpr(UbSystem::toString(vx2, D3Q27RealLim::digits10)); -// this->checkFunction(muVx2); +// this->muVx2.SetExpr(UbSystem::toString(vx2, D3Q27RealLim::digits10)); +// this->checkFunction(muVx2); //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setVx3(LBMReal vx3) //{ -// this->muVx3.SetExpr(UbSystem::toString(vx3, D3Q27RealLim::digits10)); -// this->checkFunction(muVx3); +// this->muVx3.SetExpr(UbSystem::toString(vx3, D3Q27RealLim::digits10)); +// this->checkFunction(muVx3); //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setRho(LBMReal rho) //{ -// this->muRho.SetExpr(UbSystem::toString(rho, D3Q27RealLim::digits10)); -// this->checkFunction(muRho); +// this->muRho.SetExpr(UbSystem::toString(rho, D3Q27RealLim::digits10)); +// this->checkFunction(muRho); //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setf1(LBMReal f1) //{ -// this->muf1.SetExpr(UbSystem::toString(f1, D3Q27RealLim::digits10)); -// this->checkFunction(muf1); +// this->muf1.SetExpr(UbSystem::toString(f1, D3Q27RealLim::digits10)); +// this->checkFunction(muf1); //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setf2(LBMReal f2) //{ -// this->muf2.SetExpr(UbSystem::toString(f2, D3Q27RealLim::digits10)); -// this->checkFunction(muf2); +// this->muf2.SetExpr(UbSystem::toString(f2, D3Q27RealLim::digits10)); +// this->checkFunction(muf2); //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setf3(LBMReal f3) //{ -// this->muf3.SetExpr(UbSystem::toString(f3, D3Q27RealLim::digits10)); -// this->checkFunction(muf3); +// this->muf3.SetExpr(UbSystem::toString(f3, D3Q27RealLim::digits10)); +// this->checkFunction(muf3); //} ////////////////////////////////////////////////////////////////////////// void InitThixotropyBlockVisitor::setLambda(real lambda) @@ -325,12 +325,12 @@ void InitThixotropyBlockVisitor::checkFunction(mu::Parser fct) ////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setNu(LBMReal nu) //{ -// this->nu = nu; +// this->nu = nu; //} //////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::setD(LBMReal D) //{ -// this->D = D; +// this->D = D; //} ////////////////////////////////////////////////////////////////////////// //void InitThixotropyBlockVisitor::initialize(double* f, double x1, double x2, double x3, double vx1, double vx2, double vx3, double rho, UbTupleDouble3 coords, double dx, double o, bool NSE) @@ -343,7 +343,7 @@ void InitThixotropyBlockVisitor::checkFunction(mu::Parser fct) // // //if (NSE) // //{ -// // calcFeqsFct = &D3Q27System::calcIncompFeq; +// // calcFeqsFct = &D3Q27System::calcIncompFeq; // // //} // //else diff --git a/src/cpu/core/Visitors/InitThixotropyBlockVisitor.h b/src/cpu/core/Visitors/InitThixotropyBlockVisitor.h index eb35a9ad7d7718bb0f22ec16c71ebbd7cb646eb0..3822ffceddde2116d5b34154a18a55ca4e1b4f35 100644 --- a/src/cpu/core/Visitors/InitThixotropyBlockVisitor.h +++ b/src/cpu/core/Visitors/InitThixotropyBlockVisitor.h @@ -51,76 +51,76 @@ class InitThixotropyBlockVisitor : public Block3DVisitor { public: - typedef std::numeric_limits<real> D3Q27RealLim; + typedef std::numeric_limits<real> D3Q27RealLim; public: - InitThixotropyBlockVisitor(); - //D3Q27ETInitThixotropyBlockVisitor(LBMReal rho, LBMReal vx1=0.0, LBMReal vx2=0.0, LBMReal vx3=0.0); - //! Constructor - //! \param nu - viscosity - //! \param rho - density - //! \param vx1 - velocity in x - //! \param vx2 - velocity in y - //! \param vx3 - velocity in z - //InitThixotropyBlockVisitor(LBMReal lambda /*LBMReal nu, LBMReal D, LBMReal rho, LBMReal vx1 = 0.0, LBMReal vx2 = 0.0, LBMReal vx3 = 0.0, LBMReal c=0.0, LBMReal f1 = 0.0, LBMReal f2 = 0.0, LBMReal f3 = 0.0*/); - ////////////////////////////////////////////////////////////////////////// - //automatic vars are: x1,x2, x3 - //ussage example: setVx1("x1*0.01+x2*0.003") - ////////////////////////////////////////////////////////////////////////// - //void setVx1(const mu::Parser& parser); - //void setVx2(const mu::Parser& parser); - //void setVx3(const mu::Parser& parser); - //void setRho(const mu::Parser& parser); - - //void setVx1(const std::string& muParserString); - //void setVx2(const std::string& muParserString); - //void setVx3(const std::string& muParserString); - //void setRho(const std::string& muParserString); - //////////////////////////////////////////////////////////////////////////// - //void setVx1(LBMReal vx1); - //void setVx2(LBMReal vx2); - //void setVx3(LBMReal vx3); - //void setRho(LBMReal rho); - //void setNu(LBMReal nu); - - ////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////////// - //void setf1(const mu::Parser& parser); - //void setf2(const mu::Parser& parser); - //void setf3(const mu::Parser& parser); - void setLambda(const mu::Parser& parser); - - //void setf1(const std::string& muParserString); - //void setf2(const std::string& muParserString); - //void setf3(const std::string& muParserString); - void setLambda(const std::string& muParserString); - ////////////////////////////////////////////////////////////////////////// - //void setf1(LBMReal f1); - //void setf2(LBMReal f2); - //void setf3(LBMReal f3); - void setLambda(real lambda); - //void setD(LBMReal D); - - //void initialize(double* f, double x1, double x2, double x3, double vx1, double vx2, double vx3, double rho, UbTupleDouble3 coords, double dx, double o, bool NSE); - - void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override; + InitThixotropyBlockVisitor(); + //D3Q27ETInitThixotropyBlockVisitor(LBMReal rho, LBMReal vx1=0.0, LBMReal vx2=0.0, LBMReal vx3=0.0); + //! Constructor + //! \param nu - viscosity + //! \param rho - density + //! \param vx1 - velocity in x + //! \param vx2 - velocity in y + //! \param vx3 - velocity in z + //InitThixotropyBlockVisitor(LBMReal lambda /*LBMReal nu, LBMReal D, LBMReal rho, LBMReal vx1 = 0.0, LBMReal vx2 = 0.0, LBMReal vx3 = 0.0, LBMReal c=0.0, LBMReal f1 = 0.0, LBMReal f2 = 0.0, LBMReal f3 = 0.0*/); + ////////////////////////////////////////////////////////////////////////// + //automatic vars are: x1,x2, x3 + //ussage example: setVx1("x1*0.01+x2*0.003") + ////////////////////////////////////////////////////////////////////////// + //void setVx1(const mu::Parser& parser); + //void setVx2(const mu::Parser& parser); + //void setVx3(const mu::Parser& parser); + //void setRho(const mu::Parser& parser); + + //void setVx1(const std::string& muParserString); + //void setVx2(const std::string& muParserString); + //void setVx3(const std::string& muParserString); + //void setRho(const std::string& muParserString); + //////////////////////////////////////////////////////////////////////////// + //void setVx1(LBMReal vx1); + //void setVx2(LBMReal vx2); + //void setVx3(LBMReal vx3); + //void setRho(LBMReal rho); + //void setNu(LBMReal nu); + + ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //void setf1(const mu::Parser& parser); + //void setf2(const mu::Parser& parser); + //void setf3(const mu::Parser& parser); + void setLambda(const mu::Parser& parser); + + //void setf1(const std::string& muParserString); + //void setf2(const std::string& muParserString); + //void setf3(const std::string& muParserString); + void setLambda(const std::string& muParserString); + ////////////////////////////////////////////////////////////////////////// + //void setf1(LBMReal f1); + //void setf2(LBMReal f2); + //void setf3(LBMReal f3); + void setLambda(real lambda); + //void setD(LBMReal D); + + //void initialize(double* f, double x1, double x2, double x3, double vx1, double vx2, double vx3, double rho, UbTupleDouble3 coords, double dx, double o, bool NSE); + + void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override; protected: - void checkFunction(mu::Parser fct); - typedef void(*CalcFeqsFct)(real* const& /*feq[27]*/, const real& /*(d)rho*/, const real& /*vx1*/, const real& /*vx2*/, const real& /*vx3*/); + void checkFunction(mu::Parser fct); + typedef void(*CalcFeqsFct)(real* const& /*feq[27]*/, const real& /*(d)rho*/, const real& /*vx1*/, const real& /*vx2*/, const real& /*vx3*/); private: - mu::Parser muVx1; - mu::Parser muVx2; - mu::Parser muVx3; - //mu::Parser muRho; - //LBMReal nu; - - //mu::Parser muf1; - //mu::Parser muf2; - //mu::Parser muf3; - mu::Parser muLambda; - //LBMReal D; + mu::Parser muVx1; + mu::Parser muVx2; + mu::Parser muVx3; + //mu::Parser muRho; + //LBMReal nu; + + //mu::Parser muf1; + //mu::Parser muf2; + //mu::Parser muf3; + mu::Parser muLambda; + //LBMReal D; }; #endif //D3Q27INITDISTRIBUTIONSPATCHVISITOR_H diff --git a/src/cpu/core/Visitors/SetInterpolationConnectorsBlockVisitor.cpp b/src/cpu/core/Visitors/SetInterpolationConnectorsBlockVisitor.cpp index c8d9fa7cb803ea922cd37914d2e51beeab685240..2be052f4bccba1e804551d60d58408ca6b486297 100644 --- a/src/cpu/core/Visitors/SetInterpolationConnectorsBlockVisitor.cpp +++ b/src/cpu/core/Visitors/SetInterpolationConnectorsBlockVisitor.cpp @@ -44,9 +44,9 @@ SetInterpolationConnectorsBlockVisitor::SetInterpolationConnectorsBlockVisitor(std::shared_ptr<vf::parallel::Communicator> comm, real nue, SPtr<Interpolator> iProcessor) : Block3DVisitor(0, D3Q27System::MAXLEVEL), - comm(comm), - nue(nue), - iProcessor(iProcessor) + comm(comm), + nue(nue), + iProcessor(iProcessor) { } ////////////////////////////////////////////////////////////////////////// @@ -56,203 +56,203 @@ SetInterpolationConnectorsBlockVisitor::~SetInterpolationConnectorsBlockVisitor( ////////////////////////////////////////////////////////////////////////// void SetInterpolationConnectorsBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block) { - if(!block) return; + if(!block) return; - UBLOG(logDEBUG5, "SetInterpolationConnectorsBlockVisitor::visit() - start"); + UBLOG(logDEBUG5, "SetInterpolationConnectorsBlockVisitor::visit() - start"); UBLOG(logDEBUG5, block->toString()); - gridRank = comm->getProcessID(); - grid->setRank(gridRank); + gridRank = comm->getProcessID(); + grid->setRank(gridRank); - if(grid->getFinestInitializedLevel() > grid->getCoarsestInitializedLevel()) - setInterpolationConnectors(grid, block); + if(grid->getFinestInitializedLevel() > grid->getCoarsestInitializedLevel()) + setInterpolationConnectors(grid, block); - UBLOG(logDEBUG5, "SetInterpolationConnectorsBlockVisitor::visit() - end"); + UBLOG(logDEBUG5, "SetInterpolationConnectorsBlockVisitor::visit() - end"); } ////////////////////////////////////////////////////////////////////////// void SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors(SPtr<Grid3D> grid, SPtr<Block3D> block) { - using namespace vf::lbm::dir; + using namespace vf::lbm::dir; UBLOG(logDEBUG5, "SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors() - start"); - //search for all blocks with different ranks - if (block->hasInterpolationFlagCF() && block->isActive()) - { - int fbx1 = block->getX1() << 1; - int fbx2 = block->getX2() << 1; - int fbx3 = block->getX3() << 1; - int level = block->getLevel() + 1; - - if( block->hasInterpolationFlagCF(dP00)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2,fbx3,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); - SPtr<Block3D> fblockNW = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); - SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dP00); - } - if( block->hasInterpolationFlagCF(dM00)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2+1,fbx3,level); - SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2,fbx3+1,level); - SPtr<Block3D> fblockNE = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dM00); - } - if( block->hasInterpolationFlagCF(d0P0)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2+1,fbx3,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); - SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); - SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d0P0); - } - if( block->hasInterpolationFlagCF(d0M0)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3,level); - SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2,fbx3+1,level); - SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d0M0); - } - if( block->hasInterpolationFlagCF(d00P)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3+1,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); - SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); - SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d00P); - } - if( block->hasInterpolationFlagCF(d00M)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3,level); - SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2+1,fbx3,level); - SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d00M); - } - - //////NE-NW-SE-SW - if( block->hasInterpolationFlagCF(dPP0)&&!block->hasInterpolationFlagCF(d0P0) && !block->hasInterpolationFlagCF(dP00)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2+1,fbx3+0,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); - SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); - SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dPP0); - } - if( block->hasInterpolationFlagCF(dMM0)&& !block->hasInterpolationFlagCF(dM00) && !block->hasInterpolationFlagCF(d0M0)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2,fbx3+1,level); - SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2, fbx3+1, level); - SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2, fbx3+1, level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dMM0); - } - if( block->hasInterpolationFlagCF(dPM0)&& !block->hasInterpolationFlagCF(dP00) && !block->hasInterpolationFlagCF(d0M0)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2,fbx3+0,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); - SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); - SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dPM0); - } - if( block->hasInterpolationFlagCF(dMP0)&& !block->hasInterpolationFlagCF(d0P0) && !block->hasInterpolationFlagCF(dM00)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2+1,fbx3,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); - SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); - SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dMP0); - } - - /////////TE-BW-BE-TW 1-0 - if( block->hasInterpolationFlagCF(dP0P)&& !block->hasInterpolationFlagCF(dP00) && !block->hasInterpolationFlagCF(d00P)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2+0,fbx3+1,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); - SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2+0, fbx3+1, level); - SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dP0P); - } - if( block->hasInterpolationFlagCF(dM0M)&& !block->hasInterpolationFlagCF(dM00) && !block->hasInterpolationFlagCF(d00M)) - { - - SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2+0,fbx3,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2+1,fbx3,level); - SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2+0, fbx3, level); - SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2+1, fbx3, level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dM0M); - } - if( block->hasInterpolationFlagCF(dP0M)&& !block->hasInterpolationFlagCF(dP00) && !block->hasInterpolationFlagCF(d00M)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2+0,fbx3,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); - SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2+0, fbx3, level); - SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3, level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dP0M); - } - if( block->hasInterpolationFlagCF(dM0P)&& !block->hasInterpolationFlagCF(dM00) && !block->hasInterpolationFlagCF(d00P)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2+0,fbx3+1,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); - SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2+0, fbx3+1, level); - SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dM0P); - } - - //////TN-BS-BN-TS - if( block->hasInterpolationFlagCF(d0PP)&& !block->hasInterpolationFlagCF(d0P0) && !block->hasInterpolationFlagCF(d00P)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1+0,fbx2+1,fbx3+1,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); - SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+0, fbx2+1, fbx3+1, level); - SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d0PP); - } - if( block->hasInterpolationFlagCF(d0MM)&& !block->hasInterpolationFlagCF(d0M0) && !block->hasInterpolationFlagCF(d00M)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1+0,fbx2,fbx3,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3,level); - SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+0, fbx2, fbx3, level); - SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2, fbx3, level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d0MM); - } - if( block->hasInterpolationFlagCF(d0PM)&& !block->hasInterpolationFlagCF(d0P0) && !block->hasInterpolationFlagCF(d00M)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1+0,fbx2+1,fbx3,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); - SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+0, fbx2+1, fbx3, level); - SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3, level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d0PM); - } - if( block->hasInterpolationFlagCF(d0MP)&& !block->hasInterpolationFlagCF(d0M0) && !block->hasInterpolationFlagCF(d00P)) - { - SPtr<Block3D> fblockSW = grid->getBlock(fbx1+0,fbx2,fbx3+1,level); - SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); - SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+0, fbx2, fbx3+1, level); - SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); - - setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d0MP); - } + //search for all blocks with different ranks + if (block->hasInterpolationFlagCF() && block->isActive()) + { + int fbx1 = block->getX1() << 1; + int fbx2 = block->getX2() << 1; + int fbx3 = block->getX3() << 1; + int level = block->getLevel() + 1; + + if( block->hasInterpolationFlagCF(dP00)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2,fbx3,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); + SPtr<Block3D> fblockNW = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); + SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dP00); + } + if( block->hasInterpolationFlagCF(dM00)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2+1,fbx3,level); + SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2,fbx3+1,level); + SPtr<Block3D> fblockNE = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dM00); + } + if( block->hasInterpolationFlagCF(d0P0)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2+1,fbx3,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); + SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); + SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d0P0); + } + if( block->hasInterpolationFlagCF(d0M0)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3,level); + SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2,fbx3+1,level); + SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d0M0); + } + if( block->hasInterpolationFlagCF(d00P)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3+1,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); + SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); + SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d00P); + } + if( block->hasInterpolationFlagCF(d00M)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3,level); + SPtr<Block3D> fblockNW = grid->getBlock(fbx1,fbx2+1,fbx3,level); + SPtr<Block3D> fblockNE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d00M); + } + + //////NE-NW-SE-SW + if( block->hasInterpolationFlagCF(dPP0)&&!block->hasInterpolationFlagCF(d0P0) && !block->hasInterpolationFlagCF(dP00)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2+1,fbx3+0,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); + SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); + SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dPP0); + } + if( block->hasInterpolationFlagCF(dMM0)&& !block->hasInterpolationFlagCF(dM00) && !block->hasInterpolationFlagCF(d0M0)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2,fbx3,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2,fbx3+1,level); + SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2, fbx3+1, level); + SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2, fbx3+1, level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dMM0); + } + if( block->hasInterpolationFlagCF(dPM0)&& !block->hasInterpolationFlagCF(dP00) && !block->hasInterpolationFlagCF(d0M0)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2,fbx3+0,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); + SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); + SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dPM0); + } + if( block->hasInterpolationFlagCF(dMP0)&& !block->hasInterpolationFlagCF(d0P0) && !block->hasInterpolationFlagCF(dM00)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2+1,fbx3,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); + SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); + SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dMP0); + } + + /////////TE-BW-BE-TW 1-0 + if( block->hasInterpolationFlagCF(dP0P)&& !block->hasInterpolationFlagCF(dP00) && !block->hasInterpolationFlagCF(d00P)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2+0,fbx3+1,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); + SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2+0, fbx3+1, level); + SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dP0P); + } + if( block->hasInterpolationFlagCF(dM0M)&& !block->hasInterpolationFlagCF(dM00) && !block->hasInterpolationFlagCF(d00M)) + { + + SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2+0,fbx3,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2+1,fbx3,level); + SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2+0, fbx3, level); + SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2+1, fbx3, level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dM0M); + } + if( block->hasInterpolationFlagCF(dP0M)&& !block->hasInterpolationFlagCF(dP00) && !block->hasInterpolationFlagCF(d00M)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1+1,fbx2+0,fbx3,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); + SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+1, fbx2+0, fbx3, level); + SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3, level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dP0M); + } + if( block->hasInterpolationFlagCF(dM0P)&& !block->hasInterpolationFlagCF(dM00) && !block->hasInterpolationFlagCF(d00P)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1,fbx2+0,fbx3+1,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1,fbx2+1,fbx3+1,level); + SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1, fbx2+0, fbx3+1, level); + SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1, fbx2+1, fbx3+1, level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dM0P); + } + + //////TN-BS-BN-TS + if( block->hasInterpolationFlagCF(d0PP)&& !block->hasInterpolationFlagCF(d0P0) && !block->hasInterpolationFlagCF(d00P)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1+0,fbx2+1,fbx3+1,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3+1,level); + SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+0, fbx2+1, fbx3+1, level); + SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3+1, level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d0PP); + } + if( block->hasInterpolationFlagCF(d0MM)&& !block->hasInterpolationFlagCF(d0M0) && !block->hasInterpolationFlagCF(d00M)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1+0,fbx2,fbx3,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3,level); + SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+0, fbx2, fbx3, level); + SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2, fbx3, level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d0MM); + } + if( block->hasInterpolationFlagCF(d0PM)&& !block->hasInterpolationFlagCF(d0P0) && !block->hasInterpolationFlagCF(d00M)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1+0,fbx2+1,fbx3,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2+1,fbx3,level); + SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+0, fbx2+1, fbx3, level); + SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2+1, fbx3, level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d0PM); + } + if( block->hasInterpolationFlagCF(d0MP)&& !block->hasInterpolationFlagCF(d0M0) && !block->hasInterpolationFlagCF(d00P)) + { + SPtr<Block3D> fblockSW = grid->getBlock(fbx1+0,fbx2,fbx3+1,level); + SPtr<Block3D> fblockSE = grid->getBlock(fbx1+1,fbx2,fbx3+1,level); + SPtr<Block3D> fblockNW;// = grid->getBlock(fbx1+0, fbx2, fbx3+1, level); + SPtr<Block3D> fblockNE;// = grid->getBlock(fbx1+1, fbx2, fbx3+1, level); + + setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, d0MP); + } @@ -331,107 +331,107 @@ void SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors(SPtr<Gri setInterpolationConnectors(fblockSW, fblockSE, fblockNW, fblockNE, block, dMPM); } - } + } UBLOG(logDEBUG5, "SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors() - end"); } ////////////////////////////////////////////////////////////////////////// void SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors(SPtr<Block3D> fBlockSW, SPtr<Block3D> fBlockSE, SPtr<Block3D> fBlockNW, SPtr<Block3D> fBlockNE, SPtr<Block3D> cBlock, int dir) { UBLOG(logDEBUG5, "SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors(...) - start"); - int fBlockSWRank = -999, fBlockSERank = -999, fBlockNWRank = -999, fBlockNERank = -999; - if(fBlockSW) fBlockSWRank = fBlockSW->getRank(); - if(fBlockNW) fBlockNWRank = fBlockNW->getRank(); - if(fBlockSE) fBlockSERank = fBlockSE->getRank(); - if(fBlockNE) fBlockNERank = fBlockNE->getRank(); - int cBlockRank = cBlock->getRank(); - - real omegaF {0.0}; - if(fBlockSW) omegaF =LBMSystem::calcCollisionFactor(nue, fBlockSW->getLevel()); - if(fBlockNW) omegaF =LBMSystem::calcCollisionFactor(nue, fBlockNW->getLevel()); - if(fBlockSE) omegaF =LBMSystem::calcCollisionFactor(nue, fBlockSE->getLevel()); - if(fBlockNE) omegaF =LBMSystem::calcCollisionFactor(nue, fBlockNE->getLevel()); - real omegaC = LBMSystem::calcCollisionFactor(nue, cBlock->getLevel()); - iProcessor->setOmegas(omegaC, omegaF); - - InterpolationProcessorPtr cIProcessor(iProcessor->clone()); - InterpolationProcessorPtr fIProcessorSW(iProcessor->clone()); - InterpolationProcessorPtr fIProcessorSE(iProcessor->clone()); - InterpolationProcessorPtr fIProcessorNW(iProcessor->clone()); - InterpolationProcessorPtr fIProcessorNE(iProcessor->clone()); - - CreateTransmittersHelper::TransmitterPtr senderCFevenEvenSW, receiverCFevenEvenSW, - senderCFevenOddNW, receiverCFevenOddNW, - senderCFoddEvenSE, receiverCFoddEvenSE, - senderCFoddOddNE, receiverCFoddOddNE, - senderFCevenEvenSW, receiverFCevenEvenSW, - senderFCevenOddNW, receiverFCevenOddNW, - senderFCoddEvenSE, receiverFCoddEvenSE, - senderFCoddOddNE, receiverFCoddOddNE; - - if(fBlockSW) createTransmitters(cBlock, fBlockSW, dir, CreateTransmittersHelper::SW, senderCFevenEvenSW, receiverCFevenEvenSW, senderFCevenEvenSW, receiverFCevenEvenSW); - if(fBlockNW) createTransmitters(cBlock, fBlockNW, dir, CreateTransmittersHelper::NW, senderCFevenOddNW, receiverCFevenOddNW, senderFCevenOddNW, receiverFCevenOddNW); - if(fBlockSE) createTransmitters(cBlock, fBlockSE, dir, CreateTransmittersHelper::SE, senderCFoddEvenSE, receiverCFoddEvenSE, senderFCoddEvenSE, receiverFCoddEvenSE); - if(fBlockNE) createTransmitters(cBlock, fBlockNE, dir, CreateTransmittersHelper::NE, senderCFoddOddNE, receiverCFoddOddNE, senderFCoddOddNE, receiverFCoddOddNE); - - if(cBlockRank == gridRank) - { + int fBlockSWRank = -999, fBlockSERank = -999, fBlockNWRank = -999, fBlockNERank = -999; + if(fBlockSW) fBlockSWRank = fBlockSW->getRank(); + if(fBlockNW) fBlockNWRank = fBlockNW->getRank(); + if(fBlockSE) fBlockSERank = fBlockSE->getRank(); + if(fBlockNE) fBlockNERank = fBlockNE->getRank(); + int cBlockRank = cBlock->getRank(); + + real omegaF {0.0}; + if(fBlockSW) omegaF =LBMSystem::calcCollisionFactor(nue, fBlockSW->getLevel()); + if(fBlockNW) omegaF =LBMSystem::calcCollisionFactor(nue, fBlockNW->getLevel()); + if(fBlockSE) omegaF =LBMSystem::calcCollisionFactor(nue, fBlockSE->getLevel()); + if(fBlockNE) omegaF =LBMSystem::calcCollisionFactor(nue, fBlockNE->getLevel()); + real omegaC = LBMSystem::calcCollisionFactor(nue, cBlock->getLevel()); + iProcessor->setOmegas(omegaC, omegaF); + + InterpolationProcessorPtr cIProcessor(iProcessor->clone()); + InterpolationProcessorPtr fIProcessorSW(iProcessor->clone()); + InterpolationProcessorPtr fIProcessorSE(iProcessor->clone()); + InterpolationProcessorPtr fIProcessorNW(iProcessor->clone()); + InterpolationProcessorPtr fIProcessorNE(iProcessor->clone()); + + CreateTransmittersHelper::TransmitterPtr senderCFevenEvenSW, receiverCFevenEvenSW, + senderCFevenOddNW, receiverCFevenOddNW, + senderCFoddEvenSE, receiverCFoddEvenSE, + senderCFoddOddNE, receiverCFoddOddNE, + senderFCevenEvenSW, receiverFCevenEvenSW, + senderFCevenOddNW, receiverFCevenOddNW, + senderFCoddEvenSE, receiverFCoddEvenSE, + senderFCoddOddNE, receiverFCoddOddNE; + + if(fBlockSW) createTransmitters(cBlock, fBlockSW, dir, CreateTransmittersHelper::SW, senderCFevenEvenSW, receiverCFevenEvenSW, senderFCevenEvenSW, receiverFCevenEvenSW); + if(fBlockNW) createTransmitters(cBlock, fBlockNW, dir, CreateTransmittersHelper::NW, senderCFevenOddNW, receiverCFevenOddNW, senderFCevenOddNW, receiverFCevenOddNW); + if(fBlockSE) createTransmitters(cBlock, fBlockSE, dir, CreateTransmittersHelper::SE, senderCFoddEvenSE, receiverCFoddEvenSE, senderFCoddEvenSE, receiverFCoddEvenSE); + if(fBlockNE) createTransmitters(cBlock, fBlockNE, dir, CreateTransmittersHelper::NE, senderCFoddOddNE, receiverCFoddOddNE, senderFCoddOddNE, receiverFCoddOddNE); + + if(cBlockRank == gridRank) + { SPtr<Block3DConnector> connector(new CoarseToFineVectorConnector< TbTransmitter< CbVector< real > > >(cBlock, - senderCFevenEvenSW, receiverCFevenEvenSW, senderCFevenOddNW, receiverCFevenOddNW, - senderCFoddEvenSE, receiverCFoddEvenSE, senderCFoddOddNE, receiverCFoddOddNE, - dir, cIProcessor) ); - cBlock->setConnector(connector); - } - if(fBlockSW && fBlockSWRank == gridRank) - { - SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< real > > >(fBlockSW, - senderFCevenEvenSW, receiverFCevenEvenSW, dir, fIProcessorSW, EvenEvenSW) ); - fBlockSW->setConnector(connector); - } - if(fBlockNW && fBlockNWRank == gridRank) - { - SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< real > > >(fBlockNW, - senderFCevenOddNW, receiverFCevenOddNW, dir, fIProcessorNW, EvenOddNW) ); - fBlockNW->setConnector(connector); - } - if(fBlockSE && fBlockSERank == gridRank) - { - SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< real > > >(fBlockSE, - senderFCoddEvenSE, receiverFCoddEvenSE, dir, fIProcessorSE, OddEvenSE) ); - fBlockSE->setConnector(connector); - } - if(fBlockNE && fBlockNERank == gridRank) - { - SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< real > > >(fBlockNE, - senderFCoddOddNE, receiverFCoddOddNE, dir, fIProcessorNE, OddOddNE) ); - fBlockNE->setConnector(connector); - } + senderCFevenEvenSW, receiverCFevenEvenSW, senderCFevenOddNW, receiverCFevenOddNW, + senderCFoddEvenSE, receiverCFoddEvenSE, senderCFoddOddNE, receiverCFoddOddNE, + dir, cIProcessor) ); + cBlock->setConnector(connector); + } + if(fBlockSW && fBlockSWRank == gridRank) + { + SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< real > > >(fBlockSW, + senderFCevenEvenSW, receiverFCevenEvenSW, dir, fIProcessorSW, EvenEvenSW) ); + fBlockSW->setConnector(connector); + } + if(fBlockNW && fBlockNWRank == gridRank) + { + SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< real > > >(fBlockNW, + senderFCevenOddNW, receiverFCevenOddNW, dir, fIProcessorNW, EvenOddNW) ); + fBlockNW->setConnector(connector); + } + if(fBlockSE && fBlockSERank == gridRank) + { + SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< real > > >(fBlockSE, + senderFCoddEvenSE, receiverFCoddEvenSE, dir, fIProcessorSE, OddEvenSE) ); + fBlockSE->setConnector(connector); + } + if(fBlockNE && fBlockNERank == gridRank) + { + SPtr<Block3DConnector> connector( new FineToCoarseVectorConnector< TbTransmitter< CbVector< real > > >(fBlockNE, + senderFCoddOddNE, receiverFCoddOddNE, dir, fIProcessorNE, OddOddNE) ); + fBlockNE->setConnector(connector); + } UBLOG(logDEBUG5, "SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors(...) - end"); } ////////////////////////////////////////////////////////////////////////// void SetInterpolationConnectorsBlockVisitor::createTransmitters(SPtr<Block3D> cBlock, SPtr<Block3D> fBlock, int dir, CreateTransmittersHelper::IBlock ib, - CreateTransmittersHelper::TransmitterPtr& senderCF, - CreateTransmittersHelper::TransmitterPtr& receiverCF, - CreateTransmittersHelper::TransmitterPtr& senderFC, - CreateTransmittersHelper::TransmitterPtr& receiverFC) + CreateTransmittersHelper::TransmitterPtr& senderCF, + CreateTransmittersHelper::TransmitterPtr& receiverCF, + CreateTransmittersHelper::TransmitterPtr& senderFC, + CreateTransmittersHelper::TransmitterPtr& receiverFC) { UBLOG(logDEBUG5, "SetInterpolationConnectorsBlockVisitor::createTransmitters(...) - start"); - CreateTransmittersHelper helper; - int fBlockRank = fBlock->getRank(); - int cBlockRank = cBlock->getRank(); - if(fBlockRank == cBlockRank && fBlockRank == gridRank) - { - senderCF = receiverFC = CreateTransmittersHelper::TransmitterPtr( new TbLocalTransmitter< CbVector< real > >()); - senderFC = receiverCF = CreateTransmittersHelper::TransmitterPtr( new TbLocalTransmitter< CbVector< real > >()); - } - else if(cBlockRank == gridRank) - { - helper.createTransmitters(cBlock, fBlock, dir, ib, senderCF, receiverCF, comm, CreateTransmittersHelper::MPI); - } - else if(fBlockRank == gridRank) - { - helper.createTransmitters(fBlock, cBlock, dir, ib, senderFC, receiverFC, comm, CreateTransmittersHelper::MPI); - } + CreateTransmittersHelper helper; + int fBlockRank = fBlock->getRank(); + int cBlockRank = cBlock->getRank(); + if(fBlockRank == cBlockRank && fBlockRank == gridRank) + { + senderCF = receiverFC = CreateTransmittersHelper::TransmitterPtr( new TbLocalTransmitter< CbVector< real > >()); + senderFC = receiverCF = CreateTransmittersHelper::TransmitterPtr( new TbLocalTransmitter< CbVector< real > >()); + } + else if(cBlockRank == gridRank) + { + helper.createTransmitters(cBlock, fBlock, dir, ib, senderCF, receiverCF, comm, CreateTransmittersHelper::MPI); + } + else if(fBlockRank == gridRank) + { + helper.createTransmitters(fBlock, cBlock, dir, ib, senderFC, receiverFC, comm, CreateTransmittersHelper::MPI); + } UBLOG(logDEBUG5, "SetInterpolationConnectorsBlockVisitor::createTransmitters(...) - end"); } diff --git a/src/lbm/ChimeraTransformation.h b/src/lbm/ChimeraTransformation.h index 8e54d47a42e164a89060f5009c112f5a69afd257..cf59d32a6b599e4a6640b51b4a0f03669fb62bb5 100644 --- a/src/lbm/ChimeraTransformation.h +++ b/src/lbm/ChimeraTransformation.h @@ -98,10 +98,10 @@ inline __host__ __device__ void forwardChimeraWithK(real &mfa, real &mfb, real & mfa = m0; //m0 += K; mfb = (m1 - K*vv) - m0 * vv; - mfc = ((m2 - c2o1* m1 * vv) + v2*K) + v2 * m0; + mfc = ((m2 - c2o1* m1 * vv) + v2*K) + v2 * m0; //m0 += K; //mfb = m1 - m0 * vv; - //mfc = m2 - two* m1 * vv + v2 * m0; + //mfc = m2 - two* m1 * vv + v2 * m0; }