Hey, I am taking a good hard look at the Julia FEM landscape and would like some input. Let me first explain what I see the domain and scope of DifferentialEquations.jl. My work and research is centered around solving differential equations, but mostly related to timestepping routines (for both continuous and discrete stochastic equations). I plan to stick to timestepping routines because I am making a lot of progress and nobody else seems to be doing it (and it’s more interesting of course ).
So while this involves PDEs (/RDMEs), there is a lot of work that has to be done in meshing, assembling, etc. that I would like to make use of instead of re-implementing. But I see DifferentialEquations.jl as continuing to offer:
- Libraries of timestepping routines for ODEs/SDEs/DDEs/DAEs
- Well-optimized end-to-end solvers for common PDEs.
While before I internally created a small FEM toolbox to offer part 2, continuing in that direction seems impractical. Instead, I am looking around to see what’s the right FEM toolbox, and working with those who are making this offering. That said, I don’t know what’s the right choice here.
On one end, I think that plugging into some established FEM suites like deal.ii and FENICS might be a good idea, but there seems to be no work done on developing interfaces to these in Julia? I would be weary of such a solution because I wouldn’t want to lose the type-genericity though: since the most optimized timestepping routines are the native Julia methods, the full set of Julia-defined numeric types are supported, and so if the FEM toolbox doesn’t support the full type system (and is restricted to Float64) it would be a big loss.
But I am not sure about the native Julia offerings. @kristoffer.carlsson 's JuAFEM.jl looks to be an interesting choice (which offers assembly), but I am not sure what the long term plans are there for integrations with meshing tools the different types of elements you plan to offer (mesh adaptivity as well?). On the other hand, I am not sure what JuliaFEM offers. It seems to be more along the lines of FEA tools which are built for physical applications rather than a toolbox of primitive functions for a standard FEM workflow? I could be mistaken.
If anyone knows this area and Julia’s developments in this area well, I could use the guidance. Thanks in advance.