using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BaseCellSimulation.Enzyms
{
public abstract class Enzym
{
///
/// mM/S
///
public double Vmax { get; set; }
///
/// mM
///
public double Km { get; set; }
public ValueRange VmaxRange { get; protected set; }
public ValueRange KmRange { get; protected set; }
protected double rate;
protected void Michaelis_Menten(double ressource)
{
rate = Michaelis_Menten(ressource, Vmax, Km);
}
protected double Michaelis_Menten(double consumable,double vmax, double km)
{
return (vmax * consumable) / (km + consumable);
}
public abstract void ApplyChanges(CellRessources res, double dt);
}
public abstract class InternalEnzym : Enzym
{
public abstract void ComputeRate(Resources res);
}
public abstract class MembranEnzyme : Enzym
{
public abstract double CalculateGradient(CellRessources res);
public abstract void ComputeRate(double gradient, EnviromentState Env);
}
}