OdeSystemInformation< ODE_SYSTEM > Class Template Reference

#include <OdeSystemInformation.hpp>

Inheritance diagram for OdeSystemInformation< ODE_SYSTEM >:

Inheritance graph
[legend]
Collaboration diagram for OdeSystemInformation< ODE_SYSTEM >:

Collaboration graph
[legend]

List of all members.

Public Member Functions

template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)
template<>
void Initialise (void)

Static Public Member Functions

static boost::shared_ptr
< OdeSystemInformation
< ODE_SYSTEM > > 
Instance ()

Protected Member Functions

 OdeSystemInformation ()
 OdeSystemInformation (const OdeSystemInformation< ODE_SYSTEM > &)
OdeSystemInformationoperator= (const OdeSystemInformation< ODE_SYSTEM > &)
void Initialise (void)

Static Private Attributes

static boost::shared_ptr
< OdeSystemInformation
< ODE_SYSTEM > > 
mpInstance


Detailed Description

template<class ODE_SYSTEM>
class OdeSystemInformation< ODE_SYSTEM >

A concrete implementation of AbstractOdeSystemInformation, that uses templates to provide an implementation for any ODE system class.

All ODE system developers need to do is provide a specialisation of the Initialise method of this class, and set mpSystemInfo in their constructor: mpSystemInfo = OdeSystemInformation<CLASS>::Instance();

This class contains all the machinery to make it a singleton, hence providing exactly one instance per value of the template parameter.

Definition at line 47 of file OdeSystemInformation.hpp.


Constructor & Destructor Documentation

template<class ODE_SYSTEM>
OdeSystemInformation< ODE_SYSTEM >::OdeSystemInformation (  )  [inline, protected]

Default constructor.

Not user accessible - to obtain an instance of this class use the Instance method.

Definition at line 106 of file OdeSystemInformation.hpp.

References OdeSystemInformation< ODE_SYSTEM >::mpInstance.


Member Function Documentation

template<class ODE_SYSTEM>
void OdeSystemInformation< ODE_SYSTEM >::Initialise ( void   )  [inline, protected, virtual]

Generic implementation of Initialise, which does nothing.

Developers should specialise this method to their ODE system. For example,

template<> void OdeSystemInformation<MyNewOdeSystem>::Initialise(void) { this->mVariableNames.push_back("Variable 1"); this->mVariableUnits.push_back("Units 1"); this->mInitialConditions.push_back(0.0);

this->mInitialised = true; }

Implements AbstractOdeSystemInformation.

Definition at line 113 of file OdeSystemInformation.hpp.

template<class ODE_SYSTEM>
boost::shared_ptr< OdeSystemInformation< ODE_SYSTEM > > OdeSystemInformation< ODE_SYSTEM >::Instance (  )  [inline, static]

template<>
void OdeSystemInformation< BackwardEulerFoxModel2002Modified >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< BackwardEulerLuoRudyIModel1991 >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< BackwardEulerNobleVargheseKohlNoble1998 >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< DiFrancescoNoble1985OdeSystem >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< FaberRudy2000Version3 >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< FaberRudy2000Version3Optimised >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< FakeBathCell >::Initialise ( void   )  [inline, virtual]

Initialise the ODE system information.

This must be provided by subclasses.

Implements AbstractOdeSystemInformation.

Definition at line 61 of file FakeBathCell.cpp.

References AbstractOdeSystemInformation::mInitialised.

template<>
void OdeSystemInformation< FitzHughNagumo1961OdeSystem >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< FoxModel2002Modified >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< HodgkinHuxleySquidAxon1952OriginalOdeSystem >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< LuoRudyIModel1991OdeSystem >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< Mahajan2008OdeSystem >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< NhsCellularMechanicsOdeSystem >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< CML_noble_varghese_kohl_noble_1998_basic >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< CML_noble_varghese_kohl_noble_1998_basic_pe_lut >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< TenTusscher2006OdeSystem >::Initialise ( void   )  [inline, virtual]

template<>
void OdeSystemInformation< TysonNovak2001OdeSystem >::Initialise ( void   )  [inline, virtual]


Member Data Documentation

template<class ODE_SYSTEM>
boost::shared_ptr< OdeSystemInformation< ODE_SYSTEM > > OdeSystemInformation< ODE_SYSTEM >::mpInstance [inline, static, private]

The single instance of this class, for this ODE_SYSTEM.

Todo:
see if using weak_ptr would work and give funkier semantics (automatically destroy the singleton when no ODE systems were using it)
Definition of the instance static member.

Definition at line 56 of file OdeSystemInformation.hpp.

Referenced by OdeSystemInformation< ODE_SYSTEM >::Instance(), and OdeSystemInformation< ODE_SYSTEM >::OdeSystemInformation().


The documentation for this class was generated from the following file:

Generated on Wed Mar 18 12:52:46 2009 for Chaste by  doxygen 1.5.5