DICE - OpenFOAM GUI project
Hello everyone, I wanted to share with you the project we were working on the past few months: DICE (Dynamic Interface for Computation and Evaluation). It is an open source framework for simplified creation of user interfaces and utilities in the area of numerical simulations. A few months ago we started creating a concept which would allow the user, specifically an engineer, to create a GUI for OpenFOAM applications in a very simple manner. The goal was to create a library with components and functions for GUI developement and to streamline the workflow for repeated tasks. The amount of applications and utlities in OpenFOAM makes it a really hard task because the possibilities for modifications are infinite. After a lot of thrown away concepts we came up with an idea to develop a dynamic GUI. This means the generation of the interface through QML and because we try to keep the bar for programming as low as possible we decided to use python as the core language. More details can be found here: http://dicehub.net/introducing-dice/ And the result of our mad ideas is DICE. Here is a short demo of the current state: https://www.youtube.com/watch?v=G3xrIksSYNY At the moment we are polishing the code, fixing some critical bugs and working on the documentation. As soon as we are ready we will upload the code to github and make binaries available for a few linux distributions. We are also working on some solver apps and loops integration for optimization. Our long-term goal is to implement known optimization tools into DICE, e.g. DAKOTA. So, why are we posting this right now? Because we developed everything by ourselves and have no idea if it makes any sense. Yes, we actually made the greatest mistake an open source project can make and had no communication with the people we are making it for. And now we are fixing this. What are your thoughts? What do you think of the concept? Do you have any ideas for improvement? Any feedback is welcome, even the negative one! Thanks! http://twitter.com/dice_hub http://dicehub.net |
Hi there,
I like the nice clean looking interface, and the way the different features have (can be) integrated into the GUI :-) It does look a little like the Ansys Workbench :-) But then, to tell you the truth, I was actually thinking about something on those lines too. I found the concept of dragging in modules and connecting them to one another a very interesting idea, and I think it renders itself well to coupling of multiple codes in a clean way. Of course, the whole idea depends entirely on the modularity of the "DICEengine", and the way the adding on of new codes, solvers, and GUI components have been conceptualised. Are you guys working with the concept of QT Plugins? Or something more on the lines of what ParaView does? On the whole, a very very interesting project, and I am definitely very interested in it.... theoretically speaking, also from the development side, simply because I have been thinking about such modular GUI concepts for a long time :-) Have a nice day! Philippose |
Quote:
Quote:
Quote:
Quote:
Quote:
|
Hi again :-)
Thanks for the quick and concise explanation of the methods you have used in Dice. It sounds quite flexible. Will you be putting it onto Github sometime soon? Or will ironing out of the last few loose ends take a while? Also, are you using some kind of geometry library for visualising the Geometry (STL, obj, etc...) and OpenFOAM meshes? Or did you write all those from scratch? And the actual visualisation is based on OpenGL on top of QML? And are you using PySide or PyQT5? Regards, Philippose |
Dear Andrjas,
this looks like a very interesting project. If I understand right, the idea is similar to a graphical programming language (like e.g. labview) but with specialized high-level "functions" for CAE tasks? During the last year I have worked on my own framework for automation of CAE tasks (http://sourceforge.net/projects/insightcae/), also with emphasis on OpenFOAM but also other tools (Code_Aster for instance). My idea (probably similar to yours) is to create modules for certain analyses. But these modules have a very high level of functionality (this is probably a difference to your concept?). There is e.g. one module for simulating a propeller at some certain operating point and this does meshing, simulating and evaluating. And another module computes the open water curves and uses the first one. Initially, I also had the idea of providing some kind of graphical editor for connecting the modules. But I have to use the framework already productively and I considered this to be too much work for my purposes. But maybe there will be a chance to integrate my efforts with dice. I'm looking forward to your first code release. Regards, Hannes |
Quote:
Quote:
Quote:
|
Quote:
Quote:
Quote:
We've thought a lot about the level of functionality and there is simply no "right" answer to this. That's why we wanted to cover all possibilities. At the moment we're adding the lower level components, like meshing or simulating, as single modules which can be connected and grouped (latter not implemented yet). However, high level modules still can be written the same way as the low level component (and probably even simpler because of fewer parameters). For example, in your case for the propeller you may have some configuration files for the mesher and the solver. These files are then manipulated by the app you'd have to write for DICE. The resulting GUI is then a high level module consisting of a mesher and a solver. Maybe the explanation is too confusing for now... Quote:
Quote:
Best regards, Andreas |
This looks very promising, I hope you'll success with your plans.
If this works out I might write some config files for some tools, but I guess this is the easiest part of the development :D |
Your project looks awesome !
Thanks for sharing your vision and tools for the community :) DICE could be THE tool that was missing for OpenFOAM. I hope, no, I'm sure that the community will warmly welcome your project and contribute to it. I wish you the best for this awesome project ! Regards, François |
Greetings to all!
@Ros, just my two cents here:
Best regards, Bruno |
Nice tool!
A really promising tool!
As many other people here, I wrote my own OpenFOAM wrapper with some GUI to drive the whole simulation process. Some ideas behind it are common to what DICE does, some others are not. What I have (Python + qt + vtk by the way) is very specific to one type of application, at least in one part of the process, and I've been considering rewriting it to make it more general and future-proof, but the time is never enough for such a project. I'm really keen to try out DICE as soon as possible and see if and how it can be adapted to my usual workflow! Thanks for sharing it, Francesco |
Quote:
Quote:
@wyldckat: Thanks for you input. To your points: We wanted to see first if there is any interest in our project. Now that we know we'll try to release it as soon as possible. So please be patient.
@fra76: Thanks for sharing! Did you publish your code or intend to? Especially I'd like to see more Qt-VTK examples, we're having some trouble there right now. |
Quote:
|
Hi,
congratulations, very impressive demo application! A stable and usable (and this case even beautifully loooking) GUI platform might be a major boost for the whole OF ecosystem. I've already been playing with some helper Qt apps myself (specific to my preprocessing, processing and monitoring). The idea was to integrate them into a larger suite later on. I never got to specify the interfaces or module system though. Your approach based on Python and Qt seems to be very promising. Can't wait to see some code and maybe provide some additions. Some additional thoughts: Did you already consider the licensing of the application/library?! In my option this should allow both OSS and proprietary extensions, as this the foundadion for platforms like Eclipse, Netbeans, Salome and even Visual Studio. Don't get me wrong: as OF users we're all dedicated to OSS, but a sane compatibility to proprietary components might be essential for the success of the software. Cutter |
Quote:
Quote:
Quote:
Quote:
|
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
... I'm even thinking about an embedded LaTeX/wiki editor for inline journalling/documenting and reports... there's even IPython Notebooks... oh the possibilities... |
@wyldckat:
Yep, the possibilities are endless... |
@andrjas
No, I'm afraid that the Qt/PyQt/VTK code we wrote is not going to be published. However it is quite tailored around a specific application, no near as general as what you are writing! Francesco |
Hello everyone,
we finally have decided to move our current development to a public repository. Since the last post and the feedback we got, we have rewritten the backend in python and are now using PyQt so the C++ code is mostly gone. DICE is still only a preview of the concepts we created and is not really intended to be used as a stable working environment. This alpha-release includes some simple surfaceUtilities, cfMesh and snappyHexMesh app and has also a lot of bugs :D. You can download the source code or a build for Ubuntu (tested with Ubuntu 14.10) here: http://dicehub.net/download/ The github repository is located here: https://github.com/diceproject/dice-dev There are a lot of things to do, especially the visualization with VTK. Our (current) roadmap can be found here: http://dicehub.net/roadmap/ What are your thoughts? Is it something that you think is worth further development or does it need some drastic changes? Any feedback or contribution is welcome! Thanks! |
I have tried to use the compiled version on Kubuntu 14.04, I'm getting the following error:
./DICE: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version 'CXXABI_1.3.8' not found (required by ./DICE) I assume you're linking against some other version of libstdc++, what do I need and how to set it up? Some googling points to adding the path of the correct version to LD_LIBRARY_PATH. |
All times are GMT -4. The time now is 14:39. |