@@ -318,37 +318,39 @@ void BEMProblem<dim>::reinit()
318318
319319
320320template <>
321- const Quadrature<2 > & BEMProblem<3 >::get_singular_quadrature(const unsigned int index) const
321+ const Quadrature<2 > &BEMProblem<3 >::get_singular_quadrature(const unsigned int index) const
322322{
323323 Assert (index < fe->dofs_per_cell ,
324324 ExcIndexRange (0 , fe->dofs_per_cell , index));
325325
326+
327+
326328 static std::vector<Quadrature<2 > > quadratures;
327- {
328- if (quadratures.size () == 0 )
329- for (unsigned int i=0 ; i<fe->dofs_per_cell ; ++i)
330- {
331- quadratures.push_back (QSplit<2 > (QDuffy (singular_quadrature_order,1 .),fe->get_unit_support_points ()[i]));
332- }
333- }
329+ {
330+ if (quadratures.size () == 0 )
331+ for (unsigned int i=0 ; i<fe->dofs_per_cell ; ++i)
332+ {
333+ quadratures.push_back (QSplit<2 > (QDuffy (singular_quadrature_order,1 .),fe->get_unit_support_points ()[i]));
334+ }
335+ }
334336
335- return quadratures[index];
337+ return quadratures[index];
336338
337- }
339+ }
338340
339341template <>
340- const Quadrature<1 > & BEMProblem<2 >::get_singular_quadrature(const unsigned int index) const
341- {
342- Assert (index < fe->dofs_per_cell ,
343- ExcIndexRange (0 , fe->dofs_per_cell , index));
342+ const Quadrature<1 > &BEMProblem<2 >::get_singular_quadrature(const unsigned int index) const
343+ {
344+ Assert (index < fe->dofs_per_cell ,
345+ ExcIndexRange (0 , fe->dofs_per_cell , index));
344346
345- static std::vector<Quadrature<1 > > quadratures;
346- if (quadratures.size () == 0 )
347- for (unsigned int i=0 ; i<fe->dofs_per_cell ; ++i)
348- {
349- quadratures.push_back (QTelles<1 >(singular_quadrature_order,
350- fe->get_unit_support_points ()[i]));
351- }
347+ static std::vector<Quadrature<1 > > quadratures;
348+ if (quadratures.size () == 0 )
349+ for (unsigned int i=0 ; i<fe->dofs_per_cell ; ++i)
350+ {
351+ quadratures.push_back (QTelles<1 >(singular_quadrature_order,
352+ fe->get_unit_support_points ()[i]));
353+ }
352354 return quadratures[index];
353355}
354356
@@ -602,12 +604,6 @@ void BEMProblem<dim>::assemble_system()
602604 dirichlet_matrix = 0 ;
603605
604606
605- std::vector<Quadrature<dim-1 > > sing_quadratures (fe->dofs_per_cell );
606- for (unsigned int i=0 ; i<fe->dofs_per_cell ; ++i)
607- {
608- sing_quadratures[i] = get_singular_quadrature (i);
609- }
610-
611607
612608 // Next, we initialize an FEValues
613609 // object with the quadrature
@@ -969,7 +965,7 @@ void BEMProblem<dim>::assemble_system()
969965 const Quadrature<dim-1 > *
970966 singular_quadrature
971967 = dynamic_cast <Quadrature<dim-1 >*>(
972- &sing_quadratures [singular_index]);
968+ &(get_singular_quadrature [singular_index]) );
973969 Assert (singular_quadrature, ExcInternalError ());
974970
975971 FEValues<dim-1 ,dim> fe_v_singular (*mapping, *fe, *singular_quadrature,
0 commit comments