Layout,graphics and scripting by EyE

Een GUI voor de pseudopspectra-tool

Uitvoerenden: Petra Kok, Tijmen Collignon, Arthur van Dam

Doel is om een GUI te maken die de gebruiker alle gewenste toegang geeft tot de continuation toolbox van Kuznetsov, en met name de pseudospectra-toevoegingen erop.

Eerste ideeën

De GUI moet onder andere de volgende mogelijkheden hebben:
  1. Systeem specificatie
    1. Importeren van een kant-en-klare Matlab-file van de gebruiker. Hierin moet de functie curve(arg, varargin) komen te staan.ERROR
    2. Importeren van een matrixdefinitie in Matlab-formaat. Hierin moet een methode initMatrix staan. Deze methode moet enkel een matrix retourneren, hetzij door letterlijke specificatie ('[1 2 3 ; 4 5 6 ; 7 8 9]') of door een matlab functie ('gallery(5)'). Overige formaten, zoals eventueel geexporteerd vanuit qstar, etc. zullen worden ondersteund middels wat shellscriptjes die daarvoor een Matlab-file genereren.OK
    3. Invoeren van matrixdefinitie in een textarea in Matlab-formaat. Zie verder punt hierboven.OK
    4. Het systeem moet ook geëxporteerd kunnen worden.OK
    5. Importeren van matrices van Matrix Market. OK
  2. Graphic panel
    1. Auto-scale voor volledig blik op curve. Standaard in Matlab.OK
    2. Inzoomen kan met de standaardfunctie in Matlab. Zie volgende punt.ERROR
    3. Zoomlevels expliciet opslaan, eigen zoombuttons. OK
    4. Netjes kunnen herschalen van het assenstelsel. OK
    5. Bij een nieuw systeem alvast een voorzichtige herschaling doen, zodat het spectrum ongeveer zal passen (met de functie estimate_radius()) . TODO
    6. Afvangen mouseclicks en daar een nieuwe curve laten beginnen.OK
    7. Kleur m.b.v. Hue, voor hele kleuren-spectrum. Dit wordt iedere keer herschaald, zodat spectrum altijd tussen minimale en maximale epsilon ligt. Legenda van kleuren verschijnt naast grafiek.OK
    8. Dynamisch plotten van curven: tekenen al tijdens continuatie dmv een opgegeven getalletje.OK
    9. Selectie van limit-points, door erop te klikken in de grafiek. In status-scherm verschijnt dan informatie over dat limit-point.ERROR Te ver gaand/niet interessant voor dit project.
    10. Curve starten met expliciet op te geven init-point. OK
    11. Curve uitbreiden aan het eind /continuatie voortzetten. OK
    12. Gesloten curven ook gesloten afbeelden OK
    13. Selectie van curven door deze te kiezen uit lijst van curves. In status-scherm verschijnt dan informatie over de huidige curve.OK
    14. GUI afschermen voor agressieve gebruikers (i.e. ervoor zorgen dat niemand ergens op kan clicken terwijl er dingen worden ingeladen).OK
    15. Verscheidene widgets voor aanpassen 'grid', 'colormode', 'eigenvalues' etc...OK
    16. Pseudospectra-window + legenda kunnen printen/ps-export. OK
  3. Interne architectuur
    1. Een curve wordt opgeslagen als een struct: [x,v,s,h,epsilon,curvehandle]. De verzameling curven wordt opgeslagen als een matrix van structs.OK
    2. De curven moeten ook via een overzichtsscherm toegankelijk zijn, vgl. Content 'Select curve...'OK
  4. Control-panel
    1. De parameters van de continuer moeten in een los window kunnen worden aangepast. OK
    2. Settings uit ons eigen programma moeten ook editable zijn. OK
Let op dat bovenstaand overzicht summier en incompleet is! Het zijn de eerste uitgangspunten.

Screenshot #3, 25-01-2001

Screenshot #2, 19-12-2000

Screenshot #1, 24-11-2000