From 130e07a4224834aa180f91fd224e85f7b7b493b4 Mon Sep 17 00:00:00 2001 From: Peter Boyle Date: Fri, 4 Apr 2025 16:39:58 -0400 Subject: [PATCH] Non hermitian support --- .../multigrid/GeneralCoarsenedMatrix.h | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/Grid/algorithms/multigrid/GeneralCoarsenedMatrix.h b/Grid/algorithms/multigrid/GeneralCoarsenedMatrix.h index a4098316..8e6302b2 100644 --- a/Grid/algorithms/multigrid/GeneralCoarsenedMatrix.h +++ b/Grid/algorithms/multigrid/GeneralCoarsenedMatrix.h @@ -441,8 +441,20 @@ public: std::cout << GridLogMessage<<"CoarsenOperator inv "< > &linop, Aggregation & Subspace) + { + CoarsenOperator(linop,Subspace,Subspace); + } + ////////////////////////////////////////////////////////////////////// + // Petrov - Galerkin projection of matrix + ////////////////////////////////////////////////////////////////////// + void CoarsenOperator(LinearOperatorBase > &linop, + Aggregation & U, + Aggregation & V) { std::cout << GridLogMessage<< "GeneralCoarsenMatrix "<< std::endl; GridBase *grid = FineGrid(); @@ -458,11 +470,9 @@ public: // Orthogonalise the subblocks over the basis ///////////////////////////////////////////////////////////// CoarseScalar InnerProd(CoarseGrid()); - blockOrthogonalise(InnerProd,Subspace.subspace); + blockOrthogonalise(InnerProd,V.subspace); + blockOrthogonalise(InnerProd,U.subspace); - // for(int s=0;sGlobalDimensions(); @@ -542,7 +552,7 @@ public: std::cout << GridLogMessage<< "CoarsenMatrixColoured vec "<