* first have to be mapped to the global degrees of freedom, to correspond
* with them.
*/
- template <int dim, int spacedim, typename DoFHandlerType>
+ template <typename DoFHandlerType>
void
extract_dofs(const DoFHandlerType &dof_handler,
const ComponentMask & component_mask,
* sequential computations of course equals DoFHandler::n_dofs(). The
* previous contents of this array are overwritten.
*/
- template <int dim, int spacedim, typename DoFHandlerType>
+ template <typename DoFHandlerType>
void
extract_dofs(const DoFHandlerType &dof_handler,
const BlockMask & block_mask,
- template <int dim, int spacedim, typename DoFHandlerType>
+ template <typename DoFHandlerType>
void
extract_dofs(const DoFHandlerType &dof,
const ComponentMask & component_mask,
- template <int dim, int spacedim, typename DoFHandlerType>
+ template <typename DoFHandlerType>
void
extract_dofs(const DoFHandlerType &dof,
const BlockMask & block_mask,
std::vector<bool> & selected_dofs)
{
// simply forward to the function that works based on a component mask
- extract_dofs<dim, spacedim, DoFHandlerType>(
+ extract_dofs<DoFHandlerType>(
dof, dof.get_fe_collection().component_mask(block_mask), selected_dofs);
}
&patch);
template void
- extract_dofs<deal_II_dimension,
- deal_II_space_dimension,
- DoFHandler<deal_II_dimension, deal_II_space_dimension>>(
+ extract_dofs<DoFHandler<deal_II_dimension, deal_II_space_dimension>>(
const DoFHandler<deal_II_dimension, deal_II_space_dimension> &,
const ComponentMask &,
std::vector<bool> &);
template void
- extract_dofs<deal_II_dimension,
- deal_II_space_dimension,
- DoFHandler<deal_II_dimension, deal_II_space_dimension>>(
+ extract_dofs<DoFHandler<deal_II_dimension, deal_II_space_dimension>>(
const DoFHandler<deal_II_dimension, deal_II_space_dimension> &,
const BlockMask &,
std::vector<bool> &);
template void
- extract_dofs<deal_II_dimension,
- deal_II_space_dimension,
- hp::DoFHandler<deal_II_dimension, deal_II_space_dimension>>(
+ extract_dofs<hp::DoFHandler<deal_II_dimension, deal_II_space_dimension>>(
const hp::DoFHandler<deal_II_dimension, deal_II_space_dimension> &,
const ComponentMask &,
std::vector<bool> &);
template void
- extract_dofs<deal_II_dimension,
- deal_II_space_dimension,
- hp::DoFHandler<deal_II_dimension, deal_II_space_dimension>>(
+ extract_dofs<hp::DoFHandler<deal_II_dimension, deal_II_space_dimension>>(
const hp::DoFHandler<deal_II_dimension, deal_II_space_dimension> &,
const BlockMask &,
std::vector<bool> &);
{
std::vector<bool> mask(coarse_grid.get_fe(0).n_components(), false);
mask[coarse_component] = true;
- extract_dofs<dim, spacedim, DoFHandler<dim, spacedim>>(
+ extract_dofs<DoFHandler<dim, spacedim>>(
coarse_grid, ComponentMask(mask), coarse_dof_is_parameter);
}
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
const unsigned int n_components = dof_handler.get_fe().n_components();
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// create sparsity pattern
SparsityPattern sp(dof_handler.n_dofs(),
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
AffineConstraints<double> cm;
DoFTools::make_hanging_node_constraints(dof_handler, cm);
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
AffineConstraints<double> cm;
DoFTools::make_hanging_node_constraints(dof_handler, cm);
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// create sparsity pattern
SparsityPattern sp(dof_handler.n_dofs(),
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// create sparsity pattern
DynamicSparsityPattern sp(dof_handler.n_dofs());
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// we split up the matrix into
// blocks according to the number
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// we split up the matrix into
// blocks according to the number
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// set up X-shape mask
const unsigned int n_components = dof_handler.get_fe().n_components();
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// set up X-shape mask
const unsigned int n_components = dof_handler.get_fe().n_components();
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// set up X-shape mask
const unsigned int n_components = dof_handler.get_fe().n_components();
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// set up X-shape mask
const unsigned int n_components = dof_handler.get_fe().n_components();
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// set up X-shape mask
const unsigned int n_components = dof_handler.get_fe().n_components();
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// set up X-shape mask
const unsigned int n_components = dof_handler.get_fe().n_components();
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// set up X-shape mask
const unsigned int n_components = dof_handler.get_fe().n_components();
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// use a higher output accuracy for this
// test. the reason is that many of the
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::extract_hanging_node_constraints
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
const types::global_dof_index n_dofs = dof_handler.n_dofs();
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::extract_boundary_dofs
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
std::vector<bool> component_select(dof_handler.get_fe().n_components(), true);
std::vector<bool> boundary_dofs(dof_handler.n_dofs());
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::extract_subdomain_dofs
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
std::vector<bool> dofs(dof_handler.n_dofs());
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::count_dofs_per_component
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
std::vector<types::global_dof_index> n_dofs(
dof_handler.get_fe().n_components());
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::map_dof_to_boundary_indices(const DoFHandler<int> &,
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
std::vector<types::global_dof_index> map(dof_handler.n_dofs());
DoFTools::map_dof_to_boundary_indices(dof_handler, map);
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::map_dof_to_boundary_indices(const DoFHandler<int> &,
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
std::vector<types::global_dof_index> map(dof_handler.n_dofs());
std::set<types::boundary_id> boundary_ids;
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::map_dofs_to_support_points (const Mapping<dim> &,
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// don't check if fe has no support
// points
if (dof_handler.get_fe().get_unit_support_points().size() == 0)
return;
- std::vector<Point<dim>> map(dof_handler.n_dofs());
- MappingQ<dim> mapping(2);
+ std::vector<Point<dof_handler.dimension>> map(dof_handler.n_dofs());
+ MappingQ<dof_handler.dimension> mapping(2);
DoFTools::map_dofs_to_support_points(mapping, dof_handler, map);
#include "../tests.h"
#include "dof_tools_common.h"
+//#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::extract_dofs
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
std::vector<bool> selected_dofs(dof_handler.n_dofs());
std::vector<bool> mask(dof_handler.get_fe().n_components(), false);
// only select first component
mask[0] = true;
- DoFTools::extract_dofs<dim, dim, DoFHandler<dim>>(dof_handler,
- ComponentMask(mask),
- selected_dofs);
+ DoFTools::extract_dofs(dof_handler, ComponentMask(mask), selected_dofs);
output_bool_vector(selected_dofs);
// also select last component
mask.back() = true;
- DoFTools::extract_dofs<dim, dim, DoFHandler<dim>>(dof_handler,
- ComponentMask(mask),
- selected_dofs);
+ DoFTools::extract_dofs(dof_handler, ComponentMask(mask), selected_dofs);
output_bool_vector(selected_dofs);
}
DEAL::Checking Q1 in 1d:
DEAL::11111
DEAL::11111
+DEAL::11111
+DEAL::11111
DEAL::Checking Q1 in 2d:
DEAL::111111111111111111
DEAL::111111111111111111
+DEAL::111111111111111111
+DEAL::111111111111111111
DEAL::Checking Q1 in 3d:
DEAL::111111111111111111111111111111111111111111111111111111111111
DEAL::111111111111111111111111111111111111111111111111111111111111
+DEAL::111111111111111111111111111111111111111111111111111111111111
+DEAL::111111111111111111111111111111111111111111111111111111111111
DEAL::Checking Q2 in 1d:
DEAL::111111111
DEAL::111111111
+DEAL::111111111
+DEAL::111111111
DEAL::Checking Q2 in 2d:
DEAL::111111111111111111111111111111111111111111111111111111111
DEAL::111111111111111111111111111111111111111111111111111111111
+DEAL::111111111111111111111111111111111111111111111111111111111
+DEAL::111111111111111111111111111111111111111111111111111111111
DEAL::Checking Q2 in 3d:
DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking Q3 in 1d:
DEAL::1111111111111
DEAL::1111111111111
+DEAL::1111111111111
+DEAL::1111111111111
DEAL::Checking Q3 in 2d:
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking Q3 in 3d:
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking DGQ0 in 1d:
DEAL::1111
DEAL::1111
+DEAL::1111
+DEAL::1111
DEAL::Checking DGQ0 in 2d:
DEAL::1111111111
DEAL::1111111111
+DEAL::1111111111
+DEAL::1111111111
DEAL::Checking DGQ0 in 3d:
DEAL::1111111111111111111111
DEAL::1111111111111111111111
+DEAL::1111111111111111111111
+DEAL::1111111111111111111111
DEAL::Checking DGQ1 in 1d:
DEAL::11111111
DEAL::11111111
+DEAL::11111111
+DEAL::11111111
DEAL::Checking DGQ1 in 2d:
DEAL::1111111111111111111111111111111111111111
DEAL::1111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111
DEAL::Checking DGQ1 in 3d:
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking DGQ3 in 1d:
DEAL::1111111111111111
DEAL::1111111111111111
+DEAL::1111111111111111
+DEAL::1111111111111111
DEAL::Checking DGQ3 in 2d:
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking DGQ3 in 3d:
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking DGP0 in 1d:
DEAL::1111
DEAL::1111
+DEAL::1111
+DEAL::1111
DEAL::Checking DGP0 in 2d:
DEAL::1111111111
DEAL::1111111111
+DEAL::1111111111
+DEAL::1111111111
DEAL::Checking DGP0 in 3d:
DEAL::1111111111111111111111
DEAL::1111111111111111111111
+DEAL::1111111111111111111111
+DEAL::1111111111111111111111
DEAL::Checking DGP1 in 1d:
DEAL::11111111
DEAL::11111111
+DEAL::11111111
+DEAL::11111111
DEAL::Checking DGP1 in 2d:
DEAL::111111111111111111111111111111
DEAL::111111111111111111111111111111
+DEAL::111111111111111111111111111111
+DEAL::111111111111111111111111111111
DEAL::Checking DGP1 in 3d:
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking DGP3 in 1d:
DEAL::1111111111111111
DEAL::1111111111111111
+DEAL::1111111111111111
+DEAL::1111111111111111
DEAL::Checking DGP3 in 2d:
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking DGP3 in 3d:
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking Nedelec0 in 2d:
DEAL::11111111111111111111111111111
DEAL::11111111111111111111111111111
+DEAL::11111111111111111111111111111
+DEAL::11111111111111111111111111111
DEAL::Checking Nedelec0 in 3d:
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking RaviartThomas0 in 2d:
DEAL::11111111111111111111111111111
DEAL::11111111111111111111111111111
+DEAL::11111111111111111111111111111
+DEAL::11111111111111111111111111111
DEAL::Checking RaviartThomas1 in 2d:
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking RaviartThomas2 in 2d:
DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking RaviartThomasNodal0 in 2d:
DEAL::11111111111111111111111111111
DEAL::11111111111111111111111111111
+DEAL::11111111111111111111111111111
+DEAL::11111111111111111111111111111
DEAL::Checking RaviartThomasNodal1 in 2d:
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking RaviartThomasNodal2 in 2d:
DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking RaviartThomasNodal0 in 3d:
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking RaviartThomasNodal1 in 3d:
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking RaviartThomasNodal2 in 3d:
DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking FE_Q<1>(1)3 in 1d:
DEAL::100100100100100
DEAL::101101101101101
+DEAL::100100100100100
+DEAL::101101101101101
DEAL::Checking FE_DGQ<1>(2)2 in 1d:
DEAL::111000111000111000111000
DEAL::111111111111111111111111
+DEAL::111000111000111000111000
+DEAL::111111111111111111111111
DEAL::Checking FE_DGP<1>(3)1 in 1d:
DEAL::1111111111111111
DEAL::1111111111111111
+DEAL::1111111111111111
+DEAL::1111111111111111
DEAL::Checking FE_Q<2>(1)3 in 2d:
DEAL::100100100100100100100100100100100100100100100100100100
DEAL::101101101101101101101101101101101101101101101101101101
+DEAL::100100100100100100100100100100100100100100100100100100
+DEAL::101101101101101101101101101101101101101101101101101101
DEAL::Checking FE_DGQ<2>(2)2 in 2d:
DEAL::111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000
DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000
+DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking FE_DGP<2>(3)1 in 2d:
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking FE_Q<3>(1)3 in 3d:
DEAL::100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100
DEAL::101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101
+DEAL::100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100
+DEAL::101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101
DEAL::Checking FE_DGQ<3>(2)2 in 3d:
DEAL::111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000
DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000
+DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking FE_DGP<3>(3)1 in 3d:
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
DEAL::Checking FE_Q<1>(1)3FE_DGQ<1>(2)2 in 1d:
DEAL::100100000000100000000100000000100000000
DEAL::100100000111100000111100000111100000111
+DEAL::100100000000100000000100000000100000000
+DEAL::100100000111100000111100000111100000111
DEAL::Checking FE_DGQ<1>(2)2FE_DGP<1>(3)1 in 1d:
DEAL::1110000000111000000011100000001110000000
DEAL::1110001111111000111111100011111110001111
+DEAL::1110000000111000000011100000001110000000
+DEAL::1110001111111000111111100011111110001111
DEAL::Checking FE_DGP<1>(3)1FE_DGQ<1>(2)2 in 1d:
DEAL::1111000000111100000011110000001111000000
DEAL::1111000111111100011111110001111111000111
+DEAL::1111000000111100000011110000001111000000
+DEAL::1111000111111100011111110001111111000111
DEAL::Checking FE_Q<2>(1)3FE_DGQ<2>(2)2 in 2d:
DEAL::100100100100000000000000000000100100000000000000000000100100100100000000000000000000100100000000000000000000100000000000000000000000000000000000000100100000000000000000000100100000000000000000000100000000000000000000000000000000000000
DEAL::100100100100000000000111111111100100000000000111111111100100100100000000000111111111100100000000000111111111100000000000111111111000000000111111111100100000000000111111111100100000000000111111111100000000000111111111000000000111111111
+DEAL::100100100100000000000000000000100100000000000000000000100100100100000000000000000000100100000000000000000000100000000000000000000000000000000000000100100000000000000000000100100000000000000000000100000000000000000000000000000000000000
+DEAL::100100100100000000000111111111100100000000000111111111100100100100000000000111111111100100000000000111111111100000000000111111111000000000111111111100100000000000111111111100100000000000111111111100000000000111111111000000000111111111
DEAL::Checking FE_DGQ<2>(2)2FE_DGP<2>(3)1 in 2d:
DEAL::1111111110000000000000000000111111111000000000000000000011111111100000000000000000001111111110000000000000000000111111111000000000000000000011111111100000000000000000001111111110000000000000000000111111111000000000000000000011111111100000000000000000001111111110000000000000000000
DEAL::1111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111
+DEAL::1111111110000000000000000000111111111000000000000000000011111111100000000000000000001111111110000000000000000000111111111000000000000000000011111111100000000000000000001111111110000000000000000000111111111000000000000000000011111111100000000000000000001111111110000000000000000000
+DEAL::1111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111
DEAL::Checking FE_DGP<2>(3)1FE_DGQ<2>(2)2 in 2d:
DEAL::1111111111000000000000000000111111111100000000000000000011111111110000000000000000001111111111000000000000000000111111111100000000000000000011111111110000000000000000001111111111000000000000000000111111111100000000000000000011111111110000000000000000001111111111000000000000000000
DEAL::1111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111
+DEAL::1111111111000000000000000000111111111100000000000000000011111111110000000000000000001111111111000000000000000000111111111100000000000000000011111111110000000000000000001111111111000000000000000000111111111100000000000000000011111111110000000000000000001111111111000000000000000000
+DEAL::1111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111
DEAL::Checking FE_Q<1>(1)3FE_DGP<1>(3)1FE_Q<1>(1)3 in 1d:
DEAL::1000001000000000100000000010000000001000000000
DEAL::1000011000010000100001000010000100001000010000
+DEAL::1000001000000000100000000010000000001000000000
+DEAL::1000011000010000100001000010000100001000010000
DEAL::Checking FE_DGQ<1>(2)2FE_DGQ<1>(2)2FE_Q<1>(3)3 in 1d:
DEAL::000000111000000000000000000111000000000000000000111000000000000000000111000000000000000
DEAL::001001111000000000000011001111000000000000011001111000000000000011001111000000000000011
+DEAL::000000111000000000000000000111000000000000000000111000000000000000000111000000000000000
+DEAL::001001111000000000000011001111000000000000011001111000000000000011001111000000000000011
DEAL::Checking FE_DGP<1>(3)1FE_DGP<1>(3)1FE_Q<1>(2)3 in 1d:
DEAL::00000011110000000000111100000000001111000000000011110000000
DEAL::00100111110000001001111100000010011111000000100111110000001
+DEAL::00000011110000000000111100000000001111000000000011110000000
+DEAL::00100111110000001001111100000010011111000000100111110000001
DEAL::Checking FE_Q<2>(1)3FE_DGP<2>(3)1FE_Q<2>(1)3 in 2d:
DEAL::1000001000001000001000000000000000100000100000000000000010000010000010000010000000000000001000001000000000000000100000000000000000000000001000001000000000000000100000100000000000000010000000000000000000000000
DEAL::1000011000011000011000010000000000100001100001000000000010000110000110000110000100000000001000011000010000000000100001000000000000000000001000011000010000000000100001100001000000000010000100000000000000000000
+DEAL::1000001000001000001000000000000000100000100000000000000010000010000010000010000000000000001000001000000000000000100000000000000000000000001000001000000000000000100000100000000000000010000000000000000000000000
+DEAL::1000011000011000011000010000000000100001100001000000000010000110000110000110000100000000001000011000010000000000100001000000000000000000001000011000010000000000100001100001000000000010000100000000000000000000
DEAL::Checking FE_DGQ<2>(2)2FE_DGQ<2>(2)2FE_Q<2>(3)3 in 2d:
DEAL::000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000
DEAL::001001001001000011000011000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001001001001000011000011000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001000011000011000011111111111000000000000000000000000000000000001111000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001000011000011111111111000000000000000000000000000000000001111000011000011111111111000000000000000000000000000000000001111
+DEAL::000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000
+DEAL::001001001001000011000011000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001001001001000011000011000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001000011000011000011111111111000000000000000000000000000000000001111000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001000011000011111111111000000000000000000000000000000000001111000011000011111111111000000000000000000000000000000000001111
DEAL::Checking FE_DGP<2>(3)1FE_DGP<2>(3)1FE_Q<2>(2)3 in 2d:
DEAL::00000000000000000000000011111111110000000000000000000000000000111111111100000000000000000000000000000000000001111111111000000000000000000000000000011111111110000000000000000000000000111111111100000000000000000001111111111000000000000000000000000000011111111110000000000000000000000000000111111111100000000000000000000001111111111000000000000000000011111111110000000000000
DEAL::00100100100100100100100111111111110000000000001001001001001001111111111100000000000010010010010010010010010011111111111000000000000100100100100100111111111110000000000001001001001001111111111100000000000010010011111111111000000000000100100100100100111111111110000000000001001001001001001111111111100000000000010010010011111111111000000000000100100111111111110000000000001
+DEAL::00000000000000000000000011111111110000000000000000000000000000111111111100000000000000000000000000000000000001111111111000000000000000000000000000011111111110000000000000000000000000111111111100000000000000000001111111111000000000000000000000000000011111111110000000000000000000000000000111111111100000000000000000000001111111111000000000000000000011111111110000000000000
+DEAL::00100100100100100100100111111111110000000000001001001001001001111111111100000000000010010010010010010010010011111111111000000000000100100100100100111111111110000000000001001001001001111111111100000000000010010011111111111000000000000100100100100100111111111110000000000001001001001001001111111111100000000000010010010011111111111000000000000100100111111111110000000000001
DEAL::Checking FE_DGQ<3>(1)3FE_DGP<3>(3)1FE_Q<3>(1)3 in 3d:
DEAL::00000000000000000000000011111111000000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000000000000000000001111111100000000000000000000000000000000000000000000011111111000000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000000000000000000000000000011111111000000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000000000001111111100000000000000000000000000000000000000011111111000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000000011111111000000000000000000000000000000000000111111110000000000000000000000000000000000000000000000001111111100000000000000000000000000000000000000000000000011111111000000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000000000011111111000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000011111111000000000000000000000000000000000000
DEAL::00100100100100100100100111111111000000000000000000000000000000000000001001001001111111110000000000000000000000000000000000000010010010010010011111111100000000000000000000000000000000000000100100111111111000000000000000000000000000000000000001001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000000100100100100100100100111111111000000000000000000000000000000000000001001001001111111110000000000000000000000000000000000000010010011111111100000000000000000000000000000000000000111111111000000000000000000000000000000000000001001001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000000111111111000000000000000000000000000000000000111111110000000000000000000000000000000000000010010010011111111100000000000000000000000000000000000000100100100111111111000000000000000000000000000000000000001001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000000100111111111000000000000000000000000000000000000001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000011111111000000000000000000000000000000000000
-DEAL::Checking (FESystem<2>(FE_Q<2>(1),3))3FE_DGQ<2>(0)1FE_Q<2>(1)3 in 2d:
+DEAL::00000000000000000000000011111111000000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000000000000000000001111111100000000000000000000000000000000000000000000011111111000000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000000000000000000000000000011111111000000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000000000001111111100000000000000000000000000000000000000011111111000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000000011111111000000000000000000000000000000000000111111110000000000000000000000000000000000000000000000001111111100000000000000000000000000000000000000000000000011111111000000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000000000011111111000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000011111111000000000000000000000000000000000000
+DEAL::00100100100100100100100111111111000000000000000000000000000000000000001001001001111111110000000000000000000000000000000000000010010010010010011111111100000000000000000000000000000000000000100100111111111000000000000000000000000000000000000001001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000000100100100100100100100111111111000000000000000000000000000000000000001001001001111111110000000000000000000000000000000000000010010011111111100000000000000000000000000000000000000111111111000000000000000000000000000000000000001001001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000000111111111000000000000000000000000000000000000111111110000000000000000000000000000000000000010010010011111111100000000000000000000000000000000000000100100100111111111000000000000000000000000000000000000001001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000000100111111111000000000000000000000000000000000000001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000011111111000000000000000000000000000000000000
+DEAL::Checking (FESystem<2>(FE_Q<2>(1), 3))3FE_DGQ<2>(0)1FE_Q<2>(1)3 in 2d:
DEAL::1000000000001000000000001000000000001000000000000100000000000100000000000010000000000010000000000010000000000010000000000001000000000001000000000000100000000000001000000000001000000000000100000000000100000000000010000000000000
DEAL::1000000000011000000000011000000000011000000000010100000000001100000000001010000000000110000000000110000000000110000000000101000000000011000000000010100000000001001000000000011000000000010100000000001100000000001010000000000100
-DEAL::Checking FE_DGQ<2>(3)1FESystem<2>(FE_DGQ<2>(0),3)1FESystem<2>(FE_Q<2>(2),1, FE_DGQ<2>(0),1)2 in 2d:
+DEAL::1000000000001000000000001000000000001000000000000100000000000100000000000010000000000010000000000010000000000010000000000001000000000001000000000000100000000000001000000000001000000000000100000000000100000000000010000000000000
+DEAL::1000000000011000000000011000000000011000000000010100000000001100000000001010000000000110000000000110000000000110000000000101000000000011000000000010100000000001001000000000011000000000010100000000001100000000001010000000000100
+DEAL::Checking FE_DGQ<2>(3)1FESystem<2>(FE_DGQ<2>(0), 3)1FESystem<2>(FE_Q<2>(2), 1, FE_DGQ<2>(0), 1)2 in 2d:
+DEAL::000000000000000011111111111111110000000000000000011111111111111110000000000000000000000011111111111111110000000000000000011111111111111110000000000000001111111111111111000000000001111111111111111000000000000000001111111111111111000000000000000001111111111111111000000000000011111111111111110000000000011111111111111110000000
+DEAL::000000000000000011111111111111110000001000000000011111111111111110000001000000000000000011111111111111110000001000000000011111111111111110000001000000001111111111111111000000100001111111111111111000000100000000001111111111111111000000100000000001111111111111111000000100000011111111111111110000001000011111111111111110000001
DEAL::000000000000000011111111111111110000000000000000011111111111111110000000000000000000000011111111111111110000000000000000011111111111111110000000000000001111111111111111000000000001111111111111111000000000000000001111111111111111000000000000000001111111111111111000000000000011111111111111110000000000011111111111111110000000
DEAL::000000000000000011111111111111110000001000000000011111111111111110000001000000000000000011111111111111110000001000000000011111111111111110000001000000001111111111111111000000100001111111111111111000000100000000001111111111111111000000100000000001111111111111111000000100000011111111111111110000001000011111111111111110000001
DEAL::Checking FE_DGQ<2>(3)1FE_Nedelec<2>(0)2 in 2d:
DEAL::00000000111111111111111100000011111111111111110000000011111111111111110000001111111111111111000000111111111111111100001111111111111111000000111111111111111100000011111111111111110000111111111111111100001111111111111111
DEAL::01010101111111111111111101010111111111111111110101010111111111111111110101011111111111111111010101111111111111111101011111111111111111010101111111111111111101010111111111111111110101111111111111111101011111111111111111
-DEAL::Checking FE_Nedelec<2>(0)1FESystem<2>(FE_DGQ<2>(1),2)1FESystem<2>(FE_Q<2>(2),1, FE_Nedelec<2>(0),2)2 in 2d:
+DEAL::00000000111111111111111100000011111111111111110000000011111111111111110000001111111111111111000000111111111111111100001111111111111111000000111111111111111100000011111111111111110000111111111111111100001111111111111111
+DEAL::01010101111111111111111101010111111111111111110101010111111111111111110101011111111111111111010101111111111111111101011111111111111111010101111111111111111101010111111111111111110101111111111111111101011111111111111111
+DEAL::Checking FE_Nedelec<2>(0)1FESystem<2>(FE_DGQ<2>(1), 2)1FESystem<2>(FE_Q<2>(2), 1, FE_Nedelec<2>(0), 2)2 in 2d:
+DEAL::000000001000000100000010000001000000000000000000001000000100000010000000000000000000000001000000100000010000001000000000000000000001000000100000010000000000000000001000000100000010000000000000000100000010000000000000000000010000001000000100000000000000000000100000010000001000000000000000000100000010000000000000000100000010000000000000000
+DEAL::000000001000001100000110000011000001000000000000001000001100000110000010000000000000000001000001100000110000011000001000000000000001000001100000110000010000000000001000001100000110000010000000000100000110000010000000000000010000011000001100000100000000000000100000110000011000001000000000000100000110000010000000000100000110000010000000000
DEAL::000000001000000100000010000001000000000000000000001000000100000010000000000000000000000001000000100000010000001000000000000000000001000000100000010000000000000000001000000100000010000000000000000100000010000000000000000000010000001000000100000000000000000000100000010000001000000000000000000100000010000000000000000100000010000000000000000
DEAL::000000001000001100000110000011000001000000000000001000001100000110000010000000000000000001000001100000110000011000001000000000000001000001100000110000010000000000001000001100000110000010000000000100000110000010000000000000010000011000001100000100000000000000100000110000011000001000000000000100000110000010000000000100000110000010000000000
// the top level directory of deal.II.
//
// ---------------------------------------------------------------------
-#include <deal.II/base/logstream.h>
-
-#include <deal.II/distributed/tria.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/fe_dgp.h>
-#include <deal.II/fe/fe_dgq.h>
-#include <deal.II/fe/fe_nedelec.h>
-#include <deal.II/fe/fe_q.h>
-#include <deal.II/fe/fe_raviart_thomas.h>
-#include <deal.II/fe/fe_system.h>
-
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/grid_out.h>
-#include <deal.II/grid/tria_iterator.h>
-
-#include <algorithm>
-#include <fstream>
-#include <iomanip>
-#include <string>
-
-#include "../tests.h"
+#include "dof_tools_common_parallel.h"
// check
// DoFTools::extract_dofs as in dof_tools_12 in parallel for fewer elements
// extracted vector of the global DoF, which has to be mapped with the locally
// owned IndexSet first.
-void
-output_bool_vector(std::vector<bool> &v)
-{
- for (unsigned int i = 0; i < v.size(); ++i)
- deallog << (v[i] ? '1' : '0');
- deallog << std::endl;
-}
-
-
-template <int dim, typename DoFHandlerType>
+template <typename DoFHandlerType>
void
check_this(const DoFHandlerType &dof_handler)
{
// only select first component
mask[0] = true;
- DoFTools::extract_dofs<dim, dim, DoFHandlerType>(dof_handler,
- ComponentMask(mask),
- selected_dofs);
+ DoFTools::extract_dofs(dof_handler, ComponentMask(mask), selected_dofs);
output_bool_vector(selected_dofs);
// also select last component
mask.back() = true;
- DoFTools::extract_dofs<dim, dim, DoFHandlerType>(dof_handler,
- ComponentMask(mask),
- selected_dofs);
+ DoFTools::extract_dofs(dof_handler, ComponentMask(mask), selected_dofs);
output_bool_vector(selected_dofs);
}
-
-
-template <int dim>
-void
-check(const FiniteElement<dim> &fe, const std::string &name)
-{
- deallog << "Checking " << name << " in " << dim << "d:" << std::endl;
-
- // create tria and dofhandler
- // objects. set different boundary
- // and sub-domain ids
- parallel::distributed::Triangulation<dim> tria(MPI_COMM_WORLD);
- GridGenerator::hyper_cube(tria, 0., 1.);
- tria.refine_global(1);
- for (unsigned int ref = 0; ref < 2; ++ref)
- {
- for (auto &cell : tria.active_cell_iterators())
- if (cell->is_locally_owned() && cell->center()(0) < .5 &&
- cell->center()(1) < .5)
- cell->set_refine_flag();
- tria.execute_coarsening_and_refinement();
- }
-
- // setup DoFHandler
- DoFHandler<dim> dof_handler(tria);
- dof_handler.distribute_dofs(fe);
-
- // setup hp DoFHandler
- hp::FECollection<dim> fe_collection(fe);
- hp::DoFHandler<dim> hp_dof_handler(tria);
- hp_dof_handler.distribute_dofs(fe_collection);
-
- check_this<dim, DoFHandler<dim>>(dof_handler);
- check_this<dim, hp::DoFHandler<dim>>(hp_dof_handler);
-}
-
-
-#define CHECK(EL, deg, dim) \
- { \
- FE_##EL<dim> EL(deg); \
- check(EL, #EL #deg); \
- }
-
-#define CHECK_SYS1(sub1, N1, dim) \
- { \
- FESystem<dim> q(sub1, N1); \
- check(q, #sub1 #N1); \
- }
-
-#define CHECK_SYS2(sub1, N1, sub2, N2, dim) \
- { \
- FESystem<dim> q(sub1, N1, sub2, N2); \
- check(q, #sub1 #N1 #sub2 #N2); \
- }
-
-#define CHECK_SYS3(sub1, N1, sub2, N2, sub3, N3, dim) \
- { \
- FESystem<dim> q(sub1, N1, sub2, N2, sub3, N3); \
- check(q, #sub1 #N1 #sub2 #N2 #sub3 #N3); \
- }
-
-#define CHECK_ALL(EL, deg) \
- { \
- CHECK(EL, deg, 2); \
- CHECK(EL, deg, 3); \
- }
-
-
-int
-main(int argc, char **argv)
-{
- try
- {
- Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1);
- MPILogInitAll logfile;
-
- CHECK_ALL(Q, 1)
- CHECK_ALL(Q, 2)
- CHECK_ALL(Q, 3)
-
- CHECK_ALL(DGQ, 0)
- CHECK_ALL(DGQ, 1)
- CHECK_ALL(DGQ, 3)
-
- CHECK_ALL(DGP, 0)
- CHECK_ALL(DGP, 1)
- CHECK_ALL(DGP, 3)
-
- CHECK(Nedelec, 0, 2)
- CHECK(Nedelec, 0, 3)
-
- CHECK(RaviartThomas, 0, 2)
- CHECK(RaviartThomas, 1, 2)
- CHECK(RaviartThomas, 2, 2)
-
- CHECK(RaviartThomasNodal, 0, 2)
- CHECK(RaviartThomasNodal, 1, 2)
- CHECK(RaviartThomasNodal, 2, 2)
- CHECK(RaviartThomasNodal, 0, 3)
- CHECK(RaviartThomasNodal, 1, 3)
- CHECK(RaviartThomasNodal, 2, 3)
-
- CHECK_SYS1(FE_Q<2>(1), 3, 2)
- CHECK_SYS1(FE_DGQ<2>(2), 2, 2)
- CHECK_SYS1(FE_DGP<2>(3), 1, 2)
-
- CHECK_SYS1(FE_Q<3>(1), 3, 3)
- CHECK_SYS1(FE_DGQ<3>(2), 2, 3)
- CHECK_SYS1(FE_DGP<3>(3), 1, 3)
-
- CHECK_SYS2(FE_Q<2>(1), 3, FE_DGQ<2>(2), 2, 2)
- CHECK_SYS2(FE_DGQ<2>(2), 2, FE_DGP<2>(3), 1, 2)
- CHECK_SYS2(FE_DGP<2>(3), 1, FE_DGQ<2>(2), 2, 2)
-
- CHECK_SYS3(FE_Q<2>(1), 3, FE_DGP<2>(3), 1, FE_Q<2>(1), 3, 2)
- CHECK_SYS3(FE_DGQ<2>(2), 2, FE_DGQ<2>(2), 2, FE_Q<2>(3), 3, 2)
- CHECK_SYS3(FE_DGP<2>(3), 1, FE_DGP<2>(3), 1, FE_Q<2>(2), 3, 2)
-
- CHECK_SYS3(FE_DGQ<3>(1), 3, FE_DGP<3>(3), 1, FE_Q<3>(1), 3, 3)
-
- // systems of systems
- CHECK_SYS3(
- (FESystem<2>(FE_Q<2>(1), 3)), 3, FE_DGQ<2>(0), 1, FE_Q<2>(1), 3, 2)
- CHECK_SYS3(FE_DGQ<2>(3),
- 1,
- FESystem<2>(FE_DGQ<2>(0), 3),
- 1,
- FESystem<2>(FE_Q<2>(2), 1, FE_DGQ<2>(0), 1),
- 2,
- 2)
-
- // systems with Nedelec elements
- CHECK_SYS2(FE_DGQ<2>(3), 1, FE_Nedelec<2>(0), 2, 2)
- CHECK_SYS3(FE_Nedelec<2>(0),
- 1,
- FESystem<2>(FE_DGQ<2>(1), 2),
- 1,
- FESystem<2>(FE_Q<2>(2), 1, FE_Nedelec<2>(0), 2),
- 2,
- 2)
-
- return 0;
- }
- catch (std::exception &exc)
- {
- deallog << std::endl
- << std::endl
- << "----------------------------------------------------"
- << std::endl;
- deallog << "Exception on processing: " << std::endl
- << exc.what() << std::endl
- << "Aborting!" << std::endl
- << "----------------------------------------------------"
- << std::endl;
- return 1;
- }
- catch (...)
- {
- deallog << std::endl
- << std::endl
- << "----------------------------------------------------"
- << std::endl;
- deallog << "Unknown exception!" << std::endl
- << "Aborting!" << std::endl
- << "----------------------------------------------------"
- << std::endl;
- return 1;
- };
-}
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::distribute_cell_to_dof_vector
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// this doesn't make much sense if
// the element is not primitive
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::distribute_cell_to_dof_vector
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// this doesn't make much sense if
// the element is not primitive
std::vector<bool> component_mask(dof_handler.get_fe().n_components(),
false);
component_mask[0] = true;
- DoFTools::extract_dofs<dim, dim, DoFHandler<dim>>(
- dof_handler, ComponentMask(component_mask), component_dofs);
+ DoFTools::extract_dofs(dof_handler,
+ ComponentMask(component_mask),
+ component_dofs);
for (unsigned int i = 0; i < dof_data.size(); ++i)
if (component_dofs[i] == true)
std::vector<bool> component_mask(dof_handler.get_fe().n_components(),
false);
component_mask.back() = true;
- DoFTools::extract_dofs<dim, dim, DoFHandler<dim>>(
- dof_handler, ComponentMask(component_mask), component_dofs);
+ DoFTools::extract_dofs(dof_handler,
+ ComponentMask(component_mask),
+ component_dofs);
for (unsigned int i = 0; i < dof_data.size(); ++i)
if (component_dofs[i] == true)
dof_data(i) = i + 1;
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::count_boundary_dofs
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// no other args
deallog << dof_handler.n_boundary_dofs() << std::endl;
// with std::map
- std::map<types::boundary_id, const Function<dim> *> fm;
+ std::map<types::boundary_id, const Function<dof_handler.dimension> *> fm;
fm[0] = nullptr;
deallog << dof_handler.n_boundary_dofs(fm) << std::endl;
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// test doesn't make much sense if
// no boundary dofs exist
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// test doesn't make much sense if
// no boundary dofs exist
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// test doesn't make much sense if
// no boundary dofs exist
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// test doesn't make much sense if
// no boundary dofs exist
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// test doesn't make much sense if
// no boundary dofs exist
DoFTools::map_dof_to_boundary_indices(dof_handler, set, map);
// create sparsity pattern
- std::map<types::boundary_id, const Function<dim> *> boundary_ids;
+ std::map<types::boundary_id, const Function<dof_handler.dimension> *> boundary_ids;
boundary_ids[0] = nullptr;
SparsityPattern sp(dof_handler.n_boundary_dofs(boundary_ids),
dof_handler.max_couplings_between_dofs());
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// test doesn't make much sense if
// no boundary dofs exist
DoFTools::map_dof_to_boundary_indices(dof_handler, set, map);
// create sparsity pattern
- std::map<types::boundary_id, const Function<dim> *> boundary_ids;
+ std::map<types::boundary_id, const Function<dof_handler.dimension> *> boundary_ids;
boundary_ids[0] = nullptr;
DynamicSparsityPattern sp(dof_handler.n_boundary_dofs(boundary_ids));
DoFTools::make_boundary_sparsity_pattern(dof_handler, boundary_ids, map, sp);
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// test doesn't make much sense if
// no boundary dofs exist
set.insert(0);
DoFTools::map_dof_to_boundary_indices(dof_handler, set, map);
- std::map<types::boundary_id, const Function<dim> *> boundary_ids;
+ std::map<types::boundary_id, const Function<dof_handler.dimension> *> boundary_ids;
boundary_ids[0] = nullptr;
const unsigned int n_boundary_dofs =
dof_handler.n_boundary_dofs(boundary_ids);
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// test doesn't make much sense if
// no boundary dofs exist
set.insert(0);
DoFTools::map_dof_to_boundary_indices(dof_handler, set, map);
- std::map<types::boundary_id, const Function<dim> *> boundary_ids;
+ std::map<types::boundary_id, const Function<dof_handler.dimension> *> boundary_ids;
boundary_ids[0] = nullptr;
const types::global_dof_index n_boundary_dofs =
dof_handler.n_boundary_dofs(boundary_ids);
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// create sparsity pattern
SparsityPattern sp(dof_handler.n_dofs(),
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// create sparsity pattern
DynamicSparsityPattern sp(dof_handler.n_dofs());
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// we split up the matrix into
// blocks according to the number
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// we split up the matrix into
// blocks according to the number
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
}
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
Table<2, DoFTools::Coupling> mask_int;
Table<2, DoFTools::Coupling> mask_ext;
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// create sparsity pattern
SparsityPattern sp(dof_handler.n_dofs(),
DoFHandler<dim> dof_handler(tr);
dof_handler.distribute_dofs(fe);
- check_this(dof_handler);
+ check_this<DoFHandler<dim> >(dof_handler);
}
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
Table<2, DoFTools::Coupling> mask_int;
Table<2, DoFTools::Coupling> mask_ext;
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// we split up the matrix into
// blocks according to the number
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// we split up the matrix into
// blocks according to the number
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
// there's presently a crash in the
// Raviart-Thomas element. don't
std::string::npos)
return;
- Functions::ConstantFunction<dim> test_func(
+ Functions::ConstantFunction<dof_handler.dimension> test_func(
1, dof_handler.get_fe().n_components());
// don't run this test if hanging
deallog << cm.max_constraint_indirections() << std::endl;
// L_2 project constant function onto field
- QGauss<dim> quadrature(6);
+ QGauss<dof_handler.dimension> quadrature(6);
Vector<double> solution(dof_handler.n_dofs());
VectorTools::project(dof_handler, cm, quadrature, test_func, solution);
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// DoFTools::extract_dofs_with_support_on_boundary
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
std::vector<bool> component_select(dof_handler.get_fe().n_components(), true);
std::vector<bool> boundary_dofs(dof_handler.n_dofs());
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
- Functions::CosineFunction<dim> test_func(dof_handler.get_fe().n_components());
+ Functions::CosineFunction<dof_handler.dimension> test_func(dof_handler.get_fe().n_components());
AffineConstraints<double> cm;
deallog << cm.n_constraints() << std::endl;
deallog << cm.max_constraint_indirections() << std::endl;
- QGauss<dim> quadrature(6);
+ QGauss<dof_handler.dimension> quadrature(6);
Vector<double> unconstrained(dof_handler.n_dofs());
Vector<double> constrained(dof_handler.n_dofs());
// forward declaration of the function that must be provided in the
// .cc files
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler);
+check_this(const DoFHandlerType &dof_handler);
cell != tria.end();
++cell)
cell->set_subdomain_id(cell->level());
+
+ // setup DoFHandler
DoFHandler<dim> dof_handler(tria);
dof_handler.distribute_dofs(fe);
+ // setup hp DoFHandler
+ hp::FECollection<dim> fe_collection(fe);
+ hp::DoFHandler<dim> hp_dof_handler(tria);
+ hp_dof_handler.distribute_dofs(fe_collection);
+
// call main function in .cc files
- check_this(dof_handler);
+ check_this<DoFHandler<dof_handler.dimension, dof_handler.space_dimension> >(dof_handler);
+ check_this<hp::DoFHandler<hp_dof_handler.dimension, hp_dof_handler.space_dimension> >(hp_dof_handler);
}
--- /dev/null
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2003 - 2018 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE.md at
+// the top level directory of deal.II.
+//
+// ---------------------------------------------------------------------
+
+// common parallel framework for the various dof_tools_*.cc tests
+
+#include <deal.II/base/logstream.h>
+
+#include <deal.II/distributed/tria.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/fe_dgp.h>
+#include <deal.II/fe/fe_dgq.h>
+#include <deal.II/fe/fe_nedelec.h>
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_raviart_thomas.h>
+#include <deal.II/fe/fe_system.h>
+
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/grid_out.h>
+#include <deal.II/grid/tria_iterator.h>
+
+#include <algorithm>
+#include <fstream>
+#include <iomanip>
+#include <string>
+
+#include "../tests.h"
+
+// forward declaration of the function that must be provided in the
+// .cc files
+template <typename DoFHandlerType>
+void
+check_this(const DoFHandlerType &dof_handler);
+
+
+
+void
+output_bool_vector(std::vector<bool> &v)
+{
+ for (unsigned int i = 0; i < v.size(); ++i)
+ deallog << (v[i] ? '1' : '0');
+ deallog << std::endl;
+}
+
+
+
+template <int dim>
+void
+check(const FiniteElement<dim> &fe, const std::string &name)
+{
+ deallog << "Checking " << name << " in " << dim << "d:" << std::endl;
+
+ // create tria and dofhandler
+ // objects. set different boundary
+ // and sub-domain ids
+ parallel::distributed::Triangulation<dim> tria(MPI_COMM_WORLD);
+ GridGenerator::hyper_cube(tria, 0., 1.);
+ tria.refine_global(1);
+ for (unsigned int ref = 0; ref < 2; ++ref)
+ {
+ for (auto &cell : tria.active_cell_iterators())
+ if (cell->is_locally_owned() && cell->center()(0) < .5 &&
+ cell->center()(1) < .5)
+ cell->set_refine_flag();
+ tria.execute_coarsening_and_refinement();
+ }
+
+ // setup DoFHandler
+ DoFHandler<dim> dof_handler(tria);
+ dof_handler.distribute_dofs(fe);
+
+ // setup hp DoFHandler
+ hp::FECollection<dim> fe_collection(fe);
+ hp::DoFHandler<dim> hp_dof_handler(tria);
+ hp_dof_handler.distribute_dofs(fe_collection);
+
+ check_this<DoFHandler<dof_handler.dimension, dof_handler.space_dimension> >(dof_handler);
+ check_this<hp::DoFHandler<hp_dof_handler.dimension, hp_dof_handler.space_dimension> >(hp_dof_handler);
+}
+
+
+
+#define CHECK(EL, deg, dim) \
+ { \
+ FE_##EL<dim> EL(deg); \
+ check(EL, #EL #deg); \
+ }
+
+#define CHECK_SYS1(sub1, N1, dim) \
+ { \
+ FESystem<dim> q(sub1, N1); \
+ check(q, #sub1 #N1); \
+ }
+
+#define CHECK_SYS2(sub1, N1, sub2, N2, dim) \
+ { \
+ FESystem<dim> q(sub1, N1, sub2, N2); \
+ check(q, #sub1 #N1 #sub2 #N2); \
+ }
+
+#define CHECK_SYS3(sub1, N1, sub2, N2, sub3, N3, dim) \
+ { \
+ FESystem<dim> q(sub1, N1, sub2, N2, sub3, N3); \
+ check(q, #sub1 #N1 #sub2 #N2 #sub3 #N3); \
+ }
+
+#define CHECK_ALL(EL, deg) \
+ { \
+ CHECK(EL, deg, 2); \
+ CHECK(EL, deg, 3); \
+ }
+
+
+
+int
+main(int argc, char **argv)
+{
+ try
+ {
+ Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1);
+ MPILogInitAll logfile;
+
+ CHECK_ALL(Q, 1)
+ CHECK_ALL(Q, 2)
+ CHECK_ALL(Q, 3)
+
+ CHECK_ALL(DGQ, 0)
+ CHECK_ALL(DGQ, 1)
+ CHECK_ALL(DGQ, 3)
+
+ CHECK_ALL(DGP, 0)
+ CHECK_ALL(DGP, 1)
+ CHECK_ALL(DGP, 3)
+
+ CHECK(Nedelec, 0, 2)
+ CHECK(Nedelec, 0, 3)
+
+ CHECK(RaviartThomas, 0, 2)
+ CHECK(RaviartThomas, 1, 2)
+ CHECK(RaviartThomas, 2, 2)
+
+ CHECK(RaviartThomasNodal, 0, 2)
+ CHECK(RaviartThomasNodal, 1, 2)
+ CHECK(RaviartThomasNodal, 2, 2)
+ CHECK(RaviartThomasNodal, 0, 3)
+ CHECK(RaviartThomasNodal, 1, 3)
+ CHECK(RaviartThomasNodal, 2, 3)
+
+ CHECK_SYS1(FE_Q<2>(1), 3, 2)
+ CHECK_SYS1(FE_DGQ<2>(2), 2, 2)
+ CHECK_SYS1(FE_DGP<2>(3), 1, 2)
+
+ CHECK_SYS1(FE_Q<3>(1), 3, 3)
+ CHECK_SYS1(FE_DGQ<3>(2), 2, 3)
+ CHECK_SYS1(FE_DGP<3>(3), 1, 3)
+
+ CHECK_SYS2(FE_Q<2>(1), 3, FE_DGQ<2>(2), 2, 2)
+ CHECK_SYS2(FE_DGQ<2>(2), 2, FE_DGP<2>(3), 1, 2)
+ CHECK_SYS2(FE_DGP<2>(3), 1, FE_DGQ<2>(2), 2, 2)
+
+ CHECK_SYS3(FE_Q<2>(1), 3, FE_DGP<2>(3), 1, FE_Q<2>(1), 3, 2)
+ CHECK_SYS3(FE_DGQ<2>(2), 2, FE_DGQ<2>(2), 2, FE_Q<2>(3), 3, 2)
+ CHECK_SYS3(FE_DGP<2>(3), 1, FE_DGP<2>(3), 1, FE_Q<2>(2), 3, 2)
+
+ CHECK_SYS3(FE_DGQ<3>(1), 3, FE_DGP<3>(3), 1, FE_Q<3>(1), 3, 3)
+
+ // systems of systems
+ CHECK_SYS3(
+ (FESystem<2>(FE_Q<2>(1), 3)), 3, FE_DGQ<2>(0), 1, FE_Q<2>(1), 3, 2)
+ CHECK_SYS3(FE_DGQ<2>(3),
+ 1,
+ FESystem<2>(FE_DGQ<2>(0), 3),
+ 1,
+ FESystem<2>(FE_Q<2>(2), 1, FE_DGQ<2>(0), 1),
+ 2,
+ 2)
+
+ // systems with Nedelec elements
+ CHECK_SYS2(FE_DGQ<2>(3), 1, FE_Nedelec<2>(0), 2, 2)
+ CHECK_SYS3(FE_Nedelec<2>(0),
+ 1,
+ FESystem<2>(FE_DGQ<2>(1), 2),
+ 1,
+ FESystem<2>(FE_Q<2>(2), 1, FE_Nedelec<2>(0), 2),
+ 2,
+ 2)
+
+ return 0;
+ }
+ catch (std::exception &exc)
+ {
+ deallog << std::endl
+ << std::endl
+ << "----------------------------------------------------"
+ << std::endl;
+ deallog << "Exception on processing: " << std::endl
+ << exc.what() << std::endl
+ << "Aborting!" << std::endl
+ << "----------------------------------------------------"
+ << std::endl;
+ return 1;
+ }
+ catch (...)
+ {
+ deallog << std::endl
+ << std::endl
+ << "----------------------------------------------------"
+ << std::endl;
+ deallog << "Unknown exception!" << std::endl
+ << "Aborting!" << std::endl
+ << "----------------------------------------------------"
+ << std::endl;
+ return 1;
+ };
+}
--- /dev/null
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2004 - 2019 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE.md at
+// the top level directory of deal.II.
+//
+// ---------------------------------------------------------------------
+
+#ifndef dealii_dof_tools_fake_hp_h
+#define dealii_dof_tools_fake_hp_h
+// fake hp check_this function that does nothing
+
+template<>
+void
+check_this(const hp::DoFHandler<1, 1> &dof_handler)
+{
+ // nothing to do here
+}
+
+template<>
+void
+check_this(const hp::DoFHandler<1, 2> &dof_handler)
+{
+ // nothing to do here
+}
+
+template<>
+void
+check_this(const hp::DoFHandler<1, 3> &dof_handler)
+{
+ // nothing to do here
+}
+
+template<>
+void
+check_this(const hp::DoFHandler<2, 1> &dof_handler)
+{
+ // nothing to do here
+}
+
+template<>
+void
+check_this(const hp::DoFHandler<2, 2> &dof_handler)
+{
+ // nothing to do here
+}
+
+template<>
+void
+check_this(const hp::DoFHandler<2, 3> &dof_handler)
+{
+ // nothing to do here
+}
+
+template<>
+void
+check_this(const hp::DoFHandler<3, 1> &dof_handler)
+{
+ // nothing to do here
+}
+
+template<>
+void
+check_this(const hp::DoFHandler<3, 2> &dof_handler)
+{
+ // nothing to do here
+}
+
+template<>
+void
+check_this(const hp::DoFHandler<3, 3> &dof_handler)
+{
+ // nothing to do here
+}
+
+#endif // dealii_dof_tools_fake_hp_h
// forward declaration of the function that must be provided in the
// .cc files
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler);
+check_this(const DoFHandlerType &dof_handler);
component_mask[c] = (int_mask & (1 << c));
std::vector<bool> dofs(dof.n_dofs());
- DoFTools::extract_dofs<dim, dim, DoFHandler<dim>>(
- dof, ComponentMask(component_mask), dofs);
+ DoFTools::extract_dofs(dof, ComponentMask(component_mask), dofs);
for (unsigned int d = 0; d < dof.n_dofs(); ++d)
deallog << dofs[d];
component_mask[c] = (int_mask & (1 << c));
std::vector<bool> dofs(dof.n_dofs());
- DoFTools::extract_dofs<dim, dim, hp::DoFHandler<dim>>(
- dof, ComponentMask(component_mask), dofs);
+ DoFTools::extract_dofs(dof, ComponentMask(component_mask), dofs);
for (unsigned int d = 0; d < dof.n_dofs(); ++d)
deallog << dofs[d];
component_mask[0] = true;
std::vector<bool> dofs(dof.n_dofs());
- DoFTools::extract_dofs<dim, dim, DoFHandler<dim>>(
- dof, ComponentMask(component_mask), dofs);
+ DoFTools::extract_dofs(dof, ComponentMask(component_mask), dofs);
for (unsigned int d = 0; d < dof.n_dofs(); ++d)
deallog << dofs[d];
component_mask[comp] = true;
std::vector<bool> dofs(dof.n_dofs());
- DoFTools::extract_dofs<dim, dim, DoFHandler<dim>>(
- dof, ComponentMask(component_mask), dofs);
+ DoFTools::extract_dofs(dof, ComponentMask(component_mask), dofs);
for (unsigned int d = 0; d < dof.n_dofs(); ++d)
deallog << dofs[d];
component_mask[c] = (int_mask & (1 << c));
std::vector<bool> dofs(dof.n_dofs());
- DoFTools::extract_dofs<dim, dim, DoFHandler<dim>>(
- dof, BlockMask(component_mask), dofs);
+ DoFTools::extract_dofs(dof, BlockMask(component_mask), dofs);
for (unsigned int d = 0; d < dof.n_dofs(); ++d)
deallog << dofs[d];
component_mask[c] = (int_mask & (1 << c));
std::vector<bool> dofs(dof.n_dofs());
- DoFTools::extract_dofs<dim, dim, hp::DoFHandler<dim>>(
- dof, BlockMask(component_mask), dofs);
+ DoFTools::extract_dofs(dof, BlockMask(component_mask), dofs);
for (unsigned int d = 0; d < dof.n_dofs(); ++d)
deallog << dofs[d];
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// FE::hp_constraints_are_implemented
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
deallog << dof_handler.get_fe().get_name() << ": "
<< (dof_handler.get_fe().hp_constraints_are_implemented() ? "true" :
#include "../tests.h"
#include "dof_tools_common.h"
+#include "dof_tools_fake_hp.inst.in"
// check
// FiniteElement::n_dofs_per_object
-template <int dim>
+template <typename DoFHandlerType>
void
-check_this(const DoFHandler<dim> &dof_handler)
+check_this(const DoFHandlerType &dof_handler)
{
- const FiniteElement<dim> &fe = dof_handler.get_fe();
+ const FiniteElement<dof_handler.dimension> &fe = dof_handler.get_fe();
deallog << fe.dofs_per_vertex << ' ' << fe.dofs_per_line << ' '
<< fe.dofs_per_quad << ' ' << fe.dofs_per_hex << std::endl;
deallog << fe.template n_dofs_per_object<0>() << ' '