16 #ifndef dealii_tensor_function_h 17 #define dealii_tensor_function_h 20 #include <deal.II/base/config.h> 22 #include <deal.II/base/exceptions.h> 23 #include <deal.II/base/function.h> 24 #include <deal.II/base/function_time.h> 25 #include <deal.II/base/point.h> 26 #include <deal.II/base/smartpointer.h> 27 #include <deal.II/base/subscriptor.h> 31 DEAL_II_NAMESPACE_OPEN
56 template <
int rank,
int dim,
typename Number =
double>
58 :
public FunctionTime<typename numbers::NumberTraits<Number>::real_type>,
104 std::vector<value_type> & values)
const;
119 std::vector<gradient_type> & gradients)
const;
131 template <
int rank,
int dim,
typename Number =
double>
152 virtual typename ::TensorFunction<rank, dim, Number>::value_type
158 std::vector<typename ::TensorFunction<rank, dim, Number>::value_type>
159 &values)
const override;
161 virtual typename ::TensorFunction<rank, dim, Number>::gradient_type
168 typename ::TensorFunction<rank, dim, Number>::gradient_type>
169 &gradients)
const override;
172 const ::Tensor<rank, dim, Number> _value;
184 template <
int rank,
int dim,
typename Number =
double>
204 DEAL_II_NAMESPACE_CLOSE
virtual void gradient_list(const std::vector< Point< dim >> &points, std::vector< gradient_type > &gradients) const
ZeroTensorFunction(const time_type initial_time=0.0)
virtual value_type value(const Point< dim > &p) const
virtual typename ::TensorFunction< rank, dim, Number >::gradient_type gradient(const Point< dim > &p) const override
typename FunctionTime< typename numbers::NumberTraits< RangeNumberType >::real_type >::time_type time_type
typename TensorFunction< rank, dim, Number >::time_type time_type
TensorFunction(const time_type initial_time=time_type(0.0))
virtual ~TensorFunction() override=default
virtual gradient_type gradient(const Point< dim > &p) const
virtual void value_list(const std::vector< Point< dim >> &points, std::vector< value_type > &values) const
virtual typename ::TensorFunction< rank, dim, Number >::value_type value(const Point< dim > &p) const override
ConstantTensorFunction(const ::Tensor< rank, dim, Number > &value, const time_type initial_time=0.0)