diff options
author | Thales Lima Oliveira <thaleslima.ufu@gmail.com> | 2017-12-31 17:59:10 -0200 |
---|---|---|
committer | Thales Lima Oliveira <thaleslima.ufu@gmail.com> | 2017-12-31 17:59:10 -0200 |
commit | dbe0b112622f8e91fa3e44a6b6e1aa7e230d3ded (patch) | |
tree | 51c89fc8155dcc447743dc89a1ab5ce36acc72cf /Project/ControlElementSolver.cpp | |
parent | ff52be4e9705d443a4fde091525806322c2dc032 (diff) | |
download | PSP.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.cpp | 8 |
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). |