From 540161816bd73b2897eb4d5504cdebde1a7a0e3c Mon Sep 17 00:00:00 2001 From: bangerth Date: Thu, 15 Jul 2010 17:24:58 +0000 Subject: [PATCH] Take over patch r21504 from mainline. git-svn-id: https://svn.dealii.org/branches/releases/Branch-6-3@21505 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/source/numerics/matrices.cc | 37 ++++++++++++++++----- deal.II/doc/news/changes.h | 9 +++++ 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/deal.II/deal.II/source/numerics/matrices.cc b/deal.II/deal.II/source/numerics/matrices.cc index 2331b64c39..5993e9513e 100644 --- a/deal.II/deal.II/source/numerics/matrices.cc +++ b/deal.II/deal.II/source/numerics/matrices.cc @@ -1704,11 +1704,16 @@ void MatrixCreator::create_laplace_matrix (const Mapping &m copy_data.cell_rhs.reinit (assembler_data.fe_collection.max_dofs_per_cell()); copy_data.dof_indices.resize (assembler_data.fe_collection.max_dofs_per_cell()); + void (*copy_local_to_global) (const internal::MatrixCreator::AssemblerData::CopyData &, + SparseMatrix *, + Vector *) + = &internal::MatrixCreator:: + copy_local_to_global, Vector >; + WorkStream::run (dof.begin_active(), static_cast::active_cell_iterator>(dof.end()), &internal::MatrixCreator::laplace_assembler::active_cell_iterator>, - std_cxx1x::bind (&internal::MatrixCreator:: - copy_local_to_global, Vector >, + std_cxx1x::bind (copy_local_to_global, _1, &matrix, (Vector*)0), assembler_data, copy_data); @@ -1753,11 +1758,17 @@ void MatrixCreator::create_laplace_matrix (const Mapping &m assembler_data.fe_collection.max_dofs_per_cell()); copy_data.cell_rhs.reinit (assembler_data.fe_collection.max_dofs_per_cell()); copy_data.dof_indices.resize (assembler_data.fe_collection.max_dofs_per_cell()); + + void (*copy_local_to_global) (const internal::MatrixCreator::AssemblerData::CopyData &, + SparseMatrix *, + Vector *) + = &internal::MatrixCreator:: + copy_local_to_global, Vector >; + WorkStream::run (dof.begin_active(), static_cast::active_cell_iterator>(dof.end()), &internal::MatrixCreator::laplace_assembler::active_cell_iterator>, - std_cxx1x::bind (&internal::MatrixCreator:: - copy_local_to_global, Vector >, + std_cxx1x::bind (copy_local_to_global, _1, &matrix, &rhs_vector), assembler_data, copy_data); @@ -1804,11 +1815,16 @@ void MatrixCreator::create_laplace_matrix (const hp::MappingCollection *, + Vector *) + = &internal::MatrixCreator:: + copy_local_to_global, Vector >; + WorkStream::run (dof.begin_active(), static_cast::active_cell_iterator>(dof.end()), &internal::MatrixCreator::laplace_assembler::active_cell_iterator>, - std_cxx1x::bind (&internal::MatrixCreator:: - copy_local_to_global, Vector >, + std_cxx1x::bind (copy_local_to_global, _1, &matrix, (Vector*)0), assembler_data, copy_data); @@ -1854,11 +1870,16 @@ void MatrixCreator::create_laplace_matrix (const hp::MappingCollection *, + Vector *) + = &internal::MatrixCreator:: + copy_local_to_global, Vector >; + WorkStream::run (dof.begin_active(), static_cast::active_cell_iterator>(dof.end()), &internal::MatrixCreator::laplace_assembler::active_cell_iterator>, - std_cxx1x::bind (&internal::MatrixCreator:: - copy_local_to_global, Vector >, + std_cxx1x::bind (copy_local_to_global, _1, &matrix, &rhs_vector), assembler_data, copy_data); diff --git a/deal.II/doc/news/changes.h b/deal.II/doc/news/changes.h index 635ed0b1fe..898b7c14ff 100644 --- a/deal.II/doc/news/changes.h +++ b/deal.II/doc/news/changes.h @@ -38,6 +38,15 @@ inconvenience this causes.

General

    +
  1. +

    Fixed: GCC version 3.4.0 failed to compile the file + deal.II/source/numerics/matrices.cc with + an internal compiler error. This has + now been worked around. +
    + (WB 2010/07/15) +

    +
  2. Fixed: A problem in the Makefiles caused error messages when building under CygWin. -- 2.39.5