COPASI API  4.16.103
Public Member Functions | Static Public Attributes | List of all members
COptTask Class Reference

#include <COptTask.h>

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

Public Member Functions

void cleanup ()
 
 COptTask (const CCopasiTask::Type &type=CCopasiTask::optimization, const CCopasiContainer *pParent=NULL)
 
 COptTask (const COptTask &src, const CCopasiContainer *pParent=NULL)
 
virtual CCopasiMethodcreateMethod (const int &type) const
 
virtual bool initialize (const OutputFlag &of, COutputHandler *pOutputHandler, std::ostream *pOstream)
 
virtual bool process (const bool &useInitialValues)
 
virtual bool setCallBack (CProcessReport *pCallBack)
 
virtual bool setMethodType (const int &type)
 
 ~COptTask ()
 
- Public Member Functions inherited from CCopasiTask
 CCopasiTask (const std::string &name="NoName", const CCopasiContainer *pParent=NULL, const std::string &type="Task")
 
 CCopasiTask (const Type &taskType, const CCopasiContainer *pParent=NULL, const std::string &type="Task")
 
 CCopasiTask (const CCopasiTask &src, const CCopasiContainer *pParent=NULL)
 
void cleanup ()
 
CProcessReportgetCallBack () const
 
const CDescriptiongetDescription () const
 
virtual const std::string & getKey () const
 
CCopasiMethodgetMethod ()
 
const CCopasiMethodgetMethod () const
 
COutputHandlergetOutputHandler () const
 
const OutputFlaggetOutputMode () const
 
CCopasiProblemgetProblem ()
 
const CCopasiProblemgetProblem () const
 
CReportgetReport ()
 
const CResultgetResult () const
 
CCopasiParameterGroupgetSliders ()
 
Type getType () const
 
const bool & isScheduled () const
 
const bool & isUpdateModel () const
 
virtual void output (const COutputInterface::Activity &activity)
 
virtual bool restore ()
 
virtual void separate (const COutputInterface::Activity &activity)
 
void setScheduled (const bool &scheduled)
 
void setType (const Type &type)
 
void setUpdateModel (const bool &updateModel)
 
virtual bool updateMatrices ()
 
virtual ~CCopasiTask ()
 
- 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 CObjectInterfacegetObject (const CCopasiObjectName &cn) 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 CCopasiObjectName getCN () const
 
virtual const DataObjectSetgetDirectDependencies (const DataObjectSet &context=DataObjectSet()) const
 
CCopasiContainergetObjectAncestor (const std::string &type) const
 
CCopasiDataModelgetObjectDataModel ()
 
const CCopasiDataModelgetObjectDataModel () const
 
virtual std::string getObjectDisplayName (bool regular=true, bool richtext=false) const
 
const std::string & getObjectName () const
 
CCopasiContainergetObjectParent () const
 
const std::string & getObjectType () const
 
virtual const
CObjectInterface::ObjectSet
getPrerequisites () const
 
virtual RefreshgetRefresh () const
 
UpdateMethodgetUpdateMethod () const
 
virtual voidgetValuePointer () 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
 
virtual void print (std::ostream *ostream) 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 Attributes

static const unsigned int ValidMethods []
 
- Static Public Attributes inherited from CCopasiTask
static const std::string TypeName []
 
static const unsigned int ValidMethods []
 
static const char * XMLType []
 
- Static Public Attributes inherited from CCopasiContainer
static const std::vector
< CCopasiContainer * > 
EmptyList
 

Additional Inherited Members

- Public Types inherited from CCopasiTask
enum  eOutputFlagBase {
  INITIALIZE = 0x01, STREAM = 0x02, FINISH = 0x04, REPORT = 0x10,
  PLOT = 0x20, TIME_SERIES = 0x40
}
 
enum  OutputFlag {
  NO_OUTPUT = 0, OUTPUT_BEFORE = INITIALIZE, OUTPUT_AFTER = FINISH, OUTPUT = REPORT | PLOT | STREAM,
  OUTPUT_SE = REPORT | PLOT | INITIALIZE | STREAM | FINISH, OUTPUT_UI = REPORT | PLOT | TIME_SERIES | INITIALIZE | STREAM | FINISH, ONLY_TIME_SERIES = TIME_SERIES | INITIALIZE | STREAM | FINISH
}
 
enum  Type {
  steadyState = 0, timeCourse, scan, fluxMode,
  optimization, parameterFitting, mca, lyap,
  tssAnalysis, sens, moieties, crosssection,
  lna, unset
}
 
- 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
 
- Static Public Member Functions inherited from CCopasiTask
static bool isValidMethod (const unsigned int &method, const unsigned int *validMethods)
 
- 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)
 
- Public Attributes inherited from CCopasiTask
std::string Error
 
std::string Warning
 
- 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
}
 
- 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 inherited from CCopasiTask
CDescription mDescription
 
OutputFlag mDoOutput
 
std::string mKey
 
unsigned C_INT32 mOutputCounter
 
CProcessReportmpCallBack
 
CStatempInitialState
 
CCopasiMethodmpMethod
 
COutputHandlermpOutputHandler
 
CCopasiProblemmpProblem
 
