rotate_indices(std::vector<unsigned int> &indices,
const char direction) const;
- /*
- * Mutex for protecting initialization of restriction and embedding matrix.
+ /**
+ * Mutex variables used for protecting the initialization of restriction
+ * and embedding matrices.
*/
- mutable Threads::Mutex mutex;
+ mutable Threads::Mutex restriction_matrix_mutex;
+ mutable Threads::Mutex prolongation_matrix_mutex;
// Allow access from other dimensions.
template <int dim1, int spacedim1>
Table<2, double> boundary_weights;
/**
- * Mutex for protecting initialization of restriction and embedding matrix.
+ * Mutex variables used for protecting the initialization of restriction
+ * and embedding matrices.
*/
- mutable Threads::Mutex mutex;
+ mutable Threads::Mutex restriction_matrix_mutex;
+ mutable Threads::Mutex prolongation_matrix_mutex;
/**
* Initialize the permutation pattern and the pattern of sign change.
private:
/**
- * Mutex for protecting initialization of restriction and embedding matrix.
+ * Mutex variables used for protecting the initialization of restriction
+ * and embedding matrices.
*/
- mutable Threads::Mutex mutex;
+ mutable Threads::Mutex restriction_matrix_mutex;
+ mutable Threads::Mutex prolongation_matrix_mutex;
/**
* The highest polynomial degree of the underlying tensor product space
void
initialize_quad_dof_index_permutation_and_sign_change();
- /*
- * Mutex for protecting initialization of restriction and embedding matrix.
+ /**
+ * Mutex variables used for protecting the initialization of restriction
+ * and embedding matrices.
*/
- mutable Threads::Mutex mutex;
+ mutable Threads::Mutex restriction_matrix_mutex;
+ mutable Threads::Mutex prolongation_matrix_mutex;
};
/** @} */
const std::vector<Vector<double>> &support_point_values,
std::vector<double> &nodal_values) const override;
-protected:
+private:
/**
- * Mutex used to guard computation of some internal lookup tables.
+ * Mutex variables used for protecting the initialization of restriction
+ * and embedding matrices.
*/
- mutable Threads::Mutex mutex;
+ mutable Threads::Mutex restriction_matrix_mutex;
+ mutable Threads::Mutex prolongation_matrix_mutex;
};
// initialization upon first request
if (this->prolongation[refinement_case - 1][child].n() == 0)
{
- std::lock_guard<std::mutex> lock(this->mutex);
+ std::lock_guard<std::mutex> lock(prolongation_matrix_mutex);
// if matrix got updated while waiting for the lock
if (this->prolongation[refinement_case - 1][child].n() ==
// initialization upon first request
if (this->restriction[refinement_case - 1][child].n() == 0)
{
- std::lock_guard<std::mutex> lock(this->mutex);
+ std::lock_guard<std::mutex> lock(restriction_matrix_mutex);
// if matrix got updated while waiting for the lock...
if (this->restriction[refinement_case - 1][child].n() ==
// initialization upon first request
if (this->prolongation[refinement_case - 1][child].n() == 0)
{
- std::lock_guard<std::mutex> lock(this->mutex);
+ std::lock_guard<std::mutex> lock(prolongation_matrix_mutex);
// if matrix got updated while waiting for the lock
if (this->prolongation[refinement_case - 1][child].n() ==
// initialization upon first request
if (this->restriction[refinement_case - 1][child].n() == 0)
{
- std::lock_guard<std::mutex> lock(this->mutex);
+ std::lock_guard<std::mutex> lock(restriction_matrix_mutex);
// if matrix got updated while waiting for the lock...
if (this->restriction[refinement_case - 1][child].n() ==
// initialization upon first request
if (this->prolongation[refinement_case - 1][child].n() == 0)
{
- std::lock_guard<std::mutex> lock(this->mutex);
+ std::lock_guard<std::mutex> lock(prolongation_matrix_mutex);
// if matrix got updated while waiting for the lock
if (this->prolongation[refinement_case - 1][child].n() ==
// initialization upon first request
if (this->restriction[refinement_case - 1][child].n() == 0)
{
- std::lock_guard<std::mutex> lock(this->mutex);
+ std::lock_guard<std::mutex> lock(restriction_matrix_mutex);
// if matrix got updated while waiting for the lock...
if (this->restriction[refinement_case - 1][child].n() ==
// initialization upon first request
if (this->prolongation[refinement_case - 1][child].n() == 0)
{
- std::lock_guard<std::mutex> lock(this->mutex);
+ std::lock_guard<std::mutex> lock(prolongation_matrix_mutex);
// if matrix got updated while waiting for the lock
if (this->prolongation[refinement_case - 1][child].n() ==
// initialization upon first request
if (this->restriction[refinement_case - 1][child].n() == 0)
{
- std::lock_guard<std::mutex> lock(this->mutex);
+ std::lock_guard<std::mutex> lock(restriction_matrix_mutex);
// if matrix got updated while waiting for the lock...
if (this->restriction[refinement_case - 1][child].n() ==
// initialization upon first request
if (this->prolongation[refinement_case - 1][child].n() == 0)
{
- std::lock_guard<std::mutex> lock(this->mutex);
+ std::lock_guard<std::mutex> lock(prolongation_matrix_mutex);
// if matrix got updated while waiting for the lock
if (this->prolongation[refinement_case - 1][child].n() ==
// initialization upon first request
if (this->restriction[refinement_case - 1][child].n() == 0)
{
- std::lock_guard<std::mutex> lock(this->mutex);
+ std::lock_guard<std::mutex> lock(restriction_matrix_mutex);
// if matrix got updated while waiting for the lock
if (this->restriction[refinement_case - 1][child].n() ==