Source code for openalea.cnwgrass.growth.parameters

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

from __future__ import division  # use "//" to do integer division

"""
    growth.parameters
    ~~~~~~~~~~~~~~~~~~~~~~

    The module :mod:`growth.parameters` defines the constant parameters.

"""

C_MOLAR_MASS = 12                     #: Carbon molar mass (g mol-1)
N_MOLAR_MASS = 14                     #: Nitrogen molar mass (g mol-1)

CONVERSION_FACTOR_20_TO_12 = 0.45     #: modified_Arrhenius_equation(12)/modified_Arrhenius_equation(20)

HEXOSE_MOLAR_MASS_C_RATIO = 0.42        #: Contribution of C in hexose mass
PROTEINS_MOLAR_MASS_N_RATIO = 0.151     #: Mean contribution of N in protein mass (Penning De Vries 1989)
AMINO_ACIDS_MOLAR_MASS_N_RATIO = 0.135  #: Mean contribution of N in amino acids mass of the major amino acids of plants (Glu, Gln, Ser, Asp, Ala, Gly)

RATIO_C_MSTRUCT_ROOTS = 0.444        #: Mean contribution of carbon to root structural dry mass (g C g-1 Mstruct) : same as shoot
RATIO_N_MSTRUCT_ROOTS = 0.005        #: Mean contribution of nitrogen to root structural dry mass (g N g-1 Mstruct) : same as shoot
CONVERSION_MMOL_C_G_MSTRUCT_ROOTS = (1E-6 * C_MOLAR_MASS) / RATIO_C_MSTRUCT_ROOTS

MINERAL_LIVING_TISSUE = 0.05  #: Mineral content of the structural mass (g g-1 mstruct) (Thornley and Cannell, 2000)
MINERAL_SENESCED_TISSUE = 0.05/2  #: Mineral content of the structural mass of a senescent tissue (g g-1 mstruct) (Thornley and Cannell, 2000)


[docs] class Parameters: def __init__(self): # Shoot self.ALPHA = 0.106 # 1.537e-02 #: Parameter of the relation between leaf mass and leaf length (g m^(-BETA)) self.BETA = 1.28 #: Parameter of the relation between leaf mass and leaf length (dimensionless) self.RATIO_SUCROSE_MSTRUCT = 0.444 #: Mass of C (under carbohydrate form, g) in 1 g of mstruct : 0.384 from (Penning de Vries, Witlage and Kremer, 1978), 0.444 for cellulose (about 45% C in # senescent leaves self.RATIO_AMINO_ACIDS_MSTRUCT = 0.005 #: Mass of N (under amino acid/protein form, g) in 1 g of mstruct (Penning de Vries, Witlage and Kremer, 1978) self.AMINO_ACIDS_C_RATIO = 4.15 #: Mean number of mol of C in 1 mol of the major amino acids of plants (Glu, Gln, Ser, Asp, Ala, Gly) from (Penning de Vries, Witlage and Kremer, 1978) self.AMINO_ACIDS_N_RATIO = 1.25 #: Mean number of mol of N in 1 mol of the major amino acids of plants (Glu, Gln, Ser, Asp, Ala, Gly) from (Penning de Vries, Witlage and Kremer, 1978) self.RATIO_MSTRUCT_DM = 0.8 #: Ratio mstruct/dry matter (dimensionless) self.RATIO_ENCLOSED_LEAF_INTERNODE = 5 #: We use ratio sheath:lamina of the specific structural dry masses (from data of J. Bertheloot, 2004) self.INIT_CYTOKININS_EMERGED_TISSUE = 200 #: Initial concentration of cytokinins allocated in the mstruct of a newly emerged tissue (AU g-1) # Leaf Automate elongation self.te = 300 * 3600 * 24 / 12 #: end of leaf elongation in automate growth (s at 12°c); fitted from adapted data from Fournier 2005 self.FITTED_L0 = 0.01557936 #: Fitted value of leaf length at t=0 after rescaling the beta function with L0 (m); Fournier 2005 sur courbe corrigee # Internode Automate elongation self.FITTED_L0_IN = 1/59.0 #: Scaling factor of the internode in automate growth (dimensionless), fitted from Malvoisin 1984 II self.te_IN = 210 * 3600 * 24 / 12 #: end of internode elongation in automate growth (s at 12°c) ; fitted from Malvoisin 1984 II self.internode_rapid_growth_t = 288000 # Pseudo age at which the internode starts the rapid growth stage (s) # Roots self.conc_sucrose_offset = 240 #: sucrose concentration under which no root growth occurs (µmol of C g-1 mstruct) - same for leaf and internode growth, see morphogenesis self.VMAX_ROOTS_GROWTH_POSTFLO = 0.015 * CONVERSION_FACTOR_20_TO_12 #: Maximal rate of root structural dry matter growth (µmol C s-1 g-1 MS) post flo at 12°C self.VMAX_ROOTS_GROWTH_PREFLO = 0.0855 * CONVERSION_FACTOR_20_TO_12 #: Maximal rate of root structural dry matter growth (µmol C s-1 g-1 MS) pre flo at 12°C self.VMAX_ROOTS_GROWTH_SEMINALS = 0.95 #: Maximal rate of root structural dry matter growth used during seed emergence (µmol C s-1 g-1 MS). Deals with the transition from seminal to nodal roots. self.K_ROOTS_GROWTH_POSTFLO = 500 #: Affinity coefficient of root structural dry matter growth (µmol C g-1 MS) post flo self.K_ROOTS_GROWTH_PREFLO = 1250 #: Affinity coefficient of root structural dry matter growth (µmol C g-1 MS) pre flo self.N_ROOTS_GROWTH = 1.8
[docs] def Vmax_roots_growth(self, nb_leaves): K = 6 N = 9 return max(self.VMAX_ROOTS_GROWTH_PREFLO, ((self.VMAX_ROOTS_GROWTH_SEMINALS * K ** N) / (max(0, nb_leaves ** N) + K ** N)))
[docs] class ParametersHydraulics(Parameters): def __init__(self): super().__init__() self.te_IN = 331.7538 * 3600 * 24 / 12 #: end of internode elongation in automate growth; Ljutovac 2002, 250pl.m-2 self.K_ROOTS_GROWTH = 1250 #: Affinity coefficient of root structural dry matter growth (µmol C g-1 MS) post flo self.N_ROOTS_GROWTH = 1.8 self.water_potential_crit = -0.4 #: Critical xylem water potential at which root growth is reduced by 50% (Sharp et al., 2004) self.n = 3 #: Shape parameter of hydraulic regulation of root growth (-)
[docs] def parameters_factory(hydraulics=False): """ Factory for parameter instantiation according to the version of the model used :param bool hydraulics: if True the model will assume the coupling to the turgor-driven growth model :return: Instance of Parameters oo ParametersHydraulics """ if not hydraulics: return Parameters() else: return ParametersHydraulics()
[docs] class OrganInit: """ Initial values for organs """ def __init__(self): self.is_growing = True self.senesced_length_element = 0 #: m self.senesced_mstruct = 0 #: g self.green_area = 0 #: m2 self.sucrose = 0 #: µmol C self.amino_acids = 0 #: µmol N self.fructan = 0 #: µmol C self.proteins = 0 #: µmol N self.nitrates = 0 #: µmol N self.mstruct = 0 #: g self.Nstruct = 0 #: g self.Nresidual = 0 #: g self.cytokinins = 0 #: g self.conc_cytokinins = 200.0 #: AU / g mstruct # Not used