InitalCommit
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BaseCellSimulation.Enzyms.Membrane
|
||||
{
|
||||
/// <summary>
|
||||
/// Na+/Ca2+ Exchanger (3 Na⁺ in / 1 Ca²⁺ out)
|
||||
/// Einfaches Michaelis-Menten-basiertes Modell mit Gradienten
|
||||
/// </summary>
|
||||
public class NCX : MembranEnzyme
|
||||
{
|
||||
public double NaStoich = 3.0; // Na⁺ pro Ca²⁺
|
||||
public double CaStoich = 1.0;
|
||||
|
||||
/// <summary>
|
||||
/// Berechnet die Transport-Rate abhängig von zellinternen und externen Ionenkonzentrationen
|
||||
/// </summary>
|
||||
public override void ComputeRate(double gradient, EnviromentState env)
|
||||
{
|
||||
|
||||
// Michaelis-Menten-ähnliche Sättigung
|
||||
rate = Vmax * gradient / (Km + Math.Abs(gradient));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wendet den Transport auf die Zellressourcen an
|
||||
/// </summary>
|
||||
public override void ApplyChanges(CellRessources res, double dt)
|
||||
{
|
||||
double flux = rate * dt;
|
||||
|
||||
// Na+ in die Zelle
|
||||
res.Res.Ions.Na += NaStoich * flux;
|
||||
res.Env.Na -= NaStoich * flux;
|
||||
|
||||
// Ca2+ aus der Zelle
|
||||
res.Res.Ca.CytosolicCa -= CaStoich * flux;
|
||||
res.Env.Ca += CaStoich * flux;
|
||||
|
||||
}
|
||||
|
||||
public override double CalculateGradient(CellRessources res)
|
||||
{
|
||||
// Gradienten: innen - außen
|
||||
double naGradient = res.Res.Ions.Na - res.Env.Na; // mM
|
||||
double caGradient = res.Res.Ca.CytosolicCa - res.Env.Ca; // mM
|
||||
|
||||
// Richtung: positiv = Ca raus / Na rein
|
||||
return (naGradient / NaStoich) - (caGradient / CaStoich);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user