const StridedArrayView<ScalarNumber, stride_view> &solution_values,
const EvaluationFlags::EvaluationFlags &integration_flags,
const bool sum_into_values);
+
+ /**
+ * Internal function to initialize the pointers of this class when an
+ * external MappingInfo has already queried the mapping for the relevant
+ * information.
+ */
+ void
+ internal_reinit_single_cell_state_mapping_info();
};
template <int n_components_, int dim, int spacedim, typename Number>
inline void
-FEPointEvaluation<n_components_, dim, spacedim, Number>::reinit()
+FEPointEvaluation<n_components_, dim, spacedim, Number>::
+ internal_reinit_single_cell_state_mapping_info()
{
this->current_cell_index = numbers::invalid_unsigned_int;
this->current_face_number = numbers::invalid_unsigned_int;
+template <int n_components_, int dim, int spacedim, typename Number>
+inline void
+FEPointEvaluation<n_components_, dim, spacedim, Number>::reinit()
+{
+ internal_reinit_single_cell_state_mapping_info();
+ this->must_reinitialize_pointers = false;
+}
+
+
+
template <int n_components_, int dim, int spacedim, typename Number>
inline void
FEPointEvaluation<n_components_, dim, spacedim, Number>::reinit(
const EvaluationFlags::EvaluationFlags &evaluation_flags)
{
if (this->must_reinitialize_pointers)
- reinit();
+ internal_reinit_single_cell_state_mapping_info();
if (this->n_q_points == 0)
return;
const bool sum_into_values)
{
if (this->must_reinitialize_pointers)
- reinit();
+ internal_reinit_single_cell_state_mapping_info();
Assert(!(integration_flags & EvaluationFlags::hessians), ExcNotImplemented());