I've post a similar question before(Solve distributed BlockVector with direct solver <https://groups.google.com/g/dealii/c/XTefp8_Df_A#:~:text=Solve%20distributed%20BlockVector%20with%20direct%20solver>), where I had a Trilinos SparseMatrix(the system has 2 components) and LinearAlgebra::distributed::BlockVector as dst and src for that SparseMatirx. I choose LinearAlgebra::distributed::BlockVector because the bigger problem is intend to solve by MatrixFree operators, and use direct solver on coarsest grid.
However, by copy to and from between LinearAlgebra::distributed::BlockVector and LinearAlgebra::distributed::Vector, it produces wrong result. Though I cannot confirm the wrong result comes from transfer between Vector and BlockVector(I tested simple x=inv(A)*b and result is right, but treating it as the coarse solver for bigger problem the result is wrong), I reassembled the matrix in Trilinos BlockSparseMatrix and solve it with a iterative solver and the result is correct. While solving coarse problem iteratively works for very small matrix, my system is indefinite so I have to use a direct solver. So given a BlockSparseMatrix and BlockVector src and dst, is there a recommended strategy to solve it directly(or block diagonal precondition)? The matrix has form [A, B; -B^T A] -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/2bd0540e-733f-4985-ad5b-cf12c8c014ben%40googlegroups.com.
