SNOWPACK 20240502.b7bfb45
VapourTransport Class Reference

Detailed Description

This module contains water vapour transport routines for the 1d snowpack model.

Version
1.0

#include <VapourTransport.h>

Public Member Functions

 VapourTransport (const SnowpackConfig &cfg)
 
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::runSnowpackModel.
NOTES: More...
 
- Public Member Functions inherited from WaterTransport
 WaterTransport (const SnowpackConfig &cfg)
 
virtual ~WaterTransport ()
 
void compTransportMass (const CurrentMeteo &Mdata, SnowStation &Xdata, SurfaceFluxes &Sdata, double &ql)
 The mass transport procedure is called from sn_Snowpack – AFTER calling the NEWSNOW (sn_SnowFall) or SNOWDRIFT (sn_SnowDrift) modules but BEFORE calling the TEMPERATURE (sn_SnowTemperature), PHASECHANGE (pc_PhaseChange) or CREEP (sn_SnowCreep) routines.
The mass transport routines were inserted at this location since they can set the NEWMESH variable which means the FEM data structures must be reallocated before solving the instationary heat equations(?)
These routines are responsible for MOVING MASS (water) in, out and through the snowpack. They are subsequently responsible for WATER TRANSPORT and SURFACE SUBLIMATION. Since surface sublimation does not change the FE data structure it is treated FIRST.
The phase change routines will increment the volumetric water content of the elements, then the WATER TRANSPORT routines will move the excess water from element "e" to element "e-1".
NOTES: More...
 

Additional Inherited Members

- Protected Types inherited from WaterTransport
enum  watertransportmodels { UNDEFINED , BUCKET , NIED , RICHARDSEQUATION }
 
- Protected Member Functions inherited from WaterTransport
void mergingElements (SnowStation &Xdata, SurfaceFluxes &Sdata)
 Merging snow elements
. More...
 
void adjustDensity (SnowStation &Xdata)
 Surface sublimation and melt artificially create surface elements that have a much too low density and this needs to be corrected.
TODO Check description! More...
 

Constructor & Destructor Documentation

◆ VapourTransport()

VapourTransport::VapourTransport ( const SnowpackConfig cfg)

No surface hoar will form for rH above threshold (1)

  • Original calibration with the 98/99 data set: 0.9
  • r141: HOAR_THRESH_RH set to 0.9
  • r719: HOAR_THRESH_RH set to 0.97

No surface hoar will form at wind speeds above threshold (m s-1)

  • Original calibration with the 98/99 data set: 3.5
  • r141: HOAR_THRESH_VW set to 3.0
  • r242: HOAR_THRESH_VW set to 3.5

No surface hoar will form at air temperatures above threshold (m s-1)

  • Originaly, using THRESH_RAIN
  • r787: HOAR_THRESH_TA set to 1.2

Member Function Documentation

◆ compTransportMass()

void VapourTransport::compTransportMass ( const CurrentMeteo Mdata,
double &  ql,
SnowStation Xdata,
SurfaceFluxes Sdata 
)

The mass transport procedure, which serves as the primary function, is invoked from Snowpack::runSnowpackModel.
NOTES:

  1. It is worth noting that the solver is highly stable with default parameters. Specifically, VAPOUR_TRANSPORT_TIMESTEP is set to 60 seconds, while the SNOWPACK simulation time step is 15 minutes, and VAPOUR_TRANSPORT_IMPLICIT_FACTOR is set to 1. The latter factor determines whether the equation is discretized in full implicit, full explicit, or a combination of the two, with a value of 1 indicating full implicit, and a value of 0.5 indicating Crank-Nicolson. In the case of convergence issues, reducing the height of the new-snow element controlled by HEIGHT_NEW_ELEM (in the .ini config file) is recommended. For sea-ice simulations, choosing BUCKET for the water transport scheme is advised if convergence issues arise.
  2. If there is no soil or snow present, vapor transport will be bypassed.
  3. If vapor transport enabled, ql is only used in vaportransport for mass tranport on top. See WaterTransport::compTransportMass.
    Author
    Mahdi Jafari
    Parameters
    Xdata
    qlLatent heat flux (W m-2)
    Sdata
    Mdata

The documentation for this class was generated from the following files: