Commit 75414b7a authored by Jorn Bruggeman's avatar Jorn Bruggeman

added option to correct kinetic fractionation to be consistent with equilibrium fractionation

parent 5d4e0c39
......@@ -39,18 +39,20 @@ class Model(object):
#deltaC_e = deltaB_e - 9. # to ensure consistency with eps_cb-eps_bc
self.eps_CAL = 1.0 # per mille, Bolton & Stoll table S2: +1
self.eps_FIX = -15.0 # per mille, Bolton & Stoll table S2: -27
# Kinetic fractionation during hydration/dehydration in presence of CA
self.eps_cb_CA = -1.0 # per mille, Zeebe Table 3.2.5, p 184, 25 degrees Celsius!
self.eps_bc_CA = -10.0 # per mille, Zeebe Table 3.2.5, p 184, 25 degrees Celsius!
# Kinetic fractionation during hydration/dehydration in absence of CA
self.eps_cb_noCA = -13.0 # per mille, Zeebe Table 3.2.5, p 184, 24 degrees Celsius!
self.eps_bc_noCA = -22.0 # per mille, Zeebe Table 3.2.5, p 184, 24 degrees Celsius!
# Kinetic fractionation during hydroxylation
self.eps_cb4 = -11. # per mille, Zeebe Table 3.2.5, p 184, 24 degrees Celsius!
self.eps_bc4 = -20. # per mille, Zeebe Table 3.2.5, p 184, 24 degrees Celsius!
# To ensure difference is equal to equilibrium fractionation factor 10.3,
# which is used below to compute deltaC_e from deltaB_e.
#self.eps_cb *= 10.3/9.
#self.eps_bc *= 10.3/9.
self.correct_kinetic_fractionation = False
def getBicarbonateFluxes(self,**info):
verbose = info.get('verbose',False)
......@@ -126,18 +128,19 @@ class Model(object):
deltaC_e = (alpha_HCO3*alpha_CO2_HCO3-1.)*1000
if verbose: print 'deltaB_e = %.3f, deltaC_e = %.3f' % (deltaB_e,deltaC_e)
# Scale kinetic fractionation factors so that equilibrium fractionation
# is identical to reference value from Zhang et al 1995
eps_CO2_HCO3 = (alpha_CO2_HCO3-1)*1000
fac = eps_CO2_HCO3/(self.eps_bc_CA-self.eps_cb_CA)
self.eps_bc_CA *= fac
self.eps_cb_CA *= fac
fac = eps_CO2_HCO3/(self.eps_bc_noCA-self.eps_cb_noCA)
self.eps_cb_noCA *= fac
self.eps_bc_noCA *= fac
fac = eps_CO2_HCO3/(self.eps_bc4-self.eps_cb4)
self.eps_cb4 *= fac
self.eps_bc4 *= fac
if self.correct_kinetic_fractionation:
# Scale kinetic fractionation factors so that equilibrium fractionation
# is identical to reference value from Zhang et al 1995
eps_CO2_HCO3 = (alpha_CO2_HCO3-1)*1000
fac = eps_CO2_HCO3/(self.eps_bc_CA-self.eps_cb_CA)
self.eps_bc_CA *= fac
self.eps_cb_CA *= fac
fac = eps_CO2_HCO3/(self.eps_bc_noCA-self.eps_cb_noCA)
self.eps_cb_noCA *= fac
self.eps_bc_noCA *= fac
fac = eps_CO2_HCO3/(self.eps_bc4-self.eps_cb4)
self.eps_cb4 *= fac
self.eps_bc4 *= fac
SA = 4*numpy.pi*r**2 # cell surface area in m2, assuming spherical shape
V_cell = 4./3.*numpy.pi*r**3 # cell volume in m3, assuming spherical shape
......@@ -200,7 +203,7 @@ class Model(object):
A_iso = A*concs.reshape(1,-1)
A_iso[2,2] -= F_FIX
A_iso[5,5] -= F_CAL
# Passive CO2 fluxes from source concentration, membrane permeability, surface area.
FC_iu = self.k_ei*C_e*SA
FC_io = self.k_ei*C_i*SA
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment