OdeSolution Class Reference

#include <OdeSolution.hpp>

Collaboration diagram for OdeSolution:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 OdeSolution ()
unsigned GetNumberOfTimeSteps () const
void SetNumberOfTimeSteps (unsigned numTimeSteps)
void SetOdeSystemInformation (boost::shared_ptr< const AbstractOdeSystemInformation > pOdeSystemInfo)
std::vector< double > GetVariableAtIndex (unsigned index) const
std::vector< double > GetAnyVariable (const std::string &rName) const
std::vector< double > & rGetTimes ()
const std::vector< double > & rGetTimes () const
std::vector< std::vector
< double > > & 
rGetSolutions ()
const std::vector< std::vector
< double > > & 
rGetSolutions () const
void SetSolverName (std::string solverName)
std::string GetSolverName ()
template<typename VECTOR>
void CalculateDerivedQuantitiesAndParameters (AbstractParameterisedSystem< VECTOR > *pOdeSystem)
std::vector< std::vector
< double > > & 
rGetDerivedQuantities (AbstractParameterisedSystem< std::vector< double > > *pOdeSystem)
std::vector< std::vector
< double > > & 
rGetDerivedQuantities (AbstractParameterisedSystem< N_Vector > *pOdeSystem)
template<typename VECTOR>
std::vector< double > & rGetParameters (AbstractParameterisedSystem< VECTOR > *pOdeSystem)
void WriteToFile (std::string directoryName, std::string baseResultsFilename, std::string timeUnits, unsigned stepsPerRow=1, bool cleanDirectory=true, unsigned precision=8, bool includeDerivedQuantities=false)

Private Attributes

unsigned mNumberOfTimeSteps
std::vector< double > mTimes
std::vector< std::vector
< double > > 
mSolutions
std::vector< std::vector
< double > > 
mDerivedQuantities
std::vector< double > mParameters
std::string mSolverName
boost::shared_ptr< const
AbstractOdeSystemInformation
mpOdeSystemInformation


Detailed Description

A class that that stores the output data from solving a system of ODEs, and allows us to save it to file.

Definition at line 51 of file OdeSolution.hpp.


Constructor & Destructor Documentation

OdeSolution::OdeSolution (  ) 

Public constructor - ensures data is empty to start with.

Definition at line 38 of file OdeSolution.cpp.


Member Function Documentation

unsigned OdeSolution::GetNumberOfTimeSteps (  )  const

Get the number of timesteps.

Returns:
mNumberOfTimeSteps

Definition at line 45 of file OdeSolution.cpp.

References mNumberOfTimeSteps.

void OdeSolution::SetNumberOfTimeSteps ( unsigned  numTimeSteps  ) 

Set the number of timesteps.

Parameters:
numTimeSteps the number of timesteps to use

Definition at line 51 of file OdeSolution.cpp.

References mNumberOfTimeSteps, mSolutions, and mTimes.

Referenced by AbstractBackwardEulerCardiacCell< SIZE >::Compute(), RungeKuttaFehlbergIvpOdeSolver::InternalSolve(), CvodeAdaptor::Solve(), AbstractOneStepIvpOdeSolver::Solve(), and AbstractCvodeCell::Solve().

void OdeSolution::SetOdeSystemInformation ( boost::shared_ptr< const AbstractOdeSystemInformation pOdeSystemInfo  ) 

Set the ODE system information

Parameters:
pOdeSystemInfo ODE system information (used to get the names and units of variables).

Definition at line 59 of file OdeSolution.cpp.

References mpOdeSystemInformation.

Referenced by AbstractBackwardEulerCardiacCell< SIZE >::Compute(), CvodeAdaptor::Solve(), AbstractOneStepIvpOdeSolver::Solve(), and AbstractCvodeCell::Solve().

std::vector< double > OdeSolution::GetVariableAtIndex ( unsigned  index  )  const

Get the values of a state variable, parameter or derived quantity with a given index in the ODE system at each output timestep. The index is that given by AbstractOdeSystemInformation::GetAnyVariableIndex, which for state variables (the most common case) is equal to their index within the state variable vector.

Parameters:
index the index of the variable in the system

Definition at line 64 of file OdeSolution.cpp.

