Object Type: nernst Description: Calculates the Nernst potential for the given ionic concentrations and temperature. Author: M. Wilson, Caltech (3/89) ----------------------------------------------------------------------------ELEMENT PARAMETERS DataStructure: nernst_type Size: 96 bytes Fields: E T valency scale Cin Cout constant [in src/device/dev_struct.h] equilibrium (Nernst) potential temperature in degrees Celsius ionic valency z voltage scale factor internal ionic concentration external ionic concentration scale*(R/zF)*(T + 273.15) This is set by the element, and should not be set by the user. ----------------------------------------------------------------------------SIMULATION PARAMETERS Function: Nernst Classes: device channel Actions: PROCESS Messages: [in src/device/nernst.c] RESET CHECK sets the fields from incoming messages and calculates constant and E. similar to a single PROCESS step. checks for valid messages and parameters. CIN Cin COUT Cout TEMP T sets the Cin field. sets the Cout field. sets the T field, and calculates constant. ----------------------------------------------------------------------------Notes: A nernst element calculates E = constant * ln(Cout/Cin) = scale*(R/zF)*(T + 273.15)*ln(Cout/Cin), where R is the universal gas constant (1.9872 cal/mol deg) and F is Faraday's constant (23061 cal/volt mol). Note that the temperature in degrees Celsius is internally converted to degrees Kelvin. A scale factor of 1 gives E in volts, and a scale factor of 1e3 gives E in millivolts. A nernst element is usually used with a channel and a Ca_concen element to calculate the channel equilibrium potential (Ek) from the internal ionic concentration in a shell near the compartment surface. The equilibrium potential is sent from the nernst element to the channel with an EK message, and the nernst element receives the concentration from the Ca_concen element with a Cin message. The Ca_concen element calculates this concentration from ionic currents delivered with an I_k message. It is also possible to perform a "one-time" calculation of E with fixed values of the ionic concentrations by setting these fields instead of setting up messages, and performing a reset. If this is done, the nernst element should be disabled to avoid wasting time performing the PROCESS action. Example: // assume that a tabchannel `Ca' has been set up create Ca_concen conc setfield conc \ B {5.2e-6/(area*shell_thick)} \ Ca_base 4.0e-5 \ tau 1e-4 \ thick {shell_thick} create nernst nernst setfield nernst \ Cout 4.0 \ // T 21 \ // valency 2 \ // scale 1 // addmsg Ca addmsg conc addmsg nernst See also: Ca_concen conc nernst Ca external Ca concentration of 4 mM. near room temperature Ca++ E in volts I_Ca Cin EK Ik Ca E