// Sodium Ion Channel
//
// Copyright 2006 John L Baker. All rights reserved.
//
// File: ionchan_na_rallpack.h
//
// Release: 1.0.0
// Author: John Baker
// Updated: 14 July 2006
//
// Description:
//
// This header file contains the classes used to implement
// the sodium (Na) channel definitions for the Rallpack benchmark.
// Only include this header once
#ifndef __IONCHAN_NA_RALLPACK_H_
#define __IONCHAN_NA_RALLPACK_H_
#include "bnsf.h"
using namespace std;
using namespace BNSF;
namespace RALLPACK {
// -------------------------------------------------
// Na Ion Channel Classes
// -------------------------------------------------
// m gate
class Na_m_gate : public VoltageDepTabGate {
public:
// Constructors and destructor
Na_m_gate() {}
virtual ~Na_m_gate() {}
// Alpha and beta functions for table loading
virtual Number alphaForTable(Number v);
virtual Number betaForTable(Number v);
// state vector label functions
virtual const char* componentName() {return "Na"; }
virtual const char** stateLabels() {
static const char* sl[] = { "m" }; return sl; }
protected:
virtual AlphaBetaEntry** pAlphaBetaTable() { return &_abTable; }
private:
static AlphaBetaEntry* _abTable;
};
// h gate
class Na_h_gate : public VoltageDepTabGate {
public:
// constructors and destructor
Na_h_gate() {}
virtual ~Na_h_gate() {}
virtual Number alphaForTable(Number v);
virtual Number betaForTable(Number v);
// state vector label functions
virtual const char* componentName() {return "Na"; }
virtual const char** stateLabels() {
static const char* sl[] = { "h" }; return sl; }
protected:
virtual AlphaBetaEntry** pAlphaBetaTable() { return &_abTable; }
private:
static AlphaBetaEntry* _abTable;
};
// Na channel
class Na_channel : public M3HIonChannel {
public:
// Constructors and destructor
Na_channel(Number gSpVal=0);
virtual ~Na_channel();
// Reversal potential for Na
inline Number Vrev() { return _Vrev; }
protected:
static const Number _Vrev;
};
};
#endif // #ifndef __IONCHAN_NA_RALLPACK_H_