Once I have built and filled a SparseMatrixEZ, is there a way to
actually factorize it? Indeed, the SparseDirect solvers are only
instantiated for SparseMatrix and BlockSparseMatrix...

It shouldn't be hard to write the respective member function of SparseDirect*
but it doesn't currently exist. If you want, take a look at the existing
functions and see how they would need to be adapted for SparseMatrixEZ. If you
want to go that route, we'd of course be happy to incorporate the resulting
code!

OK, I'll try that. However, I guess I'll need a little bit of help.

I have started with the SparseDirectUMFPACK solver.

The only function of the class that is specialized for each type of matrix is the private function 'sort_arrays', so I guess I can create another specialization of the function for SparseMatrixEZ, which will do pretty much the same thing as the function SparseMatrix.

But when I to try to run the 'initialize' or 'factorize' functions on my SparseMatrixEZ, the linker throws an error (undefined reference to `void dealii::SparseDirectUMFPACK::initialize<dealii::SparseMatrixEZ<double> >(dealii::SparseMatrixEZ<double> const&, dealii::SparseDirectUMFPACK::AdditionalData)'), even though the functions are templated by the type of matrix (template <class Matrix>), so I guess I'm missing something.

Could you please give me a little more details on the steps to follow in order to create another instantiation of this class for SparseMatrixEZ? Sorry for my lack of clairvoyance, and thanks in advance for your help.
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to