COPASI API  4.40.278
CTSSAMethod Class Referenceabstract

The CTSSAMethod class is the base class for all time scale separation analysis methods. More...

#include <CTSSAMethod.h>

Inheritance diagram for CTSSAMethod:
[legend]

Public Member Functions

virtual void createAnnotationsM ()
 
 CTSSAMethod (const CDataContainer *pParent, const CTaskEnum::Method &methodType, const CTaskEnum::Task &taskType=CTaskEnum::Task::tssAnalysis)
 
 CTSSAMethod (const CTSSAMethod &src, const CDataContainer *pParent)
 
void emptyVectors ()
 
const int & getCurrentStep () const
 
const CDataArraygetTable (const std::string &name)
 
const std::vector< std::string > & getTableNames () const
 
C_FLOAT64 getTimeForStep (int step) const
 
CVector< C_FLOAT64getVec_TimeScale (int step)
 
virtual void initializeOutput ()
 
virtual void initializeParameter ()
 
virtual bool isValidProblem (const CCopasiProblem *pProblem)
 
virtual bool setAnnotationM (size_t s)=0
 
void setProblem (CTSSAProblem *problem)
 
void setVectors (int slowMode)
 
virtual void start ()
 
virtual void step (const double &deltaT)
 
virtual ~CTSSAMethod ()
 
- Public Member Functions inherited from CCopasiMethod
 CCopasiMethod (const CCopasiMethod &src, const CDataContainer *pParent)
 
virtual void clearCallBack ()
 
const CProcessReportLevelgetCallBack () const
 
CMathContainergetMathContainer () const
 
const CTaskEnum::MethodgetSubType () const
 
const CTaskEnum::TaskgetType () const
 
virtual void load (CReadConfig &configBuffer, CReadConfig::Mode mode=CReadConfig::SEARCH)
 
CCopasiMethodoperator= (const CCopasiMethod &rhs)
 
virtual void print (std::ostream *ostream) const
 
virtual void printResult (std::ostream *ostream) const
 
virtual bool setCallBack (CProcessReportLevel callBack)
 
void setMathContainer (CMathContainer *pContainer)
 
virtual ~CCopasiMethod ()
 
- Public Member Functions inherited from CCopasiParameterGroup
bool addGroup (const std::string &name)
 
void addParameter (CCopasiParameter *pParameter)
 
bool addParameter (const CCopasiParameter &parameter)
 
bool addParameter (const std::string &name, const CCopasiParameter::Type type, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All)
 
template<class CType >
bool addParameter (const std::string &name, const CCopasiParameter::Type type, const CType &value, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All)
 
virtual bool applyData (const CData &data, CUndoData::CChangeSet &changes)
 
CCopasiParameterGroupassertGroup (const std::string &name, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All)
 
template<class CType >
CType * assertParameter (const std::string &name, const CCopasiParameter::Type type, const CType &defaultValue, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All)
 
index_iterator beginIndex () const
 
const_name_iterator beginName () const
 
 CCopasiParameterGroup (const CCopasiParameterGroup &src, const CDataContainer *pParent=NULL)
 
 CCopasiParameterGroup (const std::string &name, const CDataContainer *pParent=NO_PARENT, const std::string &objectType="ParameterGroup")
 
void clear ()
 
virtual void createUndoData (CUndoData &undoData, const CUndoData::Type &type, const CData &oldData=CData(), const CCore::Framework &framework=CCore::Framework::ParticleNumbers) const
 
index_iterator endIndex () const
 
const_name_iterator endName () const
 
CCopasiParameterGroupgetElementTemplates ()
 
const CCopasiParameterGroupgetElementTemplates () const
 
CCopasiParameterGroupgetGroup (const size_t &index)
 
const CCopasiParameterGroupgetGroup (const size_t &index) const
 
CCopasiParameterGroupgetGroup (const std::string &name)
 
const CCopasiParameterGroupgetGroup (const std::string &name) const
 
virtual size_t getIndex (const CDataObject *pObject) const
 
size_t getIndex (const std::string &name) const
 
