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): ...@@ -39,18 +39,20 @@ class Model(object):
#deltaC_e = deltaB_e - 9. # to ensure consistency with eps_cb-eps_bc #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_CAL = 1.0 # per mille, Bolton & Stoll table S2: +1
self.eps_FIX = -15.0 # per mille, Bolton & Stoll table S2: -27 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_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! 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_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! 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_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! 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, self.correct_kinetic_fractionation = False
# which is used below to compute deltaC_e from deltaB_e.
#self.eps_cb *= 10.3/9.
#self.eps_bc *= 10.3/9.
def getBicarbonateFluxes(self,**info): def getBicarbonateFluxes(self,**info):
verbose = info.get('verbose',False) verbose = info.get('verbose',False)
...@@ -126,18 +128,19 @@ class Model(object): ...@@ -126,18 +128,19 @@ class Model(object):
deltaC_e = (alpha_HCO3*alpha_CO2_HCO3-1.)*1000 deltaC_e = (alpha_HCO3*alpha_CO2_HCO3-1.)*1000
if verbose: print 'deltaB_e = %.3f, deltaC_e = %.3f' % (deltaB_e,deltaC_e) if verbose: print 'deltaB_e = %.3f, deltaC_e = %.3f' % (deltaB_e,deltaC_e)
# Scale kinetic fractionation factors so that equilibrium fractionation if self.correct_kinetic_fractionation:
# is identical to reference value from Zhang et al 1995 # Scale kinetic fractionation factors so that equilibrium fractionation
eps_CO2_HCO3 = (alpha_CO2_HCO3-1)*1000 # is identical to reference value from Zhang et al 1995
fac = eps_CO2_HCO3/(self.eps_bc_CA-self.eps_cb_CA) eps_CO2_HCO3 = (alpha_CO2_HCO3-1)*1000
self.eps_bc_CA *= fac fac = eps_CO2_HCO3/(self.eps_bc_CA-self.eps_cb_CA)
self.eps_cb_CA *= fac self.eps_bc_CA *= fac
fac = eps_CO2_HCO3/(self.eps_bc_noCA-self.eps_cb_noCA) self.eps_cb_CA *= fac
self.eps_cb_noCA *= fac fac = eps_CO2_HCO3/(self.eps_bc_noCA-self.eps_cb_noCA)
self.eps_bc_noCA *= fac self.eps_cb_noCA *= fac
fac = eps_CO2_HCO3/(self.eps_bc4-self.eps_cb4) self.eps_bc_noCA *= fac
self.eps_cb4 *= fac fac = eps_CO2_HCO3/(self.eps_bc4-self.eps_cb4)
self.eps_bc4 *= fac self.eps_cb4 *= fac
self.eps_bc4 *= fac
SA = 4*numpy.pi*r**2 # cell surface area in m2, assuming spherical shape 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 V_cell = 4./3.*numpy.pi*r**3 # cell volume in m3, assuming spherical shape
...@@ -200,7 +203,7 @@ class Model(object): ...@@ -200,7 +203,7 @@ class Model(object):
A_iso = A*concs.reshape(1,-1) A_iso = A*concs.reshape(1,-1)
A_iso[2,2] -= F_FIX A_iso[2,2] -= F_FIX
A_iso[5,5] -= F_CAL A_iso[5,5] -= F_CAL
# Passive CO2 fluxes from source concentration, membrane permeability, surface area. # Passive CO2 fluxes from source concentration, membrane permeability, surface area.
FC_iu = self.k_ei*C_e*SA FC_iu = self.k_ei*C_e*SA
FC_io = self.k_ei*C_i*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