COPASI API  4.16.103
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
CTrajectoryMethod Class Reference

#include <CTrajectoryMethod.h>

Inheritance diagram for CTrajectoryMethod:
Inheritance graph
[legend]
Collaboration diagram for CTrajectoryMethod:
Collaboration graph
[legend]

Public Types

enum  Status { FAILURE = -1, NORMAL = 0, ROOT = 1 }
 
- Public Types inherited from CCopasiMethod
enum  SubType {
  unset = 0, RandomSearch, RandomSearchMaster, SimulatedAnnealing,
  CoranaWalk, DifferentialEvolution, ScatterSearch, GeneticAlgorithm,
  EvolutionaryProgram, SteepestDescent, HybridGASA, GeneticAlgorithmSR,
  HookeJeeves, LevenbergMarquardt, NelderMead, SRES,
  Statistics, ParticleSwarm, Praxis, TruncatedNewton,
  Newton, deterministic, LSODAR, directMethod,
  stochastic, tauLeap, adaptiveSA, hybrid,
  hybridLSODA, hybridODE45, DsaLsodar, tssILDM,
  tssILDMModified, tssCSP, mcaMethodReder, scanMethod,
  lyapWolf, sensMethod, EFMAlgorithm, EFMBitPatternTreeAlgorithm,
  EFMBitPatternAlgorithm, Householder, crossSectionMethod, linearNoiseApproximation
}
 
- Public Types inherited from CCopasiParameterGroup
typedef parameterGroup::iterator index_iterator
 
typedef
CCopasiContainer::objectMap::iterator 
name_iterator
 
typedef std::vector
< CCopasiParameter * > 
parameterGroup
 
- Public Types inherited from CCopasiParameter
enum  Type {
  DOUBLE = 0, UDOUBLE, INT, UINT,
  BOOL, GROUP, STRING, CN,
  KEY, FILE, EXPRESSION, INVALID
}
 
- Public Types inherited from CCopasiContainer
typedef std::multimap
< std::string, CCopasiObject * > 
objectMap
 
- Public Types inherited from CCopasiObject
typedef std::set< const
CCopasiObject * > 
DataObjectSet
 
typedef std::vector< Refresh * > DataUpdateSequence
 
- Public Types inherited from CObjectInterface
typedef std::set< const
CObjectInterface * > 
ObjectSet
 
typedef std::vector
< CObjectInterface * > 
UpdateSequence
 

Public Member Functions

 CTrajectoryMethod (const CTrajectoryMethod &src, const CCopasiContainer *pParent=NULL)
 
const CVector< C_INT > & getRoots () const
 
virtual bool isValidProblem (const CCopasiProblem *pProblem)
 
void setCurrentState (CState *currentState)
 
void setProblem (CTrajectoryProblem *problem)
 
virtual void start (const CState *initialState)
 
virtual void stateChanged ()
 
virtual Status step (const double &deltaT)
 
 ~CTrajectoryMethod ()
 
- Public Member Functions inherited from CCopasiMethod
 CCopasiMethod (const CCopasiMethod &src, const CCopasiContainer *pParent=NULL)
 
const CCopasiMethod::SubTypegetSubType () const
 
const CCopasiTask::TypegetType () const
 
virtual void load (CReadConfig &configBuffer, CReadConfig::Mode mode=CReadConfig::SEARCH)
 
virtual void print (std::ostream *ostream) const
 
virtual void printResult (std::ostream *ostream) const
 
virtual bool setCallBack (CProcessReport *pCallBack)
 
virtual ~CCopasiMethod ()
 
- Public Member Functions inherited from CCopasiParameterGroup
bool addGroup (const std::string &name)
 
bool addParameter (const CCopasiParameter &parameter)
 
bool addParameter (const std::string &name, const CCopasiParameter::Type type)
 
template<class CType >
bool addParameter (const std::string &name, const CCopasiParameter::Type type, const CType &value)
 
void addParameter (CCopasiParameter *pParameter)
 
CCopasiParameterGroupassertGroup (const std::string &name)
 
