SNOWPACK  SNOWPACK-3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ElementData Class Reference

Detailed Description

ELEMENT DATA used as a pointer in the SnowStation structure NOTE on M below: this is the mass of an element that is neither changed by phase changes nor densification.
It is set in the data initialization and used to compute the stress field. It can ONLY be changed by the WATER TRANSPORT or SURFACE SUBLIMATION or WIND TRANSPORT routines.

#include <DataClasses.h>

Public Types

enum  Young_Modulus { Sigrist, Pow, Exp }
 This enum provides names for possible Young's modulus calculations. More...
 

Public Member Functions

 ElementData ()
 
bool checkVolContent () const
 Check volumetric content. More...
 
void heatCapacity ()
 Computes heat capacity of an element based on volumetric contents. More...
 
double coldContent () const
 Computes cold content of an element, taking melting_tk as reference. More...
 
double extinction () const
 Density dependent extinction coefficient -> Michi's magic trick... out of his magic hat. More...
 
void opticalEquivalentGrainSize ()
 Opical equivalent grain size
CROCUS implementation as described in Vionnet et al., 2012. The detailed snowpack scheme Crocus and its implementation in SURFEX v7.2, Geosci. Model Dev., 5, 773-791, 10.5194/gmd-5-773-2012. (see section 3.6) More...
 
void snowResidualWaterContent ()
 Estimate the residual water content RWC by Vol
From work by Coleou and Lesaffre, 1998, Ann. Glaciol., 26, 64-68.
Experimental range: More...
 
double soilFieldCapacity () const
 Field Capacity Soil is dependent on grain properties. This nice formulation is based on some tedious curve fitting by Martina Luetschg. The data stems from Scheffer und Schachtschabel (Richtwerte Baugrund), which once more proves that "nomen est omen". If my name was "Schachtschabel", I would never ever be dealing with wet soils and Baugrund. More...
 
double snowElasticity () const
 SNOW ELASTICITY : This important routine was programmed by Marc Christen, who took it directly from Mellor's famous 1975 paper on SNOW MECHANICS in the GRINDLEWALD symposium. Dimensions are in [Pa]. (Presently, it is NOT temperature dependent.) More...
 
double neckStressEnhancement () const
 Computes the enhancement of hydrostatically applied stress (overburden) in the necks (or bonds) More...
 
double concaveNeckRadius () const
 A non-generic function to compute the concave neck radius (mm).
It is assumed that the neck is bound by a sphere fitting between the two grains side by side such as the sphere goes to RB from the axis (this is a quick and dirty approximation) More...
 
double neckLength () const
 Computes the neck (or bond) length (mm) More...
 
double neck2VolumetricStrain () const
 Relates the neck strain to the global volumetric strain. More...
 
void snowType ()
 Determine the type of snow
First revisited by Fierz and Bellaire 2006 and 2007 TODO needs to be adapted to international classification. More...
 
unsigned short int getSnowType () const
 
const std::string toString () const
 

Static Public Member Functions

static double snowResidualWaterContent (const double &theta_i)
 
static unsigned short int snowType (const double &dendricity, const double &sphericity, const double &grain_dia, const unsigned short int &marker, const double &theta_w, const double &res_wat_cont)
 
static double getYoungModule (const double &rho_slab, const Young_Modulus &model)
 

Public Attributes

mio::Date depositionDate
 Date of deposition. More...
 
double L0
 
double L
 Original and present element thickness (m) More...
 
double Te
 mean element temperature (K) More...
 
double gradT
 temperature gradient over element (K m-1) More...
 
double melting_tk
 melt temperature of layer (principally initialized as 0 degC, but enables possibility for freezing point depression) More...
 
double freezing_tk
 freezing temperature of layer (principally initialized as 0 degC, but enables possibility for freezing point depression) More...
 
std::vector< double > theta
 volumetric contents: SOIL, ICE, WATER, AIR (1) More...
 
mio::Array2D< double > conc
 Concentration for chemical constituents in (kg m-3) More...
 
std::vector< double > k
 For example, heat conductivity of TEMPERATURE field (W m-1 K-1) More...
 
std::vector< double > c
 For example, specific heat of TEMPERATURE field (J kg-1 K-1) More...
 
std::vector< double > soil
 Contains the heat conductivity, capacity and dry density of the soil (solid, non-ice) component phase. More...
 
double Rho
 mean element density (or BULK density; kg m-3), that is, rho=M/V=sum( theta(i)*rho(i) ) More...
 
double M
 the total mass of the element (kg m-2) More...
 
double sw_abs
 total absorbed shortwave radiation by the element (W m-2) More...
 
double rg
 grain radius (mm) More...
 
double dd
 snow dendricity: 0 = none, 1 = newsnow More...
 
double sp
 sphericity: 1 = round, 0 = angular More...
 
double ogs
 optical equivalent grain size (mm) More...
 
double rb
 grain bond radius (mm) More...
 
double N3
 grain Coordination number (1) More...
 
