Free Software for Chemical Process Simulation?
chthonicdaemon asks: "I am about to embark on a mission: to create a Free (as in freedom) chemical process simulator. My field is control engineering, and as such, dynamic simulation is what it is all about. There is an open source steady-state simulator called sim42, but I have not found one that can do dynamics. There is also a lot of work available in the form of implementation standards, so I am confident that it can be done. Is there anything like this out there that I have not found, and what open technology could I leverage to get this done faster (perhaps something like SML)."
You made me remember I had this project 17 years ago. Now I would use Common Lisp as my programming language of choice for such a project. It takes time to grok, but it is worth the effort.
Read between the lines while parsing.
If it's for the challenge, then go right ahead and ignore what's below. But if it's because you want to get something specific done in as short a time frame as possible then carry on reading.
It's highly unlikely that you're the first person to attempt such a project. In all likelyhood, there's something out there that either does what you want it to do or can be easily modified to do the job with a lot less effort that starting from scratch. But where are you going to find it?
Well, if I were you, I'd fire off some emails and letters to some academics - there's a very high probability that a chemical process simulator has been developed by some postgrad out there, perhaps even been released under the GPL or similar license. Try the more science-orientated universities first and work your way down the list, and try to correspond with people in Chemistry, Chemical Engineering, Computer Science, etc departments.
I know someone out there is going to reply with a "Duh!", (or is at least tempted to do so) but it doesn't hurt to give it a go. Write a form email/letter, make sure it gets to the right people and give it a go. It might turn out to be a fruitless search but nothing ventured, nothing gained.
Oh, and good luck.
"Accept that some days you are the pigeon, and some days you are the statue." - David Brent, Wernham Hogg
Ok, not my field, but what about NAMD and VMD, a molecular dynamics program suite created by some people on the floor below me?
A company ... think it's called Teraplan, or similar has software (non-free, non Free) that does that.
It has a drag & drop GUI interface that's a more complex version of Lego Mindstorms'. Check that out - very intuitive, but each of (8?) processes can be modified. For example, adding substances is one uber-category with lots of choices, electromechanical stimulation another, etc.
They have a very cool demo - google for it!
Everyone else is doing, why can't you? It's cheap, those guys are intelligent, and they'll do anything for $5/hr.
Is there commercial software that's comparable to what you want? (e.g. chemcad)
Just trying to get a better idea of what you're looking for...
for projects like this is Scientific Applications on Linux. There are heaps of applications there, many of them GPL, but I don't have a very clear idea of exactly what you are trying to achieve...
at seul.org .. i think there is a science section. it may be just educational software. But you may find someone there who can help you to locate the software you're looking for
So essentially you want to build a SIMULINK clone, much like those Octave guys building a Matlab clone? You might want to consider using Octave as a base tool then, and extend it as you see fit.
Biospice, Ecell, Dizzy,a more complete list
I don't work on dynamic simulation, but I know people that do.
I really don't know of any free / free dynamic simulators out there, even the academic ones are costly unless you are academic.
ABACUSS II is available free from MIT, but it may not be the most friendly simulator, compared to Aspen or Hysys. Look at Barton's page. Process Systems Enterprises at Imperial has Gproms, they may give that to universities for free as well.
Generally, for dynamic simulation, you are looking to solve Differential Algebraic Equations. You have algebraic constraints and dynamic Ordinary differential equations. Numerically, you should start out using sparse linear algebra routines. I think there are free sparse linear algebra routines (LAPACK??).
The other problem comes from physical properties. I do not know of any available phys properties packages, sorry. Real simulators offer many different options for thermodynamics.
Finally, you need a nice library of components. This may take many man years to develop.
Also finally, some solvers have specialized routines for special types of equipment, like special solvers / methods for petrochemical distillation columns. Good luck handling those problems!!
Suggestion, find a good free numerical tool that you can extend and make it work. Release your problems and get people to help.
You may want to look at scilab, a simulink clone from the french. Questionable license, I believe.
I've had great luck with AVG's antivirus product. It has all the same features as the big names like email scanning, real time file scanning, etc, and its free. Don't know about the Linux side, but I'm sure there is something equally respectable out there.
[sig] 10 + 10 = 100 [/sig]
The Sim in my user name refers to process simulation, this is what I do. Mostly steady state but I do do some dynamic work. I design oil refineries.
If the submitter is following the thread still, I'd be interested to know more of what exactly they'd be interested in using this for in control systems. Are they interested in tuning controllers, training simulations, RTO? Different needs require different tools.
Most of the important points have been made. Thermo package is going to be a big concern. A lot of money is invested in these things. The algotithms are often published, but the coefficients and implementations are proprietary. Without good reliable thermo, your results won't be of much interest to anyone.
For dynamics, another concern is flow driven versus pressure driven. Each has it's advantages and more importantly serious compromises.
Unit operations aren't actually that bad to model mathematically. Having a good flash algorithm will go a long way. Converging distillation with any kind of speed will take some cleverness, but is conceptually pretty simple. It is just scaling the VLE over many components.
I've written simple stuff in Matlab pretty easily. Binary distillations, as an example.
The biggest hurdle you will face is crediblity. Aspen, Simulation Sciences, and the like have been around a long time and have a pretty good track record. Engineers are comfortable with them enough to base design decisions on them. Even at that, any time a new version is released we are probably 6 months away from adoption due to our validation cycle.
The company I work for is really near the top of the game as far as modelling refineries especially. And even with all of our experience and expertise, we are really wary of dynamic simulation. The concepts are really easy, and it doesn't seem like that big of a jump from steady state. But we take an awful long time to develop a dynamic simulation to the point where we are comfortable using it for design work. So much of it has to be hand-crafted as opposed to the simple drop-and-connect of many of the steady state packages.
Long development cycles are big dollars, and most clients aren't prepared to spend them unless the carrot is big enough. Relief system modelling is where we see it the most often.
I hope I am not being too discouraging here. Engineers by nature a fairly cautious lot. If something I design screws up, there are dead people and a smoking hole in the ground.
Oh, and if the question of sequential modular versus equation oriented doesn't mean anything to you, I would walk away.
Laugh while you can, monkey boy!
I'd like to encourage you on your mission, but I get the feeling that you're a college student with more enthusiasm than experience. I'm working on a chemical process optimization system myself, so I know what size an undertaking it is. I've also worked in the field for years, so I also have an idea what goes into making this kind of software. So, before I ramble on, what's your background?