OdeSystemInformation< ODE_SYSTEM > Class Template Reference

#include <OdeSystemInformation.hpp>

Inherits AbstractOdeSystemInformation.

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

List of all members.

Public Member Functions

template<>
void Initialise ()
template<>
void Initialise ()
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 ()
template<>
void Initialise ()
template<>
void Initialise ()

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 ()

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 48 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 119 of file OdeSystemInformation.hpp.

References OdeSystemInformation< ODE_SYSTEM >::mpInstance.

template<class ODE_SYSTEM >
OdeSystemInformation< ODE_SYSTEM >::OdeSystemInformation ( const OdeSystemInformation< ODE_SYSTEM > &   )  [protected]

Copy constructor.


Member Function Documentation

template<>
void OdeSystemInformation< TysonNovak2001OdeSystem >::Initialise (  )  [inline, virtual]
template<>
void OdeSystemInformation< OdeSystemForCoupledHeatEquationWithSource >::Initialise (  )  [inline, virtual]
template<>
void OdeSystemInformation< OdeSystemForCoupledHeatEquation >::Initialise (  )  [inline, virtual]
template<>
void OdeSystemInformation< CorriasBuistSMCModified >::Initialise ( void   )  [inline, virtual]
template<>
void OdeSystemInformation< CorriasBuistICCModified >::Initialise ( void   )  [inline, virtual]
template<>
void OdeSystemInformation< CML_noble_varghese_kohl_noble_1998_basic_with_sac >::Initialise ( void   )  [inline, virtual]
template<>
void OdeSystemInformation< FitzHughNagumo1961OdeSystem >::Initialise ( void   )  [inline, virtual]
template<>
void OdeSystemInformation< FakeBathCell >::Initialise ( void   )  [inline, virtual]
template<>
void OdeSystemInformation< NhsContractionModel >::Initialise ( void   )  [inline, virtual]
template<>
void OdeSystemInformation< Nash2004ContractionModel >::Initialise (  )  [inline, virtual]

Initialise the ODE system information.

This must be provided by subclasses.

Implements AbstractOdeSystemInformation.

Definition at line 35 of file Nash2004ContractionModel.cpp.

References AbstractOdeSystemInformation::mInitialised, AbstractOdeSystemInformation::mVariableNames, and AbstractOdeSystemInformation::mVariableUnits.

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

Initialise the ODE system information.

This must be provided by subclasses.

Implements AbstractOdeSystemInformation.

Definition at line 141 of file Kerchoffs2003ContractionModel.cpp.

References AbstractOdeSystemInformation::mInitialised, AbstractOdeSystemInformation::mVariableNames, and AbstractOdeSystemInformation::mVariableUnits.

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() { 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 126 of file OdeSystemInformation.hpp.

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

Return a pointer to the singleton instance, creating it if necessary.

Definition at line 108 of file OdeSystemInformation.hpp.

References OdeSystemInformation< ODE_SYSTEM >::mpInstance.

template<class ODE_SYSTEM >
OdeSystemInformation& OdeSystemInformation< ODE_SYSTEM >::operator= ( const OdeSystemInformation< ODE_SYSTEM > &   )  [protected]

Overloaded assignment operator.


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 58 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 Thu Dec 22 13:06:57 2011 for Chaste by  doxygen 1.6.3