From de29d3298885fbc01817dac467243e03c672f736 Mon Sep 17 00:00:00 2001 From: Martin Kronbichler Date: Sat, 5 Nov 2016 22:24:17 +0100 Subject: [PATCH] Make DiagonalMatrix member of MFOps::Base a shared_ptr --- include/deal.II/matrix_free/operators.h | 82 ++++++----- tests/matrix_free/mass_operator_02.cc | 3 +- ...t=true.with_trilinos=true.mpirun=3.output} | 68 ++++----- ...t=true.with_trilinos=true.mpirun=7.output} | 68 ++++----- tests/matrix_free/parallel_multigrid_02.cc | 44 +----- ...h_mpi=true.with_p4est=true.mpirun=3.output | 131 ------------------ ...h_mpi=true.with_p4est=true.mpirun=7.output | 131 ------------------ ...st=true.with_trilinos=true.mpirun=3.output | 103 ++++++++++++++ ...st=true.with_trilinos=true.mpirun=7.output | 103 ++++++++++++++ .../parallel_multigrid_adaptive_02.cc | 5 +- .../parallel_multigrid_adaptive_04.cc | 5 +- 11 files changed, 327 insertions(+), 416 deletions(-) rename tests/matrix_free/{parallel_multigrid.with_mpi=true.with_p4est=true.mpirun=3.output => parallel_multigrid.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=3.output} (73%) rename tests/matrix_free/{parallel_multigrid.with_mpi=true.with_p4est=true.mpirun=7.output => parallel_multigrid.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=7.output} (73%) delete mode 100644 tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.mpirun=3.output delete mode 100644 tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.mpirun=7.output create mode 100644 tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=3.output create mode 100644 tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=7.output diff --git a/include/deal.II/matrix_free/operators.h b/include/deal.II/matrix_free/operators.h index 842e07a632..c8fdf4ad47 100644 --- a/include/deal.II/matrix_free/operators.h +++ b/include/deal.II/matrix_free/operators.h @@ -161,7 +161,8 @@ namespace MatrixFreeOperators /** * Get read access to the inverse diagonal of this operator. */ - const DiagonalMatrix > &get_matrix_diagonal_inverse() const; + const std_cxx11::shared_ptr > > & + get_matrix_diagonal_inverse() const; /** * Apply the Jacobi preconditioner, which multiplies every element of the @@ -200,9 +201,10 @@ namespace MatrixFreeOperators SmartPointer, Base > data; /** - * A vector to store inverse of diagonal elements. + * A shared pointer to a diagonal matrix that stores the inverse of + * diagonal elements as a vector. */ - DiagonalMatrix > inverse_diagonal_entries; + std_cxx11::shared_ptr > > inverse_diagonal_entries; private: @@ -232,7 +234,10 @@ namespace MatrixFreeOperators /** * Adjust the ghost range of the vectors to the storage requirements of - * the underlying MatrixFree class. + * the underlying MatrixFree class. This is used inside the mult_add() as + * well as vmult_interface_up() and vmult_interface_down() methods in + * order to ensure that the cell loops will be able to access the ghost + * indices with the correct local indices. */ void adjust_ghost_range_if_necessary(const LinearAlgebra::distributed::Vector &vec) const; }; @@ -636,7 +641,7 @@ namespace MatrixFreeOperators Base::clear () { data = NULL; - inverse_diagonal_entries.clear(); + inverse_diagonal_entries.reset(); } @@ -648,8 +653,9 @@ namespace MatrixFreeOperators { (void) col; Assert (row == col, ExcNotImplemented()); - Assert (inverse_diagonal_entries.m() > 0, ExcNotInitialized()); - return 1.0/inverse_diagonal_entries(row,row); + Assert (inverse_diagonal_entries.get() != NULL && + inverse_diagonal_entries->m() > 0, ExcNotInitialized()); + return 1.0/(*inverse_diagonal_entries)(row,row); } @@ -918,16 +924,17 @@ namespace MatrixFreeOperators std::size_t Base::memory_consumption () const { - return inverse_diagonal_entries.memory_consumption(); + return inverse_diagonal_entries.get() != NULL ? inverse_diagonal_entries->memory_consumption() : sizeof(*this); } template - const DiagonalMatrix > & + const std_cxx11::shared_ptr > > & Base::get_matrix_diagonal_inverse() const { - Assert(inverse_diagonal_entries.m() > 0, ExcNotInitialized()); + Assert(inverse_diagonal_entries.get() != NULL && + inverse_diagonal_entries->m() > 0, ExcNotInitialized()); return inverse_diagonal_entries; } @@ -949,9 +956,10 @@ namespace MatrixFreeOperators const LinearAlgebra::distributed::Vector &src, const Number omega) const { - Assert(inverse_diagonal_entries.m() > 0, ExcNotInitialized()); - inverse_diagonal_entries.vmult(dst,src); - dst*= omega; + Assert(inverse_diagonal_entries.get() && + inverse_diagonal_entries->m() > 0, ExcNotInitialized()); + inverse_diagonal_entries->vmult(dst,src); + dst *= omega; } @@ -974,23 +982,23 @@ namespace MatrixFreeOperators { Assert((Base::data != NULL), ExcNotInitialized()); + this->inverse_diagonal_entries. + reset(new DiagonalMatrix >()); + LinearAlgebra::distributed::Vector &inverse_diagonal_vector = this->inverse_diagonal_entries->get_vector(); LinearAlgebra::distributed::Vector ones; - LinearAlgebra::distributed::Vector &inverse_diagonal_entries = Base::inverse_diagonal_entries.get_vector(); this->initialize_dof_vector(ones); - this->initialize_dof_vector(inverse_diagonal_entries); + this->initialize_dof_vector(inverse_diagonal_vector); ones = 1.; - ones.update_ghost_values(); - apply_add(inverse_diagonal_entries, ones); + apply_add(inverse_diagonal_vector, ones); - this->set_constrained_entries_to_one(inverse_diagonal_entries); + this->set_constrained_entries_to_one(inverse_diagonal_vector); - const unsigned int local_size = inverse_diagonal_entries.local_size(); + const unsigned int local_size = inverse_diagonal_vector.local_size(); for (unsigned int i=0; i::data != NULL), ExcNotInitialized()); unsigned int dummy = 0; - LinearAlgebra::distributed::Vector &inverse_diagonal_entries = Base::inverse_diagonal_entries.get_vector(); - this->initialize_dof_vector(inverse_diagonal_entries); - Base:: - data->cell_loop (&LaplaceOperator::local_diagonal_cell, - this, inverse_diagonal_entries, dummy); - - this->set_constrained_entries_to_one(inverse_diagonal_entries); - - for (unsigned int i=0; i std::sqrt(std::numeric_limits::epsilon())) - inverse_diagonal_entries.local_element(i) = 1./inverse_diagonal_entries.local_element(i); + this->inverse_diagonal_entries. + reset(new DiagonalMatrix >()); + LinearAlgebra::distributed::Vector &inverse_diagonal_vector = this->inverse_diagonal_entries->get_vector(); + this->initialize_dof_vector(inverse_diagonal_vector); + + this->data->cell_loop (&LaplaceOperator::local_diagonal_cell, + this, inverse_diagonal_vector, dummy); + this->set_constrained_entries_to_one(inverse_diagonal_vector); + + for (unsigned int i=0; i std::sqrt(std::numeric_limits::epsilon())) + inverse_diagonal_vector.local_element(i) = 1./inverse_diagonal_vector.local_element(i); else - inverse_diagonal_entries.local_element(i) = 1.; + inverse_diagonal_vector.local_element(i) = 1.; - inverse_diagonal_entries.compress(VectorOperation::insert); - inverse_diagonal_entries.update_ghost_values(); + inverse_diagonal_vector.update_ghost_values(); } diff --git a/tests/matrix_free/mass_operator_02.cc b/tests/matrix_free/mass_operator_02.cc index b082200bd5..34a3c0c38f 100644 --- a/tests/matrix_free/mass_operator_02.cc +++ b/tests/matrix_free/mass_operator_02.cc @@ -84,7 +84,7 @@ void test () mf.initialize(mf_data); mf.compute_diagonal(); const LinearAlgebra::distributed::Vector &diagonal - = mf.get_matrix_diagonal_inverse().get_vector(); + = mf.get_matrix_diagonal_inverse()->get_vector(); LinearAlgebra::distributed::Vector in, out, ref; mf_data.initialize_dof_vector (in); @@ -191,4 +191,3 @@ int main (int argc, char **argv) test<3,2>(); deallog.pop(); } - diff --git a/tests/matrix_free/parallel_multigrid.with_mpi=true.with_p4est=true.mpirun=3.output b/tests/matrix_free/parallel_multigrid.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=3.output similarity index 73% rename from tests/matrix_free/parallel_multigrid.with_mpi=true.with_p4est=true.mpirun=3.output rename to tests/matrix_free/parallel_multigrid.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=3.output index c1311be955..81a324f2c7 100644 --- a/tests/matrix_free/parallel_multigrid.with_mpi=true.with_p4est=true.mpirun=3.output +++ b/tests/matrix_free/parallel_multigrid.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=3.output @@ -2,31 +2,31 @@ DEAL:2d::Testing FE_Q<2>(1) DEAL:2d::Number of degrees of freedom: 81 DEAL:2d:cg::Starting value 9.000 -DEAL:2d:cg:cg::Starting value 0.009355 +DEAL:2d:cg:cg::Starting value 0.009350 DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 6.428e-06 +DEAL:2d:cg:cg::Starting value 6.469e-06 DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 6.896e-08 +DEAL:2d:cg:cg::Starting value 6.921e-08 DEAL:2d:cg:cg::Convergence step 1 value 0 DEAL:2d:cg::Convergence step 3 value 4.626e-07 DEAL:2d::Testing FE_Q<2>(1) DEAL:2d::Number of degrees of freedom: 289 DEAL:2d:cg::Starting value 17.00 -DEAL:2d:cg:cg::Starting value 0.02710 +DEAL:2d:cg:cg::Starting value 0.02703 DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 5.173e-06 +DEAL:2d:cg:cg::Starting value 5.170e-06 DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 7.863e-10 +DEAL:2d:cg:cg::Starting value 8.499e-10 DEAL:2d:cg:cg::Convergence step 1 value 0 DEAL:2d:cg::Convergence step 3 value 3.600e-07 DEAL:2d::Testing FE_Q<2>(1) DEAL:2d::Number of degrees of freedom: 1089 DEAL:2d:cg::Starting value 33.00 -DEAL:2d:cg:cg::Starting value 0.09750 +DEAL:2d:cg:cg::Starting value 0.09751 DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 2.792e-06 +DEAL:2d:cg:cg::Starting value 2.794e-06 DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 1.110e-07 +DEAL:2d:cg:cg::Starting value 1.111e-07 DEAL:2d:cg:cg::Convergence step 1 value 0 DEAL:2d:cg:cg::Starting value 1.758e-10 DEAL:2d:cg:cg::Convergence step 1 value 0 @@ -34,39 +34,39 @@ DEAL:2d:cg::Convergence step 4 value 1.484e-08 DEAL:2d::Testing FE_Q<2>(2) DEAL:2d::Number of degrees of freedom: 289 DEAL:2d:cg::Starting value 17.00 -DEAL:2d:cg:cg::Starting value 0.6907 +DEAL:2d:cg:cg::Starting value 0.5165 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 0.0001064 +DEAL:2d:cg:cg::Starting value 7.798e-05 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 6.439e-07 +DEAL:2d:cg:cg::Starting value 4.794e-07 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 1.579e-09 +DEAL:2d:cg:cg::Starting value 1.177e-09 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg::Convergence step 4 value 1.405e-08 +DEAL:2d:cg::Convergence step 4 value 1.404e-08 DEAL:2d::Testing FE_Q<2>(2) DEAL:2d::Number of degrees of freedom: 1089 DEAL:2d:cg::Starting value 33.00 -DEAL:2d:cg:cg::Starting value 2.631 +DEAL:2d:cg:cg::Starting value 1.948 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 0.0001068 +DEAL:2d:cg:cg::Starting value 7.876e-05 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 1.290e-06 +DEAL:2d:cg:cg::Starting value 9.527e-07 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 2.685e-09 +DEAL:2d:cg:cg::Starting value 1.973e-09 DEAL:2d:cg:cg::Convergence step 2 value 0 DEAL:2d:cg::Convergence step 4 value 1.627e-08 DEAL:2d::Testing FE_Q<2>(2) DEAL:2d::Number of degrees of freedom: 4225 DEAL:2d:cg::Starting value 65.00 -DEAL:2d:cg:cg::Starting value 10.37 +DEAL:2d:cg:cg::Starting value 7.684 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 0.0005721 +DEAL:2d:cg:cg::Starting value 0.0004225 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 7.479e-07 +DEAL:2d:cg:cg::Starting value 5.550e-07 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 1.098e-08 +DEAL:2d:cg:cg::Starting value 8.109e-09 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg::Convergence step 4 value 3.011e-08 +DEAL:2d:cg::Convergence step 4 value 3.009e-08 DEAL:3d::Testing FE_Q<3>(1) DEAL:3d::Number of degrees of freedom: 125 DEAL:3d:cg::Starting value 11.18 @@ -80,7 +80,7 @@ DEAL:3d:cg::Convergence step 3 value 9.022e-09 DEAL:3d::Testing FE_Q<3>(1) DEAL:3d::Number of degrees of freedom: 729 DEAL:3d:cg::Starting value 27.00 -DEAL:3d:cg:cg::Starting value 0.03499 +DEAL:3d:cg:cg::Starting value 0.03500 DEAL:3d:cg:cg::Convergence step 1 value 0 DEAL:3d:cg:cg::Starting value 0.0002870 DEAL:3d:cg:cg::Convergence step 1 value 0 @@ -90,13 +90,13 @@ DEAL:3d:cg::Convergence step 3 value 1.327e-06 DEAL:3d::Testing FE_Q<3>(1) DEAL:3d::Number of degrees of freedom: 4913 DEAL:3d:cg::Starting value 70.09 -DEAL:3d:cg:cg::Starting value 0.06180 +DEAL:3d:cg:cg::Starting value 0.06187 DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 7.869e-05 +DEAL:3d:cg:cg::Starting value 7.842e-05 DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 1.067e-06 +DEAL:3d:cg:cg::Starting value 1.062e-06 DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 1.447e-09 +DEAL:3d:cg:cg::Starting value 1.441e-09 DEAL:3d:cg:cg::Convergence step 1 value 0 DEAL:3d:cg::Convergence step 4 value 6.374e-08 DEAL:3d::Testing FE_Q<3>(2) @@ -104,19 +104,19 @@ DEAL:3d::Number of degrees of freedom: 729 DEAL:3d:cg::Starting value 27.00 DEAL:3d:cg:cg::Starting value 1.155 DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 0.0001367 +DEAL:3d:cg:cg::Starting value 0.0001365 DEAL:3d:cg:cg::Convergence step 2 value 0 DEAL:3d:cg:cg::Starting value 1.471e-07 DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg::Convergence step 3 value 5.042e-08 +DEAL:3d:cg::Convergence step 3 value 5.041e-08 DEAL:3d::Testing FE_Q<3>(2) DEAL:3d::Number of degrees of freedom: 4913 DEAL:3d:cg::Starting value 70.09 -DEAL:3d:cg:cg::Starting value 6.475 +DEAL:3d:cg:cg::Starting value 6.474 DEAL:3d:cg:cg::Convergence step 2 value 0 DEAL:3d:cg:cg::Starting value 0.0005841 DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 2.220e-06 +DEAL:3d:cg:cg::Starting value 2.219e-06 DEAL:3d:cg:cg::Convergence step 2 value 0 DEAL:3d:cg::Convergence step 3 value 2.560e-06 DEAL:3d::Testing FE_Q<3>(2) @@ -124,8 +124,8 @@ DEAL:3d::Number of degrees of freedom: 35937 DEAL:3d:cg::Starting value 189.6 DEAL:3d:cg:cg::Starting value 47.62 DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 0.006358 +DEAL:3d:cg:cg::Starting value 0.006356 DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 8.274e-06 +DEAL:3d:cg:cg::Starting value 8.271e-06 DEAL:3d:cg:cg::Convergence step 2 value 0 DEAL:3d:cg::Convergence step 3 value 1.007e-05 diff --git a/tests/matrix_free/parallel_multigrid.with_mpi=true.with_p4est=true.mpirun=7.output b/tests/matrix_free/parallel_multigrid.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=7.output similarity index 73% rename from tests/matrix_free/parallel_multigrid.with_mpi=true.with_p4est=true.mpirun=7.output rename to tests/matrix_free/parallel_multigrid.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=7.output index c1311be955..81a324f2c7 100644 --- a/tests/matrix_free/parallel_multigrid.with_mpi=true.with_p4est=true.mpirun=7.output +++ b/tests/matrix_free/parallel_multigrid.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=7.output @@ -2,31 +2,31 @@ DEAL:2d::Testing FE_Q<2>(1) DEAL:2d::Number of degrees of freedom: 81 DEAL:2d:cg::Starting value 9.000 -DEAL:2d:cg:cg::Starting value 0.009355 +DEAL:2d:cg:cg::Starting value 0.009350 DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 6.428e-06 +DEAL:2d:cg:cg::Starting value 6.469e-06 DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 6.896e-08 +DEAL:2d:cg:cg::Starting value 6.921e-08 DEAL:2d:cg:cg::Convergence step 1 value 0 DEAL:2d:cg::Convergence step 3 value 4.626e-07 DEAL:2d::Testing FE_Q<2>(1) DEAL:2d::Number of degrees of freedom: 289 DEAL:2d:cg::Starting value 17.00 -DEAL:2d:cg:cg::Starting value 0.02710 +DEAL:2d:cg:cg::Starting value 0.02703 DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 5.173e-06 +DEAL:2d:cg:cg::Starting value 5.170e-06 DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 7.863e-10 +DEAL:2d:cg:cg::Starting value 8.499e-10 DEAL:2d:cg:cg::Convergence step 1 value 0 DEAL:2d:cg::Convergence step 3 value 3.600e-07 DEAL:2d::Testing FE_Q<2>(1) DEAL:2d::Number of degrees of freedom: 1089 DEAL:2d:cg::Starting value 33.00 -DEAL:2d:cg:cg::Starting value 0.09750 +DEAL:2d:cg:cg::Starting value 0.09751 DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 2.792e-06 +DEAL:2d:cg:cg::Starting value 2.794e-06 DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 1.110e-07 +DEAL:2d:cg:cg::Starting value 1.111e-07 DEAL:2d:cg:cg::Convergence step 1 value 0 DEAL:2d:cg:cg::Starting value 1.758e-10 DEAL:2d:cg:cg::Convergence step 1 value 0 @@ -34,39 +34,39 @@ DEAL:2d:cg::Convergence step 4 value 1.484e-08 DEAL:2d::Testing FE_Q<2>(2) DEAL:2d::Number of degrees of freedom: 289 DEAL:2d:cg::Starting value 17.00 -DEAL:2d:cg:cg::Starting value 0.6907 +DEAL:2d:cg:cg::Starting value 0.5165 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 0.0001064 +DEAL:2d:cg:cg::Starting value 7.798e-05 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 6.439e-07 +DEAL:2d:cg:cg::Starting value 4.794e-07 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 1.579e-09 +DEAL:2d:cg:cg::Starting value 1.177e-09 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg::Convergence step 4 value 1.405e-08 +DEAL:2d:cg::Convergence step 4 value 1.404e-08 DEAL:2d::Testing FE_Q<2>(2) DEAL:2d::Number of degrees of freedom: 1089 DEAL:2d:cg::Starting value 33.00 -DEAL:2d:cg:cg::Starting value 2.631 +DEAL:2d:cg:cg::Starting value 1.948 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 0.0001068 +DEAL:2d:cg:cg::Starting value 7.876e-05 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 1.290e-06 +DEAL:2d:cg:cg::Starting value 9.527e-07 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 2.685e-09 +DEAL:2d:cg:cg::Starting value 1.973e-09 DEAL:2d:cg:cg::Convergence step 2 value 0 DEAL:2d:cg::Convergence step 4 value 1.627e-08 DEAL:2d::Testing FE_Q<2>(2) DEAL:2d::Number of degrees of freedom: 4225 DEAL:2d:cg::Starting value 65.00 -DEAL:2d:cg:cg::Starting value 10.37 +DEAL:2d:cg:cg::Starting value 7.684 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 0.0005721 +DEAL:2d:cg:cg::Starting value 0.0004225 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 7.479e-07 +DEAL:2d:cg:cg::Starting value 5.550e-07 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 1.098e-08 +DEAL:2d:cg:cg::Starting value 8.109e-09 DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg::Convergence step 4 value 3.011e-08 +DEAL:2d:cg::Convergence step 4 value 3.009e-08 DEAL:3d::Testing FE_Q<3>(1) DEAL:3d::Number of degrees of freedom: 125 DEAL:3d:cg::Starting value 11.18 @@ -80,7 +80,7 @@ DEAL:3d:cg::Convergence step 3 value 9.022e-09 DEAL:3d::Testing FE_Q<3>(1) DEAL:3d::Number of degrees of freedom: 729 DEAL:3d:cg::Starting value 27.00 -DEAL:3d:cg:cg::Starting value 0.03499 +DEAL:3d:cg:cg::Starting value 0.03500 DEAL:3d:cg:cg::Convergence step 1 value 0 DEAL:3d:cg:cg::Starting value 0.0002870 DEAL:3d:cg:cg::Convergence step 1 value 0 @@ -90,13 +90,13 @@ DEAL:3d:cg::Convergence step 3 value 1.327e-06 DEAL:3d::Testing FE_Q<3>(1) DEAL:3d::Number of degrees of freedom: 4913 DEAL:3d:cg::Starting value 70.09 -DEAL:3d:cg:cg::Starting value 0.06180 +DEAL:3d:cg:cg::Starting value 0.06187 DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 7.869e-05 +DEAL:3d:cg:cg::Starting value 7.842e-05 DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 1.067e-06 +DEAL:3d:cg:cg::Starting value 1.062e-06 DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 1.447e-09 +DEAL:3d:cg:cg::Starting value 1.441e-09 DEAL:3d:cg:cg::Convergence step 1 value 0 DEAL:3d:cg::Convergence step 4 value 6.374e-08 DEAL:3d::Testing FE_Q<3>(2) @@ -104,19 +104,19 @@ DEAL:3d::Number of degrees of freedom: 729 DEAL:3d:cg::Starting value 27.00 DEAL:3d:cg:cg::Starting value 1.155 DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 0.0001367 +DEAL:3d:cg:cg::Starting value 0.0001365 DEAL:3d:cg:cg::Convergence step 2 value 0 DEAL:3d:cg:cg::Starting value 1.471e-07 DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg::Convergence step 3 value 5.042e-08 +DEAL:3d:cg::Convergence step 3 value 5.041e-08 DEAL:3d::Testing FE_Q<3>(2) DEAL:3d::Number of degrees of freedom: 4913 DEAL:3d:cg::Starting value 70.09 -DEAL:3d:cg:cg::Starting value 6.475 +DEAL:3d:cg:cg::Starting value 6.474 DEAL:3d:cg:cg::Convergence step 2 value 0 DEAL:3d:cg:cg::Starting value 0.0005841 DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 2.220e-06 +DEAL:3d:cg:cg::Starting value 2.219e-06 DEAL:3d:cg:cg::Convergence step 2 value 0 DEAL:3d:cg::Convergence step 3 value 2.560e-06 DEAL:3d::Testing FE_Q<3>(2) @@ -124,8 +124,8 @@ DEAL:3d::Number of degrees of freedom: 35937 DEAL:3d:cg::Starting value 189.6 DEAL:3d:cg:cg::Starting value 47.62 DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 0.006358 +DEAL:3d:cg:cg::Starting value 0.006356 DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 8.274e-06 +DEAL:3d:cg:cg::Starting value 8.271e-06 DEAL:3d:cg:cg::Convergence step 2 value 0 DEAL:3d:cg::Convergence step 3 value 1.007e-05 diff --git a/tests/matrix_free/parallel_multigrid_02.cc b/tests/matrix_free/parallel_multigrid_02.cc index 62394c9466..d3c49daaa0 100644 --- a/tests/matrix_free/parallel_multigrid_02.cc +++ b/tests/matrix_free/parallel_multigrid_02.cc @@ -35,9 +35,8 @@ #include #include -#include +#include #include -#include #include #include @@ -48,36 +47,6 @@ std::ofstream logfile("output"); -template -class MGTransferPrebuiltMF : public MGTransferPrebuilt > -{ -public: - MGTransferPrebuiltMF(const MGLevelObject &laplace) - : - laplace_operator (laplace) - {}; - - /** - * Overload copy_to_mg from MGTransferPrebuilt to get the vectors compatible - * with MatrixFree and bypass the crude initialization in MGTransferPrebuilt - */ - template - void - copy_to_mg (const DoFHandler &mg_dof, - MGLevelObject > &dst, - const InVector &src) const - { - for (unsigned int level=dst.min_level(); - level<=dst.max_level(); ++level) - laplace_operator[level].initialize_dof_vector(dst[level]); - MGTransferPrebuilt >::copy_to_mg(mg_dof, dst, src); - } - -private: - const MGLevelObject &laplace_operator; -}; - - template class MGCoarseIterative : public MGCoarseGridBase > @@ -194,8 +163,8 @@ void do_test (const DoFHandler &dof) mg_matrices[level].compute_diagonal(); } - MGTransferPrebuiltMF mg_transfer(mg_matrices); - mg_transfer.build_matrices(dof); + MGTransferMatrixFree mg_transfer(mg_constrained_dofs); + mg_transfer.build(dof); MGCoarseIterative mg_coarse; mg_coarse.initialize(mg_matrices[0]); @@ -211,10 +180,7 @@ void do_test (const DoFHandler &dof) smoother_data[level].smoothing_range = 15.; smoother_data[level].degree = 5; smoother_data[level].eig_cg_n_iterations = 15; - smoother_data[level].preconditioner. - reset(new DiagonalMatrix >()); - *smoother_data[level].preconditioner = - mg_matrices[level].get_matrix_diagonal_inverse(); + smoother_data[level].preconditioner = mg_matrices[level].get_matrix_diagonal_inverse(); } mg_smoother.initialize(mg_matrices, smoother_data); @@ -228,7 +194,7 @@ void do_test (const DoFHandler &dof) mg_smoother, mg_smoother); PreconditionMG, - MGTransferPrebuiltMF > + MGTransferMatrixFree > preconditioner(dof, mg, mg_transfer); { diff --git a/tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.mpirun=3.output b/tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.mpirun=3.output deleted file mode 100644 index c1311be955..0000000000 --- a/tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.mpirun=3.output +++ /dev/null @@ -1,131 +0,0 @@ - -DEAL:2d::Testing FE_Q<2>(1) -DEAL:2d::Number of degrees of freedom: 81 -DEAL:2d:cg::Starting value 9.000 -DEAL:2d:cg:cg::Starting value 0.009355 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 6.428e-06 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 6.896e-08 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg::Convergence step 3 value 4.626e-07 -DEAL:2d::Testing FE_Q<2>(1) -DEAL:2d::Number of degrees of freedom: 289 -DEAL:2d:cg::Starting value 17.00 -DEAL:2d:cg:cg::Starting value 0.02710 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 5.173e-06 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 7.863e-10 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg::Convergence step 3 value 3.600e-07 -DEAL:2d::Testing FE_Q<2>(1) -DEAL:2d::Number of degrees of freedom: 1089 -DEAL:2d:cg::Starting value 33.00 -DEAL:2d:cg:cg::Starting value 0.09750 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 2.792e-06 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 1.110e-07 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 1.758e-10 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg::Convergence step 4 value 1.484e-08 -DEAL:2d::Testing FE_Q<2>(2) -DEAL:2d::Number of degrees of freedom: 289 -DEAL:2d:cg::Starting value 17.00 -DEAL:2d:cg:cg::Starting value 0.6907 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 0.0001064 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 6.439e-07 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 1.579e-09 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg::Convergence step 4 value 1.405e-08 -DEAL:2d::Testing FE_Q<2>(2) -DEAL:2d::Number of degrees of freedom: 1089 -DEAL:2d:cg::Starting value 33.00 -DEAL:2d:cg:cg::Starting value 2.631 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 0.0001068 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 1.290e-06 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 2.685e-09 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg::Convergence step 4 value 1.627e-08 -DEAL:2d::Testing FE_Q<2>(2) -DEAL:2d::Number of degrees of freedom: 4225 -DEAL:2d:cg::Starting value 65.00 -DEAL:2d:cg:cg::Starting value 10.37 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 0.0005721 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 7.479e-07 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 1.098e-08 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg::Convergence step 4 value 3.011e-08 -DEAL:3d::Testing FE_Q<3>(1) -DEAL:3d::Number of degrees of freedom: 125 -DEAL:3d:cg::Starting value 11.18 -DEAL:3d:cg:cg::Starting value 0.1410 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 6.992e-05 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 4.858e-09 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg::Convergence step 3 value 9.022e-09 -DEAL:3d::Testing FE_Q<3>(1) -DEAL:3d::Number of degrees of freedom: 729 -DEAL:3d:cg::Starting value 27.00 -DEAL:3d:cg:cg::Starting value 0.03499 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 0.0002870 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 1.473e-07 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg::Convergence step 3 value 1.327e-06 -DEAL:3d::Testing FE_Q<3>(1) -DEAL:3d::Number of degrees of freedom: 4913 -DEAL:3d:cg::Starting value 70.09 -DEAL:3d:cg:cg::Starting value 0.06180 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 7.869e-05 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 1.067e-06 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 1.447e-09 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg::Convergence step 4 value 6.374e-08 -DEAL:3d::Testing FE_Q<3>(2) -DEAL:3d::Number of degrees of freedom: 729 -DEAL:3d:cg::Starting value 27.00 -DEAL:3d:cg:cg::Starting value 1.155 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 0.0001367 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 1.471e-07 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg::Convergence step 3 value 5.042e-08 -DEAL:3d::Testing FE_Q<3>(2) -DEAL:3d::Number of degrees of freedom: 4913 -DEAL:3d:cg::Starting value 70.09 -DEAL:3d:cg:cg::Starting value 6.475 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 0.0005841 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 2.220e-06 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg::Convergence step 3 value 2.560e-06 -DEAL:3d::Testing FE_Q<3>(2) -DEAL:3d::Number of degrees of freedom: 35937 -DEAL:3d:cg::Starting value 189.6 -DEAL:3d:cg:cg::Starting value 47.62 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 0.006358 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 8.274e-06 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg::Convergence step 3 value 1.007e-05 diff --git a/tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.mpirun=7.output b/tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.mpirun=7.output deleted file mode 100644 index c1311be955..0000000000 --- a/tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.mpirun=7.output +++ /dev/null @@ -1,131 +0,0 @@ - -DEAL:2d::Testing FE_Q<2>(1) -DEAL:2d::Number of degrees of freedom: 81 -DEAL:2d:cg::Starting value 9.000 -DEAL:2d:cg:cg::Starting value 0.009355 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 6.428e-06 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 6.896e-08 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg::Convergence step 3 value 4.626e-07 -DEAL:2d::Testing FE_Q<2>(1) -DEAL:2d::Number of degrees of freedom: 289 -DEAL:2d:cg::Starting value 17.00 -DEAL:2d:cg:cg::Starting value 0.02710 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 5.173e-06 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 7.863e-10 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg::Convergence step 3 value 3.600e-07 -DEAL:2d::Testing FE_Q<2>(1) -DEAL:2d::Number of degrees of freedom: 1089 -DEAL:2d:cg::Starting value 33.00 -DEAL:2d:cg:cg::Starting value 0.09750 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 2.792e-06 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 1.110e-07 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg:cg::Starting value 1.758e-10 -DEAL:2d:cg:cg::Convergence step 1 value 0 -DEAL:2d:cg::Convergence step 4 value 1.484e-08 -DEAL:2d::Testing FE_Q<2>(2) -DEAL:2d::Number of degrees of freedom: 289 -DEAL:2d:cg::Starting value 17.00 -DEAL:2d:cg:cg::Starting value 0.6907 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 0.0001064 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 6.439e-07 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 1.579e-09 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg::Convergence step 4 value 1.405e-08 -DEAL:2d::Testing FE_Q<2>(2) -DEAL:2d::Number of degrees of freedom: 1089 -DEAL:2d:cg::Starting value 33.00 -DEAL:2d:cg:cg::Starting value 2.631 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 0.0001068 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 1.290e-06 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 2.685e-09 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg::Convergence step 4 value 1.627e-08 -DEAL:2d::Testing FE_Q<2>(2) -DEAL:2d::Number of degrees of freedom: 4225 -DEAL:2d:cg::Starting value 65.00 -DEAL:2d:cg:cg::Starting value 10.37 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 0.0005721 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 7.479e-07 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg:cg::Starting value 1.098e-08 -DEAL:2d:cg:cg::Convergence step 2 value 0 -DEAL:2d:cg::Convergence step 4 value 3.011e-08 -DEAL:3d::Testing FE_Q<3>(1) -DEAL:3d::Number of degrees of freedom: 125 -DEAL:3d:cg::Starting value 11.18 -DEAL:3d:cg:cg::Starting value 0.1410 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 6.992e-05 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 4.858e-09 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg::Convergence step 3 value 9.022e-09 -DEAL:3d::Testing FE_Q<3>(1) -DEAL:3d::Number of degrees of freedom: 729 -DEAL:3d:cg::Starting value 27.00 -DEAL:3d:cg:cg::Starting value 0.03499 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 0.0002870 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 1.473e-07 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg::Convergence step 3 value 1.327e-06 -DEAL:3d::Testing FE_Q<3>(1) -DEAL:3d::Number of degrees of freedom: 4913 -DEAL:3d:cg::Starting value 70.09 -DEAL:3d:cg:cg::Starting value 0.06180 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 7.869e-05 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 1.067e-06 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg:cg::Starting value 1.447e-09 -DEAL:3d:cg:cg::Convergence step 1 value 0 -DEAL:3d:cg::Convergence step 4 value 6.374e-08 -DEAL:3d::Testing FE_Q<3>(2) -DEAL:3d::Number of degrees of freedom: 729 -DEAL:3d:cg::Starting value 27.00 -DEAL:3d:cg:cg::Starting value 1.155 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 0.0001367 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 1.471e-07 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg::Convergence step 3 value 5.042e-08 -DEAL:3d::Testing FE_Q<3>(2) -DEAL:3d::Number of degrees of freedom: 4913 -DEAL:3d:cg::Starting value 70.09 -DEAL:3d:cg:cg::Starting value 6.475 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 0.0005841 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 2.220e-06 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg::Convergence step 3 value 2.560e-06 -DEAL:3d::Testing FE_Q<3>(2) -DEAL:3d::Number of degrees of freedom: 35937 -DEAL:3d:cg::Starting value 189.6 -DEAL:3d:cg:cg::Starting value 47.62 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 0.006358 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg:cg::Starting value 8.274e-06 -DEAL:3d:cg:cg::Convergence step 2 value 0 -DEAL:3d:cg::Convergence step 3 value 1.007e-05 diff --git a/tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=3.output b/tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=3.output new file mode 100644 index 0000000000..f4dd586dfe --- /dev/null +++ b/tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=3.output @@ -0,0 +1,103 @@ + +DEAL:2d::Testing FE_Q<2>(1) +DEAL:2d::Number of degrees of freedom: 81 +DEAL:2d:cg::Starting value 9.000 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg::Convergence step 3 value 3.519e-08 +DEAL:2d::Testing FE_Q<2>(1) +DEAL:2d::Number of degrees of freedom: 289 +DEAL:2d:cg::Starting value 17.00 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg::Convergence step 3 value 3.003e-08 +DEAL:2d::Testing FE_Q<2>(1) +DEAL:2d::Number of degrees of freedom: 1089 +DEAL:2d:cg::Starting value 33.00 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg::Convergence step 3 value 1.234e-06 +DEAL:2d::Testing FE_Q<2>(2) +DEAL:2d::Number of degrees of freedom: 289 +DEAL:2d:cg::Starting value 17.00 +DEAL:2d:cg:cg::Starting value 0.5046 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg:cg::Starting value 0.0001009 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg:cg::Starting value 2.390e-07 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg::Convergence step 3 value 2.836e-07 +DEAL:2d::Testing FE_Q<2>(2) +DEAL:2d::Number of degrees of freedom: 1089 +DEAL:2d:cg::Starting value 33.00 +DEAL:2d:cg:cg::Starting value 1.907 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg:cg::Starting value 0.0001557 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg:cg::Starting value 2.528e-08 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg::Convergence step 3 value 7.105e-07 +DEAL:2d::Testing FE_Q<2>(2) +DEAL:2d::Number of degrees of freedom: 4225 +DEAL:2d:cg::Starting value 65.00 +DEAL:2d:cg:cg::Starting value 7.521 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg:cg::Starting value 0.0004595 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg:cg::Starting value 4.621e-07 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg::Convergence step 3 value 1.709e-06 +DEAL:3d::Testing FE_Q<3>(1) +DEAL:3d::Number of degrees of freedom: 125 +DEAL:3d:cg::Starting value 11.18 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg::Convergence step 3 value 9.585e-10 +DEAL:3d::Testing FE_Q<3>(1) +DEAL:3d::Number of degrees of freedom: 729 +DEAL:3d:cg::Starting value 27.00 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg::Convergence step 3 value 1.302e-07 +DEAL:3d::Testing FE_Q<3>(1) +DEAL:3d::Number of degrees of freedom: 4913 +DEAL:3d:cg::Starting value 70.09 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg::Convergence step 3 value 1.260e-07 +DEAL:3d::Testing FE_Q<3>(2) +DEAL:3d::Number of degrees of freedom: 729 +DEAL:3d:cg::Starting value 27.00 +DEAL:3d:cg:cg::Starting value 1.111 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg:cg::Starting value 4.641e-05 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg:cg::Starting value 1.161e-07 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg::Convergence step 3 value 2.867e-08 +DEAL:3d::Testing FE_Q<3>(2) +DEAL:3d::Number of degrees of freedom: 4913 +DEAL:3d:cg::Starting value 70.09 +DEAL:3d:cg:cg::Starting value 6.226 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg:cg::Starting value 0.0006131 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg:cg::Starting value 1.964e-06 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg::Convergence step 3 value 1.131e-06 +DEAL:3d::Testing FE_Q<3>(2) +DEAL:3d::Number of degrees of freedom: 35937 +DEAL:3d:cg::Starting value 189.6 +DEAL:3d:cg:cg::Starting value 45.82 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg:cg::Starting value 0.006222 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg:cg::Starting value 8.361e-06 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg::Convergence step 3 value 5.576e-06 diff --git a/tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=7.output b/tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=7.output new file mode 100644 index 0000000000..f4dd586dfe --- /dev/null +++ b/tests/matrix_free/parallel_multigrid_02.with_mpi=true.with_p4est=true.with_trilinos=true.mpirun=7.output @@ -0,0 +1,103 @@ + +DEAL:2d::Testing FE_Q<2>(1) +DEAL:2d::Number of degrees of freedom: 81 +DEAL:2d:cg::Starting value 9.000 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg::Convergence step 3 value 3.519e-08 +DEAL:2d::Testing FE_Q<2>(1) +DEAL:2d::Number of degrees of freedom: 289 +DEAL:2d:cg::Starting value 17.00 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg::Convergence step 3 value 3.003e-08 +DEAL:2d::Testing FE_Q<2>(1) +DEAL:2d::Number of degrees of freedom: 1089 +DEAL:2d:cg::Starting value 33.00 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg:cg::Convergence step 0 value 0 +DEAL:2d:cg::Convergence step 3 value 1.234e-06 +DEAL:2d::Testing FE_Q<2>(2) +DEAL:2d::Number of degrees of freedom: 289 +DEAL:2d:cg::Starting value 17.00 +DEAL:2d:cg:cg::Starting value 0.5046 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg:cg::Starting value 0.0001009 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg:cg::Starting value 2.390e-07 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg::Convergence step 3 value 2.836e-07 +DEAL:2d::Testing FE_Q<2>(2) +DEAL:2d::Number of degrees of freedom: 1089 +DEAL:2d:cg::Starting value 33.00 +DEAL:2d:cg:cg::Starting value 1.907 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg:cg::Starting value 0.0001557 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg:cg::Starting value 2.528e-08 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg::Convergence step 3 value 7.105e-07 +DEAL:2d::Testing FE_Q<2>(2) +DEAL:2d::Number of degrees of freedom: 4225 +DEAL:2d:cg::Starting value 65.00 +DEAL:2d:cg:cg::Starting value 7.521 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg:cg::Starting value 0.0004595 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg:cg::Starting value 4.621e-07 +DEAL:2d:cg:cg::Convergence step 1 value 0 +DEAL:2d:cg::Convergence step 3 value 1.709e-06 +DEAL:3d::Testing FE_Q<3>(1) +DEAL:3d::Number of degrees of freedom: 125 +DEAL:3d:cg::Starting value 11.18 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg::Convergence step 3 value 9.585e-10 +DEAL:3d::Testing FE_Q<3>(1) +DEAL:3d::Number of degrees of freedom: 729 +DEAL:3d:cg::Starting value 27.00 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg::Convergence step 3 value 1.302e-07 +DEAL:3d::Testing FE_Q<3>(1) +DEAL:3d::Number of degrees of freedom: 4913 +DEAL:3d:cg::Starting value 70.09 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg:cg::Convergence step 0 value 0 +DEAL:3d:cg::Convergence step 3 value 1.260e-07 +DEAL:3d::Testing FE_Q<3>(2) +DEAL:3d::Number of degrees of freedom: 729 +DEAL:3d:cg::Starting value 27.00 +DEAL:3d:cg:cg::Starting value 1.111 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg:cg::Starting value 4.641e-05 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg:cg::Starting value 1.161e-07 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg::Convergence step 3 value 2.867e-08 +DEAL:3d::Testing FE_Q<3>(2) +DEAL:3d::Number of degrees of freedom: 4913 +DEAL:3d:cg::Starting value 70.09 +DEAL:3d:cg:cg::Starting value 6.226 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg:cg::Starting value 0.0006131 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg:cg::Starting value 1.964e-06 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg::Convergence step 3 value 1.131e-06 +DEAL:3d::Testing FE_Q<3>(2) +DEAL:3d::Number of degrees of freedom: 35937 +DEAL:3d:cg::Starting value 189.6 +DEAL:3d:cg:cg::Starting value 45.82 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg:cg::Starting value 0.006222 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg:cg::Starting value 8.361e-06 +DEAL:3d:cg:cg::Convergence step 1 value 0 +DEAL:3d:cg::Convergence step 3 value 5.576e-06 diff --git a/tests/matrix_free/parallel_multigrid_adaptive_02.cc b/tests/matrix_free/parallel_multigrid_adaptive_02.cc index d2f2bd838c..1e99b8af18 100644 --- a/tests/matrix_free/parallel_multigrid_adaptive_02.cc +++ b/tests/matrix_free/parallel_multigrid_adaptive_02.cc @@ -262,10 +262,7 @@ void do_test (const DoFHandler &dof) smoother_data[level].smoothing_range = 15.; smoother_data[level].degree = 5; smoother_data[level].eig_cg_n_iterations = 15; - smoother_data[level].preconditioner. - reset(new DiagonalMatrix >()); - *smoother_data[level].preconditioner = - mg_matrices[level].get_matrix_diagonal_inverse(); + smoother_data[level].preconditioner = mg_matrices[level].get_matrix_diagonal_inverse(); } mg_smoother.initialize(mg_matrices, smoother_data); diff --git a/tests/matrix_free/parallel_multigrid_adaptive_04.cc b/tests/matrix_free/parallel_multigrid_adaptive_04.cc index a415d3f647..d23eec9f0f 100644 --- a/tests/matrix_free/parallel_multigrid_adaptive_04.cc +++ b/tests/matrix_free/parallel_multigrid_adaptive_04.cc @@ -261,10 +261,7 @@ void do_test (const DoFHandler &dof) smoother_data[level].smoothing_range = 15.; smoother_data[level].degree = 5; smoother_data[level].eig_cg_n_iterations = 15; - smoother_data[level].preconditioner. - reset(new DiagonalMatrix >()); - *smoother_data[level].preconditioner = - mg_matrices[level].get_matrix_diagonal_inverse(); + smoother_data[level].preconditioner = mg_matrices[level].get_matrix_diagonal_inverse(); } mg_smoother.initialize(mg_matrices, smoother_data); -- 2.39.5