15#ifndef dealii_function_lib_h
16#define dealii_function_lib_h
54 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
59 std::vector<double> &values,
60 const unsigned int component = 0)
const override;
63 const unsigned int component = 0)
const override;
70 const unsigned int component = 0)
const override;
73 const unsigned int component = 0)
const override;
76 std::vector<double> &values,
77 const unsigned int component = 0)
const override;
93 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
97 std::vector<double> &values,
98 const unsigned int component = 0)
const override;
106 const unsigned int component = 0)
const override;
111 const unsigned int component = 0)
const override;
123 const unsigned int component = 0)
const override;
130 std::vector<double> &values,
131 const unsigned int component = 0)
const override;
164 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
171 std::vector<double> &values,
172 const unsigned int component = 0)
const override;
179 const unsigned int component = 0)
const override;
187 const unsigned int component = 0)
const override;
194 const unsigned int component = 0)
const override;
201 std::vector<double> &values,
202 const unsigned int component = 0)
const override;
228 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
232 std::vector<double> &values,
233 const unsigned int component = 0)
const override;
241 const unsigned int component = 0)
const override;
246 const unsigned int component = 0)
const override;
250 const unsigned int component = 0)
const override;
254 std::vector<double> &values,
255 const unsigned int component = 0)
const override;
262 const unsigned int component = 0)
const override;
270 const unsigned int component = 0)
const override;
295 value(
const Point<dim> &p,
const unsigned int component)
const override;
300 std::vector<double> &values,
301 const unsigned int component)
const override;
313 const unsigned int component)
const override;
318 std::vector<std::vector<
Tensor<1, dim>>> &gradients)
const override;
339 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
346 std::vector<double> &values,
347 const unsigned int component = 0)
const override;
354 const unsigned int component = 0)
const override;
362 const unsigned int component = 0)
const override;
369 const unsigned int component = 0)
const override;
376 std::vector<double> &values,
377 const unsigned int component = 0)
const override;
413 value(
const Point<2> &p,
const unsigned int component = 0)
const override;
417 std::vector<double> &values,
418 const unsigned int component = 0)
const override;
426 const unsigned int component = 0)
const override;
431 const unsigned int component = 0)
const override;
436 std::vector<std::vector<
Tensor<1, 2>>> &)
const override;
440 const unsigned int component = 0)
const override;
444 std::vector<double> &values,
445 const unsigned int component = 0)
const override;
466 value(
const Point<2> &p,
const unsigned int component)
const override;
470 std::vector<double> &values,
471 const unsigned int component)
const override;
483 const unsigned int component)
const override;
488 std::vector<std::vector<
Tensor<1, 2>>> &)
const override;
495 std::vector<double> &values,
496 const unsigned int component)
const override;
511 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
515 std::vector<double> &values,
516 const unsigned int component = 0)
const override;
524 const unsigned int component = 0)
const override;
529 const unsigned int component = 0)
const override;
538 const unsigned int component = 0)
const override;
542 std::vector<double> &values,
543 const unsigned int component = 0)
const override;
556 value(
const Point<2> &p,
const unsigned int component = 0)
const override;
560 std::vector<double> &values,
561 const unsigned int component = 0)
const override;
569 const unsigned int component = 0)
const override;
574 const unsigned int component = 0)
const override;
579 std::vector<std::vector<
Tensor<1, 2>>> &)
const override;
583 const unsigned int component = 0)
const override;
587 std::vector<double> &values,
588 const unsigned int component = 0)
const override;
621 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
628 std::vector<double> &values,
629 const unsigned int component = 0)
const override;
636 const unsigned int component = 0)
const override;
644 const unsigned int component = 0)
const override;
651 const unsigned int component = 0)
const override;
658 std::vector<double> &values,
659 const unsigned int component = 0)
const override;
727 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
735 const unsigned int component = 0)
const override;
742 const unsigned int component = 0)
const override;
781 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
789 const unsigned int component = 0)
const override;
796 const unsigned int component = 0)
const override;
823 const std::vector<double> &
weights);
832 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
840 const unsigned int component = 0)
const override;
847 const unsigned int component = 0)
const override;
877 const std::vector<double> &
weights);
886 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
894 const unsigned int component = 0)
const override;
901 const unsigned int component = 0)
const override;
1059 template <
template <
int>
class CutOffFunctionBaseType>
1079 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1086 const unsigned int component = 0)
const override;
1089 std::array<std::unique_ptr<CutOffFunctionBase<1>>, dim>
base;
1115 const double radius = 1.,
1125 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1132 std::vector<double> &values,
1133 const unsigned int component = 0)
const override;
1163 const double radius = 1.,
1173 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1180 std::vector<double> &values,
1181 const unsigned int component = 0)
const override;
1212 const double radius = 1.,
1222 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1229 std::vector<double> &values,
1230 const unsigned int component = 0)
const override;
1244 const unsigned int component = 0)
const override;
1268 const double radius = 1.,
1278 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1285 std::vector<double> &values,
1286 const unsigned int component = 0)
const override;
1300 const unsigned int component = 0)
const override;
1318 template <
int dim,
typename Number =
double>
1335 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1351 std::vector<Number> &values,
1352 const unsigned int component = 0)
const override;
1359 const unsigned int component = 0)
const override;
1507 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1522 const unsigned int component = 0)
const override;
1653 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1668 const unsigned int component = 0)
const override;
1732 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1740 std::vector<double> &values,
1741 const unsigned int component = 0)
const override;
1748 const unsigned int component = 0)
const override;
1840 template <
template <
int>
class CutOffFunctionBaseType>
1846 std::is_base_of_v<CutOffFunctionBase<1>, CutOffFunctionBaseType<1>>,
1847 "You can only construct a CutOffFunctionTensorProduct function from "
1848 "a class derived from CutOffFunctionBase.");
1850 for (
unsigned int i = 0; i < dim; ++i)
1851 base[i].reset(
new CutOffFunctionBaseType<1>(this->radius,
1855 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
CosineFunction(const unsigned int n_components=1)
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
CutOffFunctionBase(const double radius=1., const Point< dim > center=Point< dim >(), const unsigned int n_components=1, const unsigned int select=CutOffFunctionBase< dim >::no_component, const bool integrate_to_one=false, const double unitary_integral_value=1.0)
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
CutOffFunctionC1(const double radius=1., const Point< dim >=Point< dim >(), const unsigned int n_components=1, const unsigned int select=CutOffFunctionBase< dim >::no_component, bool integrate_to_one=false)
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
CutOffFunctionCinfty(const double radius=1., const Point< dim >=Point< dim >(), const unsigned int n_components=1, const unsigned int select=CutOffFunctionBase< dim >::no_component, bool integrate_to_one=false)
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
CutOffFunctionLinfty(const double radius=1., const Point< dim >=Point< dim >(), const unsigned int n_components=1, const unsigned int select=CutOffFunctionBase< dim >::no_component, const bool integrate_to_one=false)
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
CutOffFunctionTensorProduct(double radius=1.0, const Point< dim > ¢er=Point< dim >(), const unsigned int n_components=1, const unsigned int select=CutOffFunctionBase< dim >::no_component, const bool integrate_to_one=false)
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
CutOffFunctionW1(const double radius=1., const Point< dim >=Point< dim >(), const unsigned int n_components=1, const unsigned int select=CutOffFunctionBase< dim >::no_component, const bool integrate_to_one=false)
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
FourierCosineFunction(const Tensor< 1, dim > &fourier_coefficients)
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
FourierCosineSum(const std::vector< Point< dim > > &fourier_coefficients, const std::vector< double > &weights)
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
FourierSineFunction(const Tensor< 1, dim > &fourier_coefficients)
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
FourierSineSum(const std::vector< Point< dim > > &fourier_coefficients, const std::vector< double > &weights)
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
InterpolatedTensorProductGridData(const std::array< std::vector< double >, dim > &coordinate_values, const Table< dim, double > &data_values)
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
JumpFunction(const Point< dim > &direction, const double steepness)
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
Monomial(const Tensor< 1, dim, Number > &exponents, const unsigned int n_components=1)
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
PillowFunction(const double offset=0.)
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
Polynomial(const Table< 2, double > &exponents, 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
RayleighKotheVortex(const double T=1.0)
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
static const unsigned int invalid_unsigned_int