OpenFOAM tutorial: Wind around buildings (domain, mesh, solver, solution)

Hi! In this post I will explain to you a nice tutorial aviable on every openFOAM version (link), called windAroundBuildings. I will separete this post in many section dedicate to each step of a CFD case set up, so feel free of jup in to any part of you interest. The most important parts are how to incorporate the buildings and the mesh refinement around them.


OpenFOAM tutorial - windAroundBuildings

Brief explanation of the case


This tutorial simulate the atmospheric wind flow arround a group of buildings, wich could be part of a city. The objetive is to see the presure (loads) on each face of the buildings and the wind circulation for an especific wind direction and intensity.

Domain

Domain - OpenFOAM tutorial - windAroundBuildings
We have a group of buildings, max ...m high, that ocupy an area of ... x ... . The total domain has a bigger size, with a total doimension of 350m in x, 280m in y and 140m in z.  

Border conditions

There is a inlet face, with a constant velocity of 10m/s and an turbulence intensity of 10%, and an outlet one in the other side. The ground and buildings are wall conditions. The front and back are symmetry type.

Mesh

It is separate in two stages, in uniform background and a refinement zones near the buildings.

The background mesh is created by blockMesh application, in system/blockMeshDict directory. The cells take a dimmension of 14m in the three directions, with 25 cells in the x axis, 20 cells in the y axis and 10 cells in the z axis. There is a total of 5000 cells.

The refined mesh is created by snappyHexMesh aplication, in system/snappyHexMeshDict directory. buildings are introduced in the buildings.obj file. Then, it is especificated a refinement box of 250m x 180m x 90m with the buildings inside it. this box has a refinement level of 2, so the cells take a dimension of 3.50m. Near the buldings surface, it is especificate a refinement level of 3, so theres a minimun cell size of 1.75m. The total cell number rise to 185216.

still writing...

Características

Solución: system/controlDict

  • simpleFoam: solución estacionaria de un flujo resuelto de manera promediada en el tiempo con RANS.
  • cantidad de pasos de tiempo: 400
  • paso de tiempo: 1 seg
  • escritura de la solución cada: 50 pasos

Mallado de fondo: system/blockMeshDict

  • dimensión del dominio: 350m x 280m x 140m
  • celdas de fondo: 25 x 20 x 10; celdas de 14m; 5000 celdas
  • caras tipo patch: inlet, outlet
  • caras tupo symmetry: frontAndBack
  • cara tipo wall: ground

Mallado denso: system/snappyHexMeshDict

  • edificios: buildings.obj
  • caja refinada: 250m x 180m x 90m
  • refinamiento de superficie: level 3, celdas de 1.75m
  • refinamiento de la caja. level 2, celdas de 3.50m
  • total de celdas: 185216

Esquemas de interpolación: system/fvSchems

  • la interpolación espacial de la velocidad se realiza mediante linearUpwind, reduciendo la difusión numérica.

Modelo de turbulencia: constant/turbulenceProperties

  • formulación RANS, promediada en el tiempo
  • modelo de turbulencia. k-e, el modelo mas sencillo y barato, su solución no es buena cerca de las paredes.

Condiciones iniciales y de borde: 0/* 

  • velocidad U: entrada uniforme 10m/s
  • intensida de turbulencia: 1

Correr el caso: ./Allrun

1) Crea el archivo buildings.eMesh, con las características de la superficie de los edificios a partir del archivo buildings.obj
runApplication surfaceFeatureExtract

2) Realiza el mallado de fondo
runApplication blockMesh

3) Aumenta la resolución de la malla en los alrededores de los edificios
runApplication snappyHexMesh -overwrite

4) Corre el solver de solución estacionaria SimpleFOAM
runApplication $(getApplication)

Resultados

Algunos de los resultados más importantes son el campo de velocidades al rededor de los edificios y a nivel peatonal. también las presiones sobre las caras de las estructuras, aminorando o aumentándose debido a la presencia de las otras construcciones.


Comentarios