Hacker News new | ask | show | jobs
by precsim 2060 days ago
Don't really know how this ended up on the front page now, but the overall "idea" that I have yet to find anyone else understand and believe in (even my old prof and colleagues don't seem to "get it"), is that: wouldn't it be great if there was a unified, ideally simple, interface from which you could just select any solver by the click of a button, whether you wanted to use OpenFOAM, FEniCS, or maybe even Ansys, etc. Then you could set up your simulation model once, and run it on "any" and many solvers (to validate and check results etc.). So that's what I've been trying to do by myself for the past 7 years or so. For better or worse it initially seemed like a good idea to use Matlab/Octave, but have been planning to eventually move either to Python or Pascal/Delphi backend.
3 comments

I agree, in my lab our typical solution is a MATLAB/Python routine managing the simulations (submitting to a cluster, gathering the results, producing a report via LaTeX, changing some parameters, submitting again...) but these routines needs to be heavily customized for each project, version of the software, cluster, etc. and they always end being very fragile.
Yes, I think the initial simulation definition/set up can be "easy", but once you get to parallel shared memory clusters it unfortunately have to be much more hands on. I had hoped to eventually not only allow running individual solvers from a single interface, but also allow coupling them similar to PreCICE [1], however making that easy to use is something I've not dared attempt yet.

[1]: https://www.precice.org

You mean like FEMAP or Hypermesh? Granted they are geared towards structural mechanics, but they will write input files for a host of solvers including ANSYS, ABAQUS, NASTRAN, MARC and LS-DYNA.
Is there really much value checking multiple solvers if you use the same pre-post which might introduce the same common errors, including user error, into all of them? I know it would be handy from time to time but validating solvers against each other seems like a small thing for an entire pre-post to be built around. It sounds a bit like compiling your software with multiple compilers to make sure it's correct. The bugs aren't usually in the compilers.
I guess the thing is most people only use one solver, but at least when I was doing research it would be rare that two physics solvers based on different discretizations give exactly the same results (sometimes wildly different). So I would say, yes, its actually very valuable, although time consuming, and something most users don't really consider or think about (just because your physics solver converges doesn't necessarily mean the physics are represented accurately).