std::string getKey (const size_t &index) const
 
std::string getKey (const std::string &name) const
 
virtual const std::string & getName (const size_t &index) const
 
virtual const CObjectInterfacegetObject (const CCommonName &cn) const
 
CCopasiParametergetParameter (const size_t &index)
 
const CCopasiParametergetParameter (const size_t &index) const
 
CCopasiParametergetParameter (std::string name)
 
const CCopasiParametergetParameter (std::string name) const
 
CCopasiParameter::Type getType (const size_t &index) const
 
CCopasiParameter::Type getType (const std::string &name) const
 
std::string getUniqueParameterName (const CCopasiParameter *pParameter) const
 
template<class CType >
CType & getValue (const size_t &index)
 
template<class CType >
const CType & getValue (const size_t &index) const
 
template<class CType >
CType & getValue (const std::string &name)
 
template<class CType >
const CType & getValue (const std::string &name) const
 
bool haveTemplate () const
 
virtual CUndoObjectInterfaceinsert (const CData &data)
 
CCopasiParameterGroupoperator= (const CCopasiParameterGroup &rhs)
 
virtual bool remove (CDataObject *pObject)
 
bool removeParameter (CCopasiParameter *pParameter)
 
bool removeParameter (const size_t &index)
 
bool removeParameter (const std::string &name)
 
virtual void setUserInterfaceFlag (const UserInterfaceFlag &flag)
 
template<class CType >
bool setValue (const size_t &index, const CType &value)
 
template<class CType >
bool setValue (const std::string &name, const CType &value)
 
size_t size (const UserInterfaceFlag &require=UserInterfaceFlag::None, const UserInterfaceFlag &exclude=UserInterfaceFlag::None) const
 
bool swap (const size_t &iFrom, const size_t &iTo)
 
bool swap (index_iterator &from, index_iterator &to)
 
virtual CData toData () const
 
virtual void updateIndex (const size_t &index, const CUndoObjectInterface *pUndoObject)
 
virtual ~CCopasiParameterGroup ()
 
- Public Member Functions inherited from CCopasiParameter
 CCopasiParameter (const CCopasiParameter &src, const CDataContainer *pParent)
 
 CCopasiParameter (const std::string &name, const Type &type, const void *pValue=NULL, const CDataContainer *pParent=NO_PARENT, const std::string &objectType="Parameter")
 
virtual CCommonName getCN () const override
 
template<class CType >
const CType & getDefault () const
 
virtual const std::string & getKey () const override
 
virtual std::string getObjectDisplayName () const override
 
const CCopasiParameter::TypegetType () const
 
const UserInterfaceFlaggetUserInterfaceFlag () const
 
template<class CType >
std::vector< std::pair< CType, CType > > & getValidValues ()
 
template<class CType >
const std::vector< std::pair< CType, CType > > & getValidValues () const
 
void * getValidValuesPointer () const
 
template<class CType >
CType & getValue ()
 
template<class CType >
const CType & getValue () const
 
virtual void * getValuePointer () const override
 
CDataObjectgetValueReference () const
 
bool hasValidValues () const
 
bool isBasic () const
 
bool isDefault () const
 
bool isEditable () const
 
bool isUnsupported () const
 
bool isValidValue (const bool &value) const
 
bool isValidValue (const C_FLOAT64 &value) const
 
bool isValidValue (const C_INT32 &value) const
 
bool isValidValue (const CCommonName &value) const
 
template<class CType >
bool isValidValue (const CType &) const
 
bool isValidValue (const std::string &value) const
 
bool isValidValue (const std::vector< CCopasiParameter * > &value) const
 
bool isValidValue (const unsigned C_INT32 &value) const
 
CCopasiParameteroperator= (const CCopasiParameter &rhs)
 
template<class CType >
bool setDefault (const CType &defaultValue)
 
bool setDefault (const std::vector< CCopasiParameter * > &defaultValue)
 
virtual bool setObjectParent (const CDataContainer *pParent) override
 
template<class CType , class Enum >
bool setValidValues (const CEnumAnnotation< CType, Enum > &validValues)
 
