Español
Wind3D  1.0
Mass consistent wind field computation
 All Data Structures Files Functions Variables Typedefs Enumerations Macros Pages
Wind3D

Introduction

Wind3D is a software that simulates a 3D wind field over complex terrains using an adaptive mass consistent model. The software can use as forecast weather models results, station measured wind data or an interpolated wind field.

Information

Title: Wind3D
Registration application number: GC-96-2012.
Registration entry: 00 / 2012 / 2506
Date: February 23rd, 2012.
Owner organization: Universidad de Las Palmas de Gran Canaria.

Authors

Eduardo Rodríguez Barrera, Gustavo Montero García, José María Escobar Sánchez, Rafael Montenegro Armas, Albert Oliver Serra

License

Copyright (C) 2012
ULPGC Universidad de Las Palmas de Gran Canaria
Institute of Intelligent Systems and Numerical Applications in Engineering - SIANI

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Download

Here you can download the source code of Wind3D, with one example for each input data: measured stations data, forecasting weather model and interpolated wind field.

Requirements

To compile Wind3D are necessary the following software:

  • CMake 2.6 or newer
    CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice
  • gcc 4.2 o newer | Clang 3.0 o newer
    A C99 standard conforming compiler.

Optionally, to generate the documentation for Wind3D it is necessary the following software:

  • Doxygen 1.7.6, (recommended doxygen 1.8.2)
    Doxygen is a tool for generating documentation from the source code. This is the software that generates the Wind3D documentation HTML and the source code for generating a PDF with LaTeX
  • LaTeX distribution: MikTex, TexLive,... (opcional)
    LaTeX is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation. This software generates the Wind3D documentation PDF file.

Source code has been compiled and tested in the following systems:

  • GNU/Linux Ubuntu 12.04.3 LTS
  • GNU/Linux Debian testing
  • Mac OS X 10.6.8

Wind3D is a C99 conforming standard software, so supposedly it can work correctly on different systems than the aforementioned ones.

How to compile the source code

This section explains how to compile the source code. It's only detailed in the command line.

  1. Download the source code
  2. Uncompress zip package
    unzip package.zip
  3. Create a build directory in the wind3D folder
    cd wind3D
    mkdir Build
    cd Build
  4. Use cmake to generate the Makefile
    cmake ..
  5. Optional: CMakeLists.txt can be modified to compile the source code with different profiles:
    • Variable CMAKE_BUILD_TYPE:
      Debug, to get an executable useful to debug the code.
      Release, to gen an executable optimized for speed.
      RelWithDebInfo to get an executable optimized for speed but with debug information.
      MinSizeRel, to get an small executable.
  6. Compile the source code
    make
  7. To generate the Wind3D documentation (Doxygen should be available)
    make doc
    Documentation is generated inside directory build

Use

main.c file shows a typical use of Wind3D library.

Compiling the source code as it is, the command line interface is

Use:
wind3D -c config.dat -f forecast|stations|interpolation -r num |-R fichero [-s fichero] [-l]
Mandatory parameters:
-c Configuration file
-f Input format (forecast | stations | interpolation)
-r Constant rugosity value (not compatible with -R)
-R Rugosity file name (not compatible with -r)
Optional parameters:
-s Filename with output points
-i Write interpolated wind field file
-n Do not write resulting wind field
-l Compute wind field in different layers (10, 20, 50, 100, 150, 200, 300, 400, 500)

Configuration file format

El formato del fichero de configuración es el siguiente: Configuration file format

  • Can contain white lines
  • Comments begin with a "#" symbol
  • One assignment per line
  • Assignment is defined as "parameter_name = parameter_value"

Parameters

  • ALPHA. Value used in mass-consistent equation. It corresponds to parameters $\alpha_{12}$ and $\alpha_{22}$ from equation (3) in paper [4]
  • FICH_VIENTO. Path to wind file
  • FICH_MALLA. Path to mesh file
  • EPSILON. Value used for the horizontal interpolation. It's defined in equation (9) from paper [4]
  • GAMMA1 y GAMMA2. Values used for the vertical extrapolation. It corresponds to $\gamma$ and $\gamma'$ from equations (14) and (15) in paper [4]
  • CTE_VON_KARMANN. Von Karman constant value. It's dimensionless and its typical value is 0.4
  • LATITUD. Latitude from the study zone, in degrees (look at equations (14) and (15) in paper [4])
  • PASQUILL. Pasquill stability class value: -3 = A Class, -2 = B Class, -1 = C Class, 0 = D Class, 1 = E Class, 2 = F Class, 3 = G Class
  • V_GEOSTROFICO_X, V_GEOSTROFICO_Y and V_GEOSTROFICO_Z. Geostrophic wind field X, Y and Z components

