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
