SNOWPACK 20240329.2d1c245
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
32class 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) const;
38
39 static const double karman;
40 static const double z0_salt;
41
42 private:
43 static 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 static 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 static 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 static 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 static 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 static 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 const 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
This module contains the saltation model of Judith.
Definition: Saltation.h:32
static const double karman
Von Karman constant.
Definition: Saltation.h:39
static const double z0_salt
Saltation Z0 Preliminary values will be changed later Judith original: 0.00098.
Definition: Saltation.h:40
bool compSaltation(const double &tauS, const double &tau_th, const double &slope_angle, const double &dg, double &massflux, double &c_salt) const
Computes the saltation flux.
Definition: Saltation.cc:397
Saltation(const SnowpackConfig &i_cfg)
Definition: Saltation.cc:73
Definition: SnowpackConfig.h:28