physics.py¶
This module contains all of the firn-densification models.
physics.py¶
The Community Firn Model physics module.
equations for each of the densification models.
-
class
physics.FirnPhysics(PhysParams)¶ class for the various firn densification schemes
The standard parameters that get passed are: iii, steps, gridLen, bdotSec, bdot_mean, bdot_type, Tz, T10m, rho, sigma, dt, Ts, r2, physGrain
if you want to add physics that require more parameters, you need to change the ‘PhysParams’ dictionary in both the spin and nospin classes.
- Parameters
steps – # of steps per year
gridLen –
bdotSec –
Tz –
rho –
sigma –
- Return drho_dt
- Return viscosity
-
Arthern_2010S()¶ This is the steady-state solution described in the main text of Arthern et al. (2010) Accumulation units are kg/m^2/year
-
Arthern_2010T()¶ This is the transient solution described in the appendix of Arthern et al. (2010)
Uses stress rather than accumulation rate.
-
Barnola_1991()¶ uses m W.E. (zone 1) and stress (zone 2)
-
Breant2017()¶ Bréant, C., Martinerie, P., Orsi, A., Arnaud, L., and Landais, A.: Modelling firn thickness evolution during the last deglaciation: constraints on sensitivity to temperature and impurities, Clim. Past, 13, 833–853, https://doi.org/10.5194/cp-13-833-2017, 2017.
-
Crocus()¶ Uses stress
-
GSFC2020()¶ Taken from Medley et al. (2020) Accumulation units are kg/m^2/year Subscript here are changed to 1 and 2 (correspond to densification stage) (in Medley et al. 2020 they are 0 and 1)
-
Goujon_2003()¶ Uses stress
-
HL_Sigfus()¶ Accumulation units are m W.E. per year (zone 1); uses stress for zone 2
-
HL_dynamic()¶ Accumulation units are m W.E. per year viscosity doesn’t work
-
Helsen_2008()¶ Accumulation units are m W.E. per year (?) Equation is from Arthern et al. 2010 (2) (Arthern implies units are m I.E.; not doing that here)
-
KuipersMunneke_2015()¶ Units are mm W.E. per year b_dot is meant to be accumulation over a reference period (20 years for spin up, 1 year for regular?) (not mean over the lifetime of a parcel)
-
Li_2004()¶ Accumulation units are m W.E. per year (?) Equation from Arthern, 2010 (eq. 2): not sure where Rob got that? (Arthern implies accumulation is m I.E./year for bdot; not doing that here.) Paper would lead me to believe that it is m W.E.
Needs to have the vapor flux coded in if we want to use these physics properly.
-
Li_2011()¶ Accumulation units are m W.E. per year (email correspondence with J. Li, 12/3/13) Temperature in the equation for beta is in C. Temperature in the 8.36(273.15-T)**-2.061 is in K. (implied in Arthern)
beta should be calculated with the long-term mean accumulation rate
-
Li_2015()¶ Accumulation units are m W.E. per year (email correspondence with J. Li, 12/3/13) Temperature in the equation for beta is in C. Temperature in the 8.36(273.15-T)**-2.061 is in K. (implied in Arthern)
beta should be calculated with the long-term mean accumulation rate
-
Ligtenberg_2011()¶ Units are mm W.E. per year b_dot is meant to be accumulation over a reference period (20 years for spin up, 1 year for regular?) (not mean over the lifetime of a parcel)
-
Max2018()¶ Experimental: based on firn compaction data from FirnCover campaigns
-
Max2018b()¶ Experimental: based on firn compaction data from FirnCover campaigns
-
Morris_HL_2014()¶ Uses stress instead of accumulation.
Need to choose physics for zone 2. Herron and Langway here.
-
Simonsen_2013()¶ Accumulation units are kg/m^2/year
-
graincalc(iii)¶ Evolve the grain size
This is the same as graingrowth except that we do not calculate for the surface grain, which is done by surfacegrain() function
-
surfacegrain()¶ function to calculate the surface grain size at each time step