Skip to content

Commit

Permalink
Simulation support: added ode_solver_property() and nla_solver_proper…
Browse files Browse the repository at this point in the history
…ty() as Python wrappers to our SimulationData class (#2178).
  • Loading branch information
agarny committed Dec 11, 2019
1 parent 2ae3ee0 commit f7b5c42
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/plugins/support/SimulationSupport/src/simulation.cpp
Expand Up @@ -403,6 +403,17 @@ Solver::Solver::Properties SimulationData::odeSolverProperties() const

//==============================================================================

QVariant SimulationData::odeSolverProperty(const QString &pName) const
{
// Return the value of the given ODE solver property

return (mSimulation->runtime() != nullptr)?
mOdeSolverProperties.value(pName):
QVariant();
}

//==============================================================================

void SimulationData::setOdeSolverProperty(const QString &pName,
const QVariant &pValue)
{
Expand Down Expand Up @@ -472,6 +483,17 @@ Solver::Solver::Properties SimulationData::nlaSolverProperties() const

//==============================================================================

QVariant SimulationData::nlaSolverProperty(const QString &pName) const
{
// Return the value of the given NLA solver property

return (mSimulation->runtime() != nullptr)?
mNlaSolverProperties.value(pName):
QVariant();
}

//==============================================================================

void SimulationData::setNlaSolverProperty(const QString &pName,
const QVariant &pValue, bool pReset)
{
Expand Down
3 changes: 3 additions & 0 deletions src/plugins/support/SimulationSupport/src/simulation.h
Expand Up @@ -234,7 +234,10 @@ public slots:
Solver::Solver::Properties odeSolverProperties() const;
Solver::Solver::Properties nlaSolverProperties() const;

QVariant odeSolverProperty(const QString &pName) const;
void setOdeSolverProperty(const QString &pName, const QVariant &pValue);

QVariant nlaSolverProperty(const QString &pName) const;
void setNlaSolverProperty(const QString &pName, const QVariant &pValue,
bool pReset = true);

Expand Down
Expand Up @@ -438,6 +438,16 @@ void SimulationSupportPythonWrapper::set_ode_solver(SimulationData *pSimulationD

//==============================================================================

QVariant SimulationSupportPythonWrapper::ode_solver_property(SimulationData *pSimulationData,
const QString &pName)
{
// Return the value for the given ODE solver property

return pSimulationData->odeSolverProperty(pName);
}

//==============================================================================

void SimulationSupportPythonWrapper::set_ode_solver_property(SimulationData *pSimulationData,
const QString &pName,
const QVariant &pValue)
Expand All @@ -450,6 +460,16 @@ void SimulationSupportPythonWrapper::set_ode_solver_property(SimulationData *pSi

//==============================================================================

QVariant SimulationSupportPythonWrapper::nla_solver_property(SimulationData *pSimulationData,
const QString &pName)
{
// Return the value for the given NLA solver property

return pSimulationData->nlaSolverProperty(pName);
}

//==============================================================================

QString SimulationSupportPythonWrapper::nla_solver_name(SimulationData *pSimulationData)
{
// Return the name of the NLA solver for the given simulation data
Expand Down
Expand Up @@ -94,12 +94,18 @@ public slots:
QString ode_solver_name(OpenCOR::SimulationSupport::SimulationData *pSimulationData);
void set_ode_solver(OpenCOR::SimulationSupport::SimulationData *pSimulationData,
const QString &pName);

QVariant ode_solver_property(OpenCOR::SimulationSupport::SimulationData *pSimulationData,
const QString &pName);
void set_ode_solver_property(OpenCOR::SimulationSupport::SimulationData *pSimulationData,
const QString &pName, const QVariant &pValue);

QString nla_solver_name(OpenCOR::SimulationSupport::SimulationData *pSimulationData);
void set_nla_solver(OpenCOR::SimulationSupport::SimulationData *pSimulationData,
const QString &pName);

QVariant nla_solver_property(OpenCOR::SimulationSupport::SimulationData *pSimulationData,
const QString &pName);
void set_nla_solver_property(OpenCOR::SimulationSupport::SimulationData *pSimulationData,
const QString &pName, const QVariant &pValue);

Expand Down

0 comments on commit f7b5c42

Please sign in to comment.