Michael, I implemented something similar to what you proposed. You might want to have a look at https://github.com/dealii/dealii/pull/5175
Best, Daniel Am Mittwoch, 27. September 2017 17:41:08 UTC+2 schrieb Michał Wichrowski: > > >> I've started working on new version MGTransferBlockMatrixFree and I now >> see the problem. MGTransferBlockMatrixFree is easy to rewrite using vector >> of dof handres etc, but PreconditionMG requires MGTransfer that have >> copy_to_mg and copy_from_mg that work on single dof handre. I am thinking >> of 3 way to resolve it: >> 1) Rewrite MGTransferBlockMatrixFree using vector of dof handler, >> implement PreconditionBlockMG and probably Multigrid will also need block >> version >> 2) Use standard MGTransfer for individual blocks and implement >> PreconditionBlockMG and BlockMultigrid to work with several MGTransfer s. >> 3) Since MGTransferBlockMatrixFree requires dof handler in build (const >> DoFHandler< dim, dim > &mg_dof) method, the pointers to dof_handlers may be >> stored and used in copy_from_mg and copy_to_mg. >> I think 3) is simplest but also risky solution. 2) seems quite rational >> to me. >> >>> >>> I've decided to implement approach 3). You can find it in attachment. > Second file contains test on block Laplace problem. Main difference between > this file and one of deal.II test are this lines: > > std::vector< const MGConstrainedDoFs * > mg_constrained_dofs_vector(nb, > &mg_constrained_dofs ); > std::vector< const DoFHandler<dim> * > mg_dofs_vector(nb, &dof ); > MWichrowski::MGTransferBlockMatrixFree<dim,dim,number> > mg_transfer(mg_constrained_dofs_vector); > mg_transfer.build(mg_dofs_vector); > > >> Best, >> Michał >> > -- 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.