void sum_into_global_linear_system(ElemData<GlobalOrdinal,Scalar>& elem_data, LockingMatrix<MatrixType>& A, LockingVector<VectorType>& b) { sum_in_elem_matrix(elem_data.nodes_per_elem, elem_data.elem_node_ids, elem_data.elem_diffusion_matrix, A); sum_into_vector(elem_data.nodes_per_elem, elem_data.elem_node_ids, elem_data.elem_source_vector, b); }
void sum_in(size_t num_indices, const GlobalOrdinal* indices, const Scalar* values) { for(int i=0; i<num_indices; ++i) { GlobalOrdinal row = indices[i]; int local_row = row - myFirstRow_; if (local_row >= 0 && local_row < numMyRows_) { LockV<int> lock(row_locks_[local_row]); sum_into_vector(1, &row, &values[i], x_); } } }