Source code for openalea.cnwgrass.cnmetabolism.parameters

# -*- coding: latin-1 -*-

"""
    cnmetabolism.parameters
    ~~~~~~~~~~~~~~~~~~

    The module :mod:`cnmetabolism.parameters` defines the constant parameters in a population of plants.

"""

SECOND_TO_HOUR_RATE_CONVERSION = 3600


class PopulationParameters:
    """
    Internal parameters of populations.
    """
    def __init__(self):
        pass


#: The instance of class :class:`cnmetabolism.parameters.PopulationParameters` for current process
POPULATION_PARAMETERS = PopulationParameters()


class PlantParameters:
    """
    Internal parameters of plants.
    """
    def __init__(self):
        pass


#: The instance of class :class:`cnmetabolism.parameters.PlantParameters` for current process
PLANT_PARAMETERS = PlantParameters()


class AxisParameters:
    """
    Internal parameters of axes.
    """
    def __init__(self):
        self.ALPHA = 1                          #: Proportion of the structural mass containing the substrates


#: The instance of class :class:`cnmetabolism.parameters.AxisParameters` for current process
AXIS_PARAMETERS = AxisParameters()


class AxisInitCompartments:
    """
    Initial values for compartments of axis.
    """
    def __init__(self):
        self.SAM_temperature = 12           #: initial temperature of shoot apical meristem (°C)
        self.C_exuded = 0                 #: initial value of C exudates by the roots (:math:`\mu` mol C)
        self.sum_respi_shoot = 0            #: initial value of C respired by the shoot (except leaf and internode growth respiration) (:math:`\mu` mol C)
        self.sum_respi_roots = 1E-3         #: initial value of C respired by the roots (except root growth respiration) (:math:`\mu` mol C)
        self.nb_leaves = 11


#: The instance of class :class:`cnmetabolism.parameters.HiddenZoneInitCompartments` for current process
AXIS_INIT_COMPARTMENTS = AxisInitCompartments()


class EndospermParameters:
    """
    Internal parameters of seed endosperm.
    """
    def __init__(self):
        self.MOISTENING_RATE = 3.86E-6  #: Rate of seed moistening in usual agronomical conditions (s). todo: make this rate dependant on soil humidity/water potential
        self.K_STARCH = 3.E-9           #: Starch hydrolysis constant (µmol-1 s-1 at 20°C)
        self.STARCH_MIN = 0             #: Minimal starch content of the endosperm (µmol C)
        self.STARCH_MAX = 1305          #: Maximal starch content of the endosperm (µmol C)

        self.K_PROTEINS = 8.E-8         #: Protein hydrolysis constant (µmol-1 s-1 at 20°C)
        self.PROTEINS_MIN = 0           #: Maximal protein content of the endosperm (µmol C)
        self.PROTEINS_MAX = 60          #: Minimal protein content of the endosperm (µmol C)


#: The instance of class :class:`cnmetabolism.parameters.SeedParameters` for current process
ENDOSPERM_PARAMETERS = EndospermParameters()


class PhytomerParameters:
    """
    Internal parameters of phytomers.
    """
    def __init__(self):
        pass


#: The instance of class :class:`cnmetabolism.parameters.PhytomerParameters` for current process
PHYTOMER_PARAMETERS = PhytomerParameters()


class HiddenZoneParameters:
    """
    Internal parameters of hidden growing zones.
    """
    def __init__(self):
        self.ALPHA = 1                     #: Proportion of structural mass containing substrate
        self.BETA = 1                      #: Kind of volumetric mass density at power -2/3 ((g m-3)**(-2/3))
        self.SIGMA = 0.025                 #: Coefficient of surface diffusion. Used in Fick's law (g m-2 s-1).
        self.VMAX_SFRUCTAN_POT = 0.015     #: Potential maximal rate of fructan synthesis (:math:`\mu` mol C s-1 g-1 MS)
        self.VMAX_SFRUCTAN_RELATIVE = 10   #: Maximal rate of fructan synthesis in the division zone relative to the rate in mature tissues (:math:`\mu` mol C s-1 g-1 MS)
        self.K_SFRUCTAN = 5000.            #: Affinity coefficient of fructan synthesis (:math:`\mu` mol C g-1 MS)
        self.K_REGUL_SFRUCTAN = 0.001      #: Affinity coefficient of the regulation function of fructan synthesis (:math:`\mu` mol g-1 MS)
        self.N_REGUL_SFRUCTAN = 3.         #: Parameter of the regulation function of fructan synthesis (dimensionless)
        self.VMAX_DFRUCTAN = 0.07          #: Maximal rate of fructan degradation (:math:`\mu` mol C s-1 g-1 MS)
        self.K_DFRUCTAN = 100.             #: Affinity coefficient of fructan degradation (:math:`\mu` mol C g-1 MS)
        self.delta_Dproteins = 0.25e-6     #: Relative rate of proteins degradation (s-1)
        self.VMAX_SPROTEINS_DZ = 0.345     #: Maximal rate of protein synthesis in the division zone (:math:`\mu` mol N s-1 g-1 MS)
        self.VMAX_SPROTEINS_EMZ = 0.1125   #: Maximal rate of protein synthesis in the elongation and mature zones (:math:`\mu` mol N s-1 g-1 MS)
        self.K_SPROTEINS = 250             #: Affinity coefficient of protein synthesis (:math:`\mu` mol N g-1 MS)


