46 #ifndef Xyce_N_DEV_Neuron6_h
47 #define Xyce_N_DEV_Neuron6_h
57 #include <Teuchos_RCP.hpp>
69 static const char *
name() {
return "Neuron";}
111 void registerLIDs(
const std::vector<int> & intLIDVecRef,
112 const std::vector<int> & extLIDVecRef );
117 const std::vector< std::vector<int> > &
jacobianStamp()
const;
118 void registerJacLIDs(
const std::vector< std::vector<int> > & jacLIDVec );
128 void varTypes( std::vector<char> & varTypeVec );
194 std::vector<double>
segF_dVp,
segF_dV,
segF_dVn,
segF_dn,
segF_dm,
segF_dh,
segF_da,
segF_db,
segF_dM,
segF_dH,
segF_dc;
Model & operator=(const Model &)
std::vector< double > segF_dM
std::map< int, int > nextMap
std::vector< int > SegVEqnH_Offset
virtual std::ostream & printOutInstances(std::ostream &os) const
std::vector< int > SegVEqnNOffset
std::vector< double > segQ_dV
std::vector< double > dCaF_dH
std::vector< double > segF_dVn
const std::vector< std::vector< int > > & jacobianStamp() const
std::vector< double > segF_dVp
std::vector< double > dHQ_dH
std::vector< int > li_nPro
std::vector< double > segCEquFvalue
std::vector< int > SegVEqnAOffset
std::vector< double > segMEquQvalue
std::vector< double > dmF_dm
std::vector< double > daQ_da
std::vector< int > li_internalVars
std::vector< int > SegVEqnHOffset
std::vector< double > dbF_dV
std::vector< int > MEquVNodeOffset
std::vector< std::string > membraneIndpFEqus
RCP< MembraneModel > membraneModel_
static void loadModelParameters(ParametricData< Model > &model_parameters)
bool updatePrimaryState()
std::vector< double > dcF_dCa
std::vector< double > segF_db
static const char * name()
std::vector< int > CEquCNodeOffset
std::vector< int > MEquMNodeOffset
bool updateTemperature(const double &temp_tmp)
int ANegEquLastNodeOffset
std::vector< double > daF_dV
Pure virtual class to augment a linear system.
bool processParams()
processParams
std::vector< double > segF_dm
bool membraneCurrentEqusGiven
std::vector< double > dbQ_db
std::vector< double > dcF_dV
std::vector< std::string > membraneCurrentEqus
int APosEquNextNodeOffset
std::vector< int > li_hPro
std::vector< int > CaEquH_NodeOffset
std::vector< int > SegVEqnCOffset
std::vector< int > M_EquVNodeOffset
std::vector< double > segHEquQvalue
std::map< int, int > segMap
std::vector< double > dmQ_dm
std::vector< double > segCEquQvalue
std::vector< double > dnF_dn
std::vector< double > dCaF_dV
std::vector< double > segHEquFvalue
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
bool membraneIndpQEqusGiven
std::vector< std::string > membraneFunctions
void auxDAECalculations()
std::vector< int > HEquHNodeOffset
std::vector< double > segF_dc
std::vector< int > H_EquVNodeOffset
std::vector< int > li_MPro
std::vector< int > li_aPro
std::vector< double > dCaQ_dCa
std::vector< double > segNEquQvalue
std::vector< int > CaEquCaNodeOffset
std::vector< double > segF_dH
bool ionChannelModelGiven
std::vector< double > segCaEquQvalue
std::vector< int > li_mPro
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
std::vector< int > HEquVNodeOffset
std::vector< int > CaEquM_NodeOffset
std::vector< double > segBEquQvalue
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
std::vector< int > li_CaPro
std::vector< double > segAEquFvalue
std::vector< double > segM_EquFvalue
std::vector< int > BEquBNodeOffset
void registerJacLIDs(const std::vector< std::vector< int > > &jacLIDVec)
std::vector< double > segMEquFvalue
std::vector< std::string > membraneParameters
std::vector< double > dbF_db
std::vector< double > dnF_dV
std::vector< double > potassiumCurrent
std::vector< double > segCaEquFvalue
std::vector< int > SegVEqnVpreOffset
static const char * deviceTypeName()
void registerLIDs(const std::vector< int > &intLIDVecRef, const std::vector< int > &extLIDVecRef)
std::vector< Instance * > instanceContainer
void varTypes(std::vector< char > &varTypeVec)
std::vector< Instance * > InstanceVector
std::vector< int > li_bPro
std::vector< double > dhQ_dh
std::map< int, int > prevMap
std::vector< double > segQvalue
std::vector< int > SegVEqnM_Offset
std::vector< double > dMF_dV
std::vector< double > segF_dh
std::vector< int > AEquVNodeOffset
std::vector< double > segF_dn
std::vector< int > CEquVNodeOffset
std::vector< int > li_NaCurrentState
bool membraneParametersGiven
The Device class is an interface for device implementations.
std::vector< std::vector< int > > jacStamp
std::vector< int > SegVEqnVsegOffset
std::string ionChannelModel
static bool modelRequired()
std::vector< double > segM_EquQvalue
std::vector< double > dhF_dh
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
std::vector< int > SegVEqnMOffset
std::vector< int > SegVEqnBOffset
bool membraneFunctionsGiven
std::vector< double > dhF_dV
Class Configuration contains device configuration data.
void registerStateLIDs(const std::vector< int > &staLIDVecRef)
std::vector< double > dMQ_dM
std::vector< int > H_EquH_NodeOffset
std::vector< std::vector< int > > jacobianOffsets
std::vector< double > segF_da
std::vector< double > segAEquQvalue
bool membraneIndpVarsGiven
std::vector< double > dcQ_dc
std::vector< double > dCaF_dM
std::vector< int > CEquCaNodeOffset
std::vector< double > dmF_dV
std::vector< int > li_HPro
std::vector< int > CaEquVNodeOffset
std::vector< double > dHF_dV
std::vector< int > SegVEqnVnexOffset
std::vector< int > NEquVNodeOffset
std::vector< double > dcF_dc
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
std::vector< double > segH_EquQvalue
std::vector< double > segH_EquFvalue
std::vector< int > li_KCurrentState
std::vector< int > BEquVNodeOffset
std::vector< double > dCaF_dCa
std::vector< double > segNEquFvalue
void addInstance(Instance *instance)
std::vector< double > dMF_dM
std::vector< double > segF_dV
std::vector< int > M_EquM_NodeOffset
std::vector< std::string > membraneIndpVars
std::vector< double > segFvalue
std::vector< double > daF_da
bool updateSecondaryState()
std::vector< std::string > membraneIndpQEqus
Instance(const Configuration &configuration, const InstanceBlock &IB, Model &Miter, const FactoryBlock &factory_block)
bool processInstanceParams()
processInstanceParams
std::vector< double > dnQ_dn
bool updateIntermediateVars()
std::vector< int > li_Vol
static bool isLinearDevice()
std::vector< int > AEquANodeOffset
ModelBlock represents a .MODEL line from the netlist.
The DeviceTraits template describes the configuration of a device.
std::vector< double > sodiumCurrent
std::vector< int > li_cPro
Manages parameter binding for class C.
InstanceBlock represent a device instance line from the netlist.
std::vector< double > segBEquFvalue
int numStateVarsPerSegment
bool membraneIndpFEqusGiven
std::vector< double > dHF_dH
std::vector< int > NEquNNodeOffset
Instance & operator=(const Instance &)