API documentation for the model_config module#

Configuration classes for the soil model.

Data:

REQUIRED_ENZYMES

Required enzyme classes as all pairs of higher taxon source and substrate.

Classes:

SoilConfiguration(*[, static, ...])

Root configuration class for the soil model.

SoilConstants(*[, reference_cue_logit, ...])

Dataclass to store all constants for the soil model.

SoilEnzymeClass(*[, source, substrate, ...])

Soil enzyme constants.

SoilMicrobialGroup(*[, name, ...])

Microbial functional group definitions.

virtual_ecosystem.models.soil.model_config.HIGHER_TAXONOMIC_GROUPS(*args, **kwargs)#

Permitted higher taxonomic group names in the soil model.

alias of Literal[‘fungi’, ‘bacteria’]

virtual_ecosystem.models.soil.model_config.REQUIRED_ENZYMES: set[tuple[Literal['fungi', 'bacteria'], Literal['pom', 'maom']]] = {('bacteria', 'maom'), ('bacteria', 'pom'), ('fungi', 'maom'), ('fungi', 'pom')}#

Required enzyme classes as all pairs of higher taxon source and substrate.

virtual_ecosystem.models.soil.model_config.REQUIRED_MICROBIAL_GROUPS(*args, **kwargs)#

Required taxonomic groups in the soil model

alias of Literal[‘saprotrophic_fungi’, ‘ectomycorrhiza’, ‘arbuscular_mycorrhiza’, ‘bacteria’]

virtual_ecosystem.models.soil.model_config.SUBSTRATES(*args, **kwargs)#

Permitted substrate types in the soil model

alias of Literal[‘pom’, ‘maom’]

