Skip to content

Commit

Permalink
Merge pull request #15381 from kronbichler/mf_create_inner_faces
Browse files Browse the repository at this point in the history
MatrixFree: Only set up the inner faces when so requested
  • Loading branch information
tamiko committed Jul 1, 2023
2 parents 184e109 + 3d21248 commit bd60e7b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 6 deletions.
9 changes: 9 additions & 0 deletions doc/news/changes/incompatibilities/20230619Kronbichler
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
MatrixFree::reinit() would always set up the data structures for inner faces,
also in case only
MatrixFree::AdditionalData::mapping_updates_flags_boundary_faces was set. As
this can lead to considerably higher memory consumption, the inner faces are
now only set up when requested, increasing efficiency. When inner faces are
desired, make sure to set
MatrixFree::AdditionalData::mapping_updates_flags_inner_faces.
<br>
(Martin Kronbichler, 2023/06/19)
13 changes: 7 additions & 6 deletions include/deal.II/matrix_free/matrix_free.templates.h
Original file line number Diff line number Diff line change
Expand Up @@ -1959,12 +1959,13 @@ MatrixFree<dim, Number, VectorizedArrayType>::initialize_indices(
true);
}

internal::MatrixFreeFunctions::collect_faces_vectorization(
face_setup.inner_faces,
hard_vectorization_boundary,
task_info.face_partition_data,
face_info.faces,
dof_info[0].cell_active_fe_index);
if (additional_data.mapping_update_flags_inner_faces != update_default)
internal::MatrixFreeFunctions::collect_faces_vectorization(
face_setup.inner_faces,
hard_vectorization_boundary,
task_info.face_partition_data,
face_info.faces,
dof_info[0].cell_active_fe_index);

// on boundary faces, we must also respect the vectorization boundary of
// the inner faces because we might have dependencies on ghosts of
Expand Down

0 comments on commit bd60e7b

Please sign in to comment.