Hi everyone,

I am trying to set-up a non-square MatrixFree operator for which the destination and source vectors do not have the same dimension (in order to use it in a Schur complement). The way I am doing this is by passing two dof_handlers to the MatrixFree object, and select row_block=0 and column_block=1 when initializing my MatrixFreeOperators::Base (derived) object. In the assembly method, I am using multiple FEEvaluation object associated with different selected blocks to evaluate the source vector and integrate into the destination vector.

However, I am getting an assertion when trying debug my program, which makes me think I misunderstood the possibilities of the MatrixFreeOperators::Base class. The exact assertion is "AssertDimension <https://www.dealii.org/current/doxygen/deal.II/group__Exceptions.html#ga9442b63275c9ef3fab29bc222831c49c>(dst.size(), src.size());" and can be found line 1508 of deal.II/matrix_free/operators.h (and also l. 1563 and l. 1617). The message of this assertion is perfectly clear and tells me that my operator should be a square one, but I fail to understand why. Is there a fundamental limitation to this class that restricts it to square operators? I guess this would make sense if the only purpose of this class is to use it in a multigrid framework (which I do not really need for my coupling matrix in any case).

Best regards,

Guilhem

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/fc4b63b1-eb6b-e640-d14b-8cecfb956307%40gmail.com.

Reply via email to