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
CSteadyStateMethod Class Reference

#include <CSteadyStateMethod.h>

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

Public Types

enum  ReturnCode { notFound = 0, found, foundEquilibrium, foundNegative }
 
- 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

 CSteadyStateMethod (const CSteadyStateMethod &src, const CCopasiContainer *pParent=NULL)
 
void doJacobian (CMatrix< C_FLOAT64 > &jacobian, CMatrix< C_FLOAT64 > &jacobianX)
 
bool elevateChildren ()
 
std::string getMethodLog () const
 
C_FLOAT64 getStabilityResolution ()
 
virtual bool initialize (const CSteadyStateProblem *pProblem)
 
virtual bool isValidProblem (const CCopasiProblem *pProblem)
 
CSteadyStateMethod::ReturnCode process (CState *pState, CMatrix< C_FLOAT64 > &jacobianX, CProcessReport *handler)
 
 ~CSteadyStateMethod ()
 
- 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 ()
 
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 CSteadyStateMethodcreateMethod (CCopasiMethod::SubType subType=CCopasiMethod::Newton)
 
- 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

bool allPositive ()
 
void calculateJacobianX (const C_FLOAT64 &oldMaxRate)
 
 CSteadyStateMethod (CCopasiMethod::SubType subType, const CCopasiContainer *pParent=NULL)
 
void initializeParameter ()
 
bool isEquilibrium (const C_FLOAT64 &resolution) const
 
virtual
CSteadyStateMethod::ReturnCode 
processInternal ()
 
virtual
CSteadyStateMethod::ReturnCode 
returnProcess (bool steadyStateFound)
 
- 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

std::ostringstream mMethodLog
 
C_FLOAT64mpDerivationFactor
 
C_FLOAT64mpDerivationResolution
 
CMatrix< C_FLOAT64 > * mpJacobianX
 
CModelmpModel
 
CSteadyStateTaskmpParentTask
 
const CSteadyStateProblemmpProblem
 
C_FLOAT64mpSSResolution
 
CStatempSteadyState
 
- 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

 CSteadyStateMethod ()
 

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 CSteadyStateMethod.h.

Member Enumeration Documentation

Enumerator
notFound 
found 
foundEquilibrium 
foundNegative 

Definition at line 46 of file CSteadyStateMethod.h.

Constructor & Destructor Documentation

CSteadyStateMethod::CSteadyStateMethod ( )
private

Default constructor.

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

Specific constructor.

Parameters
CCopasiMethod::SubTypesubType
constCCopasiContainer * pParent (default: NULL)

Default constructor.

Definition at line 58 of file CSteadyStateMethod.cpp.

References CONSTRUCTOR_TRACE, and initializeParameter().

59  :
60  CCopasiMethod(CCopasiTask::steadyState, subType, pParent),
61  mpProblem(NULL)
62 {
65 }
const CSteadyStateProblem * mpProblem
#define CONSTRUCTOR_TRACE
Definition: copasi.h:202
CSteadyStateMethod::CSteadyStateMethod ( const CSteadyStateMethod src,
const CCopasiContainer pParent = NULL 
)

Copy constructor.

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

Copy constructor.

Parameters
const CSteadyStateMethod &src

Definition at line 71 of file CSteadyStateMethod.cpp.

References CONSTRUCTOR_TRACE, and initializeParameter().

72  :
73  CCopasiMethod(src, pParent),
74  mpProblem(src.mpProblem)
75 {
78 }
const CSteadyStateProblem * mpProblem
#define CONSTRUCTOR_TRACE
Definition: copasi.h:202
CSteadyStateMethod::~CSteadyStateMethod ( )

Destructor.

Definition at line 83 of file CSteadyStateMethod.cpp.

References DESTRUCTOR_TRACE.

#define DESTRUCTOR_TRACE
Definition: copasi.h:206

Member Function Documentation

bool CSteadyStateMethod::allPositive ( )
protected

Check whether all values make physically sence, i.e., volumes and particle number are positive

Returns
bool allPositive

Definition at line 190 of file CSteadyStateMethod.cpp.