Mesh file format

Mesh file format is defined as

Number_of_Nodes Number_of_elements
#Nodes coordinate list
X Y Z
. . .
. . .
. . .
#Element connectivity list
N1 N2 N3 N4
. . . .
. . . .
. . . .

As in configuration file, lines beginning with "#" symbol are comments.

Wind file format

Format is defined by the problem to solve (stations, forecast or interpolated).

Stations wind file format

Stations wind file format is defined as

Number_of_stations
Type ("modulo" | "componentes")
X Y Z V1 V2
X Y Z V1 V2
. . . . .
. . . . .
. . . . .

Z value is defined as height over the terrain.

Values of V1 and V2 depends on the value of Type. If type is "modulo" V1 defines the wind modulus and V2 defines its angle. If type is "componentes" V1 defines the wind x component (Vx) and V2 the y component (Vy).

Forecast wind file format

Forecast wind file format is defined as

nx ny nz
X Y Z vx vy vz
. . . . . .
. . . . . .
. . . . . .

where nx is the number of nodes in direction X, ny the number of nodes in direction Y, and nz is the number of layers. Wind3D assumes that forecasting wind has been generated from a weather model (i.e. HARMONIE of WRF) with a regular and structured grid mesh, so values of X Y Z first move on nx, then on ny, and finally on nz.

Interpolated wind file format

Wind3D can use any interpolated wind field. Wind3D will compute the mass-consistent wind field from that interpolated field. In this case the values of the wind field should be defined in elements.

Interpolated wind file format is defined as

#Wind field components for each mesh element
Vx Vy Vz
. . .
. . .
. . .

Rugosity file format

Rugosity file has the information from the terrain rugosity values. An equispaced grid in the terrain has a rugosity value in each point. All points are described in their UTM coordinates and height.

Rugosity file format is defined as

xmin
xmax
ymin
ymax
deltax
deltay
X Y Z rugosity
. . . .
. . . .
. . . .

File header is defined by

  • xmin: Minimum UTMX coordinate
  • xmax: Maximum UTMX coordinate
  • ymin: Minimum UTMY coordinate
  • ymax: Maximum UTMY coordinate
  • deltax: X increment
  • deltay: Y increment

Next lines defines each point

  • X, Y: UTMX and UTMY coordinates
  • Z: Terrain height
  • rugosity: Rugosity value

Wind3D actual version does not use the terrain height information (Z), so in case you don't know that information any arbitrary value can be used.

Output points file format

Output points are locations (X,Y,Z) where you want to know the wind field. Typically this points don't have to match the mesh nodes.

Output points file specifies the number and location of the output points that will be used in the execution of Wind3D. The file path has to be defined by the flag "-s".

Output points file format is defined as

Number of points
Type ("terreno" | "mar")
X Y Z
. . .
. . .
. . .

Type determines how Z will be interpreted. If type is "mar", Z will be interpreted as the height over the sea level. If type is "terreno" Z will be interpreted as the height over the terrain.

Wind3D will write a file with the wind field values in the output points. Wind3D will append the suffix "_out" to the output points file name.

The resulting file format is defined as

Number of points
Type ("terreno" | "mar")
X Y Z Vx Vy Vz |V|
. . . . . . .
. . . . . . .
. . . . . . .

where

  • X Y: Point UTMX UTMY coordinates
  • Z: Height over the terrain in that point
  • Vx Vy Vz: Wind field components
  • |V|: Wind field module

Acknowledgements

This work has been supported by the Spanish Government and FEDER grant contracts: CSD2006-00032C, CGL2011-29396-C03-01

We would also like to thank the support of the following organizations: Agencia Estatal de Meteorología (AEMET), Instituto Tecnológico de Canarias (ITC), Desarrollos Eólicos S.A. (DESA) and Red Eléctrica de España (REE).

Cite

If you use Wind3D for any published research, please cite the code as follows:

\@misc{Wind3Dcode,
author = "Eduardo Rodr\'{\i}guez and Gustavo Montero and Jos\'e Mar\'{\i}a
Escobar and Rafael Montenegro and Albert Oliver",
title = "{Wind3D}",
howpublished = "http://www.dca.iusiani.ulpgc.es/Wind3D",
year = "2012"
}

And, please, include at least one of the following publications:

