Alpine3D 20240501.cd14b8b
TerrainRadiationSimple.h
Go to the documentation of this file.
1/***********************************************************************************/
2/* Copyright 2009-2015 WSL Institute for Snow and Avalanche Research SLF-DAVOS */
3/***********************************************************************************/
4/* This file is part of Alpine3D.
5 Alpine3D is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 Alpine3D is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with Alpine3D. If not, see <http://www.gnu.org/licenses/>.
17*/
18#ifndef TERRAINRADIATIONSIMPLE_H
19#define TERRAINRADIATIONSIMPLE_H
20
21#include <alpine3d/MPIControl.h>
22#include <meteoio/MeteoIO.h>
25
38
39 public:
40 TerrainRadiationSimple(const mio::Config& i_cfg, const mio::DEMObject &dem_in, const std::string& method);
42
43 virtual void getRadiation(mio::Array2D<double>& direct, mio::Array2D<double>& diffuse,
44 mio::Array2D<double>& terrain, const mio::Array2D<double>& direct_unshaded_horizontal,
45 const mio::Array2D<double>& total_ilwr, mio::Array2D<double>& sky_ilwr,
46 mio::Array2D<double>& terrain_ilwr, double solarAzimuth, double solarElevation);
47 virtual void setMeteo(const mio::Array2D<double>& albedo, const mio::Array2D<double>& ta);
48 void getSkyViewFactor(mio::Array2D<double> &o_sky_vf);
49
50 private:
51 double getAlbedo(const size_t& ii, const size_t& jj);
52 void initSkyViewFactor(const mio::DEMObject &dem);
53
54 mio::Array2D<double> albedo_grid, sky_vf;
55
56 const size_t dimx, dimy;
57 size_t startx, endx;
58};
59
60#endif
Definition: TerrainRadiationAlgorithm.h:37
Simple guess of terrain reflected radiation. For each cell of the domain, a sky view factor is comput...
Definition: TerrainRadiationSimple.h:37
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)
Definition: TerrainRadiationSimple.cc:39
~TerrainRadiationSimple()
Definition: TerrainRadiationSimple.cc:37
virtual void setMeteo(const mio::Array2D< double > &albedo, const mio::Array2D< double > &ta)
Definition: TerrainRadiationSimple.cc:104
TerrainRadiationSimple(const mio::Config &i_cfg, const mio::DEMObject &dem_in, const std::string &method)
Definition: TerrainRadiationSimple.cc:23
void getSkyViewFactor(mio::Array2D< double > &o_sky_vf)
Definition: TerrainRadiationSimple.cc:109