|
| | VectorFunctionFromTensorFunctionObject (const std::function< Tensor< 1, dim, RangeNumberType >(const Point< dim > &)> &tensor_function_object, const unsigned int selected_component=0, const unsigned int n_components=dim) |
| |
| virtual | ~VectorFunctionFromTensorFunctionObject () override=default |
| |
| 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_value_list (const std::vector< Point< dim >> &points, std::vector< Vector< RangeNumberType >> &value_list) const override |
| |
| | Function (const unsigned int n_components=1, const time_type initial_time=0.0) |
| |
| | Function (const Function &f)=default |
| |
| virtual | ~Function () override=0 |
| |
| Function & | operator= (const Function &f) |
| |
| virtual void | value_list (const std::vector< Point< dim > > &points, std::vector< RangeNumberType > &values, const unsigned int component=0) const |
| |
| virtual void | vector_value_list (const std::vector< Point< dim > > &points, std::vector< Vector< RangeNumberType > > &values) const |
| |
| virtual void | vector_values (const std::vector< Point< dim > > &points, std::vector< std::vector< RangeNumberType > > &values) const |
| |
| virtual Tensor< 1, dim, RangeNumberType > | gradient (const Point< dim > &p, const unsigned int component=0) const |
| |
| virtual void | vector_gradient (const Point< dim > &p, std::vector< Tensor< 1, dim, RangeNumberType > > &gradients) const |
| |
| 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_gradients (const std::vector< Point< dim > > &points, std::vector< std::vector< Tensor< 1, dim, RangeNumberType > > > &gradients) const |
| |
| virtual void | vector_gradient_list (const std::vector< Point< dim > > &points, std::vector< std::vector< Tensor< 1, dim, RangeNumberType > > > &gradients) const |
| |
| virtual RangeNumberType | laplacian (const Point< dim > &p, const unsigned int component=0) const |
| |
| virtual void | vector_laplacian (const Point< dim > &p, Vector< RangeNumberType > &values) const |
| |
| virtual void | laplacian_list (const std::vector< Point< dim > > &points, std::vector< RangeNumberType > &values, const unsigned int component=0) const |
| |
| virtual void | vector_laplacian_list (const std::vector< Point< dim > > &points, std::vector< Vector< RangeNumberType > > &values) const |
| |
| virtual SymmetricTensor< 2, dim, RangeNumberType > | hessian (const Point< dim > &p, const unsigned int component=0) const |
| |
| virtual void | vector_hessian (const Point< dim > &p, std::vector< SymmetricTensor< 2, dim, RangeNumberType > > &values) const |
| |
| virtual void | hessian_list (const std::vector< Point< dim > > &points, std::vector< SymmetricTensor< 2, dim, RangeNumberType > > &values, const unsigned int component=0) const |
| |
| virtual void | vector_hessian_list (const std::vector< Point< dim > > &points, std::vector< std::vector< SymmetricTensor< 2, dim, RangeNumberType > > > &values) const |
| |
| virtual std::size_t | memory_consumption () const |
| |
| Number | get_time () const |
| |
| virtual void | set_time (const Number new_time) |
| |
| virtual void | advance_time (const Number delta_t) |
| |
| void | serialize (Archive &ar, const unsigned int version) |
| |
| unsigned int | n_subscriptions () const |
| |
| unsigned int | n_subscriptions () const |
| |
| void | list_subscribers (StreamType &stream) const |
| |
| void | list_subscribers () const |
| |
| void | list_subscribers (StreamType &stream) const |
| |
| void | list_subscribers () const |
| |
| | FunctionTime (const Number initial_time=Number(0.0)) |
| |
| virtual | ~FunctionTime ()=default |
| |
| Number | get_time () const |
| |
| | EnableObserverPointer () |
| |
| | EnableObserverPointer (const EnableObserverPointer &) |
| |
| | EnableObserverPointer (EnableObserverPointer &&) noexcept |
| |
| virtual | ~EnableObserverPointer () |
| |
| EnableObserverPointer & | operator= (const EnableObserverPointer &) |
| |
| EnableObserverPointer & | operator= (EnableObserverPointer &&) noexcept |
| |
| void | serialize (Archive &ar, const unsigned int version) |
| |
| unsigned int | n_subscriptions () const |
| |
| void | list_subscribers (StreamType &stream) const |
| |
| void | list_subscribers () const |
| |
| unsigned int | n_subscriptions () const |
| |
| void | list_subscribers (StreamType &stream) const |
| |
| void | list_subscribers () const |
| |
template<int dim, typename RangeNumberType = double>
class aspect::VectorFunctionFromTensorFunctionObject< dim, RangeNumberType >
This class is built as a means of translating the Tensor<1,dim, RangeNumberType> values produced by function objects that for a given point return a tensor, and returning them as a multiple component version of the same thing as a Vector for use in, for example, the VectorTools::interpolate or the many other functions taking Function objects. It allows the user to place the desired components into an n_components long vector starting at the selected_component location in that vector and have all other components be 0.
For example: Say you created a function object that returns the gravity (here, a radially inward pointing vector of magnitude 9.81):
const auto gravity
p.norm()); }
and you want to interpolate this onto your mesh using the VectorTools::interpolate function, with a finite element for the DoFHandler object has 3 copies of a finite element with dim components, for a total of 3*dim components. To interpolate onto that DoFHandler, you need an object of type Function that has 3*dim vector components. Creating such an object from the existing gravity object is done using this piece of code:
gravity_vector_function(gravity, 0, 3*dim);
where the dim components of the gravity function are placed into the first dim components of the function object.
Definition at line 292 of file compat.h.
template<int dim, typename RangeNumberType>
Given a function object that takes a Point and returns a Tensor<1,dim, RangeNumberType> value, convert this into an object that matches the Function<dim> interface.
By default, create a Vector object of the same size as tensor_function returns, i.e., with dim components.
- Parameters
-
| tensor_function_object | The TensorFunction that will form dim components of the resulting Vector Function object. |
| n_components | The total number of vector components of the resulting TensorFunction object. This clearly has to be at least dim. |
| selected_component | The first component that should be filled by the first argument. This should be such that the entire tensor_function fits inside the n_component length return vector. |
Definition at line 371 of file compat.h.
template<int dim, typename RangeNumberType>
Return all components of a vector-valued function at a list of points.
value_list shall be the same size as points and each element of the vector will be passed to vector_value() to evaluate the function
Member function vector_value_list is the interface for giving a list of points (vector<Point<dim>>) of which to evaluate using the vector_value member function. Again, this function is written so as to not replicate the function definition but passes each point on to vector_value to be evaluated.
Definition at line 447 of file compat.h.