16 #ifndef dealii_function_h 17 #define dealii_function_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/exceptions.h> 22 #include <deal.II/base/function_time.h> 23 #include <deal.II/base/subscriptor.h> 24 #include <deal.II/base/tensor.h> 26 #include <deal.II/base/point.h> 31 DEAL_II_NAMESPACE_OPEN
34 template <
typename number>
class Vector;
140 template <
int dim,
typename RangeNumberType=
double>
162 const RangeNumberType initial_time = 0.0);
202 const unsigned int component = 0)
const;
212 Vector<RangeNumberType> &values)
const;
224 std::vector<RangeNumberType> &values,
225 const unsigned int component = 0)
const;
238 std::vector<Vector<RangeNumberType> > &values)
const;
249 std::vector<std::vector<RangeNumberType> > &values)
const;
256 const unsigned int component = 0)
const;
272 const unsigned int component = 0)
const;
301 const unsigned int component = 0)
const;
308 Vector<RangeNumberType> &values)
const;
314 std::vector<RangeNumberType> &values,
315 const unsigned int component = 0)
const;
321 std::vector<Vector<RangeNumberType> > &values)
const;
328 const unsigned int component = 0)
const;
342 const unsigned int component = 0)
const;
370 template <
int dim,
typename RangeNumberType=
double>
400 const unsigned int component = 0)
const;
403 Vector<RangeNumberType> &return_value)
const;
406 std::vector<RangeNumberType> &return_values,
407 const unsigned int component = 0)
const;
410 std::vector<Vector<RangeNumberType> > &return_values)
const;
413 const unsigned int component = 0)
const;
420 const unsigned int component = 0)
const;
425 std::size_t memory_consumption ()
const;
448 template <
int dim,
typename RangeNumberType=
double>
466 template <
int dim,
typename RangeNumberType=
double>
474 template <
int dim,
typename RangeNumberType=
double>
493 template <
int dim,
typename RangeNumberType=
double>
503 const RangeNumberType
value,
543 Vector<RangeNumberType> &return_value)
const;
552 std::vector<Vector<RangeNumberType> > &values)
const;
649 template <
int dim,
typename RangeNumberType=
double>
665 const unsigned int component = 0)
const;
710 template <
int dim,
typename RangeNumberType=
double>
734 const unsigned int component = 0)
const;
742 Vector<RangeNumberType> &values)
const;
793 template <
int dim,
typename RangeNumberType=
double>
827 const unsigned int component = 0)
const;
835 Vector<RangeNumberType> &values)
const;
845 std::vector<Vector<RangeNumberType> > &
value_list)
const;
870 template <
int dim,
typename RangeNumberType>
876 DEAL_II_NAMESPACE_CLOSE
virtual RangeNumberType value(const Point< dim > &p, const unsigned int component=0) const
virtual ~VectorFunctionFromTensorFunction()=default
virtual void vector_values(const std::vector< Point< dim > > &points, std::vector< std::vector< RangeNumberType > > &values) const
virtual void vector_value(const Point< dim > &p, Vector< RangeNumberType > &values) const
const unsigned int n_components
virtual void gradient_list(const std::vector< Point< dim > > &points, std::vector< Tensor< 1, dim, RangeNumberType > > &gradients, const unsigned int component=0) const
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< RangeNumberType > &return_values, const unsigned int component=0) const
const std::function< RangeNumberType(const Point< dim > &)> function_object
virtual Tensor< 1, dim, RangeNumberType > gradient(const Point< dim > &p, const unsigned int component=0) const
VectorFunctionFromTensorFunction(const TensorFunction< 1, dim, RangeNumberType > &tensor_function, const unsigned int selected_component=0, const unsigned int n_components=dim)
static const unsigned int dimension
virtual void vector_laplacian(const Point< dim > &p, Vector< RangeNumberType > &values) const
const std::pair< unsigned int, unsigned int > selected_components
virtual RangeNumberType value(const Point< dim > &p, const unsigned int component=0) const
virtual void hessian_list(const std::vector< Point< dim > > &points, std::vector< SymmetricTensor< 2, dim, RangeNumberType > > &values, const unsigned int component=0) const
const std::function< RangeNumberType(const Point< dim > &)> function_object
virtual void vector_hessian(const Point< dim > &p, std::vector< SymmetricTensor< 2, dim, RangeNumberType > > &values) const
virtual void vector_value_list(const std::vector< Point< dim > > &points, std::vector< Vector< RangeNumberType > > &return_values) const
virtual void vector_value_list(const std::vector< Point< dim > > &points, std::vector< Vector< RangeNumberType > > &values) const
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< RangeNumberType > &values, const unsigned int component=0) const
virtual void vector_gradient(const Point< dim > &p, std::vector< Tensor< 1, dim, RangeNumberType > > &gradients) const
virtual Tensor< 1, dim, RangeNumberType > gradient(const Point< dim > &p, const unsigned int component=0) const
virtual void vector_value(const Point< dim > &p, Vector< RangeNumberType > &return_value) const
ComponentSelectFunction(const unsigned int selected, const RangeNumberType value, const unsigned int n_components)
virtual void vector_hessian_list(const std::vector< Point< dim > > &points, std::vector< std::vector< SymmetricTensor< 2, dim, RangeNumberType > > > &values) const
Function & operator=(const Function &f)
virtual void vector_value(const Point< dim > &p, Vector< RangeNumberType > &return_value) const
virtual SymmetricTensor< 2, dim, RangeNumberType > hessian(const Point< dim > &p, const unsigned int component=0) const
virtual void vector_laplacian_list(const std::vector< Point< dim > > &points, std::vector< Vector< RangeNumberType > > &values) const
virtual void vector_value_list(const std::vector< Point< dim > > &points, std::vector< Vector< RangeNumberType > > &value_list) const
virtual void vector_gradient_list(const std::vector< Point< dim > > &points, std::vector< std::vector< Tensor< 1, dim, RangeNumberType > > > &gradients) const
std::size_t memory_consumption() const
virtual void vector_value(const Point< dim > &p, Vector< RangeNumberType > &values) const
virtual void vector_gradient(const Point< dim > &p, std::vector< Tensor< 1, dim, RangeNumberType > > &gradients) const
ZeroFunction(const unsigned int n_components=1)
virtual void gradient_list(const std::vector< Point< dim > > &points, std::vector< Tensor< 1, dim, RangeNumberType > > &gradients, const unsigned int component=0) const
virtual void vector_value(const Point< dim > &p, Vector< RangeNumberType > &values) const
virtual void substitute_function_value_with(const Functions::ConstantFunction< dim, RangeNumberType > &f)
virtual RangeNumberType laplacian(const Point< dim > &p, const unsigned int component=0) const
virtual void laplacian_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
ConstantFunction(const RangeNumberType value, const unsigned int n_components=1)
const unsigned int selected_component
virtual RangeNumberType value(const Point< dim > &p, const unsigned int component=0) const
virtual void vector_gradients(const std::vector< Point< dim > > &points, std::vector< std::vector< Tensor< 1, dim, RangeNumberType > > > &gradients) const
const unsigned int selected_component
ScalarFunctionFromFunctionObject(const std::function< RangeNumberType(const Point< dim > &)> &function_object)
virtual RangeNumberType value(const Point< dim > &p, const unsigned int component=0) const
std::size_t memory_consumption() const
const TensorFunction< 1, dim, RangeNumberType > & tensor_function
std::vector< RangeNumberType > function_value_vector
VectorFunctionFromScalarFunctionObject(const std::function< RangeNumberType(const Point< dim > &)> &function_object, const unsigned int selected_component, const unsigned int n_components)
virtual void vector_gradient_list(const std::vector< Point< dim > > &points, std::vector< std::vector< Tensor< 1, dim, RangeNumberType > > > &gradients) const
virtual void vector_value_list(const std::vector< Point< dim > > &points, std::vector< Vector< RangeNumberType > > &values) const
Function(const unsigned int n_components=1, const RangeNumberType initial_time=0.0)