template<class CType >
bool setValidValues (const std::vector< std::pair< CType, CType > > &validValues)
 
template<class CType >
bool setValue (const CType &value)
 
bool setValue (const std::vector< CCopasiParameter * > &value)
 
virtual ~CCopasiParameter ()
 
- Public Member Functions inherited from CDataContainer
virtual bool add (CDataObject *pObject, const bool &adopt=true)
 
virtual bool appendDeletedDependentData (CUndoData &undoData) const
 
 CDataContainer (const CDataContainer &src, const CDataContainer *pParent)
 
 CDataContainer (const std::string &name, const CDataContainer *pParent=NO_PARENT, const std::string &type="CN", const CFlags< Flag > &flag=CFlags< Flag >::None)
 
virtual std::string getChildObjectUnits (const CDataObject *pObject) const
 
void getDescendants (CDataObject::DataObjectSet &descendants, const bool &recursive=false) const
 
virtual objectMapgetObjects ()
 
virtual const objectMapgetObjects () const
 
virtual const std::string getUnits () const override
 
virtual const CDataObjectgetValueObject () const override
 
void objectRenamed (CDataObject *pObject, const std::string &oldName)
 
virtual ~CDataContainer ()
 
- Public Member Functions inherited from CDataObject
void addIssue (const CIssue &issue)
 
void addReference (const CDataContainer *pReference)
 
virtual void calculateValue () override
 
 CDataObject (const CDataObject &src, const CDataContainer *pParent=NULL)
 
virtual void destruct () override
 
virtual const CDataObjectgetDataObject () const override
 
CDataContainergetObjectAncestor (const std::string &type) const
 
CDataModelgetObjectDataModel () const
 
const CObjectInterfacegetObjectFromCN (const CCommonName &cn) const
 
const std::string & getObjectName () const
 
CDataContainergetObjectParent () const
 
const std::string & getObjectType () const
 
virtual const CObjectInterface::ObjectSetgetPrerequisites () const override
 
virtual const CValiditygetValidity () const override
 
bool hasFlag (const Flag &flag) const
 
virtual bool isPrerequisiteForContext (const CObjectInterface *pObject, const CCore::SimulationContextFlag &context, const CObjectInterface::ObjectSet &changedObjects) const override
 
bool prerequisitsContains (const DataObjectSet &objects) const
 
void removeIssue (const CIssue &issue)
 
void removeReference (const CDataContainer *pReference)
 
bool setObjectName (const std::string &name)
 
void validityChanged (const CValidity &changedValidity) override
 
void validityRemoved (const CValidity &changedValidity)
 
virtual ~CDataObject ()
 
- Public Member Functions inherited from CObjectInterface
 CObjectInterface ()
 
 CObjectInterface (const CObjectInterface &src)
 
virtual ~CObjectInterface ()
 
- Public Member Functions inherited from CUndoObjectInterface
 CUndoObjectInterface ()
 
 CUndoObjectInterface (const CUndoObjectInterface &src)
 
bool generateUuid ()
 
const xg::Guid & getUuid () const
 
bool setUuid (const std::string &uuid)
 
bool setUuid (const xg::Guid &uuid)
 
virtual ~CUndoObjectInterface ()
 

Protected Member Functions

void calculateDerivatives (C_FLOAT64 *X1, C_FLOAT64 *Y1, bool useReducedModel)
 
bool elevateChildren ()
 
void integrationMethodStart ()
 
void integrationStep (const double &deltaT)
 
void map_index (C_FLOAT64 *eval_r, C_INT *index, const C_INT &dim)
 
void map_index_desc (C_FLOAT64 *eval_r, C_INT *index, const C_INT &dim)
 
void mat_anal_fast_space (C_INT &slow)
 
void mat_anal_fast_space_thomas (C_INT &slow)
 
void mat_anal_metab (C_INT &slow)
 
void mat_anal_mod (C_INT &slow)
 
void mat_anal_mod_space (C_INT &slow)
 
double orthog (C_INT &number1, C_INT &number2)
 
void schur (C_INT &info)
 
