-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 21/10/15 14:32, Anna Kalogirou wrote:
But the matrix A has the same form as C, namely it has nonzero variables in a block submatrix only.
Ah, oops, I see. So because you're using an iterative solver without any preconditioning, the operator is never being inverted directly (hence you never get zero pivot errors in an LU factorisation). Your operator just has a gigantic null space. If the right hand side is consistent you might get lucky in that the Krylov solver can just explore the space orthogonal to the null space (and you end up with a solution in that subspace). I guess what you really want to do is only solve the problem in the region where the heaviside function is nonzero, but we don't currently have proper support for this. I guess if you want to be able to invert the system somehow, we can add the identity matrix to the zero block and (presumably) zero the right hand side in the appropriate rows. Lawrence
On 21/10/15 14:26, Lawrence Mitchell wrote: On 21/10/15 14:14, Anna Kalogirou wrote:
Dear Lawrence,
I believe the code (attached) sets up the matrices/vectrors/operators correctly. However, I have one question: Due to the use of a heavyside function, the operator B on the LHS is nonzero in a block NxN, say, in the bottom right corner. For that reason, when I solved the linear system in Matlab I only considered these nonzero values in the block, because otherwise the LHS would not be invertible. How come and it doesn't complain here? So it's clear that the matrix C = Q1*Q2^T is not invertible, however, presumably you're solving for:
B = A + C
where A is full rank and invertible. So I don't immediately see why there would be a problem in trying to invert B which is what the solver does.
Lawrence
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAEBAgAGBQJWJ5o0AAoJECOc1kQ8PEYvxpAH/AmnOnhCRU+gVH5Yxjf76jhE evR42Oie1wLnZPjgP1CeYpbb/QaMk9i6X3TMWN7fgTIheoIIQMusu7a1rl7oMCdN RzUcVyXACNd4lcKT/SpSm2AcQxHkf1rLGzXsU1R8OoCqj+gFPWuLkCX0QX1gzWWe OGd47c1v+QbFzJgTUbI/2ivd3ACYnBGkHHuDapFYQYJvCyCF0aAdDrsDWu5EruIJ Xt7wUCbtcauEFih3WnDKDO1e7GwERyTbFhrnHWwqqcjIbDRFl6ENr6mrkduN1r/3 78d+4YdUabyx1Yq9C8P0srAsOAshpYYcTViVAemLcMC8LoCqILW3o/n9GnW7ntU= =L2Fs -----END PGP SIGNATURE-----