const std::function<void(const ArrayView<T> &, const CellData &)>
&evaluation_function) const;
+ /**
+ * Same as above but with the result provided as return value and
+ * without external allocation of a user-provided buffer.
+ */
+ template <typename T>
+ std::vector<T>
+ evaluate_and_process(
+ const std::function<void(const ArrayView<T> &, const CellData &)>
+ &evaluation_function) const;
+
/**
* This method is the inverse of the method evaluate_and_process(). It
* makes the data at the points, provided by @p input, available in the
const std::function<void(const ArrayView<const T> &, const CellData &)>
&evaluation_function) const;
+ /**
+ * Same as above but without external allocation of a user-provided
+ * buffer.
+ */
+ template <typename T>
+ void
+ process_and_evaluate(
+ const std::vector<T> &input,
+ const std::function<void(const ArrayView<const T> &, const CellData &)>
+ &evaluation_function) const;
+
/**
* Return a CRS-like data structure to determine the position of the
* result corresponding a point and the amount.
}
+ template <int dim, int spacedim>
+ template <typename T>
+ std::vector<T>
+ RemotePointEvaluation<dim, spacedim>::evaluate_and_process(
+ const std::function<void(const ArrayView<T> &, const CellData &)>
+ &evaluation_function) const
+ {
+ std::vector<T> output;
+ std::vector<T> buffer;
+
+ this->evaluate_and_process(output, buffer, evaluation_function);
+
+ return output;
+ }
+
+
+
template <int dim, int spacedim>
template <typename T>
void
#endif
}
+
+
+ template <int dim, int spacedim>
+ template <typename T>
+ void
+ RemotePointEvaluation<dim, spacedim>::process_and_evaluate(
+ const std::vector<T> &input,
+ const std::function<void(const ArrayView<const T> &, const CellData &)>
+ &evaluation_function) const
+ {
+ std::vector<T> buffer;
+ this->process_and_evaluate(input, buffer, evaluation_function);
+ }
+
} // end of namespace MPI
} // end of namespace Utilities