using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BaseCellSimulation.Enzyms.Membrane { // ---------------------------------------------------------- // 3. PMCA – Ca²⁺-ATPase (Ca raus, ATP-abhängig) // ---------------------------------------------------------- public class PMCA : MembranEnzyme { public double ATPperCycle = 1.0; public override void ComputeRate(double caCyt, EnviromentState env) { // klassisch: Michaelis-Menten mit Ca²⁺-Abhängigkeit rate = Michaelis_Menten(caCyt, Vmax, Km); } public override void ApplyChanges(CellRessources res, double dt) { double flux = rate * dt; double atpNeeded = flux * ATPperCycle; if (res.Res.Energy.ATP < atpNeeded) flux *= res.Res.Energy.ATP / atpNeeded; res.Res.Ca.CytosolicCa -= flux; // Ca raus res.Env.Ca += flux; res.ConsumeATP(atpNeeded); } public override double CalculateGradient(CellRessources res) { return res.Res.Ca.CytosolicCa; // PMCA is not driven by a concentration gradient } } }