From 58c2d0ffa0da0094c832af836a5682cad0254087 Mon Sep 17 00:00:00 2001 From: Hussein Alihussein <h.alihussein@tu-braunschweig.de> Date: Fri, 31 Mar 2023 12:16:55 +0200 Subject: [PATCH] Change the name of geometry file from GbImplicitSurface to GbGyroidThirdOrder --- apps/cpu/Applications.cmake | 14 +-- apps/cpu/TPMSRow/TPMSRow.cpp | 10 +-- ...icitSurface.cpp => GbGyroidThirdOrder.cpp} | 88 ++++++++++--------- ...ImplicitSurface.h => GbGyroidThirdOrder.h} | 0 src/cpu/VirtualFluids.h | 2 +- 5 files changed, 59 insertions(+), 55 deletions(-) rename src/basics/geometry3d/{GbImplicitSurface.cpp => GbGyroidThirdOrder.cpp} (84%) rename src/basics/geometry3d/{GbImplicitSurface.h => GbGyroidThirdOrder.h} (100%) diff --git a/apps/cpu/Applications.cmake b/apps/cpu/Applications.cmake index 3c71d5134..1638ad560 100644 --- a/apps/cpu/Applications.cmake +++ b/apps/cpu/Applications.cmake @@ -1,14 +1,14 @@ add_subdirectory(${APPS_ROOT_CPU}/PoiseuilleFlow) -add_subdirectory(${APPS_ROOT_CPU}/HerschelBulkleySphere) -add_subdirectory(${APPS_ROOT_CPU}/HerschelBulkleyModel) -add_subdirectory(${APPS_ROOT_CPU}/rheometer) +#add_subdirectory(${APPS_ROOT_CPU}/HerschelBulkleySphere) +#add_subdirectory(${APPS_ROOT_CPU}/HerschelBulkleyModel) +#add_subdirectory(${APPS_ROOT_CPU}/rheometer) add_subdirectory(${APPS_ROOT_CPU}/CouetteFlow) add_subdirectory(${APPS_ROOT_CPU}/Multiphase) add_subdirectory(${APPS_ROOT_CPU}/ViskomatXL) -add_subdirectory(${APPS_ROOT_CPU}/sphere) -add_subdirectory(${APPS_ROOT_CPU}/FlowAroundCylinder) -add_subdirectory(${APPS_ROOT_CPU}/LaminarTubeFlow) -add_subdirectory(${APPS_ROOT_CPU}/MultiphaseDropletTest) +#add_subdirectory(${APPS_ROOT_CPU}/sphere) +#add_subdirectory(${APPS_ROOT_CPU}/FlowAroundCylinder) +#add_subdirectory(${APPS_ROOT_CPU}/LaminarTubeFlow) +#add_subdirectory(${APPS_ROOT_CPU}/MultiphaseDropletTest) add_subdirectory(${APPS_ROOT_CPU}/RisingBubble2D) add_subdirectory(${APPS_ROOT_CPU}/JetBreakup) diff --git a/apps/cpu/TPMSRow/TPMSRow.cpp b/apps/cpu/TPMSRow/TPMSRow.cpp index 636934027..a2943fff6 100644 --- a/apps/cpu/TPMSRow/TPMSRow.cpp +++ b/apps/cpu/TPMSRow/TPMSRow.cpp @@ -177,10 +177,10 @@ void run(string configname) ////////////////////////////////////////////////////////////////////////// if (newStart) { - GbImplicitSurfacePtr tpms; - // tpms = GbImplicitSurfacePtr(new GbImplicitSurface(0, 0, 0, TPMSL[0], TPMSL[1], TPMSL[2], UnitEdgeLength, + GbGyroidThirdOrderPtr tpms; + // tpms = GbGyroidThirdOrderPtr(new GbGyroidThirdOrder(0, 0, 0, TPMSL[0], TPMSL[1], TPMSL[2], UnitEdgeLength, // dx)); - tpms = GbImplicitSurfacePtr(new GbImplicitSurface(TPMSOrigin[0], TPMSOrigin[1], TPMSOrigin[2], + tpms = GbGyroidThirdOrderPtr(new GbGyroidThirdOrder(TPMSOrigin[0], TPMSOrigin[1], TPMSOrigin[2], TPMSOrigin[0] + TPMSL[0], TPMSOrigin[1] + TPMSL[1], TPMSOrigin[2] + TPMSL[2], @@ -345,7 +345,7 @@ void run(string configname) //intHelper.addInteractor(zMaxFunnelInt); //intHelper.addInteractor(funnelInt); - intHelper.addInteractor(tpmsInt); + //intHelper.addInteractor(tpmsInt); intHelper.addInteractor(zMinInt); intHelper.addInteractor(zMaxInt); @@ -473,7 +473,7 @@ void run(string configname) fnu.DefineConst("u", vx); SPtr<CoProcessor> nupr(new DecreaseViscosityCoProcessor(grid, nuSch, &fnu, comm)); - SPtr<UbScheduler> nupsSch(new UbScheduler(100, 100, 100000000)); + SPtr<UbScheduler> nupsSch(new UbScheduler(10, 10, 100000000)); SPtr<CoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); //omp_set_num_threads(numOfThreads); diff --git a/src/basics/geometry3d/GbImplicitSurface.cpp b/src/basics/geometry3d/GbGyroidThirdOrder.cpp similarity index 84% rename from src/basics/geometry3d/GbImplicitSurface.cpp rename to src/basics/geometry3d/GbGyroidThirdOrder.cpp index 6dec57173..c4a95c2e8 100644 --- a/src/basics/geometry3d/GbImplicitSurface.cpp +++ b/src/basics/geometry3d/GbGyroidThirdOrder.cpp @@ -26,12 +26,12 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file GbImplicitSurface.cpp +//! \file GbGyroidThirdOrder.cpp //! \ingroup geometry3d //! \author Hussein Alihussein //======================================================================================= -#include <GbImplicitSurface.h> +#include <GbGyroidThirdOrder.h> #ifdef BUILD_USE_BOOST @@ -47,20 +47,20 @@ using namespace std; using boost::math::tools::bisect; /*=======================================================*/ -// ObObjectCreator* GbImplicitSurface::getCreator() +// ObObjectCreator* GbGyroidThirdOrder::getCreator() // { // GbObject3DCreator instance; // return &instance; // } /*=======================================================*/ // Konstruktor -GbImplicitSurface::GbImplicitSurface() //: GbObject3D() +GbGyroidThirdOrder::GbGyroidThirdOrder() //: 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() +GbGyroidThirdOrder::GbGyroidThirdOrder(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); @@ -78,7 +78,7 @@ GbImplicitSurface::GbImplicitSurface(const double& x1a, const double& x2a, const } /*=======================================================*/ // Konstruktor -//GbImplicitSurface::GbImplicitSurface( +//GbGyroidThirdOrder::GbGyroidThirdOrder( // const double& x1a, const double& x2a, const double& x3a, // const double& x1b, const double& x2b, const double& x3b, // @@ -96,12 +96,12 @@ GbImplicitSurface::GbImplicitSurface(const double& x1a, const double& x2a, const // this->edgeLength = edgeLength; // this->dx = dx; //} -GbImplicitSurface::GbImplicitSurface(GbImplicitSurface * imp) +GbGyroidThirdOrder::GbGyroidThirdOrder(GbGyroidThirdOrder * imp) { } /*=======================================================*/ // Destruktor -GbImplicitSurface::~GbImplicitSurface() +GbGyroidThirdOrder::~GbGyroidThirdOrder() { if (this->p1) this->p1->removeObserver(this); @@ -154,23 +154,27 @@ struct FunctionGyroidThirdOrder { 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.); + double L_cubed = pow(L, 3.); + double PI_cubed = pow(M_PI, 3.); + f300 = (8. * PI_cubed*(-t17 + t3)) / L_cubed; + f210 = (8. * PI_cubed*t2) / L_cubed; + f201 = (-8. * PI_cubed*t18) / L_cubed; + f120 = (-8. * PI_cubed*t17) / L_cubed; + f102 = (8. * PI_cubed*t3) / L_cubed; + f030 = (8. * PI_cubed*(t2 - t20)) / L_cubed; + f021 = (8. * PI_cubed*t8) / L_cubed; + f012 = (-8. * PI_cubed*t20) / L_cubed; + f003 = (8. * PI_cubed*(-t18 + t8)) / L_cubed; - //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 + double L_squared = pow(L, 2.); + double PI_squared = pow(M_PI, 2.); + f200 = (-4. * PI_squared*(t13 + t5)) / L_squared; + f110 = (-4. * PI_squared*t9) / L_squared; + f101 = (-4. * PI_squared*t6) / L_squared; + f020 = (-4. * PI_squared*(t11 + t5)) / L_squared; + f011 = (-4. * PI_squared*t14) / L_squared; + f002 = (-4. * PI_squared*(t11 + t13)) / L_squared; //Gyroid first order derivatives f100 = (2. * M_PI*(t17 - t3)) / L; @@ -217,7 +221,7 @@ struct FunctionGyroidThirdOrder { } }; /*==========================================================*/ -bool GbImplicitSurface::isPointInGbObject3D(const double& x1, const double& x2, const double& x3) +bool GbGyroidThirdOrder::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.) @@ -237,7 +241,7 @@ else } /*==========================================================*/ -double GbImplicitSurface::getIntersectionRaytraceFactor(const double& x1, const double& x2, const double& x3, const double& rx1, const double& rx2, const double& rx3) +double GbGyroidThirdOrder::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); @@ -271,7 +275,7 @@ double GbImplicitSurface::getIntersectionRaytraceFactor(const double& x1, const } /*=======================================================*/ -double GbImplicitSurface::evaluateImplicitFunction(const double& x1, const double& x2, const double& x3, const double& position) +double GbGyroidThirdOrder::evaluateImplicitFunction(const double& x1, const double& x2, const double& x3, const double& position) { double to = 0.; FunctionGyroidThirdOrder f; @@ -286,52 +290,52 @@ double GbImplicitSurface::evaluateImplicitFunction(const double& x1, const doubl return f(to); } /*=======================================================*/ -double GbImplicitSurface::getX1Centroid() +double GbGyroidThirdOrder::getX1Centroid() { return (0.5*(p1->x1 + p2->x1)); } /*=======================================================*/ -double GbImplicitSurface::getX1Minimum() +double GbGyroidThirdOrder::getX1Minimum() { return (this->p1->x1 < this->p2->x1 ? this->p1->x1 : this->p2->x1); } /*=======================================================*/ -double GbImplicitSurface::getX1Maximum() +double GbGyroidThirdOrder::getX1Maximum() { return (this->p1->x1 > this->p2->x1 ? this->p1->x1 : this->p2->x1); } /*=======================================================*/ -double GbImplicitSurface::getX2Centroid() +double GbGyroidThirdOrder::getX2Centroid() { return (0.5*(p1->x2 + p2->x2)); } /*=======================================================*/ -double GbImplicitSurface::getX2Minimum() +double GbGyroidThirdOrder::getX2Minimum() { return (this->p1->x2 < this->p2->x2 ? this->p1->x2 : this->p2->x2); } /*=======================================================*/ -double GbImplicitSurface::getX2Maximum() +double GbGyroidThirdOrder::getX2Maximum() { return (this->p1->x2 > this->p2->x2 ? this->p1->x2 : this->p2->x2); } /*=======================================================*/ -double GbImplicitSurface::getX3Centroid() +double GbGyroidThirdOrder::getX3Centroid() { return (0.5*(p1->x3 + p2->x3)); } /*=======================================================*/ -double GbImplicitSurface::getX3Minimum() +double GbGyroidThirdOrder::getX3Minimum() { return (this->p1->x3 < this->p2->x3 ? this->p1->x3 : this->p2->x3); } /*=======================================================*/ -double GbImplicitSurface::getX3Maximum() +double GbGyroidThirdOrder::getX3Maximum() { 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) +bool GbGyroidThirdOrder::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) @@ -347,7 +351,7 @@ bool GbImplicitSurface::isCellInsideGbObject3D(const double& x1a, const double& return false; } /*=======================================================*/ -bool GbImplicitSurface::isCellInsideOrCuttingGbObject3D(const double& x1a, const double& x2a, const double& x3a, const double& x1b, const double& x2b, const double& x3b) +bool GbGyroidThirdOrder::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) @@ -363,7 +367,7 @@ bool GbImplicitSurface::isCellInsideOrCuttingGbObject3D(const double& x1a, const return true; } /*=======================================================*/ -bool GbImplicitSurface::isCellCuttingGbObject3D(const double& x1a, const double& x2a, const double& x3a, const double& x1b, const double& x2b, const double& x3b) +bool GbGyroidThirdOrder::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)) @@ -373,7 +377,7 @@ bool GbImplicitSurface::isCellCuttingGbObject3D(const double& x1a, const double& return false; } /*=======================================================*/ -void GbImplicitSurface::addSurfaceTriangleSet(vector<UbTupleFloat3>& nodes, vector<UbTupleInt3>& triangles) +void GbGyroidThirdOrder::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())); @@ -405,7 +409,7 @@ void GbImplicitSurface::addSurfaceTriangleSet(vector<UbTupleFloat3>& nodes, vect triangles.push_back(makeUbTuple(0, 5, 4)); } /*==========================================================*/ -void GbImplicitSurface::objectChanged(UbObservable *changedObject) +void GbGyroidThirdOrder::objectChanged(UbObservable *changedObject) { GbPoint3D *point = dynamic_cast<GbPoint3D *>(changedObject); if (!point || (this->p1 != point && this->p2 != point && this->p3 != point && this->p4 != point)) @@ -414,7 +418,7 @@ void GbImplicitSurface::objectChanged(UbObservable *changedObject) this->notifyObserversObjectChanged(); } /*==========================================================*/ -void GbImplicitSurface::objectWillBeDeleted(UbObservable *objectForDeletion) +void GbGyroidThirdOrder::objectWillBeDeleted(UbObservable *objectForDeletion) { if (this->p1) { UbObservable *observedObj = dynamic_cast<UbObservable *>(this->p1); diff --git a/src/basics/geometry3d/GbImplicitSurface.h b/src/basics/geometry3d/GbGyroidThirdOrder.h similarity index 100% rename from src/basics/geometry3d/GbImplicitSurface.h rename to src/basics/geometry3d/GbGyroidThirdOrder.h diff --git a/src/cpu/VirtualFluids.h b/src/cpu/VirtualFluids.h index 1ee4c7e78..a041ad2f3 100644 --- a/src/cpu/VirtualFluids.h +++ b/src/cpu/VirtualFluids.h @@ -269,7 +269,7 @@ #include <geometry3d/GbCylinder3D.h> #include <geometry3d/GbHalfSpace3D.h> #include <geometry3d/GbHalfSpaceKrischan3D.h> -#include <geometry3d/GbImplicitSurface.h> +#include <geometry3d/GbGyroidThirdOrder.h> #include <geometry3d/GbLine3D.h> #include <geometry3d/GbMeshTools3D.h> #include <geometry3d/GbObject3D.h> -- GitLab