36 #ifndef NEKTAR_SOLVERS_ADRSOLVER_CELLMODELS_CELLMODEL 
   37 #define NEKTAR_SOLVERS_ADRSOLVER_CELLMODELS_CELLMODEL 
   53     typedef std::vector<std::pair<std::string, std::string> > 
SummaryList;
 
   68         CellModel(
const LibUtilities::SessionReaderSharedPtr& pSession,
 
  154             return "Var" + boost::lexical_cast<std::string>(idx);
 
LibUtilities::NekFactory< std::string, CellModel, const LibUtilities::SessionReaderSharedPtr &, const MultiRegions::ExpListSharedPtr & > CellModelFactory
Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class...
 
void TimeIntegrate(const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time)
Time integrate the cell model by one PDE timestep. 
 
int m_nq
Number of physical points. 
 
std::string GetCellVarName(unsigned int idx)
 
virtual std::string v_GetCellVarName(unsigned int idx)
 
std::vector< std::pair< std::string, std::string > > SummaryList
 
StdRegions::StdNodalTriExpSharedPtr m_nodalTri
StdNodalTri for cell model calculations. 
 
boost::shared_ptr< SessionReader > SessionReaderSharedPtr
 
MultiRegions::ExpListSharedPtr m_field
Transmembrane potential field from PDE system. 
 
boost::shared_ptr< StdNodalTriExp > StdNodalTriExpSharedPtr
 
boost::shared_ptr< CellModel > CellModelSharedPtr
A shared pointer to an EquationSystem object. 
 
StdRegions::StdNodalTetExpSharedPtr m_nodalTet
 
Array< OneD, Array< OneD, NekDouble > > m_wsp
Cell model integration workspace. 
 
void GenerateSummary(SummaryList &s)
Print a summary of the cell model. 
 
NekDouble m_lastTime
Timestep for pde model. 
 
unsigned int GetNumCellVariables()
 
CellModel(const LibUtilities::SessionReaderSharedPtr &pSession, const MultiRegions::ExpListSharedPtr &pField)
 
virtual void v_Update(const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time)=0
 
std::vector< int > m_concentrations
Indices of cell model variables which are concentrations. 
 
virtual void v_SetInitialConditions()=0
 
Array< OneD, Array< OneD, NekDouble > > m_gates_tau
Storage for gate tau values. 
 
boost::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object. 
 
Array< OneD, Array< OneD, NekDouble > > m_cellSol
Cell model solution variables. 
 
int m_nvar
Number of variables in cell model (inc. transmembrane voltage) 
 
std::vector< int > m_gates
Indices of cell model variables which are gates. 
 
boost::shared_ptr< StdNodalTetExp > StdNodalTetExpSharedPtr
 
void Initialise()
Initialise the cell model storage and set initial conditions. 
 
CellModelFactory & GetCellModelFactory()
 
Array< OneD, NekDouble > GetCellSolutionCoeffs(unsigned int idx)
 
Array< OneD, Array< OneD, NekDouble > > m_nodalTmp
Temporary array for nodal projection. 
 
void Update(const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time)
Compute the derivatives of cell model variables. 
 
bool m_useNodal
Flag indicating whether nodal projection in use. 
 
virtual void v_GenerateSummary(SummaryList &s)=0
 
Array< OneD, NekDouble > GetCellSolution(unsigned int idx)
 
int m_substeps
Number of substeps to take. 
 
LibUtilities::SessionReaderSharedPtr m_session
Session. 
 
Provides a generic Factory class.