class virtual_ecosystem.models.soil.model_config.SoilConfiguration(*, static: bool = False, enzyme_class_definition_path: str = '', microbial_group_definition_path: str = '', constants: SoilConstants = SoilConstants(reference_cue_logit=0.094, cue_reference_temp=20.0, logit_cue_with_temperature=-0.039, soil_microbe_water_potential_optimum=-3.0, soil_microbe_water_potential_halt=-15800.0, microbial_water_response_curvature=1.47, min_pH_microbes=2.5, lowest_optimal_pH_microbes=4.5, highest_optimal_pH_microbes=7.5, max_pH_microbes=11.0, base_soil_protection=0.694, soil_protection_with_clay=1.36, solubility_coefficient_lmwc=0.05, solubility_coefficient_ammonium=0.05, solubility_coefficient_nitrate=1.0, solubility_coefficient_labile_p=0.005, necromass_decay_rate=np.float64(0.23104906018664842), maom_desorption_rate=1e-05, lmwc_sorption_rate=0.001, necromass_sorption_rate=np.float64(0.6931471805599453), litter_leaching_fraction_carbon=0.0015, litter_leaching_fraction_nitrogen=0.0015, litter_leaching_fraction_phosphorus=0.0001, organic_proportion_litter_nitrogen_leaching=1.0, organic_proportion_litter_phosphorus_leaching=1.0, ammonium_mineralisation_proportion=0.9, tectonic_uplift_rate_phosphorus=0.0, ammonia_volatilisation_rate_constant=8.64e-05, nitrification_rate_constant=0.08639999999999999, denitrification_rate_constant=0.21600000000000003, nitrification_optimum_temperature=311.15, nitrification_maximum_temperature=343.15, nitrification_thermal_sensitivity=12, denitrification_infinite_temperature_factor=93.34598, denitrification_minimum_temperature=227.12999999999997, denitrification_thermal_sensitivity=308.56, nitrogen_fixation_cost_zero_celcius=59.19651970522086, nitrogen_fixation_cost_infinite_temp_offset=-0.8034802947791453, nitrogen_fixation_cost_thermal_sensitivity=0.27, nitrogen_fixation_cost_equality_temperature=50.28, free_living_N_fixation_reference_rate=4.106776180698152e-06, free_living_N_fixation_reference_temp=293.15, free_living_N_fixation_q10_coefficent=3.0, primary_phosphorus_breakdown_rate=2.2831050228310502e-07, secondary_phosphorus_breakdown_rate=7.407407407407407e-05, labile_phosphorus_sorption_rate=0.0016666666666666668, ammonium_deposition_rate=4.1067761806981517e-07, phosphorus_deposition_rate=1.3689253935660508e-08, nitrogen_fixer_supply_fraction=0.3, ectomycorrhiza_supply_fraction=0.25), enzyme_class_definition: list[SoilEnzymeClass] = [SoilEnzymeClass(source='fungi', substrate='pom', maximum_rate=60.0, half_saturation_constant=70.0, activation_energy_rate=37000, activation_energy_saturation=30000, reference_temperature=12.0, turnover_rate=0.024, c_n_ratio=5.2, c_p_ratio=16), SoilEnzymeClass(source='fungi', substrate='maom', maximum_rate=60.0, half_saturation_constant=70.0, activation_energy_rate=37000, activation_energy_saturation=30000, reference_temperature=12.0, turnover_rate=0.024, c_n_ratio=5.2, c_p_ratio=16), SoilEnzymeClass(source='bacteria', substrate='pom', maximum_rate=60.0, half_saturation_constant=70.0, activation_energy_rate=37000, activation_energy_saturation=30000, reference_temperature=12.0, turnover_rate=0.024, c_n_ratio=5.2, c_p_ratio=16), SoilEnzymeClass(source='bacteria', substrate='maom', maximum_rate=60.0, half_saturation_constant=70.0, activation_energy_rate=37000, activation_energy_saturation=30000, reference_temperature=12.0, turnover_rate=0.024, c_n_ratio=5.2, c_p_ratio=16)], microbial_group_definition: list[SoilMicrobialGroup] = [SoilMicrobialGroup(name='saprotrophic_fungi', taxonomic_group='fungi', max_uptake_rate_labile_C=0.04, activation_energy_uptake_rate=47000, half_sat_labile_C_uptake=0.364, activation_energy_uptake_saturation=30000, max_uptake_rate_ammonium=0.005, half_sat_ammonium_uptake=0.02275, max_uptake_rate_nitrate=0.0005, half_sat_nitrate_uptake=0.02275, max_uptake_rate_labile_p=0.0025, half_sat_labile_p_uptake=0.02275, turnover_rate=0.005, activation_energy_turnover=20000, reference_temperature=12.0, c_n_ratio=5.2, c_p_ratio=16, enzyme_production={'pom': 0.005, 'maom': 0.005}, reproductive_allocation=0.0, symbiote_nitrogen_uptake_fraction=0.0, symbiote_phosphorus_uptake_fraction=0.0), SoilMicrobialGroup(name='ectomycorrhiza', taxonomic_group='fungi', max_uptake_rate_labile_C=0.04, activation_energy_uptake_rate=47000, half_sat_labile_C_uptake=0.364, activation_energy_uptake_saturation=30000, max_uptake_rate_ammonium=0.005, half_sat_ammonium_uptake=0.02275, max_uptake_rate_nitrate=0.0005, half_sat_nitrate_uptake=0.02275, max_uptake_rate_labile_p=0.0025, half_sat_labile_p_uptake=0.02275, turnover_rate=0.005, activation_energy_turnover=20000, reference_temperature=12.0, c_n_ratio=5.2, c_p_ratio=16, enzyme_production={'pom': 0.005, 'maom': 0.005}, reproductive_allocation=0.0, symbiote_nitrogen_uptake_fraction=0.0, symbiote_phosphorus_uptake_fraction=0.0), SoilMicrobialGroup(name='arbuscular_mycorrhiza', taxonomic_group='fungi', max_uptake_rate_labile_C=0.04, activation_energy_uptake_rate=47000, half_sat_labile_C_uptake=0.364, activation_energy_uptake_saturation=30000, max_uptake_rate_ammonium=0.005, half_sat_ammonium_uptake=0.02275, max_uptake_rate_nitrate=0.0005, half_sat_nitrate_uptake=0.02275, max_uptake_rate_labile_p=0.0025, half_sat_labile_p_uptake=0.02275, turnover_rate=0.005, activation_energy_turnover=20000, reference_temperature=12.0, c_n_ratio=5.2, c_p_ratio=16, enzyme_production={'pom': 0.005, 'maom': 0.005}, reproductive_allocation=0.0, symbiote_nitrogen_uptake_fraction=0.0, symbiote_phosphorus_uptake_fraction=0.0), SoilMicrobialGroup(name='bacteria', taxonomic_group='bacteria', max_uptake_rate_labile_C=0.04, activation_energy_uptake_rate=47000, half_sat_labile_C_uptake=0.364, activation_energy_uptake_saturation=30000, max_uptake_rate_ammonium=0.005, half_sat_ammonium_uptake=0.02275, max_uptake_rate_nitrate=0.0005, half_sat_nitrate_uptake=0.02275, max_uptake_rate_labile_p=0.0025, half_sat_labile_p_uptake=0.02275, turnover_rate=0.005, activation_energy_turnover=20000, reference_temperature=12.0, c_n_ratio=5.2, c_p_ratio=16, enzyme_production={'pom': 0.005, 'maom': 0.005}, reproductive_allocation=0.0, symbiote_nitrogen_uptake_fraction=0.0, symbiote_phosphorus_uptake_fraction=0.0)])[source]#

Root configuration class for the soil model.

Attributes:

constants

Constants values for soil model.

enzyme_class_definition

Definition of enzyme classes for soil model.

enzyme_class_definition_path

Path to a CSV file of microbial enzyme class definitions.

microbial_group_definition

Definition of microbial groups for soil model.

microbial_group_definition_path

Path to a CSV file of microbial functional group definitions.

constants: SoilConstants#

Constants values for soil model.

enzyme_class_definition: list[SoilEnzymeClass]#