References CStateTemplate::beginIndependent(), CState::beginIndependent(), C_FLOAT64, CState::endDependent(), CModel::getQuantity2NumberFactor(), CModel::getState(), CModel::getStateTemplate(), mpDerivationResolution, mpModel, and CModel::updateSimulatedValues().

Referenced by CNewtonMethod::doIntegration(), CNewtonMethod::doNewtonStep(), and returnProcess().

191 {
192  // Assure that all values are updated.
194 
195  CModelEntity *const* ppEntity = mpModel->getStateTemplate().beginIndependent();
196  const C_FLOAT64 * pIt = mpModel->getState().beginIndependent();
197  const C_FLOAT64 * pEnd = mpModel->getState().endDependent();
198 
199  // Skip Model quantities of type ODE
200  for (; pIt != pEnd; ++pIt, ++ppEntity)
201  if (dynamic_cast< const CCompartment *>(*ppEntity) != NULL ||
202  dynamic_cast< const CMetab *>(*ppEntity) != NULL)
203  break;
204 
205  // For all compartments of type ODE we check that the volume is positive
206  for (; pIt != pEnd; ++pIt, ++ppEntity)
207  {
208  if (dynamic_cast< const CCompartment *>(*ppEntity) == NULL)
209  break;
210 
211  if (*pIt < - *mpDerivationResolution)
212  return false;
213  }
214 
215  // We need to check that all metabolites have positive particle numbers
216  // with respect to the given resolution.
217  C_FLOAT64 ParticleResolution =
219 
220  for (; pIt != pEnd; ++pIt, ++ppEntity)
221  {
222  if (dynamic_cast< const CMetab *>(*ppEntity) == NULL)
223  break;
224 
225  if (*pIt < ParticleResolution)
226  return false;
227  }
228 
229  // For all compartments of type ASSIGNMENT we check that the volume is positive
230  for (; pIt != pEnd; ++pIt, ++ppEntity)
231  {
232  if (dynamic_cast< CCompartment *>(*ppEntity) == NULL)
233  break;
234 
235  if (*pIt < - *mpDerivationResolution)
236  return false;
237  }
238 
239  return true;
240 }
void updateSimulatedValues(const bool &updateMoieties)
Definition: CModel.cpp:1851
C_FLOAT64 * endDependent()
Definition: CState.cpp:331
const C_FLOAT64 & getQuantity2NumberFactor() const
Definition: CModel.cpp:2354
CModelEntity ** beginIndependent()
Definition: CState.cpp:208
C_FLOAT64 * mpDerivationResolution
#define C_FLOAT64
Definition: copasi.h:92
const CStateTemplate & getStateTemplate() const
Definition: CModel.cpp:1172
const CState & getState() const
Definition: CModel.cpp:1771
C_FLOAT64 * beginIndependent()
Definition: CState.cpp:328
void CSteadyStateMethod::calculateJacobianX ( const C_FLOAT64 oldMaxRate)
protected

Definition at line 285 of file CSteadyStateMethod.cpp.

References CModel::calculateJacobianX(), min, mpDerivationFactor, mpDerivationResolution, mpJacobianX, mpModel, mpSteadyState, CModel::setState(), and CModel::updateSimulatedValues().

Referenced by CNewtonMethod::doNewtonStep(), and CNewtonMethod::targetFunction().

286 {
290  std::min(*mpDerivationFactor, oldMaxRate),
292 }
C_FLOAT64 * mpDerivationFactor
CMatrix< C_FLOAT64 > * mpJacobianX
void updateSimulatedValues(const bool &updateMoieties)
Definition: CModel.cpp:1851
void calculateJacobianX(CMatrix< C_FLOAT64 > &jacobianX, const C_FLOAT64 &derivationFactor, const C_FLOAT64 &resolution)
Definition: CModel.cpp:2082
void setState(const CState &state)
Definition: CModel.cpp:1785
C_FLOAT64 * mpDerivationResolution
#define min(a, b)
Definition: f2c.h:175
CSteadyStateMethod * CSteadyStateMethod::createMethod ( CCopasiMethod::SubType  subType = CCopasiMethod::Newton)
static

Create a trajectory method. Note: the returned object has to be released after use with delete

CSteadyStateMethod class. This class describes the interface to all steady state methods. The various method like Newton have to be derived from this class.

