Reference documentation for deal.II version 9.0.0
function_bessel.h
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2010 - 2017 by the deal.II authors
4 //
5 // This file is part of the deal.II library.
6 //
7 // The deal.II library is free software; you can use it, redistribute
8 // it, and/or modify it under the terms of the GNU Lesser General
9 // Public License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 // The full text of the license can be found in the file LICENSE at
12 // the top level of the deal.II distribution.
13 //
14 // ---------------------------------------------------------------------
15 
16 #ifndef dealii_function_bessel_h
17 #define dealii_function_bessel_h
18 
19 
20 #include <deal.II/base/config.h>
21 #include <deal.II/base/function.h>
22 #include <deal.II/base/point.h>
23 
24 DEAL_II_NAMESPACE_OPEN
25 
26 namespace Functions
27 {
34  template <int dim>
35  class Bessel1 : public Function<dim>
36  {
37  public:
38  Bessel1(const unsigned int order,
39  const double wave_number,
40  const Point<dim> center = Point<dim>());
41  virtual double value (const Point<dim> &points, const unsigned int component) const;
42  virtual void value_list (const std::vector<Point<dim> > &points,
43  std::vector<double> &values,
44  const unsigned int component = 0) const;
45  virtual Tensor<1,dim> gradient (const Point<dim> &p,
46  const unsigned int component = 0) const;
47  virtual void gradient_list (const std::vector<Point<dim> > &points,
48  std::vector<Tensor<1,dim> > &gradients,
49  const unsigned int component = 0) const;
50  private:
51  unsigned int order;
52  double wave_number;
53  Point<dim> center;
54  };
55 }
56 
57 DEAL_II_NAMESPACE_CLOSE
58 
59 #endif
60 
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const
virtual double value(const Point< dim > &points, const unsigned int component) const
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const