Definition of enzyme classes for soil model.

enzyme_class_definition_path: str#

Path to a CSV file of microbial enzyme class definitions. Not yet implemented.

microbial_group_definition: list[SoilMicrobialGroup]#

Definition of microbial groups for soil model.

microbial_group_definition_path: str#

Path to a CSV file of microbial functional group definitions. Not yet implemented.

static: bool#

The model static mode setting.

class virtual_ecosystem.models.soil.model_config.SoilConstants(*, reference_cue_logit: float = 0.094, cue_reference_temp: float = 20.0, logit_cue_with_temperature: float = -0.039, soil_microbe_water_potential_optimum: Annotated[float, Lt(lt=0)] = -3.0, soil_microbe_water_potential_halt: Annotated[float, Lt(lt=0)] = -15800.0, microbial_water_response_curvature: float = 1.47, min_pH_microbes: float = 2.5, lowest_optimal_pH_microbes: float = 4.5, highest_optimal_pH_microbes: float = 7.5, max_pH_microbes: float = 11.0, base_soil_protection: float = 0.694, soil_protection_with_clay: float = 1.36, solubility_coefficient_lmwc: float = 0.05, solubility_coefficient_ammonium: float = 0.05, solubility_coefficient_nitrate: float = 1.0, solubility_coefficient_labile_p: float = 0.005, necromass_decay_rate: float = np.float64(0.23104906018664842), maom_desorption_rate: float = 1e-05, lmwc_sorption_rate: float = 0.001, necromass_sorption_rate: float = np.float64(0.6931471805599453), litter_leaching_fraction_carbon: float = 0.0015, litter_leaching_fraction_nitrogen: float = 0.0015, litter_leaching_fraction_phosphorus: float = 0.0001, organic_proportion_litter_nitrogen_leaching: float = 1.0, organic_proportion_litter_phosphorus_leaching: float = 1.0, ammonium_mineralisation_proportion: float = 0.9, tectonic_uplift_rate_phosphorus: float = 0.0, ammonia_volatilisation_rate_constant: float = 8.64e-05, nitrification_rate_constant: float = 0.08639999999999999, denitrification_rate_constant: float = 0.21600000000000003, nitrification_optimum_temperature: float = 311.15, nitrification_maximum_temperature: float = 343.15, nitrification_thermal_sensitivity: int = 12, denitrification_infinite_temperature_factor: float = 93.34598, denitrification_minimum_temperature: float = 227.12999999999997, denitrification_thermal_sensitivity: float = 308.56, nitrogen_fixation_cost_zero_celcius: float = 59.19651970522086, nitrogen_fixation_cost_infinite_temp_offset: float = -0.8034802947791453, nitrogen_fixation_cost_thermal_sensitivity: float = 0.27, nitrogen_fixation_cost_equality_temperature: float = 50.28, free_living_N_fixation_reference_rate: float = 4.106776180698152e-06, free_living_N_fixation_reference_temp: float = 293.15, free_living_N_fixation_q10_coefficent: float = 3.0, primary_phosphorus_breakdown_rate: float = 2.2831050228310502e-07, secondary_phosphorus_breakdown_rate: float = 7.407407407407407e-05, labile_phosphorus_sorption_rate: float = 0.0016666666666666668, ammonium_deposition_rate: float = 4.1067761806981517e-07, phosphorus_deposition_rate: float = 1.3689253935660508e-08, nitrogen_fixer_supply_fraction: float = 0.3, ectomycorrhiza_supply_fraction: float = 0.25)[source]#

Dataclass to store all constants for the soil model.

Attributes:

ammonia_volatilisation_rate_constant

Rate constant for ammonia volatilisation from ammonium [day^-1].

ammonium_deposition_rate

Rate at which ammonium is deposited into the system [kg{N} m^-2 day^-1].

ammonium_mineralisation_proportion

Proportion of microbially mineralised nitrogen that takes the form of ammonium.

base_soil_protection

Basal change in saturation constants due to soil structure [unitless].

cue_reference_temp

Reference temperature for carbon use efficiency [Celsius].

denitrification_infinite_temperature_factor

Denitrification temperature factor at infinite temperature [unitless].

denitrification_minimum_temperature

Temperature at which denitrification stops entirely [Kelvin].

denitrification_rate_constant

Rate constant for denitrification from nitrate [day^-1].

denitrification_thermal_sensitivity

Sensitivity of denitrification rate to changes in temperature [Kelvin].

ectomycorrhiza_supply_fraction

Fraction of plant carbon supply to mycorrhizal fungi that goes to ectomycorrhiza.

free_living_N_fixation_q10_coefficent

Q10 coefficient for free-living fixation of nitrogen [unitless].

free_living_N_fixation_reference_rate

Rate at which free living microbes fix nitrogen (at the reference temperature).

free_living_N_fixation_reference_temp

Temperature reference rate of free-living nitrogen fixation was measured at [Kelvin].

highest_optimal_pH_microbes

