mimesis-inria / caribou

Multi-physics computation library
GNU Lesser General Public License v3.0
29 stars 17 forks source link

Allow different ordering methods for Sparse solvers #8

Open jnbrunet opened 3 years ago

jnbrunet commented 3 years ago

At the moment, sparse solvers using Eigen as backend use the default Eigen::AMDOrdering ordering method. While this method performs well for unstructured meshes, it does worse for structured grid (such as the regular grid). We should be able to change the ordering method to the identity.

In addition, Eigen provides a wrapper to METIS ordering algorithms. It would be a good occasion to add it to the list of supported ordering methods.

Example:

root.addObject('LDLTSolver', backend='Eigen', ordering='None')
root.addObject('LDLTSolver', backend='Eigen', ordering='AMD')
root.addObject('LDLTSolver', backend='Eigen', ordering='METIS')