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<dim>::Conformity
+ total_conformity
+ = std::numeric_limits<typename FiniteElementData<dim>::Conformity>::max();
for (unsigned int i=0; i<fes.size(); i++)
if (multiplicities[i]>0)
- total_conformity &= fes[i]->conforming_space;
+ total_conformity =
+ typename FiniteElementData<dim>::Conformity(total_conformity
+ &
+ fes[i]->conforming_space);
std::vector<unsigned int> dpo;
dpo.push_back(multiplied_dofs_per_vertex);
if (dim>1) dpo.push_back(multiplied_dofs_per_quad);
if (dim>2) dpo.push_back(multiplied_dofs_per_hex);
- return FiniteElementData<dim> (
- dpo,
- multiplied_n_components,
- degree,
- typename FiniteElementData<dim>::Conformity(total_conformity),
- summed_multiplicities);
+ return FiniteElementData<dim> (dpo,
+ multiplied_n_components,
+ degree,
+ total_conformity,
+ summed_multiplicities);
}