SNOWPACK 20240419.9b8fae6
VapourTransport.h
Go to the documentation of this file.
1/*
2 * SNOWPACK stand-alone
3 *
4 * Copyright WSL Institute for Snow and Avalanche Research SLF, DAVOS, SWITZERLAND
5*/
6/* This file is part of Snowpack.
7 Snowpack is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 Snowpack is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with Snowpack. If not, see <http://www.gnu.org/licenses/>.
19*/
24#ifndef VAPOURTRANSPORT_H
25#define VAPOURTRANSPORT_H
26
27#include <snowpack/Constants.h>
29#include <snowpack/Laws_sn.h>
34#include <snowpack/Meteo.h>
35#include <snowpack/Utils.h>
37#include <snowpack/Constants.h>
38#include <snowpack/Laws_sn.h>
39#include <snowpack/SnowDrift.h>
41
42#include <meteoio/MeteoIO.h>
43
44
51 public:
53 void compTransportMass(const CurrentMeteo& Mdata, double& ql, SnowStation& Xdata, SurfaceFluxes& Sdata);
54
55 private:
56 bool compDensityProfile(const CurrentMeteo& Mdata, SnowStation& Xdata,
57 std::vector<double>& hm_, std::vector<double>& as_,
58 const std::vector<double>& D_el, std::vector<double>& oldVaporDenNode);
59 void compSurfaceSublimation(const CurrentMeteo& Mdata, double& ql, SnowStation& Xdata, SurfaceFluxes& Sdata);
60 void LayerToLayer(const CurrentMeteo& Mdata, SnowStation& Xdata, SurfaceFluxes& Sdata, double& ql);
61 double dRhov_dT(const double Tem);
62
63 ReSolver1d RichardsEquationSolver1d;
64
65 std::string variant;
66
67 watertransportmodels iwatertransportmodel_snow, iwatertransportmodel_soil;
68
69 std::string watertransportmodel_snow;
70 std::string watertransportmodel_soil;
71 double sn_dt, timeStep, waterVaporTransport_timeStep;
72 const static double VapourTransport_timeStep;
73 double hoar_thresh_rh, hoar_thresh_vw, hoar_thresh_ta;
74 bool useSoilLayers, water_layer;
75
76 bool enable_vapour_transport;
77 double diffusionScalingFactor_, height_of_meteo_values;
78 bool adjust_height_of_meteo_values;
79
80 const static double f;
81
82 bool waterVaporTransport_timeStepAdjust;
83};
84#endif // End of VapourTransport.h}
This header file contains the definition of the structures required to handle I/O.
CurrentMeteo is the class of interpolated meteo data for the current calculation time step It contai...
Definition: DataClasses.h:83
This module contains the solver for the 1d Richards Equation for the 1d snowpack model.
Definition: ReSolver1d.h:36
Definition: DataClasses.h:604
Definition: SnowpackConfig.h:28
Definition: DataClasses.h:733
This module contains water vapour transport routines for the 1d snowpack model.
Definition: VapourTransport.h:50
VapourTransport(const SnowpackConfig &cfg)
Definition: VapourTransport.cc:63
void compTransportMass(const CurrentMeteo &Mdata, double &ql, SnowStation &Xdata, SurfaceFluxes &Sdata)
The mass transport procedure, which serves as the primary function, is invoked from Snowpack::runSnow...
Definition: VapourTransport.cc:163
This module contains water transport routines for the 1d snowpack model.
Definition: WaterTransport.h:39
watertransportmodels
Definition: WaterTransport.h:51