← Back to team overview

dolfin team mailing list archive

Re: [Question #125019]: Assembling matrix over cells and interior facets only

 

On Mon, Sep 13, 2010 at 12:17:02PM +0200, Marie Rognes wrote:
> On 13. sep. 2010 08:11, Evan Lezar wrote:
> > Question #125019 on DOLFIN changed:
> > https://answers.launchpad.net/dolfin/+question/125019
> >
> >     Status: Answered => Open
> >
> > Evan Lezar is still having a problem:
> > Hi
> >
> > I think Anders is correct. I have just had a look at the SystemAssembler
> > code, and it does seem to also place ones on the diagonals of the matrix
> > to which the boundary conditions are being applied. In addition, I am
> > not solving a linear system, but eigenvalue problems and as such b is a
> > Matrix not a Vector.
> >
> > At present I am manually removing the rows and columns for the matrices
> > that correspond to (zero) Dirichlet conditions and then reconstructing
> > the correct solution vector from the eigenvector that I obtain. This is
> > fine for testing and getting the rest of the system running.
> >
> >
>
>
> Is this really simpler than filtering the eigenpairs? As far as I see it
>
> (1) (As you know) the eigenvalues associated with the boundary
> conditions are all 1's
> (2) The eigenvectors associated with these only have non-zero
> coefficients for the relevant boundary degrees of freedom -- hence can
> be filtered by examining the coefficients
> (3) The krylov-schur solver in SLEPc 3.1(-p2) converges way more often
> than before. This makes solving non-tiny singular, generalized
> eigenvalue problems way easier.

Would it help to introduce a parameter for the entry on the diagonal
in the application of BCs? We could scale those rows by a factor so
that the eigenvalues come out as whatever you want (something that
does not pollute the spectrum). There might be issues with the solvers
that prevent it, but perhaps one could arrange so those eigenvalues
come out as -1.

--
Anders



References