submit_value(const Tensor<1, n_components_, VectorizedArrayType> val_in,
const unsigned int q_point)
{
- Assert(this->cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(this->is_reinitialized, ExcNotInitialized());
AssertIndexRange(q_point, this->n_quadrature_points);
Assert(this->J_value != nullptr,
internal::ExcMatrixFreeAccessToUninitializedMappingField(
const Tensor<1, n_components_, Tensor<1, dim, VectorizedArrayType>> grad_in,
const unsigned int q_point)
{
- Assert(this->cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(this->is_reinitialized, ExcNotInitialized());
AssertIndexRange(q_point, this->n_quadrature_points);
Assert(this->J_value != nullptr,
internal::ExcMatrixFreeAccessToUninitializedMappingField(
hessian_in,
const unsigned int q_point)
{
- Assert(this->cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(this->is_reinitialized, ExcNotInitialized());
AssertIndexRange(q_point, this->n_quadrature_points);
Assert(this->J_value != nullptr,
internal::ExcMatrixFreeAccessToUninitializedMappingField(
FEEvaluationBase<dim, n_components_, Number, is_face, VectorizedArrayType>::
integrate_value() const
{
- Assert(this->cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(this->is_reinitialized, ExcNotInitialized());
# ifdef DEBUG
Assert(this->values_quad_submitted == true,
internal::ExcAccessToUninitializedField());
const VectorizedArrayType val_in,
const unsigned int q_point)
{
- Assert(this->cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(this->is_reinitialized, ExcNotInitialized());
AssertIndexRange(q_point, this->n_quadrature_points);
Assert(this->J_value != nullptr,
internal::ExcMatrixFreeAccessToUninitializedMappingField(
submit_gradient(const Tensor<1, dim, VectorizedArrayType> grad_in,
const unsigned int q_point)
{
- Assert(this->cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(this->is_reinitialized, ExcNotInitialized());
AssertIndexRange(q_point, this->n_quadrature_points);
Assert(this->J_value != nullptr,
internal::ExcMatrixFreeAccessToUninitializedMappingField(
submit_divergence(const VectorizedArrayType div_in,
const unsigned int q_point)
{
- Assert(this->cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(this->is_reinitialized, ExcNotInitialized());
AssertIndexRange(q_point, this->n_quadrature_points);
Assert(this->J_value != nullptr,
internal::ExcMatrixFreeAccessToUninitializedMappingField(
// could have used base class operator, but that involves some overhead
// which is inefficient. it is nice to have the symmetric tensor because
// that saves some operations
- Assert(this->cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(this->is_reinitialized, ExcNotInitialized());
AssertIndexRange(q_point, this->n_quadrature_points);
Assert(this->J_value != nullptr,
internal::ExcMatrixFreeAccessToUninitializedMappingField(
const VectorizedArrayType val_in,
const unsigned int q_point)
{
- Assert(this->cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(this->is_reinitialized, ExcNotInitialized());
AssertIndexRange(q_point, this->n_quadrature_points);
# ifdef DEBUG
this->values_quad_submitted = true;
const VectorizedArrayType grad_in,
const unsigned int q_point)
{
- Assert(this->cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(this->is_reinitialized, ExcNotInitialized());
AssertIndexRange(q_point, this->n_quadrature_points);
# ifdef DEBUG
this->gradients_quad_submitted = true;
this->cell_ids[i] = cell_index * VectorizedArrayType::size() + i;
# ifdef DEBUG
+ this->is_reinitialized = true;
this->dof_values_initialized = false;
this->values_quad_initialized = false;
this->gradients_quad_initialized = false;
cell->get_mg_dof_indices(this->local_dof_indices);
else
cell->get_dof_indices(this->local_dof_indices);
+
+# ifdef DEBUG
+ this->is_reinitialized = true;
+# endif
}
"instead"));
Assert(this->mapped_geometry.get() != 0, ExcNotInitialized());
this->mapped_geometry->reinit(cell);
+
+# ifdef DEBUG
+ this->is_reinitialized = true;
+# endif
}
->normals_times_jacobians[!this->is_interior_face][offsets];
# ifdef DEBUG
+ this->is_reinitialized = true;
this->dof_values_initialized = false;
this->values_quad_initialized = false;
this->gradients_quad_initialized = false;
.normals_times_jacobians[!this->is_interior_face][offsets];
# ifdef DEBUG
+ this->is_reinitialized = true;
this->dof_values_initialized = false;
this->values_quad_initialized = false;
this->gradients_quad_initialized = false;
get_cell_ids() const
{
// implemented inline to avoid compilation problems on Windows
- Assert(cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(is_reinitialized, ExcNotInitialized());
return cell_ids;
}
get_cell_or_face_batch_id() const
{
// implemented inline to avoid compilation problems on Windows
- Assert(cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(is_reinitialized, ExcNotInitialized());
return cell;
}
get_cell_or_face_ids() const
{
// implemented inline to avoid compilation problems on Windows
- Assert(cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(is_reinitialized, ExcNotInitialized());
if (!is_face || dof_access_index ==
internal::MatrixFreeFunctions::DoFInfo::dof_access_cell)
return cell_ids;
*/
Number *hessians_quad;
+ /**
+ * Debug information to track whether the reinit() function of derived classes
+ * was called.
+ */
+ bool is_reinitialized;
+
/**
* Debug information to track whether dof values have been initialized
* before accessed. Used to control exceptions when uninitialized data is
, quadrature_weights(
descriptor != nullptr ? descriptor->quadrature_weights.begin() : nullptr)
# ifdef DEBUG
+ , is_reinitialized(false)
, dof_values_initialized(false)
, values_quad_initialized(false)
, gradients_quad_initialized(false)
, is_interior_face(true)
, dof_access_index(internal::MatrixFreeFunctions::DoFInfo::dof_access_cell)
, mapped_geometry(mapped_geometry)
+ , is_reinitialized(false)
{
mapping_data = &mapped_geometry->get_data_storage();
jacobian = mapped_geometry->get_data_storage().jacobians[0].begin();
quadrature_weights = other.quadrature_weights;
# ifdef DEBUG
+ is_reinitialized = false;
dof_values_initialized = false;
values_quad_initialized = false;
gradients_quad_initialized = false;
inline internal::MatrixFreeFunctions::GeometryType
FEEvaluationData<dim, Number, is_face>::get_cell_type() const
{
- Assert(cell != numbers::invalid_unsigned_int, ExcNotInitialized());
+ Assert(is_reinitialized, ExcNotInitialized());
return cell_type;
}