From ea301656f4c8dd0be5d321ca6f938de9c10d9a4c Mon Sep 17 00:00:00 2001 From: Konstantin Kutscher <kutscher@irmb.tu-bs.de> Date: Tue, 16 Oct 2018 11:27:58 +0200 Subject: [PATCH] adds spheres intersection toleranz parameter in CreateDemObjectsCoProcessor --- source/Applications/Thermoplast/config.txt | 10 +++++----- source/Applications/Thermoplast/thermoplast.cpp | 2 +- source/DemCoupling/CreateDemObjectsCoProcessor.cpp | 7 ++++--- source/DemCoupling/CreateDemObjectsCoProcessor.h | 3 ++- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/source/Applications/Thermoplast/config.txt b/source/Applications/Thermoplast/config.txt index 47c3af05f..a60b16211 100644 --- a/source/Applications/Thermoplast/config.txt +++ b/source/Applications/Thermoplast/config.txt @@ -9,8 +9,8 @@ boundingBox = 60 1370 130 190 1530 320 #test bb blocknx = 10 10 10 #blocknx = 300 420 320 -endTime = 2000 -outTime = 2000 +endTime = 3000 +outTime = 3000 availMem = 25e9 uLB = 0.1 @@ -36,9 +36,9 @@ pathOut = g:/temp/thermoplast2 logToFile = false #restart -cpStart = 2000 -cpStep = 2000 +cpStart = 3000 +cpStep = 3000 restart = true -restartStep = 1000 +restartStep = 2000 nupsTime = 10 10 1000000 \ No newline at end of file diff --git a/source/Applications/Thermoplast/thermoplast.cpp b/source/Applications/Thermoplast/thermoplast.cpp index 971cc6e96..89158664b 100644 --- a/source/Applications/Thermoplast/thermoplast.cpp +++ b/source/Applications/Thermoplast/thermoplast.cpp @@ -516,7 +516,7 @@ void thermoplast(string configname) ////generating spheres //UBLOG(logINFO, "generating spheres - start, rank="<<myid); SPtr<UbScheduler> sphereScheduler(new UbScheduler(sphereTime/*10,10,10*/)); - SPtr<CreateDemObjectsCoProcessor> createSphereCoProcessor(new CreateDemObjectsCoProcessor(grid, sphereScheduler, comm, demCoProcessor, sphereMaterial)); + SPtr<CreateDemObjectsCoProcessor> createSphereCoProcessor(new CreateDemObjectsCoProcessor(grid, sphereScheduler, comm, demCoProcessor, sphereMaterial, 0.03)); //UBLOG(logINFO, "generating spheres - stop, rank="<<myid); ////restart diff --git a/source/DemCoupling/CreateDemObjectsCoProcessor.cpp b/source/DemCoupling/CreateDemObjectsCoProcessor.cpp index 1aa6f66fa..1d695f605 100644 --- a/source/DemCoupling/CreateDemObjectsCoProcessor.cpp +++ b/source/DemCoupling/CreateDemObjectsCoProcessor.cpp @@ -20,11 +20,12 @@ -CreateDemObjectsCoProcessor::CreateDemObjectsCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, std::shared_ptr<Communicator> comm, SPtr<DemCoProcessor> demCoProcessor, SPtr<PhysicsEngineMaterialAdapter> demObjectMaterial) : +CreateDemObjectsCoProcessor::CreateDemObjectsCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, std::shared_ptr<Communicator> comm, SPtr<DemCoProcessor> demCoProcessor, SPtr<PhysicsEngineMaterialAdapter> demObjectMaterial, double toleranz) : CoProcessor(grid, s), comm(comm), demCoProcessor(demCoProcessor), - demObjectMaterial(demObjectMaterial) + demObjectMaterial(demObjectMaterial), + toleranz(toleranz) { mu::Parser fct; fct.SetExpr("U"); @@ -91,7 +92,7 @@ void CreateDemObjectsCoProcessor::createGeoObjects() for (int i = 0; i < size; i++) { SPtr<GbSphere3D> sphere = std::dynamic_pointer_cast<GbSphere3D>(geoObjectPrototypeVector[i]); - if (demCoProcessor->isSpheresIntersection(sphere->getX1Centroid(), sphere->getX2Centroid(), sphere->getX3Centroid(), sphere->getRadius()*2.0*0.99)) + if (demCoProcessor->isSpheresIntersection(sphere->getX1Centroid(), sphere->getX2Centroid(), sphere->getX3Centroid(), sphere->getRadius()*2.0*(1.0-toleranz))) { continue; } diff --git a/source/DemCoupling/CreateDemObjectsCoProcessor.h b/source/DemCoupling/CreateDemObjectsCoProcessor.h index d8a4d990b..837c032a7 100644 --- a/source/DemCoupling/CreateDemObjectsCoProcessor.h +++ b/source/DemCoupling/CreateDemObjectsCoProcessor.h @@ -27,7 +27,7 @@ class PhysicsEngineMaterialAdapter; class CreateDemObjectsCoProcessor : public CoProcessor { public: - CreateDemObjectsCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, std::shared_ptr<Communicator> comm, SPtr<DemCoProcessor> demCoProcessor, SPtr<PhysicsEngineMaterialAdapter> geoObjectMaterial); + CreateDemObjectsCoProcessor(SPtr<Grid3D> grid, SPtr<UbScheduler> s, std::shared_ptr<Communicator> comm, SPtr<DemCoProcessor> demCoProcessor, SPtr<PhysicsEngineMaterialAdapter> geoObjectMaterial, double toleranz = 0); void process(double step) override; void addGeoObject(SPtr<GbObject3D> geoObjectPrototype, Vector3D initalVelocity); void clearGeoObjects(); @@ -42,6 +42,7 @@ private: SPtr<BCAdapter> velocityBcParticleAdapter; SPtr<Reconstructor> extrapolationReconstructor; int demCounter; + double toleranz; #ifdef TIMING UbTimer timer; #endif -- GitLab