Soil pH below which microbial activity is not inhibited at all [unitless].

labile_phosphorus_sorption_rate

Rate constant for sorption of labile phosphorus to secondary mineral phosphorus [day^-1].

litter_leaching_fraction_carbon

Fraction of carbon mineralisation from litter that occurs by leaching [unitless].

litter_leaching_fraction_nitrogen

Fraction of nitrogen mineralisation from litter that occurs by leaching.

litter_leaching_fraction_phosphorus

Fraction of phosphorus mineralisation from litter that occurs by leaching.

lmwc_sorption_rate

Rate constant for low molecular weight carbon sorption to minerals [day^-1].

logit_cue_with_temperature

Change in the logit of carbon use efficiency with unit increase in temperature [Celsius^-1].

lowest_optimal_pH_microbes

Soil pH above which microbial activity is not inhibited at all [unitless].

maom_desorption_rate

Rate constant for mineral associated organic matter desorption [day^-1].

max_pH_microbes

Soil pH above which microbial activity is completely inhibited [unitless].

microbial_water_response_curvature

Curvature of function for response of soil microbial rates to water potential [unitless].

min_pH_microbes

Soil pH below which microbial activity is completely inhibited [unitless].

necromass_decay_rate

Rate at which microbial necromass decays to low molecular weight carbon [day^-1].

necromass_sorption_rate

Rate constant for necromass sorption to minerals [day^-1].

nitrification_maximum_temperature

Temperature at which our empirical nitrification model stops working [Kelvin].

nitrification_optimum_temperature

Soil temperature at which nitrification is maximised [Kelvin].

nitrification_rate_constant

Rate constant for nitrification from ammonium [day^-1].

nitrification_thermal_sensitivity

Sensitivity of nitrification rate to changes in temperature [unitless].

nitrogen_fixation_cost_equality_temperature

Positive temperature at which nitrogen fixation cost is the same at zero Celsius.

nitrogen_fixation_cost_infinite_temp_offset

Difference in nitrogen fixation cost between zero Celsius and infinite limit.

nitrogen_fixation_cost_thermal_sensitivity

Sensitivity of symbiotic nitrogen fixation cost to changes in temperature [Celsius^-1].

nitrogen_fixation_cost_zero_celcius

Cost (in carbon) that plants pay to their symbiotic partners at zero Celsius [kg{C} kg{N}^-1].

nitrogen_fixer_supply_fraction

Fraction of carbon supplied by plants to symbiotes that goes to nitrogen fixers.

organic_proportion_litter_nitrogen_leaching

Fraction of leached nitrogen from litter mineralisation that is organic form.

organic_proportion_litter_phosphorus_leaching

Fraction of leached phosphorus from litter mineralisation that is organic form.

phosphorus_deposition_rate

Rate at which phosphorus is deposited into the system [kg{P} m^-2 day^-1].

primary_phosphorus_breakdown_rate

Rate constant for breakdown of primary phosphorus to labile phosphorus [day^-1].

reference_cue_logit

Logit of carbon use efficiency of microbial community at reference temperature [unitless].

secondary_phosphorus_breakdown_rate

Rate constant for breakdown of secondary mineral to labile phosphorus [day^-1].

soil_microbe_water_potential_halt

The water potential at which soil microbial activity stops entirely [kPa].

soil_microbe_water_potential_optimum

The water potential at which soil microbial rates are maximised [kPa].

soil_protection_with_clay

Rate at which soil protection of carbon increases with clay content [unitless].

solubility_coefficient_ammonium

Solubility coefficient for ammonium in soil [unitless].

solubility_coefficient_labile_p

Solubility coefficient for labile inorganic phosphorus [unitless].

solubility_coefficient_lmwc

Solubility coefficient for low molecular weight organic carbon [unitless].

solubility_coefficient_nitrate

Solubility coefficient for nitrate in soil [unitless].

tectonic_uplift_rate_phosphorus

Rate at which tectonic uplift exposes new primary phosphorus [kg{P} m^-3 day^-1].

ammonia_volatilisation_rate_constant: float#

Rate constant for ammonia volatilisation from ammonium [day^-1]. Following Dickinson et al. (2002), linear kinetics are assumed. We also take our default value from there.

ammonium_deposition_rate: float#

Rate at which ammonium is deposited into the system [kg{N} m^-2 day^-1]. We are assuming that deposition rates won’t vary substantially over the area the simulation encompasses. Value taken from Vet et al. (2014).

ammonium_mineralisation_proportion: float#

Proportion of microbially mineralised nitrogen that takes the form of ammonium. [unitless]. The remainder gets mineralised as nitrate. Estimate taken from Fatichi et al. (2019), but the way it was obtained wasn’t made particularly clear.

base_soil_protection: float#

Basal change in saturation constants due to soil structure [unitless]. This value is multiplicative and is taken from Fatichi et al. (2019).

cue_reference_temp: float#

Reference temperature for carbon use efficiency [Celsius]. Default value taken from Qiao et al. (2019).

