13#ifndef dealii_function_lib_h
14#define dealii_function_lib_h
52 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
57 std::vector<double> &values,
58 const unsigned int component = 0)
const override;
61 const unsigned int component = 0)
const override;
68 const unsigned int component = 0)
const override;
71 const unsigned int component = 0)
const override;
74 std::vector<double> &values,
75 const unsigned int component = 0)
const override;
91 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
95 std::vector<double> &values,
96 const unsigned int component = 0)
const override;
104 const unsigned int component = 0)
const override;
109 const unsigned int component = 0)
const override;
121 const unsigned int component = 0)
const override;
128 std::vector<double> &values,
129 const unsigned int component = 0)
const override;
162 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
169 std::vector<double> &values,
170 const unsigned int component = 0)
const override;
177 const unsigned int component = 0)
const override;
185 const unsigned int component = 0)
const override;
192 const unsigned int component = 0)
const override;
199 std::vector<double> &values,
200 const unsigned int component = 0)
const override;
226 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
230 std::vector<double> &values,
231 const unsigned int component = 0)
const override;
239 const unsigned int component = 0)
const override;
244 const unsigned int component = 0)
const override;
248 const unsigned int component = 0)
const override;
252 std::vector<double> &values,
253 const unsigned int component = 0)
const override;
260 const unsigned int component = 0)
const override;
268 const unsigned int component = 0)
const override;
293 value(
const Point<dim> &p,
const unsigned int component)
const override;
298 std::vector<double> &values,
299 const unsigned int component)
const override;
311 const unsigned int component)
const override;
316 std::vector<std::vector<
Tensor<1, dim>>> &gradients)
const override;
337 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
344 std::vector<double> &values,
345 const unsigned int component = 0)
const override;
352 const unsigned int component = 0)
const override;
360 const unsigned int component = 0)
const override;
367 const unsigned int component = 0)
const override;
374 std::vector<double> &values,
375 const unsigned int component = 0)
const override;
411 value(
const Point<2> &p,
const unsigned int component = 0)
const override;
415 std::vector<double> &values,
416 const unsigned int component = 0)
const override;
424 const unsigned int component = 0)
const override;
429 const unsigned int component = 0)
const override;
434 std::vector<std::vector<
Tensor<1, 2>>> &)
const override;
438 const unsigned int component = 0)
const override;
442 std::vector<double> &values,
443 const unsigned int component = 0)
const override;
464 value(
const Point<2> &p,
const unsigned int component)
const override;
468 std::vector<double> &values,
469 const unsigned int component)
const override;
481 const unsigned int component)
const override;
486 std::vector<std::vector<
Tensor<1, 2>>> &)
const override;
493 std::vector<double> &values,
494 const unsigned int component)
const override;
509 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
513 std::vector<double> &values,
514 const unsigned int component = 0)
const override;
522 const unsigned int component = 0)
const override;
527 const unsigned int component = 0)
const override;
536 const unsigned int component = 0)
const override;
540 std::vector<double> &values,
541 const unsigned int component = 0)
const override;
554 value(
const Point<2> &p,
const unsigned int component = 0)
const override;
558 std::vector<double> &values,
559 const unsigned int component = 0)
const override;
567 const unsigned int component = 0)
const override;
572 const unsigned int component = 0)
const override;
577 std::vector<std::vector<
Tensor<1, 2>>> &)
const override;
581 const unsigned int component = 0)
const override;
585 std::vector<double> &values,
586 const unsigned int component = 0)
const override;
619 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
626 std::vector<double> &values,
627 const unsigned int component = 0)
const override;
634 const unsigned int component = 0)
const override;
642 const unsigned int component = 0)
const override;
649 const unsigned int component = 0)
const override;
656 std::vector<double> &values,
657 const unsigned int component = 0)
const override;
725 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
733 const unsigned int component = 0)
const override;
740 const unsigned int component = 0)
const override;
779 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
787 const unsigned int component = 0)
const override;
794 const unsigned int component = 0)
const override;
821 const std::vector<double> &
weights);
830 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
838 const unsigned int component = 0)
const override;
845 const unsigned int component = 0)
const override;
875 const std::vector<double> &
weights);
884 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
892 const unsigned int component = 0)
const override;
899 const unsigned int component = 0)
const override;
1057 template <
template <
int>
class CutOffFunctionBaseType>
1077 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1084 const unsigned int component = 0)
const override;
1087 std::array<std::unique_ptr<CutOffFunctionBase<1>>, dim>
base;
1113 const double radius = 1.,
1123 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1130 std::vector<double> &values,
1131 const unsigned int component = 0)
const override;
1161 const double radius = 1.,
1171 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1178 std::vector<double> &values,
1179 const unsigned int component = 0)
const override;
1210 const double radius = 1.,
1220 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1227 std::vector<double> &values,
1228 const unsigned int component = 0)
const override;
1242 const unsigned int component = 0)
const override;
1266 const double radius = 1.,
1276 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1283 std::vector<double> &values,
1284 const unsigned int component = 0)
const override;
1298 const unsigned int component = 0)
const override;
1316 template <
int dim,
typename Number =
double>
1333 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1349 std::vector<Number> &values,
1350 const unsigned int component = 0)
const override;
1357 const unsigned int component = 0)
const override;
1505 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1520 const unsigned int component = 0)
const override;
1651 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1666 const unsigned int component = 0)
const override;
1736 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1744 std::vector<double> &values,
1745 const unsigned int component = 0)
const override;
1752 const unsigned int component = 0)
const override;
1844 template <
template <
int>
class CutOffFunctionBaseType>
1850 std::is_base_of_v<CutOffFunctionBase<1>, CutOffFunctionBaseType<1>>,
1851 "You can only construct a CutOffFunctionTensorProduct function from "
1852 "a class derived from CutOffFunctionBase.");
1854 for (
unsigned int i = 0; i < dim; ++i)
1855 base[i].reset(
new CutOffFunctionBaseType<1>(this->
radius,
1859 this->integrate_to_one));
const unsigned int n_components
virtual double laplacian(const Point< dim > &p, const unsigned int component=0) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual void laplacian_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
virtual SymmetricTensor< 2, dim > hessian(const Point< dim > &p, const unsigned int component=0) const override
virtual void vector_value_list(const std::vector< Point< dim > > &points, std::vector< Vector< double > > &values) const override
virtual void hessian_list(const std::vector< Point< dim > > &points, std::vector< SymmetricTensor< 2, dim > > &hessians, const unsigned int component=0) const override
virtual void gradient_list(const std::vector< Point< dim > > &points, std::vector< Tensor< 1, dim > > &gradients, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component) const override
virtual void vector_value_list(const std::vector< Point< dim > > &points, std::vector< Vector< double > > &values) const override
virtual void gradient_list(const std::vector< Point< dim > > &points, std::vector< Tensor< 1, dim > > &gradients, const unsigned int component) const override
virtual double value(const Point< dim > &p, const unsigned int component) const override
virtual void vector_value(const Point< dim > &p, Vector< double > &values) const override
virtual double laplacian(const Point< dim > &p, const unsigned int component) const override
virtual void vector_gradient_list(const std::vector< Point< dim > > &points, std::vector< std::vector< Tensor< 1, dim > > > &gradients) const override
virtual void set_radius(const double r)
virtual ~CutOffFunctionBase()=default
const unsigned int selected
const double unitary_integral_value
bool integrates_to_one() const
double get_radius() const
virtual void set_center(const Point< dim > &p)
const Point< dim > & get_center() const
static const unsigned int no_component
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual void vector_value_list(const std::vector< Point< dim > > &points, std::vector< Vector< double > > &values) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual void vector_value_list(const std::vector< Point< dim > > &points, std::vector< Vector< double > > &values) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual void vector_value_list(const std::vector< Point< dim > > &points, std::vector< Vector< double > > &values) const override
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
std::array< std::unique_ptr< CutOffFunctionBase< 1 > >, dim > base
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
virtual void set_radius(const double radius) override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual void set_center(const Point< dim > ¢er) override
virtual void vector_value_list(const std::vector< Point< dim > > &points, std::vector< Vector< double > > &values) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
virtual void laplacian_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual double laplacian(const Point< dim > &p, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual void gradient_list(const std::vector< Point< dim > > &points, std::vector< Tensor< 1, dim > > &gradients, const unsigned int component=0) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual double laplacian(const Point< dim > &p, const unsigned int component=0) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
const Tensor< 1, dim > fourier_coefficients
const std::vector< Point< dim > > fourier_coefficients
virtual double laplacian(const Point< dim > &p, const unsigned int component=0) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
const std::vector< double > weights
virtual double laplacian(const Point< dim > &p, const unsigned int component=0) const override
const Tensor< 1, dim > fourier_coefficients
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
const std::vector< Point< dim > > fourier_coefficients
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual double laplacian(const Point< dim > &p, const unsigned int component=0) const override
const std::vector< double > weights
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
const Table< dim, double > & get_data() const
TableIndices< dim > table_index_of_point(const Point< dim > &p) const
virtual std::size_t memory_consumption() const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
const std::array< std::vector< double >, dim > coordinate_values
const Table< dim, double > data_values
const Point< dim > direction
virtual std::size_t memory_consumption() const override
virtual void laplacian_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual double laplacian(const Point< dim > &p, const unsigned int component=0) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual void gradient_list(const std::vector< Point< dim > > &points, std::vector< Tensor< 1, dim > > &gradients, const unsigned int component=0) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual void laplacian_list(const std::vector< Point< 2 > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< 2 > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual Tensor< 1, 2 > gradient(const Point< 2 > &p, const unsigned int component=0) const override
virtual double laplacian(const Point< 2 > &p, const unsigned int component=0) const override
virtual double value(const Point< 2 > &p, const unsigned int component=0) const override
virtual void vector_gradient_list(const std::vector< Point< 2 > > &, std::vector< std::vector< Tensor< 1, 2 > > > &) const override
virtual void gradient_list(const std::vector< Point< 2 > > &points, std::vector< Tensor< 1, 2 > > &gradients, const unsigned int component=0) const override
virtual void vector_value_list(const std::vector< Point< 2 > > &points, std::vector< Vector< double > > &values) const override
virtual void vector_gradient_list(const std::vector< Point< 2 > > &, std::vector< std::vector< Tensor< 1, 2 > > > &) const override
virtual double laplacian(const Point< 2 > &p, const unsigned int component) const override
virtual void value_list(const std::vector< Point< 2 > > &points, std::vector< double > &values, const unsigned int component) const override
virtual void vector_value_list(const std::vector< Point< 2 > > &points, std::vector< Vector< double > > &values) const override
virtual void laplacian_list(const std::vector< Point< 2 > > &points, std::vector< double > &values, const unsigned int component) const override
LSingularityGradFunction()
virtual void gradient_list(const std::vector< Point< 2 > > &points, std::vector< Tensor< 1, 2 > > &gradients, const unsigned int component) const override
virtual Tensor< 1, 2 > gradient(const Point< 2 > &p, const unsigned int component) const override
virtual double value(const Point< 2 > &p, const unsigned int component) const override
virtual Number value(const Point< dim > &p, const unsigned int component=0) const override
virtual Tensor< 1, dim, Number > gradient(const Point< dim > &p, const unsigned int component=0) const override
const Tensor< 1, dim, Number > exponents
virtual void vector_value(const Point< dim > &p, Vector< Number > &values) const override
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< Number > &values, const unsigned int component=0) const override
virtual void laplacian_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual double laplacian(const Point< dim > &p, const unsigned int component=0) const override
virtual void gradient_list(const std::vector< Point< dim > > &points, std::vector< Tensor< 1, dim > > &gradients, const unsigned int component=0) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
const Table< 2, double > exponents
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual std::size_t memory_consumption() const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
const std::vector< double > coefficients
virtual void gradient_list(const std::vector< Point< dim > > &points, std::vector< Tensor< 1, dim > > &gradients, const unsigned int component=0) const override
virtual void vector_value_list(const std::vector< Point< dim > > &points, std::vector< Vector< double > > &values) const override
virtual double laplacian(const Point< dim > &p, const unsigned int component=0) const override
virtual void vector_gradient_list(const std::vector< Point< dim > > &, std::vector< std::vector< Tensor< 1, dim > > > &) const override
virtual void laplacian_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
virtual void vector_value(const Point< dim > &point, Vector< double > &values) const override
virtual void gradient_list(const std::vector< Point< 2 > > &points, std::vector< Tensor< 1, 2 > > &gradients, const unsigned int component=0) const override
virtual void laplacian_list(const std::vector< Point< 2 > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< 2 > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual void vector_gradient_list(const std::vector< Point< 2 > > &, std::vector< std::vector< Tensor< 1, 2 > > > &) const override
virtual double value(const Point< 2 > &p, const unsigned int component=0) const override
virtual void vector_value_list(const std::vector< Point< 2 > > &points, std::vector< Vector< double > > &values) const override
virtual double laplacian(const Point< 2 > &p, const unsigned int component=0) const override
virtual Tensor< 1, 2 > gradient(const Point< 2 > &p, const unsigned int component=0) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
virtual double laplacian(const Point< dim > &p, const unsigned int component=0) const override
virtual void vector_value_list(const std::vector< Point< dim > > &points, std::vector< Vector< double > > &values) const override
virtual void gradient_list(const std::vector< Point< dim > > &points, std::vector< Tensor< 1, dim > > &gradients, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual void laplacian_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual void vector_gradient_list(const std::vector< Point< dim > > &, std::vector< std::vector< Tensor< 1, dim > > > &) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual double laplacian(const Point< dim > &p, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual void vector_value(const Point< dim > &p, Vector< double > &values) const override
virtual void gradient_list(const std::vector< Point< dim > > &points, std::vector< Tensor< 1, dim > > &gradients, const unsigned int component=0) const override
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
virtual void laplacian_list(const std::vector< Point< dim > > &points, std::vector< double > &values, const unsigned int component=0) const override
virtual void vector_gradient(const Point< dim > &p, std::vector< Tensor< 1, dim > > &gradient) const override
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
constexpr unsigned int invalid_unsigned_int