51 lines
1.2 KiB
C#
51 lines
1.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace BaseCellSimulation.Enzyms
|
|
{
|
|
public abstract class Enzym
|
|
{
|
|
/// <summary>
|
|
/// mM/S
|
|
/// </summary>
|
|
public double Vmax { get; set; }
|
|
/// <summary>
|
|
/// mM
|
|
/// </summary>
|
|
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);
|
|
}
|
|
}
|