#: The instance of class :class:`cnmetabolism.parameters.HiddenZoneParameters` for current process
HIDDEN_ZONE_PARAMETERS = HiddenZoneParameters()


class HiddenZoneInitCompartments:
    """
    Initial values for compartments of hidden zones.
    """
    def __init__(self):
        self.sucrose = 1E-3      #: initial value of sucrose (:math:`\mu` mol C)
        self.fructan = 0         #: initial value of fructan (:math:`\mu` mol C)
        self.amino_acids = 1E-3  #: initial value of amino_acids (:math:`\mu` mol N)
        self.proteins = 0        #: initial value of proteins (:math:`\mu` mol N)
        self.mstruct = 6.39E-08  #: initial value of mstruct (g)
        self.Nstruct = 2.06E-09  #: initial value of Nstruct (g)
        self.ratio_DZ = 1        #: initial value of ratio of Division Zone into the HiddenZone


#: The instance of class :class:`cnmetabolism.parameters.HiddenZoneInitCompartments` for current process
HIDDEN_ZONE_INIT_COMPARTMENTS = HiddenZoneInitCompartments()


class PhloemParameters:
    """
    Internal parameters of phloem.
    """
    def __init__(self):
        self.ALPHA = 1  #: Proportion of structural mass containing substrate


#: The instance of class :class:`cnmetabolism.parameters.PhloemParameters` for current process
PHLOEM_PARAMETERS = PhloemParameters()


class PhloemInitCompartments:
    """
    Initial values for compartments of phloem.
    """
    def __init__(self):
        self.sucrose = 500       #: initial value of sucrose (:math:`\mu` mol C)
        self.amino_acids = 100   #: initial value of amino_acids (:math:`\mu` mol N)


#: The instance of class :class:`cnmetabolism.parameters.PhloemInitCompartments` for current process
PHLOEM_INIT_COMPARTMENTS = PhloemInitCompartments()


class GrainsParameters:
    """
    Internal parameters of grains.
    """
    def __init__(self):
        self.ALPHA = 1                                   #: Proportion of structural mass containing substrate

        # Structure parameters
        self.VMAX_RGR = 1.5e-06                          #: Maximal value of the Relative Growth Rate of grain structure (s-1 at 20°C)
        self.K_RGR = 300                                 #: Affinity coefficient of the Relative Growth Rate of grain structure (:math:`\mu` mol C)
        self.Arrhenius_ref = 1.7399e-11                  #:

        # Starch parameters
        self.VMAX_STARCH = 0.35                          #: Maximal rate of grain filling of starch (:math:`\mu` mol C s-1 at 20°C g-1 MS)
        self.K_STARCH = 400                              #: Affinity coefficient of grain filling of starch (:math:`\mu` mol C g-1 MS)

        self.FILLING_INIT = 360 * 3600                   #: Time (s at 20°C) at which phloem loading switch from grain structure to accumulation of starch
        self.FILLING_END = 900 * 3600                    #: Time (s at 20°C) at which grains filling stops. (Bertheloot et al., 2011)


#: The instance of class :class:`cnmetabolism.parameters.GrainsParameters` for current process
GRAINS_PARAMETERS = GrainsParameters()


class GrainsInitCompartments:
    """
    Initial values for compartments of grains.
    """
    def __init__(self):
        self.age_from_flowering = 0  #: initial value of age_from_flowering (s)
        self.starch = 0              #: initial value of starch (:math:`\mu` mol C)
        self.structure = 1           #: initial value of structure (:math:`\mu` mol C)
        self.proteins = 0            #: initial value of proteins (:math:`\mu` mol N)