template<class CType >
CCopasiParameterassertParameter (const std::string &name, const CCopasiParameter::Type type, const CType &defaultValue)
 
index_iterator beginIndex () const
 
name_iterator beginName () const
 
 CCopasiParameterGroup (const CCopasiParameterGroup &src, const CCopasiContainer *pParent=NULL)
 
 CCopasiParameterGroup (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &objectType="ParameterGroup")
 
void clear ()
 
virtual bool elevateChildren ()
 
index_iterator endIndex () const
 
name_iterator endName () const
 
CCopasiParameterGroupgetGroup (const std::string &name)
 
const CCopasiParameterGroupgetGroup (const std::string &name) const
 
CCopasiParameterGroupgetGroup (const size_t &index)
 
const CCopasiParameterGroupgetGroup (const size_t &index) const
 
size_t getIndex (const std::string &name) const
 
std::string getKey (const std::string &name) const
 
std::string getKey (const size_t &index) const
 
virtual const std::string & getName (const size_t &index) const
 
virtual const CObjectInterfacegetObject (const CCopasiObjectName &cn) const
 
CCopasiParametergetParameter (const std::string &name)
 
const CCopasiParametergetParameter (const std::string &name) const
 
CCopasiParametergetParameter (const size_t &index)
 
const CCopasiParametergetParameter (const size_t &index) const
 
CCopasiParameter::Type getType (const std::string &name) const
 
CCopasiParameter::Type getType (const size_t &index) const
 
std::string getUniqueParameterName (const CCopasiParameter *pParameter) const
 
const CCopasiParameter::ValuegetValue (const std::string &name) const
 
const CCopasiParameter::ValuegetValue (const size_t &index) const
 
CCopasiParameter::ValuegetValue (const std::string &name)
 
CCopasiParameter::ValuegetValue (const size_t &index)
 
CCopasiParameterGroupoperator= (const CCopasiParameterGroup &rhs)
 
bool removeParameter (const std::string &name)
 
bool removeParameter (const size_t &index)
 
template<class CType >
bool setValue (const std::string &name, const CType &value)
 
template<class CType >
bool setValue (const size_t &index, const CType &value)
 
size_t size () const
 
bool swap (const size_t &iFrom, const size_t &iTo)
 
bool swap (index_iterator &from, index_iterator &to)
 
virtual ~CCopasiParameterGroup ()
 
- Public Member Functions inherited from CCopasiParameter
 CCopasiParameter (const CCopasiParameter &src, const CCopasiContainer *pParent=NULL)
 
 CCopasiParameter (const std::string &name, const Type &type, const void *pValue=NULL, const CCopasiContainer *pParent=NULL, const std::string &objectType="Parameter")
 
virtual CCopasiObjectName getCN () const
 
virtual const std::string & getKey () const
 
virtual std::string getObjectDisplayName (bool regular=true, bool richtext=false) const
 
const CCopasiParameter::TypegetType () const
 
const ValuegetValue () const
 
ValuegetValue ()
 
virtual voidgetValuePointer () const
 
CCopasiObjectgetValueReference () const
 
bool isValidValue (const C_FLOAT64 &value) const
 
bool isValidValue (const C_INT32 &value) const
 
bool isValidValue (const unsigned C_INT32 &value) const
 
bool isValidValue (const bool &value) const
 
bool isValidValue (const std::string &value) const
 
bool isValidValue (const CCopasiObjectName &value) const
 
bool isValidValue (const std::vector< CCopasiParameter * > &value) const
 
CCopasiParameteroperator= (const CCopasiParameter &rhs)
 
template<class CType >
bool setValue (const CType &value)
 
bool setValue (const std::vector< CCopasiParameter * > &value)
 
virtual ~CCopasiParameter ()
 
- Public Member Functions inherited from CCopasiContainer
virtual bool add (CCopasiObject *pObject, const bool &adopt=true)
 
 CCopasiContainer (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &type="CN", const unsigned C_INT32 &flag=CCopasiObject::Container)
 
 CCopasiContainer (const CCopasiContainer &src, const CCopasiContainer *pParent=NULL)
 
virtual std::string getChildObjectUnits (const CCopasiObject *pObject) const
 
