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 (const unsigned short int &in_ID) | |
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 () |
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 () |
unsigned short int | getSnowType () const |
Determine the type of snow First revisited by Fierz and Bellaire 2006 and 2007 TODO needs to be adapted to international classification. More... | |
const std::string | toString () const |
Static Public Member Functions | |
static double | snowResidualWaterContent (const double &theta_i) |
Estimate the residual water content RWC by Vol From work by Coleou and Lesaffre, 1998, Ann. Glaciol., 26, 64-68. Experimental range: More... | |
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 | SlopeParFlux |
Slope parallel flux (m^3/m^3 * m / timestep) More... | |
double | dhf |
unsigned short int | ID |
Element ID used to track elements. More... | |
Static Public Attributes | |
static const unsigned short int | noID = static_cast<unsigned short int>(-1) |
Friends | |
std::ostream & | operator<< (std::ostream &os, const ElementData &data) |
std::istream & | operator>> (std::istream &is, ElementData &data) |
ElementData::ElementData | ( | const unsigned short int & | in_ID | ) |
bool ElementData::checkVolContent | ( | ) | const |
Check volumetric content.
double ElementData::coldContent | ( | ) | const |
Computes cold content of an element, taking melting_tk as reference.
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)
double ElementData::extinction | ( | ) | const |
Density dependent extinction coefficient -> Michi's magic trick... out of his magic hat.
unsigned short int ElementData::getSnowType | ( | ) | const |
Determine the type of snow
First revisited by Fierz and Bellaire 2006 and 2007 TODO needs to be adapted to international classification.
|
static |
void ElementData::heatCapacity | ( | ) |
Computes heat capacity of an element based on volumetric contents.
double ElementData::neck2VolumetricStrain | ( | ) | const |
Relates the neck strain to the global volumetric strain.
double ElementData::neckLength | ( | ) | const |
Computes the neck (or bond) length (mm)
double ElementData::neckStressEnhancement | ( | ) | const |
Computes the enhancement of hydrostatically applied stress (overburden) in the necks (or bonds)
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.)
void ElementData::snowResidualWaterContent | ( | ) |
|
static |
Estimate the residual water content RWC by Vol
From work by Coleou and Lesaffre, 1998, Ann. Glaciol., 26, 64-68.
Experimental range:
[in] | theta_i | ice volumetric fraction |
void ElementData::snowType | ( | ) |
|
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.
const std::string ElementData::toString | ( | ) | const |
|
friend |
|
friend |
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)
unsigned short int ElementData::ID |
Element ID used to track elements.
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)
|
static |
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)
double ElementData::SlopeParFlux |
Slope parallel flux (m^3/m^3 * m / timestep)
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