#: The instance of class :class:`cnmetabolism.parameters.GrainsInitCompartments` for current process
GRAINS_INIT_COMPARTMENTS = GrainsInitCompartments()


class RootsParameters:
    """
    Internal parameters of roots.
    """
    def __init__(self):

        self.ALPHA = 1                       #: Proportion of structural mass containing substrate
        self.SIGMA_SUCROSE_MIN = 1e-7        #: Minimal conductivity of the roots-phloem pathway (g2 :math:`\mu` mol-1 m-2 s-1) ; used after the total number of leaves has been emitted by the SAM
        self.SIGMA_SUCROSE_MAX = 3e-6        #: Conductivity of the roots-phloem pathway (g2 :math:`\mu` mol-1 m-2 s-1) ; used before the total number of leaves has been emitted by the SAM
        self.SIGMA_SUCROSE_K = 6             #: Used to calculate the conductivity of the root-phloem pathway according to the number of leaves emitted by the SAM (leaf)
        self.SIGMA_SUCROSE_N = 9             #: Used to calculate the conductivity of the root-phloem pathway according to the number of leaves emitted by the SAM (dimensionless)
        self.SIGMA_AMINO_ACIDS = 1e-8        #: Conductivity of the roots-phloem pathway for amino acids (g2 :math:`\mu` mol-1 m-2 s-1)
        self.BETA = 1                        #: Kind of volumetric mass density at power -2/3 ((g m-3)**(-2/3))

        # Regulation function by C in roots of nitrate uptake
        self.K_C = 4000                      #: Affinity coefficient for the regulation function by root C (:math:`\mu` mol C sucrose g-1 MS)
        self.RELATIVE_VMAX_N_UPTAKE = 1

        # Regulation function by SRWC of nitrate uptake (used if hydraulics option is True)
        self.SRWC_crit = 45                 #: Critical soil relative water content threshold at which nitrate uptake is reduced by 50% (%)
        self.n = -3.5                       #: Shape parameter (-)
        self.m = 0.9                        #: Shape parameter (-)

        # Nitrate uptake
        self.NET_INFLUX_UPTAKE_RATIO = 0.6   #: ratio (net uptake : nitrate influx)
        self.MIN_INFLUX_FOR_UPTAKE = 3.02E-03  #: Minimum influx rate below which no net absorption happens (:math:`\mu` mol C sucrose g-1 mstruct s-1)
        self.A_VMAX_HATS = -0.00004          #: Parameter for estimating the maximal rate of nitrates uptake at saturating soil N concentration;HATS (:math:`\mu` mol g-1 s-1)
        self.B_VMAX_HATS = 0.0549            #: Parameter for estimating the maximal rate of nitrates uptake at saturating soil N concentration;HATS (g :math:`\mu` mol-1)
        self.A_K_HATS = -85.324              #: Parameter for estimating the affinity coefficient of nitrates uptake at saturating soil N concentration;HATS (:math:`\mu` mol m-3)
        self.B_K_HATS = 124476               #: Parameter for estimating the affinity coefficient of nitrates uptake at saturating soil N concentration;HATS (g :math:`\mu` mol-1)
        self.A_LATS = -1.98E-12              #: Parameter for estimating the rate of nitrates uptake at low soil N concentration; LATS (m3 g-1 s-1)
        self.B_LATS = 2.93E-09               #: Parameter for estimating the rate of nitrates uptake at low soil N concentration; LATS (g :math:`\mu` mol-1)

        # Nitrate export
        self.K_NITRATE_EXPORT = 5E-3         #: Relative rate of nitrate export from roots (s-1)

        # Amino acids
        self.VMAX_AMINO_ACIDS = 0.001        #: Maximal rate of amino acid synthesis (:math:`\mu` mol N s-1 g-1 MS)
        self.K_AMINO_ACIDS_NITRATES = 3      #: Affinity coefficient of amino acid synthesis from nitrates (:math:`\mu` mol N g-1 MS)
        self.K_AMINO_ACIDS_SUCROSE = 350     #: Affinity coefficient of amino acid synthesis from sucrose (:math:`\mu` mol C g-1 MS)
        self.K_AMINO_ACIDS_EXPORT = 0.045   #: Relative rate of amino acids export from roots (s-1)

        # Exudation
        self.C_EXUDATION = 0.20               #: Proportion of C exuded from roots over C sucrose unloaded (Keith et al., 1986)
        self.N_EXUDATION_MAX = 0.2            #: Parameter used to limit the rate of N exudation (dimensionless)

        # Cytokinins
        self.VMAX_S_CYTOKININS = 0.0009       #: Maximal rate of cytokinins synthesis (UA g-1 mstruct s-1)
        self.K_NITRATES_CYTOKININS = 50       #: Affinity coefficient of cytokinins synthesis for nitrates (:math:`\mu` mol N nitrates g-1 mstruct)
        self.K_AMINO_ACIDS_CYTOKININS = 12
        self.K_SUCROSE_CYTOKININS = 1200      #: Affinity coefficient of cytokinins synthesis for sucrose (:math:`\mu` mol C sucrose g-1 mstruct)
        self.N_SUC_CYTOKININS = 3             #: A parameter for cytokinins synthesis (dimensionless)
        self.N_NIT_CYTOKININS = 1             #: A parameter for cytokinins synthesis (dimensionless)
        self.N_AMINO_ACIDS_CYTOKININS = 1
        self.K_CYTOKININS_EXPORT = 1.67E-3    #: Relative rate of cytokinins export from roots (s-1)
        self.ROOT_INIT_CONC_CYTOKININS = 200  #: Root concentration in cytokinins in the seed


