Beispiel #1
0
pools = [
decomp_network.decomp_pool(name='SOM',initCN=25,constraints={'initial':1e1},kind='immobile'),
# decomp_network.decomp_pool(name='Lignin',CN=50,constraints={'initial':1e2},kind='immobile'),
decomp_network.decomp_pool(name='HRimm',constraints={'initial':1e-20},kind='immobile'),

decomp_network.decomp_pool(name='DOM1',CN=25,constraints={'initial':1e-15},kind='primary'),
# decomp_network.decomp_pool(name='DOM2',CN=50,constraints={'initial':1e-30},kind='primary'),
decomp_network.decomp_pool(name='H+',kind='primary',constraints={'initial':'6.0 P'}),
decomp_network.decomp_pool(name='O2(aq)',kind='primary',constraints={'initial':'0.2 G O2(g)'}),
decomp_network.decomp_pool(name='HCO3-',kind='primary',constraints={'initial':'400e-6 G CO2(g)'}),
# decomp_network.decomp_pool(name='Mn+++',kind='primary',constraints={'initial':'1.0e-30 M Manganite'}),
# decomp_network.decomp_pool(name='Mn++',kind='primary',constraints={'initial':'1.0e-30'}),
decomp_network.decomp_pool(name='Fe+++',kind='primary',constraints={'initial':'.37e-10 M Fe(OH)3'}),
decomp_network.decomp_pool(name='Fe++',kind='primary',constraints={'initial':'0.37e-15'}),
decomp_network.decomp_pool(name='NH4+',kind='primary',constraints={'initial':1e-5}), # SOMDecomp sandbox requires this
decomp_network.decomp_pool(name='NO3-',kind='primary',constraints={'initial':1e-5}), 
decomp_network.decomp_pool(name='SO4--',kind='primary',constraints={'initial':1e-5}), 
decomp_network.decomp_pool(name='Tracer',kind='primary',constraints={'initial':1e-15}), # Just to accumulate CO2 loss
decomp_network.decomp_pool(name='CH4(aq)',kind='primary',constraints={'initial':1e-15}),
decomp_network.decomp_pool(name='H2S(aq)',kind='secondary',constraints={'initial':1e-15}),
decomp_network.decomp_pool(name='Acetate-',kind='primary',constraints={'initial':1e-15}),
decomp_network.decomp_pool(name='H2(aq)',kind='primary',constraints={'initial':1e-15}),
decomp_network.decomp_pool(name='N2(aq)',kind='primary',constraints={'initial':1e-15}),

decomp_network.decomp_pool(name='Na+',kind='primary',constraints={'initial':1e-15}),
decomp_network.decomp_pool(name='Cl-',kind='primary',constraints={'initial':1e-15}),
decomp_network.decomp_pool(name='Ca++',kind='primary',constraints={'initial':1e-15}),
decomp_network.decomp_pool(name='HS-',kind='primary',constraints={'initial':1e-15}),
decomp_network.decomp_pool(name='N2O(aq)',kind='primary',constraints={'initial':1e-15}),

decomp_network.decomp_pool(name='CO2(g)',kind='gas'),
decomp_network.decomp_pool(name='O2(g)',kind='gas'),
decomp_network.decomp_pool(name='N2(g)*',kind='gas'),
# decomp_network.decomp_pool(name='N2O(g)',kind='gas'),

decomp_network.decomp_pool(name='CO2(aq)',kind='secondary'),
decomp_network.decomp_pool(name='OH-',kind='secondary'),
# decomp_network.decomp_pool(name='MnO4--',kind='secondary'),
decomp_network.decomp_pool(name='Acetic_acid(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='MnIIIDOM2(aq)',kind='secondary'),
decomp_network.decomp_pool(name='FeIIIDOM1(aq)',kind='secondary'),
decomp_network.decomp_pool(name='FeIIIAcetate(aq)',kind='secondary'),

# decomp_network.decomp_pool(name='NH3(aq)',kind='secondary'),
decomp_network.decomp_pool(name='CO3--',kind='secondary'),
# decomp_network.decomp_pool(name='NH4SO4-',kind='secondary'),
# decomp_network.decomp_pool(name='Urea(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='HSO4-',kind='secondary'),
# decomp_network.decomp_pool(name='H2SO4(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='HNO3(aq)    ',kind='secondary'),
# decomp_network.decomp_pool(name='NaNO3(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='NaCl(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='NaSO4-',kind='secondary'),
# decomp_network.decomp_pool(name='NaCO3-',kind='secondary'),
# decomp_network.decomp_pool(name='NaHCO3(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='HCl(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='CaCO3(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='CaCl+',kind='secondary'),
# decomp_network.decomp_pool(name='CaCl2(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='CaHCO3+',kind='secondary'),
# decomp_network.decomp_pool(name='CaSO4(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='CO(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='CO2(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='Acetic_acid(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='S--',kind='secondary'),

# Hui/Beth say pyrolusite probably not precipitating in soils. Look for delta-MnO2? Maybe try 'Mn(OH)2(am)'?
# See Roberts Earth Sci Rev article for some discussion of minerals? More Fe focused though
# decomp_network.decomp_pool(name='Birnessite',rate='0.d-16 mol/m^2-sec',constraints={'initial':'0.0d-5  1.d2 m^2/m^3'},kind='mineral'),
# decomp_network.decomp_pool(name='Mn(OH)2(am)',rate='0.d-16 mol/m^2-sec',constraints={'initial':'0.0d-5  1.d2 m^2/m^3'},kind='mineral'),
# decomp_network.decomp_pool(name='Manganite',rate='1.d-12 mol/m^2-sec',constraints={'initial':'0.0d-5  1.d2 m^2/m^3'},kind='mineral'),
decomp_network.decomp_pool(name='Fe(OH)3',rate='0.d-3 mol/m^2-sec',constraints={'initial':'0.1d-3  1.d2 m^2/m^3'},kind='mineral'),
decomp_network.decomp_pool(name='Pyrite',rate='0.d-3 mol/m^2-sec',constraints={'initial':'0.0d-3  1.d2 m^2/m^3'},kind='mineral'),
decomp_network.decomp_pool(name='Calcite',rate='0.d-3 mol/m^2-sec',constraints={'initial':'0.875d-3  1.d2 m^2/m^3'},kind='mineral'),
decomp_network.decomp_pool(name='Pyrrhotite',rate='0.d-3 mol/m^2-sec',constraints={'initial':'0.0d-3  1.d2 m^2/m^3'},kind='mineral'),

# This is a workaround to allow pH buffering associated with solid substrate (Rock is a placeholder)
# decomp_network.decomp_pool(name='Rock(s)',rate='0.0 mol/m^2-sec',constraints={'initial':'0.5  5.0e3 m^2/m^3'},kind='mineral'),
# decomp_network.decomp_pool(name='>Carboxylate-',kind='surf_complex',mineral='Rock(s)',site_density=0.0e4,complexes=['>Carboxylic_acid']),

decomp_network.decomp_pool(name='H2O',kind='implicit'),
]
Beispiel #2
0
import decomp_network
import plot_pf_output

pflotran_exe = '../pflotran-interface/src/pflotran/pflotran'

simlength = 365

pools = [
    decomp_network.decomp_pool(name='cellulose',
                               CN=50,
                               constraints={'initial': 1e2},
                               kind='immobile'),
    decomp_network.decomp_pool(name='HRimm',
                               constraints={'initial': 1e-20},
                               kind='immobile'),
    decomp_network.decomp_pool(name='DOM1',
                               CN=50,
                               constraints={'initial': 1e-30},
                               kind='primary'),
    decomp_network.decomp_pool(name='H+',
                               kind='primary',
                               constraints={'initial': '4.0 P'}),
    decomp_network.decomp_pool(name='O2(aq)',
                               kind='primary',
                               constraints={'initial': 1e-12}),
    decomp_network.decomp_pool(name='HCO3-',
                               kind='primary',
                               constraints={'initial': '400e-6 G CO2(g)'}),
    decomp_network.decomp_pool(name='Fe+++',
                               kind='primary',
                               constraints={'initial': '.37e-3 M Fe(OH)3'}),
Beispiel #3
0
import run_alquimia
#I'm not sure why but if you import run_alquimia after decomp_network it gets messed up with some compiler library
import decomp_network
# Importing matplotlib fails if you don't module load anaconda3 first
from matplotlib import pyplot
import numpy

pools = [
    decomp_network.decomp_pool(name='SOM',
                               CN=50,
                               constraints={'initial': 1e1},
                               kind='immobile'),
    # decomp_network.decomp_pool(name='Lignin',CN=50,constraints={'initial':1e2},kind='immobile'),
    decomp_network.decomp_pool(name='HRimm',
                               constraints={'initial': 1e-20},
                               kind='immobile'),
    decomp_network.decomp_pool(name='DOM1',
                               CN=50,
                               constraints={'initial': 1e-15},
                               kind='primary'),
    # decomp_network.decomp_pool(name='DOM2',CN=50,constraints={'initial':1e-30},kind='primary'),
    decomp_network.decomp_pool(name='H+',
                               kind='primary',
                               constraints={'initial': '6.0 P'}),
    decomp_network.decomp_pool(name='O2(aq)',
                               kind='primary',
                               constraints={'initial': '0.2 G O2(g)'}),
    decomp_network.decomp_pool(name='HCO3-',
                               kind='primary',
                               constraints={'initial': '400e-6 G CO2(g)'}),
    # decomp_network.decomp_pool(name='Mn+++',kind='primary',constraints={'initial':'1.0e-30 M Manganite'}),
Beispiel #4
0
import decomp_network
import plot_pf_output

pflotran_exe = '../pflotran-interface/src/pflotran/pflotran'

# Simple decomposition network 1: 1 POM pool, one DOM pool, first order
POM = decomp_network.decomp_pool(name='POM', CN=15, initval=1e3)
DOM = decomp_network.decomp_pool(name='DOM1',
                                 CN=15,
                                 initval=1e-3,
                                 immobile=False)
CO2 = decomp_network.decomp_pool(name='CO2(aq)', immobile=False, initval=1e-15)
POM_dissolve = decomp_network.reaction(name='POM dissolution (no inhibition)',
                                       reactant_pools={'POM': 1.0},
                                       product_pools={'DOM1': 1.0},
                                       rate_constant=0.1,
                                       reactiontype='SOMDECOMP')
simple_network_DOM1 = decomp_network.decomp_network(pools=[POM, DOM, CO2],
                                                    reactions=[POM_dissolve])

DOM1_result, DOM1_units = decomp_network.PF_network_writer(
    simple_network_DOM1).run_simulation('SOMdecomp_template.txt', 'DOM1',
                                        pflotran_exe)

# Simple decomposition network 2: 1 POM pool, one DOM pool, inhibited by DOM
POM = decomp_network.decomp_pool(name='POM', CN=15, initval=1e3)
DOM = decomp_network.decomp_pool(name='DOM1',
                                 CN=15,
                                 initval=1e-3,
                                 immobile=False)
POM_dissolve_inhib = decomp_network.reaction(
Beispiel #5
0
import decomp_network, plot_pf_output
from numpy import *
from matplotlib import pyplot
import matplotlib

pools = [
    decomp_network.decomp_pool(name='Cellulose',
                               CN=50,
                               constraints={'initial': 5e3 * 0.6},
                               kind='immobile'),
    decomp_network.decomp_pool(name='Lignin',
                               CN=50,
                               constraints={'initial': 5e3 * 0.4},
                               kind='immobile'),
    decomp_network.decomp_pool(name='HRimm',
                               constraints={'initial': 1e-20},
                               kind='immobile'),
    decomp_network.decomp_pool(name='Root_biomass',
                               constraints={'initial': 1e-20},
                               kind='immobile'),
    decomp_network.decomp_pool(name='DOM1',
                               CN=50,
                               constraints={'initial': 1e-30},
                               kind='primary'),
    decomp_network.decomp_pool(name='DOM2',
                               CN=50,
                               constraints={'initial': 1e-30},
                               kind='primary'),
    decomp_network.decomp_pool(name='H+',
                               kind='primary',
                               constraints={'initial': '5.0 P'}),
Beispiel #6
0
pools = [
decomp_network.decomp_pool(name='cellulose',CN=50,constraints={'initial':8e3},kind='immobile'),
decomp_network.decomp_pool(name='HRimm',constraints={'initial':1e-20},kind='immobile'),

decomp_network.decomp_pool(name='DOM1',CN=50,constraints={'initial':0.5e-1},kind='primary'),
decomp_network.decomp_pool(name='H+',kind='primary',constraints={'initial':'5.0 P'}),
decomp_network.decomp_pool(name='O2(aq)',kind='primary',constraints={'initial':'0.2 G O2(g)'}),
decomp_network.decomp_pool(name='HCO3-',kind='primary',constraints={'initial':'400e-6 G CO2(g)'}),
decomp_network.decomp_pool(name='Fe+++',kind='primary',constraints={'initial':'.37e-10 M Fe(OH)3'}),
decomp_network.decomp_pool(name='Fe++',kind='primary',constraints={'initial':'0.37e-3'}),
decomp_network.decomp_pool(name='NH4+',kind='primary',constraints={'initial':1e-15}), # SOMDecomp sandbox requires this
decomp_network.decomp_pool(name='Tracer',kind='primary',constraints={'initial':1e-15}), # Just to accumulate CO2 loss
decomp_network.decomp_pool(name='CH4(aq)',kind='primary',constraints={'initial':1e-15}),
decomp_network.decomp_pool(name='Acetate-',kind='primary',constraints={'initial':1e-15}),
decomp_network.decomp_pool(name='H2(aq)',kind='primary',constraints={'initial':1e-15}),
decomp_network.decomp_pool(name='Mg++',kind='primary',constraints={'initial':0.5e-3}),
decomp_network.decomp_pool(name='Ca++',kind='primary',constraints={'initial':0.5e-3}),
decomp_network.decomp_pool(name='Na+',kind='primary',constraints={'initial':2e-3}),
decomp_network.decomp_pool(name='K+',kind='primary',constraints={'initial':2e-5}),

decomp_network.decomp_pool(name='CO2(g)',kind='gas'),
decomp_network.decomp_pool(name='O2(g)',kind='gas'),

decomp_network.decomp_pool(name='CO2(aq)',kind='secondary'),
decomp_network.decomp_pool(name='OH-',kind='secondary'),
decomp_network.decomp_pool(name='FeCO3+',kind='secondary'),
decomp_network.decomp_pool(name='Fe(OH)4-',kind='secondary'),
decomp_network.decomp_pool(name='Acetic_acid(aq)',kind='secondary'),
decomp_network.decomp_pool(name='FeCH3COO+',kind='secondary'),
decomp_network.decomp_pool(name='FeIIIDOM1(aq)',kind='secondary'),
decomp_network.decomp_pool(name='FeIIDOM1(aq)',kind='secondary'),
decomp_network.decomp_pool(name='FeIIIAcetate(aq)',kind='secondary'),
decomp_network.decomp_pool(name='Fe(OH)2(aq)',kind='secondary'),
# decomp_network.decomp_pool(name='Fe(OH)2+',kind='secondary'),
decomp_network.decomp_pool(name='FeCO3(aq)',kind='secondary'),
decomp_network.decomp_pool(name='CO3--',kind='secondary'),
decomp_network.decomp_pool(name='CaHCO3+',kind='secondary'),

# See Roberts Earth Sci Rev article for discussion of iron minerals, including some time scales
decomp_network.decomp_pool(name='Fe(OH)3',rate='1.d-6 mol/m^2-sec',constraints={'initial':'0.875d-3  1.d2 m^2/m^3'},kind='mineral'),
# decomp_network.decomp_pool(name='Goethite',rate='1.d-5 mol/m^2-sec',constraints={'initial':'1.75d-2  1.d1 m^2/m^3'},kind='mineral'),
# decomp_network.decomp_pool(name='Fe',rate='1.d-7 mol/m^2-sec',constraints={'initial':'1.0e-6  1. m^2/m^3'},kind='mineral'),
decomp_network.decomp_pool(name='Fe(OH)2',rate='1.d-7 mol/m^2-sec',constraints={'initial':'0.0e-20  1.d2 m^2/m^3'},kind='mineral'),
decomp_network.decomp_pool(name='Rock(s)',rate='0.0 mol/m^2-sec',constraints={'initial':'0.5  5.0e3 m^2/m^3'},kind='mineral'),
# decomp_network.decomp_pool(name='Calcite',rate='1.d-3 mol/m^2-sec',constraints={'initial':'0.0d-3  1.d2 m^2/m^3'},kind='mineral'),

# Maybe this should be a cation exchange reaction instead?
# Probably makes sense to include both
# There should be some Fe(II) sorption or complexation with OM
decomp_network.decomp_pool(name='>Carboxylate-',kind='surf_complex',mineral='Rock(s)',site_density=2000.0*5.0,complexes=['>Carboxylic_acid']), # site density in mol/m3

decomp_network.decomp_pool(name='H2O',kind='implicit'),
]