SNOWPACK  SNOWPACK-3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Saltation.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 */
20 #ifndef SALTATION_H
21 #define SALTATION_H
22 
23 #include <meteoio/MeteoIO.h>
24 #include <string.h>
25 
27 
32 class Saltation {
33  public:
34  Saltation(const SnowpackConfig& i_cfg);
35 
36  bool compSaltation(const double& tauS, const double& tau_th, const double& slope_angle, const double& dg,
37  double& massflux, double& c_salt);
38 
39  static const double karman;
40  static const double z0_salt;
41 
42  private:
43  double sa_vw(const double& z, const double& tauA, const double& tauS, const double& z0,
44  const double& u_start, const double& slope_angle);
45  double sa_vw2(const double& z, const double& tauA, const double& tauS, const double& z0,
46  const double& u_start, const double& slope_angle);
47 
48  bool sa_Traject(const double& u0, const double& angle_e_rad, const double& slope_angle, const double& dg,
49  const double& tauA, const double& tauS, const double& z0,
50  double& ubar, double& u_i, double& angle_i_rad, double& t_i, double& z_max);
51 
52  double sa_MassFlux(const double& z0, const double& tauS, const double& tauA, const double& slope_angle,
53  const double& dg, const double& tau_th, double& z_max, double& ubar, double& cs);
54 
55  double sa_AeroEntrain(const double& z0, const double& tauS, const double& slope_angle, const double& dg,
56  const double& tau_th, double& flux, double& z_max, double& ubar, double& cs);
57 
58  int sa_TestSaltation(const double& z0, const double& tauS, const double& tauA, const double& slope_angle,
59  const double& dg, const double& tau_th, double& z_max, double& ubar);
60 
61  std::string saltation_model;
62  static const double hs_frac, elas, angle_ej, ratio_ve_ustar, salt_height;
63  static const int strong, weak;
64 };
65 
66 #endif
67 
Definition: SnowpackConfig.h:28
static const double z0_salt
Saltation Z0 Preliminary values will be changed later Judith original: 0.00098.
Definition: Saltation.h:40
This module contains the saltation model of Judith.
Definition: Saltation.h:32
static const double karman
Von Karman constant.
Definition: Saltation.h:39
Saltation(const SnowpackConfig &i_cfg)
Definition: Saltation.cc:66
bool compSaltation(const double &tauS, const double &tau_th, const double &slope_angle, const double &dg, double &massflux, double &c_salt)
Computes the saltation flux.
Definition: Saltation.cc:393