void schur_desc (C_INT &info)
 
void sylvester (C_INT slow, C_INT &info)
 
void update_nid (C_INT *index, C_INT *nid, const C_INT &dim)
 
void update_pid (C_INT *index, C_INT *pid, const C_INT &dim)
 
virtual void updateCurrentTime ()
 
- Protected Member Functions inherited from CCopasiMethod
 CCopasiMethod (const CCopasiMethod &src)
 
 CCopasiMethod (const CDataContainer *pParent, const CTaskEnum::Method &methodType, const CTaskEnum::Task &taskType)
 
virtual void signalMathContainerChanged ()
 
- Protected Member Functions inherited from CCopasiParameterGroup
 CCopasiParameterGroup ()
 
- Protected Member Functions inherited from CCopasiParameter
 CCopasiParameter (const CCopasiParameter &src)
 
- Protected Member Functions inherited from CDataContainer
template<class CType >
CDataMatrixReference< CType > * addMatrixReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None)
 
template<class CType >
CDataObjectReference< CType > * addObjectReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None)
 
template<class CType >
CDataVectorReference< CType > * addVectorReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None)
 
 CDataContainer (const CDataContainer &src)
 
void initObjects ()
 
- Protected Member Functions inherited from CDataObject
 CDataObject ()
 
 CDataObject (const std::string &name, const CDataContainer *pParent=static_cast< CDataContainer * >((void *) 0), const std::string &type="CN", const CFlags< Flag > &flag=CFlags< Flag >::None)
 

Protected Attributes

std::map< std::string, CDataArray * > mapTableToName
 
CVector< C_FLOAT64mCfast
 
C_FLOAT64 mConcentration2Number
 
CVectorCore< C_FLOAT64mContainerState
 
int mCurrentStep
 
std::vector< C_FLOAT64mCurrentTime
 
C_INT mDim
 
C_FLOAT64 mDtol
 
C_FLOAT64 mEPS
 
CMatrix< C_FLOAT64mJacobian
 
CMatrix< C_FLOAT64mJacobian_initial
 
C_FLOAT64 mNumber2Concentration
 
C_FLOAT64mpContainerStateTime
 
C_FLOAT64mpFirstSpecies
 
const C_FLOAT64mpFirstSpeciesRate
 
CLsodaMethodmpLsodaMethod
 
CTSSAProblemmpProblem
 
CMatrix< C_FLOAT64mQ
 
CMatrix< C_FLOAT64mQ_desc
 
CMatrix< C_FLOAT64mQz
 
CMatrix< C_FLOAT64mR
 
CMatrix< C_FLOAT64mR_desc
 
C_INT32 mSlow
 
CMatrix< C_FLOAT64mTd
 
CMatrix< C_FLOAT64mTd_save
 
CMatrix< C_FLOAT64mTdInverse
 
CMatrix< C_FLOAT64mTdInverse_save
 
std::vector< C_INTmVec_SlowModes
 
std::vector< CVector< C_FLOAT64 > > mVec_TimeScale
 
CVector< C_FLOAT64mVfast_space
 
CMatrix< C_FLOAT64mVslow
 
CMatrix< C_FLOAT64mVslow_metab
 
CVector< C_FLOAT64mVslow_space
 
CVector< C_FLOAT64mY_cons
 
CVector< C_FLOAT64mY_initial
 
std::vector< std::string > tableNames
 
- Protected Attributes inherited from CCopasiMethod
CMathContainermpContainer
 
CProcessReportLevel mProcessReport
 
- Protected Attributes inherited from CCopasiParameter
std::string mKey
 
void * mpDefault
 
void * mpValidValues
 
void * mpValue
 
CDataObjectmpValueReference
 
UserInterfaceFlag mUserInterfaceFlag
 
- Protected Attributes inherited from CDataContainer
objectMap mObjects
 
- Protected Attributes inherited from CDataObject
ObjectSet mPrerequisits
 
std::set< CDataContainer * > mReferences
 
- Protected Attributes inherited from CObjectInterface
CValidity mValidity
 

Private Member Functions

 CTSSAMethod ()
 

