#include <base/exceptions.h>
#include <base/subscriptor.h>
#include <base/table.h>
-#include <base/thread_management.h>
#include <base/template_constraints.h>
#include <vector>
* matrix. Otherwise, this function
* will not be able to correctly handle
* inhomogeneities.
+ *
+ * Note: This function is not
+ * thread-safe, so you will need to
+ * make sure that only on process at a
+ * time calls this function.
*/
template <typename VectorType>
void
* call to the condense function after
* the vectors and matrices are fully
* assembled.
+ *
+ * Note: This function is not
+ * thread-safe, so you will need to
+ * make sure that only on process at a
+ * time calls this function.
*/
template <typename MatrixType>
void
* ConstraintMatrix. This function can
* correctly handle inhomogeneous
* constraints as well.
+ *
+ * Note: This function is not
+ * thread-safe, so you will need to
+ * make sure that only on process at a
+ * time calls this function.
*/
template <typename MatrixType, typename VectorType>
void
*/
static const Table<2,bool> default_empty_table;
- /**
- * A mutex that makes the function
- * <tt>distribute_local_to_global()</tt>
- * only accessible to one process at
- * time.
- */
- mutable Threads::ThreadMutex mutex;
-
/**
* This function actually implements
* the local_to_global function for
}
const unsigned int n_local_dofs = local_vector.size();
-
- Threads::ThreadMutex::ScopedLock lock(mutex);
for (unsigned int i=0; i<n_local_dofs; ++i)
{
// let's see if we can use the bool
}
internals::list_shellsort (my_indices);
- Threads::ThreadMutex::ScopedLock lock(mutex);
-
// now in the second step actually
// resolve the constraints
const unsigned int n_constrained_dofs = constraint_lines.size();
}
internals::list_shellsort (my_indices);
- Threads::ThreadMutex::ScopedLock lock(mutex);
-
const unsigned int n_constrained_dofs = constraint_lines.size();
for (unsigned int i=0; i<n_constrained_dofs; ++i)
{
actual_dof_indices.resize (added_rows);
std::sort (actual_dof_indices.begin(), actual_dof_indices.end());
- Threads::ThreadMutex::ScopedLock lock(mutex);
-
const unsigned int n_constrained_dofs = constraint_lines.size();
for (unsigned int i=0; i<n_constrained_dofs; ++i)
{
}
internals::list_shellsort (my_indices);
- Threads::ThreadMutex::ScopedLock lock(mutex);
-
// now in the second step actually
// resolve the constraints
const unsigned int n_constrained_dofs = constraint_lines.size();
actual_dof_indices.resize (added_rows);
std::sort (actual_dof_indices.begin(), actual_dof_indices.end());
- Threads::ThreadMutex::ScopedLock lock(mutex);
-
const unsigned int n_constrained_dofs = constraint_lines.size();
for (unsigned int i=0; i<n_constrained_dofs; ++i)
{
}
internals::list_shellsort (my_indices);
- Threads::ThreadMutex::ScopedLock lock(mutex);
-
// now in the second step actually
// resolve the constraints
const unsigned int n_constrained_dofs = constraint_lines.size();