denitrification_infinite_temperature_factor: float#

Denitrification temperature factor at infinite temperature [unitless]. Value is obtained from Xu-Ri and Prentice (2008), by taking the exponential of the constant part of the expression. This value should not be varied independently of SoilConstants.denitrification_minimum_temperature and SoilConstants.denitrification_thermal_sensitivity!

denitrification_minimum_temperature: float#

Temperature at which denitrification stops entirely [Kelvin]. Value is obtained from Xu-Ri and Prentice (2008), and converted to Kelvin. The expression we are using does not function below this temperature, but this is not a major problem as it is a very low temperature. This value should not be varied independently of SoilConstants.denitrification_infinite_temperature_factor and SoilConstants.denitrification_thermal_sensitivity!

denitrification_rate_constant: float#

Rate constant for denitrification from nitrate [day^-1]. Following Dickinson et al. (2002), linear kinetics are assumed. We also take our default value from there.

denitrification_thermal_sensitivity: float#

Sensitivity of denitrification rate to changes in temperature [Kelvin]. Value is obtained from Xu-Ri and Prentice (2008). This value should not be varied independently of SoilConstants.denitrification_infinite_temperature_factor and SoilConstants.denitrification_minimum_temperature!

ectomycorrhiza_supply_fraction: float#

Fraction of plant carbon supply to mycorrhizal fungi that goes to ectomycorrhiza. [unitless]. The remainder goes to arbuscular mycorrhizal fungi.

free_living_N_fixation_q10_coefficent: float#

Q10 coefficient for free-living fixation of nitrogen [unitless]. Value taken from Lin et al. (2000).

free_living_N_fixation_reference_rate: float#

Rate at which free living microbes fix nitrogen (at the reference temperature). Units of [kg{N} m^-2 day^-1]. Value specific to tropical forests, and is taken from Lin et al. (2000) (with the units adjusted). Should not be changed independently from SoilConstants.free_living_N_fixation_reference_temp.

free_living_N_fixation_reference_temp: float#

Temperature reference rate of free-living nitrogen fixation was measured at [Kelvin]. Value taken from Lin et al. (2000). Should not be changed independently from SoilConstants.free_living_N_fixation_reference_rate.

highest_optimal_pH_microbes: float#

Soil pH below which microbial activity is not inhibited at all [unitless]. This value cannot be smaller than SoilConstants.lowest_optimal_pH_microbes or larger than SoilConstants.max_pH_microbes. The default value was obtained by averaging the fungi and bacteria specific values given in Orwin et al. (2011).

labile_phosphorus_sorption_rate: float#

Rate constant for sorption of labile phosphorus to secondary mineral phosphorus [day^-1]. Default value taken from Parton et al. (1988).

litter_leaching_fraction_carbon: float#

Fraction of carbon mineralisation from litter that occurs by leaching [unitless]. The remainder of the mineralisation consists of particulates. Value is an order of magnitude estimate taken from Fatichi et al. (2019).

litter_leaching_fraction_nitrogen: float#

Fraction of nitrogen mineralisation from litter that occurs by leaching. [unitless]. The remainder of the mineralisation consists of particulates. Value is an order of magnitude estimate taken from Fatichi et al. (2019).

litter_leaching_fraction_phosphorus: float#

Fraction of phosphorus mineralisation from litter that occurs by leaching. [unitless]. The remainder of the mineralisation consists of particulates. Value is an order of magnitude estimate taken from Fatichi et al. (2019).

lmwc_sorption_rate: float#

Rate constant for low molecular weight carbon sorption to minerals [day^-1]. The default value of this rate is not based on data. It was instead chosen so that the ratio of LMWC to MAOM would tend to 1/100, in the absence of microbes. This is another key target for sensitivity analysis.

logit_cue_with_temperature: float#

Change in the logit of carbon use efficiency with unit increase in temperature [Celsius^-1]. Parameter estimated from a beta-logit GLMM using the data from Qiao et al. (2019).

lowest_optimal_pH_microbes: float#

Soil pH above which microbial activity is not inhibited at all [unitless]. This value cannot be smaller than SoilConstants.min_pH_microbes or larger than SoilConstants.highest_optimal_pH_microbes. The default value was obtained by averaging the fungi and bacteria specific values given in Orwin et al. (2011).

maom_desorption_rate: float#

Rate constant for mineral associated organic matter desorption [day^-1]. The default value of this rate is not based on data. It was instead chosen to be small relative to the rate at which microbes breakdown LMWC. This is another key target for sensitivity analysis.

max_pH_microbes: float#

Soil pH above which microbial activity is completely inhibited [unitless]. This value cannot be smaller than SoilConstants.highest_optimal_pH_microbes. The default value was obtained by averaging the fungi and bacteria specific values given in Orwin et al. (2011).

microbial_water_response_curvature: float#

Curvature of function for response of soil microbial rates to water potential [unitless]. Value is taken from Moyano et al. (2013).

