78 karma · joined July 25, 2019
https://www.featool.com
Thank you for your offer, I could not find you contact info anywhere though, so I left my contact in my profile if anyone wants to get in touch for collaborations or anything at all really.
Yes, unfortunately that is exactly right as I already am getting the heat. No matter what is wrong Matlab, meshing, OpenFOAM, FEniCS etc it always comes back to me even if its from an external solver or component, leading to lots of support. So yeah, I know many things could be much better and I'm far from what my "vision" is, but I don't have such resources so I have to try to do the best I can.
> Supporting multiple solvers is surely going to mean having solver-specific features, isn't it? Which would eat away at what seems like your vision. Or are you able to keep it abstracted from that so they really are interchangeable?
I have so far kept it abstracted with a minimum set of features, but some solvers only support some physics, models, or features so as you allude to sooner or later it will begin to become specialized modes or so for each solver, which is not ideal and I'm not yet sure the best way to move forward.
Maybe it isn't too clear, but Comsol is just one solver (depending how to look at it I guess), while the idea of FEATool is to be a fully integrated platform for "any" solver, and in the extension to be able to mix and match and combine them (plug and play so to speak). At present I have just been able to implement the built-in MATLAB based multiphysics solver, with interfaces to FEniCS, OpenFOAM, and SU2.
> Why FENICS and not DEAL.II or MOOSE (I don't know, I am just curious. I used to use FENICs but got frustrated because their input syntax kept changing on me.
No particular reason really, I just started with FEniCS as it is quite popular and I found the FEATool PDE syntax easy to convert to FEniCS Python scripts. The plan is to add more and more external solver options.
> As someone who does this 50+ hours a week in industry (although only structural modelling but frequently coupled with optics/heat transfer/) and is reasonably well versed in the up and coming research I have a couple of questions (or would have if I was a potential buyer).
Thank you, I really appreciate the interest and feedback. Unfortunately its kind of "not implemented/available yet" to all your technical questions, although FEATool technically can solve any system of PDEs, I haven't yet pre-defined and set up everything so it is easy for the end users. So as many things are possible to do by going down to the FEM matrix assembly syntax but from a users standpoint that is most often the same as it doesn't exist.
> Also really cool. I have been thinking about writing software in this space but more nichy for about the past year and am beginning to get started, any interest in collaboration?
Thanks again for the feedback, I'm certainly open to all and any collaborations (email in my profile). Yes, looking back I think starting in a niche would have been a better approach.
As for Python, it is also a bet and compromise with the following specific criteria:
- Fast and easy to develop in (as I as a bootstrapped solo-dev have to do everything by myself)
- Reasonably simple to translate to from Matlab code
- Good and easy to use client side GUI functionality
- Easy for other users to use (as I want as many users a possible to use the functionality and potentially be able to write extensions themselves)
- 3D Visualization libraries (VTK, ParaView)
with this in mind my choices were:
1) Python
2) Julia
3) (Object) Pascal
4) Web stack (Javascript + webassembly)
I almost initially chose (Lazarus free) Pascal due to its IDE, fast compilation, and easy deployment but eventually I found the fixed pixel based GUI placement not ideal (although there are probably workarounds for that). Although using a web stack would be ideal from a user and sales perspective (with no installation), my impression of web programming is "messy" and I'm afraid that for CAE simulation apps this approach would freeze the computers completely (Electron!). Although I initially thought Julia would be ideal as the syntax was very close to Matlab, it seems to become more and more complex as it matures and my impression is that there still isn't a good way to deliver (pre-)compiled client side apps which is my requirement. So all in all I felt that Python probably the best compromise. It is still a bet, but with the "Matlab engine" you can call Matlab in the background so port bit by bit. In your case though with a (web) server-client app you might fare better with Matlab/Octave.
Tech-stack aside, I've found the hardest part is the non-techy bits, especially sales, marketing etc. which I still haven't figured out.
Best of luck!