Created for COPASI by Stefan Hoops 2002

Definition at line 37 of file CSteadyStateMethod.cpp.

References fatalError, CCopasiMethod::Newton, and CCopasiMethod::unset.

Referenced by CSteadyStateTask::createMethod().

38 {
39  CSteadyStateMethod * pMethod = NULL;
40 
41  switch (subType)
42  {
43  case unset:
44  case Newton:
45  pMethod = new CNewtonMethod();
46  break;
47 
48  default:
49  fatalError();
50  }
51 
52  return pMethod;
53 }
#define fatalError()
void CSteadyStateMethod::doJacobian ( CMatrix< C_FLOAT64 > &  jacobian,
CMatrix< C_FLOAT64 > &  jacobianX 
)

calls the CModel methods to calculate the jacobians (at the steady state). This trivial method is implemented in the method because it may need to know about some method parameters

Definition at line 267 of file CSteadyStateMethod.cpp.

References CModel::calculateJacobian(), CModel::calculateJacobianX(), mpDerivationResolution, mpModel, mpSteadyState, CModel::setState(), and CModel::updateSimulatedValues().

Referenced by CSteadyStateTask::process().

269 {
272 
275 }
void updateSimulatedValues(const bool &updateMoieties)
Definition: CModel.cpp:1851
void calculateJacobianX(CMatrix< C_FLOAT64 > &jacobianX, const C_FLOAT64 &derivationFactor, const C_FLOAT64 &resolution)
Definition: CModel.cpp:2082
void calculateJacobian(CMatrix< C_FLOAT64 > &jacobian, const C_FLOAT64 &derivationFactor, const C_FLOAT64 &resolution)
Definition: CModel.cpp:2006
void setState(const CState &state)
Definition: CModel.cpp:1785
C_FLOAT64 * mpDerivationResolution
bool CSteadyStateMethod::elevateChildren ( )
virtual

This methods must be called to elevate subgroups to derived objects. The default implementation does nothing.

Returns
bool success

Reimplemented from CCopasiParameterGroup.

Definition at line 111 of file CSteadyStateMethod.cpp.

References initializeParameter().

112 {
114  return true;
115 }
std::string CSteadyStateMethod::getMethodLog ( ) const

Definition at line 294 of file CSteadyStateMethod.cpp.

References mMethodLog.

Referenced by StateSubwidget::loadAll().

295 {
296  return mMethodLog.str();
297 }
std::ostringstream mMethodLog
C_FLOAT64 CSteadyStateMethod::getStabilityResolution ( )

returns the resolution for stability analysis

Definition at line 277 of file CSteadyStateMethod.cpp.

References C_FLOAT64, CCopasiParameter::getValue(), and CCopasiParameter::Value::pUDOUBLE.

Referenced by CSteadyStateTask::process().

278 {
279  //C_FLOAT64* pTmp = (C_FLOAT64*)getValue("Stability Resolution").pUDOUBLE;
280  C_FLOAT64* pTmp = (C_FLOAT64*)getValue("Resolution").pUDOUBLE;
281  assert(pTmp);
282  return *pTmp;
283 }
const Value & getValue() const
#define C_FLOAT64
Definition: copasi.h:92
bool CSteadyStateMethod::initialize ( const CSteadyStateProblem pProblem)
virtual

Initialize the method must be called before process

Parameters
constCSteadyStateProblem * pProblem
Returns
bool success

Reimplemented in CNewtonMethod.

Definition at line 259 of file CSteadyStateMethod.cpp.

References CCopasiProblem::getModel(), mpModel, and mpProblem.

Referenced by CNewtonMethod::initialize(), and CSteadyStateTask::initialize().

260 {
261  mpProblem = pProblem;
263 
264  return true;
265 }
const CSteadyStateProblem * mpProblem
CModel * getModel() const
void CSteadyStateMethod::initializeParameter ( )
protected

initialize parameters and handle parameters of old copasi files

Definition at line 86 of file CSteadyStateMethod.cpp.

