Skip to content
Snippets Groups Projects
Commit 9b09b5dc authored by Henrik Asmuth's avatar Henrik Asmuth
Browse files

Add geostrophic wind option to BoundaryLayer

parent 680bf893
No related branches found
No related tags found
1 merge request!143Experimental merge
...@@ -118,6 +118,8 @@ void multipleLevel(const std::string& configPath) ...@@ -118,6 +118,8 @@ void multipleLevel(const std::string& configPath)
const uint nodes_per_H = config.contains("nz")? config.getValue<uint>("nz"): 64; const uint nodes_per_H = config.contains("nz")? config.getValue<uint>("nz"): 64;
const bool driveWithGeostrophicWind = config.contains("driveWithGeostrophicWind")? config.getValue<bool>("driveWithGeostrophicWind"): false;
// all in s // all in s
const float tStartOut = config.getValue<real>("tStartOut"); const float tStartOut = config.getValue<real>("tStartOut");
const float tOut = config.getValue<real>("tOut"); const float tOut = config.getValue<real>("tOut");
...@@ -155,7 +157,7 @@ void multipleLevel(const std::string& configPath) ...@@ -155,7 +157,7 @@ void multipleLevel(const std::string& configPath)
para->setPrintFiles(true); para->setPrintFiles(true);
para->setForcing(pressureGradientLB, 0, 0); if(!driveWithGeostrophicWind) para->setForcing(pressureGradientLB, 0, 0);
para->setVelocityLB(velocityLB); para->setVelocityLB(velocityLB);
para->setViscosityLB(viscosityLB); para->setViscosityLB(viscosityLB);
para->setVelocityRatio( dx / dt ); para->setVelocityRatio( dx / dt );
...@@ -200,10 +202,17 @@ void multipleLevel(const std::string& configPath) ...@@ -200,10 +202,17 @@ void multipleLevel(const std::string& configPath)
para->setHasWallModelMonitor(true); para->setHasWallModelMonitor(true);
bcFactory.setStressBoundaryCondition(BoundaryConditionFactory::StressBC::StressPressureBounceBack); bcFactory.setStressBoundaryCondition(BoundaryConditionFactory::StressBC::StressPressureBounceBack);
if(driveWithGeostrophicWind)
// gridBuilder->setVelocityBoundaryCondition(SideType::PZ, 0.0, 0.0, 0.0); {
gridBuilder->setSlipBoundaryCondition(SideType::PZ, 0.0, 0.0, 0.0); real u_geostrophic = u_star/0.4*log(H/z0) * dt / dx ;
bcFactory.setSlipBoundaryCondition(BoundaryConditionFactory::SlipBC::SlipBounceBack); //SlipCompressibleTurbulentViscosity gridBuilder->setVelocityBoundaryCondition(SideType::PZ, u_geostrophic, 0.0, 0.0);
bcFactory.setVelocityBoundaryCondition(BoundaryConditionFactory::VelocityBC::VelocityCompressible);
}
else //drive with pressure gradient
{
gridBuilder->setSlipBoundaryCondition(SideType::PZ, 0.0, 0.0, 0.0);
bcFactory.setSlipBoundaryCondition(BoundaryConditionFactory::SlipBC::SlipBounceBack);
}
real cPi = 3.1415926535897932384626433832795; real cPi = 3.1415926535897932384626433832795;
para->setInitialCondition([&](real coordX, real coordY, real coordZ, real &rho, real &vx, real &vy, real &vz) { para->setInitialCondition([&](real coordX, real coordY, real coordZ, real &rho, real &vx, real &vy, real &vz) {
......
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