virtual const objectMapgetObjects () const
 
virtual std::string getUnits () const
 
virtual const CCopasiObjectgetValueObject () const
 
virtual bool remove (CCopasiObject *pObject)
 
virtual ~CCopasiContainer ()
 
- Public Member Functions inherited from CCopasiObject
void addDirectDependency (const CCopasiObject *pObject)
 
 CCopasiObject (const CCopasiObject &src, const CCopasiContainer *pParent=NULL)
 
void clearDirectDependencies ()
 
void clearRefresh ()
 
bool dependsOn (DataObjectSet candidates, const DataObjectSet &context=DataObjectSet()) const
 
void getAllDependencies (DataObjectSet &dependencies, const DataObjectSet &context) const
 
virtual const DataObjectSetgetDirectDependencies (const DataObjectSet &context=DataObjectSet()) const
 
CCopasiContainergetObjectAncestor (const std::string &type) const
 
CCopasiDataModelgetObjectDataModel ()
 
const CCopasiDataModelgetObjectDataModel () const
 
const std::string & getObjectName () const
 
CCopasiContainergetObjectParent () const
 
const std::string & getObjectType () const
 
virtual const
CObjectInterface::ObjectSet
getPrerequisites () const
 
virtual RefreshgetRefresh () const
 
UpdateMethodgetUpdateMethod () const
 
bool hasCircularDependencies (DataObjectSet &candidates, DataObjectSet &verified, const DataObjectSet &context) const
 
bool hasUpdateMethod () const
 
bool isArray () const
 
bool isContainer () const
 
bool isDataModel () const
 
bool isMatrix () const
 
bool isNameVector () const
 
bool isNonUniqueName () const
 
virtual bool isPrerequisiteForContext (const CObjectInterface *pObject, const CMath::SimulationContextFlag &context, const CObjectInterface::ObjectSet &changedObjects) const
 
bool isReference () const
 
bool isRoot () const
 
bool isSeparator () const
 
bool isStaticString () const
 
bool isValueBool () const
 
bool isValueDbl () const
 
bool isValueInt () const
 
bool isValueInt64 () const
 
bool isValueString () const
 
bool isVector () const
 
virtual bool mustBeDeleted (const DataObjectSet &deletedObjects) const
 
void removeDirectDependency (const CCopasiObject *pObject)
 
void setDirectDependencies (const DataObjectSet &directDependencies)
 
bool setObjectName (const std::string &name)
 
virtual bool setObjectParent (const CCopasiContainer *pParent)
 
void setObjectValue (const C_FLOAT64 &value)
 
void setObjectValue (const C_INT32 &value)
 
void setObjectValue (const bool &value)
 
template<class CType >
void setRefresh (CType *pType, void(CType::*method)(void))
 
template<class CType >
void setUpdateMethod (CType *pType, void(CType::*method)(const C_FLOAT64 &))
 
template<class CType >
void setUpdateMethod (CType *pType, void(CType::*method)(const C_INT32 &))
 
template<class CType >
void setUpdateMethod (CType *pType, void(CType::*method)(const bool &))
 
virtual ~CCopasiObject ()
 
- Public Member Functions inherited from CObjectInterface
 CObjectInterface ()
 
virtual ~CObjectInterface ()
 

Static Public Member Functions

static CTrajectoryMethodcreateMethod (CCopasiMethod::SubType subType=CCopasiMethod::deterministic)
 
- Static Public Member Functions inherited from CCopasiObject
static std::vector< Refresh * > buildUpdateSequence (const DataObjectSet &objects, const DataObjectSet &uptoDateObjects, const DataObjectSet &context=DataObjectSet())
 
static void setRenameHandler (CRenameHandler *rh)
 

Protected Member Functions

 CTrajectoryMethod (const CCopasiMethod::SubType &subType, const CCopasiContainer *pParent=NULL)
 
- Protected Member Functions inherited from CCopasiMethod
 CCopasiMethod (const CCopasiTask::Type &taskType, const SubType &subType, const CCopasiContainer *pParent=NULL)
 
