Hi all,

I am doing some eigenvalue computations (using the SLEPc interface in 
libMesh) on matrices assembled from a PDE with a Dirichlet boundary 
condition, and in this situation the penalty method that is typically 
used in libMesh is not very good because the penalty term messes up the 
matrix's spectrum.

As a result, I would like to be able to compute the matrix in which all 
the rows and columns corresponding to the DOFs on a Dirichlet boundary 
have been removed. If anyone can offer suggestions about the best way of 
going about this, that'd be a big help. I'll need to introduce a 
mechanism for flagging the relevant DOFs during matrix assembly (e.g. by 
adding a _is_dirichlet_dof flag to dof_object?) and then copying all 
non-Dirichlet matrix entries to a new (smaller) matrix. Where abouts 
would be a natural place for this function to go? e.g. in 
ImplicitSystem? Also, would people want this to be added to the library 
(I'm sure it'll be a very computationally intensive operation)?

An alternative would be to zero out the rows and cols and set the 
diagonal to 1; unlike the penalty method, this wouldn't adversely affect 
the spectrum, but for my application I'd prefer to generate the 
reduced-size matrix.

Cheers,
Dave

------------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It is the best place to buy or sell services for
just about anything Open Source.
http://p.sf.net/sfu/Xq1LFB
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to