whole perimeter of a cell's (or a face's) interior in case two or more
manifolds are adjacent to the cell, like a Boundary object and the
StraightBoundary in the interior. If only one manifold is present, the new
-points are interpolated from the surrounding vertices only. In case the
-smoothing is undesired, it can be disabled by an argument
-@p smooth_support_points passed to the constructor of MappingQGeneric.
+points are interpolated from the surrounding vertices only.
<br>
(Martin Kronbichler, 2017/03/17)
Manifold::add_new_points that allows to compute multiple new points according
to a matrix of weights that are appended to the last argument of the
function. This function is used in MappingQGeneric and can be much more
-efficient for ChartManifold where ChartManifold::pull_back is an expensive
-operation.
+efficient for ChartManifold because ChartManifold::pull_back() calls are
+reused for several interpolation operations.
<br>
(Martin Kronbichler, 2017/03/17)
// ---------------------------------------------------------------------
//
-// Copyright (C) 2001 - 2016 by the deal.II authors
+// Copyright (C) 2001 - 2017 by the deal.II authors
//
// This file is part of the deal.II library.
//
*
* <h4>Behavior along curved boundaries and with different manifolds</h4>
*
- * As described above, one often only knows a manifold description of a
- * surface but not the interior of the computational domain. In such a case, a
- * StraightBoundary object will be assigned to the interior entities that
- * describes a usual planar coordinate system where the additional points for
- * the higher order mapping are placed exactly according to a bi-/trilinear
- * mapping. When combined with a non-flat manifold on the boundary, for
- * example a circle, the two manifold descriptions are in general
- * incompatible. For example, a StraightBoundary defined solely through the
- * cell's vertices would put an interior point located at some small distance
- * epsilon away from the boundary along a flat line and thus in general
- * outside the concave part of a circle. If the polynomial degree of
- * MappingQGeneric is sufficiently high, the transformation from the reference
- * cell to such a cell would in general contain inverted regions close to the
- * boundary.
- *
- * In order to avoid this situation, this class applies a smoothing on cells
- * adjacent to the boundary by using so-called Laplace smoothing by
- * default. In the algorithm that computing additional points, the
- * compute_mapping_support_points() method, all the entities of the cells are
- * passed through hierarchically, starting from the lines to the quads and
- * finally hexes. The elements higher up in the hierarchy that sit on the
- * boundary will then get their points interpolated from all the surrounding
- * points and not just the corner points. If only a line is assigned a curved
- * boundary but the adjacent quad is on a flat manifold, the points inside the
- * quad will be computed according to the deformed line and thus always result
- * in a well-defined transformation. This smoothing can be disabled by setting
- * the optional argument @p smooth_support_points to false, placing the
- * additional points strictly according to the manifold. This is usually the
- * most efficient choice in case different manifolds are present that are
- * compatible with each other.
- *
- * While the smoothing approach works well for filling holes or avoiding
- * inversions with low and medium convergence orders up to approximately three
- * to four, there is nonetheless an inherent shortcoming because of a
- * discontinuous mapping that switches from a curved manifold to a flat
- * manifold within one layer of elements. This will cause the Jacobian
- * transformation to have jumps between the first and second element layer
- * that can reduce the order of convergence. For example, the convergence
- * rates for solving the Laplacian on a circle where only the boundary is
- * deformed and the above mesh smoothing algorithm is applied will typically
- * not exceed 3.5 (or 3 in the elements adjacent to the boundary), even for
- * fourth or fifth degree polynomials. In such a case, the curved manifold
- * needs to be switched to a flat manifold in a smooth way that does not
- * depend on the mesh size and eventuell covers a whole layer of cells.
+ * For the behavior of the mapping and convergence rates in case of mixing
+ * different manifolds, please consult the respective section of
+ * MappingQGeneric.
*
* @author Ralf Hartmann, 2000, 2001, 2005; Guido Kanschat 2000, 2001,
* Wolfgang Bangerth, 2015
* The value of @p use_mapping_q_on_all_cells is ignored if @p dim is not
* equal to @p spacedim, i.e., if we are considering meshes on surfaces
* embedded into higher dimensional spaces.
- *
- * The optional parameter @p smooth_support_points controls whether
- * smoothing on objects where different manifolds meet according to the
- * general class description should be enabled (default) or not.
*/
MappingQ (const unsigned int polynomial_degree,
- const bool use_mapping_q_on_all_cells = false,
- const bool smooth_support_points = true);
+ const bool use_mapping_q_on_all_cells = false);
/**
* Copy constructor.
* describes a usual planar coordinate system where the additional points for
* the higher order mapping are placed exactly according to a bi-/trilinear
* mapping. When combined with a non-flat manifold on the boundary, for
- * example a circle, the two manifold descriptions are in general
- * incompatible. For example, a StraightBoundary defined solely through the
- * cell's vertices would put an interior point located at some small distance
- * epsilon away from the boundary along a flat line and thus in general
- * outside the concave part of a circle. If the polynomial degree of
- * MappingQGeneric is sufficiently high, the transformation from the reference
- * cell to such a cell would in general contain inverted regions close to the
- * boundary.
+ * example a circle bulging into the interior of a square cell, the two
+ * manifold descriptions are in general incompatible. For example, a
+ * FlatManifold defined solely through the cell's vertices would put an
+ * interior point located at some small distance epsilon away from the
+ * boundary along a straight line and thus in general outside the concave part
+ * of a circle. If the polynomial degree of MappingQ is sufficiently high, the
+ * transformation from the reference cell to such a cell would in general
+ * contain inverted regions close to the boundary.
*
* In order to avoid this situation, this class applies a smoothing on cells
* adjacent to the boundary by using so-called Laplace smoothing by
- * default. In the algorithm that computing additional points, the
+ * default. In the algorithm that computes additional points, the
* compute_mapping_support_points() method, all the entities of the cells are
* passed through hierarchically, starting from the lines to the quads and
- * finally hexes. The elements higher up in the hierarchy that sit on the
- * boundary will then get their points interpolated from all the surrounding
- * points and not just the corner points. If only a line is assigned a curved
- * boundary but the adjacent quad is on a flat manifold, the points inside the
- * quad will be computed according to the deformed line and thus always result
- * in a well-defined transformation. This smoothing can be disabled by setting
- * the optional argument @p smooth_support_points to false, placing the
- * additional points strictly according to the manifold. This is usually the
- * most efficient choice in case different manifolds are present that are
- * compatible with each other.
+ * finally hexes. Points on objects higher up in the hierarchy are obtained
+ * from the manifold associated with that object, taking into account all the
+ * points previously computed by the manifolds associated with the
+ * lower-dimensional objects, not just the vertices. If only a line is
+ * assigned a curved boundary but the adjacent quad is on a flat manifold, the
+ * flat manifold on the quad will take the points on the deformed line into
+ * account when interpolating the position of the additional points inside the
+ * quad and thus always result in a well-defined transformation.
*
* While the smoothing approach works well for filling holes or avoiding
* inversions with low and medium convergence orders up to approximately three
- * to four, there is nonetheless an inherent shortcoming because of a
- * discontinuous mapping that switches from a curved manifold to a flat
- * manifold within one layer of elements. This will cause the Jacobian
- * transformation to have jumps between the first and second element layer
- * that can reduce the order of convergence. For example, the convergence
- * rates for solving the Laplacian on a circle where only the boundary is
- * deformed and the above mesh smoothing algorithm is applied will typically
- * not exceed 3.5 (or 3 in the elements adjacent to the boundary), even for
- * fourth or fifth degree polynomials. In such a case, the curved manifold
- * needs to be switched to a flat manifold in a smooth way that does not
- * depend on the mesh size and eventuell covers a whole layer of cells.
+ * to four, there is nonetheless an inherent shortcoming when switching from a
+ * curved manifold to a flat manifold over a face (and the associated
+ * smoothing). The finite element theory (see e.g. Strang and Fix, 1973,
+ * Sections 2.2 and 3.3 and in particular Theorem 3.6) requires the
+ * transformation to be globally C^0 continuous also over several elements and
+ * to be uniform as the mesh is refined. Even though the Laplace smoothing
+ * fixes the discontinuity within one layer of cells, it cannot provide
+ * uniformity as the change is always within one layer of elements only. For
+ * example, the convergence rates for solving the Laplacian on a circle where
+ * only the boundary is deformed and the above mesh smoothing algorithm is
+ * applied will typically not exceed 3.5 (or 3 in the elements adjacent to the
+ * boundary), even for fourth or fifth degree polynomials. In such a case, the
+ * curved manifold needs to be switched to a flat manifold in a smooth way
+ * that does not depend on the mesh size and eventually covers a region of
+ * cells instead of only those that are immediately adjacent to the circular
+ * boundary.
*
* @author Wolfgang Bangerth, 2015, Martin Kronbichler, 2017
*/
* Constructor. @p polynomial_degree denotes the polynomial degree of the
* polynomials that are used to map cells from the reference to the real
* cell.
- *
- * The optional parameter @p smooth_support_points controls whether
- * smoothing according to the general class description should be enabled
- * (default) or not.
*/
- MappingQGeneric (const unsigned int polynomial_degree,
- const bool smooth_support_points = true);
+ MappingQGeneric (const unsigned int polynomial_degree);
/**
* Copy constructor.
*/
const unsigned int n_shape_functions;
+ /*
+ * The default line support points. Is used in when the shape function
+ * values are computed.
+ *
+ * The number of quadrature points depends on the degree of this
+ * class, and it matches the number of degrees of freedom of an
+ * FE_Q<1>(this->degree).
+ */
+ QGaussLobatto<1> line_support_points;
+
/**
* Tensors of covariant transformation at each of the quadrature points.
* The matrix stored is the Jacobian * G^{-1}, where G = Jacobian^{t} *
*/
const unsigned int polynomial_degree;
- /**
- * Stores whether we want to smooth the placement of interior points on flat
- * manifolds.
- */
- const bool smooth_support_points;
-
/*
* The default line support points. These are used when computing
* the location in real space of the support points on lines and
* point weights from the perimeter to the interior of a hex.
*
* The table itself contains as many columns as there are surrounding points
- * to a particular object (2 for a vertex, <code>4 + 4*(degree-1)</code> for
+ * to a particular object (2 for a line, <code>4 + 4*(degree-1)</code> for
* a quad, <code>8 + 12*(degree-1) + 6*(degree-1)*(degree-1)</code> for a
* hex) and as many rows as there are strictly interior points.
*
*/
std::vector<Table<2,double> > support_point_weights_perimeter_to_interior;
- /**
- * A vector of tables of weights by which we multiply the locations of the
- * vertex points of an object (line, quad, hex) to get the location of
- * interior support points.
- *
- * As opposed to @p support_point_weights_perimeter_to_interior, this table
- * takes only the vertex points into account and not intermediate points
- * inside the objects. Thus, the content of this table simply corresponds to
- * the evaluation of the linear shape functions in the dimension of the
- * object.
- *
- * Access into the vector of tables is by @p [structdim-1], i.e., use 0 to
- * access the support point weights on a line (i.e., the interior points of
- * the GaussLobatto quadrature), use 1 to access the support point weights
- * from to perimeter to the interior of a quad, and use 2 to access the
- * support point weights from the perimeter to the interior of a hex.
- *
- * The table itself contains as many columns as there are vertices on a
- * particular object (2 for a vertex, 4 for a quad, 8 for a hex) and as many
- * rows as there are strictly interior points.
- */
- std::vector<Table<2,double> > support_point_weights_interior;
-
/**
* A table of weights by which we multiply the locations of the vertex
* points of the cell to get the location of all additional support points,
template<int dim, int spacedim>
MappingQ<dim,spacedim>::MappingQ (const unsigned int degree,
- const bool use_mapping_q_on_all_cells,
- const bool smooth_support_points)
+ const bool use_mapping_q_on_all_cells)
:
polynomial_degree (degree),
// created via the shared_ptr objects
qp_mapping (this->polynomial_degree>1
?
- std_cxx11::shared_ptr<const MappingQGeneric<dim,spacedim> >(new MappingQGeneric<dim,spacedim>(degree, smooth_support_points))
+ std_cxx11::shared_ptr<const MappingQGeneric<dim,spacedim> >(new MappingQGeneric<dim,spacedim>(degree))
:
q1_mapping)
{}
// Construct the tensor product polynomials used as shape functions for the
// Qp mapping of cells at the boundary.
- QGaussLobatto<1> line_support_points(data.polynomial_degree+1);
const TensorProductPolynomials<dim>
- tensor_pols (Polynomials::generate_complete_Lagrange_basis(line_support_points.get_points()));
+ tensor_pols (Polynomials::generate_complete_Lagrange_basis(data.line_support_points.get_points()));
Assert (n_shape_functions==tensor_pols.n(),
ExcInternalError());
-
-
template<int dim, int spacedim>
MappingQGeneric<dim,spacedim>::InternalData::InternalData (const unsigned int polynomial_degree)
:
polynomial_degree (polynomial_degree),
- n_shape_functions (Utilities::fixed_power<dim>(polynomial_degree+1))
+ n_shape_functions (Utilities::fixed_power<dim>(polynomial_degree+1)),
+ line_support_points(QGaussLobatto<1>(polynomial_degree+1))
{}
return output;
}
- /**
- * Collects all interior points for the various dimensions.
- */
- std::vector<Table<2,double> >
- compute_support_point_weights_interior(const unsigned int polynomial_degree,
- const unsigned int dim)
- {
- Assert(dim > 0 && dim <= 3, ExcImpossibleInDim(dim));
- std::vector<Table<2,double> > output(dim);
- if (polynomial_degree <= 1)
- return output;
-
- // fill the 1D interior weights
- QGaussLobatto<1> quadrature(polynomial_degree+1);
- output[0].reinit(polynomial_degree-1, GeometryInfo<1>::vertices_per_cell);
- for (unsigned int q=0; q<polynomial_degree-1; ++q)
- for (unsigned int i=0; i<GeometryInfo<1>::vertices_per_cell; ++i)
- output[0](q,i) = GeometryInfo<1>::d_linear_shape_function(quadrature.point(q+1),
- i);
-
- // fill the 2D interior points
- if (dim > 1)
- {
- output[1].reinit(Utilities::fixed_power<2>(polynomial_degree-1),
- GeometryInfo<2>::vertices_per_cell);
- for (unsigned int q=0, q2=0; q2<polynomial_degree-1; ++q2)
- for (unsigned int q1=0; q1<polynomial_degree-1; ++q1, ++q)
- {
- Point<2> point(quadrature.point(q1+1)[0],
- quadrature.point(q2+1)[0]);
- for (unsigned int i=0; i<GeometryInfo<2>::vertices_per_cell; ++i)
- output[1](q,i) = GeometryInfo<2>::d_linear_shape_function(point, i);
- }
- }
-
- // fill the 3D interior points
- if (dim > 2)
- {
- output[2].reinit(Utilities::fixed_power<3>(polynomial_degree-1),
- GeometryInfo<3>::vertices_per_cell);
- for (unsigned int q=0, q3=0; q3<polynomial_degree-1; ++q3)
- for (unsigned int q2=0; q2<polynomial_degree-1; ++q2)
- for (unsigned int q1=0; q1<polynomial_degree-1; ++q1, ++q)
- {
- Point<3> point(quadrature.point(q1+1)[0],
- quadrature.point(q2+1)[0],
- quadrature.point(q3+1)[0]);
- for (unsigned int i=0; i<GeometryInfo<3>::vertices_per_cell; ++i)
- output[2](q,i) = GeometryInfo<3>::d_linear_shape_function(point, i);
- }
- }
-
- return output;
- }
-
/**
* Collects all interior points for the various dimensions.
*/
if (polynomial_degree <= 1)
return Table<2,double>();
- FE_Q<dim> fe(polynomial_degree);
- std::vector<Point<dim> > unit_support_points = fe.get_unit_support_points();
+ QGaussLobatto<dim> quadrature(polynomial_degree+1);
+ std::vector<unsigned int> h2l(quadrature.size());
+ FETools::hierarchic_to_lexicographic_numbering<dim>(polynomial_degree, h2l);
- Table<2,double> output(fe.dofs_per_cell - GeometryInfo<dim>::vertices_per_cell,
+ Table<2,double> output(quadrature.size() - GeometryInfo<dim>::vertices_per_cell,
GeometryInfo<dim>::vertices_per_cell);
for (unsigned int q=0; q<output.size(0); ++q)
for (unsigned int i=0; i<GeometryInfo<dim>::vertices_per_cell; ++i)
- output(q,i) = GeometryInfo<dim>::d_linear_shape_function(unit_support_points[q+GeometryInfo<dim>::vertices_per_cell],
+ output(q,i) = GeometryInfo<dim>::d_linear_shape_function(quadrature.point(h2l[q+GeometryInfo<dim>::vertices_per_cell]),
i);
return output;
template<int dim, int spacedim>
-MappingQGeneric<dim,spacedim>::MappingQGeneric (const unsigned int p,
- const bool smooth_support_points)
+MappingQGeneric<dim,spacedim>::MappingQGeneric (const unsigned int p)
:
polynomial_degree(p),
- smooth_support_points(smooth_support_points),
line_support_points(this->polynomial_degree+1),
fe_q(dim == 3 ? new FE_Q<dim>(this->polynomial_degree) : 0),
support_point_weights_perimeter_to_interior (compute_support_point_weights_perimeter_to_interior(this->polynomial_degree, dim)),
- support_point_weights_interior (compute_support_point_weights_interior(this->polynomial_degree, dim)),
support_point_weights_cell (compute_support_point_weights_cell<dim>(this->polynomial_degree))
{
Assert (p >= 1, ExcMessage ("It only makes sense to create polynomial mappings "
MappingQGeneric<dim,spacedim>::MappingQGeneric (const MappingQGeneric<dim,spacedim> &mapping)
:
polynomial_degree(mapping.polynomial_degree),
- smooth_support_points(mapping.smooth_support_points),
line_support_points(mapping.line_support_points),
fe_q(dim == 3 ? new FE_Q<dim>(*mapping.fe_q) : 0),
support_point_weights_perimeter_to_interior (mapping.support_point_weights_perimeter_to_interior),
- support_point_weights_interior (mapping.support_point_weights_interior),
support_point_weights_cell (mapping.support_point_weights_cell)
{}
const Point<dim> &p) const
{
// set up the polynomial space
- const QGaussLobatto<1> line_support_points (polynomial_degree + 1);
const TensorProductPolynomials<dim>
tensor_pols (Polynomials::generate_complete_Lagrange_basis(line_support_points.get_points()));
Assert (tensor_pols.n() == Utilities::fixed_power<dim>(polynomial_degree+1),
namespace
{
- /**
- * Ask the manifold descriptor to return intermediate points on the object
- * pointed to by the TriaIterator @p iter. This function tries to be
- * backward compatible with respect to the differences between
- * Boundary<dim,spacedim> and Manifold<dim,spacedim>, querying the first
- * whenever the passed @p manifold can be upgraded to a
- * Boundary<dim,spacedim>.
- */
- template <int dim, int spacedim, class TriaIterator>
- void add_intermediate_points(const Manifold<dim, spacedim> &manifold,
- const Table<2,double> &weight_table,
- const TriaIterator &iter,
- std::vector<Point<spacedim> > &points)
- {
- const unsigned int structdim = TriaIterator::AccessorType::structure_dimension;
-
- // Try backward compatibility option.
- const Boundary<dim,spacedim> *boundary
- = dynamic_cast<const Boundary<dim,spacedim> *>(&manifold);
- if (structdim < spacedim && boundary != NULL)
- // This is actually a boundary. Call old methods.
- {
- std::vector<Point<spacedim> > new_points(weight_table.size(0));
- switch (structdim)
- {
- case 1:
- {
- const typename Triangulation<dim,spacedim>::line_iterator line = iter;
- boundary->get_intermediate_points_on_line(line, new_points);
- break;
- }
- case 2:
- {
- const typename Triangulation<dim,spacedim>::quad_iterator quad = iter;
- boundary->get_intermediate_points_on_quad(quad, new_points);
- break;
- }
- default:
- Assert(false, ExcInternalError());
- break;
- }
- for (unsigned int i=0; i<new_points.size(); ++i)
- points.push_back(new_points[i]);
- }
- else
- {
- std::vector<Point<spacedim> > sp(GeometryInfo<structdim>::vertices_per_cell);
- for (unsigned int i=0; i<sp.size(); ++i)
- sp[i] = iter->vertex(i);
- manifold.add_new_points(sp, weight_table, points);
- }
- }
-
-
-
+ // We cannot query a manifold from the faces of a 1D elements (i.e.,
+ // vertices), which is why we add a specialization for the 3D case here
template <typename Iterator>
bool check_identical_manifolds_of_quads(const Iterator &)
{
// otherwise call the more complicated functions and ask for inner points
// from the boundary description
{
- std::vector<Point<spacedim> > line_points (this->polynomial_degree-1);
+ std::vector<Point<spacedim> > tmp_points;
// loop over each of the lines, and if it is at the boundary, then first
// get the boundary description and second compute the points on it
for (unsigned int line_no=0; line_no<GeometryInfo<dim>::lines_per_cell; ++line_no)
cell->get_manifold() :
line->get_manifold() );
- line_points.resize(0);
- add_intermediate_points (manifold, support_point_weights_interior[0],
- line, line_points);
-
- if (dim==3)
+ if (const Boundary<dim,spacedim> *boundary
+ = dynamic_cast<const Boundary<dim,spacedim> *>(&manifold))
{
- // in 3D, lines might be in wrong orientation. if so, reverse
- // the vector
- if (cell->line_orientation(line_no))
- a.insert (a.end(), line_points.begin(), line_points.end());
+ tmp_points.resize(this->polynomial_degree-1);
+ boundary->get_intermediate_points_on_line(line, tmp_points);
+ if (dim != 3 || cell->line_orientation(line_no))
+ a.insert (a.end(), tmp_points.begin(), tmp_points.end());
else
- a.insert (a.end(), line_points.rbegin(), line_points.rend());
+ a.insert (a.end(), tmp_points.rbegin(), tmp_points.rend());
}
else
- // in 2D, lines always have the correct orientation. simply append
- // all points
- a.insert (a.end(), line_points.begin(), line_points.end());
+ {
+ tmp_points.resize(2);
+ tmp_points[0] = cell->vertex(GeometryInfo<dim>::line_to_cell_vertices(line_no, 0));
+ tmp_points[1] = cell->vertex(GeometryInfo<dim>::line_to_cell_vertices(line_no, 1));
+ manifold.add_new_points(tmp_points,
+ support_point_weights_perimeter_to_interior[0], a);
+ }
}
}
}
const unsigned int faces_per_cell = GeometryInfo<3>::faces_per_cell;
// used if face quad at boundary or entirely in the interior of the domain
- std::vector<Point<3> > quad_points;
std::vector<Point<3> > tmp_points;
// loop over all faces and collect points on them
#endif
// On a quad, we have to check whether the manifold should determine the
- // point distribution or rather a weighted sum should be created. This
- // is the same logic as in the compute_mapping_support_points function
- // below
- bool all_manifold_ids_are_equal = true;
- for (unsigned int l=0; l<GeometryInfo<3>::lines_per_face; ++l)
- if (&face->line(l)->get_manifold() != &face->get_manifold())
- all_manifold_ids_are_equal = false;
- if (smooth_support_points == false || all_manifold_ids_are_equal ||
- (dynamic_cast<const Boundary<3,3> *>(&face->get_manifold()) &&
+ // point distribution from all surrounding points (new manifold code) or
+ // the old-style Boundary code should simply return the intermediate
+ // points. The second check is to find out whether the Boundary object
+ // is actually a StraightBoundary (the default flat manifold assigned to
+ // the triangulation if no manifold is assigned).
+ if ((dynamic_cast<const Boundary<3,3> *>(&face->get_manifold()) &&
std::string(typeid(face->get_manifold()).name()).find("StraightBoundary") ==
std::string::npos))
{
// ask the boundary/manifold object to return intermediate points on it
- quad_points.resize(0);
- add_intermediate_points(face->get_manifold(), support_point_weights_interior[1],
- face, quad_points);
-
- // in 3D, the orientation, flip and rotation of the face might not
- // match what we expect here, namely the standard orientation. thus
- // reorder points accordingly. since a Mapping uses the same shape
- // function as an FE_Q, we can ask a FE_Q to do the reordering for us.
- for (unsigned int i=0; i<quad_points.size(); ++i)
- a.push_back(quad_points[fe_q->adjust_quad_dof_index_for_face_orientation(i,
- face_orientation,
- face_flip,
- face_rotation)]);
+ tmp_points.resize((polynomial_degree-1)*(polynomial_degree-1));
+ const Boundary<3,3> *boundary = dynamic_cast<const Boundary<3,3> *>(&face->get_manifold());
+ boundary->get_intermediate_points_on_quad(face, tmp_points);
+ for (unsigned int i=0; i<tmp_points.size(); ++i)
+ a.push_back(tmp_points[fe_q->adjust_quad_dof_index_for_face_orientation(i,
+ face_orientation,
+ face_flip,
+ face_rotation)]);
}
else
{
- // need to extract the points surrounding a quad from the points
+ // extract the points surrounding a quad from the points
// already computed. First get the 4 vertices and then the points on
// the four lines
tmp_points.resize(4 + 4*(polynomial_degree-1));
add_quad_support_points(const Triangulation<2,3>::cell_iterator &cell,
std::vector<Point<3> > &a) const
{
- add_intermediate_points (cell->get_manifold(), support_point_weights_interior[1],
- cell, a);
+ if (const Boundary<2,3> *boundary =
+ dynamic_cast<const Boundary<2,3> *>(&cell->get_manifold()))
+ {
+ std::vector<Point<3> > points((polynomial_degree-1)*(polynomial_degree-1));
+ boundary->get_intermediate_points_on_quad(cell, points);
+ a.insert(a.end(), points.begin(), points.end());
+ }
+ else
+ {
+ std::vector<Point<3> > vertices;
+ for (unsigned int i=0; i<GeometryInfo<2>::vertices_per_cell; ++i)
+ vertices.push_back(cell->vertex(i));
+ Table<2,double> weights(Utilities::fixed_power<2>(polynomial_degree-1),
+ GeometryInfo<2>::vertices_per_cell);
+ for (unsigned int q=0, q2=0; q2<polynomial_degree-1; ++q2)
+ for (unsigned int q1=0; q1<polynomial_degree-1; ++q1, ++q)
+ {
+ Point<2> point(line_support_points.point(q1+1)[0],
+ line_support_points.point(q2+1)[0]);
+ for (unsigned int i=0; i<GeometryInfo<2>::vertices_per_cell; ++i)
+ weights(q,i) = GeometryInfo<2>::d_linear_shape_function(point, i);
+ }
+ // TODO: use all surrounding points once Boundary path is removed
+ cell->get_manifold().add_new_points(vertices, weights, a);
+ }
}
{
std::vector<Point<spacedim> > vertices(a);
cell->get_manifold().add_new_points(vertices, support_point_weights_cell, a);
- return a;
}
+ else
+ switch (dim)
+ {
+ case 1:
+ add_line_support_points(cell, a);
+ break;
+ case 2:
+ // in 2d, add the points on the four bounding lines to the exterior
+ // (outer) points
+ add_line_support_points(cell, a);
- switch (dim)
- {
- case 1:
- add_line_support_points(cell, a);
- break;
- case 2:
- // in 2d, add the points on the four bounding lines to the exterior
- // (outer) points
- add_line_support_points(cell, a);
-
- // then get the support points on the quad. decide whether to choose
- // the smoothed variant that include all points and goes directly
- // through the manifold or only the vertex points.
- if (dim != spacedim)
- add_quad_support_points(cell, a);
- else if (smooth_support_points == false)
- add_intermediate_points(cell->get_manifold(), support_point_weights_interior[1],
- cell, a);
- else
- {
- std::vector<Point<spacedim> > tmp_points(a);
- cell->get_manifold().add_new_points(tmp_points,
- support_point_weights_perimeter_to_interior[1],
- a);
- }
- break;
-
- case 3:
- // in 3d also add the points located on the boundary faces
- add_line_support_points (cell, a);
- add_quad_support_points (cell, a);
-
- // then compute the interior points. decide whether to choose
- // the smoothed variant that include all points and goes directly
- // through the manifold or only the vertex points.
- if (smooth_support_points == false)
- add_intermediate_points(cell->get_manifold(), support_point_weights_interior[2],
- cell, a);
- else
+ // then get the interior support points
+ if (dim != spacedim)
+ add_quad_support_points(cell, a);
+ else
+ {
+ std::vector<Point<spacedim> > tmp_points(a);
+ cell->get_manifold().add_new_points(tmp_points,
+ support_point_weights_perimeter_to_interior[1],
+ a);
+ }
+ break;
+
+ case 3:
+ // in 3d also add the points located on the boundary faces
+ add_line_support_points (cell, a);
+ add_quad_support_points (cell, a);
+
+ // then compute the interior points
{
std::vector<Point<spacedim> > tmp_points(a);
cell->get_manifold().add_new_points(tmp_points,
support_point_weights_perimeter_to_interior[2],
a);
}
- break;
+ break;
- default:
- Assert(false, ExcNotImplemented());
- break;
- }
+ default:
+ Assert(false, ExcNotImplemented());
+ break;
+ }
}
return a;
0.00000 0.00000 -1.00000
0.00000 -0.707107 -0.707107
-1.00000 0.500000 -0.500000
--1.00000 1.96262e-17 -0.707107
+-1.00000 0.00000 -0.707107
-1.00000 -0.500000 -0.500000
-0.500000 0.500000 -0.500000
-0.500000 0.00000 -0.707107
-0.500000 -0.500000 -0.500000
0.00000 0.500000 -0.500000
-0.00000 1.96262e-17 -0.707107
+0.00000 0.00000 -0.707107
0.00000 -0.500000 -0.500000
-1.00000 0.292893 -0.292893
-1.00000 0.00000 -0.414214
0.00000 0.500000 -0.500000
0.00000 0.292893 -0.292893
-1.00000 1.00000 0.00000
--1.00000 0.707107 0.00000
+-1.00000 0.707107 -1.96262e-17
-1.00000 0.414214 0.00000
-0.500000 1.00000 0.00000
-0.500000 0.707107 -9.81308e-18
-0.500000 0.414214 0.00000
0.00000 1.00000 0.00000
-0.00000 0.707107 0.00000
+0.00000 0.707107 -1.96262e-17
0.00000 0.414214 0.00000
-1.00000 0.707107 0.707107
-1.00000 0.500000 0.500000
-1.00000 0.00000 0.00000
-1.00000 -0.414214 0.00000
-0.500000 0.414214 0.00000
--0.500000 0.00000 -6.93889e-18
+-0.500000 0.00000 0.00000
-0.500000 -0.414214 0.00000
0.00000 0.414214 0.00000
0.00000 0.00000 0.00000
0.00000 -1.00000 0.00000
0.00000 -0.707107 0.707107
-1.00000 -0.500000 -0.500000
--1.00000 -0.707107 -1.96262e-17
+-1.00000 -0.707107 0.00000
-1.00000 -0.500000 0.500000
-0.500000 -0.500000 -0.500000
-0.500000 -0.707107 0.00000
-0.500000 -0.500000 0.500000
0.00000 -0.500000 -0.500000
-0.00000 -0.707107 -1.96262e-17
+0.00000 -0.707107 0.00000
0.00000 -0.500000 0.500000
-1.00000 -0.292893 -0.292893
-1.00000 -0.414214 0.00000
0.00000 0.500000 0.500000
0.00000 0.292893 0.292893
-1.00000 0.00000 1.00000
--1.00000 0.00000 0.707107
+-1.00000 1.96262e-17 0.707107
-1.00000 0.00000 0.414214
-0.500000 0.00000 1.00000
-0.500000 9.81308e-18 0.707107
-0.500000 0.00000 0.414214
0.00000 0.00000 1.00000
-0.00000 0.00000 0.707107
+0.00000 1.96262e-17 0.707107
0.00000 0.00000 0.414214
-1.00000 -0.707107 0.707107
-1.00000 -0.500000 0.500000
1.00000 0.00000 -1.00000
1.00000 -0.707107 -0.707107
0.00000 0.500000 -0.500000
-0.00000 1.96262e-17 -0.707107
+0.00000 0.00000 -0.707107
0.00000 -0.500000 -0.500000
0.500000 0.500000 -0.500000
0.500000 0.00000 -0.707107
0.500000 -0.500000 -0.500000
1.00000 0.500000 -0.500000
-1.00000 1.96262e-17 -0.707107
+1.00000 0.00000 -0.707107
1.00000 -0.500000 -0.500000
0.00000 0.292893 -0.292893
0.00000 0.00000 -0.414214
1.00000 0.500000 -0.500000
1.00000 0.292893 -0.292893
0.00000 1.00000 0.00000
-0.00000 0.707107 0.00000
+0.00000 0.707107 -1.96262e-17
0.00000 0.414214 0.00000
0.500000 1.00000 0.00000
0.500000 0.707107 -9.81308e-18
0.500000 0.414214 0.00000
1.00000 1.00000 0.00000
-1.00000 0.707107 0.00000
+1.00000 0.707107 -1.96262e-17
1.00000 0.414214 0.00000
0.00000 0.707107 0.707107
0.00000 0.500000 0.500000
0.00000 0.00000 0.00000
0.00000 -0.414214 0.00000
0.500000 0.414214 0.00000
-0.500000 0.00000 -6.93889e-18
+0.500000 0.00000 0.00000
0.500000 -0.414214 0.00000
1.00000 0.414214 0.00000
1.00000 0.00000 0.00000
1.00000 -1.00000 0.00000
1.00000 -0.707107 0.707107
0.00000 -0.500000 -0.500000
-0.00000 -0.707107 -1.96262e-17
+0.00000 -0.707107 0.00000
0.00000 -0.500000 0.500000
0.500000 -0.500000 -0.500000
0.500000 -0.707107 0.00000
0.500000 -0.500000 0.500000
1.00000 -0.500000 -0.500000
-1.00000 -0.707107 -1.96262e-17
+1.00000 -0.707107 0.00000
1.00000 -0.500000 0.500000
0.00000 -0.292893 -0.292893
0.00000 -0.414214 0.00000
1.00000 0.500000 0.500000
1.00000 0.292893 0.292893
0.00000 0.00000 1.00000
-0.00000 0.00000 0.707107
+0.00000 1.96262e-17 0.707107
0.00000 0.00000 0.414214
0.500000 0.00000 1.00000
0.500000 9.81308e-18 0.707107
0.500000 0.00000 0.414214
1.00000 0.00000 1.00000
-1.00000 0.00000 0.707107
+1.00000 1.96262e-17 0.707107
1.00000 0.00000 0.414214
0.00000 -0.707107 0.707107
0.00000 -0.500000 0.500000
0.00000 0.00000 -0.964312
0.00000 -0.707107 -0.707107
-1.00000 0.500000 -0.500000
--1.00000 4.16334e-17 -0.681872
+-1.00000 1.38778e-17 -0.681872
-1.00000 -0.500000 -0.500000
-0.500000 0.500000 -0.500000
--0.500000 1.38778e-17 -0.681872
+-0.500000 2.77556e-17 -0.681872
-0.500000 -0.500000 -0.500000
0.00000 0.500000 -0.500000
-0.00000 4.16334e-17 -0.681872
+0.00000 1.38778e-17 -0.681872
0.00000 -0.500000 -0.500000
-1.00000 0.292893 -0.292893
-1.00000 0.00000 -0.399431
0.00000 0.500000 -0.500000
0.00000 0.292893 -0.292893
-1.00000 0.964312 0.00000
--1.00000 0.681872 -1.38778e-17
+-1.00000 0.681872 -2.77556e-17
-1.00000 0.399431 0.00000
-0.500000 0.964312 0.00000
-0.500000 0.681872 -1.04083e-16
-0.500000 0.399431 0.00000
0.00000 0.964312 0.00000
-0.00000 0.681872 -1.38778e-17
+0.00000 0.681872 -2.77556e-17
0.00000 0.399431 0.00000
-1.00000 0.707107 0.707107
-1.00000 0.500000 0.500000
-1.00000 0.00000 -0.399431
-1.00000 -0.292893 -0.292893
-0.500000 0.292893 -0.292893
--0.500000 0.00000 -0.399431
+-0.500000 -2.08167e-17 -0.406969
-0.500000 -0.292893 -0.292893
0.00000 0.292893 -0.292893
0.00000 0.00000 -0.399431
0.00000 -0.292893 -0.292893
-1.00000 0.399431 0.00000
--1.00000 0.00000 0.00000
+-1.00000 0.00000 1.38778e-17
-1.00000 -0.399431 0.00000
--0.500000 0.399431 0.00000
--0.500000 6.93889e-18 1.38778e-17
--0.500000 -0.399431 0.00000
+-0.500000 0.406969 2.77556e-17
+-0.500000 -1.38778e-17 2.77556e-17
+-0.500000 -0.406969 2.77556e-17
0.00000 0.399431 0.00000
-0.00000 0.00000 0.00000
+0.00000 0.00000 1.38778e-17
0.00000 -0.399431 0.00000
-1.00000 0.292893 0.292893
-1.00000 0.00000 0.399431
-1.00000 -0.292893 0.292893
-0.500000 0.292893 0.292893
--0.500000 0.00000 0.399431
+-0.500000 -2.08167e-17 0.406969
-0.500000 -0.292893 0.292893
0.00000 0.292893 0.292893
0.00000 0.00000 0.399431
0.00000 -0.964312 0.00000
0.00000 -0.707107 0.707107
-1.00000 -0.500000 -0.500000
--1.00000 -0.681872 -4.16334e-17
+-1.00000 -0.681872 -1.38778e-17
-1.00000 -0.500000 0.500000
-0.500000 -0.500000 -0.500000
--0.500000 -0.681872 -1.38778e-17
+-0.500000 -0.681872 -2.77556e-17
-0.500000 -0.500000 0.500000
0.00000 -0.500000 -0.500000
-0.00000 -0.681872 -4.16334e-17
+0.00000 -0.681872 -1.38778e-17
0.00000 -0.500000 0.500000
-1.00000 -0.292893 -0.292893
-1.00000 -0.399431 0.00000
0.00000 0.500000 0.500000
0.00000 0.292893 0.292893
-1.00000 0.00000 0.964312
--1.00000 1.38778e-17 0.681872
+-1.00000 2.77556e-17 0.681872
-1.00000 0.00000 0.399431
-0.500000 0.00000 0.964312
-0.500000 1.04083e-16 0.681872
-0.500000 0.00000 0.399431
0.00000 0.00000 0.964312
-0.00000 1.38778e-17 0.681872
+0.00000 2.77556e-17 0.681872
0.00000 0.00000 0.399431
-1.00000 -0.707107 0.707107
-1.00000 -0.500000 0.500000
1.00000 0.00000 -0.964312
1.00000 -0.707107 -0.707107
0.00000 0.500000 -0.500000
-0.00000 4.16334e-17 -0.681872
+0.00000 1.38778e-17 -0.681872
0.00000 -0.500000 -0.500000
0.500000 0.500000 -0.500000
-0.500000 1.38778e-17 -0.681872
+0.500000 2.77556e-17 -0.681872
0.500000 -0.500000 -0.500000
1.00000 0.500000 -0.500000
-1.00000 4.16334e-17 -0.681872
+1.00000 1.38778e-17 -0.681872
1.00000 -0.500000 -0.500000
0.00000 0.292893 -0.292893
0.00000 0.00000 -0.399431
1.00000 0.500000 -0.500000
1.00000 0.292893 -0.292893
0.00000 0.964312 0.00000
-0.00000 0.681872 -1.38778e-17
+0.00000 0.681872 -2.77556e-17
0.00000 0.399431 0.00000
0.500000 0.964312 0.00000
0.500000 0.681872 -1.04083e-16
0.500000 0.399431 0.00000
1.00000 0.964312 0.00000
-1.00000 0.681872 -1.38778e-17
+1.00000 0.681872 -2.77556e-17
1.00000 0.399431 0.00000
0.00000 0.707107 0.707107
0.00000 0.500000 0.500000
0.00000 0.00000 -0.399431
0.00000 -0.292893 -0.292893
0.500000 0.292893 -0.292893
-0.500000 0.00000 -0.399431
+0.500000 -2.08167e-17 -0.406969
0.500000 -0.292893 -0.292893
1.00000 0.292893 -0.292893
1.00000 0.00000 -0.399431
1.00000 -0.292893 -0.292893
0.00000 0.399431 0.00000
-0.00000 0.00000 0.00000
+0.00000 0.00000 1.38778e-17
0.00000 -0.399431 0.00000
-0.500000 0.399431 0.00000
-0.500000 6.93889e-18 1.38778e-17
-0.500000 -0.399431 0.00000
+0.500000 0.406969 2.77556e-17
+0.500000 -1.38778e-17 2.77556e-17
+0.500000 -0.406969 2.77556e-17
1.00000 0.399431 0.00000
-1.00000 0.00000 0.00000
+1.00000 0.00000 1.38778e-17
1.00000 -0.399431 0.00000
0.00000 0.292893 0.292893
0.00000 0.00000 0.399431
0.00000 -0.292893 0.292893
0.500000 0.292893 0.292893
-0.500000 0.00000 0.399431
+0.500000 -2.08167e-17 0.406969
0.500000 -0.292893 0.292893
1.00000 0.292893 0.292893
1.00000 0.00000 0.399431
1.00000 -0.964312 0.00000
1.00000 -0.707107 0.707107
0.00000 -0.500000 -0.500000
-0.00000 -0.681872 -4.16334e-17
+0.00000 -0.681872 -1.38778e-17
0.00000 -0.500000 0.500000
0.500000 -0.500000 -0.500000
-0.500000 -0.681872 -1.38778e-17
+0.500000 -0.681872 -2.77556e-17
0.500000 -0.500000 0.500000
1.00000 -0.500000 -0.500000
-1.00000 -0.681872 -4.16334e-17
+1.00000 -0.681872 -1.38778e-17
1.00000 -0.500000 0.500000
0.00000 -0.292893 -0.292893
0.00000 -0.399431 0.00000
1.00000 0.500000 0.500000
1.00000 0.292893 0.292893
0.00000 0.00000 0.964312
-0.00000 1.38778e-17 0.681872
+0.00000 2.77556e-17 0.681872
0.00000 0.00000 0.399431
0.500000 0.00000 0.964312
0.500000 1.04083e-16 0.681872
0.500000 0.00000 0.399431
1.00000 0.00000 0.964312
-1.00000 1.38778e-17 0.681872
+1.00000 2.77556e-17 0.681872
1.00000 0.00000 0.399431
0.00000 -0.707107 0.707107
0.00000 -0.500000 0.500000
0.00000 0.00000 -1.00000
0.00000 -0.707107 -0.707107
-1.00000 0.500000 -0.500000
--1.00000 1.96262e-17 -0.707107
+-1.00000 0.00000 -0.707107
-1.00000 -0.500000 -0.500000
-0.500000 0.500000 -0.500000
-0.500000 0.00000 -0.707107
-0.500000 -0.500000 -0.500000
0.00000 0.500000 -0.500000
-0.00000 1.96262e-17 -0.707107
+0.00000 0.00000 -0.707107
0.00000 -0.500000 -0.500000
-1.00000 0.292893 -0.292893
-1.00000 0.00000 -0.414214
0.00000 0.500000 -0.500000
0.00000 0.292893 -0.292893
-1.00000 1.00000 0.00000
--1.00000 0.707107 0.00000
+-1.00000 0.707107 -1.96262e-17
-1.00000 0.414214 0.00000
-0.500000 1.00000 0.00000
-0.500000 0.707107 -9.81308e-18
-0.500000 0.414214 0.00000
0.00000 1.00000 0.00000
-0.00000 0.707107 0.00000
+0.00000 0.707107 -1.96262e-17
0.00000 0.414214 0.00000
-1.00000 0.707107 0.707107
-1.00000 0.500000 0.500000
-1.00000 0.00000 -0.414214
-1.00000 -0.292893 -0.292893
-0.500000 0.292893 -0.292893
--0.500000 0.00000 -0.414214
+-0.500000 -1.10088e-16 -0.414214
-0.500000 -0.292893 -0.292893
0.00000 0.292893 -0.292893
0.00000 0.00000 -0.414214
0.00000 -0.292893 -0.292893
-1.00000 0.414214 0.00000
--1.00000 0.00000 0.00000
+-1.00000 -9.71445e-17 9.19403e-17
-1.00000 -0.414214 0.00000
--0.500000 0.414214 0.00000
--0.500000 -7.04731e-17 6.11490e-17
--0.500000 -0.414214 0.00000
+-0.500000 0.414214 9.95024e-17
+-0.500000 -1.18829e-16 9.45424e-17
+-0.500000 -0.414214 9.95024e-17
0.00000 0.414214 0.00000
-0.00000 0.00000 0.00000
+0.00000 -9.71445e-17 9.19403e-17
0.00000 -0.414214 0.00000
-1.00000 0.292893 0.292893
-1.00000 0.00000 0.414214
-1.00000 -0.292893 0.292893
-0.500000 0.292893 0.292893
--0.500000 0.00000 0.414214
+-0.500000 -1.10088e-16 0.414214
-0.500000 -0.292893 0.292893
0.00000 0.292893 0.292893
0.00000 0.00000 0.414214
0.00000 -1.00000 0.00000
0.00000 -0.707107 0.707107
-1.00000 -0.500000 -0.500000
--1.00000 -0.707107 -1.96262e-17
+-1.00000 -0.707107 0.00000
-1.00000 -0.500000 0.500000
-0.500000 -0.500000 -0.500000
-0.500000 -0.707107 0.00000
-0.500000 -0.500000 0.500000
0.00000 -0.500000 -0.500000
-0.00000 -0.707107 -1.96262e-17
+0.00000 -0.707107 0.00000
0.00000 -0.500000 0.500000
-1.00000 -0.292893 -0.292893
-1.00000 -0.414214 0.00000
0.00000 0.500000 0.500000
0.00000 0.292893 0.292893
-1.00000 0.00000 1.00000
--1.00000 0.00000 0.707107
+-1.00000 1.96262e-17 0.707107
-1.00000 0.00000 0.414214
-0.500000 0.00000 1.00000
-0.500000 9.81308e-18 0.707107
-0.500000 0.00000 0.414214
0.00000 0.00000 1.00000
-0.00000 0.00000 0.707107
+0.00000 1.96262e-17 0.707107
0.00000 0.00000 0.414214
-1.00000 -0.707107 0.707107
-1.00000 -0.500000 0.500000
1.00000 0.00000 -1.00000
1.00000 -0.707107 -0.707107
0.00000 0.500000 -0.500000
-0.00000 1.96262e-17 -0.707107
+0.00000 0.00000 -0.707107
0.00000 -0.500000 -0.500000
0.500000 0.500000 -0.500000
0.500000 0.00000 -0.707107
0.500000 -0.500000 -0.500000
1.00000 0.500000 -0.500000
-1.00000 1.96262e-17 -0.707107
+1.00000 0.00000 -0.707107
1.00000 -0.500000 -0.500000
0.00000 0.292893 -0.292893
0.00000 0.00000 -0.414214
1.00000 0.500000 -0.500000
1.00000 0.292893 -0.292893
0.00000 1.00000 0.00000
-0.00000 0.707107 0.00000
+0.00000 0.707107 -1.96262e-17
0.00000 0.414214 0.00000
0.500000 1.00000 0.00000
0.500000 0.707107 -9.81308e-18
0.500000 0.414214 0.00000
1.00000 1.00000 0.00000
-1.00000 0.707107 0.00000
+1.00000 0.707107 -1.96262e-17
1.00000 0.414214 0.00000
0.00000 0.707107 0.707107
0.00000 0.500000 0.500000
0.00000 0.00000 -0.414214
0.00000 -0.292893 -0.292893
0.500000 0.292893 -0.292893
-0.500000 0.00000 -0.414214
+0.500000 -1.10088e-16 -0.414214
0.500000 -0.292893 -0.292893
1.00000 0.292893 -0.292893
1.00000 0.00000 -0.414214
1.00000 -0.292893 -0.292893
0.00000 0.414214 0.00000
-0.00000 0.00000 0.00000
+0.00000 -9.71445e-17 9.19403e-17
0.00000 -0.414214 0.00000
-0.500000 0.414214 0.00000
-0.500000 -7.04731e-17 6.11490e-17
-0.500000 -0.414214 0.00000
+0.500000 0.414214 9.95024e-17
+0.500000 -1.18829e-16 9.45424e-17
+0.500000 -0.414214 9.95024e-17
1.00000 0.414214 0.00000
-1.00000 0.00000 0.00000
+1.00000 -9.71445e-17 9.19403e-17
1.00000 -0.414214 0.00000
0.00000 0.292893 0.292893
0.00000 0.00000 0.414214
0.00000 -0.292893 0.292893
0.500000 0.292893 0.292893
-0.500000 0.00000 0.414214
+0.500000 -1.10088e-16 0.414214
0.500000 -0.292893 0.292893
1.00000 0.292893 0.292893
1.00000 0.00000 0.414214
1.00000 -1.00000 0.00000
1.00000 -0.707107 0.707107
0.00000 -0.500000 -0.500000
-0.00000 -0.707107 -1.96262e-17
+0.00000 -0.707107 0.00000
0.00000 -0.500000 0.500000
0.500000 -0.500000 -0.500000
0.500000 -0.707107 0.00000
0.500000 -0.500000 0.500000
1.00000 -0.500000 -0.500000
-1.00000 -0.707107 -1.96262e-17
+1.00000 -0.707107 0.00000
1.00000 -0.500000 0.500000
0.00000 -0.292893 -0.292893
0.00000 -0.414214 0.00000
1.00000 0.500000 0.500000
1.00000 0.292893 0.292893
0.00000 0.00000 1.00000
-0.00000 0.00000 0.707107
+0.00000 1.96262e-17 0.707107
0.00000 0.00000 0.414214
0.500000 0.00000 1.00000
0.500000 9.81308e-18 0.707107
0.500000 0.00000 0.414214
1.00000 0.00000 1.00000
-1.00000 0.00000 0.707107
+1.00000 1.96262e-17 0.707107
1.00000 0.00000 0.414214
0.00000 -0.707107 0.707107
0.00000 -0.500000 0.500000
DEAL::Volume 2D mapping degree 6: 0.857305 error: 5.06446e-06
-DEAL::Volume 3D mapping degree 6: 0.857305 error: 5.06446e-06
+DEAL::Volume 3D mapping degree 6: 0.857302 error: 1.46779e-06
DEAL::Volume 2D mapping degree 3: 0.156147 error: 6.04868e-06
DEAL::Volume 2D mapping degree 4: 0.156146 error: 5.88206e-08
DEAL::Volume 2D mapping degree 5: 0.156146 error: 8.80543e-09
-DEAL::Volume 2D mapping degree 6: 0.156146 error: 8.99033e-11
+DEAL::Volume 2D mapping degree 6: 0.156146 error: 8.99035e-11
DEAL::Volume 3D mapping degree 1: 0.0643409 error: 0.00501399
DEAL::Volume 3D mapping degree 2: 0.0640224 error: 3.91474e-05
-DEAL::Volume 3D mapping degree 3: 0.0640203 error: 6.04868e-06
-DEAL::Volume 3D mapping degree 4: 0.0640199 error: 5.88206e-08
-DEAL::Volume 3D mapping degree 5: 0.0640199 error: 8.80543e-09
-DEAL::Volume 3D mapping degree 6: 0.0640199 error: 8.99041e-11
+DEAL::Volume 3D mapping degree 3: 0.0640197 error: -3.27847e-06
+DEAL::Volume 3D mapping degree 4: 0.0640199 error: -1.41198e-08
+DEAL::Volume 3D mapping degree 5: 0.0640199 error: 5.05984e-10
+DEAL::Volume 3D mapping degree 6: 0.0640199 error: 8.74883e-11
+++ /dev/null
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2017 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 at
-// the top level of the deal.II distribution.
-//
-// ---------------------------------------------------------------------
-
-
-// Prints the mapped points (quadrature points) of the mesh in
-// mapping_q_mixed_manifolds_01, once using smoothing and once without.
-
-#include "../tests.h"
-#include <deal.II/base/quadrature_lib.h>
-#include <deal.II/base/logstream.h>
-#include <deal.II/lac/vector.h>
-#include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_iterator.h>
-#include <deal.II/dofs/dof_accessor.h>
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/grid_tools.h>
-#include <deal.II/fe/mapping_q_generic.h>
-#include <deal.II/fe/fe_values.h>
-#include <deal.II/fe/fe_nothing.h>
-#include <deal.II/grid/manifold_lib.h>
-#include <vector>
-#include <fstream>
-#include <iomanip>
-#include <string>
-#include <sstream>
-
-
-
-template <int dim>
-void test()
-{
- Point<dim> direction;
- direction[dim-1] = 1.;
-
- std_cxx11::shared_ptr<Manifold<dim> > cylinder_manifold
- (dim == 2 ? static_cast<Manifold<dim>*>(new SphericalManifold<dim>(Point<dim>())) :
- static_cast<Manifold<dim>*>(new CylindricalManifold<dim>(direction, Point<dim>())));
-
- // create cube and shift it to position 0.7
- Triangulation<dim> tria;
- GridGenerator::hyper_cube(tria, -0.5, 0.5);
- Tensor<1,dim> shift;
- shift[0] = 1.;
- GridTools::shift(shift, tria);
- tria.begin()->face(0)->set_all_manifold_ids(1);
- tria.set_manifold(1, *cylinder_manifold);
-
- FE_Nothing<dim> fe;
- for (unsigned int degree = 6; degree < 7; ++degree)
- {
- QIterated<dim> quad(QTrapez<1>(), degree);
- {
- MappingQGeneric<dim> mapping(degree, true);
- FEValues<dim> fe_values(mapping, fe, quad, update_quadrature_points);
- fe_values.reinit(tria.begin());
- deallog << "Points with smoothing in " << dim << "D" << std::endl;
- for (unsigned int q=0; q<quad.size(); ++q)
- deallog << fe_values.quadrature_point(q) << std::endl;
- }
- {
- MappingQGeneric<dim> mapping(degree, false);
- FEValues<dim> fe_values(mapping, fe, quad, update_quadrature_points);
- fe_values.reinit(tria.begin());
- deallog << "Points without smoothing in " << dim << "D" << std::endl;
- for (unsigned int q=0; q<quad.size(); ++q)
- deallog << fe_values.quadrature_point(q) << std::endl;
- }
- }
-}
-
-
-int main()
-{
- std::ofstream logfile ("output");
- deallog.attach(logfile);
- deallog.threshold_double(1.e-14);
-
- test<2>();
- test<3>();
-}
+++ /dev/null
-
-DEAL::Points with smoothing in 2D
-DEAL::0.500000 -0.500000
-DEAL::0.666667 -0.500000
-DEAL::0.833333 -0.500000
-DEAL::1.00000 -0.500000
-DEAL::1.16667 -0.500000
-DEAL::1.33333 -0.500000
-DEAL::1.50000 -0.500000
-DEAL::0.587827 -0.393172
-DEAL::0.722669 -0.353932
-DEAL::0.866961 -0.340608
-DEAL::1.01955 -0.335844
-DEAL::1.17733 -0.334173
-DEAL::1.33798 -0.333653
-DEAL::1.50000 -0.333333
-DEAL::0.671122 -0.222531
-DEAL::0.767514 -0.186618
-DEAL::0.892464 -0.173730
-DEAL::1.03402 -0.169134
-DEAL::1.18513 -0.167502
-DEAL::1.34144 -0.166957
-DEAL::1.50000 -0.166667
-DEAL::0.707107 0.00000
-DEAL::0.785071 -2.55335e-17
-DEAL::0.902057 -3.40697e-17
-DEAL::1.03936 -2.60209e-17
-DEAL::1.18799 -2.79126e-17
-DEAL::1.34272 -3.20115e-17
-DEAL::1.50000 0.00000
-DEAL::0.671122 0.222531
-DEAL::0.767514 0.186618
-DEAL::0.892464 0.173730
-DEAL::1.03402 0.169134
-DEAL::1.18513 0.167502
-DEAL::1.34144 0.166957
-DEAL::1.50000 0.166667
-DEAL::0.587827 0.393172
-DEAL::0.722669 0.353932
-DEAL::0.866961 0.340608
-DEAL::1.01955 0.335844
-DEAL::1.17733 0.334173
-DEAL::1.33798 0.333653
-DEAL::1.50000 0.333333
-DEAL::0.500000 0.500000
-DEAL::0.666667 0.500000
-DEAL::0.833333 0.500000
-DEAL::1.00000 0.500000
-DEAL::1.16667 0.500000
-DEAL::1.33333 0.500000
-DEAL::1.50000 0.500000
-DEAL::Points without smoothing in 2D
-DEAL::0.500000 -0.500000
-DEAL::0.666667 -0.500000
-DEAL::0.833333 -0.500000
-DEAL::1.00000 -0.500000
-DEAL::1.16667 -0.500000
-DEAL::1.33333 -0.500000
-DEAL::1.50000 -0.500000
-DEAL::0.587827 -0.393172
-DEAL::0.655598 -0.325792
-DEAL::0.838393 -0.336781
-DEAL::1.00000 -0.333333
-DEAL::1.16414 -0.331610
-DEAL::1.33555 -0.334842
-DEAL::1.50000 -0.333333
-DEAL::0.671122 -0.222531
-DEAL::0.645100 -0.159626
-DEAL::0.843192 -0.169885
-DEAL::1.00000 -0.166667
-DEAL::1.16174 -0.165057
-DEAL::1.33765 -0.168075
-DEAL::1.50000 -0.166667
-DEAL::0.707107 0.00000
-DEAL::0.640565 8.59433e-18
-DEAL::0.845265 -2.58644e-18
-DEAL::1.00000 0.00000
-DEAL::1.16070 1.10453e-18
-DEAL::1.33855 -9.39057e-19
-DEAL::1.50000 0.00000
-DEAL::0.671122 0.222531
-DEAL::0.645100 0.159626
-DEAL::0.843192 0.169885
-DEAL::1.00000 0.166667
-DEAL::1.16174 0.165057
-DEAL::1.33765 0.168075
-DEAL::1.50000 0.166667
-DEAL::0.587827 0.393172
-DEAL::0.655598 0.325792
-DEAL::0.838393 0.336781
-DEAL::1.00000 0.333333
-DEAL::1.16414 0.331610
-DEAL::1.33555 0.334842
-DEAL::1.50000 0.333333
-DEAL::0.500000 0.500000
-DEAL::0.666667 0.500000
-DEAL::0.833333 0.500000
-DEAL::1.00000 0.500000
-DEAL::1.16667 0.500000
-DEAL::1.33333 0.500000
-DEAL::1.50000 0.500000
-DEAL::Points with smoothing in 3D
-DEAL::0.500000 -0.500000 -0.500000
-DEAL::0.666667 -0.500000 -0.500000
-DEAL::0.833333 -0.500000 -0.500000
-DEAL::1.00000 -0.500000 -0.500000
-DEAL::1.16667 -0.500000 -0.500000
-DEAL::1.33333 -0.500000 -0.500000
-DEAL::1.50000 -0.500000 -0.500000
-DEAL::0.587827 -0.393172 -0.500000
-DEAL::0.722669 -0.353932 -0.500000
-DEAL::0.866961 -0.340608 -0.500000
-DEAL::1.01955 -0.335844 -0.500000
-DEAL::1.17733 -0.334173 -0.500000
-DEAL::1.33798 -0.333653 -0.500000
-DEAL::1.50000 -0.333333 -0.500000
-DEAL::0.671122 -0.222531 -0.500000
-DEAL::0.767514 -0.186618 -0.500000
-DEAL::0.892464 -0.173730 -0.500000
-DEAL::1.03402 -0.169134 -0.500000
-DEAL::1.18513 -0.167502 -0.500000
-DEAL::1.34144 -0.166957 -0.500000
-DEAL::1.50000 -0.166667 -0.500000
-DEAL::0.707107 0.00000 -0.500000
-DEAL::0.785071 -2.55335e-17 -0.500000
-DEAL::0.902057 -3.40697e-17 -0.500000
-DEAL::1.03936 -2.60209e-17 -0.500000
-DEAL::1.18799 -2.79126e-17 -0.500000
-DEAL::1.34272 -3.20115e-17 -0.500000
-DEAL::1.50000 0.00000 -0.500000
-DEAL::0.671122 0.222531 -0.500000
-DEAL::0.767514 0.186618 -0.500000
-DEAL::0.892464 0.173730 -0.500000
-DEAL::1.03402 0.169134 -0.500000
-DEAL::1.18513 0.167502 -0.500000
-DEAL::1.34144 0.166957 -0.500000
-DEAL::1.50000 0.166667 -0.500000
-DEAL::0.587827 0.393172 -0.500000
-DEAL::0.722669 0.353932 -0.500000
-DEAL::0.866961 0.340608 -0.500000
-DEAL::1.01955 0.335844 -0.500000
-DEAL::1.17733 0.334173 -0.500000
-DEAL::1.33798 0.333653 -0.500000
-DEAL::1.50000 0.333333 -0.500000
-DEAL::0.500000 0.500000 -0.500000
-DEAL::0.666667 0.500000 -0.500000
-DEAL::0.833333 0.500000 -0.500000
-DEAL::1.00000 0.500000 -0.500000
-DEAL::1.16667 0.500000 -0.500000
-DEAL::1.33333 0.500000 -0.500000
-DEAL::1.50000 0.500000 -0.500000
-DEAL::0.500000 -0.500000 -0.333333
-DEAL::0.666667 -0.500000 -0.333333
-DEAL::0.833333 -0.500000 -0.333333
-DEAL::1.00000 -0.500000 -0.333333
-DEAL::1.16667 -0.500000 -0.333333
-DEAL::1.33333 -0.500000 -0.333333
-DEAL::1.50000 -0.500000 -0.333333
-DEAL::0.587827 -0.393172 -0.333333
-DEAL::0.722669 -0.353932 -0.333333
-DEAL::0.866961 -0.340608 -0.333333
-DEAL::1.01955 -0.335844 -0.333333
-DEAL::1.17733 -0.334173 -0.333333
-DEAL::1.33798 -0.333653 -0.333333
-DEAL::1.50000 -0.333333 -0.333333
-DEAL::0.671122 -0.222531 -0.333333
-DEAL::0.767514 -0.186618 -0.333333
-DEAL::0.892464 -0.173730 -0.333333
-DEAL::1.03402 -0.169134 -0.333333
-DEAL::1.18513 -0.167502 -0.333333
-DEAL::1.34144 -0.166957 -0.333333
-DEAL::1.50000 -0.166667 -0.333333
-DEAL::0.707107 0.00000 -0.333333
-DEAL::0.785071 -2.39549e-17 -0.333333
-DEAL::0.902057 -3.82823e-17 -0.333333
-DEAL::1.03936 -3.78350e-17 -0.333333
-DEAL::1.18799 -3.77706e-17 -0.333333
-DEAL::1.34272 -3.47284e-17 -0.333333
-DEAL::1.50000 0.00000 -0.333333
-DEAL::0.671122 0.222531 -0.333333
-DEAL::0.767514 0.186618 -0.333333
-DEAL::0.892464 0.173730 -0.333333
-DEAL::1.03402 0.169134 -0.333333
-DEAL::1.18513 0.167502 -0.333333
-DEAL::1.34144 0.166957 -0.333333
-DEAL::1.50000 0.166667 -0.333333
-DEAL::0.587827 0.393172 -0.333333
-DEAL::0.722669 0.353932 -0.333333
-DEAL::0.866961 0.340608 -0.333333
-DEAL::1.01955 0.335844 -0.333333
-DEAL::1.17733 0.334173 -0.333333
-DEAL::1.33798 0.333653 -0.333333
-DEAL::1.50000 0.333333 -0.333333
-DEAL::0.500000 0.500000 -0.333333
-DEAL::0.666667 0.500000 -0.333333
-DEAL::0.833333 0.500000 -0.333333
-DEAL::1.00000 0.500000 -0.333333
-DEAL::1.16667 0.500000 -0.333333
-DEAL::1.33333 0.500000 -0.333333
-DEAL::1.50000 0.500000 -0.333333
-DEAL::0.500000 -0.500000 -0.166667
-DEAL::0.666667 -0.500000 -0.166667
-DEAL::0.833333 -0.500000 -0.166667
-DEAL::1.00000 -0.500000 -0.166667
-DEAL::1.16667 -0.500000 -0.166667
-DEAL::1.33333 -0.500000 -0.166667
-DEAL::1.50000 -0.500000 -0.166667
-DEAL::0.587827 -0.393172 -0.166667
-DEAL::0.722669 -0.353932 -0.166667
-DEAL::0.866961 -0.340608 -0.166667
-DEAL::1.01955 -0.335844 -0.166667
-DEAL::1.17733 -0.334173 -0.166667
-DEAL::1.33798 -0.333653 -0.166667
-DEAL::1.50000 -0.333333 -0.166667
-DEAL::0.671122 -0.222531 -0.166667
-DEAL::0.767514 -0.186618 -0.166667
-DEAL::0.892464 -0.173730 -0.166667
-DEAL::1.03402 -0.169134 -0.166667
-DEAL::1.18513 -0.167502 -0.166667
-DEAL::1.34144 -0.166957 -0.166667
-DEAL::1.50000 -0.166667 -0.166667
-DEAL::0.707107 0.00000 -0.166667
-DEAL::0.785071 -1.29394e-17 -0.166667
-DEAL::0.902057 -3.54716e-17 -0.166667
-DEAL::1.03936 -4.29928e-17 -0.166667
-DEAL::1.18799 -3.82115e-17 -0.166667
-DEAL::1.34272 -3.38949e-17 -0.166667
-DEAL::1.50000 0.00000 -0.166667
-DEAL::0.671122 0.222531 -0.166667
-DEAL::0.767514 0.186618 -0.166667
-DEAL::0.892464 0.173730 -0.166667
-DEAL::1.03402 0.169134 -0.166667
-DEAL::1.18513 0.167502 -0.166667
-DEAL::1.34144 0.166957 -0.166667
-DEAL::1.50000 0.166667 -0.166667
-DEAL::0.587827 0.393172 -0.166667
-DEAL::0.722669 0.353932 -0.166667
-DEAL::0.866961 0.340608 -0.166667
-DEAL::1.01955 0.335844 -0.166667
-DEAL::1.17733 0.334173 -0.166667
-DEAL::1.33798 0.333653 -0.166667
-DEAL::1.50000 0.333333 -0.166667
-DEAL::0.500000 0.500000 -0.166667
-DEAL::0.666667 0.500000 -0.166667
-DEAL::0.833333 0.500000 -0.166667
-DEAL::1.00000 0.500000 -0.166667
-DEAL::1.16667 0.500000 -0.166667
-DEAL::1.33333 0.500000 -0.166667
-DEAL::1.50000 0.500000 -0.166667
-DEAL::0.500000 -0.500000 0.00000
-DEAL::0.666667 -0.500000 -2.68594e-17
-DEAL::0.833333 -0.500000 -2.74398e-17
-DEAL::1.00000 -0.500000 -1.64799e-17
-DEAL::1.16667 -0.500000 -2.79378e-17
-DEAL::1.33333 -0.500000 -3.23056e-17
-DEAL::1.50000 -0.500000 0.00000
-DEAL::0.587827 -0.393172 8.59433e-18
-DEAL::0.722669 -0.353932 -2.81303e-17
-DEAL::0.866961 -0.340608 -4.21869e-17
-DEAL::1.01955 -0.335844 -3.74290e-17
-DEAL::1.17733 -0.334173 -3.95892e-17
-DEAL::1.33798 -0.333653 -3.26248e-17
-DEAL::1.50000 -0.333333 8.59433e-18
-DEAL::0.671122 -0.222531 -2.58644e-18
-DEAL::0.767514 -0.186618 -2.20058e-17
-DEAL::0.892464 -0.173730 -4.06021e-17
-DEAL::1.03402 -0.169134 -4.97938e-17
-DEAL::1.18513 -0.167502 -5.07754e-17
-DEAL::1.34144 -0.166957 -3.11118e-17
-DEAL::1.50000 -0.166667 -2.58644e-18
-DEAL::0.707107 0.00000 0.00000
-DEAL::0.785071 -5.69448e-18 -1.57305e-17
-DEAL::0.902057 -3.98063e-17 -3.29490e-17
-DEAL::1.03936 -4.68646e-17 -4.40186e-17
-DEAL::1.18799 -3.11708e-17 -4.03511e-17
-DEAL::1.34272 -2.53485e-17 -2.45508e-17
-DEAL::1.50000 0.00000 0.00000
-DEAL::0.671122 0.222531 1.10453e-18
-DEAL::0.767514 0.186618 -2.35450e-17
-DEAL::0.892464 0.173730 -3.62829e-17
-DEAL::1.03402 0.169134 -3.45046e-17
-DEAL::1.18513 0.167502 -3.43254e-17
-DEAL::1.34144 0.166957 -2.54434e-17
-DEAL::1.50000 0.166667 1.10453e-18
-DEAL::0.587827 0.393172 -9.39057e-19
-DEAL::0.722669 0.353932 -2.47693e-17
-DEAL::0.866961 0.340608 -3.90329e-17
-DEAL::1.01955 0.335844 -4.19113e-17
-DEAL::1.17733 0.334173 -3.66800e-17
-DEAL::1.33798 0.333653 -2.44504e-17
-DEAL::1.50000 0.333333 -9.39057e-19
-DEAL::0.500000 0.500000 0.00000
-DEAL::0.666667 0.500000 -2.68594e-17
-DEAL::0.833333 0.500000 -2.74398e-17
-DEAL::1.00000 0.500000 -1.64799e-17
-DEAL::1.16667 0.500000 -2.79378e-17
-DEAL::1.33333 0.500000 -3.23056e-17
-DEAL::1.50000 0.500000 0.00000
-DEAL::0.500000 -0.500000 0.166667
-DEAL::0.666667 -0.500000 0.166667
-DEAL::0.833333 -0.500000 0.166667
-DEAL::1.00000 -0.500000 0.166667
-DEAL::1.16667 -0.500000 0.166667
-DEAL::1.33333 -0.500000 0.166667
-DEAL::1.50000 -0.500000 0.166667
-DEAL::0.587827 -0.393172 0.166667
-DEAL::0.722669 -0.353932 0.166667
-DEAL::0.866961 -0.340608 0.166667
-DEAL::1.01955 -0.335844 0.166667
-DEAL::1.17733 -0.334173 0.166667
-DEAL::1.33798 -0.333653 0.166667
-DEAL::1.50000 -0.333333 0.166667
-DEAL::0.671122 -0.222531 0.166667
-DEAL::0.767514 -0.186618 0.166667
-DEAL::0.892464 -0.173730 0.166667
-DEAL::1.03402 -0.169134 0.166667
-DEAL::1.18513 -0.167502 0.166667
-DEAL::1.34144 -0.166957 0.166667
-DEAL::1.50000 -0.166667 0.166667
-DEAL::0.707107 0.00000 0.166667
-DEAL::0.785071 -9.14942e-18 0.166667
-DEAL::0.902057 -4.22538e-17 0.166667
-DEAL::1.03936 -4.67341e-17 0.166667
-DEAL::1.18799 -3.58527e-17 0.166667
-DEAL::1.34272 -2.85521e-17 0.166667
-DEAL::1.50000 0.00000 0.166667
-DEAL::0.671122 0.222531 0.166667
-DEAL::0.767514 0.186618 0.166667
-DEAL::0.892464 0.173730 0.166667
-DEAL::1.03402 0.169134 0.166667
-DEAL::1.18513 0.167502 0.166667
-DEAL::1.34144 0.166957 0.166667
-DEAL::1.50000 0.166667 0.166667
-DEAL::0.587827 0.393172 0.166667
-DEAL::0.722669 0.353932 0.166667
-DEAL::0.866961 0.340608 0.166667
-DEAL::1.01955 0.335844 0.166667
-DEAL::1.17733 0.334173 0.166667
-DEAL::1.33798 0.333653 0.166667
-DEAL::1.50000 0.333333 0.166667
-DEAL::0.500000 0.500000 0.166667
-DEAL::0.666667 0.500000 0.166667
-DEAL::0.833333 0.500000 0.166667
-DEAL::1.00000 0.500000 0.166667
-DEAL::1.16667 0.500000 0.166667
-DEAL::1.33333 0.500000 0.166667
-DEAL::1.50000 0.500000 0.166667
-DEAL::0.500000 -0.500000 0.333333
-DEAL::0.666667 -0.500000 0.333333
-DEAL::0.833333 -0.500000 0.333333
-DEAL::1.00000 -0.500000 0.333333
-DEAL::1.16667 -0.500000 0.333333
-DEAL::1.33333 -0.500000 0.333333
-DEAL::1.50000 -0.500000 0.333333
-DEAL::0.587827 -0.393172 0.333333
-DEAL::0.722669 -0.353932 0.333333
-DEAL::0.866961 -0.340608 0.333333
-DEAL::1.01955 -0.335844 0.333333
-DEAL::1.17733 -0.334173 0.333333
-DEAL::1.33798 -0.333653 0.333333
-DEAL::1.50000 -0.333333 0.333333
-DEAL::0.671122 -0.222531 0.333333
-DEAL::0.767514 -0.186618 0.333333
-DEAL::0.892464 -0.173730 0.333333
-DEAL::1.03402 -0.169134 0.333333
-DEAL::1.18513 -0.167502 0.333333
-DEAL::1.34144 -0.166957 0.333333
-DEAL::1.50000 -0.166667 0.333333
-DEAL::0.707107 0.00000 0.333333
-DEAL::0.785071 -1.62597e-17 0.333333
-DEAL::0.902057 -4.41422e-17 0.333333
-DEAL::1.03936 -4.97992e-17 0.333333
-DEAL::1.18799 -4.24350e-17 0.333333
-DEAL::1.34272 -3.63271e-17 0.333333
-DEAL::1.50000 0.00000 0.333333
-DEAL::0.671122 0.222531 0.333333
-DEAL::0.767514 0.186618 0.333333
-DEAL::0.892464 0.173730 0.333333
-DEAL::1.03402 0.169134 0.333333
-DEAL::1.18513 0.167502 0.333333
-DEAL::1.34144 0.166957 0.333333
-DEAL::1.50000 0.166667 0.333333
-DEAL::0.587827 0.393172 0.333333
-DEAL::0.722669 0.353932 0.333333
-DEAL::0.866961 0.340608 0.333333
-DEAL::1.01955 0.335844 0.333333
-DEAL::1.17733 0.334173 0.333333
-DEAL::1.33798 0.333653 0.333333
-DEAL::1.50000 0.333333 0.333333
-DEAL::0.500000 0.500000 0.333333
-DEAL::0.666667 0.500000 0.333333
-DEAL::0.833333 0.500000 0.333333
-DEAL::1.00000 0.500000 0.333333
-DEAL::1.16667 0.500000 0.333333
-DEAL::1.33333 0.500000 0.333333
-DEAL::1.50000 0.500000 0.333333
-DEAL::0.500000 -0.500000 0.500000
-DEAL::0.666667 -0.500000 0.500000
-DEAL::0.833333 -0.500000 0.500000
-DEAL::1.00000 -0.500000 0.500000
-DEAL::1.16667 -0.500000 0.500000
-DEAL::1.33333 -0.500000 0.500000
-DEAL::1.50000 -0.500000 0.500000
-DEAL::0.587827 -0.393172 0.500000
-DEAL::0.722669 -0.353932 0.500000
-DEAL::0.866961 -0.340608 0.500000
-DEAL::1.01955 -0.335844 0.500000
-DEAL::1.17733 -0.334173 0.500000
-DEAL::1.33798 -0.333653 0.500000
-DEAL::1.50000 -0.333333 0.500000
-DEAL::0.671122 -0.222531 0.500000
-DEAL::0.767514 -0.186618 0.500000
-DEAL::0.892464 -0.173730 0.500000
-DEAL::1.03402 -0.169134 0.500000
-DEAL::1.18513 -0.167502 0.500000
-DEAL::1.34144 -0.166957 0.500000
-DEAL::1.50000 -0.166667 0.500000
-DEAL::0.707107 0.00000 0.500000
-DEAL::0.785071 -2.55335e-17 0.500000
-DEAL::0.902057 -3.40697e-17 0.500000
-DEAL::1.03936 -2.60209e-17 0.500000
-DEAL::1.18799 -2.79126e-17 0.500000
-DEAL::1.34272 -3.20115e-17 0.500000
-DEAL::1.50000 0.00000 0.500000
-DEAL::0.671122 0.222531 0.500000
-DEAL::0.767514 0.186618 0.500000
-DEAL::0.892464 0.173730 0.500000
-DEAL::1.03402 0.169134 0.500000
-DEAL::1.18513 0.167502 0.500000
-DEAL::1.34144 0.166957 0.500000
-DEAL::1.50000 0.166667 0.500000
-DEAL::0.587827 0.393172 0.500000
-DEAL::0.722669 0.353932 0.500000
-DEAL::0.866961 0.340608 0.500000
-DEAL::1.01955 0.335844 0.500000
-DEAL::1.17733 0.334173 0.500000
-DEAL::1.33798 0.333653 0.500000
-DEAL::1.50000 0.333333 0.500000
-DEAL::0.500000 0.500000 0.500000
-DEAL::0.666667 0.500000 0.500000
-DEAL::0.833333 0.500000 0.500000
-DEAL::1.00000 0.500000 0.500000
-DEAL::1.16667 0.500000 0.500000
-DEAL::1.33333 0.500000 0.500000
-DEAL::1.50000 0.500000 0.500000
-DEAL::Points without smoothing in 3D
-DEAL::0.500000 -0.500000 -0.500000
-DEAL::0.666667 -0.500000 -0.500000
-DEAL::0.833333 -0.500000 -0.500000
-DEAL::1.00000 -0.500000 -0.500000
-DEAL::1.16667 -0.500000 -0.500000
-DEAL::1.33333 -0.500000 -0.500000
-DEAL::1.50000 -0.500000 -0.500000
-DEAL::0.587827 -0.393172 -0.500000
-DEAL::0.655598 -0.325792 -0.500000
-DEAL::0.838393 -0.336781 -0.500000
-DEAL::1.00000 -0.333333 -0.500000
-DEAL::1.16414 -0.331610 -0.500000
-DEAL::1.33555 -0.334842 -0.500000
-DEAL::1.50000 -0.333333 -0.500000
-DEAL::0.671122 -0.222531 -0.500000
-DEAL::0.645100 -0.159626 -0.500000
-DEAL::0.843192 -0.169885 -0.500000
-DEAL::1.00000 -0.166667 -0.500000
-DEAL::1.16174 -0.165057 -0.500000
-DEAL::1.33765 -0.168075 -0.500000
-DEAL::1.50000 -0.166667 -0.500000
-DEAL::0.707107 0.00000 -0.500000
-DEAL::0.640565 8.59433e-18 -0.500000
-DEAL::0.845265 -2.58644e-18 -0.500000
-DEAL::1.00000 0.00000 -0.500000
-DEAL::1.16070 1.10453e-18 -0.500000
-DEAL::1.33855 -9.39057e-19 -0.500000
-DEAL::1.50000 0.00000 -0.500000
-DEAL::0.671122 0.222531 -0.500000
-DEAL::0.645100 0.159626 -0.500000
-DEAL::0.843192 0.169885 -0.500000
-DEAL::1.00000 0.166667 -0.500000
-DEAL::1.16174 0.165057 -0.500000
-DEAL::1.33765 0.168075 -0.500000
-DEAL::1.50000 0.166667 -0.500000
-DEAL::0.587827 0.393172 -0.500000
-DEAL::0.655598 0.325792 -0.500000
-DEAL::0.838393 0.336781 -0.500000
-DEAL::1.00000 0.333333 -0.500000
-DEAL::1.16414 0.331610 -0.500000
-DEAL::1.33555 0.334842 -0.500000
-DEAL::1.50000 0.333333 -0.500000
-DEAL::0.500000 0.500000 -0.500000
-DEAL::0.666667 0.500000 -0.500000
-DEAL::0.833333 0.500000 -0.500000
-DEAL::1.00000 0.500000 -0.500000
-DEAL::1.16667 0.500000 -0.500000
-DEAL::1.33333 0.500000 -0.500000
-DEAL::1.50000 0.500000 -0.500000
-DEAL::0.500000 -0.500000 -0.333333
-DEAL::0.666667 -0.500000 -0.333333
-DEAL::0.833333 -0.500000 -0.333333
-DEAL::1.00000 -0.500000 -0.333333
-DEAL::1.16667 -0.500000 -0.333333
-DEAL::1.33333 -0.500000 -0.333333
-DEAL::1.50000 -0.500000 -0.333333
-DEAL::0.587827 -0.393172 -0.333333
-DEAL::0.655598 -0.325792 -0.333333
-DEAL::0.838393 -0.336781 -0.333333
-DEAL::1.00000 -0.333333 -0.333333
-DEAL::1.16414 -0.331610 -0.333333
-DEAL::1.33555 -0.334842 -0.333333
-DEAL::1.50000 -0.333333 -0.333333
-DEAL::0.671122 -0.222531 -0.333333
-DEAL::0.645100 -0.159626 -0.333333
-DEAL::0.843192 -0.169885 -0.333333
-DEAL::1.00000 -0.166667 -0.333333
-DEAL::1.16174 -0.165057 -0.333333
-DEAL::1.33765 -0.168075 -0.333333
-DEAL::1.50000 -0.166667 -0.333333
-DEAL::0.707107 0.00000 -0.333333
-DEAL::0.640565 -8.41572e-18 -0.333333
-DEAL::0.845265 -6.09993e-18 -0.333333
-DEAL::1.00000 0.00000 -0.333333
-DEAL::1.16070 -1.16938e-17 -0.333333
-DEAL::1.33855 -1.08470e-17 -0.333333
-DEAL::1.50000 0.00000 -0.333333
-DEAL::0.671122 0.222531 -0.333333
-DEAL::0.645100 0.159626 -0.333333
-DEAL::0.843192 0.169885 -0.333333
-DEAL::1.00000 0.166667 -0.333333
-DEAL::1.16174 0.165057 -0.333333
-DEAL::1.33765 0.168075 -0.333333
-DEAL::1.50000 0.166667 -0.333333
-DEAL::0.587827 0.393172 -0.333333
-DEAL::0.655598 0.325792 -0.333333
-DEAL::0.838393 0.336781 -0.333333
-DEAL::1.00000 0.333333 -0.333333
-DEAL::1.16414 0.331610 -0.333333
-DEAL::1.33555 0.334842 -0.333333
-DEAL::1.50000 0.333333 -0.333333
-DEAL::0.500000 0.500000 -0.333333
-DEAL::0.666667 0.500000 -0.333333
-DEAL::0.833333 0.500000 -0.333333
-DEAL::1.00000 0.500000 -0.333333
-DEAL::1.16667 0.500000 -0.333333
-DEAL::1.33333 0.500000 -0.333333
-DEAL::1.50000 0.500000 -0.333333
-DEAL::0.500000 -0.500000 -0.166667
-DEAL::0.666667 -0.500000 -0.166667
-DEAL::0.833333 -0.500000 -0.166667
-DEAL::1.00000 -0.500000 -0.166667
-DEAL::1.16667 -0.500000 -0.166667
-DEAL::1.33333 -0.500000 -0.166667
-DEAL::1.50000 -0.500000 -0.166667
-DEAL::0.587827 -0.393172 -0.166667
-DEAL::0.655598 -0.325792 -0.166667
-DEAL::0.838393 -0.336781 -0.166667
-DEAL::1.00000 -0.333333 -0.166667
-DEAL::1.16414 -0.331610 -0.166667
-DEAL::1.33555 -0.334842 -0.166667
-DEAL::1.50000 -0.333333 -0.166667
-DEAL::0.671122 -0.222531 -0.166667
-DEAL::0.645100 -0.159626 -0.166667
-DEAL::0.843192 -0.169885 -0.166667
-DEAL::1.00000 -0.166667 -0.166667
-DEAL::1.16174 -0.165057 -0.166667
-DEAL::1.33765 -0.168075 -0.166667
-DEAL::1.50000 -0.166667 -0.166667
-DEAL::0.707107 0.00000 -0.166667
-DEAL::0.640565 2.18388e-18 -0.166667
-DEAL::0.845265 -2.53200e-18 -0.166667
-DEAL::1.00000 0.00000 -0.166667
-DEAL::1.16070 3.10242e-18 -0.166667
-DEAL::1.33855 1.42459e-18 -0.166667
-DEAL::1.50000 0.00000 -0.166667
-DEAL::0.671122 0.222531 -0.166667
-DEAL::0.645100 0.159626 -0.166667
-DEAL::0.843192 0.169885 -0.166667
-DEAL::1.00000 0.166667 -0.166667
-DEAL::1.16174 0.165057 -0.166667
-DEAL::1.33765 0.168075 -0.166667
-DEAL::1.50000 0.166667 -0.166667
-DEAL::0.587827 0.393172 -0.166667
-DEAL::0.655598 0.325792 -0.166667
-DEAL::0.838393 0.336781 -0.166667
-DEAL::1.00000 0.333333 -0.166667
-DEAL::1.16414 0.331610 -0.166667
-DEAL::1.33555 0.334842 -0.166667
-DEAL::1.50000 0.333333 -0.166667
-DEAL::0.500000 0.500000 -0.166667
-DEAL::0.666667 0.500000 -0.166667
-DEAL::0.833333 0.500000 -0.166667
-DEAL::1.00000 0.500000 -0.166667
-DEAL::1.16667 0.500000 -0.166667
-DEAL::1.33333 0.500000 -0.166667
-DEAL::1.50000 0.500000 -0.166667
-DEAL::0.500000 -0.500000 0.00000
-DEAL::0.666667 -0.500000 0.00000
-DEAL::0.833333 -0.500000 0.00000
-DEAL::1.00000 -0.500000 0.00000
-DEAL::1.16667 -0.500000 0.00000
-DEAL::1.33333 -0.500000 0.00000
-DEAL::1.50000 -0.500000 0.00000
-DEAL::0.587827 -0.393172 8.59433e-18
-DEAL::0.655598 -0.325792 -3.70471e-19
-DEAL::0.838393 -0.336781 1.33093e-18
-DEAL::1.00000 -0.333333 1.43766e-17
-DEAL::1.16414 -0.331610 2.94637e-19
-DEAL::1.33555 -0.334842 -5.88518e-18
-DEAL::1.50000 -0.333333 8.59433e-18
-DEAL::0.671122 -0.222531 -2.58644e-18
-DEAL::0.645100 -0.159626 -1.24436e-18
-DEAL::0.843192 -0.169885 5.60461e-18
-DEAL::1.00000 -0.166667 1.32588e-17
-DEAL::1.16174 -0.165057 4.79169e-18
-DEAL::1.33765 -0.168075 -1.23802e-18
-DEAL::1.50000 -0.166667 -2.58644e-18
-DEAL::0.707107 0.00000 0.00000
-DEAL::0.640565 4.29717e-18 1.31713e-17
-DEAL::0.845265 -1.29322e-18 1.05504e-17
-DEAL::1.00000 0.00000 0.00000
-DEAL::1.16070 5.52263e-19 -1.44853e-18
-DEAL::1.33855 -4.69528e-19 1.07644e-18
-DEAL::1.50000 0.00000 0.00000
-DEAL::0.671122 0.222531 1.10453e-18
-DEAL::0.645100 0.159626 1.31579e-17
-DEAL::0.843192 0.169885 -4.74188e-18
-DEAL::1.00000 0.166667 -2.45836e-17
-DEAL::1.16174 0.165057 -2.39519e-18
-DEAL::1.33765 0.168075 -5.74254e-18
-DEAL::1.50000 0.166667 1.10453e-18
-DEAL::0.587827 0.393172 -9.39057e-19
-DEAL::0.655598 0.325792 -5.45681e-18
-DEAL::0.838393 0.336781 -1.52649e-17
-DEAL::1.00000 0.333333 -1.71414e-17
-DEAL::1.16414 0.331610 -1.51538e-17
-DEAL::1.33555 0.334842 -1.96230e-17
-DEAL::1.50000 0.333333 -9.39057e-19
-DEAL::0.500000 0.500000 0.00000
-DEAL::0.666667 0.500000 0.00000
-DEAL::0.833333 0.500000 0.00000
-DEAL::1.00000 0.500000 0.00000
-DEAL::1.16667 0.500000 0.00000
-DEAL::1.33333 0.500000 0.00000
-DEAL::1.50000 0.500000 0.00000
-DEAL::0.500000 -0.500000 0.166667
-DEAL::0.666667 -0.500000 0.166667
-DEAL::0.833333 -0.500000 0.166667
-DEAL::1.00000 -0.500000 0.166667
-DEAL::1.16667 -0.500000 0.166667
-DEAL::1.33333 -0.500000 0.166667
-DEAL::1.50000 -0.500000 0.166667
-DEAL::0.587827 -0.393172 0.166667
-DEAL::0.655598 -0.325792 0.166667
-DEAL::0.838393 -0.336781 0.166667
-DEAL::1.00000 -0.333333 0.166667
-DEAL::1.16414 -0.331610 0.166667
-DEAL::1.33555 -0.334842 0.166667
-DEAL::1.50000 -0.333333 0.166667
-DEAL::0.671122 -0.222531 0.166667
-DEAL::0.645100 -0.159626 0.166667
-DEAL::0.843192 -0.169885 0.166667
-DEAL::1.00000 -0.166667 0.166667
-DEAL::1.16174 -0.165057 0.166667
-DEAL::1.33765 -0.168075 0.166667
-DEAL::1.50000 -0.166667 0.166667
-DEAL::0.707107 0.00000 0.166667
-DEAL::0.640565 2.07509e-18 0.166667
-DEAL::0.845265 1.12059e-18 0.166667
-DEAL::1.00000 0.00000 0.166667
-DEAL::1.16070 2.30501e-18 0.166667
-DEAL::1.33855 2.06386e-18 0.166667
-DEAL::1.50000 0.00000 0.166667
-DEAL::0.671122 0.222531 0.166667
-DEAL::0.645100 0.159626 0.166667
-DEAL::0.843192 0.169885 0.166667
-DEAL::1.00000 0.166667 0.166667
-DEAL::1.16174 0.165057 0.166667
-DEAL::1.33765 0.168075 0.166667
-DEAL::1.50000 0.166667 0.166667
-DEAL::0.587827 0.393172 0.166667
-DEAL::0.655598 0.325792 0.166667
-DEAL::0.838393 0.336781 0.166667
-DEAL::1.00000 0.333333 0.166667
-DEAL::1.16414 0.331610 0.166667
-DEAL::1.33555 0.334842 0.166667
-DEAL::1.50000 0.333333 0.166667
-DEAL::0.500000 0.500000 0.166667
-DEAL::0.666667 0.500000 0.166667
-DEAL::0.833333 0.500000 0.166667
-DEAL::1.00000 0.500000 0.166667
-DEAL::1.16667 0.500000 0.166667
-DEAL::1.33333 0.500000 0.166667
-DEAL::1.50000 0.500000 0.166667
-DEAL::0.500000 -0.500000 0.333333
-DEAL::0.666667 -0.500000 0.333333
-DEAL::0.833333 -0.500000 0.333333
-DEAL::1.00000 -0.500000 0.333333
-DEAL::1.16667 -0.500000 0.333333
-DEAL::1.33333 -0.500000 0.333333
-DEAL::1.50000 -0.500000 0.333333
-DEAL::0.587827 -0.393172 0.333333
-DEAL::0.655598 -0.325792 0.333333
-DEAL::0.838393 -0.336781 0.333333
-DEAL::1.00000 -0.333333 0.333333
-DEAL::1.16414 -0.331610 0.333333
-DEAL::1.33555 -0.334842 0.333333
-DEAL::1.50000 -0.333333 0.333333
-DEAL::0.671122 -0.222531 0.333333
-DEAL::0.645100 -0.159626 0.333333
-DEAL::0.843192 -0.169885 0.333333
-DEAL::1.00000 -0.166667 0.333333
-DEAL::1.16174 -0.165057 0.333333
-DEAL::1.33765 -0.168075 0.333333
-DEAL::1.50000 -0.166667 0.333333
-DEAL::0.707107 0.00000 0.333333
-DEAL::0.640565 -7.91754e-18 0.333333
-DEAL::0.845265 -4.33378e-18 0.333333
-DEAL::1.00000 0.00000 0.333333
-DEAL::1.16070 -1.20445e-17 0.333333
-DEAL::1.33855 -1.05693e-17 0.333333
-DEAL::1.50000 0.00000 0.333333
-DEAL::0.671122 0.222531 0.333333
-DEAL::0.645100 0.159626 0.333333
-DEAL::0.843192 0.169885 0.333333
-DEAL::1.00000 0.166667 0.333333
-DEAL::1.16174 0.165057 0.333333
-DEAL::1.33765 0.168075 0.333333
-DEAL::1.50000 0.166667 0.333333
-DEAL::0.587827 0.393172 0.333333
-DEAL::0.655598 0.325792 0.333333
-DEAL::0.838393 0.336781 0.333333
-DEAL::1.00000 0.333333 0.333333
-DEAL::1.16414 0.331610 0.333333
-DEAL::1.33555 0.334842 0.333333
-DEAL::1.50000 0.333333 0.333333
-DEAL::0.500000 0.500000 0.333333
-DEAL::0.666667 0.500000 0.333333
-DEAL::0.833333 0.500000 0.333333
-DEAL::1.00000 0.500000 0.333333
-DEAL::1.16667 0.500000 0.333333
-DEAL::1.33333 0.500000 0.333333
-DEAL::1.50000 0.500000 0.333333
-DEAL::0.500000 -0.500000 0.500000
-DEAL::0.666667 -0.500000 0.500000
-DEAL::0.833333 -0.500000 0.500000
-DEAL::1.00000 -0.500000 0.500000
-DEAL::1.16667 -0.500000 0.500000
-DEAL::1.33333 -0.500000 0.500000
-DEAL::1.50000 -0.500000 0.500000
-DEAL::0.587827 -0.393172 0.500000
-DEAL::0.655598 -0.325792 0.500000
-DEAL::0.838393 -0.336781 0.500000
-DEAL::1.00000 -0.333333 0.500000
-DEAL::1.16414 -0.331610 0.500000
-DEAL::1.33555 -0.334842 0.500000
-DEAL::1.50000 -0.333333 0.500000
-DEAL::0.671122 -0.222531 0.500000
-DEAL::0.645100 -0.159626 0.500000
-DEAL::0.843192 -0.169885 0.500000
-DEAL::1.00000 -0.166667 0.500000
-DEAL::1.16174 -0.165057 0.500000
-DEAL::1.33765 -0.168075 0.500000
-DEAL::1.50000 -0.166667 0.500000
-DEAL::0.707107 0.00000 0.500000
-DEAL::0.640565 8.59433e-18 0.500000
-DEAL::0.845265 -2.58644e-18 0.500000
-DEAL::1.00000 0.00000 0.500000
-DEAL::1.16070 1.10453e-18 0.500000
-DEAL::1.33855 -9.39057e-19 0.500000
-DEAL::1.50000 0.00000 0.500000
-DEAL::0.671122 0.222531 0.500000
-DEAL::0.645100 0.159626 0.500000
-DEAL::0.843192 0.169885 0.500000
-DEAL::1.00000 0.166667 0.500000
-DEAL::1.16174 0.165057 0.500000
-DEAL::1.33765 0.168075 0.500000
-DEAL::1.50000 0.166667 0.500000
-DEAL::0.587827 0.393172 0.500000
-DEAL::0.655598 0.325792 0.500000
-DEAL::0.838393 0.336781 0.500000
-DEAL::1.00000 0.333333 0.500000
-DEAL::1.16414 0.331610 0.500000
-DEAL::1.33555 0.334842 0.500000
-DEAL::1.50000 0.333333 0.500000
-DEAL::0.500000 0.500000 0.500000
-DEAL::0.666667 0.500000 0.500000
-DEAL::0.833333 0.500000 0.500000
-DEAL::1.00000 0.500000 0.500000
-DEAL::1.16667 0.500000 0.500000
-DEAL::1.33333 0.500000 0.500000
-DEAL::1.50000 0.500000 0.500000