COPASI API
4.40.278
|
#include <CSensMethod.h>
Public Member Functions | |
CSensMethod (const CDataContainer *pParent, const CTaskEnum::Method &methodType, const CTaskEnum::Task &taskType=CTaskEnum::Task::sens) | |
CSensMethod (const CSensMethod &src, const CDataContainer *pParent) | |
size_t | getNumberOfSubtaskCalculations () |
bool | initialize (CSensProblem *problem) |
virtual bool | isValidProblem (const CCopasiProblem *pProblem) override |
bool | process () |
bool | restore (const bool &updateModel) |
virtual bool | setCallBack (CProcessReportLevel callBack) override |
~CSensMethod () | |
Public Member Functions inherited from CCopasiMethod | |
CCopasiMethod (const CCopasiMethod &src, const CDataContainer *pParent) | |
virtual void | clearCallBack () |
const CProcessReportLevel & | getCallBack () const |
CMathContainer * | getMathContainer () const |
const CTaskEnum::Method & | getSubType () const |
const CTaskEnum::Task & | getType () const |
virtual void | load (CReadConfig &configBuffer, CReadConfig::Mode mode=CReadConfig::SEARCH) |
CCopasiMethod & | operator= (const CCopasiMethod &rhs) |
virtual void | print (std::ostream *ostream) const |
virtual void | printResult (std::ostream *ostream) const |
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 ¶meter) |
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) |
CCopasiParameterGroup * | assertGroup (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 |
virtual bool | elevateChildren () |
index_iterator | endIndex () const |
const_name_iterator | endName () const |
CCopasiParameterGroup & | getElementTemplates () |
const CCopasiParameterGroup & | getElementTemplates () const |
CCopasiParameterGroup * | getGroup (const size_t &index) |
const CCopasiParameterGroup * | getGroup (const size_t &index) const |
CCopasiParameterGroup * | getGroup (const std::string &name) |
const CCopasiParameterGroup * | getGroup (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 CObjectInterface * | getObject (const CCommonName &cn) const |
CCopasiParameter * | getParameter (const size_t &index) |
const CCopasiParameter * | getParameter (const size_t &index) const |
CCopasiParameter * | getParameter (std::string name) |
const CCopasiParameter * | getParameter (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 CUndoObjectInterface * | insert (const CData &data) |
CCopasiParameterGroup & | operator= (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::Type & | getType () const |
const UserInterfaceFlag & | getUserInterfaceFlag () 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 |
CDataObject * | getValueReference () 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 |
CCopasiParameter & | operator= (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 objectMap & | getObjects () |
virtual const objectMap & | getObjects () const |
virtual const std::string | getUnits () const override |
virtual const CDataObject * | getValueObject () 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 CDataObject * | getDataObject () const override |
CDataContainer * | getObjectAncestor (const std::string &type) const |
CDataModel * | getObjectDataModel () const |
const CObjectInterface * | getObjectFromCN (const CCommonName &cn) const |
const std::string & | getObjectName () const |
CDataContainer * | getObjectParent () const |
const std::string & | getObjectType () const |
virtual const CObjectInterface::ObjectSet & | getPrerequisites () const override |
virtual const CValidity & | getValidity () 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 | calculate_difference (size_t level, const C_FLOAT64 &delta, CArray &result, CArray::index_type &resultindex) |
bool | calculate_one_level (size_t level, CArray &result) |
void | do_collapsing () |
C_FLOAT64 | do_collapsing_innerloop (CArray::index_type &fullindex) |
void | do_scaling () |
bool | do_target_calculation (size_t level, CArray &result, bool first) |
C_FLOAT64 | do_variation (C_FLOAT64 &variable) |
void | scaling_targetfunction (const C_FLOAT64 &factor, CArray::index_type &resultindex) |
void | scaling_variables (size_t level, const C_FLOAT64 &factor, CArray::index_type &resultindex) |
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::vector< CSensMethodLocalData > | mLocalData |
C_FLOAT64 * | mpDeltaFactor |
C_FLOAT64 * | mpMinDelta |
CSensProblem * | mpProblem |
CCopasiTask * | mpSubTask |
bool | mStoreSubtasktUpdateFlag |
stores the update model flag of the subtask More... | |
CVector< C_FLOAT64 * > | mTargetValuePointers |
CCore::CUpdateSequence | mTargetValueSequence |
Protected Attributes inherited from CCopasiMethod | |
CMathContainer * | mpContainer |
CProcessReportLevel | mProcessReport |
Protected Attributes inherited from CCopasiParameter | |
std::string | mKey |
void * | mpDefault |
void * | mpValidValues |
void * | mpValue |
CDataObject * | mpValueReference |
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 | |
CSensMethod () | |
Private Attributes | |
size_t | mCounter |
size_t | mFailedCounter |
unsigned C_INT32 | mProgress |
size_t | mProgressHandler |
Additional Inherited Members | |
Public Types inherited from CCopasiParameterGroup | |
typedef CDataObjectMap::const_type_iterator< CCopasiParameter > | const_name_iterator |
typedef std::vector< CCopasiParameter * > | elements |
typedef elements::iterator | index_iterator |
typedef CDataObjectMap::type_iterator< CCopasiParameter > | name_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< eUserInterfaceFlag > | UserInterfaceFlag |
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 CCopasiParameter * | fromData (const CData &data, CUndoObjectInterface *pParent) |
Static Public Member Functions inherited from CDataContainer | |
static CDataContainer * | fromData (const CData &data, CUndoObjectInterface *pParent) |
Static Public Member Functions inherited from CDataObject | |
static CDataObject * | fromData (const CData &data, CUndoObjectInterface *pParent) |
static void | sanitizeObjectName (std::string &name) |
Static Public Member Functions inherited from CObjectInterface | |
static const CDataObject * | DataObject (const CObjectInterface *pInterface) |
static CObjectInterface * | GetObjectFromCN (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, Type > | TypeName |
static const CEnumAnnotation< std::string, Type > | XMLType |
Static Public Attributes inherited from CDataContainer | |
static const CObjectInterface::ContainerList | EmptyList |
|
private |
Default constructor.
CSensMethod::CSensMethod | ( | const CDataContainer * | pParent, |
const CTaskEnum::Method & | methodType, | ||
const CTaskEnum::Task & | taskType = CTaskEnum::Task::sens |
||
) |
Specific constructor
const | CDataContainer * pParent |
const | CTaskEnum::Method & methodType |
const | CTaskEnum::Task & taskType (default: scan) |
CSensMethod class. Default constructor.
References CCopasiParameterGroup::assertParameter(), C_FLOAT64, CONSTRUCTOR_TRACE, mpDeltaFactor, mpMinDelta, and CCopasiParameter::UDOUBLE.
CSensMethod::CSensMethod | ( | const CSensMethod & | src, |
const CDataContainer * | pParent | ||
) |
Copy constructor.
const CTSSMethod & | src |
const | CDataContainer * pParent (default: NULL) |
Copy constructor.
const CSensMethod & | src |
References CCopasiParameterGroup::assertParameter(), C_FLOAT64, CONSTRUCTOR_TRACE, mpDeltaFactor, mpMinDelta, and CCopasiParameter::UDOUBLE.
CSensMethod::~CSensMethod | ( | ) |
Destructor.
References DESTRUCTOR_TRACE.
|
protected |
References C_INVALID_INDEX, and mLocalData.
Referenced by calculate_one_level().
|
protected |
References C_FLOAT64, calculate_difference(), do_target_calculation(), do_variation(), mLocalData, and CArray::resize().
Referenced by process().
|
protected |
collapse the first dimension of the scaled result (by calculating the 2-norm over the target functions)
References C_INVALID_INDEX, CSensProblem::collapsRequested(), do_collapsing_innerloop(), CSensProblem::getCollapsedResult(), CSensProblem::getScaledResult(), mpProblem, and CArray::size().
Referenced by process().
|
protected |
References C_FLOAT64, CSensProblem::getScaledResult(), max, mpProblem, and CArray::size().
Referenced by do_collapsing().
|
protected |
calculate the scaled sensitivities. Calls scaling_variables(). It is assumed that the scaled result array is already of the correct size (this is done in initialize()).
References CArray::dimensionality(), CSensProblem::getResult(), mLocalData, mpProblem, and scaling_variables().
Referenced by process().
|
protected |
References CMathContainer::applyInitialValues(), CMathContainer::applyUpdateSequence(), mCounter, mFailedCounter, mLocalData, CCopasiMethod::mpContainer, CCopasiMethod::mProcessReport, mProgress, mProgressHandler, mpSubTask, mTargetValuePointers, mTargetValueSequence, CCopasiTask::process(), CProcessReportLevel::progressItem(), CArray::resize(), and CVectorCore< CType >::size().
Referenced by calculate_one_level().
References C_FLOAT64, mpDeltaFactor, and mpMinDelta.
Referenced by calculate_one_level().
size_t CSensMethod::getNumberOfSubtaskCalculations | ( | ) |
estimate how many calls to the subtask are necessary. Works only after initialize() was called.
References mLocalData.
Referenced by process().
bool CSensMethod::initialize | ( | CSensProblem * | problem | ) |
initializes the subtask, creates the internal data structures of the method, resizes the result arrays and creates the array annotations
References CVectorCore< CType >::array(), C_FLOAT64, C_INVALID_INDEX, CSensProblem::collapsRequested(), CSensProblem::CrossSection, CCore::Default, CObjectLists::EMPTY_LIST, CSensProblem::Evaluation, CSensProblem::getCollapsedResult(), CSensProblem::getCollapsedResultAnnotated(), CMathContainer::getInitialDependencies(), CMathContainer::getInitialStateObjects(), CSensItem::getListType(), CSensItem::getListTypeDisplayName(), CMathContainer::getMathObject(), CSensProblem::getNumberOfVariables(), CDataObject::getObjectDataModel(), CSensProblem::getResult(), CSensProblem::getResultAnnotated(), CSensProblem::getScaledResult(), CSensProblem::getScaledResultAnnotated(), CMathContainer::getStateObjects(), CSensProblem::getSubTaskType(), CSensProblem::getTargetFunctions(), CDataModel::getTaskList(), CMathContainer::getTransientDependencies(), CMathDependencyGraph::getUpdateSequence(), CMathObject::getValuePointer(), CSensProblem::getVariables(), CSensItem::getVariablesPointerList(), CCopasiTask::initialize(), CCopasiTask::isUpdateModel(), mLocalData, CCopasiMethod::mpContainer, mpProblem, mpSubTask, mStoreSubtasktUpdateFlag, mTargetValuePointers, mTargetValueSequence, CCopasiTask::NO_OUTPUT, CSensProblem::Optimization, CSensProblem::ParameterEstimation, CDataArray::resize(), CArray::resize(), CVector< CType >::resize(), CDataArray::setAnnotation(), CCopasiTask::setCallBack(), CDataArray::setDimensionDescription(), CCopasiTask::setMathContainer(), CVectorCore< CType >::size(), CSensProblem::SteadyState, CSensProblem::TimeSeries, and CCore::UpdateMoieties.
Referenced by CSensTask::updateMatrices().
|
overridevirtual |
Check if the method is suitable for this problem
Reimplemented from CCopasiMethod.
References CCopasiMessage::EXCEPTION, and CCopasiMethod::isValidProblem().
bool CSensMethod::process | ( | ) |
References CProcessReportLevel::addItem(), C_INT32, calculate_one_level(), do_collapsing(), do_scaling(), CProcessReportLevel::finishItem(), getNumberOfSubtaskCalculations(), CSensProblem::getResult(), max, MCCopasiTask, mCounter, mFailedCounter, mLocalData, mpProblem, CCopasiMethod::mProcessReport, mProgress, mProgressHandler, mpSubTask, mStoreSubtasktUpdateFlag, CCopasiTask::setCallBack(), CProcessReportLevel::setName(), CCopasiTask::setUpdateModel(), and CCopasiMessage::WARNING.
Referenced by CSensTask::process().
bool CSensMethod::restore | ( | const bool & | updateModel | ) |
Do all necessary restore procedures so that the model is in the same state as before
const | bool & updateModel |
References mpSubTask, and CCopasiTask::restore().
|
protected |
This contains the loop over the target functions for scaling the sensitivities
References C_INVALID_INDEX, CSensProblem::getResult(), CSensProblem::getScaledResult(), mLocalData, and mpProblem.
Referenced by scaling_variables().
|
protected |
This contains the loop over the variables for scaling the sensitivities. Works recursively and calls scaling_targetfunction() in the end.
References C_FLOAT64, mLocalData, and scaling_targetfunction().
Referenced by do_scaling().
|
overridevirtual |
Set the call back of the problem
CProcessReport | * pCallBack |
Reimplemented from CCopasiMethod.
References CCopasiMethod::mProcessReport, mpSubTask, CCopasiMethod::setCallBack(), and CCopasiTask::setCallBack().
|
private |
Referenced by do_target_calculation(), and process().
|
private |
Referenced by do_target_calculation(), and process().
|
protected |
|
protected |
Referenced by CSensMethod(), and do_variation().
|
protected |
Referenced by CSensMethod(), and do_variation().
|
protected |
A pointer to the sensitivities problem.
Referenced by do_collapsing(), do_collapsing_innerloop(), do_scaling(), initialize(), process(), and scaling_targetfunction().
|
private |
Referenced by do_target_calculation(), and process().
|
private |
Referenced by do_target_calculation(), and process().
|
protected |
Referenced by do_target_calculation(), initialize(), process(), restore(), and setCallBack().
|
protected |
stores the update model flag of the subtask
Referenced by initialize(), and process().
Referenced by do_target_calculation(), and initialize().
|
protected |
The sequence need to calculate all target functions
Referenced by do_target_calculation(), and initialize().