--- /dev/null
+Removed: The deprecated functions DoFHandler::distribute_mg_dofs() and
+MGTransferPrebuilt::initialize_constraints() and deprecated constructors for
+MGSmootherBlock, MGTransferPrebuilt, MGTransferBlockBase and
+MGTransferBlockSelect have been removed.
+<br>
+(Daniel Arndt, 2020/03/27)
virtual void
distribute_dofs(const FiniteElement<dim, spacedim> &fe);
- /**
- * Distribute level degrees of freedom on each level for geometric
- * multigrid. The active DoFs need to be distributed using distribute_dofs()
- * before calling this function and the @p fe needs to be identical to the
- * finite element passed to distribute_dofs().
- *
- * @deprecated Use the version without parameter instead.
- */
- DEAL_II_DEPRECATED
- virtual void
- distribute_mg_dofs(const FiniteElement<dim, spacedim> &fe);
-
/**
* Distribute level degrees of freedom on each level for geometric
* multigrid. The active DoFs need to be distributed using distribute_dofs()
class MGSmootherBlock : public MGSmoother<BlockVector<number>>
{
public:
- /**
- * @deprecated Since GrowingVectorMemory now uses a joint memory pool, it is
- * recommended to use the constructor without the memory object.
- *
- * Constructor. Sets memory and smoothing parameters.
- */
- DEAL_II_DEPRECATED
- MGSmootherBlock(VectorMemory<BlockVector<number>> &mem,
- const unsigned int steps = 1,
- const bool variable = false,
- const bool symmetric = false,
- const bool transpose = false,
- const bool reverse = false);
-
/**
* Constructor.
*/
#ifndef DOXYGEN
-template <typename MatrixType, class RelaxationType, typename number>
-inline MGSmootherBlock<MatrixType, RelaxationType, number>::MGSmootherBlock(
- VectorMemory<BlockVector<number>> &mem,
- const unsigned int steps,
- const bool variable,
- const bool symmetric,
- const bool transpose,
- const bool reverse)
- : MGSmoother<BlockVector<number>>(steps, variable, symmetric, transpose)
- , reverse(reverse)
- , mem(&mem)
-{}
-
template <typename MatrixType, class RelaxationType, typename number>
inline MGSmootherBlock<MatrixType, RelaxationType, number>::MGSmootherBlock(
const unsigned int steps,
*/
MGTransferPrebuilt(const MGConstrainedDoFs &mg_constrained_dofs);
- /**
- * Constructor with constraints. Equivalent to the default constructor
- * followed by initialize_constraints().
- *
- * @deprecated @p constraints is unused.
- */
- DEAL_II_DEPRECATED
- MGTransferPrebuilt(const AffineConstraints<double> &constraints,
- const MGConstrainedDoFs & mg_constrained_dofs);
-
/**
* Destructor.
*/
void
initialize_constraints(const MGConstrainedDoFs &mg_constrained_dofs);
- /**
- * Initialize the constraints to be used in build().
- *
- * @deprecated @p constraints is unused.
- */
- DEAL_II_DEPRECATED
- void
- initialize_constraints(const AffineConstraints<double> &constraints,
- const MGConstrainedDoFs & mg_constrained_dofs);
-
/**
* Reset the object to the state it had right after the default constructor.
*/
*/
MGTransferBlockBase(const MGConstrainedDoFs &mg_constrained_dofs);
- /**
- * Constructor with constraint matrices as well as mg_constrained_dofs.
- *
- * @deprecated @p constraints is unused.
- */
- DEAL_II_DEPRECATED
- MGTransferBlockBase(const AffineConstraints<double> &constraints,
- const MGConstrainedDoFs & mg_constrained_dofs);
-
/**
* Memory used by this object.
*/
*/
MGTransferBlockSelect(const MGConstrainedDoFs &mg_constrained_dofs);
- /**
- * Constructor with constraint matrices as well as mg_constrained_dofs.
- *
- * @deprecated @p constraints is unused.
- */
- DEAL_II_DEPRECATED
- MGTransferBlockSelect(const AffineConstraints<double> &constraints,
- const MGConstrainedDoFs & mg_constrained_dofs);
-
/**
* Destructor.
*/
using vector_type = VectorType;
using const_vector_type = const VectorType;
- /**
- * Constructor. The DoFHandler is used to check whether the provided
- * minlevel and maxlevel are in the range of valid levels.
- * If maxlevel is set to the default value, the highest valid
- * level is used.
- * <tt>transfer</tt> is an object performing prolongation and
- * restriction.
- *
- * This function already initializes the vectors which will be used later in
- * the course of the computations. You should therefore create objects of
- * this type as late as possible.
- *
- * @deprecated Use the other constructor instead.
- * The DoFHandler is actually not needed.
- */
- template <int dim>
-#ifndef _MSC_VER
- DEAL_II_DEPRECATED
-#endif
- Multigrid(const DoFHandler<dim> & dof_handler,
- const MGMatrixBase<VectorType> & matrix,
- const MGCoarseGridBase<VectorType> &coarse,
- const MGTransferBase<VectorType> & transfer,
- const MGSmootherBase<VectorType> & pre_smooth,
- const MGSmootherBase<VectorType> & post_smooth,
- const unsigned int minlevel = 0,
- const unsigned int maxlevel = numbers::invalid_unsigned_int,
- Cycle cycle = v_cycle);
-
/**
* Constructor. <tt>transfer</tt> is an object performing prolongation and
* restriction. For levels in [minlevel, maxlevel] matrix has to contain
/* --------------------------- inline functions --------------------- */
-template <typename VectorType>
-template <int dim>
-Multigrid<VectorType>::Multigrid(const DoFHandler<dim> & dof_handler,
- const MGMatrixBase<VectorType> &matrix,
- const MGCoarseGridBase<VectorType> &coarse,
- const MGTransferBase<VectorType> & transfer,
- const MGSmootherBase<VectorType> & pre_smooth,
- const MGSmootherBase<VectorType> &post_smooth,
- const unsigned int min_level,
- const unsigned int max_level,
- Cycle cycle)
- : cycle_type(cycle)
- , minlevel(min_level)
- , matrix(&matrix, typeid(*this).name())
- , coarse(&coarse, typeid(*this).name())
- , transfer(&transfer, typeid(*this).name())
- , pre_smooth(&pre_smooth, typeid(*this).name())
- , post_smooth(&post_smooth, typeid(*this).name())
- , edge_down(nullptr, typeid(*this).name())
- , edge_up(nullptr, typeid(*this).name())
- , debug(0)
-{
- const unsigned int dof_handler_max_level =
- dof_handler.get_triangulation().n_global_levels() - 1;
- if (max_level == numbers::invalid_unsigned_int)
- maxlevel = dof_handler_max_level;
- else
- maxlevel = max_level;
-
- reinit(minlevel, maxlevel);
-}
-
-
-
template <typename VectorType>
Multigrid<VectorType>::Multigrid(const MGMatrixBase<VectorType> & matrix,
const MGCoarseGridBase<VectorType> &coarse,
-template <int dim, int spacedim>
-void
-DoFHandler<dim, spacedim>::distribute_mg_dofs(
- const FiniteElement<dim, spacedim> &)
-{
- this->distribute_mg_dofs();
-}
-
-
-
template <int dim, int spacedim>
void
DoFHandler<dim, spacedim>::distribute_mg_dofs()
-template <typename VectorType>
-MGTransferPrebuilt<VectorType>::MGTransferPrebuilt(
- const AffineConstraints<double> & /*c*/,
- const MGConstrainedDoFs &mg_c)
-{
- this->mg_constrained_dofs = &mg_c;
-}
-
-
-
template <typename VectorType>
void
MGTransferPrebuilt<VectorType>::initialize_constraints(
-template <typename VectorType>
-void
-MGTransferPrebuilt<VectorType>::initialize_constraints(
- const AffineConstraints<double> & /*c*/,
- const MGConstrainedDoFs &mg_c)
-{
- initialize_constraints(mg_c);
-}
-
-
-
template <typename VectorType>
void
MGTransferPrebuilt<VectorType>::clear()
-MGTransferBlockBase::MGTransferBlockBase(
- const AffineConstraints<double> & /*c*/,
- const MGConstrainedDoFs &mg_c)
- : n_mg_blocks(0)
- , mg_constrained_dofs(&mg_c)
-{}
-
-
template <typename number>
MGTransferBlock<number>::MGTransferBlock()
: memory(nullptr, typeid(*this).name())
-template <typename number>
-MGTransferBlockSelect<number>::MGTransferBlockSelect(
- const AffineConstraints<double> & /*c*/,
- const MGConstrainedDoFs &mg_c)
- : MGTransferBlockBase(mg_c)
- , selected_block(0)
-{}
-
-
-
template <typename number>
void
MGTransferBlockSelect<number>::prolongate(const unsigned int to_level,
mg_smoother.set_symmetric(true);
mg::Matrix<Vector<double>> mg_matrix(mg_matrices);
- Multigrid<Vector<double>> mg(mg_dof_handler,
- mg_matrix,
- mg_coarse,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<Vector<double>> mg(
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
PreconditionMG<dim, Vector<double>, MGTransferPrebuilt<Vector<double>>>
preconditioner(mg_dof_handler, mg, mg_transfer);
FE_Q<dim> fe(fe_degree);
DoFHandler<dim> dof(tria);
dof.distribute_dofs(fe);
- dof.distribute_mg_dofs(fe);
+ dof.distribute_mg_dofs();
AffineConstraints<double> constraints;
constraints.close();
mg::Matrix<LinearAlgebra::distributed::Vector<double>> mg_matrix(mg_matrices);
Multigrid<LinearAlgebra::distributed::Vector<double>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<double>,
MGTransferMF<LevelMatrixType>>
mg::Matrix<LinearAlgebra::distributed::Vector<double>> mg_matrix(mg_matrices);
Multigrid<LinearAlgebra::distributed::Vector<double>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<double>,
MGTransferMF<dim, LevelMatrixType>>
mg::Matrix<LinearAlgebra::distributed::Vector<double>> mg_matrix(mg_matrices);
Multigrid<LinearAlgebra::distributed::Vector<double>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<double>,
MGTransferMF<dim, LevelMatrixType>>
mg::Matrix<LinearAlgebra::distributed::Vector<double>> mg_matrix(mg_matrices);
Multigrid<LinearAlgebra::distributed::Vector<double>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<double>,
MGTransferPrebuiltMF<LevelMatrixType>>
mg::Matrix<LinearAlgebra::distributed::Vector<double>> mg_matrix(mg_matrices);
Multigrid<LinearAlgebra::distributed::Vector<double>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<double>,
MGTransferMatrixFree<dim, double>>
mg_interface_matrices);
Multigrid<LinearAlgebra::distributed::Vector<double>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface, mg_interface);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<double>,
mg_interface_matrices);
Multigrid<LinearAlgebra::distributed::Vector<double>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface, mg_interface);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<double>,
mg_interface_matrices);
Multigrid<LinearAlgebra::distributed::Vector<number>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface, mg_interface);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<number>,
mg_interface_matrices);
Multigrid<LinearAlgebra::distributed::Vector<double>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface, mg_interface);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<double>,
mg_interface_matrices);
Multigrid<LinearAlgebra::distributed::Vector<number>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface, mg_interface);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<number>,
mg_interface_matrices);
Multigrid<LinearAlgebra::distributed::Vector<double>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface, mg_interface);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<double>,
mg_interface_matrices);
Multigrid<LinearAlgebra::distributed::Vector<number>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface, mg_interface);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<number>,
mg::Matrix<LinearAlgebra::distributed::Vector<number>> mg_matrix(mg_matrices);
Multigrid<LinearAlgebra::distributed::Vector<number>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<number>,
MGTransferPrebuiltMF<dim, LevelMatrixType>>
mg::Matrix<LinearAlgebra::distributed::Vector<number>> mg_matrix(mg_matrices);
Multigrid<LinearAlgebra::distributed::Vector<number>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<number>,
MGTransferPrebuiltMF<dim, LevelMatrixType>>
mg::Matrix<LinearAlgebra::distributed::Vector<number>> mg_matrix(mg_matrices);
Multigrid<LinearAlgebra::distributed::Vector<number>> mg(
- dof, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
PreconditionMG<dim,
LinearAlgebra::distributed::Vector<number>,
MGTransferMatrixFree<dim, number>>
mg::Matrix<Vector<double>> mg_matrix(mg_matrices);
Multigrid<Vector<double>> mg(
- dof_handler, mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
PreconditionMG<dim, Vector<double>, MGTransferPrebuilt<Vector<double>>>
preconditioner(dof_handler, mg, mg_transfer);
// Now, we are ready to set up the
// V-cycle operator and the
// multilevel preconditioner.
- Multigrid<vector_t> mg(mg_dof_handler,
- mg_matrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
- mg.set_debug(2);
+ Multigrid<vector_t> mg(
+ mg_matrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface_down, mg_interface_up);
PreconditionMG<dim, vector_t, MGTransferPrebuilt<vector_t>> preconditioner(
// Now, we are ready to set up the
// V-cycle operator and the
// multilevel preconditioner.
- Multigrid<vector_t> mg(mg_dof_handler,
- mg_matrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
- mg.set_debug(2);
+ Multigrid<vector_t> mg(
+ mg_matrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface_down, mg_interface_up);
PreconditionMG<dim, vector_t, MGTransferPrebuilt<vector_t>> preconditioner(
mg::Matrix<TrilinosWrappers::MPI::Vector> mgdown(mg_matrix_dg_down);
mg::Matrix<TrilinosWrappers::MPI::Vector> mgup(mg_matrix_dg_up);
- Multigrid<TrilinosWrappers::MPI::Vector> mg(dof_handler,
- mgmatrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<TrilinosWrappers::MPI::Vector> mg(
+ mgmatrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_flux_matrices(mgdown, mgup);
PreconditionMG<dim,
mg::Matrix<TrilinosWrappers::MPI::Vector> mgdown(mg_matrix_dg_down);
mg::Matrix<TrilinosWrappers::MPI::Vector> mgup(mg_matrix_dg_up);
- Multigrid<TrilinosWrappers::MPI::Vector> mg(dof_handler,
- mgmatrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<TrilinosWrappers::MPI::Vector> mg(
+ mgmatrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_flux_matrices(mgdown, mgup);
PreconditionMG<dim,
mg::Matrix<vector_t> mg_interface_up(mg_interface_matrices);
mg::Matrix<vector_t> mg_interface_down(mg_interface_matrices);
- Multigrid<vector_t> mg(mg_dof_handler,
- mg_matrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<vector_t> mg(
+ mg_matrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
auto print_transfer_to_mg = [](const bool start) {
deallog << "transfer_to_mg " << (start ? "started" : "finished")
mg::Matrix<vector_t> mg_interface_up(mg_interface_matrices);
mg::Matrix<vector_t> mg_interface_down(mg_interface_matrices);
- Multigrid<vector_t> mg(mg_dof_handler,
- mg_matrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<vector_t> mg(
+ mg_matrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface_down, mg_interface_up);
DoFHandler<dim> dof_handler(triangulation);
dof_handler.distribute_dofs(fe);
- dof_handler.distribute_mg_dofs(fe);
+ dof_handler.distribute_mg_dofs();
Vector<double> global_dof_vector(dof_handler.n_dofs());
VectorTools::interpolate(dof_handler,
FE_Q<dim> fe(1);
DoFHandler<dim> dof_handler(triangulation);
dof_handler.distribute_dofs(fe);
- dof_handler.distribute_mg_dofs(fe);
+ dof_handler.distribute_mg_dofs();
// Make FE vector
IndexSet locally_relevant_dofs;
DoFHandler<dim> dof_handler(triangulation);
dof_handler.distribute_dofs(fe);
- dof_handler.distribute_mg_dofs(fe);
+ dof_handler.distribute_mg_dofs();
// Make FE vector
IndexSet locally_relevant_dofs;
mg::Matrix<Vector<double>> mg_matrix_renumbered(mg_matrices_renumbered);
- Multigrid<Vector<double>> mg(mg_dof_handler,
- mg_matrix,
- mg_coarse,
- mg_transfer,
- mg_smoother,
- mg_smoother);
-
- Multigrid<Vector<double>> mg_renumbered(mg_dof_handler_renumbered,
- mg_matrix_renumbered,
+ Multigrid<Vector<double>> mg(
+ mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+
+ Multigrid<Vector<double>> mg_renumbered(mg_matrix_renumbered,
mg_coarse_renumbered,
mg_transfer_renumbered,
mg_smoother_renumbered,
mg::Matrix<> mg_interface_up(mg_interface_in);
mg::Matrix<> mg_interface_down(mg_interface_in);
- Multigrid<Vector<double>> mg(mg_dof_handler,
- mg_matrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<Vector<double>> mg(
+ mg_matrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface_down, mg_interface_up);
PreconditionMG<dim, Vector<double>, MGTransferPrebuilt<Vector<double>>>
mg::Matrix<> mg_interface_up(mg_interface_matrices);
mg::Matrix<> mg_interface_down(mg_interface_matrices);
- Multigrid<Vector<double>> mg(mg_dof_handler,
- mg_matrix,
+ Multigrid<Vector<double>> mg(mg_matrix,
coarse_grid_solver,
mg_transfer,
mg_smoother,
LaplaceProblem<dim>::solve()
{
MGTransferPrebuilt<LinearAlgebra::distributed::Vector<double>> mg_transfer(
- hanging_node_constraints, mg_constrained_dofs);
+ mg_constrained_dofs);
mg_transfer.build(mg_dof_handler);
SolverControl coarse_solver_control(1000, 1e-10, false, false);
LaplaceProblem<dim>::solve()
{
MGTransferPrebuilt<LinearAlgebra::distributed::Vector<double>> mg_transfer(
- hanging_node_constraints, mg_constrained_dofs);
+ mg_constrained_dofs);
mg_transfer.build(mg_dof_handler);
SolverControl coarse_solver_control(1000, 1e-10, false, false);
mg::Matrix<> mg_interface_up(mg_interface_matrices);
mg::Matrix<> mg_interface_down(mg_interface_matrices);
- Multigrid<Vector<double>> mg(mg_dof_handler,
- mg_matrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<Vector<double>> mg(
+ mg_matrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface_down, mg_interface_up);
PreconditionMG<dim, Vector<double>, MGTransferPrebuilt<Vector<double>>>
mg::Matrix<vector_t> mg_interface_up(mg_interface_matrices);
mg::Matrix<vector_t> mg_interface_down(mg_interface_matrices);
- Multigrid<vector_t> mg(mg_dof_handler,
- mg_matrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<vector_t> mg(
+ mg_matrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface_down, mg_interface_up);
PreconditionMG<dim, vector_t, MGTransferPrebuilt<vector_t>> preconditioner(
mg::Matrix<vector_t> mg_interface_up(mg_interface_matrices);
mg::Matrix<vector_t> mg_interface_down(mg_interface_matrices);
- Multigrid<vector_t> mg(mg_dof_handler,
- mg_matrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<vector_t> mg(
+ mg_matrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface_down, mg_interface_up);
PreconditionMG<dim, vector_t, MGTransferPrebuilt<vector_t>> preconditioner(
mg::Matrix<vector_t> mg_interface_up(mg_interface_matrices);
mg::Matrix<vector_t> mg_interface_down(mg_interface_matrices);
- Multigrid<vector_t> mg(mg_dof_handler,
- mg_matrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<vector_t> mg(
+ mg_matrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface_down, mg_interface_up);
PreconditionMG<dim, vector_t, MGTransferPrebuilt<vector_t>> preconditioner(
mg::Matrix<vector_t> mg_interface_up(mg_interface_matrices);
mg::Matrix<vector_t> mg_interface_down(mg_interface_matrices);
- Multigrid<vector_t> mg(mg_dof_handler,
- mg_matrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<vector_t> mg(
+ mg_matrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface_down, mg_interface_up);
PreconditionMG<dim, vector_t, MGTransferPrebuilt<vector_t>> preconditioner(
// if (use_mw)
// mg_interface_down.initialize(mg_interface_out);
- Multigrid<Vector<double>> mg(mg_dof_handler,
- mg_matrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<Vector<double>> mg(
+ mg_matrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface_down, mg_interface_up);
PreconditionMG<dim, Vector<double>, MGTransferPrebuilt<Vector<double>>>
mg::Matrix<> mg_interface_up(mg_interface_matrices);
mg::Matrix<> mg_interface_down(mg_interface_matrices);
- Multigrid<Vector<double>> mg(mg_dof_handler,
- mg_matrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<Vector<double>> mg(
+ mg_matrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface_down, mg_interface_up);
PreconditionMG<dim, Vector<double>, MGTransferPrebuilt<Vector<double>>>
mg::Matrix<Vector<double>> mgedge(mg_matrix_in_out);
Multigrid<Vector<double>> mg(
- dof_handler, mgmatrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mgmatrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_flux_matrices(mgdown, mgup);
mg.set_edge_matrices(mgedge, mgedge);
mg::Matrix<Vector<double>> mgedge(mg_matrix_in_out);
Multigrid<Vector<double>> mg(
- dof_handler, mgmatrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mgmatrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_flux_matrices(mgdown, mgup);
mg.set_edge_matrices(mgedge, mgedge);
mg::Matrix<Vector<double>> mgedge(mg_matrix_in_out);
Multigrid<Vector<double>> mg(
- dof_handler, mgmatrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mgmatrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_flux_matrices(mgdown, mgup);
mg.set_edge_matrices(mgedge, mgedge);
mg::Matrix<Vector<double>> mgup(mg_matrix_dg_up);
Multigrid<Vector<double>> mg(
- dof_handler, mgmatrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+ mgmatrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_flux_matrices(mgdown, mgup);
PreconditionMG<dim, Vector<double>, MGTransferPrebuilt<Vector<double>>>
mg::Matrix<vector_t> mg_interface_up(mg_interface_matrices);
mg::Matrix<vector_t> mg_interface_down(mg_interface_matrices);
- Multigrid<vector_t> mg(mg_dof_handler,
- mg_matrix,
- coarse_grid_solver,
- mg_transfer,
- mg_smoother,
- mg_smoother);
+ Multigrid<vector_t> mg(
+ mg_matrix, coarse_grid_solver, mg_transfer, mg_smoother, mg_smoother);
mg.set_edge_matrices(mg_interface_down, mg_interface_up);