|
Reference documentation for deal.II version 9.2.0
|
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\)
\(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\)
\(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\)
\(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Go to the documentation of this file.
16 #ifndef dealii_function_h
17 #define dealii_function_h
36 template <
typename number>
38 template <
int rank,
int dim,
typename Number>
150 template <
int dim,
typename RangeNumberType =
double>
152 typename numbers::NumberTraits<RangeNumberType>::real_type>,
224 virtual RangeNumberType
248 std::vector<RangeNumberType> & values,
249 const unsigned int component = 0)
const;
263 std::vector<Vector<RangeNumberType>> &values)
const;
275 std::vector<std::vector<RangeNumberType>> &values)
const;
301 const unsigned int component = 0)
const;
333 virtual RangeNumberType
348 std::vector<RangeNumberType> & values,
349 const unsigned int component = 0)
const;
356 std::vector<Vector<RangeNumberType>> &values)
const;
380 const unsigned int component = 0)
const;
411 template <
int dim,
typename RangeNumberType =
double>
443 virtual RangeNumberType
444 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
448 Vector<RangeNumberType> &return_value)
const override;
452 std::vector<RangeNumberType> & return_values,
453 const unsigned int component = 0)
const override;
458 std::vector<Vector<RangeNumberType>> &return_values)
const override;
462 const unsigned int component = 0)
const override;
472 const unsigned int component = 0)
const override;
482 const unsigned int component = 0)
const override;
484 virtual RangeNumberType
486 const unsigned int component = 0)
const override;
512 template <
int dim,
typename RangeNumberType =
double>
530 template <
int dim,
typename RangeNumberType =
double>
539 template <
int dim,
typename RangeNumberType =
double>
559 template <
int dim,
typename RangeNumberType =
double>
569 const RangeNumberType
value,
612 Vector<RangeNumberType> &return_value)
const override;
623 std::vector<Vector<RangeNumberType>> &values)
const override;
726 template <
int dim,
typename RangeNumberType =
double>
742 virtual RangeNumberType
743 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
794 template <
int dim,
typename RangeNumberType =
double>
796 :
public Function<dim, RangeNumberType>
820 virtual RangeNumberType
821 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
830 Vector<RangeNumberType> &values)
const override;
884 template <
int dim,
typename RangeNumberType =
double>
897 const double initial_time = 0);
908 const std::vector<std::function<RangeNumberType(
const Point<dim> &)>>
910 const double initial_time = 0.0);
921 const std::vector<std::function<RangeNumberType(
const Point<dim> &)>>
926 const double initial_time = 0.0);
935 virtual RangeNumberType
936 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
946 const unsigned int component = 0)
const override;
955 const std::vector<std::function<RangeNumberType(
const Point<dim> &)>>
973 std::vector<std::function<RangeNumberType(
const Point<dim> &)>>
980 std::function<Tensor<1, dim, RangeNumberType>(
const Point<dim> &)>>
1021 template <
int dim,
typename RangeNumberType =
double>
1055 virtual RangeNumberType
1056 value(
const Point<dim> &p,
const unsigned int component = 0)
const override;
1065 Vector<RangeNumberType> &values)
const override;
1077 std::vector<Vector<RangeNumberType>> &
value_list)
const override;
1102 template <
int dim,
typename RangeNumberType>
virtual void vector_value_list(const std::vector< Point< dim >> &points, std::vector< Vector< RangeNumberType >> &values) const
virtual Tensor< 1, dim, RangeNumberType > gradient(const Point< dim > &p, const unsigned int component=0) const override
const std::function< RangeNumberType(const Point< dim > &)> function_object
virtual void gradient_list(const std::vector< Point< dim >> &points, std::vector< Tensor< 1, dim, RangeNumberType >> &gradients, const unsigned int component=0) const override
virtual void vector_gradient(const Point< dim > &p, std::vector< Tensor< 1, dim, RangeNumberType >> &gradients) const override
virtual void vector_laplacian(const Point< dim > &p, Vector< RangeNumberType > &values) const
Function & operator=(const Function &f)
void set_function_gradients(const std::vector< std::function< Tensor< 1, dim, RangeNumberType >(const Point< dim > &)>> &gradients)
VectorFunctionFromTensorFunction(const TensorFunction< 1, dim, RangeNumberType > &tensor_function, const unsigned int selected_component=0, const unsigned int n_components=dim)
std::vector< std::function< RangeNumberType(const Point< dim > &)> > function_values
virtual RangeNumberType value(const Point< dim > &p, const unsigned int component=0) const override
virtual void vector_gradient_list(const std::vector< Point< dim >> &points, std::vector< std::vector< Tensor< 1, dim, RangeNumberType >>> &gradients) const override
virtual RangeNumberType value(const Point< dim > &p, const unsigned int component=0) const override
virtual void vector_value(const Point< dim > &p, Vector< RangeNumberType > &values) const override
virtual void vector_hessian(const Point< dim > &p, std::vector< SymmetricTensor< 2, dim, RangeNumberType >> &values) const
Function(const unsigned int n_components=1, const time_type initial_time=0.0)
virtual void vector_gradient(const Point< dim > &p, std::vector< Tensor< 1, dim, RangeNumberType >> &gradients) const
virtual RangeNumberType value(const Point< dim > &p, const unsigned int component=0) const override
virtual RangeNumberType value(const Point< dim > &p, const unsigned int component=0) const override
virtual void vector_value(const Point< dim > &p, Vector< RangeNumberType > &return_value) const override
const unsigned int n_components
virtual ~VectorFunctionFromTensorFunction() override=default
const std::function< RangeNumberType(const Point< dim > &)> function_object
virtual void value_list(const std::vector< Point< dim >> &points, std::vector< RangeNumberType > &values, const unsigned int component=0) const
virtual RangeNumberType value(const Point< dim > &p, const unsigned int component=0) const override
virtual SymmetricTensor< 2, dim, RangeNumberType > hessian(const Point< dim > &p, const unsigned int component=0) const
virtual Tensor< 1, dim, RangeNumberType > gradient(const Point< dim > &p, const unsigned int component=0) const
virtual void vector_value_list(const std::vector< Point< dim >> &points, std::vector< Vector< RangeNumberType >> &return_values) const override
virtual void laplacian_list(const std::vector< Point< dim >> &points, std::vector< RangeNumberType > &values, const unsigned int component=0) const
Point< spacedim > point(const gp_Pnt &p, const double tolerance=1e-10)
virtual void vector_value_list(const std::vector< Point< dim >> &points, std::vector< Vector< RangeNumberType >> &value_list) const override
FunctionFromFunctionObjects(const unsigned int n_components=1, const double initial_time=0)
virtual RangeNumberType laplacian(const Point< dim > &point, const unsigned int component=0) const override
virtual void vector_laplacian_list(const std::vector< Point< dim >> &points, std::vector< Vector< RangeNumberType >> &values) const
typename FunctionTime< typename numbers::NumberTraits< double >::real_type >::time_type time_type
ConstantFunction(const RangeNumberType value, const unsigned int n_components=1)
virtual void vector_value(const Point< dim > &p, Vector< RangeNumberType > &values) const override
std::size_t memory_consumption() const
#define DEAL_II_NAMESPACE_OPEN
virtual void gradient_list(const std::vector< Point< dim >> &points, std::vector< Tensor< 1, dim, RangeNumberType >> &gradients, const unsigned int component=0) const
const TensorFunction< 1, dim, RangeNumberType > & tensor_function
#define DEAL_II_DEPRECATED
const std::pair< unsigned int, unsigned int > selected_components
std::vector< std::function< Tensor< 1, dim, RangeNumberType >const Point< dim > &)> > function_gradients
virtual RangeNumberType value(const Point< dim > &p, const unsigned int component=0) const
virtual Tensor< 1, dim, RangeNumberType > gradient(const Point< dim > &p, const unsigned int component=0) const override
ComponentSelectFunction(const unsigned int selected, const RangeNumberType value, const unsigned int n_components)
virtual void vector_value_list(const std::vector< Point< dim >> &points, std::vector< Vector< RangeNumberType >> &values) const override
virtual void vector_hessian_list(const std::vector< Point< dim >> &points, std::vector< std::vector< SymmetricTensor< 2, dim, RangeNumberType >>> &values) const
std::size_t memory_consumption() const
std::size_t memory_consumption() const
const unsigned int selected_component
ScalarFunctionFromFunctionObject(const std::function< RangeNumberType(const Point< dim > &)> &function_object)
virtual RangeNumberType laplacian(const Point< dim > &p, const unsigned int component=0) const
virtual void vector_value(const Point< dim > &p, Vector< RangeNumberType > &values) const
VectorFunctionFromScalarFunctionObject(const std::function< RangeNumberType(const Point< dim > &)> &function_object, const unsigned int selected_component, const unsigned int n_components)
std::vector< RangeNumberType > function_value_vector
void set_function_values(const std::vector< std::function< RangeNumberType(const Point< dim > &)>> &values)
const unsigned int selected_component
virtual void vector_values(const std::vector< Point< dim >> &points, std::vector< std::vector< RangeNumberType >> &values) const
#define DEAL_II_NAMESPACE_CLOSE
virtual void substitute_function_value_with(const Functions::ConstantFunction< dim, RangeNumberType > &f)
virtual void value_list(const std::vector< Point< dim >> &points, std::vector< RangeNumberType > &return_values, const unsigned int component=0) const override
virtual void vector_gradient_list(const std::vector< Point< dim >> &points, std::vector< std::vector< Tensor< 1, dim, RangeNumberType >>> &gradients) const
virtual void vector_gradients(const std::vector< Point< dim >> &points, std::vector< std::vector< Tensor< 1, dim, RangeNumberType >>> &gradients) const
ZeroFunction(const unsigned int n_components=1)
virtual void vector_value(const Point< dim > &p, Vector< RangeNumberType > &return_value) const override
static const unsigned int dimension
virtual ~Function() override=0
virtual SymmetricTensor< 2, dim, RangeNumberType > hessian(const Point< dim > &point, const unsigned int component=0) const override
virtual void hessian_list(const std::vector< Point< dim >> &points, std::vector< SymmetricTensor< 2, dim, RangeNumberType >> &values, const unsigned int component=0) const