> Anyone have an example showing how to properly use a CouplingMatrix?
No current example, but I can describe it pretty easy...
> I have several variables in my system, but I only want to allocate the
> diagonal blocks (ie, solve the system completely decoupled). It appears that
> the CouplingMatrix will do this... but I can't quite figure out the correct
> sequence of calls needed in order to use a CouplingMatrix...
If *all* the variables are decoupled, would you not want to put them in
In any case, the CouplingMatrix should allow you to do this. When you add
the variables to the system, then create a CouplingMatrix and give the
DofMap its address (the dof_coupling pointer is there for your use).
Fill the CouplingMatrix such that the diagonals are 1, the other entries 0.
This says each variable couples to itself only.
You need to do this before the EquationSystems is initialized, so that the
dof distribution code sees your coupling matrix.
The only remaining thing then is in your matrix assembly code you need to
build and fill only the diagonal blocks of the element matrix as well.
(That is, impose the same coupling on your element matrix, otherwise the
insertion will allocate a lot of memory and waste your efforts.
Let me know if it is still not clear -- ex11 could be easily hacked to show
this since there is no Kuv/Kvu coupling in the Stokes equations.