From 5709a6a179ece39ce751570411b828d42acefba1 Mon Sep 17 00:00:00 2001 From: "LEGOLAS\\lenz" <lenz@irmb.tu-bs.de> Date: Tue, 10 Mar 2020 13:32:02 +0100 Subject: [PATCH] new method for setting velocity profiles in Velocity boundary conditions --- .../grid/BoundaryConditions/BoundaryCondition.cpp | 12 ++++++++++++ .../grid/BoundaryConditions/BoundaryCondition.h | 3 +++ 2 files changed, 15 insertions(+) diff --git a/src/GridGenerator/grid/BoundaryConditions/BoundaryCondition.cpp b/src/GridGenerator/grid/BoundaryConditions/BoundaryCondition.cpp index a969246fe..0c0a01476 100644 --- a/src/GridGenerator/grid/BoundaryConditions/BoundaryCondition.cpp +++ b/src/GridGenerator/grid/BoundaryConditions/BoundaryCondition.cpp @@ -10,6 +10,18 @@ bool BoundaryCondition::isSide( SideType side ) const return this->side->whoAmI() == side; } +VF_PUBLIC void VelocityBoundaryCondition::setVelocityProfile(SPtr<Grid> grid, std::function<void(real, real, real, real&, real&, real&)> velocityProfile) +{ + for( uint index = 0; index < this->indices.size(); index++ ){ + + real x, y, z; + + grid->transIndexToCoords( this->indices[index], x, y, z ); + + velocityProfile(x,y,z,this->vxList[index],this->vyList[index],this->vzList[index]); + } +} + void GeometryBoundaryCondition::setTangentialVelocityForPatch(SPtr<Grid> grid, uint patch, real p1x, real p1y, real p1z, real p2x, real p2y, real p2z, diff --git a/src/GridGenerator/grid/BoundaryConditions/BoundaryCondition.h b/src/GridGenerator/grid/BoundaryConditions/BoundaryCondition.h index 9c60ace72..a45ecf2f6 100644 --- a/src/GridGenerator/grid/BoundaryConditions/BoundaryCondition.h +++ b/src/GridGenerator/grid/BoundaryConditions/BoundaryCondition.h @@ -2,6 +2,7 @@ #define BoundaryCondition_H #include <vector> +#include <functional> #include "global.h" @@ -94,6 +95,8 @@ public: real getVx(uint index) { return this->vxList[index]; } real getVy(uint index) { return this->vyList[index]; } real getVz(uint index) { return this->vzList[index]; } + + VF_PUBLIC void setVelocityProfile( SPtr<Grid> grid, std::function<void(real,real,real,real&,real&,real&)> velocityProfile ); }; ////////////////////////////////////////////////////////////////////////// -- GitLab