/* * The Polynomial Model * * Model Status * * This is the original unchecked version of the model imported * from the previous CellML model repository, 24-Jan-2006. * * Model Structure * * Often it is not necessary to model the ionic currents of a cell * with the accuracy and complexity inherent in the biophysically * based models. With a view to investigating phenomena on a larger * spatial and temporal scale, several ionic current models have * been developed that do not seek to model subcellular processes * but only to provide an action potential at a minimal computational * cost. * * The simplest of these models is a polynomial model that just * uses one variable. It was developed by Hunter, McNaughton and * Noble in 1975 and it is commonly used to track cellular depolarisation. * However, it does not attempt to model repolarisation. The lowest * order polynomial model is the cubic model which can be extended * to use a higher order polynomial. As there is only a single * variable, the model is very fast to calculate and therefore * it may be used on large geometries. * * The complete original paper reference is cited below: * * Analytical models of propagation in excitable cells, Hunter, * P.J., McNaughton, P.A. and Noble, D., 1975, Prog. Biophys. molec. * Biol., 30, 99-144. PubMed ID: 792954 * * The raw CellML description of the simplified cardiac myocyte * models can be downloaded in various formats as described in * . For an example of a more complete documentation for an electrophysiological * model, see The Hodgkin-Huxley Squid Axon Model, 1952. */ import nsrunit; // Warning: unit conversion turned off due to unit errors in 2 equation(s) unit conversion off; unit mV=.001 kilogram^1*meter^2*second^(-3)*ampere^(-1); unit uA_per_mmsq=1 dimensionless; unit uF_per_mmsq=1 dimensionless; unit mS_per_mmsq=1 dimensionless; unit ms=.001 second^1; //Warning: unit uFpmmsq unknown; assuming it is a fundamental unit. unit uFpmmsq = fundamental; //Warning: unit mSpmmsq unknown; assuming it is a fundamental unit. unit mSpmmsq = fundamental; //Warning: unit uApmmsq unknown; assuming it is a fundamental unit. unit uApmmsq = fundamental; math main { //Warning: the following variables were set 'extern' or given // an initial value of '0' because the model would otherwise be // underdetermined: interface.Cm, Vm_rest, Vm_plateau, Vm_threshold, // Vm_initial, membrane_conductance, Istim, current.Cm realDomain t ms; t.min=0; extern t.max; extern t.delta; extern real interface.Cm uFpmmsq; extern real Vm_rest mV; extern real Vm_plateau mV; extern real Vm_threshold mV; extern real Vm_initial mV; extern real membrane_conductance mSpmmsq; extern real Istim uApmmsq; real I(t) uApmmsq; extern real current.Cm uFpmmsq; real plateau mV; real threshold mV; real phi(t) mV; real Vm(t) mV; when(t=t.min) Vm=Vm_initial; // // Vm:t=((Istim-I)/interface.Cm); // plateau=(Vm_plateau-Vm_rest); threshold=(Vm_threshold-Vm_rest); phi=(Vm-Vm_rest); I=(membrane_conductance*phi*(1-phi/threshold)*(1-phi/plateau)); }