Additional Inherited Members

- Public Types inherited from CCopasiParameterGroup
typedef CDataObjectMap::const_type_iterator< CCopasiParameterconst_name_iterator
 
typedef std::vector< CCopasiParameter * > elements
 
typedef elements::iterator index_iterator
 
typedef CDataObjectMap::type_iterator< CCopasiParametername_iterator
 
- Public Types inherited from CCopasiParameter
enum class  eUserInterfaceFlag { editable , basic , unsupported , __SIZE }
 
enum class  Type {
  DOUBLE = 0 , UDOUBLE , INT , UINT ,
  BOOL , GROUP , STRING , CN ,
  KEY , FILE , EXPRESSION , INVALID ,
  __SIZE
}
 
typedef CFlags< eUserInterfaceFlagUserInterfaceFlag
 
- Public Types inherited from CDataContainer
typedef CDataObjectMap objectMap
 
- Public Types inherited from CDataObject
typedef std::set< const CDataObject * > DataObjectSet
 
enum  Flag {
  Container , Vector , Matrix , NameVector ,
  Reference , ValueBool , ValueInt , ValueInt64 ,
  ValueDbl , NonUniqueName , StaticString , ValueString ,
  Separator , DisplayName , ModelEntity , Array ,
  DataModel , Root , Gui , __SIZE
}
 
- Public Types inherited from CObjectInterface
typedef std::vector< const CDataContainer * > ContainerList
 
typedef std::set< const CObjectInterface * > ObjectSet
 
- Static Public Member Functions inherited from CCopasiParameter
static void allocateValidValues (const Type &type, void *&pValidValues)
 
static void allocateValue (const Type &type, void *&pValue)
 
static void assignValue (const Type &type, void *&pValue, const void *pNewValue)
 
static void deleteValidValues (const Type &type, void *&pValidValues)
 
static void deleteValue (const Type &type, void *&pValue)
 
static CCopasiParameterfromData (const CData &data, CUndoObjectInterface *pParent)
 
- Static Public Member Functions inherited from CDataContainer
static CDataContainerfromData (const CData &data, CUndoObjectInterface *pParent)
 
- Static Public Member Functions inherited from CDataObject
static CDataObjectfromData (const CData &data, CUndoObjectInterface *pParent)
 
static void sanitizeObjectName (std::string &name)
 
- Static Public Member Functions inherited from CObjectInterface
static const CDataObjectDataObject (const CObjectInterface *pInterface)
 
static CObjectInterfaceGetObjectFromCN (const ContainerList &listOfContainer, const CCommonName &objName)
 
- Static Public Member Functions inherited from CUndoObjectInterface
template<class CType >
static CType * fromData (const CData &, CUndoObjectInterface *)
 
- Static Public Attributes inherited from CCopasiParameter
static const CEnumAnnotation< std::string, TypeTypeName
 
static const CEnumAnnotation< std::string, TypeXMLType
 
- Static Public Attributes inherited from CDataContainer
static const CObjectInterface::ContainerList EmptyList
 

Detailed Description

The CTSSAMethod class is the base class for all time scale separation analysis methods.

Constructor & Destructor Documentation

◆ CTSSAMethod() [1/3]

CTSSAMethod::CTSSAMethod ( )
private

Default constructor.

◆ CTSSAMethod() [2/3]

CTSSAMethod::CTSSAMethod ( const CDataContainer pParent,
const CTaskEnum::Method methodType,
const CTaskEnum::Task taskType = CTaskEnum::Task::tssAnalysis 
)

Specific constructor

Parameters
constCDataContainer * pParent
constCTaskEnum::Method & methodType
constCTaskEnum::Task & taskType (default: tssAnalysis)

CTSSAMethod class. This class describes the interface to all time scale separation analysis methods. The various method like ILDM or CSP have to be derived from this class. Default constructor.

◆ CTSSAMethod() [3/3]

CTSSAMethod::CTSSAMethod ( const CTSSAMethod src,
const CDataContainer pParent 
)

Copy constructor.

