transp to elvis elvislib l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
TRANSP to ElVis: elvislib PowerPoint Presentation
Download Presentation
TRANSP to ElVis: elvislib

Loading in 2 Seconds...

play fullscreen
1 / 27

TRANSP to ElVis: elvislib - PowerPoint PPT Presentation


  • 449 Views
  • Uploaded on

TRANSP to ElVis: elvislib By: Ben Bariteau Mentor: Doug McCune Scientific Graphics Data Monitoring Integrated with Job Monitoring Web Services ElVis Software Package Display program 45,000 lines of Java code 300 classes Summer ’08: Over 200 updates to the code

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'TRANSP to ElVis: elvislib' - andrew


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
transp to elvis elvislib
TRANSP to ElVis: elvislib

By: Ben BariteauMentor: Doug McCune

elvis software package
ElVis Software Package
  • Display program
    • 45,000 lines of Java code
    • 300 classes
    • Summer ’08: Over 200 updates to the code
  • Application Programming Interface (API)
    • Fortran
    • C/C++
    • Java
transp and elvislib
TRANSP and elvislib
  • elvislib was created primarily for TRANSP so that the Fortran and C programs within TRANSP could take advantage of the Java visualization tool ElVis
    • elvislib is primarily used with programs like rplot, cstate, and sigtab for displaying graphs and tables with a GUI that allows for intuitive manipulation and management tools
      • ElVis was created with these programs in mind, which led to the creation of elvislib for these programs to send data to ElVis
elvislib eml transfer
elvislib EML Transfer
  • elvislib stores information in memory about different types of graphs, including normal two dimensional graphs, surface plots, indexed graphs, and tables
    • This information is translated into EML when ef_graphwindowdisplay() is called
elvis markup language eml
ElVis Markup Language (EML)‏
  • EML is an XML-based language
    • Designed by Steve Krenzel
  • Tags contain information that is sent from elvislib to ElVis
  • elvislib creates these tags and ElVis translates these into graphs
hierarchical eml structure
Hierarchical EML Structure
  • All EML is contained within a <visualstate> tag
    • A graphwindow is contained within a <graphwindow> tag
      • Graphs are contained within a <graph> tag
tables
Tables
  • Tables can now be sent to ElVis
  • Changes in code:
    • Column structure added
      • Column structure allows for an

array of strings

      • Columns have their own background

and font colors, as well as font style

(Italic, Bold) and a font (Serif, Monospaced, etc.)‏

      • Column has a header that is the title of the column.
tables contd
Tables, contd.
  • Changes in code:
    • columnList added to Graph structure
      • A list of Columns contained in a Table graph.
    • topTextList and bottomTextList added to Graph structure
      • Lists of Labels that appear at the top and bottom of the Table, respectively.
      • Each label has it's own color, background color, font, and style attributes
    • Added EML output for Tables
table functions
ef_columnsetbgcolor()‏

ef_columnsetheader()‏

ef_columnsetfontname()‏

ef_columnsetfontstyle()‏

ef_columnsetfontsize()‏

ef_columnsetfontcolor()‏

ef_tableaddtoptext()‏

ef_tableaddbottomtext()‏

Table Functions
  • Functions added to the API

concerning Tables:

    • ef_tablecreate()‏
    • ef_columncreate()‏
    • ef_tableaddcolumn()‏
    • ef_graphwindowaddtable()‏
    • ef_columnsetrowlabels()‏
tables and eml
Tables and EML
  • Tables use multiple <column> tags
    • Within each <column> tag there can be a number of <cell>s
      • Each <cell> contains a value attribute
    • A <column> can contain any of the attributes listed on the right
  • Tables can also have multiple <toptext> and <bottomtext> tags
    • These can contain the attributes listed on the right
tables challenges
Tables - Challenges
  • Creating a structure that could hold all the data

necessary and adding it to the current structures

  • Getting arrays of strings from Fortran to C
  • Defining the color mechanism (next section)‏
colors
Colors
  • Colors were used in

ef_graphaddlabel()

ef_tableaddtoptext()

ef_tableaddbottomtext()

ef_columnsetbgcolor()

ef_columnsetfontcolor()‏

  • Previously, the API used 3 floating-point numbers from

0.0 to 1.0 to represent colors

    • This made compatibility easy, but it was not intuitive
  • Now, the API takes a string with either a color value

(i.e. “rgb: 0.2 0.5 0.1”) or color name (i.e. “name: blue”)‏

    • Future colorspaces like HSV can be added
logarithmic z axis in surface plots
Logarithmic Z Axis in Surface Plots
  • The index (Z) axis of this surface plot can now

be set to be logarithmic, unlike before, where

it could only be linear

  • Default linear on left, logarithmic on right
  • Used through ef_graphsetzaxis()‏
log z axis and eml
Log Z-axis and EML
  • The z-axis logarithmic/linear scale control is sent through the <axis> tags
    • <axis> tags have a numberstyle attribute which controls the scale of a graph
      • This is interpreted through an <axis> with direction of “z” and a numberstyle of “4”
short title
Short Title
  • shortTitle in the <graph> tag
    • i.e., <graph shortTitle=“TG”>
      • This allows for the a smaller title to be shown when the graph becomes too small to display the normal title
    • The top graph is large enough to show the entire title, while the bottom one is small enough to show a shortened smaller title
short title and eml
Short Title and EML
  • Short title was added to the EML through an attribute in the <graph> tag
    • <graph> now has an attribute called shortTitle, which specifies the short title
      • This is generated by elvislib when a shortTitle is specified
gridlines
Gridlines
  • It is now possible to add gridlines to normal

graphs using ef_setxgrid and ef_setygrid

  • Examples of their effect can be seen above

(no gridlines on left, gridlines on right)‏

gridlines and eml
Gridlines and EML
  • Gridlines are shown through the showGridlines attribute on the axis tag
    • This can be “true” or “false”, and is generated by elvislib accordingly
multiple elvis displays
Multiple ElVis Displays

More than one server and/or filename

  • A filename beginning with '/' or '.'
  • A hostname or IP
  • localhost

(uses the current computer as the host)‏

  • stderr or stdout
  • filegen automatically generates a

filename with PID, application name,

and username

multiple elvis displays contd
Multiple ElVis Displays, contd.
  • Changes in code:
    • In graphwindow.c:
      • ef_initialize() now handles ElVis output environment variable exclusively
      • initialize() was changed to use an index to find a certain output an index to

find a certain output

      • ef_GraphWindowSendEML() now loops through all outputs, sends EML to each
    • In binio.c:
      • binio_set_gwFile() added to set gwfile in binio.c
  • Challenges:
    • The mechanism for sending output to a file had to be circumvented

with binio_set_gwFile()‏

    • All other uses of environment variables removed or changed
acknowledgments
Acknowledgments
  • Doug McCune, TRANSP developer, my mentor
  • Eliot Feibush – ElVis creator and developer, my mentor
  • Andrew Zwicker, Christine Ritter, James Morgan – PPPL Science Education Program
  • Eric Zatz – ElVis Display-side EML Developer
slide27

Eric Zatz -CPPG summer undergrad

ElVis Mark-Up Language

Eliot - Mentor

Ben – API, EML

Matt

System & Services

Doug – Mentor

CPPG Group Head

Mike

Movie Making

User Enhancements

Tutorials