#: The instance of class :class:`cnmetabolism.parameters.RootsParameters` for current process
ROOTS_PARAMETERS = RootsParameters()


class RootsInitCompartments:
    """
    Initial values for compartments of roots.
    """
    def __init__(self):
        self.sucrose = 0       #: initial value of sucrose (:math:`\mu` mol C)
        self.nitrates = 0      #: initial value of nitrates (:math:`\mu` mol C)
        self.amino_acids = 0   #: initial value of amino_acids (:math:`\mu` mol N)
        self.cytokinins = 0    #: initial value of cytokinins (AU)
        self.mstruct = 0.15    #: initial value of mstruct (g)
        self.senesced_mstruct = 0  #: initial value of senesced_mstruct (g)
        self.Nstruct = 0.0045  #: initial value of Nstruct (g)


#: The instance of class :class:`cnmetabolism.parameters.RootsInitCompartments` for current process
ROOTS_INIT_COMPARTMENTS = RootsInitCompartments()


class PhotosyntheticOrganParameters:
    """
    Internal parameters of photosynthetic organs.
    """
    def __init__(self):
        # Sucrose
        self.VMAX_SUCROSE = 4                #: Maximal rate of sucrose synthesis (:math:`\mu` mol C s-1 g-1 MS)
        self.K_SUCROSE = 0.66                #: Affinity coefficient of sucrose synthesis (:math:`\mu` mol C g-1 MS)

        # Starch
        self.VMAX_STARCH = 8                 #: Maximal rate of starch synthesis (:math:`\mu` mol C s-1 g-1 MS)
        self.K_STARCH = 20                   #: Affinity coefficient of starch synthesis (:math:`\mu` mol C g-1 MS)
        self.DELTA_DSTARCH = 0.0004          #: Relative rate of starch degradation (s-1)

        # Fructans
        self.VMAX_SFRUCTAN_POT = 0.015       #: Potential maximal rate of fructan synthesis (:math:`\mu` mol C s-1 g-1 MS)
        self.K_SFRUCTAN = 5000               #: Affinity coefficient of fructan synthesis (:math:`\mu` mol C g-1 MS)
        self.K_REGUL_SFRUCTAN = 0.001        #: Affinity coefficient of the regulation function of fructan synthesis (:math:`\mu` mol g-1 MS)
        self.N_REGUL_SFRUCTAN = 3            #: Parameter of the regulation function of fructan synthesis (dimensionless)
        self.VMAX_DFRUCTAN = 0.07            #: Maximal rate of fructan degradation (:math:`\mu` mol C s-1 g-1 MS)
        self.K_DFRUCTAN = 100                #: Affinity coefficient of fructan degradation (:math:`\mu` mol C g-1 MS)

        # Loading sucrose and amino acids
        self.SIGMA_SUCROSE = 1e-08           #: Conductivity of an organ-phloem pathway (g2 :math:`\mu` mol-1 m-2 s-1) ; used to compute the sucrose loaded to the phloem
        self.SIGMA_AMINO_ACIDS = 1e-07       #: Conductivity of an organ-phloem pathway (g2 :math:`\mu` mol-1 m-2 s-1) ; used to compute the amino acids loaded to the phloem
        self.BETA = 1                        #: Kind of volumetric mass density at power -2/3 ((g m-3)**(-2/3))

        # Amino acids
        self.VMAX_AMINO_ACIDS = 4            #: Maximal rate of amino acid synthesis (:math:`\mu` mol N s-1 g-1 MS)
        self.K_AMINO_ACIDS_NITRATES = 3      #: Affinity coefficient of amino acid synthesis from nitrates (:math:`\mu` mol N g-1 MS)
        self.K_AMINO_ACIDS_TRIOSESP = 0.2    #: Affinity coefficient of amino acid synthesis from triosesP (:math:`\mu` mol C g-1 MS)

        # Proteins
        self.VMAX_SPROTEINS = 0.0045         #: Maximal rate of protein synthesis (:math:`\mu` mol N s-1 g-1 MS)
        self.K_SPROTEINS = 250               #: Affinity coefficient of protein synthesis (:math:`\mu` mol N g-1 MS)
        self.VMAX_DPROTEINS_CYTOK = 2.5E-6   #: Maximal regulation of protein degradation by cytokinins (:math:`\mu` mol g-1 mstruct s-1)
        self.K_DPROTEINS_CYTOK = 50          #: Affinity coefficient with cytokinins for protein degradation (UA g-1 mstruct)
        self.N_DPROTEINS = 2.1               #: A coefficient for the regulation of protein degradation by cytokines (dimensionless)
        self.VMAX_DPROTEINS = 8000           #: Maximal rate of protein degradation (:math:`\mu` mol g-1 mstruct s-1)
        self.K_DPROTEINS = 6000              #: Affinity coefficient for protein degradation (:math:`\mu` g-1 mstruct)

        # cytokinins
        self.DELTA_D_CYTOKININS = 1.5e-05    #: Relative rate of cytokinins degradation (s-1)
        self.ELEMENT_INIT_CONC_CYTOKININS = 200  #: Element concentration in cytokinins in the seed