CCopasiParameterGroupmpSliders
 
CReport mReport
 
CResult mResult
 
bool mScheduled
 
Type mType
 
bool mUpdateModel
 
- Protected Attributes inherited from CCopasiContainer
objectMap mObjects
 
- Static Protected Attributes inherited from CCopasiObject
static CRenameHandlersmpRenameHandler = NULL
 

Detailed Description

Definition at line 42 of file COptTask.h.

Constructor & Destructor Documentation

COptTask::COptTask ( const CCopasiTask::Type type = CCopasiTask::optimization,
const CCopasiContainer pParent = NULL 
)

default constructor

Parameters
constCCopasiTask::Type & type (default: optimization)
constCCopasiContainer * pParent (default: NULL)

Definition at line 63 of file COptTask.cpp.

References CCopasiContainer::add(), COptMethod::createMethod(), CCopasiTask::mpMethod, and CCopasiTask::mpProblem.

64  :
65  CCopasiTask(type, pParent)
66 {
67  mpProblem = new COptProblem(type, this);
69  this->add(mpMethod, true);
70  // mpMethod->setObjectParent(this);
71  ((COptMethod *) mpMethod)->setProblem((COptProblem *) mpProblem);
72 }
CCopasiMethod * mpMethod
Definition: CCopasiTask.h:239
static COptMethod * createMethod(CCopasiMethod::SubType subType=CCopasiMethod::RandomSearch)
Definition: COptMethod.cpp:50
CCopasiTask(const std::string &name="NoName", const CCopasiContainer *pParent=NULL, const std::string &type="Task")
CCopasiProblem * mpProblem
Definition: CCopasiTask.h:234
virtual bool add(CCopasiObject *pObject, const bool &adopt=true)
COptTask::COptTask ( const COptTask src,
const CCopasiContainer pParent = NULL 
)

Copy constructor

Parameters
constCOptTask & src

Definition at line 74 of file COptTask.cpp.

References CCopasiContainer::add(), COptMethod::createMethod(), CCopasiMethod::getSubType(), CCopasiTask::mpMethod, and CCopasiTask::mpProblem.

75  :
76  CCopasiTask(src, pParent)
77 {
78  mpProblem = new COptProblem(*(COptProblem *) src.mpProblem, this);
80  this->add(mpMethod, true);
81  // mpMethod->setObjectParent(this);
82  ((COptMethod *) mpMethod)->setProblem((COptProblem *) mpProblem);
83 }
CCopasiMethod * mpMethod
Definition: CCopasiTask.h:239
static COptMethod * createMethod(CCopasiMethod::SubType subType=CCopasiMethod::RandomSearch)
Definition: COptMethod.cpp:50
CCopasiTask(const std::string &name="NoName", const CCopasiContainer *pParent=NULL, const std::string &type="Task")
const CCopasiMethod::SubType & getSubType() const
CCopasiProblem * mpProblem
Definition: CCopasiTask.h:234
virtual bool add(CCopasiObject *pObject, const bool &adopt=true)
COptTask::~COptTask ( )

Destructor

Definition at line 85 of file COptTask.cpp.

References cleanup().

86 {cleanup();}
void cleanup()
Definition: COptTask.cpp:88

Member Function Documentation

void COptTask::cleanup ( )

cleanup()

Definition at line 88 of file COptTask.cpp.

Referenced by ~COptTask().

88 {}
CCopasiMethod * COptTask::createMethod ( const int &  type) const
virtual

Create a method of the specified type to solve the task. It is the duty of the caller to release the CCopasiMethod.

Parameters
constCCopasiMethod::SubType & type
Returns
CCopasiMethod *

Reimplemented from CCopasiTask.

Reimplemented in CFitTask.

Definition at line 171 of file COptTask.cpp.

References COptMethod::createMethod().

Referenced by setMethodType().

172 {
174 
175  return COptMethod::createMethod(Type);
176 }
static COptMethod * createMethod(CCopasiMethod::SubType subType=CCopasiMethod::RandomSearch)
Definition: COptMethod.cpp:50
bool COptTask::initialize ( const OutputFlag of,
COutputHandler pOutputHandler,
std::ostream *  pOstream 
)
virtual

Initialize the task. If an ostream is given this ostream is used instead of the target specified in the report. This allows nested tasks to share the same output device.

Parameters
constOutputFlag & of
COutputHandler* pOutputHandler
std::ostream* pOstream (default: NULL)
Returns
bool success

Reimplemented from CCopasiTask.

Reimplemented in CFitTask.

Definition at line 101 of file COptTask.cpp.

References COptProblem::initialize(), CCopasiTask::initialize(), COptProblem::initializeSubtaskBeforeOutput(), CCopasiTask::mpMethod, CCopasiTask::mpProblem, and COptMethod::setProblem().

Referenced by CFitTask::initialize().

