From 9b0433c2e2293b4ea0fed3e44e89f56ac2de19c6 Mon Sep 17 00:00:00 2001 From: guido Date: Wed, 12 Jul 2006 08:22:12 +0000 Subject: [PATCH] add vector_value_list and inherit documentation from base class git-svn-id: https://svn.dealii.org/trunk@13358 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/base/include/base/function_lib.h | 21 +++-------------- deal.II/base/source/function_lib.cc | 29 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/deal.II/base/include/base/function_lib.h b/deal.II/base/include/base/function_lib.h index 94f5aba243..7cf503e98d 100644 --- a/deal.II/base/include/base/function_lib.h +++ b/deal.II/base/include/base/function_lib.h @@ -341,41 +341,26 @@ namespace Functions class LSingularityFunction : public Function<2> { public: - /** - * The value at a single point. - */ virtual double value (const Point<2> &p, const unsigned int component = 0) const; - /** - * Values at multiple points. - */ virtual void value_list (const std::vector > &points, std::vector &values, const unsigned int component = 0) const; + + virtual void vector_value_list (const std::vector >& points, + std::vector >& values) const; - /** - * Gradient at a single point. - */ virtual Tensor<1,2> gradient (const Point<2> &p, const unsigned int component = 0) const; - /** - * Gradients at multiple points. - */ virtual void gradient_list (const std::vector > &points, std::vector > &gradients, const unsigned int component = 0) const; - /** - * Laplacian at a single point. - */ virtual double laplacian (const Point<2> &p, const unsigned int component = 0) const; - /** - * Laplacian at multiple points. - */ virtual void laplacian_list (const std::vector > &points, std::vector &values, const unsigned int component = 0) const; diff --git a/deal.II/base/source/function_lib.cc b/deal.II/base/source/function_lib.cc index cbecc2968d..a628f3d61d 100644 --- a/deal.II/base/source/function_lib.cc +++ b/deal.II/base/source/function_lib.cc @@ -15,6 +15,7 @@ #include #include #include +#include #include @@ -831,6 +832,34 @@ namespace Functions } + void + LSingularityFunction::vector_value_list ( + const std::vector >& points, + std::vector >& values) const + { + Assert (values.size() == points.size(), + ExcDimensionMismatch(values.size(), points.size())); + + for (unsigned int i=0;i=0) && (y>=0)) + values[i](0) = 0.; + else + { + double phi = std::atan2(y,-x)+M_PI; + double r2 = x*x+y*y; + + values[i](0) = std::pow(r2,1./3.) * std::sin(2./3.*phi); + } + } + } + + double LSingularityFunction::laplacian (const Point<2> &, const unsigned int) const -- 2.39.5