On Mon, 8 Nov 2010, Tim Kroeger wrote: > Idea #4: Upon removing the columns of the matrix, automatically adjust > the right hand side. I think this would actually be quite easy to do > by the following procedure: > > 1. Remove the inactive rows of the matrix. > > 2. Let B denote the active columns of the matrix and C all the > remaining (inactive) columns. > > 3. Subtract C*x from b (where b is the right hand side and x the > solution vector). > > 4. Then solve with B as before.
After thinking about this some more time, I am now unsure at which point in the code the complement (PETSc) index set should be determined. The most native point would be in PetscLinearSolver::restrict_solve_to(), since this is the point where to other (non-complement) index set is created. But this is not possible because this method (with the current API) has no chance to determine the overall index range, because this method does not get a vector. My idea would be add ab extra method, e.g. PetscLinearSolver::create_complement_is(), to create the complement index set. This method would be called from any solve() method, and if the complement index set has already been computed before, it will do nothing. Any thoughts? -- Dr. Tim Kroeger CeVis -- Center of Complex Systems and Visualization University of Bremen [email protected] Universitaetsallee 29 [email protected] D-28359 Bremen Phone +49-421-218-7710 Germany Fax +49-421-218-4236 ------------------------------------------------------------------------------ The Next 800 Companies to Lead America's Growth: New Video Whitepaper David G. Thomson, author of the best-selling book "Blueprint to a Billion" shares his insights and actions to help propel your business during the next growth cycle. Listen Now! http://p.sf.net/sfu/SAP-dev2dev _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
