11 #ifndef _COMPARTMENT_BASE_H
12 #define _COMPARTMENT_BASE_H
58 void setY0(
double value );
60 void setZ0(
double value );
62 void setX(
double value );
64 void setY(
double value );
66 void setZ(
double value );
137 void displace(
double dx,
double dy,
double dz );
141 double length,
double dia );
147 virtual void vSetVm(
const Eref& e,
double Vm ) = 0;
148 virtual double vGetVm(
const Eref& e )
const = 0;
149 virtual void vSetEm(
const Eref& e,
double Em ) = 0;
150 virtual double vGetEm(
const Eref& e )
const = 0;
151 virtual void vSetCm(
const Eref& e,
double Cm ) = 0;
152 virtual double vGetCm(
const Eref& e )
const = 0;
153 virtual void vSetRm(
const Eref& e,
double Rm ) = 0;
154 virtual double vGetRm(
const Eref& e )
const = 0;
155 virtual void vSetRa(
const Eref& e,
double Ra ) = 0;
156 virtual double vGetRa(
const Eref& e )
const = 0;
157 virtual double vGetIm(
const Eref& e )
const = 0;
222 virtual void vRandInject(
const Eref& e,
double prob,
double current) = 0;
275 #endif // _COMPARTMENT_BASE_H
virtual void vInitProc(const Eref &e, ProcPtr p)=0
virtual void vHandleAxial(double Vm)=0
double getVm(const Eref &e) const
void setVm(const Eref &e, double Vm)
void process(const Eref &e, ProcPtr p)
double getInject(const Eref &e) const
double getEm(const Eref &e) const
virtual void vRandInject(const Eref &e, double prob, double current)=0
virtual void vSetInject(const Eref &e, double Inject)=0
void handleRaxial(double Ra, double Vm)
double getDiameter() const
void setLength(double length)
virtual void vSetCm(const Eref &e, double Cm)=0
virtual double vGetRm(const Eref &e) const =0
virtual double vGetInject(const Eref &e) const =0
virtual void vSetEm(const Eref &e, double Em)=0
virtual double vGetRa(const Eref &e) const =0
virtual void vSetVm(const Eref &e, double Vm)=0
bool rangeWarning(const string &field, double value)
void randInject(const Eref &e, double prob, double current)
virtual void vSetRm(const Eref &e, double Rm)=0
virtual double vGetCm(const Eref &e) const =0
virtual void vProcess(const Eref &e, ProcPtr p)=0
double getCm(const Eref &e) const
void setInitVm(const Eref &e, double initVm)
void setEm(const Eref &e, double Em)
virtual double vGetVm(const Eref &e) const =0
void setGeomAndElec(const Eref &e, double length, double dia)
Scales electrical values along with setting length, dia.
virtual ~CompartmentBase()
double getInitVm(const Eref &e) const
void handleChannel(const Eref &e, double Gk, double Ek)
void initReinit(const Eref &e, ProcPtr p)
virtual void vSetRa(const Eref &e, double Ra)=0
void initProc(const Eref &e, ProcPtr p)
void setCm(const Eref &e, double Cm)
double getIm(const Eref &e) const
virtual double vGetEm(const Eref &e) const =0
virtual void vHandleChannel(const Eref &e, double Gk, double Ek)=0
void displace(double dx, double dy, double dz)
Displaces compartment by specified distance vector.
void setInject(const Eref &e, double Inject)
virtual void vReinit(const Eref &e, ProcPtr p)=0
virtual double vGetIm(const Eref &e) const =0
void handleAxial(double Vm)
static void zombify(Element *orig, const Cinfo *zClass, Id hsolve)
static SrcFinfo1< double > * VmOut()
double getRa(const Eref &e) const
virtual void vInjectMsg(const Eref &e, double current)=0
virtual void vSetInitVm(const Eref &e, double initVm)=0
void setDiameter(double diameter)
virtual void vInitReinit(const Eref &e, ProcPtr p)=0
void reinit(const Eref &e, ProcPtr p)
virtual void vHandleRaxial(double Ra, double Vm)=0
void injectMsg(const Eref &e, double current)
virtual double vGetInitVm(const Eref &e) const =0
void setRa(const Eref &e, double Ra)
double getRm(const Eref &e) const
static const Cinfo * initCinfo()
void setRm(const Eref &e, double Rm)
virtual void vSetSolver(const Eref &e, Id hsolve)