Parameters
const CTSSAMethod &src
constCDataContainer * pParent (default: NULL)

Copy constructor.

Parameters
const CTSSAMethod &src

◆ ~CTSSAMethod()

CTSSAMethod::~CTSSAMethod ( )
virtual

Destructor.

References mpLsodaMethod, and pdelete.

Member Function Documentation

◆ calculateDerivatives()

◆ createAnnotationsM()

void CTSSAMethod::createAnnotationsM ( )
virtual

create the CArraAnnotations for every ILDM-tab in the CQTSSAResultSubWidget input for each CArraAnnotations is a seperate CMatrix

Create the CArraAnnotations for every ILDM-tab in the CQTSSAResultSubWidget. Input for each CArraAnnotations is a separate CMatrix.

Reimplemented in CILDMModifiedMethod, CILDMMethod, and CCSPMethod.

◆ elevateChildren()

bool CTSSAMethod::elevateChildren ( )
protectedvirtual

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

Returns
bool success

Reimplemented from CCopasiParameterGroup.

References initializeParameter().

◆ emptyVectors()

void CTSSAMethod::emptyVectors ( )

empty every vector to be able to fill them with new values for a new calculation also nullify the step counter

Empty every vector to be able to fill them with new values for a new calculation. Also nullify the step counter.

◆ getCurrentStep()

const int & CTSSAMethod::getCurrentStep ( ) const

Retrieve the current step

References mCurrentStep.

◆ getTable()

const CDataArray * CTSSAMethod::getTable ( const std::string &  name)

References mapTableToName.

◆ getTableNames()

const std::vector< std::string > & CTSSAMethod::getTableNames ( ) const

References tableNames.

◆ getTimeForStep()

C_FLOAT64 CTSSAMethod::getTimeForStep ( int  step) const
Returns
required time-value from timevector

References mCurrentTime, and step().

Referenced by CCSPMethod::printResult(), and CILDMModifiedMethod::printResult().

◆ getVec_TimeScale()

CVector< C_FLOAT64 > CTSSAMethod::getVec_TimeScale ( int  step)
Returns
mVec_TimeScale for visualization in ILDM-tab in the CQTSSAResultSubWidget

return mVec_TimeScale for visualization in ILDM-tab in the CQTSSAResultSubWidget

References mVec_TimeScale, and step().

◆ initializeOutput()

void CTSSAMethod::initializeOutput ( )
virtual

initialize output for the result elements, this method initializes the output elements so that an output handler can be used afterwards

Reimplemented in CILDMModifiedMethod, CILDMMethod, and CCSPMethod.

Referenced by CTSSATask::initialize(), and CTSSATask::updateMatrices().

◆ initializeParameter()

◆ integrationMethodStart()

void CTSSAMethod::integrationMethodStart ( )
protected

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

References mpLsodaMethod, and CLsodaMethod::start().

Referenced by CCSPMethod::start(), CILDMMethod::start(), and CILDMModifiedMethod::start().

◆ integrationStep()

void CTSSAMethod::integrationStep ( const double &  deltaT)
protected

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

References mpLsodaMethod, and CLsodaMethod::step().

Referenced by CCSPMethod::step(), CILDMMethod::step(), and CILDMModifiedMethod::step().

◆ isValidProblem()

◆ map_index()

void CTSSAMethod::map_index ( C_FLOAT64 eval_r,
C_INT index,
const C_INT dim 
)
protected

MAP_INDEX used for sorting of SchurDecompostion

References C_FLOAT64, C_INT, and max.

Referenced by schur().

◆ map_index_desc()

void CTSSAMethod::map_index_desc ( C_FLOAT64 eval_r,
C_INT index,
const C_INT dim 
)
protected

This is the test only. We try to reorder the Schur matrix from slowest mode (on the bottom) to the fastest (on the top) The function map_index_desc() is used on the end of schur() in order to produce the orthogonal slow space

References C_FLOAT64, C_INT, and min.

Referenced by schur_desc().

◆ mat_anal_fast_space()

void CTSSAMethod::mat_anal_fast_space ( C_INT slow)
protected

