Phototrophic Mixotrophic Process Model (PM2)

class qsdsan.process_models.PM2(components=None, a_c=0.049, I_n=250, arr_a=18000000000.0, arr_e=6842, beta_1=2.9, beta_2=3.5, b_reactor=0.03, I_opt=300, k_gamma=1e-05, K_N=0.1, K_P=1.0, K_A=6.3, K_G=6.3, rho=1.186, K_STO=1.566, f_CH_max=0.819, f_LI_max=3.249, m_ATP=15.835, mu_max=1.969, q_CH=0.594, q_LI=0.91, Q_N_max=0.417, Q_N_min=0.082, Q_P_max=0.092, Q_P_min=0.0163, V_NH=0.254, V_NO=0.254, V_P=0.016, exponent=4, Y_ATP_PHO=55.073, Y_CH_PHO=0.754, Y_LI_PHO=0.901, Y_X_ALG_PHO=0.45, Y_ATP_HET_ACE=39.623, Y_CH_NR_HET_ACE=0.625, Y_CH_ND_HET_ACE=0.6, Y_LI_NR_HET_ACE=1.105, Y_LI_ND_HET_ACE=0.713, Y_X_ALG_HET_ACE=0.216, Y_ATP_HET_GLU=58.114, Y_CH_NR_HET_GLU=0.917, Y_CH_ND_HET_GLU=0.88, Y_LI_NR_HET_GLU=1.62, Y_LI_ND_HET_GLU=1.046, Y_X_ALG_HET_GLU=0.317, n_dark=0.7, path=None, **kwargs)
Parameters:
  • components (class:CompiledComponents, optional) – Components corresponding to each entry in the stoichiometry array, defaults to thermosteam.settings.chemicals.

  • a_c (float, optional) – PAR absorption coefficient on a TSS (total suspended solids) basis, in [m^2/g TSS]. The default is 0.049.

  • I_n (float, optional) – Maximum incident PAR irradiance (“irradiance at noon”), in [uE/m^2/s]. The default is 250.

  • arr_a (float, optional) – Arrhenius constant (A), in [unitless]. The default is 1.8 * 10**10.

  • arr_e (float, optional) – Arrhenius exponential constant (E/R), in [K]. The default is 6842.

  • beta_1 (float, optional) – Power coefficient for carbohydrate storage inhibition, in [unitless]. The default is 2.90.

  • beta_2 (float, optional) – Power coefficient for lipid storage inhibition, in [unitless]. The default is 3.50.

  • b_reactor (float, optional) – Thickness of reactor along light path, in [m]. The default is 0.03.

  • I_opt (float, optional) – Optimal irradiance, in [uE/m^2/s]. The default is 300.

  • k_gamma (float, optional) – Photoadaptation coefficient, in [unitless]. The default is 0.00001.

  • K_N (float, optional) – Nitrogen half-saturation constant, in [g N/m^3]. The default is 0.1.

  • K_P (float, optional) – Phosphorus half-saturation constant, in [g P/m^3]. The default is 1.0.

  • K_A (float, optional) – Organic carbon half-saturation constant (acetate) (Wagner, 2016), in [g COD/m^3]. The default is 6.3.

  • K_G (float, optional) – Organic carbon half-saturation constant (glucose); assumes K_A = K_G, in [g COD/m^3]. The default is 6.3.

  • rho (float, optional) – Carbohydrate relative preference factor (calibrated in Guest et al., 2013), in [unitless]. The default is 1.186.

  • K_STO (float, optional) – Half-saturation constant for stored organic carbon (calibrated in Guest et al., 2013), in [g COD/g COD]. The default is 1.566.

  • f_CH_max (float, optional) – Maximum achievable ratio of stored carbohydrates to functional cells, in [g COD/g COD]. The default is 0.819.

  • f_LI_max (float, optional) – Maximum achievable ratio of stored lipids to functional cells, in [g COD/g COD]. The default is 3.249.

  • m_ATP (float, optional) – Specific maintenance rate, in [g ATP/g COD/d]. The default is 15.835.

  • mu_max (float, optional) – Maximum specific growth rate, in [d^(-1)]. The default is 1.969.

  • q_CH (float, optional) – Maximum specific carbohydrate storage rate, in [g COD/g COD/d]. The default is 0.594.

  • q_LI (float, optional) – Maximum specific lipid storage rate, in [g COD/g COD/d]. The default is 0.910.

  • Q_N_max (float, optional) – Maximum nitrogen quota, in [g N/g COD]. The default is 0.417.

  • Q_N_min (float, optional) – Nitrogen subsistence quota, in [g N/g COD]. The default is 0.082.

  • Q_P_max (float, optional) – Maximum phosphorus quota, in [g P/g COD]. The default is 0.092.

  • Q_P_min (float, optional) – Phosphorus subsistence quota; assumes N:P ratio of 5:1, in [g P/g COD]. The default is 0.0163.

  • V_NH (float, optional) – Maximum specific ammonium uptake rate (calibrated in Guest et al., 2013), in [g N/g COD/d]. The default is 0.254.

  • V_NO (float, optional) – Maximum specific nitrate uptake rate (calibrated in Guest et al., 2013), in [g N/g COD/d]. The default is 0.254.

  • V_P (float, optional) – Maximum specific phosphorus uptake rate (calibrated in Guest et al., 2013), in [g P/g COD/d]. The default is 0.016.

  • exponent (float, optional) – Exponent to allow for more rapid transitions from growth to storage (see Guest et al., 2013), in [unitless] The default is 4.

  • Y_ATP_PHO (float, optional) – Yield of ATP on CO2 fixed to G3P, in [g ATP/g CO2]. The default is 55.073.

  • Y_CH_PHO (float, optional) – Yield of storage carbohydrate (as polyglucose, PG) on CO2 fixed to G3P, in [g COD/g CO2]. The default is 0.754.

  • Y_LI_PHO (float, optional) – Yield of storage lipids (as triacylglycerol, TAG) on CO2 fixed to G3P, in [g COD/g CO2]. The default is 0.901.

  • Y_X_ALG_PHO (float, optional) – Yield of carbon-accumulating phototrophic organisms on CO2 fixed to G3P, in [g COD/g CO2]. The default is 0.450.

  • Y_ATP_HET_ACE (float, optional) – Yield of ATP on acetate fixed to acetyl-CoA, in [g ATP/g COD]. The default is 39.623.

  • Y_CH_NR_HET_ACE (float, optional) – Yield of storage carbohydrates (as polyglucose, PG) on acetate fixed to acetyl-CoA under nutrient-replete condition, in [g COD/g COD]. The default is 0.625.

  • Y_CH_ND_HET_ACE (float, optional) – Yield of storage carbohydrates (as polyglucose, PG) on acetate fixed to acetyl-CoA under nutrient-deplete condition, in [g COD/g COD]. The default is 0.600.

  • Y_LI_NR_HET_ACE (float, optional) – Yield of storage lipids (as triacylglycerol, TAG) on acetate fixed to acetyl-CoA under nutrient-replete condition, in [g COD/g COD]. The default is 1.105.

  • Y_LI_ND_HET_ACE (float, optional) – Yield of storage lipids (as triacylglycerol, TAG) on acetate fixed to acetyl-CoA under nutrient-deplete condition, in [g COD/g COD]. The default is 0.713.

  • Y_X_ALG_HET_ACE (float, optional) – Yield of carbon-accumulating phototrophic organisms on acetate fixed to acetyl-CoA, in [g COD/g COD]. The default is 0.216.

  • Y_ATP_HET_GLU (float, optional) – Yield of ATP on glucose fixed to G6P, in [g ATP/g COD]. The default is 58.114.

  • Y_CH_NR_HET_GLU (float, optional) – Yield of storage carbohydrates (as polyglucose, PG) on glucose fixed to G6P under nutrient-replete condition, in [g COD/g COD]. The default is 0.917.

  • Y_CH_ND_HET_GLU (float, optional) – Yield of storage carbohydrates (as polyglucose, PG) on glucose fixed to G6P under nutrient-deplete condition, in [g COD/g COD]. The default is 0.880.

  • Y_LI_NR_HET_GLU (float, optional) – Yield of storage lipids (as triacylglycerol, TAG) on glucose fixed to G6P under nutrient-replete condition, in [g COD/g COD]. The default is 1.620.

  • Y_LI_ND_HET_GLU (float, optional) – Yield of storage lipids (as triacylglycerol, TAG) on glucose fixed to G6P under nutrient-deplete condition, in [g COD/g COD]. The default is 1.046.

  • Y_X_ALG_HET_GLU (float, optional) – Yield of carbon-accumulating phototrophic organisms on glucose fixed to G6P, in [g COD/g COD]. The default is 0.317.

  • n_dark (float, optional) – Dark growth reduction factor, in [unitless] The default is 0.7.

  • path (str, optional) – Alternative file path for the Petersen matrix. The default is None.

