summaryrefslogtreecommitdiffstats
path: root/Project/ControlElementSolver.cpp
diff options
context:
space:
mode:
authorThales Lima Oliveira <thaleslima.ufu@gmail.com>2017-12-31 17:59:10 -0200
committerThales Lima Oliveira <thaleslima.ufu@gmail.com>2017-12-31 17:59:10 -0200
commitdbe0b112622f8e91fa3e44a6b6e1aa7e230d3ded (patch)
tree51c89fc8155dcc447743dc89a1ab5ce36acc72cf /Project/ControlElementSolver.cpp
parentff52be4e9705d443a4fde091525806322c2dc032 (diff)
downloadPSP.git-dbe0b112622f8e91fa3e44a6b6e1aa7e230d3ded.tar.gz
PSP.git-dbe0b112622f8e91fa3e44a6b6e1aa7e230d3ded.tar.xz
PSP.git-dbe0b112622f8e91fa3e44a6b6e1aa7e230d3ded.zip
Math Expression implemented
Diffstat (limited to 'Project/ControlElementSolver.cpp')
-rw-r--r--Project/ControlElementSolver.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/Project/ControlElementSolver.cpp b/Project/ControlElementSolver.cpp
index c14dd54..84de9d7 100644
--- a/Project/ControlElementSolver.cpp
+++ b/Project/ControlElementSolver.cpp
@@ -48,6 +48,9 @@ ControlElementSolver::ControlElementSolver(ControlElementContainer* ctrlContaine
void ControlElementSolver::Initialize(wxWindow* parent, double timeStep, double integrationError)
{
+ // Init the input array size
+ if(m_inputToSolve) delete[] m_inputToSolve;
+ m_inputToSolve = new double[3];
// Check if the sistem have one input and one output
bool fail = false;
auto ioList = m_ctrlContainer->GetIOControlList();
@@ -308,7 +311,10 @@ ConnectionLine* ControlElementSolver::SolveNextElement(ConnectionLine* currentLi
ControlElement* element = static_cast<ControlElement*>(*it);
// Solve the unsolved parent.
if(!element->IsSolved()) {
- if(!element->Solve(currentLine->GetValue(), m_timeStep, m_currentTime)) return NULL;
+ m_inputToSolve[0] = currentLine->GetValue();
+ m_inputToSolve[1] = m_currentTime;
+ m_inputToSolve[2] = m_switchStatus;
+ if(!element->Solve(m_inputToSolve, m_timeStep)) return NULL;
element->SetSolved();
// Get the output node (must have one or will result NULL).