using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BaseCellSimulation.Enzyms.Membrane { /// /// Na+/Ca2+ Exchanger (3 Na⁺ in / 1 Ca²⁺ out) /// Einfaches Michaelis-Menten-basiertes Modell mit Gradienten /// public class NCX : MembranEnzyme { public double NaStoich = 3.0; // Na⁺ pro Ca²⁺ public double CaStoich = 1.0; /// /// Berechnet die Transport-Rate abhängig von zellinternen und externen Ionenkonzentrationen /// public override void ComputeRate(double gradient, EnviromentState env) { // Michaelis-Menten-ähnliche Sättigung rate = Vmax * gradient / (Km + Math.Abs(gradient)); } /// /// Wendet den Transport auf die Zellressourcen an /// 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); } } }