On Tue, 26 Feb 2008, Zbigniew Romanowski wrote:
> I am particularly interested in positive definite operators
> \nabla^2 + U(x)
> corresponding to reals eigenvalues. Do the bug appear also for this type
> of equation?
Not to my knowledge. I haven't been able to replicate any bug without
--enable-complex turned on. But the fact that we've seen any bug at
all suggests that some of the eigensolver code isn't as well-tested as
it should be.
> As far as I know, for efficient adaptive procedure the estimation of the
> eigenvalue error is crucial. Could you please provide the documentation
> about the eigenvalue error estimators implemented in libMesh for
> ordinary and generalized eigenvalue problem? This would be very helpful.
There are none that apply to general problems, I'm afraid. One reason
is that if you want a rigorous upper bound on your error, you
generally need cell residuals, and libMesh only has access to the weak
form of the users' PDEs, not the strong form. A second reason is that
most of the primary developers have been using adaptivity based on
error indicators that are simplified for speed and ease of
implementation (e.g. using the jump indicators even on problems for
which they are not proportional to a rigorous bound). This is usually
sufficient for directing adaptive refinement/coarsening, but it's not
enough to prove error bounds on your results. In general (and
especially for nonlinear PDEs), proven error bounds depend enough on
the particular boundary value problem you're trying to solve that we
can't provide a "one size fits all" solution.
It looks like you're operating on a simple enough problem (second
order, linear, unit coefficient on the linear operator) that you might
be able to start with our Kelly jump indicator, add a hand-coded
residual corresponding to the U(x) term, and get a real upper bound.
But that's just off the top of my head. Even if it works you might
get a uselessly loose upper bound. There should be lots of
cancellation if it's just the eigenvalue error you're looking for, not
the eigenfunction error, and I don't know enough about eigenproblem
error analysis to know how that should be handled.