User:Grivan
Grivan Thapar
GSoC 2010 Proposal: Improvement on Canvas-based modelling for Ascend
See Canvas-based modeller for ASCEND for more information.
Mentor: John Pye
Subversion Branch grivan:
I am pursuing my Bachelor of Engineering Degree from Netaji Subhas Institute of Technology, University of Delhi, and will graduate the four-year course in 2011.
Goals
Goal: Improvement on Canvas-based modeling: Updating the graphical flow sheet modeler. Enhancing its usability and functionality. Making it more robust.
Tasks
- Initially before coding address the necessary prerequisites that I will discuss with the Ascend team and have solutions ready to be implemented as follows;
- Detailed layout for the integration into the main application. Update with new Gaphas API. Embed the Canvas code into the pyGTK code. Glade integration, GUI improvements that could be added.
- Solution of the redundant equations in case of equality loops. The current method of 'Methods' be either modified or updated, for easy debugging of the models.
- To specify the 'global' variables for generic models, like streams in a turbine. Every such 'general' sub-model could require parameters of that type, defined in the parameters. A METHOD could be then used to fix such variables across all the sub-models.
- Create a detailed frame-work for importing models onto the pallet from a destined directory dynamically. Replacement for the current initialization method.* Solution to the type-checking problem. This can be done by exporting the partially created models to Ascend library and checking for errors, or maybe use a simpler approach and check for port specifications described in the NOTES.
- Define a set number of generic models that could added so that using Ascend Canvas based modeler becomes a head-start process.
- Once the detailed layout of the work has completed after the above immediate, make a weekly task list. Prepare and setup the required development environment for coding. Employ a suitable code-editor, a debugger and a test framework.
By mid-term review:
- Update code to work smoothly with Gaphas. Integration of Canvas code with the current pyGTK code. User can now either solve a text model or create a new graphical model.
- Do the GUI usability improvements. Undo, Redo, Save image etc.
- Code for a suitable framework for importing new models into the pallet from a specified location.
- Code for the solution of the type checking problem.
- Unit tests of features implemented.
- Start to code for defining the global variables for each of the generic block sub-model.
By final-term review:
- Complete the code for setting the global variables for generic models.
- Code for efficient debugging of models with closed circulation loops.
- Code for the type checking.
- Unit tests of features implemented.
- Add new blocks of models.
- Final testing of the code, final integration to the /trunk code, documentation.
In my view integrating the canvas based modeler with the PyGTK interface should be one of the priorities in order to update ascend with a useful and a powerful canvas based modeler once the smaller issues mentioned above have been resolved. Also set up of new canvas components should be vital for making the Ascend canvas based modeler an indispensable tool.
Proper documentation would be maintained on the Ascend wiki, updates on weekly progress. I plan to contribute to Ascend after the GSOC period. This would include support for all the code written and implemented by me and further improvements to the Canvas based Modelings.