References EXCEPTION, mDerivedQuantities, mParameters, mSolutions, and mTimes.

Referenced by GetAnyVariable().

std::vector< double > OdeSolution::GetAnyVariable ( const std::string &  rName  )  const

Get the values of a state variable, parameter or derived quantity with a given name in the ODE system for each output timestep.

Parameters:
rName the name of the variable to extract

Definition at line 100 of file OdeSolution.cpp.

References GetVariableAtIndex(), and mpOdeSystemInformation.

std::vector< double > & OdeSolution::rGetTimes (  ) 

Get the times at which the solution to the ODE system is stored.

Returns:
mTimes.

Definition at line 105 of file OdeSolution.cpp.

References mTimes.

Referenced by AbstractBackwardEulerCardiacCell< SIZE >::Compute(), RungeKuttaFehlbergIvpOdeSolver::InternalSolve(), CvodeAdaptor::Solve(), AbstractOneStepIvpOdeSolver::Solve(), and AbstractCvodeCell::Solve().

const std::vector< double > & OdeSolution::rGetTimes (  )  const

Get the times at which the solution to the ODE system is stored.

Returns:
mTimes.

Definition at line 110 of file OdeSolution.cpp.

References mTimes.

std::vector< std::vector< double > > & OdeSolution::rGetSolutions (  ) 

Get the values of the solution to the ODE system at each timestep.

Returns:
mSolutions.

Definition at line 115 of file OdeSolution.cpp.

References mSolutions.

Referenced by AbstractBackwardEulerCardiacCell< SIZE >::Compute(), RungeKuttaFehlbergIvpOdeSolver::InternalSolve(), CvodeAdaptor::Solve(), AbstractOneStepIvpOdeSolver::Solve(), and AbstractCvodeCell::Solve().

const std::vector< std::vector< double > > & OdeSolution::rGetSolutions (  )  const

Get the values of the solution to the ODE system at each timestep.

Returns:
mSolutions.

Definition at line 120 of file OdeSolution.cpp.

References mSolutions.

void OdeSolution::SetSolverName ( std::string  solverName  )  [inline]

Set the ODE solver used to create these results

Parameters:
solverName solver used

Definition at line 156 of file OdeSolution.hpp.

References mSolverName.

Referenced by AbstractOneStepIvpOdeSolver::Solve().

std::string OdeSolution::GetSolverName (  )  [inline]

Set the ODE solver used to create these results

Definition at line 162 of file OdeSolution.hpp.

References mSolverName.

template<typename VECTOR>
void OdeSolution::CalculateDerivedQuantitiesAndParameters ( AbstractParameterisedSystem< VECTOR > *  pOdeSystem  )  [inline]

Calculate the derived quantities and store them and the current parameters for printing/accessing.

Parameters:
pOdeSystem the ODE system which was solved to generate this solution object

Definition at line 127 of file OdeSolution.cpp.

References AbstractParameterisedSystem< VECTOR >::GetSystemInformation(), mpOdeSystemInformation, rGetDerivedQuantities(), and rGetParameters().

std::vector< std::vector< double > > & OdeSolution::rGetDerivedQuantities ( AbstractParameterisedSystem< std::vector< double > > *  pOdeSystem  ) 

Get the derived quantities for this ODE system at each timestep.

Parameters:
pOdeSystem the ODE system which was solved to generate this solution object
Returns:
A vector of vectors of derived quantities for each time step.

Definition at line 152 of file OdeSolution.cpp.

References mDerivedQuantities, mSolutions, and mTimes.

Referenced by CalculateDerivedQuantitiesAndParameters().

std::vector< std::vector< double > > & OdeSolution::rGetDerivedQuantities ( AbstractParameterisedSystem< N_Vector > *  pOdeSystem  ) 

Get the derived quantities for this ODE system at each timestep.

Parameters:
pOdeSystem the ODE system which was solved to generate this solution object
Returns:
A std::vector of vectors of derived quantities for each time step.

Definition at line 168 of file OdeSolution.cpp.

References AbstractParameterisedSystem< VECTOR >::ComputeDerivedQuantities(), CopyFromStdVector(), CopyToStdVector(), DeleteVector(), AbstractParameterisedSystem< VECTOR >::GetNumberOfDerivedQuantities(), mDerivedQuantities, mSolutions, and mTimes.