#: The instance of class :class:`cnmetabolism.parameters.PhotosyntheticOrganParameters` for current process
PHOTOSYNTHETIC_ORGAN_PARAMETERS = PhotosyntheticOrganParameters()


class ChaffParameters(PhotosyntheticOrganParameters):
    """
    Internal parameters of chaffs.
    """
    def __init__(self):
        super(ChaffParameters, self).__init__()


#: The instance of class :class:`cnmetabolism.parameters.ChaffParameters` for current process
CHAFF_PARAMETERS = ChaffParameters()


class LaminaParameters(PhotosyntheticOrganParameters):
    """
    Internal parameters of laminae.
    """
    def __init__(self):
        super(LaminaParameters, self).__init__()


#: The instance of class :class:`cnmetabolism.parameters.LaminaParameters` for current process
LAMINA_PARAMETERS = LaminaParameters()


class InternodeParameters(PhotosyntheticOrganParameters):
    """
    Internal parameters of internodes.
    """
    def __init__(self):
        super(InternodeParameters, self).__init__()


#: The instance of class :class:`cnmetabolism.parameters.InternodeParameters` for current process
INTERNODE_PARAMETERS = InternodeParameters()


class PeduncleParameters(PhotosyntheticOrganParameters):
    """
    Internal parameters of peduncles.
    """
    def __init__(self):
        super(PeduncleParameters, self).__init__()


#: The instance of class :class:`cnmetabolism.parameters.PeduncleParameters` for current process
PEDUNCLE_PARAMETERS = PeduncleParameters()


class SheathParameters(PhotosyntheticOrganParameters):
    """
    Internal parameters of sheaths.
    """
    def __init__(self):
        super(SheathParameters, self).__init__()


#: The instance of class :class:`cnmetabolism.parameters.SheathParameters` for current process
SHEATH_PARAMETERS = SheathParameters()


class PhotosyntheticOrganElementParameters:
    """
    Internal parameters of photosynthetic organs elements.
    """
    def __init__(self):
        pass


#: The instance of class :class:`cnmetabolism.parameters.PhotosyntheticOrganElementParameters` for current process
PHOTOSYNTHETIC_ORGAN_ELEMENT_PARAMETERS = PhotosyntheticOrganElementParameters()