min_pH_microbes: float#

Soil pH below which microbial activity is completely inhibited [unitless]. This value cannot be larger than SoilConstants.lowest_optimal_pH_microbes. The default value was obtained by averaging the fungi and bacteria specific values given in Orwin et al. (2011).

necromass_decay_rate: float#

Rate at which microbial necromass decays to low molecular weight carbon [day^-1]. I have not been able to track down any data on this, so for now choosing a rate that corresponds to halving every three days. This parameter is a key target for tracking down data for and for sensitivity analysis.

necromass_sorption_rate: float#

Rate constant for necromass sorption to minerals [day^-1]. The default value was chosen to be three times the value of SoilConstants.necromass_decay_rate, this means that 75% of necromass becomes MAOM with the remainder becoming LMWC. Replacing this with a function that depends on environmental conditions is a post release goal.

nitrification_maximum_temperature: float#

Temperature at which our empirical nitrification model stops working [Kelvin]. This is well outside field values so this should be too much of a problem. Value taken from Xu-Ri and Prentice (2008). This value should not be varied independently of SoilConstants.nitrification_optimum_temperature and SoilConstants.nitrification_thermal_sensitivity!

nitrification_optimum_temperature: float#

Soil temperature at which nitrification is maximised [Kelvin]. Value taken from Xu-Ri and Prentice (2008). This value should not be varied independently of SoilConstants.nitrification_maximum_temperature and SoilConstants.nitrification_thermal_sensitivity!

nitrification_rate_constant: float#

Rate constant for nitrification from ammonium [day^-1]. Following Dickinson et al. (2002), linear kinetics are assumed. We also take our default value from there.

nitrification_thermal_sensitivity: int#

Sensitivity of nitrification rate to changes in temperature [unitless]. Value taken from Xu-Ri and Prentice (2008). This value should not be varied independently of SoilConstants.nitrification_optimum_temperature and SoilConstants.nitrification_maximum_temperature!

nitrogen_fixation_cost_equality_temperature: float#

Positive temperature at which nitrogen fixation cost is the same at zero Celsius. [Celsius]. Value is obtained from Brzostek et al. (2014).

nitrogen_fixation_cost_infinite_temp_offset: float#

Difference in nitrogen fixation cost between zero Celsius and infinite limit. Units of [kg{C} kg{N}^-1]. This limit of infinite temperature is not biologically meaningful and is instead just a way of characterising the form of the empirical function. A negative value means that the cost in the infinite temperature limit is higher than at zero Celsius. Value is obtained from Brzostek et al. (2014).

nitrogen_fixation_cost_thermal_sensitivity: float#

Sensitivity of symbiotic nitrogen fixation cost to changes in temperature [Celsius^-1]. Value is obtained from Brzostek et al. (2014).

nitrogen_fixation_cost_zero_celcius: float#

Cost (in carbon) that plants pay to their symbiotic partners at zero Celsius [kg{C} kg{N}^-1]. This is cost per unit of nitrogen received, and will be higher than the symbiotic partners actually spend to fix the nitrogen. Value is obtained from Brzostek et al. (2014).

nitrogen_fixer_supply_fraction: float#

Fraction of carbon supplied by plants to symbiotes that goes to nitrogen fixers. [unitless]. The remainder goes to mycorrhizal fungi.

organic_proportion_litter_nitrogen_leaching: float#

Fraction of leached nitrogen from litter mineralisation that is organic form. [unitless]. The remainder of the leaching consists of ammonium. Value is taken from Fatichi et al. (2019), where it is assumed that nitrogen leaches from litter solely in organic form.

organic_proportion_litter_phosphorus_leaching: float#

Fraction of leached phosphorus from litter mineralisation that is organic form. [unitless]. The remainder of the leaching consists of inorganic phosphorus. Value is taken from Fatichi et al. (2019), where it is assumed that phosphorus leaches from litter solely in organic form.

phosphorus_deposition_rate: float#

Rate at which phosphorus is deposited into the system [kg{P} m^-2 day^-1]. We are assuming that deposition rates won’t vary substantially over the area the simulation encompasses. Value taken from Mahowald et al. (2008).

primary_phosphorus_breakdown_rate: float#

Rate constant for breakdown of primary phosphorus to labile phosphorus [day^-1]. Default value taken from Parton et al. (1988).

reference_cue_logit: float#

Logit of carbon use efficiency of microbial community at reference temperature [unitless]. Parameter estimated from a beta-logit GLMM using the data from Qiao et al. (2019).

secondary_phosphorus_breakdown_rate: float#

Rate constant for breakdown of secondary mineral to labile phosphorus [day^-1]. Default value taken from Parton et al. (1988).

soil_microbe_water_potential_halt: float#

The water potential at which soil microbial activity stops entirely [kPa]. Value is taken from Moyano et al. (2013).

soil_microbe_water_potential_optimum: float#

The water potential at which soil microbial rates are maximised [kPa]. Value is taken from Moyano et al. (2013).

