Alpine3D  Alpine3D-3.2.0
TerrainRadiationHelbig Class Reference

Radiosity terrain radiation. For each cell of the domain, a view factor to every other visible cell of the domain is computed. Then the contributions from the terrain reflected radiations of every visible cell are added until a convergence criteria is reached. This is described in Helbig, Nora, Henning Löwe, and Michael Lehning, "Radiosity approach for the shortwave surface radiation balance in complex terrain", Journal of the Atmospheric Sciences, 66.9 ,2009, pp 2900-2912. More...

#include <TerrainRadiationHelbig.h>

Public Member Functions

 TerrainRadiationHelbig (const mio::Config &i_cfg, const mio::DEMObject &dem_in, const int &i_nbworkers, const std::string &method)
 
virtual void getRadiation (mio::Array2D< double > &direct, mio::Array2D< double > &diffuse, mio::Array2D< double > &terrain, const mio::Array2D< double > &direct_unshaded_horizontal, const mio::Array2D< double > &total_ilwr, mio::Array2D< double > &sky_ilwr, mio::Array2D< double > &terrain_ilwr, double solarAzimuth, double solarElevation)
 
virtual void setMeteo (const mio::Array2D< double > &albedo, const mio::Array2D< double > &ta)
 
- Public Member Functions inherited from TerrainRadiationAlgorithm
 TerrainRadiationAlgorithm (const std::string &i_algo)
 
virtual ~TerrainRadiationAlgorithm ()
 
bool hasSP ()
 
virtual void setSP (const mio::Date, const double, const double)
 
virtual void writeSP (const unsigned int)
 

Additional Inherited Members

- Public Attributes inherited from TerrainRadiationAlgorithm
const std::string algo
 
- Protected Attributes inherited from TerrainRadiationAlgorithm
bool _hasSP
 

Detailed Description

Radiosity terrain radiation. For each cell of the domain, a view factor to every other visible cell of the domain is computed. Then the contributions from the terrain reflected radiations of every visible cell are added until a convergence criteria is reached. This is described in Helbig, Nora, Henning Löwe, and Michael Lehning, "Radiosity approach for the shortwave surface radiation balance in complex terrain", Journal of the Atmospheric Sciences, 66.9 ,2009, pp 2900-2912.

The following keys in the [EBalance] section control the behavior of the model:

  • itEps_SW: stopping tolerance/iteration error for shortwave radiation –(default: 0.4)– (make it larger to stop the iteration earlier, i.e. less terrain reflections are included --> with 10 % (0.1) a good accuracy is obtained)
  • itEps1_SW: stopping tolerance/iteration error for shortwave radiation –(default: 0.1)– (make it lower to stop the iteration earlier, i.e. less terrain reflections are included)
  • itEps_LW: stopping tolerance/iteration error for longwave radiation –(default: 0.4)– note that two stopping critera are used
  • sw_radius: the distance radius (in m) around each grid cell until which terrain reflection is taken into account –(default: 3000.)–
  • lw_radius: the distance radius (in m) around each grid cell until which longwave emission is taken into account –(default: 1500. (Landl(2007)))–
  • vf_in_ram: Progressive Refinement iteration is used; but you can enable storing the view factors in memory (in case of sufficient memory capacity --> faster terrain radiation computation)
  • sub_crit: substructuring threshold (in %) of the patches in the view factor computation –(default: 0.4)– note that mccluney(1994) proposes 0.1, i.e. for accurate view factors / radiation exchange computations a threshold of least 0.1 should be used

It is also possible to read the view factors from file or write them to a file. The following keys, either in the [Input] or in the [Output] sections define the file names:

  • vf_file: file containing the sky view factors
  • tvfarea: file containing the terrain view factors x surface

Constructor & Destructor Documentation

◆ TerrainRadiationHelbig()

TerrainRadiationHelbig::TerrainRadiationHelbig ( const mio::Config &  i_cfg,
const mio::DEMObject &  dem_in,
const int &  i_nbworkers,
const std::string &  method 
)

Member Function Documentation

◆ getRadiation()

void TerrainRadiationHelbig::getRadiation ( mio::Array2D< double > &  direct,
mio::Array2D< double > &  diffuse,
mio::Array2D< double > &  terrain,
const mio::Array2D< double > &  direct_unshaded_horizontal,
const mio::Array2D< double > &  total_ilwr,
mio::Array2D< double > &  sky_ilwr,
mio::Array2D< double > &  terrain_ilwr,
double  solarAzimuth,
double  solarElevation 
)
virtual

◆ setMeteo()

void TerrainRadiationHelbig::setMeteo ( const mio::Array2D< double > &  albedo,
const mio::Array2D< double > &  ta 
)
virtual

The documentation for this class was generated from the following files: