message: Add Doxygen documentation of the Eval methods in all base
  coefficient classes: Coefficient, VectorCoefficient, and
  MatrixCoefficient.
diff: @@ -39,9 +39,19 @@ public:
  void SetTime(double t) { time = t; }
  double GetTime() { return time; }
  + /** @brief Evaluate the coefficient in the element described by @a T at the
  + point @a ip. */
  + /** @note When this method is called, the caller must make sure that the
  + IntegrationPoint associated with @a T is the same as @a ip. This can be
  + achieved by calling T.SetIntPoint(&ip). */
  virtual double Eval(ElementTransformation &T,
  const IntegrationPoint &ip) = 0;
  + /** @brief Evaluate the coefficient in the element described by @a T at the
  + point @a ip at time @a t. */
  + /** @note When this method is called, the caller must make sure that the
  + IntegrationPoint associated with @a T is the same as @a ip. This can be
  + achieved by calling T.SetIntPoint(&ip). */
  double Eval(ElementTransformation &T,
  const IntegrationPoint &ip, double t)
  {
  @@ -280,11 +290,26 @@ public:
  /// Returns dimension of the vector.
  int GetVDim() { return vdim; }
  + /** @brief Evaluate the vector coefficient in the element described by @a T
  + at the point @a ip, storing the result in @a V. */
  + /** @note When this method is called, the caller must make sure that the
  + IntegrationPoint associated with @a T is the same as @a ip. This can be
  + achieved by calling T.SetIntPoint(&ip). */
  virtual void Eval(Vector &V, ElementTransformation &T,
  const IntegrationPoint &ip) = 0;
  - // General implementation using the Eval method for one IntegrationPoint.
  - // Can be overloaded for more efficient implementation.
  + /** @brief Evaluate the vector coefficient in the element described by @a T
  + at all points of @a ir, storing the result in @a M. */
  + /** The dimensions of @a M are GetVDim() by ir.GetNPoints() and they must be
  + set by the implementation of this method.
  +
  + The general implementation provided by the base class (using the Eval
  + method for one IntegrationPoint at a time) can be overloaded for more
  + efficient implementation.
  +
  + @note The IntegrationPoint associated with @a T is not used, and this
  + method will generally modify this IntegrationPoint associated with @a T.
  + */
  virtual void Eval(DenseMatrix &M, ElementTransformation &T,
  const IntegrationRule &ir);
  @@ -527,6 +552,11 @@ public:
  // For backward compatibility
  int GetVDim() const { return width; }
  + /** @brief Evaluate the matrix coefficient in the element described by @a T
  + at the point @a ip, storing the result in @a K. */
  + /** @note When this method is called, the caller must make sure that the
  + IntegrationPoint associated with @a T is the same as @a ip. This can be
  + achieved by calling T.SetIntPoint(&ip). */
  virtual void Eval(DenseMatrix &K, ElementTransformation &T,
  const IntegrationPoint &ip) = 0;
  