size_t mk
 grain marker (history dependent) More...
 
unsigned short int type
 grain class More...
 
double metamo
 keep track of metamorphism More...
 
double dth_w
 Subsurface Melting & Freezing Data: change of water content. More...
 
double res_wat_cont
 Residual water content. More...
 
double Qmf
 Subsurface Melting & Freezing Data: change of energy due to phase changes (melt-freeze) More...
 
double QIntmf
 Apparent change in internal energy due to phase change (caused by difference in heat capacity of water and ice) More...
 
double dEps
 
double Eps
 
double Eps_e
 
double Eps_v
 Total element strain (GREEN'S strains – TOTAL LAGRANGIAN FORMULATION): Eps_e is elastic and Eps_v is viscous. More...
 
double Eps_Dot
 
double Eps_vDot
 Total Strain Rate, elastic and viscous, respectively (s-1) (Simply, Eps/sn_dt) More...
 
double E
 Young's modulus of elasticity (Pa) More...
 
double S
 Total Element Stress (Pa), S being the energy conjugate stress. More...
 
double C
 Total Element Stress (Pa), C being the real or the Cauchy stress, which is output. More...
 
double CDot
 Stress rate (Pa s-1), that is the overload change rate. More...
 
double ps2rb
 proportion of grain bond growth due to pressure sintering (1) More...
 
double s_strength
 Parameterized snow shear strength (kPa) More...
 
double hard
 Parameterized hand hardness (1) More...
 
double S_dr
 Stability Index based on deformation rate (Direct Action Avalanching) More...
 
double crit_cut_length
 Critical cut length (m) More...
 
double theta_r
 Residual water content of previous time step (m^3/m^3), used exclusively for solving Richards equation in snow. More...
 
double lwc_source
 Source/sink term for Richards equation. More...
 
double dhf
 

Friends

std::iostream & operator<< (std::iostream &os, const ElementData &data)
 
std::iostream & operator>> (std::iostream &is, ElementData &data)
 

Member Enumeration Documentation

This enum provides names for possible Young's modulus calculations.

Enumerator
Sigrist 

Sigrist, 2006.

Pow 

another power law

Exp 

exponential law

Constructor & Destructor Documentation

ElementData::ElementData ( )

Member Function Documentation

bool ElementData::checkVolContent ( ) const

Check volumetric content.

Version
11.01
Returns
sum of volumetric contents (1)
double ElementData::coldContent ( ) const

Computes cold content of an element, taking melting_tk as reference.

Version
10.08
Returns
Cold content (J m-2)
double ElementData::concaveNeckRadius ( ) const

A non-generic function to compute the concave neck radius (mm).
It is assumed that the neck is bound by a sphere fitting between the two grains side by side such as the sphere goes to RB from the axis (this is a quick and dirty approximation)

Author
Mathias Bavay
Version
9.mm
Returns
Concave neck radius (mm)
double ElementData::extinction ( ) const

Density dependent extinction coefficient -> Michi's magic trick... out of his magic hat.

Version
9Y.mm
Returns
Density dependent extinction coefficient (m-1)
unsigned short int ElementData::getSnowType ( ) const
double ElementData::getYoungModule ( const double &  rho_slab,
const Young_Modulus model 
)
static
void ElementData::heatCapacity ( )

Computes heat capacity of an element based on volumetric contents.

Version
11.01 set the effective heat capacity (J kg-1 K-1)
double ElementData::neck2VolumetricStrain ( ) const

Relates the neck strain to the global volumetric strain.

Version
11.01
Returns
Macro factor (1)
double ElementData::neckLength ( ) const

Computes the neck (or bond) length (mm)

Version
11.01
Returns
Neck length (mm)
double ElementData::neckStressEnhancement ( ) const

Computes the enhancement of hydrostatically applied stress (overburden) in the necks (or bonds)

Version
11.01
Returns
Enhancement factor for neck stress (1))
void ElementData::opticalEquivalentGrainSize ( )

Opical equivalent grain size
CROCUS implementation as described in Vionnet et al., 2012. The detailed snowpack scheme Crocus and its implementation in SURFEX v7.2, Geosci. Model Dev., 5, 773-791, 10.5194/gmd-5-773-2012. (see section 3.6)

double ElementData::snowElasticity ( ) const

SNOW ELASTICITY : This important routine was programmed by Marc Christen, who took it directly from Mellor's famous 1975 paper on SNOW MECHANICS in the GRINDLEWALD symposium. Dimensions are in [Pa]. (Presently, it is NOT temperature dependent.)

Version
9Y.mm
Returns
Module of elasticity (Pa)
void ElementData::snowResidualWaterContent ( )

Estimate the residual water content RWC by Vol
From work by Coleou and Lesaffre, 1998, Ann. Glaciol., 26, 64-68.
Experimental range:

  • density unsoaked: 235 to 580
  • density soaked: 328 to 589 kg m-3
  • RWC by Mass 0.049 to 0.029
    Note
    That function will limit range to 0.0264 to 0.08 RWC by Vol
    Version
    11.01
    Returns
    residual water content of snow element (1)