soil_protection_with_clay: float#

Rate at which soil protection of carbon increases with clay content [unitless]. This protection contributes multiplicatively to the effective saturation constant. The value of this constant is taken from Fatichi et al. (2019).

solubility_coefficient_ammonium: float#

Solubility coefficient for ammonium in soil [unitless]. Value taken from Fatichi et al. (2019), where it is estimated in quite a loose manner.

solubility_coefficient_labile_p: float#

Solubility coefficient for labile inorganic phosphorus [unitless]. Value taken from Fatichi et al. (2019), where it is estimated in quite a loose manner.

solubility_coefficient_lmwc: float#

Solubility coefficient for low molecular weight organic carbon [unitless]. Value taken from Fatichi et al. (2019), where it is estimated in quite a loose manner.

solubility_coefficient_nitrate: float#

Solubility coefficient for nitrate in soil [unitless]. Value taken from Fatichi et al. (2019), where it is estimated in quite a loose manner.

tectonic_uplift_rate_phosphorus: float#

Rate at which tectonic uplift exposes new primary phosphorus [kg{P} m^-3 day^-1]. This rate is essentially zero for decadal simulations. We have only included to give the flexibility to run longer term test scenarios.

class virtual_ecosystem.models.soil.model_config.SoilEnzymeClass(*, source: Literal['fungi', 'bacteria'] = 'bacteria', substrate: Literal['pom', 'maom'] = 'pom', maximum_rate: float = 60.0, half_saturation_constant: float = 70.0, activation_energy_rate: float = 37000, activation_energy_saturation: float = 30000, reference_temperature: float = 12.0, turnover_rate: float = 0.024, c_n_ratio: float = 5.2, c_p_ratio: float = 16)[source]#

Soil enzyme constants.

Attributes:

activation_energy_rate

Activation energy for enzyme rate with temperature [J Kelvin^-1].

activation_energy_saturation

Activation energy for enzyme saturation with temperature [J Kelvin^-1].

c_n_ratio

Ratio of carbon to nitrogen for the enzyme [unitless].

c_p_ratio

Ratio of carbon to phosphorus for the enzyme [unitless].

half_saturation_constant

The half saturation constant for the enzyme at the reference temperature.

maximum_rate

The maximum rate of the enzyme at the reference temperature [day^-1].

reference_temperature

The temperature that enzyme rate and saturation were measured at [Celsius].

source

The higher microbial group which produces the enzyme.

substrate

The substrate which the enzyme acts upon.

turnover_rate

The turnover rate of the enzyme [day^-1].

activation_energy_rate: float#

Activation energy for enzyme rate with temperature [J Kelvin^-1].

activation_energy_saturation: float#

Activation energy for enzyme saturation with temperature [J Kelvin^-1].

c_n_ratio: float#

Ratio of carbon to nitrogen for the enzyme [unitless].

c_p_ratio: float#

Ratio of carbon to phosphorus for the enzyme [unitless].

half_saturation_constant: float#

The half saturation constant for the enzyme at the reference temperature. Units of [kg{C} m^-3].

maximum_rate: float#

The maximum rate of the enzyme at the reference temperature [day^-1].

reference_temperature: float#

The temperature that enzyme rate and saturation were measured at [Celsius].

source: HIGHER_TAXONOMIC_GROUPS#

The higher microbial group which produces the enzyme.

substrate: SUBSTRATES#

The substrate which the enzyme acts upon.

turnover_rate: float#

The turnover rate of the enzyme [day^-1].

class virtual_ecosystem.models.soil.model_config.SoilMicrobialGroup(*, name: Literal['saprotrophic_fungi', 'ectomycorrhiza', 'arbuscular_mycorrhiza', 'bacteria'] = 'bacteria', taxonomic_group: Literal['fungi', 'bacteria'] = 'bacteria', max_uptake_rate_labile_C: float = 0.04, activation_energy_uptake_rate: float = 47000, half_sat_labile_C_uptake: float = 0.364, activation_energy_uptake_saturation: float = 30000, max_uptake_rate_ammonium: float = 0.005, half_sat_ammonium_uptake: float = 0.02275, max_uptake_rate_nitrate: float = 0.0005, half_sat_nitrate_uptake: float = 0.02275, max_uptake_rate_labile_p: float = 0.0025, half_sat_labile_p_uptake: float = 0.02275, turnover_rate: float = 0.005, activation_energy_turnover: float = 20000, reference_temperature: float = 12.0, c_n_ratio: float = 5.2, c_p_ratio: float = 16, enzyme_production: dict[str, float] = {'maom': 0.005, 'pom': 0.005}, reproductive_allocation: Annotated[float, Ge(ge=0), Le(le=1)] = 0.0, symbiote_nitrogen_uptake_fraction: Annotated[float, Ge(ge=0), Le(le=1)] = 0.0, symbiote_phosphorus_uptake_fraction: Annotated[float, Ge(ge=0), Le(le=1)] = 0.0)[source]#