MAT_ANAL_fast_space: mathematical analysis of matrices mTdInverse for post-analysis

References C_FLOAT64, C_INT, mDim, mTdInverse, mVfast_space, and CMatrix< CType >::resize().

Referenced by CILDMModifiedMethod::deuflhard_metab(), CILDMMethod::step(), and CILDMModifiedMethod::step().

◆ mat_anal_fast_space_thomas()

void CTSSAMethod::mat_anal_fast_space_thomas ( C_INT slow)
protected

MAT_ANAL_fast_space: mathematical analysis of matrices mTdInverse for post-analysis

References C_FLOAT64, C_INT, mDim, mNumber2Concentration, mQ, mVfast_space, mY_initial, and CVector< CType >::resize().

◆ mat_anal_metab()

void CTSSAMethod::mat_anal_metab ( C_INT slow)
protected

MAT_ANAL_METAB: mathematical analysis of matrices mTd for post-analysis

References C_INT, mDim, mTd, mVslow_metab, and CVector< CType >::resize().

Referenced by CILDMMethod::step(), and CILDMModifiedMethod::step().

◆ mat_anal_mod()

void CTSSAMethod::mat_anal_mod ( C_INT slow)
protected

This is not very elegant solution. But I don't know the better one.

MAT_ANAL_MOD: mathematical analysis of matrices mTdInverse for post-analysis

References C_INT, mDim, mTdInverse, mVslow, CMatrix< CType >::resize(), and CVector< CType >::resize().

Referenced by CILDMMethod::step(), and CILDMModifiedMethod::step().

◆ mat_anal_mod_space()

void CTSSAMethod::mat_anal_mod_space ( C_INT slow)
protected

MAT_ANAL_MOD_space: mathematical analysis of matrices mTdInverse for post-analysis

References C_FLOAT64, C_INT, mDim, mTdInverse, mVslow_space, and CMatrix< CType >::resize().

Referenced by CILDMMethod::step(), and CILDMModifiedMethod::step().

◆ orthog()

double CTSSAMethod::orthog ( C_INT number1,
C_INT number2 
)
protected

References C_FLOAT64, C_INT, mDim, and mTdInverse.

Referenced by CILDMMethod::step().

◆ schur()

void CTSSAMethod::schur ( C_INT info)
protected

SCHUR: Schur Decomposition of Jacobian (reordered). Output: mQ - transformation matrix mR - block upper triangular matrix (with ordered eigenvalues)

References CVectorCore< CType >::array(), C_INT, dgees_(), dtrexc_(), fatalError, CCopasiMethod::getSubType(), map_index(), mDim, mJacobian_initial, mQ, mR, CVector< CType >::resize(), CTaskEnum::tssCSP, CTaskEnum::tssILDM, CTaskEnum::tssILDMModified, update_nid(), and update_pid().

Referenced by CCSPMethod::cspstep(), CILDMMethod::step(), and CILDMModifiedMethod::step().

◆ schur_desc()

void CTSSAMethod::schur_desc ( C_INT info)
protected

SCHUR_desc: Schur Decomposition of Jacobian (reordered). Output: mQ_desc - transformation matrix mR_desc - block upper triangular matrix (with ordered eigenvalues)

References CVectorCore< CType >::array(), C_INT, dgees_(), dtrexc_(), map_index_desc(), mDim, mJacobian_initial, mQ_desc, mR_desc, CVector< CType >::resize(), update_nid(), and update_pid().

Referenced by CILDMMethod::step().

◆ setAnnotationM()

virtual bool CTSSAMethod::setAnnotationM ( size_t  s)
pure virtual

◆ setProblem()

void CTSSAMethod::setProblem ( CTSSAProblem problem)

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

Parameters
CTSSAProblem *problem

References mpProblem.

Referenced by CTSSATask::initialize().

◆ setVectors()

void CTSSAMethod::setVectors ( int  slowMode)

upgrade all vectors with values from actually calculalion for current step

upgrade all vectors with values from actually calculation for current step

◆ start()

◆ step()

void CTSSAMethod::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

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 time step taken.

Parameters
const double &deltaT

