Alpine3D 20250608.8e11c36
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);
41
42 virtual void getRadiation(mio::Array2D<double>& direct, mio::Array2D<double>& diffuse,
43 mio::Array2D<double>& terrain, const mio::Array2D<double>& direct_unshaded_horizontal,
44 const mio::Array2D<double>& total_ilwr, mio::Array2D<double>& sky_ilwr,
45 mio::Array2D<double>& terrain_ilwr, double solarAzimuth, double solarElevation) override;
46 virtual void setMeteo(const mio::Array2D<double>& albedo, const mio::Array2D<double>& ta) override;
47 void getSkyViewFactor(mio::Array2D<double> &o_sky_vf) override;
48
49 private:
50 double getAlbedo(const size_t& ii, const size_t& jj);
51 void initSkyViewFactor(const mio::DEMObject &dem);
52
53 mio::Array2D<double> albedo_grid, sky_vf;
54
55 const size_t dimx, dimy;
56 size_t startx, endx;
57};
58
59#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
void getSkyViewFactor(mio::Array2D< double > &o_sky_vf) override
Definition: TerrainRadiationSimple.cc:107
virtual void setMeteo(const mio::Array2D< double > &albedo, const mio::Array2D< double > &ta) override
Definition: TerrainRadiationSimple.cc:102
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) override
Definition: TerrainRadiationSimple.cc:37
TerrainRadiationSimple(const mio::Config &i_cfg, const mio::DEMObject &dem_in, const std::string &method)
Definition: TerrainRadiationSimple.cc:23