Select Git revision
6b27e69e' as 'moose-core'
Dilawar Singh authored
HSolve.h 4.34 KiB
/**********************************************************************
** This program is part of 'MOOSE', the
** Messaging Object Oriented Simulation Environment.
** copyright (C) 2003-2007 Upinder S. Bhalla, Niraj Dudani and NCBS
** It is made available under the terms of the
** GNU Lesser General Public License version 2.1
** See the file COPYING.LIB for the full notice.
**********************************************************************/
#ifndef _HSOLVE_H
#define _HSOLVE_H
#include <set>
/**
* HSolve adapts the integrator HSolveActive into a MOOSE class.
*/
class HSolve: public HSolveActive
{
public:
HSolve();
void process( const Eref& hsolve, ProcPtr p );
void reinit( const Eref& hsolve, ProcPtr p );
void setSeed( Id seed );
Id getSeed() const; /**< For searching for compartments:
* seed is the starting compt. */
void setPath( const Eref& e, string path );
string getPath( const Eref& e ) const;
/**< Path to the compartments */
void setDt( double dt );
double getDt() const;
void setCaAdvance( int caAdvance );
int getCaAdvance() const;
void setVDiv( int vDiv );
int getVDiv() const;
void setVMin( double vMin );
double getVMin() const;
void setVMax( double vMax );
double getVMax() const;
void setCaDiv( int caDiv );
int getCaDiv() const;
void setCaMin( double caMin );
double getCaMin() const;
void setCaMax( double caMax );
double getCaMax() const;
// Interface functions defined in HSolveInterface.cpp
double getInitVm( Id id ) const;
void setInitVm( Id id, double value );
double getVm( Id id ) const;
void setVm( Id id, double value );
double getCm( Id id ) const;
void setCm( Id id, double value );
double getEm( Id id ) const;
void setEm( Id id, double value );
double getRm( Id id ) const;
void setRm( Id id, double value );
double getRa( Id id ) const;
void setRa( Id id, double value );
// Im is read-only
double getIm( Id id ) const;
// Ia is read-only
double getIa( Id id ) const;
double getInject( Id id ) const;
void setInject( Id id, double value );
void addInject( Id id, double value );
/// Interface to compartments
//~ const vector< Id >& getCompartments() const;
void addGkEk( Id id, double v1, double v2 );
/// Interface to channels
//~ const vector< Id >& getHHChannels() const;
void setPowers(
Id id,
double Xpower,
double Ypower,
double Zpower );
int getInstant( Id id ) const;
void setInstant( Id id, int instant );
double getHHChannelGbar( Id id ) const;
void setHHChannelGbar( Id id, double value );
double getEk( Id id ) const;
void setEk( Id id, double value );
double getGk( Id id ) const;
void setGk( Id id, double value );
// Ik is read-only
double getIk( Id id ) const;
double getX( Id id ) const;
void setX( Id id, double value );
double getY( Id id ) const;
void setY( Id id, double value );
double getZ( Id id ) const;
void setZ( Id id, double value );
/// Assign scale factor for HH channel conductance.
void setHHmodulation( Id id, double value );
/// Interface to CaConc
//~ const vector< Id >& getCaConcs() const;
double getCa( Id id ) const;
void setCa( Id id, double Ca );
void iCa( Id id, double iCa ); // Add incoming calcium current.
double getCaBasal( Id id ) const;
void setCaBasal( Id id, double CaBasal );
void setTauB( Id id, double tau, double B );
double getCaCeiling( Id id ) const;
void setCaCeiling( Id id, double floor );
double getCaFloor( Id id ) const; void setCaFloor( Id id, double floor );
/// Interface to external channels
//~ const vector< vector< Id > >& getExternalChannels() const;
static const Cinfo* initCinfo();
static const std::set<string>& handledClasses();
/**< Returns the set of classes "handled" by HSolve */
static void deleteIncomingMessages( Element * orig, const string finfo);
/**< Delete messages coming into this particular
* element if its class that is handled by HSolve */
private:
static vector< Id > children( Id obj );
static Id deepSearchForCompartment( Id base );
void setup( Eref hsolve );
void zombify( Eref hsolve ) const;
// Mapping global Id to local index. Defined in HSolveInterface.cpp.
void mapIds();
void mapIds( vector< Id > id );
unsigned int localIndex( Id id ) const;
map< Id, unsigned int > localIndex_;
double dt_;
string path_;
Id seed_;
};
#endif // _HSOLVE_H