- Protected Member Functions inherited from CCopasiParameterGroup
 CCopasiParameterGroup ()
 
- Protected Member Functions inherited from CCopasiContainer
template<class CType >
CCopasiObjectaddMatrixReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0)
 
template<class CType >
CCopasiObjectaddObjectReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0)
 
template<class CType >
CCopasiObjectaddVectorReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0)
 
void initObjects ()
 
- Protected Member Functions inherited from CCopasiObject
 CCopasiObject ()
 
 CCopasiObject (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &type="CN", const unsigned C_INT32 &flag=0)
 

Protected Attributes

CStatempCurrentState
 
CTrajectoryProblemmpProblem
 
CVector< C_INTmRoots
 
- Protected Attributes inherited from CCopasiMethod
CProcessReportmpCallBack
 
- Protected Attributes inherited from CCopasiParameter
std::string mKey
 
CCopasiObjectmpValueReference
 
size_t mSize
 
Value mValue
 
- Protected Attributes inherited from CCopasiContainer
objectMap mObjects
 

Private Member Functions

 CTrajectoryMethod ()
 

Additional Inherited Members

- Static Public Attributes inherited from CCopasiMethod
static const std::string SubTypeName []
 
static const char * XMLSubType []
 
- Static Public Attributes inherited from CCopasiParameter
static const std::string TypeName []
 
static const char * XMLType []
 
- Static Public Attributes inherited from CCopasiContainer
static const std::vector
< CCopasiContainer * > 
EmptyList
 
- Protected Types inherited from CCopasiObject
enum  Flag {
  Container = 0x1, Vector = 0x2, Matrix = 0x4, NameVector = 0x8,
  Reference = 0x10, ValueBool = 0x20, ValueInt = 0x40, ValueInt64 = 0x80,
  ValueDbl = 0x100, NonUniqueName = 0x200, StaticString = 0x400, ValueString = 0x800,
  Separator = 0x1000, ModelEntity = 0x2000, Array = 0x4000, DataModel = 0x8000,
  Root = 0x10000, Gui = 0x20000
}
 
- Static Protected Attributes inherited from CCopasiObject
static CRenameHandlersmpRenameHandler = NULL
 

Detailed Description

Definition at line 43 of file CTrajectoryMethod.h.

Member Enumeration Documentation

Enumeration value for the return value

Enumerator
FAILURE 
NORMAL 
ROOT 

Definition at line 49 of file CTrajectoryMethod.h.

Constructor & Destructor Documentation

CTrajectoryMethod::CTrajectoryMethod ( )
private

Default constructor.

CTrajectoryMethod::CTrajectoryMethod ( const CCopasiMethod::SubType subType,
const CCopasiContainer pParent = NULL 
)
protected

Default constructor.

Parameters
constCCopasiMethod::SubType & subType
constCCopasiContainer * pParent (default: NULL)

Default constructor.

Definition at line 98 of file CTrajectoryMethod.cpp.

References CONSTRUCTOR_TRACE.

99  :
100  CCopasiMethod(CCopasiTask::timeCourse, subType, pParent),
101  mpCurrentState(NULL),
102  mpProblem(NULL),
103  mRoots(0)
CTrajectoryProblem * mpProblem
CVector< C_INT > mRoots
#define CONSTRUCTOR_TRACE
Definition: copasi.h:202
CTrajectoryMethod::CTrajectoryMethod ( const CTrajectoryMethod src,
const CCopasiContainer pParent = NULL 
)

Copy constructor.

Parameters
const CTrajectoryMethod &src
constCCopasiContainer * pParent (default: NULL)

Copy constructor.

Parameters
const CTrajectoryMethod &src

Definition at line 110 of file CTrajectoryMethod.cpp.

References CONSTRUCTOR_TRACE.

111  :
112  CCopasiMethod(src, pParent),
114  mpProblem(src.mpProblem),
115  mRoots(src.mRoots)
CTrajectoryProblem * mpProblem
CVector< C_INT > mRoots
#define CONSTRUCTOR_TRACE
Definition: copasi.h:202
CTrajectoryMethod::~CTrajectoryMethod ( )

Destructor.

