From c112b11f7990e5b54347b0ca1b3203dd146832d2 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Fri, 27 Mar 1998 13:49:32 +0000 Subject: [PATCH] Update max_couplings: correction and extension. git-svn-id: https://svn.dealii.org/trunk@98 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/source/dofs/dof_handler.cc | 63 +++++++++++++--------- 1 file changed, 38 insertions(+), 25 deletions(-) diff --git a/deal.II/deal.II/source/dofs/dof_handler.cc b/deal.II/deal.II/source/dofs/dof_handler.cc index 643ceb295c..a47282da07 100644 --- a/deal.II/deal.II/source/dofs/dof_handler.cc +++ b/deal.II/deal.II/source/dofs/dof_handler.cc @@ -652,14 +652,15 @@ void DoFHandler::renumber_dofs (const RenumberingMethod method, for (int row=0; row::renumber_dofs (const RenumberingMethod method, // dofs numbered in the last // round for (unsigned int i=0; i::renumber_dofs (const RenumberingMethod method, s!=next_round_dofs.end(); ++s) { unsigned int coordination = 0; - for (int j=sparsity.rowstart[*s]; j::max_couplings_between_dofs () const { unsigned int DoFHandler<2>::max_couplings_between_dofs () const { Assert (selected_fe != 0, ExcNoFESelected()); - const unsigned int max_adjacent_cells = tria->max_adjacent_cells(); // get these numbers by drawing pictures // and counting... @@ -1245,20 +1246,32 @@ unsigned int DoFHandler<2>::max_couplings_between_dofs () const { // = total of 17 // count lines -> 28 (don't forget to count // mother and children separately!) - if (max_adjacent_cells == 4) - return (17*selected_fe->dofs_per_vertex + - 28*selected_fe->dofs_per_line + - 8*selected_fe->dofs_per_quad); - else - if (max_adjacent_cells == 5) - return (19*selected_fe->dofs_per_vertex + - 27*selected_fe->dofs_per_line + - 9*selected_fe->dofs_per_quad); - else - { - Assert (false, ExcNotImplemented()); - return 0; - }; + switch (tria->max_adjacent_cells()) + { + case 4: + return (17*selected_fe->dofs_per_vertex + + 28*selected_fe->dofs_per_line + + 8*selected_fe->dofs_per_quad); + case 5: + return (19*selected_fe->dofs_per_vertex + + 31*selected_fe->dofs_per_line + + 9*selected_fe->dofs_per_quad); + case 6: + return (25*selected_fe->dofs_per_vertex + + 42*selected_fe->dofs_per_line + + 12*selected_fe->dofs_per_quad); + case 7: + return (27*selected_fe->dofs_per_vertex + + 45*selected_fe->dofs_per_line + + 13*selected_fe->dofs_per_quad); + case 8: + return (33*selected_fe->dofs_per_vertex + + 56*selected_fe->dofs_per_line + + 16*selected_fe->dofs_per_quad); + default: + Assert (false, ExcNotImplemented()); + return 0; + }; }; -- 2.39.5