template<typename VECTOR>
std::vector< double > & OdeSolution::rGetParameters ( AbstractParameterisedSystem< VECTOR > *  pOdeSystem  )  [inline]

This method currently assumes that mParameters is constant through time. This may not be the case when using modifiers.

Parameters:
pOdeSystem The ODE system which was solved to generate this solution object.
Returns:
A vector of the current system parameters.

Definition at line 136 of file OdeSolution.cpp.

References AbstractParameterisedSystem< VECTOR >::GetNumberOfParameters(), AbstractParameterisedSystem< VECTOR >::GetParameter(), and mParameters.

Referenced by CalculateDerivedQuantitiesAndParameters().

void OdeSolution::WriteToFile ( std::string  directoryName,
std::string  baseResultsFilename,
std::string  timeUnits,
unsigned  stepsPerRow = 1,
bool  cleanDirectory = true,
unsigned  precision = 8,
bool  includeDerivedQuantities = false 
)

Write the data to a file.

Parameters:
directoryName the directory in which to write the data to file
baseResultsFilename the name of the file in which to write the data
timeUnits name of the units of time used
stepsPerRow the solution to the ODE system is written to file every this number of timesteps (defaults to 1)
cleanDirectory whether to clean the directory (defaults to true)
precision the precision with which to write the data (i.e. exactly how many digits to display after the decimal point). Defaults to 8. Must be between 2 and 20 (inclusive).
includeDerivedQuantities whether to include parameters and derived quantities in the output.

Definition at line 192 of file OdeSolution.cpp.

References ColumnDataWriter::AdvanceAlongUnlimitedDimension(), PetscTools::AmMaster(), ColumnDataWriter::Close(), ColumnDataWriter::DefineUnlimitedDimension(), ColumnDataWriter::DefineVariable(), ColumnDataWriter::EndDefineMode(), EXCEPTION, mDerivedQuantities, mParameters, mpOdeSystemInformation, mSolutions, mSolverName, mTimes, ColumnDataWriter::PutVariable(), and ColumnDataWriter::SetCommentForInfoFile().


Member Data Documentation

unsigned OdeSolution::mNumberOfTimeSteps [private]

Variable for the number of timesteps.

Definition at line 55 of file OdeSolution.hpp.

Referenced by GetNumberOfTimeSteps(), and SetNumberOfTimeSteps().

std::vector<double> OdeSolution::mTimes [private]

A vector of times at each timestep.

Definition at line 58 of file OdeSolution.hpp.

Referenced by GetVariableAtIndex(), rGetDerivedQuantities(), rGetTimes(), SetNumberOfTimeSteps(), and WriteToFile().

std::vector<std::vector<double> > OdeSolution::mSolutions [private]

Solutions for each variable at each timestep.

Definition at line 61 of file OdeSolution.hpp.

Referenced by GetVariableAtIndex(), rGetDerivedQuantities(), rGetSolutions(), SetNumberOfTimeSteps(), and WriteToFile().

std::vector<std::vector<double> > OdeSolution::mDerivedQuantities [private]

Derived quantities at each timestep.

Definition at line 64 of file OdeSolution.hpp.

Referenced by GetVariableAtIndex(), rGetDerivedQuantities(), and WriteToFile().

std::vector<double> OdeSolution::mParameters [private]

Parameters - these are currently assumed constant across all time

Definition at line 67 of file OdeSolution.hpp.

Referenced by GetVariableAtIndex(), rGetParameters(), and WriteToFile().

std::string OdeSolution::mSolverName [private]

The ODE solver used to create these results

Definition at line 70 of file OdeSolution.hpp.

Referenced by GetSolverName(), SetSolverName(), and WriteToFile().

Information about the concrete ODE system class.

Used to get names and units into the file output.

Definition at line 77 of file OdeSolution.hpp.

Referenced by CalculateDerivedQuantitiesAndParameters(), GetAnyVariable(), SetOdeSystemInformation(), and WriteToFile().


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

Generated on Mon Apr 18 11:37:39 2011 for Chaste by  doxygen 1.5.5