Definition at line 121 of file CTrajectoryMethod.cpp.

References DESTRUCTOR_TRACE.

#define DESTRUCTOR_TRACE
Definition: copasi.h:206

Member Function Documentation

CTrajectoryMethod * CTrajectoryMethod::createMethod ( CCopasiMethod::SubType  subType = CCopasiMethod::deterministic)
static

Create a trajectory method for a special problem. Note: the returned object has to be released after use with delete a problem is also passed so that the method has a chance to choose an appropriate simulation method.

CTrajectoryMethod class. This class describes the interface to all integration methods. The various method like LSODA or Gillespie have to be derived from this class.

Created for COPASI by Stefan Hoops 2002

Definition at line 41 of file CTrajectoryMethod.cpp.

References CCopasiMethod::adaptiveSA, CHybridMethod::createHybridMethod(), CHybridMethodLSODA::createHybridMethodLSODA(), CCopasiMethod::deterministic, CCopasiMethod::directMethod, CCopasiMethod::DsaLsodar, fatalError, CCopasiMethod::hybrid, CCopasiMethod::hybridLSODA, CCopasiMethod::hybridODE45, CCopasiMethod::stochastic, CCopasiMethod::tauLeap, and CCopasiMethod::unset.

Referenced by CQTrajectoryWidget::createMethod(), CTrajectoryTask::createMethod(), CCrossSectionTask::createMethod(), and CTrajectoryTask::load().

42 {
43  CTrajectoryMethod * pMethod = NULL;
44 
45  switch (subType)
46  {
47  case unset:
48  case deterministic:
49  pMethod = new CLsodaMethod();
50  break;
51 
52  case stochastic:
53  pMethod = new CStochNextReactionMethod();
54  break;
55 
56  case directMethod:
57  pMethod = new CStochDirectMethod();
58  break;
59 
60  case tauLeap:
61  pMethod = new CTauLeapMethod();
62  break;
63 
64  case adaptiveSA:
65  pMethod = new CTrajAdaptiveSA();
66  break;
67 
68  case hybrid:
70  break;
71 
72  case hybridLSODA:
74  break;
75 
76 #ifdef COPASI_DEBUG
77 
78  case hybridODE45:
79  pMethod = new CHybridMethodODE45();
80  break;
81 #endif // COPASI_DEBUG
82 
83  case DsaLsodar:
84  pMethod = new CTrajectoryMethodDsaLsodar();
85  break;
86 
87  default:
88  fatalError();
89  break;
90  }
91 
92  return pMethod;
93 }
#define fatalError()
static CHybridMethodLSODA * createHybridMethodLSODA()
static CHybridMethod * createHybridMethod()
const CVector< C_INT > & CTrajectoryMethod::getRoots ( ) const

Retrieve the roots.

Returns
const CVector< C_INT > & roots

Definition at line 181 of file CTrajectoryMethod.cpp.

References mRoots.

Referenced by CTrajectoryTask::processStep(), and CCrossSectionTask::processStep().

182 {
183  return mRoots;
184 }
CVector< C_INT > mRoots
bool CTrajectoryMethod::isValidProblem ( const CCopasiProblem pProblem)
virtual

Check if the method is suitable for this problem

Returns
bool suitability of the method

Reimplemented from CCopasiMethod.

Reimplemented in CTrajectoryMethodDsaLsodar, CStochMethod, CTrajAdaptiveSA, CStochDirectMethod, CHybridMethodLSODA, CHybridMethodODE45, CHybridMethod, and CTauLeapMethod.

Definition at line 165 of file CTrajectoryMethod.cpp.

References CCopasiMessage::EXCEPTION, CCopasiMethod::isValidProblem(), and MCTrajectoryMethod.

Referenced by CTauLeapMethod::isValidProblem(), CHybridMethod::isValidProblem(), CHybridMethodODE45::isValidProblem(), CHybridMethodLSODA::isValidProblem(), CStochDirectMethod::isValidProblem(), CTrajAdaptiveSA::isValidProblem(), CStochMethod::isValidProblem(), and CTrajectoryMethodDsaLsodar::isValidProblem().

