17 #ifndef __deal2__tensor_function_h
18 #define __deal2__tensor_function_h
21 #include <deal.II/base/config.h>
23 #include <deal.II/base/subscriptor.h>
24 #include <deal.II/base/smartpointer.h>
25 #include <deal.II/base/function.h>
26 #include <deal.II/base/point.h>
27 #include <deal.II/base/function_time.h>
59 template <
int rank,
int dim>
95 std::vector<value_type> &values)
const;
108 std::vector<gradient_type> &gradients)
const;
119 <<
"The vector has size " << arg1 <<
" but should have "
120 << arg2 <<
" elements.");
133 template <
int rank,
int dim>
145 const double initial_time = 0.0);
149 virtual typename ::TensorFunction<rank, dim>::value_type
value (
const Point<dim> &p)
const;
151 virtual void value_list (
const std::vector<
Point<dim> > &points,
152 std::vector<typename ::TensorFunction<rank, dim>::value_type> &values)
const;
154 virtual typename ::TensorFunction<rank, dim>::gradient_type
gradient (
const Point<dim> &p)
const;
156 virtual void gradient_list (
const std::vector<
Point<dim> > &points,
157 std::vector<typename ::TensorFunction<rank, dim>::gradient_type> &gradients)
const;
160 const ::Tensor<rank, dim> _value;
172 template <
int rank,
int dim>
186 DEAL_II_NAMESPACE_CLOSE
::ExceptionBase & ExcPureFunctionCalled()
DeclException0(ExcPureFunctionCalled)
virtual typename::TensorFunction< rank, dim >::value_type value(const Point< dim > &p) const
ZeroTensorFunction(const double initial_time=0.0)
virtual value_type value(const Point< dim > &p) const
virtual ~TensorFunction()
TensorFunction(const double initial_time=0.0)
Tensor< rank, dim > value_type
virtual gradient_type gradient(const Point< dim > &p) const
virtual typename::TensorFunction< rank, dim >::gradient_type gradient(const Point< dim > &p) const
ConstantTensorFunction(const ::Tensor< rank, dim > &value, const double initial_time=0.0)
virtual void gradient_list(const std::vector< Point< dim > > &points, std::vector< gradient_type > &gradients) const
DeclException2(ExcVectorHasWrongSize, int, int,<< "The vector has size "<< arg1<< " but should have "<< arg2<< " elements.")
virtual void value_list(const std::vector< Point< dim > > &points, std::vector< value_type > &values) const