References CCopasiParameterGroup::assertParameter(), C_FLOAT64, CCopasiParameterGroup::getParameter(), CCopasiParameter::getValue(), mpDerivationFactor, mpDerivationResolution, mpSSResolution, CCopasiParameter::Value::pUDOUBLE, CCopasiParameterGroup::removeParameter(), CCopasiParameterGroup::setValue(), and CCopasiParameter::UDOUBLE.

Referenced by CSteadyStateMethod(), CNewtonMethod::elevateChildren(), and elevateChildren().

87 {
88  CCopasiParameter *pParm;
89 
90  assertParameter("Resolution", CCopasiParameter::UDOUBLE, (C_FLOAT64) 1.0e-009);
91  mpSSResolution = (C_FLOAT64*)getValue("Resolution").pUDOUBLE;
93 
94  assertParameter("Derivation Factor", CCopasiParameter::UDOUBLE, (C_FLOAT64) 1.0e-003);
95  mpDerivationFactor = (C_FLOAT64*)getValue("Derivation Factor").pUDOUBLE;
96 
97  // Check whether we have a method with the old parameter names
98  if ((pParm = getParameter("Newton.DerivationFactor")) != NULL)
99  {
100  setValue("Derivation Factor", *pParm->getValue().pUDOUBLE);
101  removeParameter("Newton.DerivationFactor");
102  }
103 
104  if ((pParm = getParameter("Newton.Resolution")) != NULL)
105  {
106  setValue("Resolution", *pParm->getValue().pUDOUBLE);
107  removeParameter("Newton.Resolution");
108  }
109 }
C_FLOAT64 * mpDerivationFactor
bool removeParameter(const std::string &name)
const Value & getValue() const
bool setValue(const std::string &name, const CType &value)
CCopasiParameter * getParameter(const std::string &name)
C_FLOAT64 * mpDerivationResolution
#define C_FLOAT64
Definition: copasi.h:92
C_FLOAT64 * mpSSResolution
CCopasiParameter * assertParameter(const std::string &name, const CCopasiParameter::Type type, const CType &defaultValue)
bool CSteadyStateMethod::isEquilibrium ( const C_FLOAT64 resolution) const
protected

Check whether the steady state is chemical equilibrium

Parameters
constC_FLOAT64 & resolution bool isEquilibrium

Definition at line 173 of file CSteadyStateMethod.cpp.

References CCopasiVector< T >::begin(), CCopasiVector< T >::end(), CCopasiProblem::getModel(), CModel::getReactions(), CModelEntity::getValue(), and mpProblem.

Referenced by returnProcess().

174 {
177 
178  for (; it != end; ++it)
179  {
180  const CCompartment * pCompartment = (*it)->getLargestCompartment();
181 
182  if (pCompartment != NULL &&
183  (*it)->getFlux() / pCompartment->getValue() > resolution)
184  return false; //TODO: smallest or largest ?
185  }
186 
187  return true;
188 }
iterator begin()
iterator end()
const CSteadyStateProblem * mpProblem
const C_FLOAT64 & getValue() const
CCopasiVectorNS< CReaction > & getReactions()
Definition: CModel.cpp:1039
CModel * getModel() const
bool CSteadyStateMethod::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 CNewtonMethod.

Definition at line 243 of file CSteadyStateMethod.cpp.

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

Referenced by CNewtonMethod::isValidProblem().

244 {
245  if (!CCopasiMethod::isValidProblem(pProblem)) return false;
246 
247  const CSteadyStateProblem * pP = dynamic_cast<const CSteadyStateProblem *>(pProblem);
248 
249  if (!pP)
250  {
251  //not a TrajectoryProblem
252  CCopasiMessage(CCopasiMessage::EXCEPTION, "Problem is not a steady state problem.");
253  return false;
254  }
255 
256  return true;
257 }
virtual bool isValidProblem(const CCopasiProblem *pProblem)
CSteadyStateMethod::ReturnCode CSteadyStateMethod::process ( CState pState,
CMatrix< C_FLOAT64 > &  jacobianX,
CProcessReport handler 
)

This instructs the method to calculate a the steady state starting with the initialState given. The steady state is returned in the object pointed to by steadyState.

Parameters
CState* steadyState
CMatrix<C_FLOAT64 > & jacobianX
CProcessReport* handler
Returns
CSteadyStateMethod::ReturnCode returnCode