Examples

>>> from qsdsan import process_models as pc
>>> cmps = pc.create_pm2_cmps()
>>> pm2 = pc.PM2()
>>> pm2.show()
PM2([photoadaptation, ammonium_uptake, nitrate_uptake_pho, nitrate_uptake_ace, nitrate_uptake_glu, phosphorus_uptake,
     growth_pho, carbohydrate_storage_pho, lipid_storage_pho, carbohydrate_growth_pho, lipid_growth_pho,
     carbohydrate_maintenance_pho, lipid_maintenance_pho, endogenous_respiration_pho,
     growth_ace, carbohydrate_storage_ace, lipid_storage_ace, carbohydrate_growth_ace, lipid_growth_ace,
     carbohydrate_maintenance_ace, lipid_maintenance_ace, endogenous_respiration_ace,
     growth_glu, carbohydrate_storage_glu, lipid_storage_glu, carbohydrate_growth_glu, lipid_growth_glu,
     carbohydrate_maintenance_glu, lipid_maintenance_glu, endogenous_respiration_glu])
>>> # Evaluate the rate of reaction at initial condition
>>> import numpy as np
>>> init_cond = {
...     'X_CHL':2.81,
...     'X_ALG':561.57,
...     'X_PG':13.74,
...     'X_TAG':62.22,
...     'S_CO2':30.0,
...     'S_A':5.0,
...     'S_G':5.0,
...     'S_O2':20.36,
...     'S_NH':25,
...     'S_NO':9.30,
...     'S_P':0.383,
...     'X_N_ALG':3.62,
...     'X_P_ALG':12.60,
...     }
>>> state_arr = np.append(cmps.kwarray(init_cond), [1000, 298, 112.6])   # flowrate, temperature, & irradiance
>>> pm2.rate_function(state_arr)
array([  4.437, 142.045,   0.562,   0.562,   0.562,   2.48 , 304.319,
       193.505,   8.856,  24.737,  79.042,   2.093,   7.992,  67.419,
       186.095, 110.903,   5.076,  15.127,  32.669,   2.455,   9.375,
        45.795, 186.075, 110.903,   5.076,  15.126,  32.691,   2.456,
         9.378,  45.822])
>>> pm2.set_parameters(I_opt = 200) # Change optimal irradiance
>>> pm2.rate_function(state_arr)
array([  4.437, 142.045,   0.562,   0.562,   0.562,   2.48 , 299.409,
       209.95 ,   9.609,  34.175, 109.197,   2.093,   7.992,  67.419,
       171.898, 110.903,   5.076,  19.621,  42.373,   2.455,   9.375,
        45.795, 171.874, 110.903,   5.076,  19.618,  42.4  ,   2.456,
         9.378,  45.822])
set_parameters(**parameters)

Set values to stoichiometric and/or kinetic parameters.