Reference documentation for deal.II version 9.5.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Namespaces | Functions
mg_tools.cc File Reference
#include <deal.II/base/logstream.h>
#include <deal.II/base/mg_level_object.h>
#include <deal.II/base/mpi_compute_index_owner_internal.h>
#include <deal.II/base/thread_management.h>
#include <deal.II/distributed/tria_base.h>
#include <deal.II/dofs/dof_accessor.h>
#include <deal.II/dofs/dof_handler.h>
#include <deal.II/dofs/dof_tools.h>
#include <deal.II/fe/component_mask.h>
#include <deal.II/fe/fe.h>
#include <deal.II/grid/cell_id_translator.h>
#include <deal.II/grid/tria.h>
#include <deal.II/grid/tria_iterator.h>
#include <deal.II/lac/block_sparse_matrix.h>
#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/sparse_matrix.h>
#include <deal.II/lac/sparsity_pattern_base.h>
#include <deal.II/multigrid/mg_base.h>
#include <deal.II/multigrid/mg_constrained_dofs.h>
#include <deal.II/multigrid/mg_tools.h>
#include <deal.II/numerics/matrix_tools.h>
#include <algorithm>
#include <numeric>
#include <vector>
#include "mg_tools.inst"

Go to the source code of this file.

Namespaces

namespace  MGTools
 
namespace  MGTools::internal
 

Functions

template<>
void MGTools::compute_row_length_vector (const DoFHandler< 1, 1 > &, const unsigned int, std::vector< unsigned int > &, const DoFTools::Coupling)
 
template<>
void MGTools::compute_row_length_vector (const DoFHandler< 1, 1 > &, const unsigned int, std::vector< unsigned int > &, const Table< 2, DoFTools::Coupling > &, const Table< 2, DoFTools::Coupling > &)
 
template<>
void MGTools::compute_row_length_vector (const DoFHandler< 1, 2 > &, const unsigned int, std::vector< unsigned int > &, const DoFTools::Coupling)
 
template<>
void MGTools::compute_row_length_vector (const DoFHandler< 1, 2 > &, const unsigned int, std::vector< unsigned int > &, const Table< 2, DoFTools::Coupling > &, const Table< 2, DoFTools::Coupling > &)
 
template<int dim, int spacedim>
void MGTools::compute_row_length_vector (const DoFHandler< dim, spacedim > &dofs, const unsigned int level, std::vector< unsigned int > &row_lengths, const DoFTools::Coupling flux_couplings=DoFTools::none)
 
template<int dim, int spacedim>
void MGTools::compute_row_length_vector (const DoFHandler< dim, spacedim > &dofs, const unsigned int level, std::vector< unsigned int > &row_lengths, const Table< 2, DoFTools::Coupling > &couplings, const Table< 2, DoFTools::Coupling > &flux_couplings)
 
template<int dim, int spacedim, typename number = double>
void MGTools::make_sparsity_pattern (const DoFHandler< dim, spacedim > &dof_handler, SparsityPatternBase &sparsity, const unsigned int level, const AffineConstraints< number > &constraints=AffineConstraints< number >(), const bool keep_constrained_dofs=true)
 
template<int dim, int spacedim, typename number = double>
void MGTools::make_flux_sparsity_pattern (const DoFHandler< dim, spacedim > &dof_handler, SparsityPatternBase &sparsity, const unsigned int level, const AffineConstraints< number > &constraints=AffineConstraints< number >(), const bool keep_constrained_dofs=true)
 
template<int dim, int spacedim>
void MGTools::make_flux_sparsity_pattern_edge (const DoFHandler< dim, spacedim > &dof_handler, SparsityPatternBase &sparsity, const unsigned int level)
 
template<int dim, int spacedim>
void MGTools::make_flux_sparsity_pattern (const DoFHandler< dim, spacedim > &dof, SparsityPatternBase &sparsity, const unsigned int level, const Table< 2, DoFTools::Coupling > &int_mask, const Table< 2, DoFTools::Coupling > &flux_mask)
 
