From: Rene Gassmoeller Date: Thu, 30 Mar 2023 13:22:09 +0000 (-0400) Subject: Add signal X-Git-Tag: v9.5.0-rc1~385^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=600ce51995322a8fd9348ec7bac8bd94ace19a81;p=dealii.git Add signal --- diff --git a/include/deal.II/matrix_free/fe_point_evaluation.h b/include/deal.II/matrix_free/fe_point_evaluation.h index 40b65738b1..0e19bd271e 100644 --- a/include/deal.II/matrix_free/fe_point_evaluation.h +++ b/include/deal.II/matrix_free/fe_point_evaluation.h @@ -832,6 +832,8 @@ FEPointEvaluation::FEPointEvaluation( , is_reinitialized(false) { setup(first_selected_component); + mapping_info.is_reinitialized.connect( + [this]() { this->is_reinitialized = false; }); } diff --git a/include/deal.II/non_matching/mapping_info.h b/include/deal.II/non_matching/mapping_info.h index 63ad40f87d..3693c3758d 100644 --- a/include/deal.II/non_matching/mapping_info.h +++ b/include/deal.II/non_matching/mapping_info.h @@ -182,6 +182,13 @@ namespace NonMatching UpdateFlags get_update_flags() const; + /** + * This signal is triggered right after + * this object is reinitialized, to let dependent + * objects know that they need to reinitialize as well. + */ + boost::signals2::signal is_reinitialized; + private: /** * Enum class for reinitialized states. @@ -336,6 +343,8 @@ namespace NonMatching mapping_data[0]); state = State::single_cell; + + is_reinitialized(); } @@ -413,6 +422,7 @@ namespace NonMatching } state = State::cell_vector; + is_reinitialized(); } @@ -509,6 +519,7 @@ namespace NonMatching } state = State::cell_vector; + is_reinitialized(); } @@ -611,6 +622,7 @@ namespace NonMatching } state = State::faces_on_cells_in_vector; + is_reinitialized(); }