Chaste  Release::2018.1
AbstractLookupTableCollection Class Referenceabstract

#include <AbstractLookupTableCollection.hpp>

+ Collaboration diagram for AbstractLookupTableCollection:

Classes

class  EventHandler
 

Public Member Functions

 AbstractLookupTableCollection ()
 
std::vector< std::string > GetKeyingVariableNames () const
 
unsigned GetNumberOfTables (const std::string &rKeyingVariableName) const
 
void GetTableProperties (const std::string &rKeyingVariableName, double &rMin, double &rStep, double &rMax) const
 
void SetTableProperties (const std::string &rKeyingVariableName, double min, double step, double max)
 
void SetTimestep (double dt)
 
virtual void RegenerateTables ()=0
 
virtual void FreeMemory ()=0
 
virtual ~AbstractLookupTableCollection ()
 

Protected Member Functions

unsigned GetTableIndex (const std::string &rKeyingVariableName) const
 

Protected Attributes

std::vector< std::string > mKeyingVariableNames
 
std::vector< unsignedmNumberOfTables
 
std::vector< doublemTableSteps
 
std::vector< doublemTableStepInverses
 
std::vector< doublemTableMins
 
std::vector< doublemTableMaxs
 
std::vector< boolmNeedsRegeneration
 
double mDt
 

Detailed Description

Base class for lookup tables used in optimised cells generated by PyCml. Contains methods to query and adjust table parameters (i.e. size and spacing), and an event handler to time table generation.

Definition at line 49 of file AbstractLookupTableCollection.hpp.

Constructor & Destructor Documentation

AbstractLookupTableCollection::AbstractLookupTableCollection ( )

Default constructor.

Definition at line 40 of file AbstractLookupTableCollection.cpp.

AbstractLookupTableCollection::~AbstractLookupTableCollection ( )
virtual

Virtual destructor since we have a virtual method.

Definition at line 110 of file AbstractLookupTableCollection.cpp.

Member Function Documentation

virtual void AbstractLookupTableCollection::FreeMemory ( )
pure virtual

You can call this method to free the memory used by lookup tables when they're no longer needed.

In most usage scenarios you won't need to do this, but if you're running several simulations in turn that use different cell models, you may find it useful to prevent running out of memory.

Note
After calling this method, you must call RegenerateTables before trying to simulate any cell using this lookup tables object, or you'll get a segfault.
std::vector< std::string > AbstractLookupTableCollection::GetKeyingVariableNames ( ) const
Returns
the names of variables used to index lookup tables.

Definition at line 45 of file AbstractLookupTableCollection.cpp.

References mKeyingVariableNames.

unsigned AbstractLookupTableCollection::GetNumberOfTables ( const std::string &  rKeyingVariableName) const
Returns
the number of lookup tables keyed by the given variable.
Parameters
rKeyingVariableNamethe table key name

Definition at line 50 of file AbstractLookupTableCollection.cpp.

References GetTableIndex(), and mNumberOfTables.

unsigned AbstractLookupTableCollection::GetTableIndex ( const std::string &  rKeyingVariableName) const
protected
Returns
the index of the given keying variable within our vector.
Parameters
rKeyingVariableNamethe table key name

Definition at line 93 of file AbstractLookupTableCollection.cpp.

References EXCEPTION, and mKeyingVariableNames.

Referenced by GetNumberOfTables(), GetTableProperties(), and SetTableProperties().

void AbstractLookupTableCollection::GetTableProperties ( const std::string &  rKeyingVariableName,
double rMin,
double rStep,
double rMax 
) const
Returns
the properties of lookup tables keyed by the given variable.
Parameters
rKeyingVariableNamethe table key name
rMinwill be filled with the lower table bound
rStepwill be filled with the table spacing
rMaxwill be filled with the upper table bound

Definition at line 55 of file AbstractLookupTableCollection.cpp.

References GetTableIndex(), mTableMaxs, mTableMins, and mTableSteps.

virtual void AbstractLookupTableCollection::RegenerateTables ( )
pure virtual

Subclasses implement this method to generate the lookup tables based on the current settings.

void AbstractLookupTableCollection::SetTableProperties ( const std::string &  rKeyingVariableName,
double  min,
double  step,
double  max 
)

Set the properties of lookup tables keyed by the given variable.

Parameters
rKeyingVariableNamethe table key name
minthe lower table bound
stepthe table spacing; must divide the interval between min and max exactly
maxthe upper table bound
Todo:
remove magic number? (#1884)

Definition at line 63 of file AbstractLookupTableCollection.cpp.

References EXCEPTION, GetTableIndex(), mNeedsRegeneration, mTableMaxs, mTableMins, mTableStepInverses, and mTableSteps.

void AbstractLookupTableCollection::SetTimestep ( double  dt)

With some PyCml settings, the cell model timestep may be included within lookup tables. If the cell's dt is changed, this method must be called to reflect this, and RegenerateTables called to update the tables to match.

Parameters
dtthe new timestep

Definition at line 84 of file AbstractLookupTableCollection.cpp.

References mDt, and mNeedsRegeneration.

Member Data Documentation

double AbstractLookupTableCollection::mDt
protected

Timestep to use in lookup tables

Definition at line 163 of file AbstractLookupTableCollection.hpp.

Referenced by SetTimestep().

std::vector<std::string> AbstractLookupTableCollection::mKeyingVariableNames
protected

Names of variables used to index lookup tables

Definition at line 142 of file AbstractLookupTableCollection.hpp.

Referenced by GetKeyingVariableNames(), and GetTableIndex().

std::vector<bool> AbstractLookupTableCollection::mNeedsRegeneration
protected

Whether the parameters for each set of tables have changed

Definition at line 160 of file AbstractLookupTableCollection.hpp.

Referenced by SetTableProperties(), and SetTimestep().

std::vector<unsigned> AbstractLookupTableCollection::mNumberOfTables
protected

Number of tables indexed by each variable

Definition at line 145 of file AbstractLookupTableCollection.hpp.

Referenced by GetNumberOfTables().

std::vector<double> AbstractLookupTableCollection::mTableMaxs
protected

Upper bound of tables indexed by each variable

Definition at line 157 of file AbstractLookupTableCollection.hpp.

Referenced by GetTableProperties(), and SetTableProperties().

std::vector<double> AbstractLookupTableCollection::mTableMins
protected

Lower bound of tables indexed by each variable

Definition at line 154 of file AbstractLookupTableCollection.hpp.

Referenced by GetTableProperties(), and SetTableProperties().

std::vector<double> AbstractLookupTableCollection::mTableStepInverses
protected

Contains the reciprocals of mTableSteps

Definition at line 151 of file AbstractLookupTableCollection.hpp.

Referenced by SetTableProperties().

std::vector<double> AbstractLookupTableCollection::mTableSteps
protected

Spacing of tables indexed by each variable

Definition at line 148 of file AbstractLookupTableCollection.hpp.

Referenced by GetTableProperties(), and SetTableProperties().


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