/**
* Get read access to the inverse diagonal of this operator.
*/
- const DiagonalMatrix<LinearAlgebra::distributed::Vector<Number> > &get_matrix_diagonal_inverse() const;
+ const std_cxx11::shared_ptr<DiagonalMatrix<LinearAlgebra::distributed::Vector<Number> > > &
+ get_matrix_diagonal_inverse() const;
/**
* Apply the Jacobi preconditioner, which multiplies every element of the
SmartPointer<const MatrixFree<dim,Number>, Base<dim,Number> > 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<LinearAlgebra::distributed::Vector<Number> > inverse_diagonal_entries;
+ std_cxx11::shared_ptr<DiagonalMatrix<LinearAlgebra::distributed::Vector<Number> > > inverse_diagonal_entries;
private:
/**
* 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<Number> &vec) const;
};
Base<dim,Number>::clear ()
{
data = NULL;
- inverse_diagonal_entries.clear();
+ inverse_diagonal_entries.reset();
}
{
(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);
}
std::size_t
Base<dim,Number>::memory_consumption () const
{
- return inverse_diagonal_entries.memory_consumption();
+ return inverse_diagonal_entries.get() != NULL ? inverse_diagonal_entries->memory_consumption() : sizeof(*this);
}
template <int dim, typename Number>
- const DiagonalMatrix<LinearAlgebra::distributed::Vector<Number> > &
+ const std_cxx11::shared_ptr<DiagonalMatrix<LinearAlgebra::distributed::Vector<Number> > > &
Base<dim,Number>::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;
}
const LinearAlgebra::distributed::Vector<Number> &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;
}
{
Assert((Base<dim, Number>::data != NULL), ExcNotInitialized());
+ this->inverse_diagonal_entries.
+ reset(new DiagonalMatrix<LinearAlgebra::distributed::Vector<Number> >());
+ LinearAlgebra::distributed::Vector<Number> &inverse_diagonal_vector = this->inverse_diagonal_entries->get_vector();
LinearAlgebra::distributed::Vector<Number> ones;
- LinearAlgebra::distributed::Vector<Number> &inverse_diagonal_entries = Base<dim, Number>::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<local_size; ++i)
- inverse_diagonal_entries.local_element(i)
- =1./inverse_diagonal_entries.local_element(i);
+ inverse_diagonal_vector.local_element(i)
+ =1./inverse_diagonal_vector.local_element(i);
- inverse_diagonal_entries.compress(VectorOperation::insert);
- inverse_diagonal_entries.update_ghost_values();
+ inverse_diagonal_vector.update_ghost_values();
}
Assert((Base<dim, Number>::data != NULL), ExcNotInitialized());
unsigned int dummy = 0;
- LinearAlgebra::distributed::Vector<Number> &inverse_diagonal_entries = Base<dim,Number>::inverse_diagonal_entries.get_vector();
- this->initialize_dof_vector(inverse_diagonal_entries);
- Base<dim,Number>::
- 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<inverse_diagonal_entries.local_size(); ++i)
- if (std::abs(inverse_diagonal_entries.local_element(i)) > std::sqrt(std::numeric_limits<Number>::epsilon()))
- inverse_diagonal_entries.local_element(i) = 1./inverse_diagonal_entries.local_element(i);
+ this->inverse_diagonal_entries.
+ reset(new DiagonalMatrix<LinearAlgebra::distributed::Vector<Number> >());
+ LinearAlgebra::distributed::Vector<Number> &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<inverse_diagonal_vector.local_size(); ++i)
+ if (std::abs(inverse_diagonal_vector.local_element(i)) > std::sqrt(std::numeric_limits<Number>::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();
}
mf.initialize(mf_data);
mf.compute_diagonal();
const LinearAlgebra::distributed::Vector<double> &diagonal
- = mf.get_matrix_diagonal_inverse().get_vector();
+ = mf.get_matrix_diagonal_inverse()->get_vector();
LinearAlgebra::distributed::Vector<number> in, out, ref;
mf_data.initialize_dof_vector (in);
test<3,2>();
deallog.pop();
}
-
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
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
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
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)
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)
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
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
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
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
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)
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)
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
#include <deal.II/distributed/tria.h>
#include <deal.II/multigrid/multigrid.h>
-#include <deal.II/multigrid/mg_transfer.h>
+#include <deal.II/multigrid/mg_transfer_matrix_free.h>
#include <deal.II/multigrid/mg_tools.h>
-#include <deal.II/multigrid/mg_coarse.h>
#include <deal.II/multigrid/mg_smoother.h>
#include <deal.II/multigrid/mg_matrix.h>
std::ofstream logfile("output");
-template <typename MatrixType>
-class MGTransferPrebuiltMF : public MGTransferPrebuilt<LinearAlgebra::distributed::Vector<double> >
-{
-public:
- MGTransferPrebuiltMF(const MGLevelObject<MatrixType> &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 <int dim, class InVector, int spacedim>
- void
- copy_to_mg (const DoFHandler<dim,spacedim> &mg_dof,
- MGLevelObject<LinearAlgebra::distributed::Vector<double> > &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<LinearAlgebra::distributed::Vector<double> >::copy_to_mg(mg_dof, dst, src);
- }
-
-private:
- const MGLevelObject<MatrixType> &laplace_operator;
-};
-
-
template<typename MatrixType, typename Number>
class MGCoarseIterative : public MGCoarseGridBase<LinearAlgebra::distributed::Vector<Number> >
mg_matrices[level].compute_diagonal();
}
- MGTransferPrebuiltMF<LevelMatrixType> mg_transfer(mg_matrices);
- mg_transfer.build_matrices(dof);
+ MGTransferMatrixFree<dim,double> mg_transfer(mg_constrained_dofs);
+ mg_transfer.build(dof);
MGCoarseIterative<LevelMatrixType,number> mg_coarse;
mg_coarse.initialize(mg_matrices[0]);
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<LinearAlgebra::distributed::Vector<number> >());
- *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);
mg_smoother,
mg_smoother);
PreconditionMG<dim, LinearAlgebra::distributed::Vector<double>,
- MGTransferPrebuiltMF<LevelMatrixType> >
+ MGTransferMatrixFree<dim,double> >
preconditioner(dof, mg, mg_transfer);
{
+++ /dev/null
-
-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
+++ /dev/null
-
-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
--- /dev/null
+
+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
--- /dev/null
+
+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
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<LinearAlgebra::distributed::Vector<number> >());
- *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);
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<LinearAlgebra::distributed::Vector<number> >());
- *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);