Skip to content
Snippets Groups Projects
Commit 6d1fdd21 authored by Anna Wellmann's avatar Anna Wellmann
Browse files

OhnePole

parent 958d120c
No related branches found
No related tags found
1 merge request!186Fix boundary condition edge diagonals
...@@ -132,7 +132,7 @@ void multipleLevel(const std::string& configPath) ...@@ -132,7 +132,7 @@ void multipleLevel(const std::string& configPath)
const real viscosity = 1.56e-5; const real viscosity = 1.56e-5;
const real mach = 0.2; const real mach = 0.1;
const float tStartOut = config.getValue<real>("tStartOut"); const float tStartOut = config.getValue<real>("tStartOut");
...@@ -164,10 +164,9 @@ void multipleLevel(const std::string& configPath) ...@@ -164,10 +164,9 @@ void multipleLevel(const std::string& configPath)
para->setMaxLevel(2); para->setMaxLevel(2);
scalingFactory.setScalingFactory(GridScalingFactory::GridScaling::ScaleCompressible); scalingFactory.setScalingFactory(GridScalingFactory::GridScaling::ScaleCompressible);
std::string stlPath = "./VirtualFluids_dev/apps/gpu/LBM/ActuatorLine/Pole.stl"; // std::string stlPath = "./VirtualFluids_dev/apps/gpu/LBM/ActuatorLine/Pole.stl";
// Object *sphere = TriangularMesh::make(stlPath);
Object *sphere = TriangularMesh::make(stlPath); // gridBuilder->addGeometry(sphere);
gridBuilder->addGeometry(sphere);
gridBuilder->setPeriodicBoundaryCondition(false, false, false); gridBuilder->setPeriodicBoundaryCondition(false, false, false);
...@@ -189,6 +188,7 @@ void multipleLevel(const std::string& configPath) ...@@ -189,6 +188,7 @@ void multipleLevel(const std::string& configPath)
VF_LOG_INFO("velocity [m/s] = {}", velocity); VF_LOG_INFO("velocity [m/s] = {}", velocity);
VF_LOG_INFO("velocity [dx/dt] = {}", velocityLB); VF_LOG_INFO("velocity [dx/dt] = {}", velocityLB);
VF_LOG_INFO("viscosity [10^8 dx^2/dt] = {}", viscosityLB*1e8); VF_LOG_INFO("viscosity [10^8 dx^2/dt] = {}", viscosityLB*1e8);
VF_LOG_INFO("Ma = {}", mach);
VF_LOG_INFO("nodes/turbine diameter = {}", reference_diameter/dx); VF_LOG_INFO("nodes/turbine diameter = {}", reference_diameter/dx);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
...@@ -227,15 +227,16 @@ void multipleLevel(const std::string& configPath) ...@@ -227,15 +227,16 @@ void multipleLevel(const std::string& configPath)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
gridBuilder->setVelocityBoundaryCondition(SideType::MX, velocityLB, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::MX, velocityLB, 0.0, 0.0);
gridBuilder->setVelocityBoundaryCondition(SideType::MY, 0.0, 0.0, 0.0); gridBuilder->setSlipBoundaryCondition(SideType::MY,0.0, 0.0, 0.0 );
gridBuilder->setVelocityBoundaryCondition(SideType::PY, velocityLB, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PY, velocityLB, 0.0, 0.0);
gridBuilder->setVelocityBoundaryCondition(SideType::MZ, velocityLB, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::MZ, velocityLB, 0.0, 0.0);
gridBuilder->setVelocityBoundaryCondition(SideType::PZ, velocityLB, 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::PZ, velocityLB, 0.0, 0.0);
gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0);
gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0); // gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0);
bcFactory.setGeometryBoundaryCondition(BoundaryConditionFactory::NoSlipBC::NoSlipCompressible); // bcFactory.setGeometryBoundaryCondition(BoundaryConditionFactory::NoSlipBC::NoSlipCompressible);
bcFactory.setSlipBoundaryCondition(BoundaryConditionFactory::SlipBC::SlipCompressible);
bcFactory.setVelocityBoundaryCondition(BoundaryConditionFactory::VelocityBC::VelocityAndPressureCompressible); bcFactory.setVelocityBoundaryCondition(BoundaryConditionFactory::VelocityBC::VelocityAndPressureCompressible);
bcFactory.setPressureBoundaryCondition(BoundaryConditionFactory::PressureBC::OutflowNonReflective); bcFactory.setPressureBoundaryCondition(BoundaryConditionFactory::PressureBC::OutflowNonReflective);
...@@ -247,10 +248,11 @@ void multipleLevel(const std::string& configPath) ...@@ -247,10 +248,11 @@ void multipleLevel(const std::string& configPath)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int level = 1; // grid level at which the turbine samples velocities and distributes forces int level = 1; // grid level at which the turbine samples velocities and distributes forces
const real epsilon = dx*exp2(-level)*1.5; // width of gaussian smearing const real epsilon = dx*exp2(-level)*2.0; // width of gaussian smearing
const real density = 1.225f; const real density = 1.225f;
const uint nBlades = 3; const uint nBlades = 3;
const uint nBladeNodes = 401; // passt zu auflösung von 105 Knoten const uint nBladeNodes = 404; // passt zu auflösung von 105 Knoten
VF_LOG_INFO("number of blade nodes ALM = {}", nBladeNodes);
const real tipspeed_ratio = 7.5f; // tipspeed ratio = angular vel * radius / inflow vel const real tipspeed_ratio = 7.5f; // tipspeed ratio = angular vel * radius / inflow vel
const real omega = 2*tipspeed_ratio*velocity/reference_diameter; const real omega = 2*tipspeed_ratio*velocity/reference_diameter;
......
...@@ -12,8 +12,8 @@ NodesPerDiameter=105 ...@@ -12,8 +12,8 @@ NodesPerDiameter=105
Velocity=9 Velocity=9
################################################## ##################################################
tStartOut=0 tStartOut=0
tOut=10000 tOut=5000
tEnd=10000 tEnd=5000
################################################## ##################################################
# tStartTmpAveraging=100 # tStartTmpAveraging=100
......
...@@ -370,8 +370,8 @@ void Simulation::init(GridProvider &gridProvider, BoundaryConditionFactory *bcFa ...@@ -370,8 +370,8 @@ void Simulation::init(GridProvider &gridProvider, BoundaryConditionFactory *bcFa
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// Write Initialized Files // Write Initialized Files
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
VF_LOG_INFO("Write initialized Files ..."); // VF_LOG_INFO("Write initialized Files ...");
dataWriter->writeInit(para, cudaMemoryManager); // dataWriter->writeInit(para, cudaMemoryManager);
if (para->getCalcParticles()) if (para->getCalcParticles())
copyAndPrintParticles(para.get(), cudaMemoryManager.get(), 0, true); copyAndPrintParticles(para.get(), cudaMemoryManager.get(), 0, true);
VF_LOG_INFO("... done."); VF_LOG_INFO("... done.");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment