From: bangerth Date: Tue, 13 Nov 2012 22:39:28 +0000 (+0000) Subject: Merge from mainline. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff56edf447ad385c72115d5825f108b99cf8d75c;p=dealii-svn.git Merge from mainline. git-svn-id: https://svn.dealii.org/branches/branch_bigger_global_dof_indices_3@27528 0785d39b-7218-0410-832d-ea1e28bc413d --- ff56edf447ad385c72115d5825f108b99cf8d75c diff --cc deal.II/include/deal.II/lac/constraint_matrix.h index af4f3ad83d,7b86d099fa..059e751518 --- a/deal.II/include/deal.II/lac/constraint_matrix.h +++ b/deal.II/include/deal.II/lac/constraint_matrix.h @@@ -1983,20 -1992,26 +1992,26 @@@ ConstraintMatrix::can_store_line (types - template + template inline - void - ConstraintMatrix:: - distribute_local_to_global (const InVector &local_vector, - const std::vector &local_dof_indices, - OutVector &global_vector) const + void ConstraintMatrix::distribute_local_to_global ( - const unsigned int index, ++ const types::global_dof_index index, + const double value, + VectorType &global_vector) const { - Assert (local_vector.size() == local_dof_indices.size(), - ExcDimensionMismatch(local_vector.size(), local_dof_indices.size())); - distribute_local_to_global (local_vector.begin(), local_vector.end(), - local_dof_indices.begin(), global_vector); - } + Assert (sorted == true, ExcMatrixNotClosed()); + if (is_constrained(index) == false) + global_vector(index) += value; + else + { + const ConstraintLine& position = + lines[lines_cache[calculate_line_index(index)]]; + for (unsigned int j=0; j(0)); + number_cache.n_global_levels = Utilities::MPI::max(this->n_levels(), mpi_communicator); }