Reimplemented in CILDMModifiedMethod, CILDMMethod, and CCSPMethod.

Referenced by getTimeForStep(), getVec_TimeScale(), and CTSSATask::processStep().

◆ sylvester()

void CTSSAMethod::sylvester ( C_INT  slow,
C_INT info 
)
protected

SYLVESTER: Solution of Sylvester equation for given slow, mQ,mR Output: mTd, mTdinverse, mQz (is used later for Newton iterations)

References CVectorCore< CType >::array(), C_FLOAT64, C_INT, dtrsyl_(), mDim, mJacobian_initial, mQ, mQz, mR, mTd, mTdInverse, CMatrix< CType >::resize(), and CVector< CType >::resize().

Referenced by CILDMMethod::step().

◆ update_nid()

void CTSSAMethod::update_nid ( C_INT index,
C_INT nid,
const C_INT dim 
)
protected

UPDATE_NID: used for sorting of SchurDecompostion

References C_INT.

Referenced by schur(), and schur_desc().

◆ update_pid()

void CTSSAMethod::update_pid ( C_INT index,
C_INT pid,
const C_INT dim 
)
protected

UPDATE_PID: used for sorting of SchurDecompostion

References C_INT.

Referenced by schur(), and schur_desc().

◆ updateCurrentTime()

void CTSSAMethod::updateCurrentTime ( )
protectedvirtual

stores the current time in the time vector

References mCurrentStep, mCurrentTime, and mpContainerStateTime.

Referenced by CCSPMethod::step(), CILDMMethod::step(), and CILDMModifiedMethod::step().

Member Data Documentation

◆ mapTableToName

std::map< std::string, CDataArray* > CTSSAMethod::mapTableToName
protected

◆ mCfast

CVector<C_FLOAT64> CTSSAMethod::mCfast
protected

◆ mConcentration2Number

C_FLOAT64 CTSSAMethod::mConcentration2Number
protected

Referenced by calculateDerivatives(), and start().

◆ mContainerState

CVectorCore< C_FLOAT64 > CTSSAMethod::mContainerState
protected

Referenced by start().

◆ mCurrentStep

◆ mCurrentTime

std::vector< C_FLOAT64 > CTSSAMethod::mCurrentTime
protected

◆ mDim

◆ mDtol

◆ mEPS

C_FLOAT64 CTSSAMethod::mEPS
protected

◆ mJacobian

CMatrix<C_FLOAT64> CTSSAMethod::mJacobian
protected

◆ mJacobian_initial

◆ mNumber2Concentration

◆ mpContainerStateTime

C_FLOAT64* CTSSAMethod::mpContainerStateTime
protected

◆ mpFirstSpecies

C_FLOAT64* CTSSAMethod::mpFirstSpecies
protected

◆ mpFirstSpeciesRate

const C_FLOAT64* CTSSAMethod::mpFirstSpeciesRate
protected

◆ mpLsodaMethod

◆ mpProblem

CTSSAProblem* CTSSAMethod::mpProblem
protected

A pointer to the time scale separation analysis problem.

Referenced by setProblem().

◆ mQ

◆ mQ_desc

CMatrix<C_FLOAT64> CTSSAMethod::mQ_desc
protected

Referenced by schur_desc(), and CILDMMethod::step().

◆ mQz

◆ mR

◆ mR_desc

CMatrix<C_FLOAT64> CTSSAMethod::mR_desc
protected

Referenced by schur_desc(), and CILDMMethod::step().

◆ mSlow

◆ mTd

◆ mTd_save

CMatrix<C_FLOAT64> CTSSAMethod::mTd_save
protected

◆ mTdInverse

◆ mTdInverse_save

CMatrix<C_FLOAT64> CTSSAMethod::mTdInverse_save
protected

◆ mVec_SlowModes

◆ mVec_TimeScale

◆ mVfast_space

◆ mVslow

◆ mVslow_metab

◆ mVslow_space

◆ mY_cons

◆ mY_initial

◆ tableNames

std::vector<std::string> CTSSAMethod::tableNames
protected

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