For Elara future, while we use Mathematica + MATLAB right now (especially for plotting data and making visualizations, which they are good at) we should slowly switch over to using Mathics3 + GNU Octave + Sage to replace these for Project Elara (which are open-source). Remember that long-term preservation of code and information is paramount to our mission.
In general, any of our Mathematica stuff should be written to be compatible with Mathics as well. This does have several issues, which will need to be addressed:
- Mathics doesn’t implement
NdSolveor the majority of the numerical differential equation tools of Mathematica at the moment - It also has limited support for a lot of mathematica functions in general
Finite element work should be ported from FreeFEM++ to FEniCS. FEniCS is written in Python, easier to debug, and has a much larger community; more importantly, given that it’s in Python, it has a well-documented syntax (rather than FreeFEM’s admittedly esoteric syntax) which integrates nicely with the rest of Project Elara’s Python-based ecosystem, and provides a common standard for Project Elara tooling. Ultimately, Project Elara should be a Python-based project in general, with only low-level routines written in Rust (though always with Python bindings).