104 {
105  COptProblem * pProblem = dynamic_cast<COptProblem *>(mpProblem);
106  COptMethod * pMethod = dynamic_cast<COptMethod *>(mpMethod);
107 
108  if (!pProblem || !pMethod) return false;
109 
110  //initialize reporting
111  bool success = true;
112 
113  //do the part of the initialization of the subtask that needs to be
114  //performed before the output is initialized. This is kind of a hack,
115  //we need to find a more general solution for this
116  if (!pProblem->initializeSubtaskBeforeOutput()) success = false;
117 
118  if (!CCopasiTask::initialize(of, pOutputHandler, pOstream)) success = false;
119 
120  //if (!mReport.open(pOstream)) success = false;
121  //if (!mReport.compile()) success = false;
122 
123  if (!pProblem->initialize()) success = false;
124 
125  pMethod->setProblem(pProblem);
126  // if (!pMethod->initialize()) return false;
127 
128  return success;
129 }
CCopasiMethod * mpMethod
Definition: CCopasiTask.h:239
void setProblem(COptProblem *problem)
Definition: COptMethod.cpp:170
virtual bool initialize(const OutputFlag &of, COutputHandler *pOutputHandler, std::ostream *pOstream)
virtual bool initialize()
CCopasiProblem * mpProblem
Definition: CCopasiTask.h:234
virtual bool initializeSubtaskBeforeOutput()
bool COptTask::process ( const bool &  useInitialValues)
virtual

Process the task with or without initializing to the initial state.

Parameters
constbool & useInitialValues
Returns
bool success

Reimplemented from CCopasiTask.

Reimplemented in CFitTask.

Definition at line 131 of file COptTask.cpp.

References COutputInterface::AFTER, COutputInterface::BEFORE, COptProblem::calculateStatistics(), CCopasiMethod::isValidProblem(), CCopasiTask::mpMethod, CCopasiTask::mpProblem, COptMethod::optimise(), CCopasiTask::output(), COptProblem::randomizeStartValues(), COptProblem::rememberStartValues(), and COptProblem::resetEvaluations().

132 {
133  COptProblem * pProblem = dynamic_cast<COptProblem *>(mpProblem);
134  COptMethod * pMethod = dynamic_cast<COptMethod *>(mpMethod);
135 
136  if (!pProblem || !pMethod) return false;
137 
139 
140  pProblem->randomizeStartValues();
141  pProblem->rememberStartValues();
142 
143  if (useInitialValues) pProblem->resetEvaluations();
144 
146 
147  bool success = pMethod->optimise();
148 
149  pProblem->calculateStatistics();
150 
152 
153  return success;
154 }
CCopasiMethod * mpMethod
Definition: CCopasiTask.h:239
virtual bool calculateStatistics(const C_FLOAT64 &factor=1.0e-003, const C_FLOAT64 &resolution=1.0e-009)
virtual void output(const COutputInterface::Activity &activity)
void resetEvaluations()
virtual bool isValidProblem(const CCopasiProblem *pProblem)
CCopasiProblem * mpProblem
Definition: CCopasiTask.h:234
void rememberStartValues()
void randomizeStartValues()
virtual bool optimise()
Definition: COptMethod.cpp:184
bool COptTask::setCallBack ( CProcessReport pCallBack)
virtual

Set the call back of the task

Parameters
CProcessReport* pCallBack
Returns
bool success

Reimplemented from CCopasiTask.

Reimplemented in CFitTask.

Definition at line 90 of file COptTask.cpp.

References CCopasiTask::mpMethod, CCopasiTask::mpProblem, CCopasiProblem::setCallBack(), CCopasiMethod::setCallBack(), and CCopasiTask::setCallBack().

91 {
92  bool success = CCopasiTask::setCallBack(pCallBack);
93 
94  if (!mpProblem->setCallBack(pCallBack)) success = false;
95 
96  if (!mpMethod->setCallBack(pCallBack)) success = false;
97 
98  return success;
99 }
virtual bool setCallBack(CProcessReport *pCallBack)
CCopasiMethod * mpMethod
Definition: CCopasiTask.h:239
virtual bool setCallBack(CProcessReport *pCallBack)
CCopasiProblem * mpProblem
Definition: CCopasiTask.h:234
virtual bool setCallBack(CProcessReport *pCallBack)
bool COptTask::setMethodType ( const int &  type)
virtual

Set the method type applied to solve the task

Parameters
constCCopasiMethod::SubType & type
Returns
bool success

Reimplemented from CCopasiTask.

Reimplemented in CFitTask.

Definition at line 156 of file COptTask.cpp.

References CCopasiContainer::add(), createMethod(), CCopasiMethod::getSubType(), CCopasiTask::mpMethod, and pdelete.

Referenced by Arguments::prepareModel().

157 {
159 
160  if (mpMethod->getSubType() == Type) return true;
161 
162  pdelete(mpMethod);
163 
164  mpMethod = createMethod(Type);
165  this->add(mpMethod, true);
166 
167  return true;
168 }
CCopasiMethod * mpMethod
Definition: CCopasiTask.h:239
#define pdelete(p)
Definition: copasi.h:215
virtual CCopasiMethod * createMethod(const int &type) const
Definition: COptTask.cpp:171
const CCopasiMethod::SubType & getSubType() const
virtual bool add(CCopasiObject *pObject, const bool &adopt=true)

Member Data Documentation

const unsigned int COptTask::ValidMethods
static

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