16 #ifndef dealii_tensor_function_h 17 #define dealii_tensor_function_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/exceptions.h> 22 #include <deal.II/base/subscriptor.h> 23 #include <deal.II/base/smartpointer.h> 24 #include <deal.II/base/function.h> 25 #include <deal.II/base/point.h> 26 #include <deal.II/base/function_time.h> 30 DEAL_II_NAMESPACE_OPEN
55 template <
int rank,
int dim,
typename Number=
double>
91 std::vector<value_type> &values)
const;
104 std::vector<gradient_type> &gradients)
const;
116 template <
int rank,
int dim,
typename Number=
double>
128 const Number initial_time = 0.0);
132 virtual typename ::TensorFunction<rank, dim, Number>::value_type
value (
const Point<dim> &p)
const;
134 virtual void value_list (
const std::vector<
Point<dim> > &points,
135 std::vector<typename ::TensorFunction<rank, dim, Number>::value_type> &values)
const;
137 virtual typename ::TensorFunction<rank, dim, Number>::gradient_type
gradient (
const Point<dim> &p)
const;
139 virtual void gradient_list (
const std::vector<
Point<dim> > &points,
140 std::vector<typename ::TensorFunction<rank, dim, Number>::gradient_type> &gradients)
const;
143 const ::Tensor<rank, dim, Number> _value;
155 template <
int rank,
int dim,
typename Number=
double>
169 DEAL_II_NAMESPACE_CLOSE
ZeroTensorFunction(const Number initial_time=0.0)
virtual void gradient_list(const std::vector< Point< dim > > &points, std::vector< gradient_type > &gradients) const
virtual typename ::TensorFunction< rank, dim, Number >::value_type value(const Point< dim > &p) const
TensorFunction(const Number initial_time=Number(0.0))
virtual value_type value(const Point< dim > &p) const
virtual ~TensorFunction()=default
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< value_type > &values) const
virtual gradient_type gradient(const Point< dim > &p) const
virtual typename ::TensorFunction< rank, dim, Number >::gradient_type gradient(const Point< dim > &p) const
ConstantTensorFunction(const ::Tensor< rank, dim, Number > &value, const Number initial_time=0.0)
Tensor< rank, dim, Number > value_type