* points associated with the other shape functions.
*
* In composed elements (i.e. for the FESystem class), the result will be
- * true if all all the base elements have defined support points.
+ * true if all all the base elements have defined support points. FE_Nothing
+ * is a special case in FESystems, because it has 0 support points and
+ * has_support_points() is false, but an FESystem containing an FE_Nothing
+ * among other elements will return true.
*/
bool has_support_points () const;
{
// if one of the base elements has no support points, then it makes no sense
// to define support points for the composed element, so return an empty
- // array to demonstrate that fact
+ // array to demonstrate that fact. Note that we ignore FE_Nothing in this logic.
for (unsigned int base_el=0; base_el<this->n_base_elements(); ++base_el)
- if (!base_element(base_el).has_support_points())
+ if (!base_element(base_el).has_support_points() && base_element(base_el).dofs_per_cell!=0)
{
this->unit_support_points.resize(0);
return;
In the beginning the Universe was created. This has made a lot of
people very angry and has been widely regarded as a bad move.
Douglas Adams