166 {
167  if (!CCopasiMethod::isValidProblem(pProblem)) return false;
168 
169  const CTrajectoryProblem * pTP = dynamic_cast<const CTrajectoryProblem *>(pProblem);
170 
171  if (!pTP)
172  {
173  //not a TrajectoryProblem
175  return false;
176  }
177 
178  return true;
179 }
virtual bool isValidProblem(const CCopasiProblem *pProblem)
#define MCTrajectoryMethod
void CTrajectoryMethod::setCurrentState ( CState currentState)

Set a pointer to the current state. This method is used by CTrajectoryTask::process() The results of the simulation are passed via this CState variable

Parameters
CState *currentState

Definition at line 124 of file CTrajectoryMethod.cpp.

References mpCurrentState.

Referenced by CTrajectoryTask::processStart(), and CCrossSectionTask::processStart().

125 {
126  mpCurrentState = currentState;
127 }
void CTrajectoryMethod::setProblem ( CTrajectoryProblem problem)

Set a pointer to the problem. This method is used by CTrajectory

Parameters
CTrajectoryProblem *problem

Definition at line 134 of file CTrajectoryMethod.cpp.

References mpProblem.

Referenced by CTrajectoryTask::initialize(), and CCrossSectionTask::initialize().

135 {mpProblem = problem;}
CTrajectoryProblem * mpProblem
void CTrajectoryMethod::start ( const CState initialState)
virtual

This instructs the method to prepare for integration starting with the initialState given.

Parameters
const CState *initialState

This instructs the method to calculate a a time step of deltaT starting with the initialState given. The new state (after deltaT) is expected in the current state. The return value is the actual timestep taken.

Parameters
double &deltaT
const CState *initialState
Returns
"const double &" actualDeltaT

Reimplemented in CTrajectoryMethodDsaLsodar, CLsodaMethod, CStochMethod, CTrajAdaptiveSA, CHybridMethodODE45, CStochDirectMethod, CHybridMethodLSODA, CHybridMethod, and CTauLeapMethod.

Definition at line 161 of file CTrajectoryMethod.cpp.

Referenced by CTrajectoryTask::processStart(), and CCrossSectionTask::processStart().

162 {return;}
void CTrajectoryMethod::stateChanged ( )
virtual

Inform the trajectory method that the state has changed outside its control

Reimplemented in CTrajectoryMethodDsaLsodar, and CLsodaMethod.

Definition at line 138 of file CTrajectoryMethod.cpp.

Referenced by CTrajectoryTask::processStep(), and CCrossSectionTask::processStep().

139 {}
CTrajectoryMethod::Status CTrajectoryMethod::step ( const double &  deltaT)
virtual

This instructs the method to calculate a time step of deltaT starting with the current state, i.e., the result of the previous step. The new state (after deltaT) is expected in the current state. The return value is the actual timestep taken.

Parameters
const double &deltaT
Returns
Status status

This instructs the method to calculate a a time step of deltaT starting with the current state, i.e., the result of the previous step. The new state (after deltaT) is expected in the current state. The return value is the actual timestep taken.

Parameters
const double &deltaT

Reimplemented in CHybridMethodODE45, CTrajectoryMethodDsaLsodar, CLsodaMethod, CStochMethod, CTrajAdaptiveSA, CStochDirectMethod, CHybridMethodLSODA, CHybridMethod, and CTauLeapMethod.

Definition at line 149 of file CTrajectoryMethod.cpp.

References FAILURE.

Referenced by CTrajectoryTask::processStep(), and CCrossSectionTask::processStep().

Member Data Documentation

CState* CTrajectoryMethod::mpCurrentState
protected
CTrajectoryProblem* CTrajectoryMethod::mpProblem
protected
CVector< C_INT > CTrajectoryMethod::mRoots
protected

Vector containing information on the current roots

Definition at line 73 of file CTrajectoryMethod.h.

Referenced by CLsodaMethod::createRootMask(), CLsodaMethod::evalR(), getRoots(), CLsodaMethod::peekAhead(), CLsodaMethod::start(), and CLsodaMethod::step().


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