This instructs the method to calculate a the steady state starting with the initialState given. The steady state is returned in the object pointed to by steadyState.

Parameters
CState* steadyState
constCState * initialState
C_FLOAT64* jacobian
CEigen* eigenValues
Returns
CSteadyStateMethod::ReturnCode returnCode

Definition at line 128 of file CSteadyStateMethod.cpp.

References CCopasiObject::getObjectParent(), CCopasiMethod::mpCallBack, mpJacobianX, mpParentTask, mpSteadyState, and processInternal().

Referenced by CSteadyStateTask::process().

131 {
132  mpParentTask = dynamic_cast<CSteadyStateTask *>(getObjectParent());
133  assert(mpParentTask);
134 
135  mpSteadyState = pState;
136  mpJacobianX = & jacobianX;
137  mpCallBack = handler;
138 
139  return processInternal();
140 }
CMatrix< C_FLOAT64 > * mpJacobianX
CSteadyStateTask * mpParentTask
virtual CSteadyStateMethod::ReturnCode processInternal()
CProcessReport * mpCallBack
CCopasiContainer * getObjectParent() const
CSteadyStateMethod::ReturnCode CSteadyStateMethod::processInternal ( )
protectedvirtual

This instructs the method to calculate a the steady state starting with the initialState given. The steady state is returned in the object pointed to by steadyState.

Returns
CSteadyStateMethod::ReturnCode returnCode

This instructs the method to calculate a the steady state

Returns
CSteadyStateMethod::ReturnCode returnCode

Reimplemented in CNewtonMethod.

Definition at line 170 of file CSteadyStateMethod.cpp.

References notFound.

Referenced by process().

CSteadyStateMethod::ReturnCode CSteadyStateMethod::returnProcess ( bool  steadyStateFound)
protectedvirtual

This function has to be called at the return of any implementation of the protected function process()

Returns
CSteadyStateMethod::ReturnCode returnCode

This function has to be called at the return of any implementation of the protected function process

Parameters
boolsuccess
constC_FLOAT64 & factor
constC_FLOAT64 & resolution
Returns
CSteadyStateMethod::ReturnCode returnCode

Definition at line 151 of file CSteadyStateMethod.cpp.

References allPositive(), found, foundEquilibrium, foundNegative, isEquilibrium(), mpSSResolution, and notFound.

Referenced by CNewtonMethod::processInternal().

Member Data Documentation

std::ostringstream CSteadyStateMethod::mMethodLog
protected
C_FLOAT64* CSteadyStateMethod::mpDerivationFactor
protected

The factor for numerical derivation

Definition at line 88 of file CSteadyStateMethod.h.

Referenced by calculateJacobianX(), and initializeParameter().

C_FLOAT64* CSteadyStateMethod::mpDerivationResolution
protected

The resolution of the variable of numerical derivation

Definition at line 93 of file CSteadyStateMethod.h.

Referenced by allPositive(), calculateJacobianX(), doJacobian(), and initializeParameter().

CMatrix< C_FLOAT64 >* CSteadyStateMethod::mpJacobianX
protected

The jacobian of the steadystate

Definition at line 78 of file CSteadyStateMethod.h.

Referenced by calculateJacobianX(), process(), and CNewtonMethod::solveJacobianXeqB().

CModel* CSteadyStateMethod::mpModel
protected
CSteadyStateTask* CSteadyStateMethod::mpParentTask
protected

A pointer to the task.

Definition at line 68 of file CSteadyStateMethod.h.

Referenced by process().

const CSteadyStateProblem* CSteadyStateMethod::mpProblem
protected

A pointer to the problem.

Definition at line 58 of file CSteadyStateMethod.h.

Referenced by CNewtonMethod::initialize(), initialize(), and isEquilibrium().

C_FLOAT64* CSteadyStateMethod::mpSSResolution
protected

The concentration rate that is considered zero

Definition at line 83 of file CSteadyStateMethod.h.

Referenced by CNewtonMethod::initialize(), initializeParameter(), CNewtonMethod::isSteadyState(), returnProcess(), and CNewtonMethod::targetFunction().

CState* CSteadyStateMethod::mpSteadyState
protected

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