Did you impose penalty in the element matrices (Ke, Me) or in the final
Matrices A and B after they are assembled from Ke and Me?
I tried it in the element matrices Ke and Me with same large penalty value.
The results didn't show degenerated eigenvalues and all the eigenvalues I
obtained are the same as the ones when I didn't enforce penalty BC.
When I use libmesh to solve a generalized system with known eigenvalues, I
always get some extra eigenvalues. I don't know if it's because I didn't
properly apply the penalty method or the solver (ARPACK) is not stable.
The code I use to impose penalty at Ke, Me is the following:
double penalty = 1.e10;
for(unsigned int s=0; s<elem->n_sides(); s++)
if(elem->neighbor(s) == NULL)
for(unsigned int n=0; n<elem->n_nodes(); n++)
if(elem->node(n) == node->id())
Ke(n,n) += penalty;
Me(n,n) += penalty;
On 6/30/06, Ondrej Certik <ondrej@...> wrote:
> Yes, because In this way you effectively exclude those nodes from the
> eigenvalue problem.
> On 6/30/06, David Xu <dxu@...> wrote:
> > Does this work for setting function value u=0 on the boudary of a 3D
> > (cube)?
> > Just impose different large number on the diagonal of Ke and Me after
> > are assembled?
> > Thanks.
> > On 6/30/06, Ondrej Certik <ondrej@...> wrote:
> > > you need to set the value of (i,i) element of both Ke, and Me matrices
> > > to some (big value). this will however generate a degenerate
> > > eigensolutions of the eigenvalue 1. so you need to put different large
> > > numbers to Ke and Me to avoid that.
> > > See you,
> > > O.
> > >
> > > On 6/30/06, David Xu <dxu@...> wrote:
> > > > Dear Ondrej,
> > > >
> > > > I know you were using libmesh for generalized eigenvalue problems. I
> > > > wondering if you could give me some tips on how to impose simple
> > Dirichlet
> > > > boundary condition (u=0) on the stiffness and mass matrices (Ke,
> Me) in
> > > > libmesh. There are some examples of using penalty method on
> > > > website, but they are limited to solving linear systems and the RHS
> > > > usually a vector. So I got stuck on this issue. If you could point
> me to
> > > > some reference, that would be great too.
> > > >
> > > > Thanks a lot,
> > > >
> > > > David
> > >