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.