Dear all, 

the "Constraints on Degrees of Freedom" module introduces several 
approaches to deal with constraints.
I implemented the "second" approach, that is, distributing the constraints 
on the fly when assembling the linear system using the 
constraints.distribute_local_to_global() function.
Since I plan to move from serial to distributed versions of my program in 
the future, 
it makes sense to stick to this approach as mentioned in the module.

After assembling and solving the linear system, I need the uncondensed 
system matrix and right hand side to perform a sensitivity analysis.
In particular, I need the rows and entries of the system matrix and RHS 
corresponding to constrained dofs. 
However, the constraints.distribute_local_to_global() function sets these 
entries all to zero (except the diagonal value of the system matrix).
My solution to deal with this is to basically copy my assembly function 
and, 
instead of distributing the constraints with the constraints object --
constraints.distribute_local_to_global() --
I distributed them with the cell iterator --
cell-> distribute_local_to_global(),
which does not care about the constraints.

This solution is of course very inefficient as for efficiency and code 
re-use.
As I said, it is basically a copy of my assembly function,
although most of the system matrix "is already there". 

So is there a more efficient way to recover the full system matrix based on 
the condensed system matrix?

Thanks for your help!

Best,
Simon


-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/bcd7ffe7-34e0-4205-8296-c538a74b49efn%40googlegroups.com.

Reply via email to