]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Improve error messages. 574/head
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Thu, 19 Feb 2015 13:34:07 +0000 (07:34 -0600)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Thu, 19 Feb 2015 13:35:18 +0000 (07:35 -0600)
Using bare exceptions without any explanatory text in so many places was a bad idea right from the beginning, though nobody seems to have noticed for a long time. This replaces a bare exception with an ExcMessage in a couple of places.

include/deal.II/fe/fe.h
source/fe/fe.cc

index 65a2e653b81538af1bc7f9b83bf366f4a24a026a..85dae36e1466544f8be2d5bd4c7628a20ac64401 100644 (file)
@@ -1,6 +1,6 @@
 // ---------------------------------------------------------------------
 //
-// Copyright (C) 1998 - 2014 by the deal.II authors
+// Copyright (C) 1998 - 2015 by the deal.II authors
 //
 // This file is part of the deal.II library.
 //
@@ -694,13 +694,10 @@ public:
   bool restriction_is_additive (const unsigned int index) const;
 
   /**
-   * Return a read only reference to the matrix which describes the
+   * Return a read only reference to the matrix that describes the
    * constraints at the interface between a refined and an unrefined cell.
    *
-   * The matrix is obviously empty in only one dimension, since there are no
-   * constraints then.
-   *
-   * Note that some finite elements do not (yet) implement hanging node
+   * Some finite elements do not (yet) implement hanging node
    * constraints. If this is the case, then this function will generate an
    * exception, since no useful return value can be generated. If you should
    * have a way to live with this, then you might want to use the
@@ -1628,7 +1625,7 @@ public:
   DeclException0 (ExcUnitShapeValuesDoNotExist);
 
   /**
-   * Attempt to access support points of a finite element which is not
+   * Attempt to access support points of a finite element that is not
    * Lagrangian.
    *
    * @ingroup Exceptions
@@ -1636,7 +1633,7 @@ public:
   DeclException0 (ExcFEHasNoSupportPoints);
 
   /**
-   * Attempt to access embedding matrices of a finite element which did not
+   * Attempt to access embedding matrices of a finite element that did not
    * implement these matrices.
    *
    * @ingroup Exceptions
@@ -1644,7 +1641,7 @@ public:
   DeclException0 (ExcEmbeddingVoid);
 
   /**
-   * Attempt to access restriction matrices of a finite element which did not
+   * Attempt to access restriction matrices of a finite element that did not
    * implement these matrices.
    *
    * Exception
@@ -1652,15 +1649,6 @@ public:
    */
   DeclException0 (ExcProjectionVoid);
 
-  /**
-   * Attempt to access constraint matrices of a finite element which did not
-   * implement these matrices.
-   *
-   * Exception
-   * @ingroup Exceptions
-   */
-  DeclException0 (ExcConstraintsVoid);
-
   /**
    * Exception
    * @ingroup Exceptions
index 199ef6366f612777d06b2513c03d08eefa367cb7..c7a6edaf6136459f27b14032b863f4233f2ee4c3 100644 (file)
@@ -821,9 +821,16 @@ template <int dim, int spacedim>
 const FullMatrix<double> &
 FiniteElement<dim,spacedim>::constraints (const internal::SubfaceCase<dim> &subface_case) const
 {
-  Assert (subface_case==internal::SubfaceCase<dim>::case_isotropic, ExcConstraintsVoid());
+  Assert (subface_case==internal::SubfaceCase<dim>::case_isotropic,
+          ExcMessage("Constraints for this element are only implemented "
+                     "for the case that faces are refined isotropically "
+                     "(which is always the case in 2d, and in 3d requires "
+                     "that the neighboring cell of a coarse cell presents "
+                     "exactly four children on the common face)."));
   Assert ((this->dofs_per_face  == 0) || (interface_constraints.m() != 0),
-          ExcConstraintsVoid());
+          ExcMessage ("The finite element for which you try to obtain "
+                      "hanging node constraints does not appear to "
+                      "implement them."));
 
   if (dim==1)
     Assert ((interface_constraints.m()==0) && (interface_constraints.n()==0),

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


Typeset in Trocchi and Trocchi Bold Sans Serif.