Feature eigen
Compare changes
Files
3- acrovato authored
+ 46
− 3
@@ -12,11 +12,13 @@
@@ -24,12 +26,53 @@
This MR generalizes the use of Eigen in waves.
Following MR !50 (merged), here is the updated to-do list:
gmm::matrix<double>
by Eigen::Matrix<double>
std::vector<double>
by Eigen::(Row)Vector<double>
void build(Matrix const &A, Matrix &K)
should become Matrix K build(Matrix const &A)
tbox::Pt
by Eigen::VectorXd
tbox::LinearSolver
from which derive tbox::Mumps
, tbox::Pardiso
, tbox::Gmres
and tbox::SparseLu
. The first class is a direct interface to the MUMPS solver, while the other three merely call Eigen interface or implementation of these solvers. The linear solvers are interfaced in python and the nonlinear solvers must now be initialized with a problem and a linear solver.tbox::Tetra4
and tbox::Hex8
. This could be further addressed in the branch clean_mirrors, which brings LFS support for large geometry files and improved tests.std::vector
holding the shape functions by Eigen::Matrices
, and consequently updated the Cache, ShapeFunction and Gauss classes. Additionally, the members of Cache and Gauss are now private and can only be accessed by getters (which I inlined).std::vector
by std::deque
to hold the list of Eigen::Triplet
for the global matrices assembly, as it proved to be faster.tbox::MshDeform
) and Kutta condition (flow::Newton
and flow::Picard
) so that the contributions are directly assembled on the right rows, thus avoiding the costly manipulation of the rows after the matrix has been built.Passed on ubuntu18.04 (python 2.7.15), debian4.9 (python 2.7.13), msys2 (python 3.8.1).