class PhotosyntheticOrganElementInitCompartments:
    """
    Initial values for compartments of photosynthetic organ elements.
    """
    def __init__(self):
        self.green_area = 1E-4   #: initial value of green_area (m2)
        self.mstruct = 5E-3      #: initial value of mstruct (g)
        self.senesced_mstruct = 0  #: initial value of senesced_mstruct (g)
        self.Nstruct = 1E-3      #: initial value of Nstruct (g)

        self.triosesP = 0        #: initial value of triosesP (:math:`\mu` mol C)
        self.starch = 0          #: initial value of starch (:math:`\mu` mol C)
        self.sucrose = 0         #: initial value of sucrose (:math:`\mu` mol C)
        self.fructan = 0         #: initial value of fructan (:math:`\mu` mol C)
        self.nitrates = 0        #: initial value of nitrates (:math:`\mu` mol N)
        self.amino_acids = 0     #: initial value of amino_acids (:math:`\mu` mol N)
        self.proteins = 0        #: initial value of proteins (:math:`\mu` mol N)
        self.cytokinins = 0      #: initial value of cytokinins (AU)

        self.is_growing = False  #: initial value of is_growing (Flag indicating if the element is growing or not (:class:`bool`)
        self.Tr = 0              #: initial value of Tr (Transpiration rate (mmol m-2 s-1)
        self.Ts = 12             #: initial value of Ts (Organ temperature)
        self.Ag = 0              #: initial value of Ag (Gross assimilation (:math:`\mu` mol m-2 s-1)


#: The instance of class :class:`cnmetabolism.parameters.PhotosyntheticOrganElementInitCompartments` for current process
PHOTOSYNTHETIC_ORGAN_ELEMENT_INIT_COMPARTMENTS = PhotosyntheticOrganElementInitCompartments()


class ChaffElementParameters(PhotosyntheticOrganElementParameters):
    """
    Internal parameters of chaffs elements.
    """
    def __init__(self):
        super(ChaffElementParameters, self).__init__()
        self.ALPHA = 1  #: Proportion of structural mass containing substrate


#: The instance of class :class:`cnmetabolism.parameters.ChaffElementParameters` for current process
CHAFF_ELEMENT_PARAMETERS = ChaffElementParameters()


class LaminaElementParameters(PhotosyntheticOrganElementParameters):
    """
    Internal parameters of laminae elements.
    """
    def __init__(self):
        super(LaminaElementParameters, self).__init__()
        self.ALPHA = 1  #: Proportion of structural mass containing substrate


#: The instance of class :class:`cnmetabolism.parameters.LaminaElementParameters` for current process
LAMINA_ELEMENT_PARAMETERS = LaminaElementParameters()


class InternodeElementParameters(PhotosyntheticOrganElementParameters):
    """
    Internal parameters of internodes elements.
    """
    def __init__(self):
        super(InternodeElementParameters, self).__init__()
        self.ALPHA = 1  #: Proportion of structural mass containing substrate


#: The instance of class :class:`cnmetabolism.parameters.InternodeElementParameters` for current process
INTERNODE_ELEMENT_PARAMETERS = InternodeElementParameters()


class PeduncleElementParameters(PhotosyntheticOrganElementParameters):
    """
    Internal parameters of peduncles elements.
    """
    def __init__(self):
        super(PeduncleElementParameters, self).__init__()
        self.ALPHA = 1  #: Proportion of structural mass containing substrate


#: The instance of class :class:`cnmetabolism.parameters.PeduncleElementParameters` for current process
PEDUNCLE_ELEMENT_PARAMETERS = PeduncleElementParameters()


class SheathElementParameters(PhotosyntheticOrganElementParameters):
    """
    Internal parameters of sheaths elements.
    """
    def __init__(self):
        super(SheathElementParameters, self).__init__()
        self.ALPHA = 1  #: Proportion of structural mass containing substrate


#: The instance of class :class:`cnmetabolism.parameters.SheathElementParameters` for current process
SHEATH_ELEMENT_PARAMETERS = SheathElementParameters()


class SoilParameters:
    """
    Internal parameters of soil.
    """
    def __init__(self):
        self.MINERALISATION_RATE = 2.05E-6  # Mineralisation rate (:math:`\mu` mol N nitrates m-3 s-1)


#: The instance of class :class:`cnmetabolism.parameters.SoilParameters` for current process
SOIL_PARAMETERS = SoilParameters()