@article{Montero20053,
author = "Gustavo Montero and Eduardo Rodr\'{\i}guez and Rafael
Montenegro and Jos\'e Mar\'{\i}a Escobar and Jos\'e Mar\'{\i}a
Gonz\'alez--Yuste",
title = "Genetic algorithms for an improved parameter estimation with
local refinement of tetrahedral meshes in a wind model",
journal = "Advances in Engineering Software",
volume = "36",
number = "1",
pages = "3--10",
year = "2005",
issn = "0965-9978",
doi = "10.1016/j.advengsoft.2004.03.011",
note = "<ce:title>Evolutionary Optimization of Engineering Problems</ce:title> ",
url = "http://www.sciencedirect.com/science/article/pii/S0965997804000742",
keywords = "Parameter estimation",
keywords = "Genetic algorithms",
keywords = "Wind field modelling",
keywords = "Mass-consistent models",
keywords = "Adaptive mesh refinement",
keywords = "Finite element method"
}
@article{Ferragut10,
author = "Luis Ferragut and Rafael Montenegro and Gustavo Montero and
Eduardo Rodr\'{\i}guez and M.L. Asensio and Jos\'e Mar\'{\i}a Escobar",
title = "Comparison between {2.5-D} and {3-D} realistic models for wind field adjustment",
journal = "Journal of Wind Engineering and Industrial Aerodynamics",
volume = "98",
number = "10-11",
pages = "548--558",
year = "2010",
issn = "0167-6105",
doi = "10.1016/j.jweia.2010.04.004",
keywords = "Wind field modelling",
keywords = "Mass consistent models",
keywords = "Parameter estimation",
keywords = "Genetic algorithms",
keywords = "Adaptive mesh refinement",
keywords = "Finite element method"
url = "http://www.sciencedirect.com/science/article/pii/S0167610510000346"
}
@article{Oliver13,
title = "Adaptive finite element simulation of stack pollutant
emissions over complex terrains ",
journal = "Energy",
volume = "49",
number = "0",
pages = "47--60",
year = "2013",
issn = "0360-5442",
doi = "10.1016/j.energy.2012.10.051",
url = "http://www.sciencedirect.com/science/article/pii/S0360544212008316",
author = "Albert Oliver and Gustavo Montero and Rafael Montenegro and
Eduardo Rodr\'{\i}guez and Jos\'e Mar\'{\i}a Escobar and Agust\'{\i}
P\'erez-Foguet",
keywords = "Power plant emissions",
keywords = "Air quality modelling",
keywords = "Eulerian description",
keywords = "Wind field simulation",
keywords = "Finite element method",
keywords = "Adaptive tetrahedral mesh "
}

Bibliography

[1] G. Winter, R. Montenegro, G. Montero, J. Estany. Sobre modelización numérica de distribución de velocidades de campos de viento en parques eólicos y aplicaciones. Revista Dinámica 3, 81-82 (1988).
[2] G. Winter, G. Montero, L. Ferragut, R. Montenegro. Adaptive strategies using standard and mixed finite elements for wind field adjustment. Solar Energy 54, 1, 49-56 (1995).
[3] G. Montero, R. Montenegro, J.M. Escobar. A 3-D diagnostic model for wind field adjustment. Journal of Wind Engineering & Industrial Aerodynamics 74-76, 249-261 (1998).
[4] G. Montero, E. Rodríguez, R. Montenegro, J.M. Escobar, J.M. González-Yuste. Genetic algorithms for an improved parameter estimation with local refinement of tetrahedral meshes in a wind model. Advances in Engineering Software 36, 3-10 (2005). http://dx.doi.org/10.1016/j.advengsoft.2004.03.011
[5] R. Montenegro, G. Montero, J.M. Escobar, E. Rodríguez, J.M. González-Yuste. Wind field simulation using adaptive tetrahedral meshes. Innovation in Civil and Structural Engineering Computing, Cap. 8, 159-185, Saxe-Coburg Publications, Stirling, Scotland (2005).
[6] R. Montenegro, G. Montero, E. Rodríguez, J.M. Escobar, J.M. González-Yuste. Aplications of genetic algorithms in realistic wind field. Knowledge-Driven Computing, Knowledge Engineering and Intelligent Computations, Studies in Computational Intelligence, 102, 165-182, Springer-Verlag, Berlin (2008). http://dx.doi.org/10.1007/978-3-540-77475-4_11
[7] L. Ferragut, R. Montenegro, G. Montero, E. Rodríguez, M.I. Asensio, J.M. Escobar. Comparison between 2.5-D and 3-D realistic models for wind field adjustment. Journal of Wind Engineering & Industrial Aerodynamics 98, 548–558 (2010). http://dx.doi.org/10.1016/j.jweia.2010.04.004
[8] A. Oliver, G. Montero, R. Montenegro, E. Rodríguez, J.M. Escobar, A. Pérez-Foguet. Adaptive finite element simulation of stack pollutant emissions over complex terrains. Energy 49(0), 47–60, (2013). http://dx.doi.org/10.1016/j.energy.2012.10.051