zero'ing parts of blocks

Craig Tanis craig-tanis at utc.edu
Fri Dec 4 12:58:02 CST 2009


First of all, thanks for all the help on my recent questions!  Here's a new one:

I have multiple degrees of freedom per node in an unstructured mesh.  I have set up an AO to get  the PETSC ordering for these global nodes, and then a LocalToGlobalMapping to map local indices to these AO-renumbered global nodes.   This appears to be working correctly.

I create a Mat of type MATMPIBAIJ, and I use MatSetValuesBlockedLocal to add things to my matrix, as expected.   I have some boundary conditions that require certain rows within certain blocks to be zeroed out.  Conceptually, I would like to use MatZeroRowsLocal (which appears to operate on individual rows.. not on constituent blocks).  The problem is that this call complains that I have not set a LocalToGlobalMapping (since I've only set the block one).

Is it common (or even possible) to register a LocalToGlobalMapping  a LocalToGlobalMappingBlock for a given Mat?
Is there a way to extrapolate one from the other?

If there is no way to Zero these rows individually, am I forced to get the block values, zero out the rows manually and then INSERT them back in?

thanks again,
Craig


More information about the petsc-users mailing list