Microbial functional group definitions.

Attributes:

activation_energy_turnover

Activation energy for microbial maintenance turnover rate [J Kelvin^-1].

activation_energy_uptake_rate

Activation energy for nutrient uptake [J Kelvin^-1].

activation_energy_uptake_saturation

Activation energy for nutrient uptake saturation constants [J Kelvin^-1].

c_n_ratio

Ratio of carbon to nitrogen in biomass [unitless].

c_p_ratio

Ratio of carbon to phosphorus in biomass [unitless].

enzyme_production

Details of the enzymes produced by the microbial group.

half_sat_ammonium_uptake

Half saturation constant for uptake of ammonium [kg{N} m^-3].

half_sat_labile_C_uptake

Half saturation constant for uptake of labile carbon (LMWC) [kg{C} m^-3].

half_sat_labile_p_uptake

Half saturation constant for uptake of labile inorganic phosphorus [kg{P} m^-3].

half_sat_nitrate_uptake

Half saturation constant for uptake of nitrate [kg{N} m^-3].

max_uptake_rate_ammonium

Maximum possible rate for ammonium uptake [day^-1].

max_uptake_rate_labile_C

Maximum rate at the reference temperature of labile carbon uptake [day^-1].

max_uptake_rate_labile_p

Maximum possible rate for labile inorganic phosphorus uptake [day^-1].

max_uptake_rate_nitrate

Maximum possible rate for nitrate uptake [day^-1].

name

The name of the microbial group functional type.

reference_temperature

The temperature that turnover and uptake rates were measured at [Celsius].

reproductive_allocation

Reproductive allocation as fraction of (gross) cellular biomass growth [unitless] Only fungi generate separate reproductive bodies, so this value must be set to zero for bacterial functional groups.

symbiote_nitrogen_uptake_fraction

Fraction of nitrogen uptake that is supplied to symbiotic (plant) partners.

symbiote_phosphorus_uptake_fraction

Fraction of nitrogen uptake that is supplied to symbiotic (plant) partners.

taxonomic_group

The high level taxonomic group that the microbial group belongs to.

turnover_rate

Microbial maintenance turnover rate at reference temperature [day^-1].

activation_energy_turnover: float#

Activation energy for microbial maintenance turnover rate [J Kelvin^-1].

activation_energy_uptake_rate: float#

Activation energy for nutrient uptake [J Kelvin^-1].

activation_energy_uptake_saturation: float#

Activation energy for nutrient uptake saturation constants [J Kelvin^-1].

c_n_ratio: float#

Ratio of carbon to nitrogen in biomass [unitless].

c_p_ratio: float#

Ratio of carbon to phosphorus in biomass [unitless].

enzyme_production: dict[str, float]#

Details of the enzymes produced by the microbial group. The keys are the substrates for which enzymes are produced, and the values are the allocation to enzyme production. This allocation is expressed as a fraction of the (gross) cellular biomass growth.

half_sat_ammonium_uptake: float#

Half saturation constant for uptake of ammonium [kg{N} m^-3].

half_sat_labile_C_uptake: float#

Half saturation constant for uptake of labile carbon (LMWC) [kg{C} m^-3].

half_sat_labile_p_uptake: float#

Half saturation constant for uptake of labile inorganic phosphorus [kg{P} m^-3].

half_sat_nitrate_uptake: float#

Half saturation constant for uptake of nitrate [kg{N} m^-3].

max_uptake_rate_ammonium: float#

Maximum possible rate for ammonium uptake [day^-1].

max_uptake_rate_labile_C: float#

Maximum rate at the reference temperature of labile carbon uptake [day^-1].

max_uptake_rate_labile_p: float#

Maximum possible rate for labile inorganic phosphorus uptake [day^-1].

max_uptake_rate_nitrate: float#

Maximum possible rate for nitrate uptake [day^-1].

name: REQUIRED_MICROBIAL_GROUPS#

The name of the microbial group functional type.

reference_temperature: float#

The temperature that turnover and uptake rates were measured at [Celsius].

reproductive_allocation: float#

Reproductive allocation as fraction of (gross) cellular biomass growth [unitless] Only fungi generate separate reproductive bodies, so this value must be set to zero for bacterial functional groups. Providing a non-zero value for a bacterial functional group will prevent the soil model from configuring.

symbiote_nitrogen_uptake_fraction: float#

Fraction of nitrogen uptake that is supplied to symbiotic (plant) partners. [unitless]. This should only have a non-zero value for mycorrhizal fungi.

symbiote_phosphorus_uptake_fraction: float#

Fraction of nitrogen uptake that is supplied to symbiotic (plant) partners. [unitless]. This should only have a non-zero value for mycorrhizal fungi.

taxonomic_group: HIGHER_TAXONOMIC_GROUPS#

The high level taxonomic group that the microbial group belongs to.

turnover_rate: float#

Microbial maintenance turnover rate at reference temperature [day^-1].