}
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();
// something with this dof
const double new_diagonal = std::fabs(local_matrix(local_row,local_row)) != 0 ?
std::fabs(local_matrix(local_row,local_row)) : average_diagonal;
- Threads::ThreadMutex::ScopedLock lock(mutex);
global_matrix.add(global_row, global_row, new_diagonal);
}
// that accumulated under the given
// process into the global matrix row and
// into the vector
- Threads::ThreadMutex::ScopedLock lock(mutex);
const unsigned int n_values = col_ptr - &cols[0];
Assert (n_values == (unsigned int)(val_ptr - &vals[0]),
ExcInternalError());
}
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)
{
const double new_diagonal = std::fabs(local_matrix(local_row,local_row)) != 0 ?
std::fabs(local_matrix(local_row,local_row)) : average_diagonal;
- Threads::ThreadMutex::ScopedLock lock(mutex);
global_matrix.add(global_row, global_row, new_diagonal);
}
Assert (n_values == (unsigned int)(val_ptr - &vals[0]),
ExcInternalError());
if (n_values > 0)
- {
- Threads::ThreadMutex::ScopedLock lock(mutex);
- global_matrix.block(block, block_col).add(row, n_values,
- &cols[0], &vals[0],
- false, true);
- }
+ global_matrix.block(block, block_col).add(row, n_values,
+ &cols[0], &vals[0],
+ false, true);
}
if (use_vectors == true)
}
}
if (val != 0)
- {
- Threads::ThreadMutex::ScopedLock lock(mutex);
- global_vector(my_indices[i].global_row) += val;
- }
+ global_vector(my_indices[i].global_row) += val;
}
}
}
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)
{
}
}
- Threads::ThreadMutex::ScopedLock lock(mutex);
-
if (keep_constrained_entries == true)
{
for (unsigned int j=0; j<n_local_dofs; ++j)
// to the sparsity pattern. Very easy
// here - just add the same array to all
// the columns...
- Threads::ThreadMutex::ScopedLock lock(mutex);
for (unsigned int i=0; i<n_actual_dofs; ++i)
sparsity_pattern.add_entries(actual_dof_indices[i],
actual_dof_indices.begin(),
}
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();
(local_row, position->entries[q].second));
}
- Threads::ThreadMutex::ScopedLock lock(mutex);
-
// need to add the whole row and column
// structure in case we keep constrained
// entries. Unfortunately, we can't use
// that accumulated under the given
// process into the global matrix row and
// into the vector
- Threads::ThreadMutex::ScopedLock lock(mutex);
if (col_ptr != cols.begin())
sparsity_pattern.add_entries(row, cols.begin(), col_ptr,
true);
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)
{
}
}
- Threads::ThreadMutex::ScopedLock lock(mutex);
-
if (keep_constrained_entries == true)
{
for (unsigned int j=0; j<n_local_dofs; ++j)
// easy operation - just go trough the
// individual blocks and add the same
// array for each row
- Threads::ThreadMutex::ScopedLock lock(mutex);
for (unsigned int block=0; block<num_blocks; ++block)
{
const unsigned int next_block = block_starts[block+1];
}
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();
(local_row, position->entries[q].second));
}
- Threads::ThreadMutex::ScopedLock lock(mutex);
-
if (keep_constrained_entries == true)
{
for (unsigned int j=0; j<n_local_dofs; ++j)
// that accumulated under the given
// process into the global matrix row and
// into the vector
- Threads::ThreadMutex::ScopedLock lock(mutex);
sparsity_pattern.block(block, block_col).add_entries(row,
cols.begin(),
col_ptr,