Philipp said:
I have a lot differential equation and would solve
the problem with finite element method. Is there
any good open-source lib which I can use with
the boost ublas structures?
I'm also writing a FEM program in C++. I've also started using boost::ublas to handle the
matrix algebra and solving the FEM equation but I have to say that it left me a bit
disappointed. It's documentation is rather lacking (it covers data types and not much beyond
that) and basically you are forced to either rely on external routines for basic tasks such as
factorization/solving, dig through the source code to search for undocumented routines or even
implement them yourself. Neither of those is a good option. So, in essence boost::ublas
implements a set of data types that are used to represent vectors and matrices, it offers a
set of algebraic operators but you don't get much more than that.
Another issue I'm having with my code is that generating the FEM equation is taking an awful
lot of time. To be more precise, it takes my code over 2 seconds to build the stiffness
matrix of a 27-node hexahedron for a 3D elasticity problem. After running a code profiler it
pointed out that nearly 80% of that time was spent running boost::ublas routines.
Nonetheless, as I haven't tested this further nor I've compared to any other library then
quite possibly this may very well be due to my appallingly sloppy code. Hey, it happens.
As a consequence I'm currently searching for alternatives to boost::ublas. Eigen[¹] appears
very promising (much better documentation, provides factorization routines which are also
documented) but I haven't had time to test it yet.
Hope this helps,
Rui Maciel
[¹]
http://eigen.tuxfamily.org/index.php?title=Main_Page