From: Wolfgang Bangerth Date: Tue, 30 Apr 2013 16:48:16 +0000 (+0000) Subject: Do operation in the correct type. X-Git-Tag: v8.0.0~599 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=653cbe5e1ada36b8db2e3e41630236e1b97053f5;p=dealii.git Do operation in the correct type. git-svn-id: https://svn.dealii.org/trunk@29413 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/source/fe/fe_system.cc b/deal.II/source/fe/fe_system.cc index ab9362dcdf..88b5f3666a 100644 --- a/deal.II/source/fe/fe_system.cc +++ b/deal.II/source/fe/fe_system.cc @@ -2677,11 +2677,18 @@ FESystem::multiply_dof_numbers ( summed_multiplicities += multiplicities[i]; } - unsigned char total_conformity = 0xff; + // assume maximal conformity and then take away bits + // as indicated by the base elements + typename FiniteElementData::Conformity + total_conformity + = std::numeric_limits::Conformity>::max(); for (unsigned int i=0; i0) - total_conformity &= fes[i]->conforming_space; + total_conformity = + typename FiniteElementData::Conformity(total_conformity + & + fes[i]->conforming_space); std::vector dpo; dpo.push_back(multiplied_dofs_per_vertex); @@ -2689,12 +2696,11 @@ FESystem::multiply_dof_numbers ( if (dim>1) dpo.push_back(multiplied_dofs_per_quad); if (dim>2) dpo.push_back(multiplied_dofs_per_hex); - return FiniteElementData ( - dpo, - multiplied_n_components, - degree, - typename FiniteElementData::Conformity(total_conformity), - summed_multiplicities); + return FiniteElementData (dpo, + multiplied_n_components, + degree, + total_conformity, + summed_multiplicities); }