template<int dim, int spacedim>
void MGTools::make_flux_sparsity_pattern_edge (const DoFHandler< dim, spacedim > &dof_handler, SparsityPatternBase &sparsity, const unsigned int level, const Table< 2, DoFTools::Coupling > &flux_mask)
 
template<int dim, int spacedim>
void MGTools::make_interface_sparsity_pattern (const DoFHandler< dim, spacedim > &dof_handler, const MGConstrainedDoFs &mg_constrained_dofs, SparsityPatternBase &sparsity, const unsigned int level)
 
template<int dim, int spacedim>
void MGTools::count_dofs_per_component (const DoFHandler< dim, spacedim > &mg_dof, std::vector< std::vector< types::global_dof_index > > &result, const bool only_once=false, std::vector< unsigned int > target_component={})
 
template<int dim, int spacedim>
void MGTools::count_dofs_per_block (const DoFHandler< dim, spacedim > &dof_handler, std::vector< std::vector< types::global_dof_index > > &dofs_per_block, std::vector< unsigned int > target_block={})
 
template<int dim, int spacedim>
void MGTools::make_boundary_list (const DoFHandler< dim, spacedim > &mg_dof, const std::map< types::boundary_id, const Function< spacedim > * > &function_map, std::vector< std::set< types::global_dof_index > > &boundary_indices, const ComponentMask &component_mask=ComponentMask())
 
template<int dim, int spacedim>
void MGTools::make_boundary_list (const DoFHandler< dim, spacedim > &mg_dof, const std::map< types::boundary_id, const Function< spacedim > * > &function_map, std::vector< IndexSet > &boundary_indices, const ComponentMask &component_mask=ComponentMask())
 
template<int dim, int spacedim>
void MGTools::make_boundary_list (const DoFHandler< dim, spacedim > &mg_dof, const std::set< types::boundary_id > &boundary_ids, std::vector< IndexSet > &boundary_indices, const ComponentMask &component_mask=ComponentMask())
 
template<int dim, int spacedim>
void MGTools::extract_inner_interface_dofs (const DoFHandler< dim, spacedim > &mg_dof_handler, std::vector< IndexSet > &interface_dofs)
 
template<int dim, int spacedim>
unsigned int MGTools::max_level_for_coarse_mesh (const Triangulation< dim, spacedim > &tria)
 
double MGTools::internal::workload_imbalance (const std::vector< types::global_dof_index > &n_cells_on_levels, const MPI_Comm comm)
 
double MGTools::internal::vertical_communication_efficiency (const std::vector< std::pair< types::global_dof_index, types::global_dof_index > > &cells, const MPI_Comm comm)
 
template<int dim, int spacedim>
std::vector< types::global_dof_indexMGTools::local_workload (const Triangulation< dim, spacedim > &tria)
 
template<int dim, int spacedim>
std::vector< types::global_dof_indexMGTools::local_workload (const std::vector< std::shared_ptr< const Triangulation< dim, spacedim > > > &trias)
 
template<int dim, int spacedim>
double MGTools::workload_imbalance (const Triangulation< dim, spacedim > &tria)
 
template<int dim, int spacedim>
double MGTools::workload_imbalance (const std::vector< std::shared_ptr< const Triangulation< dim, spacedim > > > &trias)
 
template<int dim, int spacedim>
std::vector< std::pair< types::global_dof_index, types::global_dof_index > > MGTools::local_vertical_communication_cost (const Triangulation< dim, spacedim > &tria)
 
template<int dim, int spacedim>
std::vector< std::pair< types::global_dof_index, types::global_dof_index > > MGTools::local_vertical_communication_cost (const std::vector< std::shared_ptr< const Triangulation< dim, spacedim > > > &trias)
 
template<int dim, int spacedim>
double MGTools::vertical_communication_efficiency (const Triangulation< dim, spacedim > &tria)
 
template<int dim, int spacedim>
double MGTools::vertical_communication_efficiency (const std::vector< std::shared_ptr< const Triangulation< dim, spacedim > > > &trias)