57 std::vector<CFunction*> functionVector =
63 std::vector<std::string> ret;
64 size_t i, imax = functionVector.size();
66 for (i = 0; i < imax; ++i)
67 ret.push_back(functionVector[i]->getObjectName());
115 std::vector< std::vector<std::string> >::const_iterator it;
116 std::vector< std::vector<std::string> >::const_iterator iEnd;
117 std::vector<std::string>::const_iterator jt;
118 std::vector<std::string>::const_iterator jEnd;
121 std::string metabName;
124 std::vector<std::string> SubList;
126 SubList[0] =
"unknown";
130 for (i = 0; i !=
size(); ++i)
141 for (i = 0; it != iEnd; ++it, ++i)
152 for (jt = it->begin(), jEnd = it->end(); jt != jEnd; ++jt)
155 assert(metabName !=
"");
156 SubList.push_back(metabName);
161 assert(it->size() == 1);
162 SubList.resize(1); SubList[0] =
"unknown";
171 SubList[0] = metabName;
191 if (pParameter != NULL)
197 mValues[i] = std::numeric_limits< C_FLOAT64 >::quiet_NaN();
234 if (rea == NULL)
return false;
254 size_t i, imax =
size();
255 std::pair< std::string, std::string > Names;
257 for (i = 0; i < imax; ++i)
290 for (j = 0; j < jmax; ++j)
347 size_t i, imax = fl.size();
357 if (newFunction !=
"")
359 for (i = 0; i < imax; ++i)
360 if (fl[i] == newFunction)
370 if (
"" != currentFunctionName)
372 for (i = 0; i < imax; ++i)
373 if (fl[i] == currentFunctionName)
384 if (currentFunctionName !=
"")
386 s = currentFunctionName.substr(0, currentFunctionName.find(
'(') - 1);
390 for (i = 0; i < imax; i++)
392 if (fl[i].find(s) != std::string::npos)
404 for (i = 0; i < imax; i++)
406 if (fl[i].find(s) != std::string::npos)
417 for (i = 0; i < imax; i++)
419 if (fl[i].find(s) != std::string::npos)
467 {
mNameMap[pos - 1][0] =
"unknown"; }
469 for (i = 1; i < imax; ++i)
478 {
mNameMap[pos - 1][0] =
"unknown"; }
514 assert(paramSize == 1);
541 std::set< const CCopasiObject * > ToBeDeleted;
548 if (pReaction == NULL)
557 size_t j, jmax =
size();
558 size_t i, imax = OriginalParameters.
size();
561 for (i = 0; i < imax; ++i)
563 pParameter = OriginalParameters[i];
571 for (j = 0; j < jmax; ++j)
593 size_t i, imax =
size();
595 for (i = 0; i < imax; ++i)
624 std::vector<std::vector<std::string> > oldMap =
mNameMap;
625 std::vector<C_FLOAT64> oldValues =
mValues;
626 std::vector<bool> oldIsLocal =
mIsLocal;
632 size_t j, jmax = oldParameters->
size();
633 size_t i, imax =
size();
635 for (i = 0; i < imax; ++i)
638 for (j = 0; j < jmax; ++j)
641 if (j == jmax)
continue;
684 size_t i, imax =
size();
686 for (i = 0; i < imax; ++i)
733 if ((fn ==
"") || (fn ==
"undefined"))
748 if ((fn ==
"") || (fn ==
"undefined"))
771 size_t j, jmax =
size();
773 for (j = 0; j < jmax; ++j)
817 std::string otherMetab;
818 if (ml[0] == mn) otherMetab = ml[1];
else otherMetab = ml[0];
844 size_t i, imax = names.size();
846 std::vector<std::string> ret;
848 for (i = 0; i < imax; ++i)
858 if (Multiplicity == floor(Multiplicity + 0.5))
860 jmax = (size_t) Multiplicity;
868 for (j = 0; j < jmax; ++j)
870 ret.push_back(names[i]);
892 size_t i, imax =
size();
894 for (i = 0; i < imax; ++i)
933 size_t j, jmax =
size();
935 for (j = 0; j < jmax; ++j)
943 void CReactionInterface::printDebug()
const
945 std::cout <<
"Reaction interface " << std::endl;
949 size_t i, imax =
size();
951 for (i = 0; i < imax; ++i)
955 <<
", value: " <<
mValues[i] << std::endl;
957 size_t j, jmax =
mNameMap[i].size();
959 for (j = 0; j < jmax; ++j)
960 std::cout <<
" " <<
mNameMap[i][j] << std::endl;
963 std::cout << std::endl;
965 #endif // COPASI_DEBUG
size_t getMolecularity(CFunctionParameter::Role role) const
std::string getParameterName(size_t index) const
bool loadFromChemEq(const CChemEq &ce)
void setChemEqString(const std::string &eq, const std::string &newFunction)
void findAndSetFunction(const std::string &newFunction)
bool createOtherObjects() const
void setReversibility(bool rev)
static CFunction * getUndefinedFunction()
const CFunctionParameter::DataType & getType() const
const std::string & getObjectName() const
const CCopasiVectorN< CModelValue > & getModelValues() const
virtual size_t size() const
std::vector< CFunction * > suitableFunctions(const size_t noSubstrates, const size_t noProducts, const TriLogic reversibility)
CCopasiObject * get(const std::string &key)
virtual const std::string & getKey() const
void setParameterValue(const std::string ¶meterName, const C_FLOAT64 &value, const bool &updateStatus=true)
void updateModifiersInChemEq()
void connectFromScratch(CFunctionParameter::Role role)
void initFromReaction(const std::string &key)
size_t getNumberOfParametersByUsage(CFunctionParameter::Role usage) const
bool isLocalParameter(const size_t &index) const
const CCompartment * getCompartment() const
void clearParameterMapping(const std::string ¶meterName)
CModelValue * createModelValue(const std::string &name, const C_FLOAT64 &value=0.0)
bool isVector(size_t index) const
std::vector< C_FLOAT64 > mValues
CFunction * findLoadFunction(const std::string &functionName)
bool isLocked(size_t index) const
const C_FLOAT64 & getLocalValue(size_t index) const
const std::string & getMapping(size_t index) const
virtual const std::string & getKey() const
const C_FLOAT64 & getInitialValue() const
const CFunction * getFunction() const
CFunctionParameter::Role getUsage(size_t index) const
std::string mReactionReferenceKey
bool loadMappingAndValues(const CReaction &rea)
void connectNonMetabolites()
bool setFunction(const std::string &functionName)
const std::vector< std::string > & getListOfDisplayNames(CFunctionParameter::Role role) const
bool setChemEqString(const std::string &ces)
std::vector< std::vector< std::string > > mNameMap
bool isReversible() const
const Value & getValue() const
void setMapping(size_t index, std::string mn)
void reverse(bool rev, const std::string &newFunction)
bool createNonExistingMetabs()
const CFunctionParameter * getParameterByUsage(CFunctionParameter::Role usage, size_t &pos) const
CCopasiParameter * getParameter(const std::string &name)
const std::string & getKey() const
static CFunctionDB * getFunctionList()
const std::vector< C_FLOAT64 > & getListOfMultiplicities(CFunctionParameter::Role role) const
void setCompileFlag(bool flag=true)
bool writeToChemEq(CChemEq &ce) const
CCopasiVectorNS< CCompartment > & getCompartments()
void setLocalValue(size_t index, C_FLOAT64 value)
std::set< const CCopasiObject * > getDeletedParameters() const
static CKeyFactory * getKeyFactory()
const std::vector< std::string > & getListOfMetabs(CFunctionParameter::Role role) const
std::vector< std::string > getExpandedMetabList(CFunctionParameter::Role role) const
std::vector< bool > mIsLocal
const CCopasiParameterGroup & getParameters() const
void setParameterMapping(const size_t &index, const std::string &key)
bool fl(const C_FLOAT64 &d1, const C_FLOAT64 &d2)
CChemEqInterface mChemEqI
The class for handling a chemical kinetic function.
CCopasiVectorNS< CReaction > & getReactions()
std::string getChemEqString() const
void addModifier(const std::string &name)
const std::string & getFunctionName() const
bool isMulticompartment() const
CFunctionParameters * mpParameters
bool writeBackToReaction(CReaction *rea)
bool getReversibility() const
const CFunction * mpFunction
bool isLocalValue(size_t index) const
const std::vector< std::vector< std::string > > & getParameterMappings() const
std::vector< std::string > getListOfPossibleFunctions() const
bool isMulticompartment() const
void setFunctionAndDoMapping(const std::string &fn)
const CChemEq & getChemEq() const
void setReversibility(bool rev, const std::string &newFunction)
CFunctionParameters & getVariables()
void addParameterMapping(const size_t &index, const std::string &key)
CCompartment * createCompartment(const std::string &name, const C_FLOAT64 &volume=1.0)
void setFunctionWithEmptyMapping(const std::string &fn)