double ElementData::snowResidualWaterContent ( const double &  theta_i)
static
void ElementData::snowType ( )

Determine the type of snow
First revisited by Fierz and Bellaire 2006 and 2007 TODO needs to be adapted to international classification.

Version
11.11
Returns
snow type code according to old-fashioned Swiss tradition
unsigned short int ElementData::snowType ( const double &  dendricity,
const double &  sphericity,
const double &  grain_dia,
const unsigned short int &  marker,
const double &  theta_w,
const double &  res_wat_cont 
)
static
double ElementData::soilFieldCapacity ( ) const

Field Capacity Soil is dependent on grain properties. This nice formulation is based on some tedious curve fitting by Martina Luetschg. The data stems from Scheffer und Schachtschabel (Richtwerte Baugrund), which once more proves that "nomen est omen". If my name was "Schachtschabel", I would never ever be dealing with wet soils and Baugrund.

Author
Michael Lehning
Version
9Y.mm
Returns
Soil field capacity (?)
const std::string ElementData::toString ( ) const

Friends And Related Function Documentation

std::iostream& operator<< ( std::iostream &  os,
const ElementData data 
)
friend
std::iostream& operator>> ( std::iostream &  is,
ElementData data 
)
friend

Member Data Documentation

std::vector<double> ElementData::c

For example, specific heat of TEMPERATURE field (J kg-1 K-1)

double ElementData::C

Total Element Stress (Pa), C being the real or the Cauchy stress, which is output.

double ElementData::CDot

Stress rate (Pa s-1), that is the overload change rate.

mio::Array2D<double> ElementData::conc

Concentration for chemical constituents in (kg m-3)

double ElementData::crit_cut_length

Critical cut length (m)

double ElementData::dd

snow dendricity: 0 = none, 1 = newsnow

mio::Date ElementData::depositionDate

Date of deposition.

double ElementData::dEps
double ElementData::dhf
double ElementData::dth_w

Subsurface Melting & Freezing Data: change of water content.

double ElementData::E

Young's modulus of elasticity (Pa)

double ElementData::Eps
double ElementData::Eps_Dot
double ElementData::Eps_e
double ElementData::Eps_v

Total element strain (GREEN'S strains – TOTAL LAGRANGIAN FORMULATION): Eps_e is elastic and Eps_v is viscous.

double ElementData::Eps_vDot

Total Strain Rate, elastic and viscous, respectively (s-1) (Simply, Eps/sn_dt)

double ElementData::freezing_tk

freezing temperature of layer (principally initialized as 0 degC, but enables possibility for freezing point depression)

double ElementData::gradT

temperature gradient over element (K m-1)

double ElementData::hard

Parameterized hand hardness (1)

std::vector<double> ElementData::k

For example, heat conductivity of TEMPERATURE field (W m-1 K-1)

double ElementData::L

Original and present element thickness (m)

double ElementData::L0
double ElementData::lwc_source

Source/sink term for Richards equation.

double ElementData::M

the total mass of the element (kg m-2)

double ElementData::melting_tk

melt temperature of layer (principally initialized as 0 degC, but enables possibility for freezing point depression)

double ElementData::metamo

keep track of metamorphism

size_t ElementData::mk

grain marker (history dependent)

double ElementData::N3

grain Coordination number (1)

double ElementData::ogs

optical equivalent grain size (mm)

double ElementData::ps2rb

proportion of grain bond growth due to pressure sintering (1)

double ElementData::QIntmf

Apparent change in internal energy due to phase change (caused by difference in heat capacity of water and ice)

double ElementData::Qmf

Subsurface Melting & Freezing Data: change of energy due to phase changes (melt-freeze)

double ElementData::rb

grain bond radius (mm)

double ElementData::res_wat_cont

Residual water content.

double ElementData::rg

grain radius (mm)

double ElementData::Rho

mean element density (or BULK density; kg m-3), that is, rho=M/V=sum( theta(i)*rho(i) )

double ElementData::S

Total Element Stress (Pa), S being the energy conjugate stress.

double ElementData::S_dr

Stability Index based on deformation rate (Direct Action Avalanching)

double ElementData::s_strength

Parameterized snow shear strength (kPa)

std::vector<double> ElementData::soil

Contains the heat conductivity, capacity and dry density of the soil (solid, non-ice) component phase.

double ElementData::sp

sphericity: 1 = round, 0 = angular

double ElementData::sw_abs

total absorbed shortwave radiation by the element (W m-2)

double ElementData::Te

mean element temperature (K)

std::vector<double> ElementData::theta

volumetric contents: SOIL, ICE, WATER, AIR (1)

double ElementData::theta_r

Residual water content of previous time step (m^3/m^3), used exclusively for solving Richards equation in snow.

unsigned short int ElementData::type

grain class


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