On 08/27/2018 08:36 AM, Loylick wrote:
So I get a singular matrix with zero degrees of freedom inside voids. For this system to be solved I should eliminate rows corresponding to zero degrees of freedom from my system matrix. I need your advise how to implement it in dealii in an optimal way. I do not know beforehand how many rows are to be removed so initially I allocate my sparsity pattern as:
|
DynamicSparsityPatterndsp(dof_handler.n_dofs(),dof_handler.n_dofs());
|
Or maybe there are some other techniques to deal with this kind of problem that I'm not aware of. I would appreciate any suggestion on how it could be solved.

It is very inconvenient to remove rows and columns from a matrix because you will then have to renumber all other indices in your program accordingly.

The better way is to add constraints to your program in the same way as we add constraints for Dirichlet boundary conditions, or for the mean value as is done in step-11. The singular matrix plus the constraints then yield an invertible matrix of the same size.

Best
 W.

--
------------------------------------------------------------------------
Wolfgang Bangerth          email:                 bange...@colostate.edu
                           www: http://www.math.colostate.edu/~bangerth/

--
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 dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to