This document describes studioSL, a modular application for pre- and post-processing simulation models of oil, gas, and water flow in the subsurface. It uses the NetBeans Platform for its graphical user interface and modular design. Key features include 2D/3D visualization, support for multiple simulator file formats via its PE Commons API, and exporting to common file types like Excel. The application leverages many NetBeans Platform features and aims to improve user feedback on crashes and suggestions. Future work may include remote job launching capabilities.
2. Who Am I ?Who Am I ?
Enrico Scantambu
Java Developer @ Streamsim
Oracle Certified Master, Java SE 6 Developer
Sun Certified Specialist Netbeans
Sun Certified Web Component Developer
LPIC-1
.....
http://it.linkedin.com/in/enricoscantamburlo
3. Currently Based on NetBeans 6.5, 6.9 coming out shortly
Modular Application (we sells separated modules)
Most of the interfaces are OpenSource
2D/3D Plots
Import/export from multiple sources
A graphical user interface to Pre/Post
process simulation models of oil, gas,
and water flow in the subsurface
4. All problems in computer science can be solved by
another level of indirection... Except for the problem
of too many layers of indirection.
David Wheeler
PE Commons API 1/3PE Commons API 1/3
Problems:
Support several simulators
Information scattered in VERY big files ( > 20 Gb/Go)
Same actions on all Simulations
Some data may be missing
6. PE Commons API 3/3PE Commons API 3/3
They read only what we need
They cache data using Java SoftReferences
They share data between simulations
They are replaced when the files change
We use Providers
TimeStepsDataProvider to provide the time information
WellDataProvider to provide the list of well
WellSequencesDataProvider to provider the sequences for each Well
WellTypeDataProvider to provider the type for each Well
StrucutredGridDataProvider to provider the grid Information
.
7. NBPlatform: A lifesaverNBPlatform: A lifesaver
We use almost every feature of NetBeans Platform (6.5)
FileChangeListeners
Branding
Syntax Highlighting
CodeCompletion
ContextAwareAction
Lookup
Nodes
TopComponents and Modes
OutputWindows
Update Center
Exception Handling
Schliemann
Preferences
Multiview
XMLMultiView
ExplorerManagers
TreeTableView
RequestProcessor
Matisse
Projects
Ant
Layer
Option Windows
.
9. 3D View 2/23D View 2/2
Currently using Java3D 1.5.2 (sigh!)
Not very performing but easy to use and it does its job.
Unsupported (community managed program)
Java3D must be installed manually
An NBM for every platform (Windows/Linux 32/64bit)
Bundle the whole JRE
Also tested
JOGL
VTK
But too much work to replace it!
11. 2D View 2/22D View 2/2
We use JClass to visualize 2D plots, it is 100% Swing,
fully integrated with Matisse and the pallette. It is a
commercial software.
Allows tons of customizations thru its own customizer
Some performance issues due to Java when you have
millions of points.
Test JFreeChart and JavaFX but same issues
The only solution was using JOGL.
15. User FeedBackUser FeedBack
It is hard to get some good feedback from the users.
If the program crashes, has problems, too slow they get angry but
they do not tell you.
Using The NetBeans Platform we can catch every exception that
occurs during the program.
ImagefromReidRosenberg
The crash information is sent to
our Bug Tracker with all the logs
and the information to contact the
user.
There is also a Submit a
suggestion menu.
16. Future ImprovementsFuture Improvements
Remote Job LauncherRemote Job Launcher:
Allows to executes Files on Remote machines
(SSH Based, Linux Server Only).
Taken from the C++ support from NetBeans.
#3: Tell something about Streamsim Where is located How we works
#4: Problems updating software We have to go to the clients and install it (Modular) NetBeans makes this easy PECommons later Java3D Jclass OFFICE, OPENOFFICE, PNG
#5: We are paid to do that, companies have their simulator (usually written in Fortran) they want some support Data is in server and must be trasmitted on network drives We do not want to write an action for every simulation Data is redundatly written in files
#6: We extract data from the lookup Completely DATA independent
#7: User can be on network driver VERY Slow Linux 50x Windows Java Reference naive methods, there are better choices Several simulation with same data or we merge two simulation We have a lookup event
#8: Only in java7 we have FileChangeListeners OutputWindow Del porco non si butta via niente Not the pallette And there are more in 7.0 Like annotations
#10: JOGL does not handle the scene VTK used for medical images
#12: Give explanation of Scattergram must create millions of Point.Double to plot