#include <stack>\r
#include <vector>\r
#include <iostream>\r
+#include <algorithm>\r
\r
#include "muParserDef.h"\r
#include "muParserError.h"\r
<head>
<title>The deal.II Readme on interfacing to PETSc</title>
<link href="../screen.css" rel="StyleSheet">
- <meta name="copyright" content="Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013 by the deal.II authors">
+ <meta name="copyright" content="Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 by the deal.II authors">
<meta name="date" content="$Date$">
<meta name="svn_id" content="$Id$">
<meta name="keywords" content="deal.II">
<h4>Installing <acronym>deal.II</acronym> with PETSc</h4>
- <p style="color: red"><b>Note:</b> The latest version of PETSc tested is
- 3.4.2. Major releases after this version may cause problems, so we
- recommend sticking to this version if at all possible.
+ <p style="color: red"><b>Note:</b> The most recent version of
+ PETSc that has been reported to be compatible
+ with <acronym>deal.II</acronym> is version 3.4. If you use a
+ later version than this and encounter problems, let us know.
</p>
<p>
- PETSc usually requires you to set the
+ When you compile and install PETSc, you need to set
environment variables <code>PETSC_DIR</code> and <code>PETSC_ARCH</code>
to a path to PETSc and denoting the architecture for which PETSc is
- compiled (a string you can choose however you like, it is simply
- intended to identify one of possibly several different PETSc
- installations). If these environment variables are set, then
- <acronym>deal.II</acronym> will pick them up during
- configuration, and store them. It will then also recognize that
- PETSc shall be used, and enable the wrapper classes.
+ compiled. <code>PETSC_ARCH</code> is in reality just a name you give to
+ your installation, it is a string you can choose however you like. The
+ point of it is that it allows you to have multiple possibly different
+ PETSc installations. A consequence of this is that you need to
+ let <acronym>deal.II</acronym>'s <code>cmake</code> scripts know which
+ one of these installations you want it to use, i.e., you need to set the
+ <code>PETSC_ARCH</code> variable to the same value you used when you
+ installed PETSc. The same is true for <code>PETSC_DIR</code>. You can
+ this via environment variables. <code>cmake</code> will then also
+ recognize that PETSc shall be used, and enable the wrapper classes,
+ without you having to explicitly say that you want to use PETSc.
</p>
<p>
- // ---------------------------------------------------------------------
+// ---------------------------------------------------------------------
// $Id$
//
// Copyright (C) 2013, 2014 by the deal.II authors
longer supported. Comparing for equality is done using '==' instead of '='.
<br>
(Timo Heister, 2014/02/10)
- </li>
+ </li>
<li> Changed: The various classes generating graphical output, such
as DataOut or DataOutStack, are all derived from a common interface
<ol>
-
- <li> Changed: the functionparser library bundled with deal.II got replaced
- by the muparser library.
+ <li> Changed: The functionparser library bundled with deal.II got replaced
+ by the muparser library.
<br>
(Timo Heister, 2014/02/10)
- </li>
+ </li>
<li> Changed: It was possible to call DoFAccessor::set_active_fe_index()
on non-active cells. However, this made no sense: Since degrees of
<h3>Specific improvements</h3>
<ol>
+ <li> Changed: TableBase<N,T> now uses AlignedVector for storing data
+ instead of std::vector, which allows its use for VectorizedArray<Number>
+ data fields which require more alignment.
+ <br>
+ (Martin Kronbichler, 2014/04/09)
+ </li>
+
+ <li> Improved: Piola transformation for FE_BDM is now active.
+ <br>
+ (Guido Kanschat, 2014/04/09)
+ </li>
+
+ <li> Changed: operator< for cell iterators no longer looks at
+ (level-)subdomain ids but only compares level() and index(). This makes the
+ ordering inconsistent between processes on a
+ parallel::distributed::Triangulation, but fixes the problem that the
+ ordering of cells changes under mesh refinement or other causes for changing
+ the subdomain id.
+ <br>
+ (Timo Heister, 2014/04/08)
+ </li>
+
+ <li> New: GridTools::laplace_transform() now takes an addition, optional
+ parameter that indicates the "stiffness" of the mapping.
+ <br>
+ (Denis Davydov, Jean-Paul Pelteret, 2014/04/07)
+ </li>
+
+ <li> Fixed: DoFTools::extract_constant_modes now correctly identifies both
+ constant modes in the scalar element FE_Q_DG0, which has been realized by a
+ few modifications in how the constant modes propagate from the element to
+ the extract_constant_modes() function.
+ <br>
+ (Martin Kronbichler, 2014/04/04)
+ </li>
+
+ <li> Fixed: GridTools::laplace_transform had previously announced in
+ the documentation that one can also set the location of interior points,
+ but this was not in fact what was implemented. This has now been fixed:
+ the code can now do that.
+ <br>
+ (Denis Davydov, Wolfgang Bangerth, 2014/03/23)
+ </li>
+
+ <li> Improved: Inhomogeneous tangential and normal flow constraints can
+ now be treated via VectorTools::compute_nonzero_normal_flux_constraints
+ and VectorTools::compute_nonzero_tangential_flux_constraints.
+ <br>
+ (Daniel Arndt, 2014/03/16)
+ </li>
+
+ <li> Changed: Class TriaAccessor had a function parent_index(), but this function
+ could only work for cell accessors. The function has consequently been moved
+ to class CellAccessor.
+ <br>
+ (Wolfgang Bangerth, 2014/03/15)
+ </li>
<li> Fixed: step-32 had a piece of code where we accessed an internal
representation of how Trilinos vectors are actually stored. This is poor
<br>
(Markus Bürg, 2014/03/10)
</li>
-
+
<li> Fixed: ParameterHandler will no longer output an error if the file
to be read ends with "end" without a newline.
<br>
SIAM J. Optim., vol. 24, pp. 108-126, 2014.
</li>
- <li> T. Wick, G. Singh, M.F. Wheeler
+ <li> J. Reinhardt, A. Scacchi, J. M. Bader
<br>
- <strong>Pressurized-Fracture propagation using a phase-field approach coupled to a reservoir simulator
+ <strong>Microrheology close to an equilibrium phase transition
</strong>
<br>
- SPE 168597-MS, SPE HFTC Proc., 2014.
+ J. Chem. Phys., vol. 140, article 144901, 2014.
</li>
<li> M.F. Wheeler, T. Wick, W. Wollner
Comput. Methods Appl. Mech. Engrg., vol. 271, pp. 69-85, 2014.
</li>
+ <li> T. Wick, G. Singh, M.F. Wheeler
+ <br>
+ <strong>Pressurized-Fracture propagation using a phase-field approach coupled to a reservoir simulator
+ </strong>
+ <br>
+ SPE 168597-MS, SPE HFTC Proc., 2014.
+ </li>
+
<li> J. Willems
<br>
<strong>Robust Multilevel Methods for General Symmetric Positive Definite Operators
</strong>
<br>
- SIAM J. Numer. Anal. 52 (2014), no. 1, 103-124.
+ SIAM J. Numer. Anal. 52 (2014), no. 1, 103-124, 2014.
</li>
/* ---------------------------------------------------------------------
* $Id$
*
- * Copyright (C) 2008 - 2013 by the deal.II authors
+ * Copyright (C) 2008 - 2014 by the deal.II authors
*
* This file is part of the deal.II library.
*
// 1=y velocity, 2=pressure in 2d), which we use to pick out
// the correct component of the right-hand side vector to
// multiply with.
-
+
const unsigned int component_i =
fe.system_to_component_index(i).first;
local_rhs(i) += fe_values.shape_value(i,q) *
// simultaneously use the ConstraintMatrix object to apply Dirichlet
// boundary conditions and eliminate hanging node constraints, as we
// discussed in the introduction), we have to be careful about one
- // thing, though. We have only build up half of the local matrix
+ // thing, though. We have only built half of the local matrix
// because of symmetry, but we're going to save the full system matrix
// in order to use the standard functions for solution. This is done
// by flipping the indices in case we are pointing into the empty part
\nabla \cdot \kappa \nabla (T^\alpha)
+
\kappa(\alpha-1)
- T^{\alpha-2} |\nabla T|^\alpha
+ T^{\alpha-2} |\nabla T|^2
-
\gamma
T^{\alpha-1}
// twice. Rather, we would keep this object in the main class and simply
// store a reference.
//
- // @note Observe how we store the values for the coefficient: We use a
- // vector type <code>AlignedVector<VectorizedArray<number> ></code>
- // structure. One would think that one can use
- // <code>std::vector<VectorizedArray<number> ></code> as well, but there are
- // some technicalities with vectorization: A certain alignment of the data
- // with the memory address boundaries is required (essentially, a
- // VectorizedArray of 16 bytes length as in SSE needs to start at a memory
- // address that is divisible by 16). The chosen class makes sure that this
- // alignment is respected, whereas std::vector can in general not, which may
- // lead to segmentation faults at strange places for some systems or
- // suboptimal performance for other systems.
+ // @note Note that storing values of type
+ // <code>VectorizedArray<number></code> requires care: Here, we use the
+ // deal.II table class which is prepared to hold the data with correct
+ // alignment. However, storing it in e.g.
+ // <code>std::vector<VectorizedArray<number> ></code> is not possible with
+ // vectorization: A certain alignment of the data with the memory address
+ // boundaries is required (essentially, a VectorizedArray of 16 bytes length
+ // as in SSE needs to start at a memory address that is divisible by
+ // 16). The table class (as well as the AlignedVector class it is based on)
+ // makes sure that this alignment is respected, whereas std::vector can in
+ // general not, which may lead to segmentation faults at strange places for
+ // some systems or suboptimal performance for other systems.
template <int dim, int fe_degree, typename number>
class LaplaceOperator : public Subscriptor
{
void evaluate_coefficient(const Coefficient<dim> &function);
MatrixFree<dim,number> data;
- AlignedVector<VectorizedArray<number> > coefficient;
+ Table<2, VectorizedArray<number> > coefficient;
Vector<number> diagonal_values;
bool diagonal_is_available;
{
const unsigned int n_cells = data.n_macro_cells();
FEEvaluation<dim,fe_degree,fe_degree+1,1,number> phi (data);
- coefficient.resize (n_cells * phi.n_q_points);
+ coefficient.reinit (n_cells, phi.n_q_points);
for (unsigned int cell=0; cell<n_cells; ++cell)
{
phi.reinit (cell);
for (unsigned int q=0; q<phi.n_q_points; ++q)
- coefficient[cell*phi.n_q_points+q] =
+ coefficient(cell,q) =
coefficient_function.value(phi.quadrature_point(q));
}
}
const std::pair<unsigned int,unsigned int> &cell_range) const
{
FEEvaluation<dim,fe_degree,fe_degree+1,1,number> phi (data);
- AssertDimension (coefficient.size(), data.n_macro_cells() * phi.n_q_points);
for (unsigned int cell=cell_range.first; cell<cell_range.second; ++cell)
{
phi.read_dof_values(src);
phi.evaluate (false,true,false);
for (unsigned int q=0; q<phi.n_q_points; ++q)
- phi.submit_gradient (coefficient[cell*phi.n_q_points+q] *
+ phi.submit_gradient (coefficient(cell,q) *
phi.get_gradient(q), q);
phi.integrate (false,true);
phi.distribute_local_to_global (dst);
/* ---------------------------------------------------------------------
* $Id$
*
- * Copyright (C) 2009 - 2013 by the deal.II authors
+ * Copyright (C) 2009 - 2014 by the deal.II authors
*
* This file is part of the deal.II library.
*
#ifdef USE_PETSC_LA
data.symmetric_operator = true;
#else
- //trilinos defaults are good
+ /* Trilinos defaults are good */
#endif
preconditioner.initialize(system_matrix, data);
// ---------------------------------------------------------------------
// $Id: named_data.h 30036 2013-07-18 16:55:32Z maier $
//
-// Copyright (C) 2000 - 2013 by the deal.II authors
+// Copyright (C) 2000 - 2014 by the deal.II authors
//
// This file is part of the deal.II library.
//
unsigned int
AnyData::find(const std::string& n) const
{
- typename std::vector<std::string>::const_iterator it =
+ std::vector<std::string>::const_iterator it =
std::find(names.begin(), names.end(), n);
Assert(it != names.end(), ExcMessage("An entry with this name does not exist"));
#include <deal.II/base/exceptions.h>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/parallel.h>
+#include <boost/serialization/array.hpp>
+#include <boost/serialization/split_member.hpp>
#include <cstring>
void insert_back (ForwardIterator begin,
ForwardIterator end);
+ /**
+ * Fills the vector with size() copies of the given input
+ */
+ void fill (const T &element);
+
/**
* Swaps the given vector with the calling vector.
*/
*/
size_type memory_consumption () const;
+ /**
+ * Write the data of this object to
+ * a stream for the purpose of serialization.
+ */
+ template <class Archive>
+ void save (Archive &ar, const unsigned int version) const;
+
+ /**
+ * Read the data of this object
+ * from a stream for the purpose of serialization.
+ */
+ template <class Archive>
+ void load (Archive &ar, const unsigned int version);
+
+ BOOST_SERIALIZATION_SPLIT_MEMBER()
+
private:
/**
if (size == 0)
return;
- if (std_cxx1x::is_trivial<T>::value == true)
+ // do not use memcmp for long double because on some systems it does not
+ // completely fill its memory and may lead to false positives in
+ // e.g. valgrind
+ if (std_cxx1x::is_trivial<T>::value == true &&
+ types_are_equal<T,long double>::value == false)
{
const unsigned char zero [sizeof(T)] = {};
// cast element to (void*) to silence compiler warning for virtual
mutable T *destination_;
bool trivial_element;
};
+
} // end of namespace internal
AlignedVector<T>&
AlignedVector<T>::operator = (const AlignedVector<T> &vec)
{
- clear();
+ resize(0);
resize_fast (vec._end_data - vec._data);
internal::AlignedVectorMove<T> (vec._data, vec._end_data, _data, true);
return *this;
// now _size is set correctly, need to set the
// values
if (size_in > old_size)
- internal::AlignedVectorSet<T> (size_in-old_size, init,
- _data+old_size);
+ dealii::internal::AlignedVectorSet<T> (size_in-old_size, init, _data+old_size);
}
+template < class T >
+inline
+void
+AlignedVector<T>::fill (const T &value)
+{
+ dealii::internal::AlignedVectorSet<T> (size(), value, _data);
+}
+
+
+
template < class T >
inline
void
+template < class T >
+template < class Archive >
+inline
+void
+AlignedVector<T>::save (Archive &ar, const unsigned int) const
+{
+ size_type vec_size (size());
+ ar &vec_size;
+ if (vec_size > 0)
+ ar &boost::serialization::make_array(_data, vec_size);
+}
+
+
+
+template < class T >
+template < class Archive >
+inline
+void
+AlignedVector<T>::load (Archive &ar, const unsigned int)
+{
+ size_type vec_size = 0;
+ ar &vec_size ;
+
+ if (vec_size > 0)
+ {
+ reserve(vec_size);
+ ar &boost::serialization::make_array(_data, vec_size);
+ _end_data = _data + vec_size;
+ }
+}
+
+
+
template < class T >
inline
typename AlignedVector<T>::size_type
AlignedVector<T>::memory_consumption () const
{
- size_type memory = sizeof(this);
- memory += sizeof(T) * capacity();
+ size_type memory = sizeof(*this);
+ for (const T* t = _data ; t != _end_data; ++t)
+ memory += dealii::MemoryConsumption::memory_consumption(*t);
+ memory += sizeof(T) * (_end_allocated-_end_data);
return memory;
}
* Defined if there is no const operator() in the class type returned
* by std::bind.
*/
-#cmakedefine DEAL_II_BOOST_BIND_NO_CONST_OP_PARENTHESES
+#cmakedefine DEAL_II_BIND_NO_CONST_OP_PARENTHESES
/** Defined if the compiler incorrectly deduces a constexpr as not being a
* constant integral expression under certain optimization (notably
* need a <code>.pvtu</code> file that describes which VTU files form
* a group. The DataOutInterface::write_pvtu_record() function can
* generate such a master record. Likewise,
- * DataOutInterface::write_visit_record() does the same for VisIt.
+ * DataOutInterface::write_visit_record() does the same for VisIt
+ * (although VisIt can also read <code>pvtu</code> records since version 2.5.1).
* Finally, for time dependent problems, you may also want to look
* at DataOutInterface::write_pvd_record()
*
* function can generate such a
* master record. Likewise,
* DataOutInterface::write_visit_record()
- * does the same for VisIt. Finally,
- * DataOutInterface::write_pvd_record()
- * can be used to group together
- * the files that jointly make up
- * a time dependent simulation.
+ * does the same for older versions of VisIt
+ * (although VisIt can also read <code>pvtu</code> records since version 2.5.1).
+ * Finally, DataOutInterface::write_pvd_record()
+ * can be used to group together
+ * the files that jointly make up
+ * a time dependent simulation.
*/
void write_vtu (std::ostream &out) const;
* @note The use of this function is
* explained in step-40.
*
- * @note In order to tell Paraview to
- * group together multiple <code>pvtu</code>
- * files that each describe one time
- * step of a time dependent simulation,
- * see the
+ * @note In order to tell Paraview to
+ * group together multiple <code>pvtu</code>
+ * files that each describe one time
+ * step of a time dependent simulation,
+ * see the
* DataOutInterface::write_pvd_record()
- * function.
- *
- * @note At the time of writing,
- * the other big VTK-based
- * visualization program, VisIt,
+ * function.
+ *
+ * @note Older versions of VisIt (before 2.5.1),
* can not read <code>pvtu</code>
* records. However, it can read
* visit records as written by
/**
* This function is the exact equivalent of the write_pvtu_record()
- * function but for the VisIt visualization program and for one visualization graph
+ * function but for older versions of the VisIt visualization program and for one visualization graph
* (or one time step only). See there for the purpose of this function.
*
* This function is documented in the "Creating a master file for
// ---------------------------------------------------------------------
// $Id$
//
-// Copyright (C) 2000 - 2013 by the deal.II authors
+// Copyright (C) 2000 - 2014 by the deal.II authors
//
// This file is part of the deal.II library.
//
DEAL_II_NAMESPACE_OPEN
+// forward declaration
+template <typename T> class VectorizedArray;
+
+
/**
* This namespace provides functions helping to determine the amount
* of memory used by objects. The goal is not necessarily to give the
inline
std::size_t memory_consumption (const std::complex<T> &);
+ /**
+ * Determine the amount of memory in bytes consumed by a
+ * <tt>VectorizedArray</tt> variable.
+ */
+ template <typename T>
+ inline
+ std::size_t memory_consumption (const VectorizedArray<T> &);
+
/**
* Determine an estimate of the
* amount of memory in bytes
}
+
template <typename T>
inline
std::size_t memory_consumption (const std::complex<T> &)
+ template <typename T>
+ inline
+ std::size_t memory_consumption (const VectorizedArray<T> &)
+ {
+ return sizeof(VectorizedArray<T>);
+ }
+
+
+
inline
std::size_t memory_consumption (const std::string &s)
{
f (begin, end);
# else
// work around a problem with MS VC++ where there is no const
- // operator() in Function
- Function(f) (begin, end);
+ // operator() in 'Function' if 'Function' is the result of std::bind
+ Function ff = f;
+ ff (begin, end);
# endif
#else
tbb::parallel_for (tbb::blocked_range<RangeType>
(void) grainsize;
# ifndef DEAL_II_BIND_NO_CONST_OP_PARENTHESES
- f (begin, end);
+ return f (begin, end);
# else
// work around a problem with MS VC++ where there is no const
- // operator() in Function
- Function(f) (begin, end);
+ // operator() in 'Function' if 'Function' is the result of std::bind
+ Function ff = f;
+ return ff (begin, end);
# endif
#else
internal::ReductionOnSubranges<ResultType,Function>
// ---------------------------------------------------------------------
// $Id$
//
-// Copyright (C) 2002 - 2013 by the deal.II authors
+// Copyright (C) 2002 - 2014 by the deal.II authors
//
// This file is part of the deal.II library.
//
#include <deal.II/base/subscriptor.h>
#include <deal.II/base/table_indices.h>
#include <deal.II/base/memory_consumption.h>
+#include <deal.II/base/aligned_vector.h>
#include <cstddef>
#include <algorithm>
typedef const T value_type;
typedef const TableBase<N,T> TableType;
- typedef typename std::vector<T>::const_iterator iterator;
- typedef typename std::vector<T>::const_iterator const_iterator;
+ typedef typename AlignedVector<T>::const_iterator iterator;
+ typedef typename AlignedVector<T>::const_iterator const_iterator;
- typedef typename std::vector<T>::const_reference reference;
- typedef typename std::vector<T>::const_reference const_reference;
+ typedef typename AlignedVector<T>::const_reference reference;
+ typedef typename AlignedVector<T>::const_reference const_reference;
};
/**
typedef T value_type;
typedef TableBase<N,T> TableType;
- typedef typename std::vector<T>::iterator iterator;
- typedef typename std::vector<T>::const_iterator const_iterator;
+ typedef typename AlignedVector<T>::iterator iterator;
+ typedef typename AlignedVector<T>::const_iterator const_iterator;
- typedef typename std::vector<T>::reference reference;
- typedef typename std::vector<T>::const_reference const_reference;
+ typedef typename AlignedVector<T>::reference reference;
+ typedef typename AlignedVector<T>::const_reference const_reference;
};
* Return a read-write reference
* to the indicated element.
*/
- typename std::vector<T>::reference
+ typename AlignedVector<T>::reference
operator () (const TableIndices<N> &indices);
/**
* don't know here whether
* copying is expensive or not.
*/
- typename std::vector<T>::const_reference
+ typename AlignedVector<T>::const_reference
operator () (const TableIndices<N> &indices) const;
/**
* used internally and in
* functions already checked.
*/
- typename std::vector<T>::reference el (const TableIndices<N> &indices);
+ typename AlignedVector<T>::reference el (const TableIndices<N> &indices);
/**
* Return the value of the
* don't know here whether
* copying is expensive or not.
*/
- typename std::vector<T>::const_reference el (const TableIndices<N> &indices) const;
+ typename AlignedVector<T>::const_reference el (const TableIndices<N> &indices) const;
/**
* @deprecated This function
* cast from const), otherwise,
* keep away!
*/
- typename std::vector<T>::const_pointer data () const DEAL_II_DEPRECATED;
+ typename AlignedVector<T>::const_pointer data () const DEAL_II_DEPRECATED;
protected:
/**
* Component-array.
*/
- std::vector<T> values;
+ AlignedVector<T> values;
/**
* Size in each direction of the
* data element. Returns a
* read-only reference.
*/
- typename std::vector<T>::const_reference
+ typename AlignedVector<T>::const_reference
operator [] (const unsigned int i) const;
/**
* data element. Returns a
* read-write reference.
*/
- typename std::vector<T>::reference
+ typename AlignedVector<T>::reference
operator [] (const unsigned int i);
/**
* data element. Returns a
* read-only reference.
*/
- typename std::vector<T>::const_reference
+ typename AlignedVector<T>::const_reference
operator () (const unsigned int i) const;
/**
* data element. Returns a
* read-write reference.
*/
- typename std::vector<T>::reference
+ typename AlignedVector<T>::reference
operator () (const unsigned int i);
/**
* base class available also in
* this class.
*/
- typename std::vector<T>::reference
+ typename AlignedVector<T>::reference
operator () (const TableIndices<1> &indices);
/**
* base class available also in
* this class.
*/
- typename std::vector<T>::const_reference
+ typename AlignedVector<T>::const_reference
operator () (const TableIndices<1> &indices) const;
};
* This version of the function
* only allows read access.
*/
- typename std::vector<T>::const_reference
+ typename AlignedVector<T>::const_reference
operator () (const unsigned int i,
const unsigned int j) const;
* This version of the function
* allows read-write access.
*/
- typename std::vector<T>::reference
+ typename AlignedVector<T>::reference
operator () (const unsigned int i,
const unsigned int j);
* base class available also in
* this class.
*/
- typename std::vector<T>::reference
+ typename AlignedVector<T>::reference
operator () (const TableIndices<2> &indices);
/**
* base class available also in
* this class.
*/
- typename std::vector<T>::const_reference
+ typename AlignedVector<T>::const_reference
operator () (const TableIndices<2> &indices) const;
* table classes for 2d arrays,
* then called <tt>vector2d</tt>.
*/
- typename std::vector<T>::reference el (const unsigned int i,
- const unsigned int j);
+ typename AlignedVector<T>::reference el (const unsigned int i,
+ const unsigned int j);
/**
* Return the value of the
* table classes for 2d arrays,
* then called <tt>vector2d</tt>.
*/
- typename std::vector<T>::const_reference el (const unsigned int i,
- const unsigned int j) const;
+ typename AlignedVector<T>::const_reference el (const unsigned int i,
+ const unsigned int j) const;
};
* This version of the function
* only allows read access.
*/
- typename std::vector<T>::const_reference operator () (const unsigned int i,
- const unsigned int j,
- const unsigned int k) const;
+ typename AlignedVector<T>::const_reference operator () (const unsigned int i,
+ const unsigned int j,
+ const unsigned int k) const;
/**
* This version of the function
* allows read-write access.
*/
- typename std::vector<T>::reference operator () (const unsigned int i,
- const unsigned int j,
- const unsigned int k);
+ typename AlignedVector<T>::reference operator () (const unsigned int i,
+ const unsigned int j,
+ const unsigned int k);
/**
* Make the corresponding
* base class available also in
* this class.
*/
- typename std::vector<T>::reference operator () (const TableIndices<3> &indices);
+ typename AlignedVector<T>::reference operator () (const TableIndices<3> &indices);
/**
* Make the corresponding
* base class available also in
* this class.
*/
- typename std::vector<T>::const_reference operator () (const TableIndices<3> &indices) const;
+ typename AlignedVector<T>::const_reference operator () (const TableIndices<3> &indices) const;
};
* This version of the function
* only allows read access.
*/
- typename std::vector<T>::const_reference operator () (const unsigned int i,
- const unsigned int j,
- const unsigned int k,
- const unsigned int l) const;
+ typename AlignedVector<T>::const_reference operator () (const unsigned int i,
+ const unsigned int j,
+ const unsigned int k,
+ const unsigned int l) const;
/**
* This version of the function
* allows read-write access.
*/
- typename std::vector<T>::reference operator () (const unsigned int i,
- const unsigned int j,
- const unsigned int k,
- const unsigned int l);
+ typename AlignedVector<T>::reference operator () (const unsigned int i,
+ const unsigned int j,
+ const unsigned int k,
+ const unsigned int l);
/**
* Make the corresponding
* base class available also in
* this class.
*/
- typename std::vector<T>::reference
+ typename AlignedVector<T>::reference
operator () (const TableIndices<4> &indices);
/**
* base class available also in
* this class.
*/
- typename std::vector<T>::const_reference
+ typename AlignedVector<T>::const_reference
operator () (const TableIndices<4> &indices) const;
};
* This version of the function
* only allows read access.
*/
- typename std::vector<T>::const_reference operator () (const unsigned int i,
- const unsigned int j,
- const unsigned int k,
- const unsigned int l,
- const unsigned int m) const;
+ typename AlignedVector<T>::const_reference operator () (const unsigned int i,
+ const unsigned int j,
+ const unsigned int k,
+ const unsigned int l,
+ const unsigned int m) const;
/**
* Direct access to one element
* This version of the function
* allows read-write access.
*/
- typename std::vector<T>::reference operator () (const unsigned int i,
- const unsigned int j,
- const unsigned int k,
- const unsigned int l,
- const unsigned int m);
+ typename AlignedVector<T>::reference operator () (const unsigned int i,
+ const unsigned int j,
+ const unsigned int k,
+ const unsigned int l,
+ const unsigned int m);
/**
* Make the corresponding
* base class available also in
* this class.
*/
- typename std::vector<T>::reference
+ typename AlignedVector<T>::reference
operator () (const TableIndices<5> &indices);
/**
* base class available also in
* this class.
*/
- typename std::vector<T>::const_reference
+ typename AlignedVector<T>::const_reference
operator () (const TableIndices<5> &indices) const;
};
* This version of the function
* only allows read access.
*/
- typename std::vector<T>::const_reference operator () (const unsigned int i,
- const unsigned int j,
- const unsigned int k,
- const unsigned int l,
- const unsigned int m,
- const unsigned int n) const;
+ typename AlignedVector<T>::const_reference operator () (const unsigned int i,
+ const unsigned int j,
+ const unsigned int k,
+ const unsigned int l,
+ const unsigned int m,
+ const unsigned int n) const;
/**
* Direct access to one element
* This version of the function
* allows read-write access.
*/
- typename std::vector<T>::reference operator () (const unsigned int i,
- const unsigned int j,
- const unsigned int k,
- const unsigned int l,
- const unsigned int m,
- const unsigned int n);
+ typename AlignedVector<T>::reference operator () (const unsigned int i,
+ const unsigned int j,
+ const unsigned int k,
+ const unsigned int l,
+ const unsigned int m,
+ const unsigned int n);
/**
* Make the corresponding
* base class available also in
* this class.
*/
- typename std::vector<T>::reference
+ typename AlignedVector<T>::reference
operator () (const TableIndices<6> &indices);
/**
* base class available also in
* this class.
*/
- typename std::vector<T>::const_reference
+ typename AlignedVector<T>::const_reference
operator () (const TableIndices<6> &indices) const;
};
* This version of the function
* only allows read access.
*/
- typename std::vector<T>::const_reference operator () (const unsigned int i,
- const unsigned int j,
- const unsigned int k,
- const unsigned int l,
- const unsigned int m,
- const unsigned int n,
- const unsigned int o) const;
+ typename AlignedVector<T>::const_reference operator () (const unsigned int i,
+ const unsigned int j,
+ const unsigned int k,
+ const unsigned int l,
+ const unsigned int m,
+ const unsigned int n,
+ const unsigned int o) const;
/**
* Direct access to one element
* This version of the function
* allows read-write access.
*/
- typename std::vector<T>::reference operator () (const unsigned int i,
- const unsigned int j,
- const unsigned int k,
- const unsigned int l,
- const unsigned int m,
- const unsigned int n,
- const unsigned int o);
+ typename AlignedVector<T>::reference operator () (const unsigned int i,
+ const unsigned int j,
+ const unsigned int k,
+ const unsigned int l,
+ const unsigned int m,
+ const unsigned int n,
+ const unsigned int o);
/**
* Make the corresponding
* base class available also in
* this class.
*/
- typename std::vector<T>::reference
+ typename AlignedVector<T>::reference
operator () (const TableIndices<7> &indices);
/**
* base class available also in
* this class.
*/
- typename std::vector<T>::const_reference
+ typename AlignedVector<T>::const_reference
operator () (const TableIndices<7> &indices) const;
};
* This version of the function
* only allows read access.
*/
- typename std::vector<T>::const_reference operator () (const unsigned int i,
- const unsigned int j) const;
+ typename AlignedVector<T>::const_reference operator () (const unsigned int i,
+ const unsigned int j) const;
/**
* Direct access to one element
* This version of the function
* allows read-write access.
*/
- typename std::vector<T>::reference operator () (const unsigned int i,
- const unsigned int j);
+ typename AlignedVector<T>::reference operator () (const unsigned int i,
+ const unsigned int j);
/**
* Number of rows. This function
* table classes for 2d arrays,
* then called <tt>vector2d</tt>.
*/
- typename std::vector<T>::reference el (const unsigned int i,
+ typename AlignedVector<T>::reference el (const unsigned int i,
const unsigned int j);
/**
* table classes for 2d arrays,
* then called <tt>vector2d</tt>.
*/
- typename std::vector<T>::const_reference el (const unsigned int i,
+ typename AlignedVector<T>::const_reference el (const unsigned int i,
const unsigned int j) const;
};
:
Subscriptor ()
{
- reinit (src.table_size);
- if (src.n_elements() != 0)
- std::copy (src.values.begin(), src.values.end(), values.begin());
+ values = src.values;
+ reinit (src.table_size, true);
}
TableBase<N,T> &
TableBase<N,T>::operator = (const TableBase<N,T> &m)
{
- reinit (m.size());
- if (!empty())
- std::copy (m.values.begin(), m.values.end(), values.begin());
+ if (!m.empty())
+ values = m.values;
+ reinit (m.size(), true);
return *this;
}
TableBase<N,T> &
TableBase<N,T>::operator = (const TableBase<N,T2> &m)
{
- reinit (m.size());
+ reinit (m.size(), true);
if (!empty())
std::copy (m.values.begin(), m.values.begin() + n_elements(),
values.begin());
void
TableBase<N,T>::reset_values ()
{
+ // use parallel set operation
if (n_elements() != 0)
- std::fill (values.begin(), values.end(), T());
+ values.fill(T());
}
TableBase<N,T>::fill (const T &value)
{
if (n_elements() != 0)
- std::fill (values.begin(), values.end(), value);
+ values.fill(value);
}
const unsigned int new_size = n_elements();
- // if zero size was given: free all
- // memory
+ // if zero size was given: free all memory
if (new_size == 0)
{
values.resize (0);
return;
}
- // if new size is nonzero:
- // if necessary allocate
- // additional memory
- values.resize (new_size);
-
- // reinitialize contents of old or
- // new memory. note that we
- // actually need to do this here,
- // even in the case that we
- // reallocated memory, since per
- // C++ standard, clause 5.3.4/15
- // the newly allocated objects are
- // only default initialized by
- // operator new[] if they are
- // non-POD type. In other words, if
- // we have a table of doubles, then
- // their values after calling 'new
- // double[val_size]' is
- // indetermined.
- if (fast == false)
- reset_values ();
+ // if new size is nonzero: if necessary allocate additional memory, and if
+ // not fast resize, zero out all values)
+ values.resize_fast (new_size);
+ if (!fast)
+ values.fill(T());
}
ExcMessage("Trying to fill an empty matrix."));
if (C_style_indexing)
- for (typename std::vector<T>::iterator p = values.begin();
+ for (typename AlignedVector<T>::iterator p = values.begin();
p != values.end(); ++p)
*p = *entries++;
else
template <int N, typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
TableBase<N,T>::operator () (const TableIndices<N> &indices) const
{
for (unsigned int n=0; n<N; ++n)
template <int N, typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
TableBase<N,T>::operator () (const TableIndices<N> &indices)
{
for (unsigned int n=0; n<N; ++n)
template <int N, typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
TableBase<N,T>::el (const TableIndices<N> &indices) const
{
return values[position(indices)];
template <int N, typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
TableBase<N,T>::el (const TableIndices<N> &indices)
{
Assert (position(indices) < values.size(),
template <int N, typename T>
inline
-typename std::vector<T>::const_pointer
+typename AlignedVector<T>::const_pointer
TableBase<N,T>::data () const
{
if (values.size() == 0)
- return typename std::vector<T>::const_pointer();
+ return typename AlignedVector<T>::const_pointer();
else
return &values[0];
}
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<1,T>::operator [] (const unsigned int i) const
{
Assert (i < this->table_size[0],
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<1,T>::operator [] (const unsigned int i)
{
Assert (i < this->table_size[0],
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<1,T>::operator () (const unsigned int i) const
{
Assert (i < this->table_size[0],
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<1,T>::operator () (const unsigned int i)
{
Assert (i < this->table_size[0],
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<1,T>::operator () (const TableIndices<1> &indices) const
{
return TableBase<1,T>::operator () (indices);
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<1,T>::operator () (const TableIndices<1> &indices)
{
return TableBase<1,T>::operator () (indices);
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<2,T>::operator () (const unsigned int i,
const unsigned int j) const
{
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<2,T>::operator () (const unsigned int i,
const unsigned int j)
{
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<2,T>::operator () (const TableIndices<2> &indices) const
{
return TableBase<2,T>::operator () (indices);
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<2,T>::operator () (const TableIndices<2> &indices)
{
return TableBase<2,T>::operator () (indices);
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<2,T>::el (const unsigned int i,
const unsigned int j) const
{
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<2,T>::el (const unsigned int i,
const unsigned int j)
{
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
TransposeTable<T>::operator () (const unsigned int i,
const unsigned int j) const
{
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
TransposeTable<T>::operator () (const unsigned int i,
const unsigned int j)
{
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
TransposeTable<T>::el (const unsigned int i,
const unsigned int j) const
{
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
TransposeTable<T>::el (const unsigned int i,
const unsigned int j)
{
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<3,T>::operator () (const unsigned int i,
const unsigned int j,
const unsigned int k) const
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<3,T>::operator () (const unsigned int i,
const unsigned int j,
const unsigned int k)
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<3,T>::operator () (const TableIndices<3> &indices) const
{
return TableBase<3,T>::operator () (indices);
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<3,T>::operator () (const TableIndices<3> &indices)
{
return TableBase<3,T>::operator () (indices);
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<4,T>::operator () (const unsigned int i,
const unsigned int j,
const unsigned int k,
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<4,T>::operator () (const unsigned int i,
const unsigned int j,
const unsigned int k,
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<4,T>::operator () (const TableIndices<4> &indices) const
{
return TableBase<4,T>::operator () (indices);
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<4,T>::operator () (const TableIndices<4> &indices)
{
return TableBase<4,T>::operator () (indices);
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<5,T>::operator () (const unsigned int i,
const unsigned int j,
const unsigned int k,
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<5,T>::operator () (const unsigned int i,
const unsigned int j,
const unsigned int k,
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<5,T>::operator () (const TableIndices<5> &indices) const
{
return TableBase<5,T>::operator () (indices);
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<5,T>::operator () (const TableIndices<5> &indices)
{
return TableBase<5,T>::operator () (indices);
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<6,T>::operator () (const unsigned int i,
const unsigned int j,
const unsigned int k,
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<6,T>::operator () (const unsigned int i,
const unsigned int j,
const unsigned int k,
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<6,T>::operator () (const TableIndices<6> &indices) const
{
return TableBase<6,T>::operator () (indices);
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<6,T>::operator () (const TableIndices<6> &indices)
{
return TableBase<6,T>::operator () (indices);
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<7,T>::operator () (const unsigned int i,
const unsigned int j,
const unsigned int k,
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<7,T>::operator () (const unsigned int i,
const unsigned int j,
const unsigned int k,
template <typename T>
inline
-typename std::vector<T>::const_reference
+typename AlignedVector<T>::const_reference
Table<7,T>::operator () (const TableIndices<7> &indices) const
{
return TableBase<7,T>::operator () (indices);
template <typename T>
inline
-typename std::vector<T>::reference
+typename AlignedVector<T>::reference
Table<7,T>::operator () (const TableIndices<7> &indices)
{
return TableBase<7,T>::operator () (indices);
* - Implicit methods:
* - BACKWARD_EULER: first order
* - IMPLICIT_MIDPOINT: second order
- * - CRANK_NICHOLSON: second order
+ * - CRANK_NICOLSON: second order
* - SDIRK_TWO_STAGES: second order
* - Embedded explicit methods:
* - HEUN_EULER: second order
tmp[3] = -212./729.;
this->a.push_back(tmp);
tmp.resize(5);
- tmp[0] = -9017./3168.;
+ tmp[0] = 9017./3168.;
tmp[1] = -355./33.;
tmp[2] = 46732./5247.;
tmp[3] = 49./176.;
*/
static bool is_level_cell();
- /**
- * Return an iterator pointing to the the parent.
- */
- TriaIterator<DoFAccessor<structdim,DH, level_dof_access> >
- parent () const;
-
/**
* @name Accessing sub-objects
*/
*/
void copy_from (const TriaAccessorBase<0, 1, spacedim> &da);
- /**
- * Return an iterator pointing to the the parent.
- */
- TriaIterator<DoFAccessor<0,DH<1,spacedim>, level_dof_access> >
- parent () const;
-
/**
* @name Accessing sub-objects
*/
*/
/**
- * Return the parent as a DoF cell iterator. This function is needed
- * since the parent function of the base class returns a cell
- * accessor without access to the DoF data.
+ * Return the parent of this cell as a DoF cell iterator.
+ * If the parent does not exist (i.e., if the object is at the coarsest level of
+ * the mesh hierarchy), an exception is generated.
+ *
+ * This function is needed
+ * since the parent function of the base class CellAccessor returns a triangulation
+ * cell accessor without access to the DoF data.
*/
TriaIterator<DoFCellAccessor<DH, level_dof_access> >
parent () const;
}
-template <int structdim, class DH, bool level_dof_access>
-inline
-TriaIterator<DoFAccessor<structdim,DH,level_dof_access> >
-DoFAccessor<structdim,DH,level_dof_access>::parent () const
-{
- Assert (static_cast<unsigned int>(this->level()) < this->dof_handler->levels.size(),
- ExcMessage ("DoFHandler not initialized"));
- Assert (this->level () > 0,
- ExcMessage ("Cell is at coarsest level."));
-
- int previous_level;
-
- if (DH::dimension==structdim)
- previous_level = this->level () - 1;
-
- else
- previous_level = 0;
-
- TriaIterator<DoFAccessor<structdim,DH,level_dof_access> > q (this->tria,
- previous_level,
- this->parent_index (),
- this->dof_handler);
-
- return q;
-}
-
-
-
namespace internal
{
namespace DoFAccessor
* works on algebraic properties of the respective matrix, it has no
* chance to detect whether the matrix comes from a scalar or a
* vector valued problem. However, a near null space supplies
- * exactly the needed information about these components. The null
- * space will consist of as many vectors as there are true arguments
- * in <tt>component_mask</tt> (see @ref GlossComponentMask), each of
- * which will be one in one vector component and zero in all
- * others. We store this object in a vector of vectors, where the
- * outer vector is of the size of the number of selected components,
- * and each inner vector has as many components as there are
- * (locally owned) degrees of freedom in the selected
- * components. Note that any matrix associated with this null space
+ * exactly the needed information about the components placement of vector
+ * components within the matrix. The null space (or rather, the constant
+ * modes) is provided by the finite element underlying the given DoFHandler
+ * and for most elements, the null space will consist of as many vectors as
+ * there are true arguments in <tt>component_mask</tt> (see @ref
+ * GlossComponentMask), each of which will be one in one vector component
+ * and zero in all others. However, the representation of the constant
+ * function for e.g. FE_DGP is different (the first component on each
+ * element one, all other components zero), and some scalar elements may
+ * even have two constant modes (FE_Q_DG0). Therefore, we store this object
+ * in a vector of vectors, where the outer vector contains the collection of
+ * the actual constant modes on the DoFHandler. Each inner vector has as
+ * many components as there are (locally owned) degrees of freedom in the
+ * selected components. Note that any matrix associated with this null space
* must have been constructed using the same <tt>component_mask</tt>
- * argument, since the numbering of DoFs is done relative to the
- * selected dofs, not to all dofs.
+ * argument, since the numbering of DoFs is done relative to the selected
+ * dofs, not to all dofs.
*
* The main reason for this program is the use of the null space
* with the AMG preconditioner.
#include <deal.II/fe/fe_values_extractors.h>
#include <deal.II/fe/component_mask.h>
#include <deal.II/fe/block_mask.h>
-
+#include <deal.II/fe/mapping.h>
DEAL_II_NAMESPACE_OPEN
block_mask (const ComponentMask &component_mask) const;
/**
- * Returns a list of constant modes of the element. The returns table has as
- * many rows as there are components in the element and dofs_per_cell
- * columns. To each component of the finite element, the row in the returned
- * table contains a basis representation of the constant function 1 on the
- * element.
+ * Returns a list of constant modes of the element. The number of rows in
+ * the resulting table depends on the elements in use. For standard
+ * elements, the table has as many rows as there are components in the
+ * element and dofs_per_cell columns. To each component of the finite
+ * element, the row in the returned table contains a basis representation of
+ * the constant function 1 on the element. However, there are some scalar
+ * elements where there is more than one constant mode, e.g. the element
+ * FE_Q_DG0.
+ *
+ * In order to match the constant modes to the actual components in the
+ * element, the returned data structure also returns a vector with as many
+ * components as there are constant modes on the element that contains the
+ * component number.
*/
- virtual Table<2,bool> get_constant_modes () const;
+ virtual std::pair<Table<2,bool>,std::vector<unsigned int> >
+ get_constant_modes () const;
//@}
#include <deal.II/base/vector_slice.h>
#include <deal.II/base/geometry_info.h>
#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/block_indices.h>
#include <deal.II/fe/fe_update_flags.h>
-#include <deal.II/fe/mapping.h>
#include <string>
#include <vector>
*
* @todo This is for 2D only.
*
- * @todo Transformation works only for uniform, Cartesian meshes.
+ * @todo Restriction matrices are missing.
*
* The matching pressure space for FE_BDM of order <i>k</i> is the
* element FE_DGP of order <i>k</i>.
* Returns a list of constant modes of the element. For this element, the
* first entry is true, all other are false.
*/
- virtual Table<2,bool> get_constant_modes () const;
+ virtual std::pair<Table<2,bool>, std::vector<unsigned int> >
+ get_constant_modes () const;
protected:
* Returns a list of constant modes of the element. For this element, it
* simply returns one row with all entries set to true.
*/
- virtual Table<2,bool> get_constant_modes () const;
+ virtual std::pair<Table<2,bool>, std::vector<unsigned int> >
+ get_constant_modes () const;
/**
* Determine an estimate for the
* Returns a list of constant modes of the element. For this element, it
* simply returns one row with all entries set to true.
*/
- virtual Table<2,bool> get_constant_modes () const;
+ virtual std::pair<Table<2,bool>, std::vector<unsigned int> >
+ get_constant_modes () const;
private:
/**
* Returns a list of constant modes of the element. For this element, it
* simply returns one row with all entries set to true.
*/
- virtual Table<2,bool> get_constant_modes () const;
+ virtual std::pair<Table<2,bool>, std::vector<unsigned int> >
+ get_constant_modes () const;
protected:
virtual
* Returns a list of constant modes of the element. For this element, the
* first entry on each face is true, all other are false (as the constant
* function is represented by the first base function of Legendre
- * polynomials.
+ * polynomials).
*/
- virtual Table<2,bool> get_constant_modes () const;
+ virtual std::pair<Table<2,bool>, std::vector<unsigned int> >
+ get_constant_modes () const;
private:
/**
/**
* Returns a list of constant modes of the element.
*/
- virtual Table<2,bool> get_constant_modes () const;
+ virtual std::pair<Table<2,bool>, std::vector<unsigned int> >
+ get_constant_modes () const;
virtual std::size_t memory_consumption () const;
virtual FiniteElement<dim> *clone() const;
* Returns a list of constant modes of the element. For this element, the
* list consists of true arguments for all components.
*/
- virtual Table<2,bool> get_constant_modes () const;
+ virtual std::pair<Table<2,bool>, std::vector<unsigned int> >
+ get_constant_modes () const;
/**
* @name Functions to support hp
virtual bool has_support_on_face (const unsigned int shape_index,
const unsigned int face_index) const;
+ /**
+ * Returns a list of constant modes of the element. For this element, there
+ * are two constant modes despite the element is scalar: The first constant
+ * mode is all ones for the usual FE_Q basis and the second one only using
+ * the discontinuous part.
+ */
+ virtual std::pair<Table<2,bool>, std::vector<unsigned int> >
+ get_constant_modes () const;
+
protected:
/**
* @p clone function instead of a copy constructor.
* list consists of true arguments for the first vertex shape functions and
* false for the remaining ones.
*/
- virtual Table<2,bool> get_constant_modes () const;
+ virtual std::pair<Table<2,bool>, std::vector<unsigned int> >
+ get_constant_modes () const;
protected:
/**
const VectorSlice<const std::vector<std::vector<double> > > &values) const;
/**
- * Returns a list of constant modes of the element. For this element, the
- * list consists of true arguments for all components.
+ * Returns a list of constant modes of the element. This method is currently
+ * not correctly implemented because it returns ones for all components.
*/
- virtual Table<2,bool> get_constant_modes () const;
+ virtual std::pair<Table<2,bool>, std::vector<unsigned int> >
+ get_constant_modes () const;
virtual std::size_t memory_consumption () const;
virtual FiniteElement<dim> *clone() const;
/**
* Same as above but for any number of base elements. Pointers to the base
* elements and their multiplicities are passed as vectors to this
- * constructor. The length of these vectors is assumed to be equal.
+ * constructor. The lengths of these vectors are assumed to be equal.
*/
FESystem (const std::vector<const FiniteElement<dim,spacedim>*> &fes,
* table contains a basis representation of the constant function 1 on the
* element. Concatenates the constant modes of each base element.
*/
- virtual Table<2,bool> get_constant_modes () const;
+ virtual std::pair<Table<2,bool>, std::vector<unsigned int> >
+ get_constant_modes () const;
/**
* @name Functions to support hp
#include <deal.II/base/derivative_form.h>
#include <deal.II/base/vector_slice.h>
#include <deal.II/grid/tria.h>
-#include <deal.II/dofs/dof_handler.h>
#include <deal.II/fe/fe_update_flags.h>
#include <cmath>
*/
mapping_piola = 0x0100,
/**
- transformation for the gradient of
- for a vector field
- correspoing to a mapping_piola
- transformation (see Mapping::transform() for details).
+ transformation for the gradient of a vector field corresponding to a
+ mapping_piola transformation (see Mapping::transform() for details).
*/
mapping_piola_gradient = 0x0101,
#include <deal.II/base/exceptions.h>
#include <deal.II/base/point.h>
#include <deal.II/base/table.h>
+#include <deal.II/base/function.h>
#include <deal.II/grid/tria.h>
#include <map>
Triangulation<3,3> &result);
/**
- * This function transformes the @p Triangulation @p tria smoothly to a
+ * This function transforms the @p Triangulation @p tria smoothly to a
* domain that is described by the boundary points in the map @p
* new_points. This map maps the point indices to the boundary points in the
* transformed domain.
*
* In 1d, this function is not currently implemented.
*
+ * An optional @p coefficient for the Laplace problem an be used to control the amount of
+ * mesh deformation in different parts of the domain.
+ * Larger values make cells less prone to deformation (effectively increasing their stiffness).
+ * The coefficient is evaluated in the coordinate system of the old,
+ * undeformed configuration of the triangulation as input, i.e., before
+ * the transformation is applied.
+ * Should this function be provided, sensible results can only be expected if
+ * all coefficients are positive.
+ *
* @deprecated This function has been moved to GridTools::laplace_transform
*/
template <int dim>
void laplace_transformation (Triangulation<dim> &tria,
- const std::map<unsigned int,Point<dim> > &new_points) DEAL_II_DEPRECATED;
+ const std::map<unsigned int,Point<dim> > &new_points,
+ const Function<dim> *coefficient = 0) DEAL_II_DEPRECATED;
/**
* Exception
Triangulation<2> &triangulation);
/**
- * Transform the given triangulation smoothly to a different domain where
- * each of the vertices at the boundary of the triangulation is mapped to
+ * Transform the given triangulation smoothly to a different domain where,
+ * typically, each of the vertices at the boundary of the triangulation is mapped to
* the corresponding points in the @p new_points map.
*
* The way this function works is that it solves a Laplace equation for each
* @param[in,out] tria The Triangulation object. This object is changed in-place,
* i.e., the previous locations of vertices are overwritten.
*
+ * @param[in] coefficient An optional coefficient for the Laplace problem.
+ * Larger values make cells less prone to deformation (effectively increasing their stiffness).
+ * The coefficient is evaluated in the coordinate system of the old,
+ * undeformed configuration of the triangulation as input, i.e., before
+ * the transformation is applied.
+ * Should this function be provided, sensible results can only be expected if
+ * all coefficients are positive.
+ *
* @note This function is not currently implemented for the 1d case.
*/
template <int dim>
void laplace_transform (const std::map<unsigned int,Point<dim> > &new_points,
- Triangulation<dim> &tria);
+ Triangulation<dim> &tria,
+ const Function<dim> *coefficient = 0);
/**
* Scale the entire triangulation
// ---------------------------------------------------------------------
// $Id$
//
-// Copyright (C) 1998 - 2013 by the deal.II authors
+// Copyright (C) 1998 - 2014 by the deal.II authors
//
// This file is part of the deal.II library.
//
*/
/**
- * Return the level the element
- * pointed to belongs to.
- * This is only valid for cells.
+ * For cells, this function returns the level within the mesh hierarchy at
+ * which this cell is located. For all other objects, the function returns
+ * zero.
+ *
+ * @note Within a Triangulation object, cells are uniquely identified by a
+ * pair <code>(level, index)</code> where the former is the cell's
+ * refinement level and the latter is the index of the cell within
+ * this refinement level (the former being what this function
+ * returns). Consequently, there may be multiple cells on different
+ * refinement levels but with the same index within their level.
+ * Contrary to this, if the current object corresponds to a face or
+ * edge, then the object is uniquely identified solely by its index
+ * as faces and edges do not have a refinement level. For these objects,
+ * the current function always returns zero as the level.
*/
int level () const;
* element presently pointed to
* on the present level.
*
- * Within a Triangulation object cells are uniquely identified by a
+ * Within a Triangulation object, cells are uniquely identified by a
* pair <code>(level, index)</code> where the former is the cell's
* refinement level and the latter is the index of the cell within
* this refinement level (the latter being what this function
*/
bool used () const;
- /**
- * Index of the parent.
- * The level of the parent is one
- * lower than that of the
- * present cell, if the parent
- * of a cell is accessed. If the
- * parent does not exist, -1 is
- * returned.
- */
- int parent_index () const;
-
-
/**
* @name Accessing sub-objects
*/
*/
void clear_refinement_case () const;
- /**
- * Set the parent of a cell.
- */
- void set_parent (const unsigned int parent_index);
-
/**
* Set the index of the ith
* child. Since the children
* @}
*/
- /**
- * Index of the parent. You
- * can't do this for points.
- */
- static int parent_index ();
-
/**
* @name Accessing sub-objects
*/
*/
bool direction_flag () const;
-
+ /**
+ * Index of the parent of this cell.
+ * The level of the parent is one
+ * lower than that of the
+ * present cell, if the parent
+ * of a cell is accessed. If the
+ * parent does not exist (i.e., if the object is at the coarsest level of
+ * the mesh hierarchy), an exception is generated.
+ */
+ int parent_index () const;
/**
* Return an iterator to the
- * parent. Throws an exception if this cell has no parent, i.e. has
- * level 0.
+ * parent. If the
+ * parent does not exist (i.e., if the object is at the coarsest level of
+ * the mesh hierarchy), an exception is generated.
*/
TriaIterator<CellAccessor<dim,spacedim> >
parent () const;
*/
bool active () const;
- /**
- * Ordering of accessors. This function implements a total ordering
- * of cells even on a parallel::distributed::Triangulation. This
- * function first compares level_subdomain_id(). If these are equal,
- * and both cells are active, it compares subdomain_id(). If this is
- * inconclusive, TriaAccessorBase::operator < () is called.
- */
- bool operator < (const CellAccessor<dim, spacedim> &other) const;
-
-
/**
* Return whether this cell is owned by the current processor
* or is owned by another processor. The function always returns
private:
+ /**
+ * Set the parent of a cell.
+ */
+ void set_parent (const unsigned int parent_index);
+
/**
* Set the orientation of this
* cell.
}
-template <int structdim, int dim, int spacedim>
-int
-TriaAccessor<structdim, dim, spacedim>::
-parent_index () const
-{
- Assert (this->present_level > 0, TriaAccessorExceptions::ExcCellHasNoParent ());
-
- // the parent of two consecutive cells
- // is stored only once, since it is
- // the same
- return this->tria->levels[this->present_level]->parents[this->present_index / 2];
-}
-
-
template <int structdim, int dim, int spacedim>
int
TriaAccessor<structdim, dim, spacedim>::
-template <int structdim, int dim, int spacedim>
-void
-TriaAccessor<structdim, dim, spacedim>::set_parent (const unsigned int parent_index)
-{
- Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
- Assert (this->present_level > 0, TriaAccessorExceptions::ExcCellHasNoParent ());
- this->tria->levels[this->present_level]->parents[this->present_index / 2]
- = parent_index;
-}
-
-
-
template <int structdim, int dim, int spacedim>
void
TriaAccessor<structdim, dim, spacedim>::clear_children () const
-
-template <int spacedim>
-inline
-int
-TriaAccessor<0, 1, spacedim>::parent_index ()
-{
- return -1;
-}
-
-
template <int spacedim>
inline
unsigned int
+template <int dim, int spacedim>
+inline
+types::subdomain_id
+CellAccessor<dim, spacedim>::subdomain_id () const
+{
+ Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
+ Assert (this->active(), ExcMessage("subdomains only work on active cells!"));
+ return this->tria->levels[this->present_level]->subdomain_ids[this->present_index];
+}
+
+
+
template <int dim, int spacedim>
inline
unsigned int
}
-template <int dim, int spacedim>
-inline
-bool
-CellAccessor<dim,spacedim>::operator < (const CellAccessor<dim,spacedim> &other) const
-{
- Assert (this->tria == other.tria, TriaAccessorExceptions::ExcCantCompareIterators());
-
- if (level_subdomain_id() != other.level_subdomain_id())
- return (level_subdomain_id() < other.level_subdomain_id());
-
- if (active() && other.active() &&
- (subdomain_id() != other.subdomain_id()))
- return (subdomain_id() < other.subdomain_id());
-
- return TriaAccessorBase<dim,dim,spacedim>::operator < (other);
-}
/**
* Ordering relation for iterators.
*
- * This relation attempts a total ordering of cells. For lower
- * dimensional objects on distributed meshes, we only attempt a
- * partial ordering.
+ * This relation attempts a total ordering of cells.
*
* The relation is defined as follows:
*
* For objects of <tt>Accessor::structure_dimension <
* Accessor::dimension</tt>, we simply compare the index of such an
- * object. This consitutes an ordering of the elements of same
- * dimension on a mesh on a single process. For a distributed mesh,
- * the result of the ordering relation between faces across
- * processes is not defined, but most likely irrelevant.
- *
- * For cells, there is a total ordering even in a
- * distributed::parallel::Triangulation. The ordering is lexicographic
+ * object. The ordering is lexicographic
* according to the following hierarchy (in the sense, that the next
* test is only applied if the previous was inconclusive):
*
* past-the-end iterators rank the same, thus false is returned in
* that case.</li>
*
- * <li> The level subdomain id</li>
- * <li> If both cells are active, the subdomain id.</li>
* <li> The level of the cell.</li>
* <li> The index of a cell inside the level.</li>
* </ol>
+ *
+ * @Note: the ordering is not consistent between different processor in
+ * a parallel::distributed::Triangulation because we rely on index(),
+ * which is likely not the same.
*/
bool operator < (const TriaRawIterator &) const;
* In TriaLevel, all cell data is stored which is not dependent on the
* dimension, e.g. a field to store the refinement flag for the cells
* (what a cell actually is is declared elsewhere), etc. See also
- * TriaObjects for non leveloriented data.
+ * TriaObjects for non level-oriented data.
*
* There is another field, which may fit in here, namely the
* material data (for cells) or the boundary indicators (for faces),
* One integer for every consecutive
* pair of cells to store which
* index their parent has.
+ *
+ * (We store this information once for each pair of cells since every
+ * refinement, isotropic or anisotropic, and in any space dimension,
+ * always creates children in multiples of two, so there is no need to
+ * store the parent index for every cell.)
*/
std::vector<int> parents;
sparsity_pattern.add_entries(actual_dof_indices[i],
actual_dof_indices.begin(),
actual_dof_indices.end(),
- true);
+ true);
// need to add the whole row and column structure in case we keep
// constrained entries. Unfortunately, we can't use the nice matrix
template<typename number> class Vector;
template<typename number> class BlockVector;
template<typename number> class FullMatrix;
+template<typename number> class SparseMatrix;
/**
class LAPACKFullMatrix : public TransposeTable<number>
{
public:
+
/**
* Declare type for container size.
*/
*
* By default, no memory is allocated.
*/
- explicit LAPACKFullMatrix (const size_type n = 0);
+ explicit LAPACKFullMatrix (const size_type size = 0);
+
/**
* Constructor. Initialize the matrix as a rectangular matrix.
LAPACKFullMatrix (const size_type rows,
const size_type cols);
+
/**
* Copy constructor. This constructor does a deep copy of the
* matrix. Therefore, it poses a possible efficiency problem, if for
operator = (const LAPACKFullMatrix<number> &);
/**
- * Assignment operator for a regular FullMatrix. Note that since LAPACK
- * expects matrices in transposed order, this transposition is included
- * here.
+ * Assignment operator from a regular FullMatrix. @note Since LAPACK
+ * expects matrices in transposed order, this transposition is
+ * included here.
*/
template <typename number2>
LAPACKFullMatrix<number> &
operator = (const FullMatrix<number2> &);
+ /**
+ * Assignment operator from a regular SparseMatrix. @note Since
+ * LAPACK expects matrices in transposed order, this transposition
+ * is included here.
+ */
+ template <typename number2>
+ LAPACKFullMatrix<number> &
+ operator = (const SparseMatrix<number2> &);
+
/**
* This operator assigns a scalar to a matrix. To avoid confusion with
* constructors, zero is the only value allowed for <tt>d</tt>
template <class MATRIX>
void copy_from (const MATRIX &);
+ /**
+ * Regenerate the current matrix by one that has the same properties
+ * as if it were created by the constructor of this class with the
+ * same argument list as this present function.
+ */
+ void reinit (const size_type size);
+
+ /**
+ * Regenerate the current matrix by one that has the same properties
+ * as if it were created by the constructor of this class with the
+ * same argument list as this present function.
+ */
+ void reinit (const size_type rows,
+ const size_type cols);
+
+ /**
+ * Return the dimension of the range space. @note The matrix is of
+ * dimension $m \times n$.
+ */
+ unsigned int m () const;
+
+ /**
+ * Return the number of the range space. @note The matrix is of
+ * dimension $m \times n$.
+ */
+ unsigned int n () const;
+
/**
* Fill rectangular block.
*
* system is to be performed.
*/
void apply_lu_factorization (Vector<number> &v,
- const bool transposed) const;
+ const bool transposed) const;
/**
* Solve the linear system with multiple right hand sides (as many as there
* system is to be performed.
*/
void apply_lu_factorization (LAPACKFullMatrix<number> &B,
- const bool transposed) const;
+ const bool transposed) const;
/**
* Compute eigenvalues of the matrix. After this routine has been called,
* @note Calls the LAPACK function Xgeev.
*/
void compute_eigenvalues (const bool right_eigenvectors = false,
- const bool left_eigenvectors = false);
+ const bool left_eigenvectors = false);
/**
* Compute eigenvalues and eigenvectors of a real symmetric matrix. Only
* @note Calls the LAPACK function Xsyevx. For this to work, ./configure has
* to be told to use LAPACK.
*/
- void compute_eigenvalues_symmetric(
- const number lower_bound,
- const number upper_bound,
- const number abs_accuracy,
- Vector<number> &eigenvalues,
- FullMatrix<number> &eigenvectors);
+ void compute_eigenvalues_symmetric (const number lower_bound,
+ const number upper_bound,
+ const number abs_accuracy,
+ Vector<number> &eigenvalues,
+ FullMatrix<number> &eigenvectors);
/**
* Compute generalized eigenvalues and eigenvectors of a real generalized
* @note Calls the LAPACK function Xsygvx. For this to work, ./configure has
* to be told to use LAPACK.
*/
- void compute_generalized_eigenvalues_symmetric(
- LAPACKFullMatrix<number> &B,
- const number lower_bound,
- const number upper_bound,
- const number abs_accuracy,
- Vector<number> &eigenvalues,
- std::vector<Vector<number> > &eigenvectors,
- const int itype = 1);
+ void compute_generalized_eigenvalues_symmetric (LAPACKFullMatrix<number> &B,
+ const number lower_bound,
+ const number upper_bound,
+ const number abs_accuracy,
+ Vector<number> &eigenvalues,
+ std::vector<Vector<number> > &eigenvectors,
+ const int itype = 1);
/**
* Same as the other compute_generalized_eigenvalues_symmetric function
* @note Calls the LAPACK function Xsygv. For this to work, ./configure has
* to be told to use LAPACK.
*/
- void compute_generalized_eigenvalues_symmetric (
- LAPACKFullMatrix<number> &B,
- std::vector<Vector<number> > &eigenvectors,
- const int itype = 1);
+ void compute_generalized_eigenvalues_symmetric (LAPACKFullMatrix<number> &B,
+ std::vector<Vector<number> > &eigenvectors,
+ const int itype = 1);
/**
* Compute the singular value decomposition of the matrix using LAPACK
* #wr, #svd_u, and #svd_vt, and leaves the object in the #state
* LAPACKSupport::svd.
*/
- void compute_svd();
+ void compute_svd ();
/**
* Compute the inverse of the matrix by singular value decomposition.
const double threshold = 0.) const;
private:
+
/**
- * Since LAPACK operations notoriously change the meaning of the matrix
- * entries, we record the current state after the last operation here.
+ * Since LAPACK operations notoriously change the meaning of the
+ * matrix entries, we record the current state after the last
+ * operation here.
*/
LAPACKSupport::State state;
SmartPointer<VectorMemory<Vector<number> >,PreconditionLU<number> > mem;
};
+/*---------------------- Inline functions -----------------------------------*/
+template <typename number>
+inline
+unsigned int
+LAPACKFullMatrix<number>::m () const
+{
+ return this->n_rows ();
+}
+
+template <typename number>
+inline
+unsigned int
+LAPACKFullMatrix<number>::n () const
+{
+ return this->n_cols ();
+}
template <typename number>
template <class MATRIX>
/**
* Virtual destructor. Does
* nothing except making sure that
- * the destructor of the derived
- * class is called.
+ * the destructor of any derived
+ * class is called whenever a pointer-to-base-class object is destroyed.
*/
virtual ~PointerMatrixBase ();
const VECTOR &src) const = 0;
};
+
/**
* A pointer to be used as a matrix. This class stores a pointer to a
* matrix and can be used as a matrix itself in iterative methods.
PointerMatrix (const MATRIX *M=0);
/**
- * Constructor. The name argument
- * is used to identify the
- * SmartPointer for this object.
+ * Constructor.
+ *
+ * This class internally stores a pointer to a matrix via a SmartPointer
+ * object. The SmartPointer class allows to associate a name with the
+ * object pointed to that identifies the object that has the pointer,
+ * in order to identify objects that still refer to the object pointed to.
+ * The @p name argument to this function
+ * is used to this end, i.e., you can in essence assign a name to
+ * the current PointerMatrix object.
*/
PointerMatrix(const char *name);
* Constructor. <tt>M</tt> points
* to a matrix which must live
* longer than the
- * PointerMatrix. The name
- * argument is used to identify
- * the SmartPointer for this
- * object.
+ * PointerMatrix.
+ *
+ * This class internally stores a pointer to a matrix via a SmartPointer
+ * object. The SmartPointer class allows to associate a name with the
+ * object pointed to that identifies the object that has the pointer,
+ * in order to identify objects that still refer to the object pointed to.
+ * The @p name argument to this function
+ * is used to this end, i.e., you can in essence assign a name to
+ * the current PointerMatrix object.
*/
PointerMatrix(const MATRIX *M,
const char *name);
/**
* Constructor not using a
- * matrix. The name argument is
- * used to identify the
- * SmartPointer for this object.
+ * matrix.
+ *
+ * This class internally stores a pointer to a matrix via a SmartPointer
+ * object. The SmartPointer class allows to associate a name with the
+ * object pointed to that identifies the object that has the pointer,
+ * in order to identify objects that still refer to the object pointed to.
+ * The @p name argument to this function
+ * is used to this end, i.e., you can in essence assign a name to
+ * the current PointerMatrix object.
*/
PointerMatrixAux(VectorMemory<VECTOR> *mem,
const char *name);
* Constructor. <tt>M</tt> points
* to a matrix which must live
* longer than the
- * PointerMatrixAux. The name
- * argument is used to identify
- * the SmartPointer for this
- * object.
+ * PointerMatrixAux.
+ *
+ * This class internally stores a pointer to a matrix via a SmartPointer
+ * object. The SmartPointer class allows to associate a name with the
+ * object pointed to that identifies the object that has the pointer,
+ * in order to identify objects that still refer to the object pointed to.
+ * The @p name argument to this function
+ * is used to this end, i.e., you can in essence assign a name to
+ * the current PointerMatrix object.
*/
PointerMatrixAux(VectorMemory<VECTOR> *mem,
const MATRIX *M,
PointerMatrixVector (const Vector<number> *M=0);
/**
- * Constructor. The name argument
- * is used to identify the
- * SmartPointer for this object.
+ * Constructor.
+ *
+ * This class internally stores a pointer to a matrix via a SmartPointer
+ * object. The SmartPointer class allows to associate a name with the
+ * object pointed to that identifies the object that has the pointer,
+ * in order to identify objects that still refer to the object pointed to.
+ * The @p name argument to this function
+ * is used to this end, i.e., you can in essence assign a name to
+ * the current PointerMatrix object.
*/
PointerMatrixVector (const char *name);
* Constructor. <tt>M</tt> points
* to a matrix which must live
* longer than the
- * PointerMatrix. The name
- * argument is used to identify
- * the SmartPointer for this
- * object.
+ * PointerMatrix.
+ *
+ * This class internally stores a pointer to a matrix via a SmartPointer
+ * object. The SmartPointer class allows to associate a name with the
+ * object pointed to that identifies the object that has the pointer,
+ * in order to identify objects that still refer to the object pointed to.
+ * The @p name argument to this function
+ * is used to this end, i.e., you can in essence assign a name to
+ * the current PointerMatrix object.
*/
PointerMatrixVector (const Vector<number> *M,
const char *name);
// ---------------------------------------------------------------------
// $Id$
//
-// Copyright (C) 1999 - 2013 by the deal.II authors
+// Copyright (C) 1999 - 2014 by the deal.II authors
//
// This file is part of the deal.II library.
//
#include <deal.II/lac/sparsity_pattern.h>
#include <deal.II/lac/identity_matrix.h>
#include <deal.II/lac/exceptions.h>
-// Included for VectorOperation
#include <deal.II/lac/vector.h>
DEAL_II_NAMESPACE_OPEN
// ---------------------------------------------------------------------
// $Id$
//
-// Copyright (C) 1999 - 2013 by the deal.II authors
+// Copyright (C) 1999 - 2014 by the deal.II authors
//
// This file is part of the deal.II library.
//
&B.val[new_cols-&sp_B.colnums[sp_B.rowstart[0]]];
const numberB *const end_cols = &B.val[sp_B.rowstart[col+1]];
for (; B_val_ptr != end_cols; ++B_val_ptr)
- *new_ptr++ = A_val **B_val_ptr * (use_vector ? V(col) : 1);
+ *new_ptr++ = A_val * *B_val_ptr * (use_vector ? V(col) : 1);
C.add (i, new_ptr-&new_entries[0], new_cols, &new_entries[0],
false, true);
// ---------------------------------------------------------------------
// $Id$
//
-// Copyright (C) 2002 - 2013 by the deal.II authors
+// Copyright (C) 2002 - 2014 by the deal.II authors
//
// This file is part of the deal.II library.
//
* Increment when a row grows.
*/
unsigned int increment;
-
- /**
- * Make member classes
- * friends. Not strictly
- * necessary according to the
- * standard, but some compilers
- * require this...
- */
};
/**
const char* coarse_type;
};
+ /**
+ * Destructor.
+ */
+ ~PreconditionAMG();
+
/**
* Let Trilinos compute a multilevel hierarchy for the solution of a
#include <deal.II/base/numbers.h>
#include <deal.II/base/parallel.h>
#include <deal.II/base/thread_management.h>
+#include <deal.II/base/multithread_info.h>
#include <deal.II/lac/vector.h>
#include <deal.II/lac/block_vector.h>
const Number2 *Y,
const ResultType power,
const size_type vec_size,
- ResultType &result)
+ ResultType &result,
+ const int depth = -1)
{
if (vec_size <= 4096)
{
result = outer_results[0];
}
#ifdef DEAL_II_WITH_THREADS
- else if (vec_size > 4 * internal::Vector::minimum_parallel_grain_size)
+ else if (multithread_info.n_threads() > 1 &&
+ vec_size > 4 * internal::Vector::minimum_parallel_grain_size &&
+ depth != 0)
{
- // split the vector into smaller pieces to be
- // worked on recursively and create tasks for
- // them. Make pieces divisible by 1024.
+ // split the vector into smaller pieces to be worked on recursively
+ // and create tasks for them. Make pieces divisible by 1024.
const size_type new_size = (vec_size / 4096) * 1024;
ResultType r0, r1, r2, r3;
+
+ // find out how many recursions we should make (avoid too deep
+ // hierarchies of tasks on large vectors), max use 8 *
+ // multithread_info.n_threads()
+ int next_depth = depth;
+ if (depth == -1)
+ next_depth = 8 * multithread_info.n_threads();
+ next_depth /= 4;
+
Threads::TaskGroup<> task_group;
task_group += Threads::new_task(&accumulate<Operation,Number,Number2,
ResultType,size_type>,
- op, X, Y, power, new_size, r0);
+ op, X, Y, power, new_size, r0, next_depth);
task_group += Threads::new_task(&accumulate<Operation,Number,Number2,
ResultType,size_type>,
op, X+new_size, Y+new_size, power,
- new_size, r1);
+ new_size, r1, next_depth);
task_group += Threads::new_task(&accumulate<Operation,Number,Number2,
ResultType,size_type>,
op, X+2*new_size, Y+2*new_size, power,
- new_size, r2);
+ new_size, r2, next_depth);
task_group += Threads::new_task(&accumulate<Operation,Number,Number2,
ResultType,size_type>,
op, X+3*new_size, Y+3*new_size, power,
- vec_size-3*new_size, r3);
+ vec_size-3*new_size, r3, next_depth);
task_group.join_all();
r0 += r1;
r2 += r3;
// set up partitions. if we just use coloring without partitions, do
// nothing here, assume all cells to belong to the zero partition (that
// we otherwise use for MPI boundary cells)
- unsigned int partition = 0, start_up = 0, counter = 0;
- unsigned int start_nonboundary = numbers::invalid_unsigned_int;
- bool work = true;
+ unsigned int start_up = 0,
+ start_nonboundary = numbers::invalid_unsigned_int;
if (task_info.use_coloring_only == false)
{
start_nonboundary =
true, connectivity);
// Create cell-block partitioning.
+ unsigned int partition = 0, counter = 0;
+ bool work = true;
// For each block of cells, this variable saves to which partitions the
// block belongs. Initialize all to n_macro_cells to mark them as not
}
#endif
AssertDimension(counter,size_info.n_active_cells);
- task_info.evens = (partition+1)>>1;
- task_info.odds = (partition)>>1;
+ task_info.evens = (partition+1)/2;
+ task_info.odds = (partition)/2;
task_info.n_blocked_workers = task_info.odds-
(task_info.odds+task_info.evens+1)%2;
task_info.n_workers = task_info.partition_color_blocks_data.size()-1-
memory += MemoryConsumption::memory_consumption (affine_data);
memory += MemoryConsumption::memory_consumption (cartesian_data);
memory += MemoryConsumption::memory_consumption (cell_type);
- memory += sizeof (this);
+ memory += sizeof (*this);
return memory;
}
memory += MemoryConsumption::memory_consumption (constraint_pool_data);
memory += MemoryConsumption::memory_consumption (constraint_pool_row_index);
memory += MemoryConsumption::memory_consumption (task_info);
- memory += sizeof(this);
+ memory += sizeof(*this);
memory += mapping_info.memory_consumption();
return memory;
}
std::size_t
TaskInfo::memory_consumption () const
{
- return (MemoryConsumption::memory_consumption (partition_color_blocks_row_index) +
+ return (sizeof(*this)+
+ MemoryConsumption::memory_consumption (partition_color_blocks_row_index) +
MemoryConsumption::memory_consumption (partition_color_blocks_data)+
MemoryConsumption::memory_consumption (partition_evens) +
MemoryConsumption::memory_consumption (partition_odds) +
// Now neighbor is on same level, double-check this:
Assert(cell->level()==neighbor->level(), ExcInternalError());
- // only do faces on same level from one side (unless
- // LoopControl says otherwise)
+ // If we own both cells only do faces from one side (unless
+ // LoopControl says otherwise). Here, we rely on cell comparison
+ // that will look at cell->index().
if (own_cell && own_neighbor
&& loop_control.own_faces == LoopControl::one
&& (neighbor < cell))
if (!own_cell)
continue;
- // now only one processor assembles faces_to_ghost. This
- // logic is based on the subdomain id and is handled inside
- // operator<.
+ // now only one processor assembles faces_to_ghost. We let the
+ // processor with the smaller (level-)subdomain id assemble the
+ // face.
if (own_cell && !own_neighbor
&& loop_control.faces_to_ghost == LoopControl::one
- && (neighbor < cell))
- continue;
+ && (neighbid < csid))
+ continue;
const unsigned int neighbor_face_no = cell->neighbor_face_no(face_no);
Assert (neighbor->face(neighbor_face_no) == face, ExcInternalError());
* In a parallel computation the @p solution vector needs to contain the
* locally relevant unknowns.
*/
- template <int dim, template <int, int> class DH, class InputVector, int order, int spacedim>
+ template <class DH, class InputVector, int order>
void
- approximate_derivative_tensor (const Mapping<dim,spacedim> &mapping,
- const DH<dim,spacedim> &dof,
+ approximate_derivative_tensor (const Mapping<DH::dimension,DH::space_dimension> &mapping,
+ const DH &dof,
const InputVector &solution,
- const typename DH<dim,spacedim>::active_cell_iterator &cell,
- Tensor<order,dim> &derivative,
+ const typename DH::active_cell_iterator &cell,
+ Tensor<order,DH::dimension> &derivative,
const unsigned int component = 0);
/**
* Same as above, with <tt>mapping=MappingQ1@<dim@>()</tt>.
*/
- template <int dim, template <int, int> class DH, class InputVector, int order, int spacedim>
+ template <class DH, class InputVector, int order>
void
- approximate_derivative_tensor (const DH<dim,spacedim> &dof,
+ approximate_derivative_tensor (const DH &dof,
const InputVector &solution,
- const typename DH<dim,spacedim>::active_cell_iterator &cell,
- Tensor<order,dim> &derivative,
+ const typename DH::active_cell_iterator &cell,
+ Tensor<order,DH::dimension> &derivative,
const unsigned int component = 0);
/**
/**
- * This function computes the constraints that correspond to boundary conditions of the
- * form $\vec n \cdot \vec u=0$, i.e. no normal flux if $\vec u$ is a
- * vector-valued quantity. These conditions have exactly the form handled by
- * the ConstraintMatrix class, so instead of creating a map between boundary
- * degrees of freedom and corresponding value, we here create a list of
- * constraints that are written into a ConstraintMatrix. This object may
- * already have some content, for example from hanging node constraints,
- * that remains untouched. These constraints have to be applied to the
- * linear system like any other such constraints, i.e. you have to condense
- * the linear system with the constraints before solving, and you have to
- * distribute the solution vector afterwards.
+ * This function computes the constraints that correspond to boundary
+ * conditions of the form $\vec u \cdot \vec n=\vec u_\Gamma \cdot \vec n$,
+ * i.e. normal flux constraints if $\vec u$ is a vector-valued quantity.
+ * These conditions have exactly the form handled by the ConstraintMatrix
+ * class, so instead of creating a map between boundary degrees of freedom
+ * and corresponding value, we here create a list of constraints that are
+ * written into a ConstraintMatrix. This object may already have some
+ * content, for example from hanging node constraints, that remains
+ * untouched. These constraints have to be applied to the linear system
+ * like any other such constraints, i.e. you have to condense the linear
+ * system with the constraints before solving, and you have to distribute
+ * the solution vector afterwards.
*
* The use of this function is explained in more detail in step-31. It
* doesn't make much sense in 1d, so the function throws an exception in
* first_vector_component would be zero. On the other hand, if we solved the
* Maxwell equations in 3d and the finite element has components
* $(E_x,E_y,E_z,B_x,B_y,B_z)$ and we want the boundary condition $\vec
- * n\cdot \vec B=0$, then @p first_vector_component would be 3. Vectors are
- * implicitly assumed to have exactly <code>dim</code> components that are
- * ordered in the same way as we usually order the coordinate directions,
- * i.e. $x$-, $y$-, and finally $z$-component. The function assumes, but
- * can't check, that the vector components in the range
+ * B\cdot \vec n=\vec B_\Gamma\cdot \vec n$, then @p first_vector_component
+ * would be 3. Vectors are implicitly assumed to have exactly <code>dim</code>
+ * components that are ordered in the same way as we usually order the
+ * coordinate directions, i.e. $x$-, $y$-, and finally $z$-component. The
+ * function assumes, but can't check, that the vector components in the range
* <code>[first_vector_component,first_vector_component+dim)</code> come
* from the same base finite element. For example, in the Stokes example
* above, it would not make sense to use a
* call the function onces with the whole set of boundary indicators at
* once.
*
+ * The forth parameter describes the boundary function that is used for
+ * computing these constraints.
+ *
* The mapping argument is used to compute the boundary points where the
* function needs to request the normal vector $\vec n$ from the boundary
* description.
* right are meant to approximate a curved boundary (as indicated by the
* dashed line), then neither of the two computed normal vectors are equal
* to the exact normal vector (though they approximate it as the mesh is
- * refined further). What is worse, if we constrain $\vec n \cdot \vec u=0$
- * at the common vertex with the normal vector from both cells, then we
- * constrain the vector $\vec u$ with respect to two linearly independent
- * vectors; consequently, the constraint would be $\vec u=0$ at this point
- * (i.e. <i>all</i> components of the vector), which is not what we wanted.
+ * refined further). What is worse, if we constrain $\vec u \cdot \vec n=
+ * \vec u_\Gamma \cdot \vec n$ at the common vertex with the normal vector
+ * from both cells, then we constrain the vector $\vec u$ with respect to
+ * two linearly independent vectors; consequently, the constraint would be
+ * $\vec u=\vec u_\Gamma$ at this point (i.e. <i>all</i> components of the
+ * vector), which is not what we wanted.
*
* To deal with this situation, the algorithm works in the following way: at
* each point where we want to constrain $\vec u$, we first collect all
* normal vectors that adjacent cells might compute at this point. We then
- * do not constrain $\vec n \cdot \vec u=0$ for <i>each</i> of these normal
- * vectors but only for the <i>average</i> of the normal vectors. In the
- * example above, we therefore record only a single constraint $\vec n \cdot
- * \vec {\bar u}=0$, where $\vec {\bar u}$ is the average of the two
- * indicated normal vectors.
+ * do not constrain $\vec u \cdot \vec n=\vec u_\Gamma \cdot \vec n$ for
+ * <i>each</i> of these normal vectors but only for the <i>average</i> of
+ * the normal vectors. In the example above, we therefore record only a
+ * single constraint $\vec u \cdot \vec {\bar n}=\vec u_\Gamma \cdot \vec
+ * {\bar n}$, where $\vec {\bar n}$ is the average of the two indicated
+ * normal vectors.
*
* Unfortunately, this is not quite enough. Consider the situation here:
*
* point per invocation (because we consider only one boundary part at a
* time), with the result that the normal vectors will not be averaged. This
* situation also needs to be taken into account when using this function
- * around reentrant corners on Cartesian meshes. If no-normal-flux boundary
+ * around reentrant corners on Cartesian meshes. If normal-flux boundary
* conditions are to be enforced on non-Cartesian meshes around reentrant
* corners, one may even get cycles in the constraints as one will in
* general constrain different components from the two sides. In that case,
* front faces of the left cell belong to the boundary selected whereas only
* the top face of the right cell belongs to it, maybe indicating the the entire
* front part of the domain is a smooth manifold whereas the top really forms
- * two separate manifolds that meet in a ridge, and that no-flux boundary
+ * two separate manifolds that meet in a ridge, and that normal-flux boundary
* conditions are only desired on the front manifold and the right one on top.
* In cases like these, it's difficult to define what should happen. The
* current implementation simply ignores the one contribution from the
*/
template <int dim, template <int, int> class DH, int spacedim>
void
+ compute_nonzero_normal_flux_constraints (const DH<dim,spacedim> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ typename FunctionMap<spacedim>::type &function_map,
+ ConstraintMatrix &constraints,
+ const Mapping<dim, spacedim> &mapping = StaticMappingQ1<dim>::mapping);
+
+ /**
+ * Same as above for homogeneous normal-flux constraints.
+ *
+ * @ingroup constraints
+ *
+ * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
+ */
+ template <int dim, template <int, int> class DH, int spacedim>
+ void
compute_no_normal_flux_constraints (const DH<dim,spacedim> &dof_handler,
const unsigned int first_vector_component,
const std::set<types::boundary_id> &boundary_ids,
/**
* Compute the constraints that correspond to boundary conditions of the
- * form $\vec n \times \vec u=0$. This corresponds to flow with no tangential
- * component, i.e. flow is parallel to the normal vector to the boundary if $\vec
- * u$ is a vector-valued quantity.
- *
- * This function constrains exactly those
- * vector-valued components that are left unconstrained by
- * compute_no_normal_flux_constraints, and leaves the one component
- * unconstrained that is constrained by compute_no_normal_flux_constraints.
+ * form $\vec u \times \vec n=\vec u_\Gamma \times \vec n$, i.e. tangential
+ * flow constraints if $\vec u$ is a vector-valued quantity. This function
+ * constrains exactly those vector-valued components that are left
+ * unconstrained by compute_no_normal_flux_constraints, and leaves the one
+ * component unconstrained that is constrained by
+ * compute_no_normal_flux_constraints.
+ *
+ * @ingroup constraints
+ *
+ * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
+ */
+ template <int dim, template <int, int> class DH, int spacedim>
+ void
+ compute_nonzero_tangential_flux_constraints (const DH<dim,spacedim> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ typename FunctionMap<spacedim>::type &function_map,
+ ConstraintMatrix &constraints,
+ const Mapping<dim, spacedim> &mapping = StaticMappingQ1<dim>::mapping);
+
+ /**
+ * Same as above for homogeneous tangential-flux constraints.
+ *
+ * @ingroup constraints
+ *
+ * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
*/
template <int dim, template <int, int> class DH, int spacedim>
void
#include <cmath>
#include <limits>
#include <set>
+#include <list>
DEAL_II_NAMESPACE_OPEN
// will be used
template <class DH,
template <int,int> class M_or_MC,
- int dim_>
+ int dim_>
static inline
void
do_interpolate_boundary_values (const M_or_MC<DH::dimension, DH::space_dimension> &mapping,
/**
* Add the constraint
- * $\vec n \cdot \vec u = 0$
+ * $\vec n \cdot \vec u = inhom$
* to the list of constraints.
*
* Here, $\vec u$ is represented
void
add_constraint (const VectorDoFTuple<dim> &dof_indices,
const Tensor<1,dim> &constraining_vector,
- ConstraintMatrix &constraints)
+ ConstraintMatrix &constraints,
+ const double inhomogeneity=0)
{
// choose the DoF that has the
constraints.add_entry (dof_indices.dof_indices[0],
dof_indices.dof_indices[1],
-constraining_vector[1]/constraining_vector[0]);
+
+ if (std::fabs (inhomogeneity/constraining_vector[0])
+ > std::numeric_limits<double>::epsilon())
+ constraints.set_inhomogeneity(dof_indices.dof_indices[0],
+ inhomogeneity/constraining_vector[0]);
}
}
else
constraints.add_entry (dof_indices.dof_indices[1],
dof_indices.dof_indices[0],
-constraining_vector[0]/constraining_vector[1]);
+
+ if (std::fabs (inhomogeneity/constraining_vector[1])
+ > std::numeric_limits<double>::epsilon())
+ constraints.set_inhomogeneity(dof_indices.dof_indices[1],
+ inhomogeneity/constraining_vector[1]);
}
}
break;
constraints.add_entry (dof_indices.dof_indices[0],
dof_indices.dof_indices[2],
-constraining_vector[2]/constraining_vector[0]);
+
+ if (std::fabs (inhomogeneity/constraining_vector[0])
+ > std::numeric_limits<double>::epsilon())
+ constraints.set_inhomogeneity(dof_indices.dof_indices[0],
+ inhomogeneity/constraining_vector[0]);
}
}
else if ((std::fabs(constraining_vector[1])+1e-10 >= std::fabs(constraining_vector[0]))
constraints.add_entry (dof_indices.dof_indices[1],
dof_indices.dof_indices[2],
-constraining_vector[2]/constraining_vector[1]);
+
+ if (std::fabs (inhomogeneity/constraining_vector[1])
+ > std::numeric_limits<double>::epsilon())
+ constraints.set_inhomogeneity(dof_indices.dof_indices[1],
+ inhomogeneity/constraining_vector[1]);
}
}
else
constraints.add_entry (dof_indices.dof_indices[2],
dof_indices.dof_indices[1],
-constraining_vector[1]/constraining_vector[2]);
+
+ if (std::fabs (inhomogeneity/constraining_vector[2])
+ > std::numeric_limits<double>::epsilon())
+ constraints.set_inhomogeneity(dof_indices.dof_indices[2],
+ inhomogeneity/constraining_vector[2]);
}
}
/**
- * Add the constraint $\vec u \|
+ * Add the constraint $(\vec u-\vec u_\Gamma) \|
* \vec t$ to the list of
* constraints. In 2d, this is a
* single constraint, in 3d these
*/
template <int dim>
void
- add_tangentiality_constraints (const VectorDoFTuple<dim> &dof_indices,
- const Tensor<1,dim> &tangent_vector,
- ConstraintMatrix &constraints)
+ add_tangentiality_constraints
+ (const VectorDoFTuple<dim> &dof_indices,
+ const Tensor<1,dim> &tangent_vector,
+ ConstraintMatrix &constraints,
+ const Vector<double> &b_values = Vector<double>(dim))
{
// choose the DoF that has the
// component 0 of the tangent
// vector t is largest by
// magnitude, then
- // x1=t[1]/t[0]*x_0, etc.
+ // x1=(b[1]*t[0]-b[0]*t[1])/t[0]+t[1]/t[0]*x_0, etc.
unsigned int largest_component = 0;
for (unsigned int d=1; d<dim; ++d)
if (std::fabs(tangent_vector[d]) > std::fabs(tangent_vector[largest_component]) + 1e-10)
constraints.add_entry (dof_indices.dof_indices[d],
dof_indices.dof_indices[largest_component],
tangent_vector[d]/tangent_vector[largest_component]);
+
+ const double inhomogeneity
+ = (b_values(d)*tangent_vector[largest_component]
+ -b_values(largest_component)*tangent_vector[d])
+ /tangent_vector[largest_component];
+
+ if (std::fabs(inhomogeneity)
+ > std::numeric_limits<double>::epsilon())
+ constraints.set_inhomogeneity(dof_indices.dof_indices[d],
+ inhomogeneity);
}
}
const std::set<types::boundary_id> &boundary_ids,
ConstraintMatrix &constraints,
const Mapping<dim, spacedim> &mapping)
+ {
+ ZeroFunction<dim>zero_function(dim);
+ typename FunctionMap<spacedim>::type function_map;
+ std::set<types::boundary_id>::const_iterator it
+ = boundary_ids.begin();
+ for (;it != boundary_ids.end(); ++it)
+ function_map[*it] = &zero_function;
+ compute_nonzero_normal_flux_constraints(dof_handler,
+ first_vector_component,
+ boundary_ids,
+ function_map,
+ constraints,
+ mapping);
+ }
+
+ template <int dim, template <int, int> class DH, int spacedim>
+ void
+ compute_nonzero_normal_flux_constraints (const DH<dim,spacedim> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ typename FunctionMap<spacedim>::type &function_map,
+ ConstraintMatrix &constraints,
+ const Mapping<dim, spacedim> &mapping)
{
Assert (dim > 1,
ExcMessage ("This function is not useful in 1d because it amounts "
// FE
hp::QCollection<dim-1> face_quadrature_collection;
for (unsigned int i=0; i<fe_collection.size(); ++i)
- {
- const std::vector<Point<dim-1> > &
- unit_support_points = fe_collection[i].get_unit_face_support_points();
+ {
+ const std::vector<Point<dim-1> > &
+ unit_support_points = fe_collection[i].get_unit_face_support_points();
- Assert (unit_support_points.size() == fe_collection[i].dofs_per_face,
- ExcInternalError());
+ Assert (unit_support_points.size() == fe_collection[i].dofs_per_face,
+ ExcInternalError());
- face_quadrature_collection
- .push_back (Quadrature<dim-1> (unit_support_points));
- }
+ face_quadrature_collection.push_back (Quadrature<dim-1> (unit_support_points));
+ }
// now create the object with which we will generate the normal vectors
hp::FEFaceValues<dim,spacedim> x_fe_face_values (mapping_collection,
std::multimap<internal::VectorDoFTuple<dim>,
std::pair<Tensor<1,dim>, typename DH<dim,spacedim>::active_cell_iterator> >
DoFToNormalsMap;
+ std::map<internal::VectorDoFTuple<dim>, Vector<double> >
+ dof_vector_to_b_values;
DoFToNormalsMap dof_to_normals_map;
typename DH<dim,spacedim>::active_cell_iterator
cell = dof_handler.begin_active(),
endc = dof_handler.end();
+ std::set<types::boundary_id>::iterator b_id;
for (; cell!=endc; ++cell)
if (!cell->is_artificial())
for (unsigned int face_no=0; face_no < GeometryInfo<dim>::faces_per_cell;
++face_no)
- if (boundary_ids.find(cell->face(face_no)->boundary_indicator())
+ if ((b_id=boundary_ids.find(cell->face(face_no)->boundary_indicator()))
!= boundary_ids.end())
- {
- const FiniteElement<dim> &fe = cell->get_fe ();
- typename DH<dim,spacedim>::face_iterator face = cell->face(face_no);
+ {
+ const FiniteElement<dim> &fe = cell->get_fe ();
+ typename DH<dim,spacedim>::face_iterator face = cell->face(face_no);
- // get the indices of the dofs on this cell...
- face_dofs.resize (fe.dofs_per_face);
- face->get_dof_indices (face_dofs, cell->active_fe_index());
+ // get the indices of the dofs on this cell...
+ face_dofs.resize (fe.dofs_per_face);
+ face->get_dof_indices (face_dofs, cell->active_fe_index());
- x_fe_face_values.reinit (cell, face_no);
- const FEFaceValues<dim> &fe_values = x_fe_face_values.get_present_fe_values();
+ x_fe_face_values.reinit (cell, face_no);
+ const FEFaceValues<dim> &fe_values = x_fe_face_values.get_present_fe_values();
+
+ // then identify which of them correspond to the selected set of
+ // vector components
+ for (unsigned int i=0; i<face_dofs.size(); ++i)
+ if (fe.face_system_to_component_index(i).first ==
+ first_vector_component)
+ {
+ // find corresponding other components of vector
+ internal::VectorDoFTuple<dim> vector_dofs;
+ vector_dofs.dof_indices[0] = face_dofs[i];
+
+ Assert(first_vector_component+dim<=fe.n_components(),
+ ExcMessage("Error: the finite element does not have enough components "
+ "to define a normal direction."));
+
+ for (unsigned int k=0; k<fe.dofs_per_face; ++k)
+ if ((k != i)
+ &&
+ (face_quadrature_collection[cell->active_fe_index()].point(k) ==
+ face_quadrature_collection[cell->active_fe_index()].point(i))
+ &&
+ (fe.face_system_to_component_index(k).first >=
+ first_vector_component)
+ &&
+ (fe.face_system_to_component_index(k).first <
+ first_vector_component + dim))
+ vector_dofs.dof_indices[fe.face_system_to_component_index(k).first -
+ first_vector_component]
+ = face_dofs[k];
+
+ for (unsigned int d=0; d<dim; ++d)
+ Assert (vector_dofs.dof_indices[d] < dof_handler.n_dofs(),
+ ExcInternalError());
+
+ // we need the normal vector on this face. we know that it
+ // is a vector of length 1 but at least with higher order
+ // mappings it isn't always possible to guarantee that
+ // each component is exact up to zero tolerance. in
+ // particular, as shown in the deal.II/no_flux_06 test, if
+ // we just take the normal vector as given by the
+ // fe_values object, we can get entries in the normal
+ // vectors of the unit cube that have entries up to
+ // several times 1e-14.
+ //
+ // the problem with this is that this later yields
+ // constraints that are circular (e.g., in the testcase,
+ // we get constraints of the form
+ //
+ // x22 = 2.93099e-14*x21 + 2.93099e-14*x23
+ // x21 = -2.93099e-14*x22 + 2.93099e-14*x21
+ //
+ // in both of these constraints, the small numbers should
+ // be zero and the constraints should simply be
+ // x22 = x21 = 0
+ //
+ // to achieve this, we utilize that we know that the
+ // normal vector has (or should have) length 1 and that we
+ // can simply set small elements to zero (without having
+ // to check that they are small *relative to something
+ // else*). we do this and then normalize the length of the
+ // vector back to one, just to be on the safe side
+ //
+ // one more point: we would like to use the "real" normal
+ // vector here, as provided by the boundary description
+ // and as opposed to what we get from the FEValues object.
+ // we do this in the immediately next line, but as is
+ // obvious, the boundary only has a vague idea which side
+ // of a cell it is on -- indicated by the face number. in
+ // other words, it may provide the inner or outer normal.
+ // by and large, there is no harm from this, since the
+ // tangential vector we compute is still the same. however,
+ // we do average over normal vectors from adjacent cells
+ // and if they have recorded normal vectors from the inside
+ // once and from the outside the other time, then this
+ // averaging is going to run into trouble. as a consequence
+ // we ask the mapping after all for its normal vector,
+ // but we only ask it so that we can possibly correct the
+ // sign of the normal vector provided by the boundary
+ // if they should point in different directions. this is the
+ // case in tests/deal.II/no_flux_11.
+ Point<dim> normal_vector
+ = (cell->face(face_no)->get_boundary().normal_vector
+ (cell->face(face_no), fe_values.quadrature_point(i)));
+ if (normal_vector * fe_values.normal_vector(i) < 0)
+ normal_vector *= -1;
+ Assert (std::fabs(normal_vector.norm() - 1) < 1e-14,
+ ExcInternalError());
+ for (unsigned int d=0; d<dim; ++d)
+ if (std::fabs(normal_vector[d]) < 1e-13)
+ normal_vector[d] = 0;
+ normal_vector /= normal_vector.norm();
+
+ const Point<dim> point
+ = fe_values.quadrature_point(i);
+ Vector<double> b_values(dim);
+ function_map[*b_id]->vector_value(point, b_values);
+
+ // now enter the (dofs,(normal_vector,cell)) entry into
+ // the map
+ dof_to_normals_map.insert
+ (std::make_pair (vector_dofs,
+ std::make_pair (normal_vector,cell)));
+ dof_vector_to_b_values.insert
+ (std::make_pair(vector_dofs, b_values));
- // then identify which of them correspond to the selected set of
- // vector components
- for (unsigned int i=0; i<face_dofs.size(); ++i)
- if (fe.face_system_to_component_index(i).first ==
- first_vector_component)
- {
- // find corresponding other components of vector
- internal::VectorDoFTuple<dim> vector_dofs;
- vector_dofs.dof_indices[0] = face_dofs[i];
-
- Assert(first_vector_component+dim<=fe.n_components(),
- ExcMessage("Error: the finite element does not have enough components "
- "to define a normal direction."));
-
- for (unsigned int k=0; k<fe.dofs_per_face; ++k)
- if ((k != i)
- &&
- (face_quadrature_collection[cell->active_fe_index()].point(k) ==
- face_quadrature_collection[cell->active_fe_index()].point(i))
- &&
- (fe.face_system_to_component_index(k).first >=
- first_vector_component)
- &&
- (fe.face_system_to_component_index(k).first <
- first_vector_component + dim))
- vector_dofs.dof_indices[fe.face_system_to_component_index(k).first -
- first_vector_component]
- = face_dofs[k];
-
- for (unsigned int d=0; d<dim; ++d)
- Assert (vector_dofs.dof_indices[d] < dof_handler.n_dofs(),
- ExcInternalError());
-
- // we need the normal vector on this face. we know that it
- // is a vector of length 1 but at least with higher order
- // mappings it isn't always possible to guarantee that
- // each component is exact up to zero tolerance. in
- // particular, as shown in the deal.II/no_flux_06 test, if
- // we just take the normal vector as given by the
- // fe_values object, we can get entries in the normal
- // vectors of the unit cube that have entries up to
- // several times 1e-14.
- //
- // the problem with this is that this later yields
- // constraints that are circular (e.g., in the testcase,
- // we get constraints of the form
- //
- // x22 = 2.93099e-14*x21 + 2.93099e-14*x23
- // x21 = -2.93099e-14*x22 + 2.93099e-14*x21
- //
- // in both of these constraints, the small numbers should
- // be zero and the constraints should simply be
- // x22 = x21 = 0
- //
- // to achieve this, we utilize that we know that the
- // normal vector has (or should have) length 1 and that we
- // can simply set small elements to zero (without having
- // to check that they are small *relative to something
- // else*). we do this and then normalize the length of the
- // vector back to one, just to be on the safe side
- //
- // one more point: we would like to use the "real" normal
- // vector here, as provided by the boundary description
- // and as opposed to what we get from the FEValues object.
- // we do this in the immediately next line, but as is
- // obvious, the boundary only has a vague idea which side
- // of a cell it is on -- indicated by the face number. in
- // other words, it may provide the inner or outer normal.
- // by and large, there is no harm from this, since the
- // tangential vector we compute is still the same. however,
- // we do average over normal vectors from adjacent cells
- // and if they have recorded normal vectors from the inside
- // once and from the outside the other time, then this
- // averaging is going to run into trouble. as a consequence
- // we ask the mapping after all for its normal vector,
- // but we only ask it so that we can possibly correct the
- // sign of the normal vector provided by the boundary
- // if they should point in different directions. this is the
- // case in tests/deal.II/no_flux_11.
- Point<dim> normal_vector
- = (cell->face(face_no)->get_boundary()
- .normal_vector (cell->face(face_no),
- fe_values.quadrature_point(i)));
- if (normal_vector * fe_values.normal_vector(i) < 0)
- normal_vector *= -1;
- Assert (std::fabs(normal_vector.norm() - 1) < 1e-14,
- ExcInternalError());
- for (unsigned int d=0; d<dim; ++d)
- if (std::fabs(normal_vector[d]) < 1e-13)
- normal_vector[d] = 0;
- normal_vector /= normal_vector.norm();
-
- // now enter the (dofs,(normal_vector,cell)) entry into
- // the map
- dof_to_normals_map
- .insert (std::make_pair (vector_dofs,
- std::make_pair (normal_vector,
- cell)));
#ifdef DEBUG_NO_NORMAL_FLUX
- std::cout << "Adding normal vector:" << std::endl
- << " dofs=" << vector_dofs << std::endl
- << " cell=" << cell << " at " << cell->center() << std::endl
- << " normal=" << normal_vector << std::endl;
+ std::cout << "Adding normal vector:" << std::endl
+ << " dofs=" << vector_dofs << std::endl
+ << " cell=" << cell << " at " << cell->center() << std::endl
+ << " normal=" << normal_vector << std::endl;
#endif
- }
- }
+ }
+ }
// Now do something with the collected information. To this end, loop
// through all sets of pairs (dofs,normal_vector) and identify which
p = dof_to_normals_map.begin();
while (p != dof_to_normals_map.end())
- {
- // first find the range of entries in the multimap that corresponds to
- // the same vector-dof tuple. as usual, we define the range
- // half-open. the first entry of course is 'p'
- typename DoFToNormalsMap::const_iterator same_dof_range[2]
- = { p };
- for (++p; p != dof_to_normals_map.end(); ++p)
- if (p->first != same_dof_range[0]->first)
- {
- same_dof_range[1] = p;
- break;
- }
- if (p == dof_to_normals_map.end())
- same_dof_range[1] = dof_to_normals_map.end();
+ {
+ // first find the range of entries in the multimap that corresponds to
+ // the same vector-dof tuple. as usual, we define the range
+ // half-open. the first entry of course is 'p'
+ typename DoFToNormalsMap::const_iterator same_dof_range[2] = { p };
+ for (++p; p != dof_to_normals_map.end(); ++p)
+ if (p->first != same_dof_range[0]->first)
+ {
+ same_dof_range[1] = p;
+ break;
+ }
+ if (p == dof_to_normals_map.end())
+ same_dof_range[1] = dof_to_normals_map.end();
#ifdef DEBUG_NO_NORMAL_FLUX
- std::cout << "For dof indices <" << p->first << ">, found the following normals"
+ std::cout << "For dof indices <" << p->first << ">, found the following normals"
+ << std::endl;
+ for (typename DoFToNormalsMap::const_iterator
+ q = same_dof_range[0];
+ q != same_dof_range[1]; ++q)
+ std::cout << " " << q->second.first
+ << " from cell " << q->second.second
<< std::endl;
- for (typename DoFToNormalsMap::const_iterator
- q = same_dof_range[0];
- q != same_dof_range[1]; ++q)
- std::cout << " " << q->second.first
- << " from cell " << q->second.second
- << std::endl;
#endif
- // now compute the reverse mapping: for each of the cells that
- // contributed to the current set of vector dofs, add up the normal
- // vectors. the values of the map are pairs of normal vectors and
- // number of cells that have contributed
- typedef
- std::map
- <typename DH<dim,spacedim>::active_cell_iterator,
- std::pair<Tensor<1,dim>, unsigned int> >
+ // now compute the reverse mapping: for each of the cells that
+ // contributed to the current set of vector dofs, add up the normal
+ // vectors. the values of the map are pairs of normal vectors and
+ // number of cells that have contributed
+ typedef std::map<typename DH<dim,spacedim>::active_cell_iterator,
+ std::pair<Tensor<1,dim>, unsigned int> >
CellToNormalsMap;
- CellToNormalsMap cell_to_normals_map;
- for (typename DoFToNormalsMap::const_iterator
- q = same_dof_range[0];
- q != same_dof_range[1]; ++q)
- if (cell_to_normals_map.find (q->second.second)
+ CellToNormalsMap cell_to_normals_map;
+ for (typename DoFToNormalsMap::const_iterator
+ q = same_dof_range[0];
+ q != same_dof_range[1]; ++q)
+ if (cell_to_normals_map.find (q->second.second)
== cell_to_normals_map.end())
cell_to_normals_map[q->second.second]
= std::make_pair (q->second.first, 1U);
- else
- {
- const Tensor<1,dim> old_normal
+ else
+ {
+ const Tensor<1,dim> old_normal
= cell_to_normals_map[q->second.second].first;
- const unsigned int old_count
+ const unsigned int old_count
= cell_to_normals_map[q->second.second].second;
- Assert (old_count > 0, ExcInternalError());
+ Assert (old_count > 0, ExcInternalError());
- // in the same entry, store again the now averaged normal vector
- // and the new count
- cell_to_normals_map[q->second.second]
- = std::make_pair ((old_normal * old_count + q->second.first) / (old_count + 1),
- old_count + 1);
- }
- Assert (cell_to_normals_map.size() >= 1, ExcInternalError());
+ // in the same entry, store again the now averaged normal vector
+ // and the new count
+ cell_to_normals_map[q->second.second]
+ = std::make_pair ((old_normal * old_count + q->second.first) / (old_count + 1),
+ old_count + 1);
+ }
+ Assert (cell_to_normals_map.size() >= 1, ExcInternalError());
#ifdef DEBUG_NO_NORMAL_FLUX
- std::cout << " cell_to_normals_map:" << std::endl;
- for (typename CellToNormalsMap::const_iterator
- x = cell_to_normals_map.begin();
- x != cell_to_normals_map.end(); ++x)
- std::cout << " " << x->first << " -> ("
- << x->second.first << ',' << x->second.second << ')'
- << std::endl;
+ std::cout << " cell_to_normals_map:" << std::endl;
+ for (typename CellToNormalsMap::const_iterator
+ x = cell_to_normals_map.begin();
+ x != cell_to_normals_map.end(); ++x)
+ std::cout << " " << x->first << " -> ("
+ << x->second.first << ',' << x->second.second << ')'
+ << std::endl;
#endif
- // count the maximum number of contributions from each cell
- unsigned int max_n_contributions_per_cell = 1;
- for (typename CellToNormalsMap::const_iterator
- x = cell_to_normals_map.begin();
- x != cell_to_normals_map.end(); ++x)
+ // count the maximum number of contributions from each cell
+ unsigned int max_n_contributions_per_cell = 1;
+ for (typename CellToNormalsMap::const_iterator
+ x = cell_to_normals_map.begin();
+ x != cell_to_normals_map.end(); ++x)
max_n_contributions_per_cell
= std::max (max_n_contributions_per_cell,
x->second.second);
- // verify that each cell can have only contributed at most dim times,
- // since that is the maximum number of faces that come together at a
- // single place
- Assert (max_n_contributions_per_cell <= dim, ExcInternalError());
-
- switch (max_n_contributions_per_cell)
- {
- // first deal with the case that a number of cells all have
- // registered that they have a normal vector defined at the
- // location of a given vector dof, and that each of them have
- // encountered this vector dof exactly once while looping over all
- // their faces. as stated in the documentation, this is the case
- // where we want to simply average over all normal vectors
- //
- // the typical case is in 2d where multiple cells meet at one
- // vertex sitting on the boundary. same in 3d for a vertex that
- // is associated with only one of the boundary indicators passed
- // to this function
- case 1:
- {
-
- // compute the average normal vector from all the ones that have
- // the same set of dofs. we could add them up and divide them by
- // the number of additions, or simply normalize them right away
- // since we want them to have unit length anyway
- Tensor<1,dim> normal;
- for (typename CellToNormalsMap::const_iterator
- x = cell_to_normals_map.begin();
- x != cell_to_normals_map.end(); ++x)
- normal += x->second.first;
- normal /= normal.norm();
-
- // normalize again
- for (unsigned int d=0; d<dim; ++d)
- if (std::fabs(normal[d]) < 1e-13)
- normal[d] = 0;
- normal /= normal.norm();
-
- // then construct constraints from this:
- const internal::VectorDoFTuple<dim> &
- dof_indices = same_dof_range[0]->first;
- internal::add_constraint (dof_indices, normal,
- constraints);
+ // verify that each cell can have only contributed at most dim times,
+ // since that is the maximum number of faces that come together at a
+ // single place
+ Assert (max_n_contributions_per_cell <= dim, ExcInternalError());
- break;
- }
+ switch (max_n_contributions_per_cell)
+ {
+ // first deal with the case that a number of cells all have
+ // registered that they have a normal vector defined at the
+ // location of a given vector dof, and that each of them have
+ // encountered this vector dof exactly once while looping over all
+ // their faces. as stated in the documentation, this is the case
+ // where we want to simply average over all normal vectors
+ //
+ // the typical case is in 2d where multiple cells meet at one
+ // vertex sitting on the boundary. same in 3d for a vertex that
+ // is associated with only one of the boundary indicators passed
+ // to this function
+ case 1:
+ {
+ // compute the average normal vector from all the ones that have
+ // the same set of dofs. we could add them up and divide them by
+ // the number of additions, or simply normalize them right away
+ // since we want them to have unit length anyway
+ Tensor<1,dim> normal;
+ for (typename CellToNormalsMap::const_iterator
+ x = cell_to_normals_map.begin();
+ x != cell_to_normals_map.end(); ++x)
+ normal += x->second.first;
+ normal /= normal.norm();
+
+ // normalize again
+ for (unsigned int d=0; d<dim; ++d)
+ if (std::fabs(normal[d]) < 1e-13)
+ normal[d] = 0;
+ normal /= normal.norm();
+
+ // then construct constraints from this:
+ const internal::VectorDoFTuple<dim> &
+ dof_indices = same_dof_range[0]->first;
+ double normal_value = 0.;
+ const Vector<double> b_values = dof_vector_to_b_values[dof_indices];
+ for (unsigned int i=0; i<dim; ++i)
+ normal_value += b_values[i]*normal[i];
+ internal::add_constraint (dof_indices, normal,
+ constraints, normal_value);
+
+ break;
+ }
+ // this is the slightly more complicated case that a single cell has
+ // contributed with exactly DIM normal vectors to the same set of
+ // vector dofs. this is what happens in a corner in 2d and 3d (but
+ // not on an edge in 3d, where we have only 2, i.e. <DIM,
+ // contributions. Here we do not want to average the normal
+ // vectors. Since we have DIM contributions, let's assume (and
+ // verify) that they are in fact all linearly independent; in that
+ // case, all vector components are constrained and we need to set all
+ // of them to the corresponding boundary values
+ case dim:
+ {
+ // assert that indeed only a single cell has contributed
+ Assert (cell_to_normals_map.size() == 1,
+ ExcInternalError());
- // this is the slightly more complicated case that a single cell has
- // contributed with exactly DIM normal vectors to the same set of
- // vector dofs. this is what happens in a corner in 2d and 3d (but
- // not on an edge in 3d, where we have only 2, i.e. <DIM,
- // contributions. Here we do not want to average the normal
- // vectors. Since we have DIM contributions, let's assume (and
- // verify) that they are in fact all linearly independent; in that
- // case, all vector components are constrained and we need to set
- // them to zero
- case dim:
+ // check linear independence by computing the determinant of the
+ // matrix created from all the normal vectors. if they are
+ // linearly independent, then the determinant is nonzero. if they
+ // are orthogonal, then the matrix is in fact equal to 1 (since
+ // they are all unit vectors); make sure the determinant is larger
+ // than 1e-3 to avoid cases where cells are degenerate
{
- // assert that indeed only a single cell has contributed
- Assert (cell_to_normals_map.size() == 1,
- ExcInternalError());
+ Tensor<2,dim> t;
+
+ typename DoFToNormalsMap::const_iterator x = same_dof_range[0];
+ for (unsigned int i=0; i<dim; ++i, ++x)
+ for (unsigned int j=0; j<dim; ++j)
+ t[i][j] = x->second.first[j];
+
+ Assert (std::fabs(determinant (t)) > 1e-3,
+ ExcMessage("Found a set of normal vectors that are nearly collinear."));
+ }
- // check linear independence by computing the determinant of the
- // matrix created from all the normal vectors. if they are
- // linearly independent, then the determinant is nonzero. if they
- // are orthogonal, then the matrix is in fact equal to 1 (since
- // they are all unit vectors); make sure the determinant is larger
- // than 1e-3 to avoid cases where cells are degenerate
+ // so all components of this vector dof are constrained. enter
+ // this into the constraint matrix
+ //
+ // ignore dofs already constrained
+ const internal::VectorDoFTuple<dim> &
+ dof_indices = same_dof_range[0]->first;
+ const Vector<double> b_values = dof_vector_to_b_values[dof_indices];
+ for (unsigned int i=0; i<dim; ++i)
+ if (!constraints.is_constrained(same_dof_range[0]->first.dof_indices[i])
+ &&
+ constraints.can_store_line(same_dof_range[0]->first.dof_indices[i]))
{
- Tensor<2,dim> t;
-
- typename DoFToNormalsMap::const_iterator x = same_dof_range[0];
- for (unsigned int i=0; i<dim; ++i, ++x)
- for (unsigned int j=0; j<dim; ++j)
- t[i][j] = x->second.first[j];
-
- Assert (std::fabs(determinant (t)) > 1e-3,
- ExcMessage("Found a set of normal vectors that are nearly collinear."));
+ const types::global_dof_index line
+ = dof_indices.dof_indices[i];
+ constraints.add_line (line);
+ if (std::fabs(b_values[i])
+ > std::numeric_limits<double>::epsilon())
+ constraints.set_inhomogeneity(line, b_values[i]);
+ // no add_entries here
}
- // so all components of this vector dof are constrained. enter
- // this into the constraint matrix
- //
- // ignore dofs already constrained
- for (unsigned int i=0; i<dim; ++i)
- if (!constraints.is_constrained (same_dof_range[0]
- ->first.dof_indices[i])
- &&
- constraints.can_store_line(
- same_dof_range[0]->first.dof_indices[i]))
- {
- constraints.add_line (same_dof_range[0]->first.dof_indices[i]);
- // no add_entries here
- }
-
break;
}
-
- // this is the case of an edge contribution in 3d, i.e. the vector
- // is constrained in two directions but not the third.
- default:
- {
- Assert (dim >= 3, ExcNotImplemented());
- Assert (max_n_contributions_per_cell == 2, ExcInternalError());
-
- // as described in the documentation, let us first collect what
- // each of the cells contributed at the current point. we use a
- // std::list instead of a std::set (which would be more natural)
- // because std::set requires that the stored elements are
- // comparable with operator<
- typedef
- std::map<typename DH<dim,spacedim>::active_cell_iterator, std::list<Tensor<1,dim> > >
+ // this is the case of an edge contribution in 3d, i.e. the vector
+ // is constrained in two directions but not the third.
+ default:
+ {
+ Assert (dim >= 3, ExcNotImplemented());
+ Assert (max_n_contributions_per_cell == 2, ExcInternalError());
+
+ // as described in the documentation, let us first collect what
+ // each of the cells contributed at the current point. we use a
+ // std::list instead of a std::set (which would be more natural)
+ // because std::set requires that the stored elements are
+ // comparable with operator<
+ typedef std::map<typename DH<dim,spacedim>::active_cell_iterator,
+ std::list<Tensor<1,dim> > >
CellContributions;
- CellContributions cell_contributions;
-
- for (typename DoFToNormalsMap::const_iterator
- q = same_dof_range[0];
- q != same_dof_range[1]; ++q)
- cell_contributions[q->second.second].push_back (q->second.first);
- Assert (cell_contributions.size() >= 1, ExcInternalError());
-
- // now for each cell that has contributed determine the number of
- // normal vectors it has contributed. we currently only implement
- // if this is dim-1 for all cells (if a single cell has
- // contributed dim, or if all adjacent cells have contributed 1
- // normal vector, this is already handled above).
- //
- // we only implement the case that all cells contribute
- // dim-1 because we assume that we are following an edge
- // of the domain (think: we are looking at a vertex
- // located on one of the edges of a refined cube where the
- // boundary indicators of the two adjacent faces of the
- // cube are both listed in the set of boundary indicators
- // passed to this function). in that case, all cells along
- // that edge of the domain are assumed to have contributed
- // dim-1 normal vectors. however, there are cases where
- // this assumption is not justified (see the lengthy
- // explanation in test no_flux_12.cc) and in those cases
- // we simply ignore the cell that contributes only
- // once. this is also discussed at length in the
- // documentation of this function.
- //
- // for each contributing cell compute the tangential vector that
- // remains unconstrained
- std::list<Tensor<1,dim> > tangential_vectors;
- for (typename CellContributions::const_iterator
- contribution = cell_contributions.begin();
- contribution != cell_contributions.end();
- ++contribution)
- {
+ CellContributions cell_contributions;
+
+ for (typename DoFToNormalsMap::const_iterator
+ q = same_dof_range[0];
+ q != same_dof_range[1]; ++q)
+ cell_contributions[q->second.second].push_back (q->second.first);
+ Assert (cell_contributions.size() >= 1, ExcInternalError());
+
+ // now for each cell that has contributed determine the number of
+ // normal vectors it has contributed. we currently only implement
+ // if this is dim-1 for all cells (if a single cell has
+ // contributed dim, or if all adjacent cells have contributed 1
+ // normal vector, this is already handled above).
+ //
+ // we only implement the case that all cells contribute
+ // dim-1 because we assume that we are following an edge
+ // of the domain (think: we are looking at a vertex
+ // located on one of the edges of a refined cube where the
+ // boundary indicators of the two adjacent faces of the
+ // cube are both listed in the set of boundary indicators
+ // passed to this function). in that case, all cells along
+ // that edge of the domain are assumed to have contributed
+ // dim-1 normal vectors. however, there are cases where
+ // this assumption is not justified (see the lengthy
+ // explanation in test no_flux_12.cc) and in those cases
+ // we simply ignore the cell that contributes only
+ // once. this is also discussed at length in the
+ // documentation of this function.
+ //
+ // for each contributing cell compute the tangential vector that
+ // remains unconstrained
+ std::list<Tensor<1,dim> > tangential_vectors;
+ for (typename CellContributions::const_iterator
+ contribution = cell_contributions.begin();
+ contribution != cell_contributions.end();
+ ++contribution)
+ {
#ifdef DEBUG_NO_NORMAL_FLUX
- std::cout << " Treating edge case with dim-1 contributions." << std::endl
- << " Looking at cell " << contribution->first
- << " which has contributed these normal vectors:"
- << std::endl;
- for (typename std::list<Tensor<1,dim> >::const_iterator
- t = contribution->second.begin();
- t != contribution->second.end();
- ++t)
- std::cout << " " << *t << std::endl;
+ std::cout << " Treating edge case with dim-1 contributions." << std::endl
+ << " Looking at cell " << contribution->first
+ << " which has contributed these normal vectors:"
+ << std::endl;
+ for (typename std::list<Tensor<1,dim> >::const_iterator
+ t = contribution->second.begin();
+ t != contribution->second.end();
+ ++t)
+ std::cout << " " << *t << std::endl;
#endif
- // as mentioned above, simply ignore cells that only
- // contribute once
- if (contribution->second.size() < dim-1)
- continue;
-
- Tensor<1,dim> normals[dim-1];
- {
- unsigned int index=0;
- for (typename std::list<Tensor<1,dim> >::const_iterator
- t = contribution->second.begin();
- t != contribution->second.end();
- ++t, ++index)
- normals[index] = *t;
- Assert (index == dim-1, ExcInternalError());
- }
-
- // calculate the tangent as the outer product of the normal
- // vectors. since these vectors do not need to be orthogonal
- // (think, for example, the case of the deal.II/no_flux_07
- // test: a sheared cube in 3d, with Q2 elements, where we have
- // constraints from the two normal vectors of two faces of the
- // sheared cube that are not perpendicular to each other), we
- // have to normalize the outer product
- Tensor<1,dim> tangent;
- switch (dim)
- {
- case 3:
- // take cross product between normals[0] and
- // normals[1]. write it in the current form (with [dim-2])
- // to make sure that compilers don't warn about
- // out-of-bounds accesses -- the warnings are bogus since
- // we get here only for dim==3, but at least one isn't
- // quite smart enough to notice this and warns when
- // compiling the function in 2d
- cross_product (tangent, normals[0], normals[dim-2]);
- break;
- default:
- Assert (false, ExcNotImplemented());
- }
-
- Assert (std::fabs (tangent.norm()) > 1e-12,
- ExcMessage("Two normal vectors from adjacent faces are almost "
- "parallel."));
- tangent /= tangent.norm();
-
- tangential_vectors.push_back (tangent);
- }
+ // as mentioned above, simply ignore cells that only
+ // contribute once
+ if (contribution->second.size() < dim-1)
+ continue;
+
+ Tensor<1,dim> normals[dim-1];
+ {
+ unsigned int index=0;
+ for (typename std::list<Tensor<1,dim> >::const_iterator
+ t = contribution->second.begin();
+ t != contribution->second.end();
+ ++t, ++index)
+ normals[index] = *t;
+ Assert (index == dim-1, ExcInternalError());
+ }
- // go through the list of tangents and make sure that they all
- // roughly point in the same direction as the first one (i.e. have
- // an angle less than 90 degrees); if they don't then flip their
- // sign
+ // calculate the tangent as the outer product of the normal
+ // vectors. since these vectors do not need to be orthogonal
+ // (think, for example, the case of the deal.II/no_flux_07
+ // test: a sheared cube in 3d, with Q2 elements, where we have
+ // constraints from the two normal vectors of two faces of the
+ // sheared cube that are not perpendicular to each other), we
+ // have to normalize the outer product
+ Tensor<1,dim> tangent;
+ switch (dim)
{
- const Tensor<1,dim> first_tangent = tangential_vectors.front();
- typename std::list<Tensor<1,dim> >::iterator
- t = tangential_vectors.begin();
- ++t;
- for (; t != tangential_vectors.end(); ++t)
- if (*t * first_tangent < 0)
- *t *= -1;
+ case 3:
+ // take cross product between normals[0] and
+ // normals[1]. write it in the current form (with [dim-2])
+ // to make sure that compilers don't warn about
+ // out-of-bounds accesses -- the warnings are bogus since
+ // we get here only for dim==3, but at least one isn't
+ // quite smart enough to notice this and warns when
+ // compiling the function in 2d
+ cross_product (tangent, normals[0], normals[dim-2]);
+ break;
+ default:
+ Assert (false, ExcNotImplemented());
}
- // now compute the average tangent and normalize it
- Tensor<1,dim> average_tangent;
- for (typename std::list<Tensor<1,dim> >::const_iterator
- t = tangential_vectors.begin();
- t != tangential_vectors.end();
- ++t)
- average_tangent += *t;
- average_tangent /= average_tangent.norm();
+ Assert (std::fabs (tangent.norm()) > 1e-12,
+ ExcMessage("Two normal vectors from adjacent faces are almost "
+ "parallel."));
+ tangent /= tangent.norm();
- // now all that is left is that we add the constraints that the
- // vector is parallel to the tangent
- const internal::VectorDoFTuple<dim> &
- dof_indices = same_dof_range[0]->first;
- internal::add_tangentiality_constraints (dof_indices,
- average_tangent,
- constraints);
+ tangential_vectors.push_back (tangent);
}
+
+ // go through the list of tangents and make sure that they all
+ // roughly point in the same direction as the first one (i.e. have
+ // an angle less than 90 degrees); if they don't then flip their
+ // sign
+ {
+ const Tensor<1,dim> first_tangent = tangential_vectors.front();
+ typename std::list<Tensor<1,dim> >::iterator
+ t = tangential_vectors.begin();
+ ++t;
+ for (; t != tangential_vectors.end(); ++t)
+ if (*t * first_tangent < 0)
+ *t *= -1;
}
+
+ // now compute the average tangent and normalize it
+ Tensor<1,dim> average_tangent;
+ for (typename std::list<Tensor<1,dim> >::const_iterator
+ t = tangential_vectors.begin();
+ t != tangential_vectors.end();
+ ++t)
+ average_tangent += *t;
+ average_tangent /= average_tangent.norm();
+
+ // now all that is left is that we add the constraints that the
+ // vector is parallel to the tangent
+ const internal::VectorDoFTuple<dim> &
+ dof_indices = same_dof_range[0]->first;
+ const Vector<double> b_values = dof_vector_to_b_values[dof_indices];
+ internal::add_tangentiality_constraints (dof_indices,
+ average_tangent,
+ constraints,
+ b_values);
+ }
}
+ }
}
const std::set<types::boundary_id> &boundary_ids,
ConstraintMatrix &constraints,
const Mapping<dim, spacedim> &mapping)
+ {
+ ZeroFunction<dim>zero_function(dim);
+ typename FunctionMap<spacedim>::type function_map;
+ std::set<types::boundary_id>::const_iterator it
+ = boundary_ids.begin();
+ for (;it != boundary_ids.end(); ++it)
+ function_map[*it] = &zero_function;
+ compute_nonzero_tangential_flux_constraints(dof_handler,
+ first_vector_component,
+ boundary_ids,
+ function_map,
+ constraints,
+ mapping);
+ }
+
+ template <int dim, template <int, int> class DH, int spacedim>
+ void
+ compute_nonzero_tangential_flux_constraints (const DH<dim,spacedim> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ typename FunctionMap<spacedim>::type &function_map,
+ ConstraintMatrix &constraints,
+ const Mapping<dim, spacedim> &mapping)
{
ConstraintMatrix no_normal_flux_constraints(constraints.get_local_lines());
- compute_no_normal_flux_constraints (dof_handler,
- first_vector_component,
- boundary_ids,
- no_normal_flux_constraints,
- mapping);
+ compute_nonzero_normal_flux_constraints (dof_handler,
+ first_vector_component,
+ boundary_ids,
+ function_map,
+ no_normal_flux_constraints,
+ mapping);
+
+ hp::FECollection<dim,spacedim> fe_collection (dof_handler.get_fe());
+ hp::MappingCollection<dim,spacedim> mapping_collection;
+ for (unsigned int i=0; i<fe_collection.size(); ++i)
+ mapping_collection.push_back (mapping);
+
+ // now also create a quadrature collection for the faces of a cell. fill
+ // it with a quadrature formula with the support points on faces for each
+ // FE
+ hp::QCollection<dim-1> face_quadrature_collection;
+ for (unsigned int i=0; i<fe_collection.size(); ++i)
+ {
+ const std::vector<Point<dim-1> > &
+ unit_support_points = fe_collection[i].get_unit_face_support_points();
+
+ Assert (unit_support_points.size() == fe_collection[i].dofs_per_face,
+ ExcInternalError());
+
+ face_quadrature_collection.push_back (Quadrature<dim-1> (unit_support_points));
+ }
+
+ // now create the object with which we will generate the normal vectors
+ hp::FEFaceValues<dim,spacedim> x_fe_face_values (mapping_collection,
+ fe_collection,
+ face_quadrature_collection,
+ update_q_points |
+ update_normal_vectors);
// Extract a list that collects all vector components that belong to the
// same node (scalar basis function). When creating that list, we use an
std::set<std_cxx1x::array<types::global_dof_index,dim>, PointComparator<dim> > vector_dofs;
std::vector<types::global_dof_index> face_dofs;
+ std::map<std_cxx1x::array<types::global_dof_index,dim>, Vector<double> >
+ dof_vector_to_b_values;
+
+ std::set<types::boundary_id>::iterator b_id;
std::vector<std_cxx1x::array<types::global_dof_index,dim> > cell_vector_dofs;
for (typename DH<dim,spacedim>::active_cell_iterator cell =
dof_handler.begin_active(); cell != dof_handler.end(); ++cell)
if (!cell->is_artificial())
for (unsigned int face_no=0; face_no < GeometryInfo<dim>::faces_per_cell;
++face_no)
- if (boundary_ids.find(cell->face(face_no)->boundary_indicator())
+ if ((b_id=boundary_ids.find(cell->face(face_no)->boundary_indicator()))
!= boundary_ids.end())
{
const FiniteElement<dim> &fe = cell->get_fe();
face_dofs.resize (fe.dofs_per_face);
face->get_dof_indices (face_dofs, cell->active_fe_index());
+ x_fe_face_values.reinit (cell, face_no);
+ const FEFaceValues<dim> &fe_values = x_fe_face_values.get_present_fe_values();
+
+ std::map<types::global_dof_index, double> dof_to_b_value;
+
unsigned int n_scalar_indices = 0;
cell_vector_dofs.resize(fe.dofs_per_face);
for (unsigned int i=0; i<fe.dofs_per_face; ++i)
+ {
if (fe.face_system_to_component_index(i).first >= first_vector_component &&
fe.face_system_to_component_index(i).first < first_vector_component + dim)
- {
- n_scalar_indices =
- std::max(n_scalar_indices,
- fe.face_system_to_component_index(i).second+1);
- cell_vector_dofs[fe.face_system_to_component_index(i).second]
- [fe.face_system_to_component_index(i).first-first_vector_component]
- = face_dofs[i];
- }
+ {
+ const unsigned int component
+ = fe.face_system_to_component_index(i).first
+ -first_vector_component;
+ n_scalar_indices =
+ std::max(n_scalar_indices,
+ fe.face_system_to_component_index(i).second+1);
+ cell_vector_dofs[fe.face_system_to_component_index(i).second]
+ [component]
+ = face_dofs[i];
+
+ const Point<dim> point
+ = fe_values.quadrature_point(i);
+ const double b_value
+ = function_map[*b_id]->value(point, component);
+ dof_to_b_value.insert
+ (std::make_pair(face_dofs[i], b_value));
+ }
+ }
// now we identified the vector indices on the cell, so next
// insert them into the set (it would be expensive to directly
// insert incomplete points into the set)
for (unsigned int i=0; i<n_scalar_indices; ++i)
+ {
vector_dofs.insert(cell_vector_dofs[i]);
+ Vector<double> b_values(dim);
+ for (unsigned int j=0; j<dim; ++j)
+ b_values[j]=dof_to_b_value[cell_vector_dofs[i][j]];
+ dof_vector_to_b_values.insert
+ (std::make_pair(cell_vector_dofs[i], b_values));
+ }
+
}
// iterate over the list of all vector components we found and see if we
// if more than one no-flux constraint is present, we need to
// constrain all vector degrees of freedom (we are in a corner
// where several faces meet and to get a continuous FE solution we
- // need to set all conditions to zero).
+ // need to set all conditions corresponding to the boundary function.).
if (n_constraints > 1)
{
+ const Vector<double> b_value = dof_vector_to_b_values[*it];
for (unsigned int d=0; d<dim; ++d)
+ {
constraints.add_line((*it)[d]);
+ constraints.set_inhomogeneity((*it)[d], b_value(d));
+ }
continue;
}
Assert (index != -1, ExcInternalError());
normal[index] = (*constrained)[c].second;
}
+ Vector<double> boundary_value = dof_vector_to_b_values[*it];
for (unsigned int d=0; d<dim; ++d)
{
if (is_constrained[d])
if (std::abs(normal[d]) > 1e-13)
constraints.add_entry(new_index, (*it)[constrained_index],
-normal[d]);
+ constraints.set_inhomogeneity(new_index, boundary_value[d]);
}
}
}
}
}
- template <>
- void
- Triangulation<1,1>::
- fill_vertices_with_ghost_neighbors
- (std::map<unsigned int, std::set<dealii::types::subdomain_id> >
- &vertices_with_ghost_neighbors)
- {
- Assert (false, ExcNotImplemented());
- }
-
- template <>
- void
- Triangulation<1,2>::
- fill_vertices_with_ghost_neighbors
- (std::map<unsigned int, std::set<dealii::types::subdomain_id> >
- &vertices_with_ghost_neighbors)
- {
- Assert (false, ExcNotImplemented());
- }
-
- template <>
- void
- Triangulation<1,3>::
- fill_vertices_with_ghost_neighbors
- (std::map<unsigned int, std::set<dealii::types::subdomain_id> >
- &vertices_with_ghost_neighbors)
- {
- Assert (false, ExcNotImplemented());
- }
/**
* Determine the neighboring subdomains that are adjacent to each vertex.
- * This is achieved via the p4est_iterate tool
+ * This is achieved via the p4est_iterate/p8est_iterate tool
*/
- template <>
+ template <int dim, int spacedim>
void
- Triangulation<2,2>::
+ Triangulation<dim,spacedim>::
fill_vertices_with_ghost_neighbors
(std::map<unsigned int, std::set<dealii::types::subdomain_id> >
&vertices_with_ghost_neighbors)
{
- struct find_ghosts<2,2> fg;
-
- fg.subids = sc_array_new (sizeof (dealii::types::subdomain_id));
- fg.triangulation = this;
- fg.vertices_with_ghost_neighbors = &(vertices_with_ghost_neighbors);
-
- p4est_iterate (this->parallel_forest, this->parallel_ghost, static_cast<void *>(&fg),
- NULL, find_ghosts_face<2,2>, find_ghosts_corner<2,2>);
-
- sc_array_destroy (fg.subids);
- }
+ Assert (dim>1, ExcNotImplemented());
- /**
- * Determine the neighboring subdomains that are adjacent to each vertex.
- * This is achieved via the p4est_iterate tool
- */
- template <>
- void
- Triangulation<2,3>::
- fill_vertices_with_ghost_neighbors
- (std::map<unsigned int, std::set<dealii::types::subdomain_id> >
- &vertices_with_ghost_neighbors)
- {
- struct find_ghosts<2,3> fg;
+ struct find_ghosts<dim,spacedim> fg;
fg.subids = sc_array_new (sizeof (dealii::types::subdomain_id));
fg.triangulation = this;
- fg.vertices_with_ghost_neighbors = &(vertices_with_ghost_neighbors);
+ fg.vertices_with_ghost_neighbors = &vertices_with_ghost_neighbors;
- p4est_iterate (this->parallel_forest, this->parallel_ghost, static_cast<void *>(&fg),
- NULL, find_ghosts_face<2,3>, find_ghosts_corner<2,3>);
+ // switch between functions. to make the compiler happy, we need to cast
+ // the first two arguments to the type p[48]est_iterate wants to see. this
+ // cast is the identity cast in each of the two branches, so it is safe.
+ switch (dim)
+ {
+ case 2:
+ p4est_iterate (reinterpret_cast<dealii::internal::p4est::types<2>::forest*>(this->parallel_forest),
+ reinterpret_cast<dealii::internal::p4est::types<2>::ghost*>(this->parallel_ghost),
+ static_cast<void *>(&fg),
+ NULL, find_ghosts_face<2,spacedim>, find_ghosts_corner<2,spacedim>);
+ break;
+
+ case 3:
+ p8est_iterate (reinterpret_cast<dealii::internal::p4est::types<3>::forest*>(this->parallel_forest),
+ reinterpret_cast<dealii::internal::p4est::types<3>::ghost*>(this->parallel_ghost),
+ static_cast<void *>(&fg),
+ NULL, find_ghosts_face<3,spacedim>, find_ghosts_edge<3,spacedim>, find_ghosts_corner<3,spacedim>);
+ break;
+
+ default:
+ Assert (false, ExcNotImplemented());
+ }
sc_array_destroy (fg.subids);
}
- /**
- * Determine the neighboring subdomains that are adjacent to each vertex.
- * This is achieved via the p8est_iterate tool
- */
- template <>
- void
- Triangulation<3,3>::
- fill_vertices_with_ghost_neighbors
- (std::map<unsigned int, std::set<dealii::types::subdomain_id> >
- &vertices_with_ghost_neighbors)
- {
- struct find_ghosts<3,3> fg;
-
- fg.subids = sc_array_new (sizeof (dealii::types::subdomain_id));
- fg.triangulation = this;
- fg.vertices_with_ghost_neighbors = &(vertices_with_ghost_neighbors);
-
- p8est_iterate (this->parallel_forest, this->parallel_ghost, static_cast<void *>(&fg),
- NULL, find_ghosts_face<3,3>, find_ghosts_edge<3,3>, find_ghosts_corner<3,3>);
-
- sc_array_destroy (fg.subids);
- }
template <int dim, int spacedim>
MPI_Comm
return mpi_communicator;
}
+
template<int dim, int spacedim>
void
Triangulation<dim,spacedim>::add_periodicity
- // TODO: again problems with specialization in only one template argument
- template <>
- Triangulation<1,1>::Triangulation (MPI_Comm)
+ template <int spacedim>
+ Triangulation<1,spacedim>::Triangulation (MPI_Comm)
{
Assert (false, ExcNotImplemented());
}
- template <>
- Triangulation<1,1>::~Triangulation ()
+ template <int spacedim>
+ Triangulation<1,spacedim>::~Triangulation ()
{
Assert (false, ExcNotImplemented());
}
- template <>
+ template <int spacedim>
types::subdomain_id
- Triangulation<1,1>::locally_owned_subdomain () const
+ Triangulation<1,spacedim>::locally_owned_subdomain () const
{
Assert (false, ExcNotImplemented());
return 0;
}
- template <>
+ template <int spacedim>
types::global_dof_index
- Triangulation<1,1>::n_global_active_cells () const
+ Triangulation<1,spacedim>::n_global_active_cells () const
{
Assert (false, ExcNotImplemented());
return 0;
}
- template <>
+ template <int spacedim>
unsigned int
- Triangulation<1,1>::n_global_levels () const
+ Triangulation<1,spacedim>::n_global_levels () const
{
Assert (false, ExcNotImplemented());
return 0;
}
- template <>
+ template <int spacedim>
MPI_Comm
- Triangulation<1,1>::get_communicator () const
+ Triangulation<1,spacedim>::get_communicator () const
{
return MPI_COMM_WORLD;
}
- template <>
+ template <int spacedim>
const std::vector<types::global_dof_index> &
- Triangulation<1,1>::get_p4est_tree_to_coarse_cell_permutation() const
+ Triangulation<1,spacedim>::get_p4est_tree_to_coarse_cell_permutation() const
{
static std::vector<types::global_dof_index> a;
return a;
}
-
- template <>
- Triangulation<1,2>::Triangulation (MPI_Comm)
- {
- Assert (false, ExcNotImplemented());
- }
-
-
- template <>
- Triangulation<1,2>::~Triangulation ()
- {
- Assert (false, ExcNotImplemented());
- }
-
-
-
- template <>
- types::subdomain_id
- Triangulation<1,2>::locally_owned_subdomain () const
- {
- Assert (false, ExcNotImplemented());
- return 0;
- }
-
-
- template <>
- types::global_dof_index
- Triangulation<1,2>::n_global_active_cells () const
- {
- Assert (false, ExcNotImplemented());
- return 0;
- }
-
-
- template <>
- unsigned int
- Triangulation<1,2>::n_global_levels () const
- {
- Assert (false, ExcNotImplemented());
- return 0;
- }
-
-
- template <>
- MPI_Comm
- Triangulation<1,2>::get_communicator () const
- {
- return MPI_COMM_WORLD;
- }
-
-
- template <>
- Triangulation<1,3>::Triangulation (MPI_Comm)
- {
- Assert (false, ExcNotImplemented());
- }
-
-
- template <>
- Triangulation<1,3>::~Triangulation ()
- {
- Assert (false, ExcNotImplemented());
- }
-
-
-
- template <>
- types::subdomain_id
- Triangulation<1,3>::locally_owned_subdomain () const
- {
- Assert (false, ExcNotImplemented());
- return 0;
- }
-
-
- template <>
- types::global_dof_index
- Triangulation<1,3>::n_global_active_cells () const
- {
- Assert (false, ExcNotImplemented());
- return 0;
- }
-
-
- template <>
- unsigned int
- Triangulation<1,3>::n_global_levels () const
+ template <int spacedim>
+ void
+ Triangulation<1,spacedim>::
+ fill_vertices_with_ghost_neighbors
+ (std::map<unsigned int, std::set<dealii::types::subdomain_id> >
+ &vertices_with_ghost_neighbors)
{
Assert (false, ExcNotImplemented());
- return 0;
- }
-
-
- template <>
- MPI_Comm
- Triangulation<1,3>::get_communicator () const
- {
- return MPI_COMM_WORLD;
}
}
}
Assert (component_mask.represents_n_components(n_components),
ExcDimensionMismatch(n_components,
component_mask.size()));
- std::vector<unsigned int> localized_component (n_components,
- numbers::invalid_unsigned_int);
- unsigned int n_components_selected = 0;
- for (unsigned int i=0; i<n_components; ++i)
- if (component_mask[i] == true)
- localized_component[i] = n_components_selected++;
std::vector<unsigned char> dofs_by_component (dof_handler.n_locally_owned_dofs());
internal::get_component_association (dof_handler, component_mask,
if (component_mask[dofs_by_component[i]])
component_numbering[i] = count++;
- // First count the number of dofs in the current component.
- constant_modes.clear ();
- constant_modes.resize (n_components_selected, std::vector<bool>(n_selected_dofs,
- false));
-
- // Loop over all owned cells and ask the element for the constant modes
+ // get the element constant modes and find a translation table between
+ // index in the constant modes and the components.
+ //
+ // TODO: We might be able to extend this also for elements which do not
+ // have the same constant modes, but that is messy...
const dealii::hp::FECollection<DH::dimension,DH::space_dimension>
fe_collection (dof_handler.get_fe());
std::vector<Table<2,bool> > element_constant_modes;
+ std::vector<std::vector<std::pair<unsigned int, unsigned int> > >
+ constant_mode_to_component_translation(n_components);
+ unsigned int n_constant_modes = 0;
for (unsigned int f=0; f<fe_collection.size(); ++f)
- element_constant_modes.push_back(fe_collection[f].get_constant_modes());
+ {
+ std::pair<Table<2,bool>, std::vector<unsigned int> > data
+ = fe_collection[f].get_constant_modes();
+ element_constant_modes.push_back(data.first);
+ if (f==0)
+ for (unsigned int i=0; i<data.second.size(); ++i)
+ if (component_mask[data.second[i]])
+ constant_mode_to_component_translation[data.second[i]].
+ push_back(std::make_pair(n_constant_modes++,i));
+ AssertDimension(element_constant_modes.back().n_rows(),
+ element_constant_modes[0].n_rows());
+ }
+
+ // First count the number of dofs in the current component.
+ constant_modes.clear ();
+ constant_modes.resize (n_constant_modes, std::vector<bool>(n_selected_dofs,
+ false));
+
+ // Loop over all owned cells and ask the element for the constant modes
typename DH::active_cell_iterator cell = dof_handler.begin_active(),
endc = dof_handler.end();
locally_owned_dofs.index_within_set(dof_indices[i]);
const unsigned int comp = dofs_by_component[loc_index];
if (component_mask[comp])
- constant_modes[localized_component[comp]][component_numbering[loc_index]] =
- element_constant_modes[cell->active_fe_index()](comp,i);
+ for (unsigned int j=0; j<constant_mode_to_component_translation[comp].size(); ++j)
+ constant_modes[constant_mode_to_component_translation[comp][j].first]
+ [component_numbering[loc_index]] =
+ element_constant_modes[cell->active_fe_index()]
+ (constant_mode_to_component_translation[comp][j].second,i);
}
}
}
template <int dim, int spacedim>
-Table<2,bool>
+std::pair<Table<2,bool>, std::vector<unsigned int> >
FiniteElement<dim,spacedim>::get_constant_modes () const
{
Assert (false, ExcNotImplemented());
- return Table<2,bool>(this->n_components(), this->dofs_per_cell);
+ return std::pair<Table<2,bool>, std::vector<unsigned int> >
+ (Table<2,bool>(this->n_components(), this->dofs_per_cell),
+ std::vector<unsigned int>(this->n_components()));
}
const unsigned int n_dofs = this->dofs_per_cell;
- this->mapping_type = mapping_piola;
+ this->mapping_type = mapping_bdm;
// These must be done first, since
// they change the evaluation of
// basis functions
template <int dim, int spacedim>
-Table<2,bool>
+std::pair<Table<2,bool>, std::vector<unsigned int> >
FE_DGP<dim,spacedim>::get_constant_modes () const
{
Table<2,bool> constant_modes(1, this->dofs_per_cell);
constant_modes(0,0) = true;
- return constant_modes;
+ return std::pair<Table<2,bool>, std::vector<unsigned int> >
+ (constant_modes, std::vector<unsigned int>(1, 0));
}
// source FE is also a
// DGQ element
typedef FiniteElement<dim, spacedim> FE;
- AssertThrow ((x_source_fe.get_name().find ("FE_DGQ<") == 0)
- ||
- (dynamic_cast<const FE_DGQ<dim, spacedim>*>(&x_source_fe) != 0),
+ AssertThrow ((dynamic_cast<const FE_DGQ<dim, spacedim>*>(&x_source_fe) != 0),
typename FE::ExcInterpolationNotImplemented() );
// ok, source is a Q element, so
// is necessarily empty -- i.e. there isn't
// much we need to do here.
typedef FiniteElement<dim,spacedim> FE;
- AssertThrow ((x_source_fe.get_name().find ("FE_DGQ<") == 0)
- ||
- (dynamic_cast<const FE_DGQ<dim, spacedim>*>(&x_source_fe) != 0),
+ AssertThrow ((dynamic_cast<const FE_DGQ<dim, spacedim>*>(&x_source_fe) != 0),
typename FE::ExcInterpolationNotImplemented());
Assert (interpolation_matrix.m() == 0,
// is necessarily empty -- i.e. there isn't
// much we need to do here.
typedef FiniteElement<dim, spacedim> FE;
- AssertThrow ((x_source_fe.get_name().find ("FE_DGQ<") == 0)
- ||
- (dynamic_cast<const FE_DGQ<dim, spacedim>*>(&x_source_fe) != 0),
+ AssertThrow ((dynamic_cast<const FE_DGQ<dim, spacedim>*>(&x_source_fe) != 0),
typename FE::ExcInterpolationNotImplemented());
Assert (interpolation_matrix.m() == 0,
template <int dim, int spacedim>
-Table<2,bool>
+std::pair<Table<2,bool>, std::vector<unsigned int> >
FE_DGQ<dim,spacedim>::get_constant_modes () const
{
Table<2,bool> constant_modes(1, this->dofs_per_cell);
- for (unsigned int i=0; i<this->dofs_per_cell; ++i)
- constant_modes(0,i) = true;
- return constant_modes;
+ constant_modes.fill(true);
+ return std::pair<Table<2,bool>, std::vector<unsigned int> >
+ (constant_modes, std::vector<unsigned int>(1, 0));
}
std::string
FE_DGQArbitraryNodes<dim,spacedim>::get_name () const
{
- // note that the
- // FETools::get_fe_from_name
- // function does not work for
- // FE_DGQArbitraryNodes since
- // there is no initialization by
- // a degree value.
+ // note that the FETools::get_fe_from_name function does not work for
+ // FE_DGQArbitraryNodes since there is no initialization by a degree value.
std::ostringstream namebuf;
+ bool equidistant = true;
+ std::vector<double> points(this->degree+1);
- bool type = true;
- const unsigned int n_points = this->degree +1;
- std::vector<double> points(n_points);
- const unsigned int dofs_per_cell = this->dofs_per_cell;
- const std::vector<Point<dim> > &unit_support_points = this->unit_support_points;
- unsigned int index = 0;
+ std::vector<unsigned int> lexicographic = this->poly_space.get_numbering_inverse();
+ for (unsigned int j=0; j<=this->degree; j++)
+ points[j] = this->unit_support_points[lexicographic[j]][0];
- // Decode the support points
- // in one coordinate direction.
- for (unsigned int j=0; j<dofs_per_cell; j++)
- {
- if ((dim>1) ? (unit_support_points[j](1)==0 &&
- ((dim>2) ? unit_support_points[j](2)==0: true)) : true)
- {
- points[index++] = unit_support_points[j](0);
- }
- }
- Assert (index == n_points,
- ExcMessage ("Could not decode support points in one coordinate direction."));
-
- // Check whether the support
- // points are equidistant.
- for (unsigned int j=0; j<n_points; j++)
+ // Check whether the support points are equidistant.
+ for (unsigned int j=0; j<=this->degree; j++)
if (std::fabs(points[j] - (double)j/this->degree) > 1e-15)
{
- type = false;
+ equidistant = false;
break;
}
- if (type == true)
+ if (equidistant == true)
namebuf << "FE_DGQ<" << dim << ">(" << this->degree << ")";
else
{
- // Check whether the support
- // points come from QGaussLobatto.
- const QGaussLobatto<1> points_gl(n_points);
- type = true;
- for (unsigned int j=0; j<n_points; j++)
+ // Check whether the support points come from QGaussLobatto.
+ const QGaussLobatto<1> points_gl(this->degree+1);
+ bool gauss_lobatto = true;
+ for (unsigned int j=0; j<=this->degree; j++)
if (points[j] != points_gl.point(j)(0))
{
- type = false;
+ gauss_lobatto = false;
break;
}
- if (type == true)
+ if (gauss_lobatto == true)
namebuf << "FE_DGQArbitraryNodes<" << dim << ">(QGaussLobatto(" << this->degree+1 << "))";
else
namebuf << "FE_DGQArbitraryNodes<" << dim << ">(QUnknownNodes(" << this->degree << "))";
FiniteElement<dim,spacedim> *
FE_DGQArbitraryNodes<dim,spacedim>::clone() const
{
- // TODO[Prill] : There must be a better way
- // to extract 1D quadrature points from the
- // tensor product FE.
-
- // Construct a dummy quadrature formula
- // containing the FE's nodes:
+ // Construct a dummy quadrature formula containing the FE's nodes:
std::vector<Point<1> > qpoints(this->degree+1);
+ std::vector<unsigned int> lexicographic = this->poly_space.get_numbering_inverse();
for (unsigned int i=0; i<=this->degree; ++i)
- qpoints[i] = Point<1>(this->unit_support_points[i][0]);
+ qpoints[i] = Point<1>(this->unit_support_points[lexicographic[i]][0]);
Quadrature<1> pquadrature(qpoints);
return new FE_DGQArbitraryNodes<dim,spacedim>(pquadrature);
template <int dim, int spacedim>
-Table<2,bool>
+std::pair<Table<2,bool>, std::vector<unsigned int> >
FE_FaceQ<dim,spacedim>::get_constant_modes () const
{
Table<2,bool> constant_modes(1, this->dofs_per_cell);
for (unsigned int i=0; i<this->dofs_per_cell; ++i)
constant_modes(0,i) = true;
- return constant_modes;
+ return std::pair<Table<2,bool>, std::vector<unsigned int> >
+ (constant_modes, std::vector<unsigned int>(1, 0));
}
template <int spacedim>
-Table<2,bool>
+std::pair<Table<2,bool>, std::vector<unsigned int> >
FE_FaceQ<1,spacedim>::get_constant_modes () const
{
Table<2,bool> constant_modes(1, this->dofs_per_cell);
for (unsigned int i=0; i<this->dofs_per_cell; ++i)
constant_modes(0,i) = true;
- return constant_modes;
+ return std::pair<Table<2,bool>, std::vector<unsigned int> >
+ (constant_modes, std::vector<unsigned int>(1,0));
}
template <int dim, int spacedim>
-Table<2,bool>
+std::pair<Table<2,bool>, std::vector<unsigned int> >
FE_FaceP<dim,spacedim>::get_constant_modes () const
{
Table<2,bool> constant_modes(1, this->dofs_per_cell);
for (unsigned int face=0; face<GeometryInfo<dim>::faces_per_cell; ++face)
constant_modes(0, face*this->dofs_per_face) = true;
- return constant_modes;
+ return std::pair<Table<2,bool>, std::vector<unsigned int> >
+ (constant_modes, std::vector<unsigned int>(1, 0));
}
template <int dim>
-Table<2,bool>
+std::pair<Table<2,bool>, std::vector<unsigned int> >
FE_Nedelec<dim>::get_constant_modes() const
{
Table<2,bool> constant_modes(dim, this->dofs_per_cell);
for (unsigned int d=0; d<dim; ++d)
for (unsigned int i=0; i<this->dofs_per_cell; ++i)
constant_modes(d,i) = true;
- return constant_modes;
+ std::vector<unsigned int> components;
+ for (unsigned int d=0; d<dim; ++d)
+ components.push_back(d);
+ return std::pair<Table<2,bool>, std::vector<unsigned int> >
+ (constant_modes, components);
}
// kept in synch
std::ostringstream namebuf;
- bool type = true;
- const unsigned int n_points = this->degree +1;
- std::vector<double> points(n_points);
- const unsigned int dofs_per_cell = this->dofs_per_cell;
- const std::vector<Point<dim> > &unit_support_points = this->unit_support_points;
- unsigned int index = 0;
+ bool equidistant = true;
+ std::vector<double> points(this->degree+1);
// Decode the support points in one coordinate direction.
- for (unsigned int j=0; j<dofs_per_cell; j++)
- {
- if ((dim>1) ? (unit_support_points[j](1)==0 &&
- ((dim>2) ? unit_support_points[j](2)==0: true)) : true)
- {
- if (index == 0)
- points[index] = unit_support_points[j](0);
- else if (index == 1)
- points[n_points-1] = unit_support_points[j](0);
- else
- points[index-1] = unit_support_points[j](0);
-
- index++;
- }
- }
- Assert (index == n_points,
- ExcMessage ("Could not decode support points in one coordinate direction."));
+ std::vector<unsigned int> lexicographic = this->poly_space.get_numbering_inverse();
+ for (unsigned int j=0; j<=this->degree; j++)
+ points[j] = this->unit_support_points[lexicographic[j]][0];
// Check whether the support points are equidistant.
- for (unsigned int j=0; j<n_points; j++)
+ for (unsigned int j=0; j<=this->degree; j++)
if (std::fabs(points[j] - (double)j/this->degree) > 1e-15)
{
- type = false;
+ equidistant = false;
break;
}
- if (type == true)
+ if (equidistant == true)
namebuf << "FE_Q<" << dim << ">(" << this->degree << ")";
else
{
-
// Check whether the support points come from QGaussLobatto.
- const QGaussLobatto<1> points_gl(n_points);
- type = true;
- for (unsigned int j=0; j<n_points; j++)
+ const QGaussLobatto<1> points_gl(this->degree+1);
+ bool gauss_lobatto = true;
+ for (unsigned int j=0; j<=this->degree; j++)
if (points[j] != points_gl.point(j)(0))
{
- type = false;
+ gauss_lobatto = false;
break;
}
- if (type == true)
+ if (gauss_lobatto == true)
namebuf << "FE_Q<" << dim << ">(QGaussLobatto(" << this->degree+1 << "))";
else
namebuf << "FE_Q<" << dim << ">(QUnknownNodes(" << this->degree << "))";
template <typename POLY, int dim, int spacedim>
-Table<2,bool>
+std::pair<Table<2,bool>, std::vector<unsigned int> >
FE_Q_Base<POLY,dim,spacedim>::get_constant_modes () const
{
Table<2,bool> constant_modes(1, this->dofs_per_cell);
- // leave out last component
- for (unsigned int i=0; i<Utilities::fixed_power<dim>(this->degree+1); ++i)
- constant_modes(0, i) = true;
- return constant_modes;
+ // FE_Q_DG0 should not use this function...
+ AssertDimension(this->dofs_per_cell, Utilities::fixed_power<dim>(this->degree+1));
+ constant_modes.fill(true);
+ return std::pair<Table<2,bool>, std::vector<unsigned int> >
+ (constant_modes, std::vector<unsigned int>(1, 0));
}
}
+
+template <int dim, int spacedim>
+std::pair<Table<2,bool>, std::vector<unsigned int> >
+FE_Q_DG0<dim,spacedim>::get_constant_modes () const
+{
+ Table<2,bool> constant_modes(2, this->dofs_per_cell);
+
+ // 1 represented by FE_Q part
+ for (unsigned int i=0; i<this->dofs_per_cell-1; ++i)
+ constant_modes(0, i) = true;
+
+ // 1 represented by DG0 part
+ constant_modes(1, this->dofs_per_cell-1) = true;
+
+ return std::pair<Table<2,bool>, std::vector<unsigned int> >
+ (constant_modes, std::vector<unsigned int> (2, 0));
+}
+
+
+
// explicit instantiations
#include "fe_q_dg0.inst"
template <int dim>
-Table<2,bool>
+std::pair<Table<2,bool>, std::vector<unsigned int> >
FE_Q_Hierarchical<dim>::get_constant_modes () const
{
Table<2,bool> constant_modes(1, this->dofs_per_cell);
constant_modes(0,i) = true;
for (unsigned int i=GeometryInfo<dim>::vertices_per_cell; i<this->dofs_per_cell; ++i)
constant_modes(0,i) = false;
- return constant_modes;
+ return std::pair<Table<2,bool>, std::vector<unsigned int> >
+ (constant_modes, std::vector<unsigned int>(1, 0));
}
template <int dim>
-Table<2,bool>
+std::pair<Table<2,bool>, std::vector<unsigned int> >
FE_RaviartThomas<dim>::get_constant_modes() const
{
Table<2,bool> constant_modes(dim, this->dofs_per_cell);
for (unsigned int d=0; d<dim; ++d)
for (unsigned int i=0; i<this->dofs_per_cell; ++i)
constant_modes(d,i) = true;
- return constant_modes;
+ std::vector<unsigned int> components;
+ for (unsigned int d=0; d<dim; ++d)
+ components.push_back(d);
+ return std::pair<Table<2,bool>, std::vector<unsigned int> >
+ (constant_modes, components);
}
template <int dim, int spacedim>
-Table<2,bool>
+std::pair<Table<2,bool>, std::vector<unsigned int> >
FESystem<dim,spacedim>::get_constant_modes () const
{
+ // Note that this->n_components() is actually only an estimate of how many
+ // constant modes we will need. There might be more than one such mode
+ // (e.g. FE_Q_DG0).
Table<2,bool> constant_modes(this->n_components(), this->dofs_per_cell);
- unsigned int comp=0;
+ std::vector<unsigned int> components;
for (unsigned int i=0; i<base_elements.size(); ++i)
{
- Table<2,bool> base_table = base_elements[i].first->get_constant_modes();
- const unsigned int n_base_components = base_elements[i].first->n_components();
+ std::pair<Table<2,bool>, std::vector<unsigned int> >
+ base_table = base_elements[i].first->get_constant_modes();
+ AssertDimension(base_table.first.n_rows(), base_table.second.size());
+ const unsigned int element_multiplicity = this->element_multiplicity(i);
+
+ // there might be more than one constant mode for some scalar elements,
+ // so make sure the table actually fits: Create a new table with more
+ // rows
+ const unsigned int comp = components.size();
+ if (constant_modes.n_rows() < comp+base_table.first.n_rows()*element_multiplicity)
+ {
+ Table<2,bool> new_constant_modes(comp+base_table.first.n_rows()*
+ element_multiplicity,
+ constant_modes.n_cols());
+ for (unsigned int r=0; r<comp; ++r)
+ for (unsigned int c=0; c<this->dofs_per_cell; ++c)
+ new_constant_modes(r,c) = constant_modes(r,c);
+ constant_modes.swap(new_constant_modes);
+ }
+
+ // next, fill the constant modes from the individual components as well
+ // as the component numbers corresponding to the constant mode rows
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
{
std::pair<std::pair<unsigned int,unsigned int>, unsigned int> ind
= this->system_to_base_index(k);
if (ind.first.first == i)
- for (unsigned int c=0; c<base_table.n_rows(); ++c)
- constant_modes(comp+ind.first.second*n_base_components+c,k)
- = base_table(c,ind.second);
+ for (unsigned int c=0; c<base_table.first.n_rows(); ++c)
+ constant_modes(comp+ind.first.second*base_table.first.n_rows()+c,k)
+ = base_table.first(c,ind.second);
}
- comp += n_base_components * base_elements[i].second;
+ for (unsigned int r=0; r<element_multiplicity; ++r)
+ for (unsigned int c=0; c<base_table.second.size(); ++c)
+ components.push_back(comp+r*this->base_elements[i].first->n_components()
+ +base_table.second[c]);
}
- AssertDimension(comp, this->n_components());
- return constant_modes;
+ AssertDimension(components.size(), constant_modes.n_rows());
+ return std::pair<Table<2,bool>, std::vector<unsigned int> >(constant_modes,
+ components);
}
cells.push_back (this_cell);
}
- // throw out duplicated vertices from the two meshes
- // and create the triangulation
+ // throw out duplicated vertices from the two meshes, reorder vertices as
+ // necessary and create the triangulation
SubCellData subcell_data;
std::vector<unsigned int> considered_vertices;
- GridTools::delete_duplicated_vertices (vertices, cells, subcell_data, considered_vertices);
+ GridTools::delete_duplicated_vertices (vertices, cells,
+ subcell_data,
+ considered_vertices);
+ GridReordering<dim,spacedim>::reorder_cells (cells);
+
result.clear ();
result.create_triangulation (vertices, cells, subcell_data);
}
// Implementation for 1D only
template <>
void laplace_transformation (Triangulation<1> &,
- const std::map<unsigned int,Point<1> > &)
+ const std::map<unsigned int,Point<1> > &,
+ const Function<1> *)
{
Assert(false, ExcNotImplemented());
}
// Implementation for dimensions except 1
template <int dim>
void laplace_transformation (Triangulation<dim> &tria,
- const std::map<unsigned int,Point<dim> > &new_points)
+ const std::map<unsigned int,Point<dim> > &new_points,
+ const Function<dim> *coefficient)
{
// first provide everything that is
// needed for solving a Laplace
QGauss<dim> quadrature(4);
- MatrixCreator::create_laplace_matrix(mapping_q1, dof_handler, quadrature, S);
+ MatrixCreator::create_laplace_matrix(mapping_q1, dof_handler, quadrature, S,coefficient);
// set up the boundary values for
// the laplace problem
std::vector<std::map<unsigned int,double> > m(dim);
- typename std::map<unsigned int,Point<dim> >::const_iterator map_iter;
typename std::map<unsigned int,Point<dim> >::const_iterator map_end=new_points.end();
// fill these maps using the data
// given by new_points
typename DoFHandler<dim>::cell_iterator cell=dof_handler.begin_active(),
- endc=dof_handler.end();
- typename DoFHandler<dim>::face_iterator face;
+ endc=dof_handler.end();
for (; cell!=endc; ++cell)
{
- if (cell->at_boundary())
- for (unsigned int face_no=0; face_no<GeometryInfo<dim>::faces_per_cell; ++face_no)
- {
- face=cell->face(face_no);
- if (face->at_boundary())
- for (unsigned int vertex_no=0;
- vertex_no<GeometryInfo<dim>::vertices_per_face; ++vertex_no)
- {
- const unsigned int vertex_index=face->vertex_index(vertex_no);
- map_iter=new_points.find(vertex_index);
+ for (unsigned int face_no=0; face_no<GeometryInfo<dim>::faces_per_cell; ++face_no)
+ {
+ const typename DoFHandler<dim>::face_iterator face=cell->face(face_no);
- if (map_iter!=map_end)
- for (unsigned int i=0; i<dim; ++i)
- m[i].insert(std::pair<unsigned int,double> (
- face->vertex_dof_index(vertex_no, 0), map_iter->second(i)));
- }
- }
+ // loop over all vertices of the cell and see if it is listed in the map
+ // given as first argument of the function
+ for (unsigned int vertex_no=0;
+ vertex_no<GeometryInfo<dim>::vertices_per_face; ++vertex_no)
+ {
+ const unsigned int vertex_index=face->vertex_index(vertex_no);
+
+ const typename std::map<unsigned int,Point<dim> >::const_iterator map_iter
+ = new_points.find(vertex_index);
+
+ if (map_iter!=map_end)
+ for (unsigned int i=0; i<dim; ++i)
+ m[i].insert(std::pair<unsigned int,double> (
+ face->vertex_dof_index(vertex_no, 0), map_iter->second(i)));
+ }
+ }
}
// solve the dim problems with
#if deal_II_dimension > 1
template void
laplace_transformation<deal_II_dimension> (Triangulation<deal_II_dimension> &,
- const std::map<unsigned int,Point<deal_II_dimension> > &);
+ const std::map<unsigned int,Point<deal_II_dimension> > &,
+ const Function<deal_II_dimension> *);
#endif
\}
template <int dim>
void
laplace_transform (const std::map<unsigned int,Point<dim> > &new_points,
- Triangulation<dim> &triangulation)
+ Triangulation<dim> &triangulation,
+ const Function<dim> *coefficient)
{
//TODO: Move implementation of this function into the current
// namespace
- GridGenerator::laplace_transformation(triangulation, new_points);
+ GridGenerator::laplace_transformation(triangulation, new_points, coefficient);
}
template
void
laplace_transform (const std::map<unsigned int,Point<deal_II_dimension> > &new_points,
- Triangulation<deal_II_dimension> &triangulation);
+ Triangulation<deal_II_dimension> &triangulation,
+ const Function<deal_II_dimension> *coefficient);
template
Triangulation<deal_II_dimension,deal_II_space_dimension>::DistortedCellList
-template <int dim, int spacedim>
-types::subdomain_id CellAccessor<dim, spacedim>::subdomain_id () const
-{
- Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
- Assert (this->active(), ExcMessage("subdomains only work on active cells!"));
- return this->tria->levels[this->present_level]->subdomain_ids[this->present_index];
-}
-
-
-
template <int dim, int spacedim>
void
CellAccessor<dim, spacedim>::set_subdomain_id (const types::subdomain_id new_subdomain_id) const
+template <int dim, int spacedim>
+void
+CellAccessor<dim, spacedim>::set_parent (const unsigned int parent_index)
+{
+ Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
+ Assert (this->present_level > 0, TriaAccessorExceptions::ExcCellHasNoParent ());
+ this->tria->levels[this->present_level]->parents[this->present_index / 2]
+ = parent_index;
+}
+
+
+
+template <int dim, int spacedim>
+int
+CellAccessor<dim, spacedim>::
+parent_index () const
+{
+ Assert (this->present_level > 0, TriaAccessorExceptions::ExcCellHasNoParent ());
+
+ // the parent of two consecutive cells
+ // is stored only once, since it is
+ // the same
+ return this->tria->levels[this->present_level]->parents[this->present_index / 2];
+}
+
+
template <int dim, int spacedim>
TriaIterator<CellAccessor<dim,spacedim> >
CellAccessor<dim, spacedim>::parent () const
Assert (this->used(), TriaAccessorExceptions::ExcCellNotUsed());
Assert (this->present_level > 0, TriaAccessorExceptions::ExcCellHasNoParent ());
TriaIterator<CellAccessor<dim,spacedim> >
- q (this->tria, this->present_level-1, this->parent_index ());
+ q (this->tria, this->present_level-1, parent_index ());
return q;
}
#include <deal.II/lac/lapack_templates.h>
#include <deal.II/lac/lapack_support.h>
#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/sparse_matrix.h>
#include <deal.II/lac/vector.h>
#include <deal.II/lac/block_vector.h>
using namespace LAPACKSupport;
template <typename number>
-LAPACKFullMatrix<number>::LAPACKFullMatrix(const size_type n)
+LAPACKFullMatrix<number>::LAPACKFullMatrix (const size_type n)
:
TransposeTable<number> (n,n),
- state(matrix)
+ state (matrix)
{}
-
template <typename number>
-LAPACKFullMatrix<number>::LAPACKFullMatrix(
- const size_type m,
- const size_type n)
+LAPACKFullMatrix<number>::LAPACKFullMatrix (const size_type m,
+ const size_type n)
:
- TransposeTable<number> (m,n),
- state(matrix)
+ TransposeTable<number> (m, n),
+ state (matrix)
{}
-
template <typename number>
-LAPACKFullMatrix<number>::LAPACKFullMatrix(const LAPACKFullMatrix &M)
+LAPACKFullMatrix<number>::LAPACKFullMatrix (const LAPACKFullMatrix &M)
:
TransposeTable<number> (M),
- state(matrix)
+ state (matrix)
{}
-
template <typename number>
LAPACKFullMatrix<number> &
LAPACKFullMatrix<number>::operator = (const LAPACKFullMatrix<number> &M)
}
+template <typename number>
+void
+LAPACKFullMatrix<number>::reinit (const size_type n)
+{
+ this->TransposeTable<number>::reinit (n, n);
+ state = LAPACKSupport::matrix;
+}
+
+
+template <typename number>
+void
+LAPACKFullMatrix<number>::reinit (const size_type m,
+ const size_type n)
+{
+ this->TransposeTable<number>::reinit (m, n);
+ state = LAPACKSupport::matrix;
+}
+
template <typename number>
template <typename number2>
}
+template <typename number>
+template <typename number2>
+LAPACKFullMatrix<number> &
+LAPACKFullMatrix<number>::operator = (const SparseMatrix<number2> &M)
+{
+ Assert (this->n_rows() == M.n(), ExcDimensionMismatch(this->n_rows(), M.n()));
+ Assert (this->n_cols() == M.m(), ExcDimensionMismatch(this->n_cols(), M.m()));
+ for (size_type i=0; i<this->n_rows(); ++i)
+ for (size_type j=0; j<this->n_cols(); ++j)
+ (*this)(i,j) = M.el(i,j);
+
+ state = LAPACKSupport::matrix;
+ return *this;
+}
+
template <typename number>
LAPACKFullMatrix<number> &
}
-
template <typename number>
void
LAPACKFullMatrix<number>::vmult (
}
-
template <typename number>
void
LAPACKFullMatrix<number>::Tvmult (
}
-
template <typename number>
void
LAPACKFullMatrix<number>::mmult(LAPACKFullMatrix<number> &C,
}
-
template <typename number>
void
LAPACKFullMatrix<number>::mmult(FullMatrix<number> &C,
}
-
template <typename number>
void
LAPACKFullMatrix<number>::Tmmult(FullMatrix<number> &C,
}
-
template <typename number>
void
LAPACKFullMatrix<number>::mTmult(LAPACKFullMatrix<number> &C,
}
-
template <typename number>
void
LAPACKFullMatrix<number>::TmTmult(LAPACKFullMatrix<number> &C,
}
-
template <typename number>
void
LAPACKFullMatrix<number>::TmTmult(FullMatrix<number> &C,
}
-
template <typename number>
void
LAPACKFullMatrix<number>::compute_lu_factorization()
}
-
template <typename number>
void
LAPACKFullMatrix<number>::compute_svd()
}
-
template <typename number>
void
LAPACKFullMatrix<number>::compute_inverse_svd(const double threshold)
}
-
template <typename number>
void
LAPACKFullMatrix<number>::invert()
}
-
template <typename number>
void
LAPACKFullMatrix<number>::apply_lu_factorization(Vector<number> &v,
}
-
template <typename number>
void
LAPACKFullMatrix<number>::apply_lu_factorization(LAPACKFullMatrix<number> &B,
}
-
template <typename number>
void
-LAPACKFullMatrix<number>::compute_eigenvalues(
- const bool right,
- const bool left)
+LAPACKFullMatrix<number>::compute_eigenvalues(const bool right,
+ const bool left)
{
Assert(state == matrix, ExcState(state));
const int nn = this->n_cols();
template <typename number>
void
-LAPACKFullMatrix<number>::compute_eigenvalues_symmetric(
- const number lower_bound,
- const number upper_bound,
- const number abs_accuracy,
- Vector<number> &eigenvalues,
- FullMatrix<number> &eigenvectors)
+LAPACKFullMatrix<number>::compute_eigenvalues_symmetric(const number lower_bound,
+ const number upper_bound,
+ const number abs_accuracy,
+ Vector<number> &eigenvalues,
+ FullMatrix<number> &eigenvectors)
{
Assert(state == matrix, ExcState(state));
const int nn = (this->n_cols() > 0 ? this->n_cols() : 1);
eigenvalues.reinit(n_eigenpairs);
eigenvectors.reinit(nn, n_eigenpairs, true);
+
for (size_type i=0; i < static_cast<size_type> (n_eigenpairs); ++i)
{
eigenvalues(i) = wr[i];
eigenvalues.reinit(n_eigenpairs);
eigenvectors.resize(n_eigenpairs);
+
for (size_type i=0; i < static_cast<size_type> (n_eigenpairs); ++i)
{
eigenvalues(i) = wr[i];
Tvmult(w, v, true);
}
+
template <typename number>
void
LAPACKFullMatrix<number>::print_formatted (
{
template LAPACKFullMatrix<S1> &
LAPACKFullMatrix<S1>::operator = (const FullMatrix<S2> &M);
+
+ template LAPACKFullMatrix<S1> &
+ LAPACKFullMatrix<S1>::operator = (const SparseMatrix<S2> &M);
}
#else // PETSC_HAVE_MUMPS
Assert (false,
ExcMessage ("Your PETSc installation does not include a copy of "
- "MUMPS package necessary for this solver"));
+ "the MUMPS package necessary for this solver. You will need to configure "
+ "PETSc so that it includes MUMPS, recompile it, and then re-configure "
+ "and recompile deal.II as well."));
// Cast to void to silence compiler warnings
(void) A;
{}
+ PreconditionAMG::~PreconditionAMG()
+ {
+ preconditioner.reset();
+ trilinos_matrix.reset();
+ }
+
void
PreconditionAMG:: initialize (const SparseMatrix &matrix,
}
- template <int dim, template <int, int> class DH, class InputVector, int order, int spacedim>
+ template <class DH, class InputVector, int order>
void
- approximate_derivative_tensor (const Mapping<dim,spacedim> &mapping,
- const DH<dim,spacedim> &dof,
+ approximate_derivative_tensor (const Mapping<DH::dimension,DH::space_dimension> &mapping,
+ const DH &dof,
const InputVector &solution,
- const typename DH<dim,spacedim>::active_cell_iterator &cell,
- Tensor<order,dim> &derivative,
+ const typename DH::active_cell_iterator &cell,
+ Tensor<order,DH::dimension> &derivative,
const unsigned int component)
{
- internal::approximate_cell<typename internal::DerivativeSelector<order,dim>::DerivDescr,dim,DH,InputVector>
+ internal::approximate_cell<typename internal::DerivativeSelector<order,DH::dimension>::DerivDescr>
(mapping,
dof,
solution,
- template <int dim, template <int, int> class DH, class InputVector, int order, int spacedim>
+ template <class DH, class InputVector, int order>
void
- approximate_derivative_tensor (const DH<dim,spacedim> &dof,
+ approximate_derivative_tensor (const DH &dof,
const InputVector &solution,
- const typename DH<dim,spacedim>::active_cell_iterator &cell,
- Tensor<order,dim> &derivative,
+ const typename DH::active_cell_iterator &cell,
+ Tensor<order,DH::dimension> &derivative,
const unsigned int component)
{
// just call the respective function with Q1 mapping
- approximate_derivative_tensor<dim,DH,InputVector,order,spacedim>
- (StaticMappingQ1<dim>::mapping,
+ approximate_derivative_tensor<DH,InputVector,order>
+ (StaticMappingQ1<DH::dimension,DH::space_dimension>::mapping,
dof,
solution,
cell,
template
void
-approximate_derivative_tensor<deal_II_dimension>
+approximate_derivative_tensor
(const Mapping<deal_II_dimension> & mapping,
const DH<deal_II_dimension> &dof_handler,
const VEC &solution,
template
void
-approximate_derivative_tensor<deal_II_dimension>
+approximate_derivative_tensor
(const Mapping<deal_II_dimension> & mapping,
const DH<deal_II_dimension> &dof_handler,
const VEC &solution,
template
void
-approximate_derivative_tensor<deal_II_dimension>
+approximate_derivative_tensor
(const Mapping<deal_II_dimension> & mapping,
const DH<deal_II_dimension> &dof_handler,
const VEC &solution,
template
void
-approximate_derivative_tensor<deal_II_dimension>
+approximate_derivative_tensor
(const DH<deal_II_dimension> &dof_handler,
const VEC &solution,
const DH<deal_II_dimension>::active_cell_iterator &cell,
template
void
-approximate_derivative_tensor<deal_II_dimension>
+approximate_derivative_tensor
(const DH<deal_II_dimension> &dof_handler,
const VEC &solution,
const DH<deal_II_dimension>::active_cell_iterator &cell,
template
void
-approximate_derivative_tensor<deal_II_dimension>
+approximate_derivative_tensor
(const DH<deal_II_dimension> &dof_handler,
const VEC &solution,
const DH<deal_II_dimension>::active_cell_iterator &cell,
std::vector<Vector<typename VECTOR::value_type> > (in_size))
.swap(dof_values_on_cell);
- typename VECTOR::value_type zero_val = typename VECTOR::value_type();
-
Table<2,FullMatrix<double> > interpolation_hp;
std::vector<std::vector<bool> > restriction_is_additive;
// ---------------------------------------------------------------------
// $Id$
//
-// Copyright (C) 1998 - 2013 by the deal.II authors
+// Copyright (C) 1998 - 2014 by the deal.II authors
//
// This file is part of the deal.II library.
//
//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
// where applicable and move to codimension cases above also when applicable
for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
- {
- namespace VectorTools \{
+{
+ namespace VectorTools \{
#if deal_II_dimension == deal_II_space_dimension
#if deal_II_dimension != 1
- template
- void
- compute_no_normal_flux_constraints (const DoFHandler<deal_II_dimension> &dof_handler,
- const unsigned int first_vector_component,
- const std::set<types::boundary_id> &boundary_ids,
- ConstraintMatrix &constraints,
- const Mapping<deal_II_dimension> &mapping);
- template
- void
- compute_no_normal_flux_constraints (const hp::DoFHandler<deal_II_dimension> &dof_handler,
- const unsigned int first_vector_component,
- const std::set<types::boundary_id> &boundary_ids,
- ConstraintMatrix &constraints,
- const Mapping<deal_II_dimension> &mapping);
+ template
+ void
+ compute_nonzero_normal_flux_constraints (const DoFHandler<deal_II_dimension> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ FunctionMap<deal_II_dimension>::type &function_map,
+ ConstraintMatrix &constraints,
+ const Mapping<deal_II_dimension> &mapping);
- template
- void
- compute_normal_flux_constraints (const DoFHandler<deal_II_dimension> &dof_handler,
- const unsigned int first_vector_component,
- const std::set<types::boundary_id> &boundary_ids,
- ConstraintMatrix &constraints,
- const Mapping<deal_II_dimension> &mapping);
- template
- void
- compute_normal_flux_constraints (const hp::DoFHandler<deal_II_dimension> &dof_handler,
- const unsigned int first_vector_component,
- const std::set<types::boundary_id> &boundary_ids,
- ConstraintMatrix &constraints,
- const Mapping<deal_II_dimension> &mapping);
+ template
+ void
+ compute_nonzero_normal_flux_constraints (const hp::DoFHandler<deal_II_dimension> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ FunctionMap<deal_II_dimension>::type &function_map,
+ ConstraintMatrix &constraints,
+ const Mapping<deal_II_dimension> &mapping);
+
+ template
+ void
+ compute_nonzero_tangential_flux_constraints (const DoFHandler<deal_II_dimension> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ FunctionMap<deal_II_dimension>::type &function_map,
+ ConstraintMatrix &constraints,
+ const Mapping<deal_II_dimension> &mapping);
+ template
+ void
+ compute_nonzero_tangential_flux_constraints (const hp::DoFHandler<deal_II_dimension> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ FunctionMap<deal_II_dimension>::type &function_map,
+ ConstraintMatrix &constraints,
+ const Mapping<deal_II_dimension> &mapping);
+
+ template
+ void
+ compute_no_normal_flux_constraints (const DoFHandler<deal_II_dimension> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ ConstraintMatrix &constraints,
+ const Mapping<deal_II_dimension> &mapping);
+
+ template
+ void
+ compute_no_normal_flux_constraints (const hp::DoFHandler<deal_II_dimension> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ ConstraintMatrix &constraints,
+ const Mapping<deal_II_dimension> &mapping);
+
+ template
+ void
+ compute_normal_flux_constraints (const DoFHandler<deal_II_dimension> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ ConstraintMatrix &constraints,
+ const Mapping<deal_II_dimension> &mapping);
+
+ template
+ void
+ compute_normal_flux_constraints (const hp::DoFHandler<deal_II_dimension> &dof_handler,
+ const unsigned int first_vector_component,
+ const std::set<types::boundary_id> &boundary_ids,
+ ConstraintMatrix &constraints,
+ const Mapping<deal_II_dimension> &mapping);
#endif
#endif
- \}
- }
+ \}
+}
\ No newline at end of file
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2012 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+// test for AlignedVector<unsigned int> which tests the basic stuff in the
+// aligned vector
+
+#include "../tests.h"
+#include <iomanip>
+#include <fstream>
+#include <cmath>
+
+#include <deal.II/base/aligned_vector.h>
+
+
+void test ()
+{
+ typedef AlignedVector<unsigned int> VEC;
+ VEC a(4);
+ deallog << "Constructor: ";
+ for (unsigned int i=0; i<a.size(); ++i)
+ deallog << a[i] << " ";
+ deallog << std::endl;
+
+ a[2] = 1;
+ a.push_back (5);
+ a.push_back (42);
+
+ VEC b (a);
+ b.push_back (27);
+ a.insert_back (b.begin(), b.end());
+
+ deallog << "Insertion: ";
+ for (unsigned int i=0; i<a.size(); ++i)
+ deallog << a[i] << " ";
+ deallog << std::endl;
+
+ a.resize(4);
+ deallog << "Shrinking: ";
+ for (unsigned int i=0; i<a.size(); ++i)
+ deallog << a[i] << " ";
+ deallog << std::endl;
+
+ a.reserve(100);
+ deallog << "Reserve: ";
+ for (unsigned int i=0; i<a.size(); ++i)
+ deallog << a[i] << " ";
+ deallog << std::endl;
+
+ a = b;
+ deallog << "Assignment: ";
+ for (unsigned int i=0; i<a.size(); ++i)
+ deallog << a[i] << " ";
+ deallog << std::endl;
+
+ // check setting elements for large vectors
+ a.resize (0);
+ a.resize (100000, 1);
+ deallog << "Check large initialization: ";
+ for (unsigned int i=0; i<100000; ++i)
+ AssertDimension (a[i], 1);
+ deallog << "OK" << std::endl;
+
+ // check resize for large vectors
+ deallog << "Check large resize: ";
+ a.resize (200000, 2);
+ a.resize (400000);
+ for (unsigned int i=0; i<100000; ++i)
+ AssertDimension (a[i], 1);
+ for (unsigned int i=100000; i<200000; ++i)
+ AssertDimension (a[i], 2);
+ for (unsigned int i=200000; i<400000; ++i)
+ AssertDimension (a[i], 0);
+ deallog << "OK" << std::endl;
+}
+
+
+
+
+int main()
+{
+ std::ofstream logfile("output");
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ test ();
+}
--- /dev/null
+
+DEAL::Constructor: 0 0 0 0
+DEAL::Insertion: 0 0 1 0 5 42 0 0 1 0 5 42 27
+DEAL::Shrinking: 0 0 1 0
+DEAL::Reserve: 0 0 1 0
+DEAL::Assignment: 0 0 1 0 5 42 27
+DEAL::Check large initialization: OK
+DEAL::Check large resize: OK
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2012 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+// test for AlignedVector<bool>
+
+#include "../tests.h"
+#include <iomanip>
+#include <fstream>
+#include <cmath>
+
+#include <deal.II/base/aligned_vector.h>
+
+
+void test ()
+{
+ typedef AlignedVector<bool> VEC;
+ VEC a(4);
+ deallog << "Constructor: ";
+ for (unsigned int i=0; i<a.size(); ++i)
+ deallog << a[i] << " ";
+ deallog << std::endl;
+
+ a[2] = true;
+ a.push_back (true);
+ a.push_back (false);
+
+ VEC b (a);
+ b.push_back (true);
+ a.insert_back (b.begin(), b.end());
+
+ deallog << "Insertion: ";
+ for (unsigned int i=0; i<a.size(); ++i)
+ deallog << a[i] << " ";
+ deallog << std::endl;
+
+ a.resize(4);
+ deallog << "Shrinking: ";
+ for (unsigned int i=0; i<a.size(); ++i)
+ deallog << a[i] << " ";
+ deallog << std::endl;
+
+ a.reserve(100);
+ deallog << "Reserve: ";
+ for (unsigned int i=0; i<a.size(); ++i)
+ deallog << a[i] << " ";
+ deallog << std::endl;
+
+ a = b;
+ deallog << "Assignment: ";
+ for (unsigned int i=0; i<a.size(); ++i)
+ deallog << a[i] << " ";
+ deallog << std::endl;
+
+ // check setting elements for large vectors
+ a.resize (0);
+ a.resize (100000, true);
+ deallog << "Check large initialization: ";
+ for (unsigned int i=0; i<100000; ++i)
+ AssertDimension (a[i], true);
+ deallog << "OK" << std::endl;
+
+ // check resize for large vectors
+ deallog << "Check large resize: ";
+ a.resize (200000, false);
+ a.resize (400000, true);
+ for (unsigned int i=0; i<100000; ++i)
+ AssertDimension (a[i], true);
+ for (unsigned int i=100000; i<200000; ++i)
+ AssertDimension (a[i], false);
+ for (unsigned int i=200000; i<400000; ++i)
+ AssertDimension (a[i], true);
+ deallog << "OK" << std::endl;
+
+ deallog << "Memory consumption: " << a.memory_consumption()
+ << " for a.size()=" << a.size() << std::endl;
+}
+
+
+
+
+int main()
+{
+ std::ofstream logfile("output");
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ test ();
+}
--- /dev/null
+
+DEAL::Constructor: 0 0 0 0
+DEAL::Insertion: 0 0 1 0 1 0 0 0 1 0 1 0 1
+DEAL::Shrinking: 0 0 1 0
+DEAL::Reserve: 0 0 1 0
+DEAL::Assignment: 0 0 1 0 1 0 1
+DEAL::Check large initialization: OK
+DEAL::Check large resize: OK
+DEAL::Memory consumption: 400024 for a.size()=400000
// ---------------------------------------------------------------------
-// test for AlignedVector<unsigned int> which tests the basic stuff in the
-// aligned vector
+// test for arithmetic operations on VectorizedArray
#include "../tests.h"
#include <iomanip>
-#include <fstream>
-#include <cmath>
+#include <limits>
-#include <deal.II/base/aligned_vector.h>
+#include <deal.II/base/vectorization.h>
+template <typename Number>
void test ()
{
- typedef AlignedVector<unsigned int> VEC;
- VEC a(4);
- deallog << "Constructor: ";
- for (unsigned int i=0; i<a.size(); ++i)
- deallog << a[i] << " ";
- deallog << std::endl;
-
- a[2] = 1;
- a.push_back (5);
- a.push_back (42);
-
- VEC b (a);
- b.push_back (27);
- a.insert_back (b.begin(), b.end());
-
- deallog << "Insertion: ";
- for (unsigned int i=0; i<a.size(); ++i)
- deallog << a[i] << " ";
- deallog << std::endl;
-
- a.resize(4);
- deallog << "Shrinking: ";
- for (unsigned int i=0; i<a.size(); ++i)
- deallog << a[i] << " ";
- deallog << std::endl;
-
- a.reserve(100);
- deallog << "Reserve: ";
- for (unsigned int i=0; i<a.size(); ++i)
- deallog << a[i] << " ";
- deallog << std::endl;
-
- a = b;
- deallog << "Assignment: ";
- for (unsigned int i=0; i<a.size(); ++i)
- deallog << a[i] << " ";
- deallog << std::endl;
-
- // check setting elements for large vectors
- a.resize (0);
- a.resize (100000, 1);
- deallog << "Check large initialization: ";
- for (unsigned int i=0; i<100000; ++i)
- AssertDimension (a[i], 1);
- deallog << "OK" << std::endl;
-
- // check resize for large vectors
- deallog << "Check large resize: ";
- a.resize (200000, 2);
- a.resize (400000);
- for (unsigned int i=0; i<100000; ++i)
- AssertDimension (a[i], 1);
- for (unsigned int i=100000; i<200000; ++i)
- AssertDimension (a[i], 2);
- for (unsigned int i=200000; i<400000; ++i)
- AssertDimension (a[i], 0);
+ // since the number of array elements is system dependent, it is not a good
+ // idea to print them to an output file. Instead, check the values manually
+ VectorizedArray<Number> a, b, c;
+ const unsigned int n_vectors = VectorizedArray<Number>::n_array_elements;
+ a = Number(2.);
+ b = Number(-1.);
+ for (unsigned int i=0; i<n_vectors; ++i)
+ c[i] = i;
+
+ deallog << "Addition: ";
+ VectorizedArray<Number> d = a + b;
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (d[i] == 1, ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Subtraction: ";
+ VectorizedArray<Number> e = d - b;
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (e[i] == a[i], ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Multiplication: ";
+ d = a * c;
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (d[i] == a[i] * c[i], ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Division: ";
+ e = d / a;
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (e[i] == c[i], ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Multiplication scalar: ";
+ a = 2. * a;
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (a[i] == 4., ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Division scalar left: ";
+ d = 1. / a;
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (d[i] == 0.25, ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Division scalar right: ";
+ e = d / 0.25;
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (e[i] == 1, ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Unary operator -: ";
+ d = -c;
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (d[i] == -(Number)i, ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Unary operator +: ";
+ d = c;
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (d[i] == i, ExcInternalError());
+
+
+ deallog << "OK" << std::endl
+ << "Square root: ";
+ d = std::sqrt(c);
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (std::fabs(d[i]-std::sqrt(Number(i)))<
+ std::numeric_limits<Number>::epsilon(),
+ ExcInternalError());
+
+ deallog << "OK" << std::endl
+ << "Absolute value: ";
+ d = -c;
+ d = std::abs(d);
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (d[i] == Number(i), ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Maximum value: ";
+ d = std::max(a, c);
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (d[i] == std::max(a[i], c[i]), ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Minimum value: ";
+ d = std::min(0.5 * a + b, c);
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (d[i] == std::min(Number(0.5 * a[i] + b[i]), c[i]), ExcInternalError());
+
+ deallog << "OK" << std::endl
+ << "Sine: ";
+ e = std::sin(b);
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (std::fabs(e[i]-std::sin(b[i])) <
+ 10.*std::numeric_limits<Number>::epsilon(),
+ ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Cosine: ";
+ e = std::cos(c);
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (std::fabs(e[i]-std::cos(c[i])) <
+ 10.*std::numeric_limits<Number>::epsilon(),
+ ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Tangent: ";
+ d = std::tan(e);
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (std::fabs(d[i]-std::tan(e[i])) <
+ 10.*std::numeric_limits<Number>::epsilon(),
+ ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Exponential: ";
+ d = std::exp(c-a);
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (std::fabs(d[i]-std::exp(c[i]-a[i])) <
+ 10.*std::numeric_limits<Number>::epsilon(),
+ ExcInternalError());
+ deallog << "OK" << std::endl
+ << "Logarithm: ";
+ e = std::log(d);
+ for (unsigned int i=0; i<n_vectors; ++i)
+ Assert (std::fabs(e[i]-(c[i]-a[i])) <
+ 10.*std::numeric_limits<Number>::epsilon(),
+ ExcInternalError());
deallog << "OK" << std::endl;
}
deallog.depth_console(0);
deallog.threshold_double(1.e-10);
- test ();
+ deallog.push("double");
+ test<double> ();
+ deallog.pop();
+ deallog.push("float");
+ test<float> ();
+ deallog.pop();
+
+ // test long double: in that case, the default
+ // path of VectorizedArray is taken no matter
+ // what was done for double or float
+ deallog.push("long double");
+ test<float> ();
+ deallog.pop();
}
-DEAL::Constructor: 0 0 0 0
-DEAL::Insertion: 0 0 1 0 5 42 0 0 1 0 5 42 27
-DEAL::Shrinking: 0 0 1 0
-DEAL::Reserve: 0 0 1 0
-DEAL::Assignment: 0 0 1 0 5 42 27
-DEAL::Check large initialization: OK
-DEAL::Check large resize: OK
+DEAL:double::Addition: OK
+DEAL:double::Subtraction: OK
+DEAL:double::Multiplication: OK
+DEAL:double::Division: OK
+DEAL:double::Multiplication scalar: OK
+DEAL:double::Division scalar left: OK
+DEAL:double::Division scalar right: OK
+DEAL:double::Unary operator -: OK
+DEAL:double::Unary operator +: OK
+DEAL:double::Square root: OK
+DEAL:double::Absolute value: OK
+DEAL:double::Maximum value: OK
+DEAL:double::Minimum value: OK
+DEAL:double::Sine: OK
+DEAL:double::Cosine: OK
+DEAL:double::Tangent: OK
+DEAL:double::Exponential: OK
+DEAL:double::Logarithm: OK
+DEAL:float::Addition: OK
+DEAL:float::Subtraction: OK
+DEAL:float::Multiplication: OK
+DEAL:float::Division: OK
+DEAL:float::Multiplication scalar: OK
+DEAL:float::Division scalar left: OK
+DEAL:float::Division scalar right: OK
+DEAL:float::Unary operator -: OK
+DEAL:float::Unary operator +: OK
+DEAL:float::Square root: OK
+DEAL:float::Absolute value: OK
+DEAL:float::Maximum value: OK
+DEAL:float::Minimum value: OK
+DEAL:float::Sine: OK
+DEAL:float::Cosine: OK
+DEAL:float::Tangent: OK
+DEAL:float::Exponential: OK
+DEAL:float::Logarithm: OK
+DEAL:long double::Addition: OK
+DEAL:long double::Subtraction: OK
+DEAL:long double::Multiplication: OK
+DEAL:long double::Division: OK
+DEAL:long double::Multiplication scalar: OK
+DEAL:long double::Division scalar left: OK
+DEAL:long double::Division scalar right: OK
+DEAL:long double::Unary operator -: OK
+DEAL:long double::Unary operator +: OK
+DEAL:long double::Square root: OK
+DEAL:long double::Absolute value: OK
+DEAL:long double::Maximum value: OK
+DEAL:long double::Minimum value: OK
+DEAL:long double::Sine: OK
+DEAL:long double::Cosine: OK
+DEAL:long double::Tangent: OK
+DEAL:long double::Exponential: OK
+DEAL:long double::Logarithm: OK
+++ /dev/null
-// ---------------------------------------------------------------------
-// $Id$
-//
-// Copyright (C) 2012 - 2013 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.
-//
-// ---------------------------------------------------------------------
-
-
-// test for arithmetic operations on VectorizedArray
-
-#include "../tests.h"
-#include <iomanip>
-#include <limits>
-
-#include <deal.II/base/vectorization.h>
-
-
-template <typename Number>
-void test ()
-{
- // since the number of array elements is system dependent, it is not a good
- // idea to print them to an output file. Instead, check the values manually
- VectorizedArray<Number> a, b, c;
- const unsigned int n_vectors = VectorizedArray<Number>::n_array_elements;
- a = Number(2.);
- b = Number(-1.);
- for (unsigned int i=0; i<n_vectors; ++i)
- c[i] = i;
-
- deallog << "Addition: ";
- VectorizedArray<Number> d = a + b;
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (d[i] == 1, ExcInternalError());
- deallog << "OK" << std::endl
- << "Subtraction: ";
- VectorizedArray<Number> e = d - b;
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (e[i] == a[i], ExcInternalError());
- deallog << "OK" << std::endl
- << "Multiplication: ";
- d = a * c;
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (d[i] == a[i] * c[i], ExcInternalError());
- deallog << "OK" << std::endl
- << "Division: ";
- e = d / a;
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (e[i] == c[i], ExcInternalError());
- deallog << "OK" << std::endl
- << "Multiplication scalar: ";
- a = 2. * a;
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (a[i] == 4., ExcInternalError());
- deallog << "OK" << std::endl
- << "Division scalar left: ";
- d = 1. / a;
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (d[i] == 0.25, ExcInternalError());
- deallog << "OK" << std::endl
- << "Division scalar right: ";
- e = d / 0.25;
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (e[i] == 1, ExcInternalError());
- deallog << "OK" << std::endl
- << "Unary operator -: ";
- d = -c;
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (d[i] == -(Number)i, ExcInternalError());
- deallog << "OK" << std::endl
- << "Unary operator +: ";
- d = c;
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (d[i] == i, ExcInternalError());
-
-
- deallog << "OK" << std::endl
- << "Square root: ";
- d = std::sqrt(c);
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (std::fabs(d[i]-std::sqrt(Number(i)))<
- std::numeric_limits<Number>::epsilon(),
- ExcInternalError());
-
- deallog << "OK" << std::endl
- << "Absolute value: ";
- d = -c;
- d = std::abs(d);
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (d[i] == Number(i), ExcInternalError());
- deallog << "OK" << std::endl
- << "Maximum value: ";
- d = std::max(a, c);
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (d[i] == std::max(a[i], c[i]), ExcInternalError());
- deallog << "OK" << std::endl
- << "Minimum value: ";
- d = std::min(0.5 * a + b, c);
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (d[i] == std::min(Number(0.5 * a[i] + b[i]), c[i]), ExcInternalError());
-
- deallog << "OK" << std::endl
- << "Sine: ";
- e = std::sin(b);
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (std::fabs(e[i]-std::sin(b[i])) <
- 10.*std::numeric_limits<Number>::epsilon(),
- ExcInternalError());
- deallog << "OK" << std::endl
- << "Cosine: ";
- e = std::cos(c);
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (std::fabs(e[i]-std::cos(c[i])) <
- 10.*std::numeric_limits<Number>::epsilon(),
- ExcInternalError());
- deallog << "OK" << std::endl
- << "Tangent: ";
- d = std::tan(e);
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (std::fabs(d[i]-std::tan(e[i])) <
- 10.*std::numeric_limits<Number>::epsilon(),
- ExcInternalError());
- deallog << "OK" << std::endl
- << "Exponential: ";
- d = std::exp(c-a);
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (std::fabs(d[i]-std::exp(c[i]-a[i])) <
- 10.*std::numeric_limits<Number>::epsilon(),
- ExcInternalError());
- deallog << "OK" << std::endl
- << "Logarithm: ";
- e = std::log(d);
- for (unsigned int i=0; i<n_vectors; ++i)
- Assert (std::fabs(e[i]-(c[i]-a[i])) <
- 10.*std::numeric_limits<Number>::epsilon(),
- ExcInternalError());
- deallog << "OK" << std::endl;
-}
-
-
-
-
-int main()
-{
- std::ofstream logfile("output");
- deallog.attach(logfile);
- deallog.depth_console(0);
- deallog.threshold_double(1.e-10);
-
- deallog.push("double");
- test<double> ();
- deallog.pop();
- deallog.push("float");
- test<float> ();
- deallog.pop();
-
- // test long double: in that case, the default
- // path of VectorizedArray is taken no matter
- // what was done for double or float
- deallog.push("long double");
- test<float> ();
- deallog.pop();
-}
+++ /dev/null
-
-DEAL:double::Addition: OK
-DEAL:double::Subtraction: OK
-DEAL:double::Multiplication: OK
-DEAL:double::Division: OK
-DEAL:double::Multiplication scalar: OK
-DEAL:double::Division scalar left: OK
-DEAL:double::Division scalar right: OK
-DEAL:double::Unary operator -: OK
-DEAL:double::Unary operator +: OK
-DEAL:double::Square root: OK
-DEAL:double::Absolute value: OK
-DEAL:double::Maximum value: OK
-DEAL:double::Minimum value: OK
-DEAL:double::Sine: OK
-DEAL:double::Cosine: OK
-DEAL:double::Tangent: OK
-DEAL:double::Exponential: OK
-DEAL:double::Logarithm: OK
-DEAL:float::Addition: OK
-DEAL:float::Subtraction: OK
-DEAL:float::Multiplication: OK
-DEAL:float::Division: OK
-DEAL:float::Multiplication scalar: OK
-DEAL:float::Division scalar left: OK
-DEAL:float::Division scalar right: OK
-DEAL:float::Unary operator -: OK
-DEAL:float::Unary operator +: OK
-DEAL:float::Square root: OK
-DEAL:float::Absolute value: OK
-DEAL:float::Maximum value: OK
-DEAL:float::Minimum value: OK
-DEAL:float::Sine: OK
-DEAL:float::Cosine: OK
-DEAL:float::Tangent: OK
-DEAL:float::Exponential: OK
-DEAL:float::Logarithm: OK
-DEAL:long double::Addition: OK
-DEAL:long double::Subtraction: OK
-DEAL:long double::Multiplication: OK
-DEAL:long double::Division: OK
-DEAL:long double::Multiplication scalar: OK
-DEAL:long double::Division scalar left: OK
-DEAL:long double::Division scalar right: OK
-DEAL:long double::Unary operator -: OK
-DEAL:long double::Unary operator +: OK
-DEAL:long double::Square root: OK
-DEAL:long double::Absolute value: OK
-DEAL:long double::Maximum value: OK
-DEAL:long double::Minimum value: OK
-DEAL:long double::Sine: OK
-DEAL:long double::Cosine: OK
-DEAL:long double::Tangent: OK
-DEAL:long double::Exponential: OK
-DEAL:long double::Logarithm: OK
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+
+// find_active_cell_around_point goes into an endless loop, reported
+// on the mailing list by Giorgos Kourakos (2014-04-10).
+
+#include "../tests.h"
+
+#include <stdio.h>
+#include <cstdlib>
+
+#include <base/quadrature_lib.h>
+#include <fe/mapping_q.h>
+#include <base/function.h>
+#include <base/logstream.h>
+#include <grid/tria.h>
+#include <grid/grid_generator.h>
+#include <grid/tria_accessor.h>
+#include <grid/tria_iterator.h>
+#include <grid/grid_tools.h>
+#include <dofs/dof_handler.h>
+#include <fe/fe_q.h>
+#include <fe/fe_values.h>
+#include <grid/grid_in.h>
+
+
+#include <iostream>
+#include <fstream>
+#include <list>
+#include <string>
+#include <sstream>
+#include <time.h>
+
+using namespace dealii;
+
+void test()
+{
+ Triangulation<2> triangulation;
+
+ Point<2> left_bottom(0,-270);
+ Point<2> right_top(5000,30);
+ std::vector<unsigned int> n_cells;
+ n_cells.push_back(10);
+ n_cells.push_back(2);
+
+
+ GridGenerator::subdivided_hyper_rectangle(triangulation,
+ n_cells,
+ left_bottom,
+ right_top,
+ true);
+
+ typename Triangulation<2>::active_cell_iterator
+ cell = triangulation.begin_active(),
+ endc = triangulation.end();
+ for (; cell!=endc; ++cell){
+ Point<2> cell_center = cell->center();
+ if (abs(cell_center(0) - 1500) < 550){
+ cell->set_refine_flag ();
+ }
+ }
+
+ triangulation.execute_coarsening_and_refinement ();
+
+ Point<2> test_point(250, 195);
+ std::cout << "Checking Point " << test_point << std::endl;
+ try
+ {
+ std::pair<typename Triangulation<2>::active_cell_iterator, Point<2> > current_cell =
+ GridTools::find_active_cell_around_point(MappingQ1<2>(), triangulation, test_point);
+
+ deallog << "cell: index = " << current_cell.first->index()
+ << " level = " << current_cell.first->level() << std::endl;
+ deallog << " pos: " << current_cell.second << std::endl;
+ }
+ catch (GridTools::ExcPointNotFound<2> &e)
+ {
+ deallog << "outside" << std::endl;
+ }
+ deallog << "done" << std::endl;
+}
+
+int main (int argc, char **argv)
+{
+ initlog();
+
+ test();
+
+ return 0;
+}
--- /dev/null
+
+DEAL::outside
+DEAL::done
// ---------------------------------------------------------------------
// $Id$
//
-// Copyright (C) 2010 - 2013 by the deal.II authors
+// Copyright (C) 2010 - 2014 by the deal.II authors
//
// This file is part of the deal.II library.
//
virtual void vector_value_list (const std::vector<Point<dim> > &points,
std::vector<Vector<double> > &values) const;
private:
- const double PI = dealii::numbers::PI;
- const double bc_constant = 0.1;
+ static const double bc_constant;
};
+template <int dim> const double ExactSolution<dim>::bc_constant = 0.1;
+
+
// RIGHT HAND SIDE CLASS
template <int dim>
class RightHandSide : public Function<dim>
virtual void vector_value_list (const std::vector<Point<dim> > &points,
std::vector<Vector<double> > &value_list) const;
private:
- const double PI = dealii::numbers::PI;
- const double bc_constant = 0.1;
+ static const double bc_constant;
};
+template <int dim> const double RightHandSide<dim>::bc_constant = 0.1;
+
// DEFINE EXACT SOLUTION MEMBERS
template<int dim>
double ExactSolution<dim>::value(const Point<dim> &p,
double val = -1000;
switch(component) {
- case 0: val = cos(PI*p(0))*sin(PI*p(1)) + bc_constant;
- case 1: val = -sin(PI*p(0))*cos(PI*p(1)) + bc_constant;
+ case 0: val = cos(numbers::PI*p(0))*sin(numbers::PI*p(1)) + bc_constant;
+ case 1: val = -sin(numbers::PI*p(0))*cos(numbers::PI*p(1)) + bc_constant;
}
return val;
Vector<double> &result) const
{
Assert(dim >= 2, ExcNotImplemented());
- result(0) = cos(PI*p(0))*sin(PI*p(1)) + bc_constant;
- result(1) = -sin(PI*p(0))*cos(PI*p(1)) + bc_constant;
+ result(0) = cos(numbers::PI*p(0))*sin(numbers::PI*p(1)) + bc_constant;
+ result(1) = -sin(numbers::PI*p(0))*cos(numbers::PI*p(1)) + bc_constant;
}
template <int dim>
switch(component)
{
case 0:
- values[i] = cos(PI*p(0))*sin(PI*p(1)) + bc_constant;
+ values[i] = cos(numbers::PI*p(0))*sin(numbers::PI*p(1)) + bc_constant;
case 1:
- values[i] = -sin(PI*p(0))*cos(PI*p(1)) + bc_constant;
+ values[i] = -sin(numbers::PI*p(0))*cos(numbers::PI*p(1)) + bc_constant;
}
}
}
for (unsigned int i=0; i<points.size(); ++i)
{
const Point<dim> &p = points[i];
- values[i](0) = cos(PI*p(0))*sin(PI*p(1)) + bc_constant;
- values[i](1) = -sin(PI*p(0))*cos(PI*p(1)) + bc_constant;
+ values[i](0) = cos(numbers::PI*p(0))*sin(numbers::PI*p(1)) + bc_constant;
+ values[i](1) = -sin(numbers::PI*p(0))*cos(numbers::PI*p(1)) + bc_constant;
}
}
// END EXACT SOLUTION MEMBERS
Assert (dim >= 2, ExcNotImplemented());
//2D solution
- values(0) = (2*PI*PI + 1)*cos(PI*p(0))*sin(PI*p(1)) + bc_constant;
- values(1) = -(2*PI*PI + 1)*sin(PI*p(0))*cos(PI*p(1)) + bc_constant;
+ values(0) = (2*numbers::PI*numbers::PI + 1)*cos(numbers::PI*p(0))*sin(numbers::PI*p(1)) + bc_constant;
+ values(1) = -(2*numbers::PI*numbers::PI + 1)*sin(numbers::PI*p(0))*cos(numbers::PI*p(1)) + bc_constant;
}
template <int dim>
void RightHandSide<dim>::vector_value_list (const std::vector<Point<dim> > &points,
// ---------------------------------------------------------------------
// $Id$
//
-// Copyright (C) 1998 - 2013 by the deal.II authors
+// Copyright (C) 1998 - 2014 by the deal.II authors
//
// This file is part of the deal.II library.
//
// ---------------------------------------------------------------------
+// test the deformation of a circular annulus to a domain where the central
+// circle is displaced
#include "../tests.h"
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2014 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.
+//
+// ---------------------------------------------------------------------
+
+
+// Verify that GridTools::laplace_transform can deal with interior
+// nodes being pinned to a new location as well. The test itself
+// doesn't make much sense since it leads to a few inverted cells, but
+// it allows for easy visual inspection that the desired result
+// happens.
+//
+// (Testcase adapted from one by Denis Davydov.)
+
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/grid/tria.h>
+#include <deal.II/grid/tria_accessor.h>
+#include <deal.II/grid/tria_boundary_lib.h>
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/grid_out.h>
+#include <deal.II/grid/grid_tools.h>
+#include <deal.II/fe/mapping_q.h>
+
+#include <fstream>
+#include <iomanip>
+
+
+int main ()
+{
+ const int dim = 2;
+
+ Triangulation< dim > tria;
+ std::map< unsigned int, Point< dim > > new_points;
+ const unsigned int N = 16;
+ GridGenerator::subdivided_hyper_cube (tria, N, -5, 5);
+
+ // find the vertex at the origin
+ Triangulation<dim>::active_cell_iterator
+ cell = GridTools::find_active_cell_around_point (tria,Point<dim>());
+
+ unsigned int best_vertex = cell->vertex_index(0);//vertex number on local triangulation
+ Point<dim> best_pos = cell->vertex(0);
+ double best_dist = Point<dim>().distance(best_pos);
+
+ for (unsigned int vertex_no = 1; vertex_no < GeometryInfo<dim>::vertices_per_cell; vertex_no++) {
+ const double dist = Point<dim>().distance(cell->vertex(vertex_no));
+ if (dist < best_dist)
+ {
+ best_pos = cell->vertex(vertex_no);
+ best_vertex = cell->vertex_index(vertex_no);
+ best_dist = dist;
+ }
+ }
+ // move the point at the origin by 2 units to the right
+ new_points[best_vertex] = Point<dim>();
+ new_points[best_vertex][0] += 2;
+
+ // now pin all of the points on the boundary
+ cell = tria.begin_active();
+ Triangulation<dim>::active_cell_iterator endc = tria.end();
+
+ for ( ; cell != endc; ++cell)
+ if (cell->at_boundary() == true)
+ for (unsigned int face = 0; face < GeometryInfo<dim>::faces_per_cell;++face)
+ if (cell->face(face)->at_boundary() == true)
+ for (unsigned int v=0; v < GeometryInfo<dim>::vertices_per_face;++v) {
+ unsigned int vertex_number = cell->face(face)->vertex_index(v);
+ new_points[vertex_number] = cell->face(face)->vertex(v);
+ }
+
+ // then compute new point locations and output the result
+ GridTools::laplace_transform (new_points,tria);
+ std::ofstream out ("output");
+ GridOut grid_out;
+ grid_out.write_eps (tria, out);
+}
--- /dev/null
+%!PS-Adobe-2.0 EPSF-1.2
+%%Title: deal.II Output
+%%Creator: the deal.II library
+
+%%BoundingBox: 0 0 301 301
+/m {moveto} bind def
+/x {lineto stroke} bind def
+/b {0 0 0 setrgbcolor} def
+/r {1 0 0 setrgbcolor} def
+%%EndProlog
+
+0.5 setlinewidth
+b 0 1.46283e-11 m 1.27098e-11 18.75 x
+b 18.75 5.32907e-14 m 19.1265 18.75 x
+b 0 1.46283e-11 m 18.75 5.32907e-14 x
+b 1.27098e-11 18.75 m 19.1265 18.75 x
+b 18.75 5.32907e-14 m 19.1265 18.75 x
+b 37.5 5.32907e-14 m 38.2524 18.75 x
+b 18.75 5.32907e-14 m 37.5 5.32907e-14 x
+b 19.1265 18.75 m 38.2524 18.75 x
+b 37.5 5.32907e-14 m 38.2524 18.75 x
+b 56.25 0 m 57.3735 18.75 x
+b 37.5 5.32907e-14 m 56.25 0 x
+b 38.2524 18.75 m 57.3735 18.75 x
+b 56.25 0 m 57.3735 18.75 x
+b 75 0 m 76.479 18.75 x
+b 56.25 0 m 75 0 x
+b 57.3735 18.75 m 76.479 18.75 x
+b 75 0 m 76.479 18.75 x
+b 93.75 5.32907e-14 m 95.5495 18.75 x
+b 75 0 m 93.75 5.32907e-14 x
+b 76.479 18.75 m 95.5495 18.75 x
+b 93.75 5.32907e-14 m 95.5495 18.75 x
+b 112.5 5.32907e-14 m 114.559 18.75 x
+b 93.75 5.32907e-14 m 112.5 5.32907e-14 x
+b 95.5495 18.75 m 114.559 18.75 x
+b 112.5 5.32907e-14 m 114.559 18.75 x
+b 131.25 5.32907e-14 m 133.479 18.75 x
+b 112.5 5.32907e-14 m 131.25 5.32907e-14 x
+b 114.559 18.75 m 133.479 18.75 x
+b 131.25 5.32907e-14 m 133.479 18.75 x
+b 150 5.32907e-14 m 152.289 18.75 x
+b 131.25 5.32907e-14 m 150 5.32907e-14 x
+b 133.479 18.75 m 152.289 18.75 x
+b 150 5.32907e-14 m 152.289 18.75 x
+b 168.75 5.32907e-14 m 170.979 18.75 x
+b 150 5.32907e-14 m 168.75 5.32907e-14 x
+b 152.289 18.75 m 170.979 18.75 x
+b 168.75 5.32907e-14 m 170.979 18.75 x
+b 187.5 5.32907e-14 m 189.559 18.75 x
+b 168.75 5.32907e-14 m 187.5 5.32907e-14 x
+b 170.979 18.75 m 189.559 18.75 x
+b 187.5 5.32907e-14 m 189.559 18.75 x
+b 206.25 5.32907e-14 m 208.049 18.75 x
+b 187.5 5.32907e-14 m 206.25 5.32907e-14 x
+b 189.559 18.75 m 208.049 18.75 x
+b 206.25 5.32907e-14 m 208.049 18.75 x
+b 225 5.32907e-14 m 226.479 18.75 x
+b 206.25 5.32907e-14 m 225 5.32907e-14 x
+b 208.049 18.75 m 226.479 18.75 x
+b 225 5.32907e-14 m 226.479 18.75 x
+b 243.75 5.32907e-14 m 244.874 18.75 x
+b 225 5.32907e-14 m 243.75 5.32907e-14 x
+b 226.479 18.75 m 244.874 18.75 x
+b 243.75 5.32907e-14 m 244.874 18.75 x
+b 262.5 5.32907e-14 m 263.252 18.75 x
+b 243.75 5.32907e-14 m 262.5 5.32907e-14 x
+b 244.874 18.75 m 263.252 18.75 x
+b 262.5 5.32907e-14 m 263.252 18.75 x
+b 281.25 5.32907e-14 m 281.627 18.75 x
+b 262.5 5.32907e-14 m 281.25 5.32907e-14 x
+b 263.252 18.75 m 281.627 18.75 x
+b 281.25 5.32907e-14 m 281.627 18.75 x
+b 300 1.46283e-11 m 300 18.75 x
+b 281.25 5.32907e-14 m 300 1.46283e-11 x
+b 281.627 18.75 m 300 18.75 x
+b 1.27098e-11 18.75 m 1.27098e-11 37.5 x
+b 19.1265 18.75 m 19.5024 37.5 x
+b 1.27098e-11 18.75 m 19.1265 18.75 x
+b 1.27098e-11 37.5 m 19.5024 37.5 x
+b 19.1265 18.75 m 19.5024 37.5 x
+b 38.2524 18.75 m 39.0073 37.5 x
+b 19.1265 18.75 m 38.2524 18.75 x
+b 19.5024 37.5 m 39.0073 37.5 x
+b 38.2524 18.75 m 39.0073 37.5 x
+b 57.3735 18.75 m 58.5096 37.5 x
+b 38.2524 18.75 m 57.3735 18.75 x
+b 39.0073 37.5 m 58.5096 37.5 x
+b 57.3735 18.75 m 58.5096 37.5 x
+b 76.479 18.75 m 77.99 37.5 x
+b 57.3735 18.75 m 76.479 18.75 x
+b 58.5096 37.5 m 77.99 37.5 x
+b 76.479 18.75 m 77.99 37.5 x
+b 95.5495 18.75 m 97.409 37.5 x
+b 76.479 18.75 m 95.5495 18.75 x
+b 77.99 37.5 m 97.409 37.5 x
+b 95.5495 18.75 m 97.409 37.5 x
+b 114.559 18.75 m 116.709 37.5 x
+b 95.5495 18.75 m 114.559 18.75 x
+b 97.409 37.5 m 116.709 37.5 x
+b 114.559 18.75 m 116.709 37.5 x
+b 133.479 18.75 m 135.824 37.5 x
+b 114.559 18.75 m 133.479 18.75 x
+b 116.709 37.5 m 135.824 37.5 x
+b 133.479 18.75 m 135.824 37.5 x
+b 152.289 18.75 m 154.703 37.5 x
+b 133.479 18.75 m 152.289 18.75 x
+b 135.824 37.5 m 154.703 37.5 x
+b 152.289 18.75 m 154.703 37.5 x
+b 170.979 18.75 m 173.324 37.5 x
+b 152.289 18.75 m 170.979 18.75 x
+b 154.703 37.5 m 173.324 37.5 x
+b 170.979 18.75 m 173.324 37.5 x
+b 189.559 18.75 m 191.709 37.5 x
+b 170.979 18.75 m 189.559 18.75 x
+b 173.324 37.5 m 191.709 37.5 x
+b 189.559 18.75 m 191.709 37.5 x
+b 208.049 18.75 m 209.909 37.5 x
+b 189.559 18.75 m 208.049 18.75 x
+b 191.709 37.5 m 209.909 37.5 x
+b 208.049 18.75 m 209.909 37.5 x
+b 226.479 18.75 m 227.99 37.5 x
+b 208.049 18.75 m 226.479 18.75 x
+b 209.909 37.5 m 227.99 37.5 x
+b 226.479 18.75 m 227.99 37.5 x
+b 244.874 18.75 m 246.01 37.5 x
+b 226.479 18.75 m 244.874 18.75 x
+b 227.99 37.5 m 246.01 37.5 x
+b 244.874 18.75 m 246.01 37.5 x
+b 263.252 18.75 m 264.007 37.5 x
+b 244.874 18.75 m 263.252 18.75 x
+b 246.01 37.5 m 264.007 37.5 x
+b 263.252 18.75 m 264.007 37.5 x
+b 281.627 18.75 m 282.002 37.5 x
+b 263.252 18.75 m 281.627 18.75 x
+b 264.007 37.5 m 282.002 37.5 x
+b 281.627 18.75 m 282.002 37.5 x
+b 300 18.75 m 300 37.5 x
+b 281.627 18.75 m 300 18.75 x
+b 282.002 37.5 m 300 37.5 x
+b 1.27098e-11 37.5 m 1.27365e-11 56.25 x
+b 19.5024 37.5 m 19.8735 56.25 x
+b 1.27098e-11 37.5 m 19.5024 37.5 x
+b 1.27365e-11 56.25 m 19.8735 56.25 x
+b 19.5024 37.5 m 19.8735 56.25 x
+b 39.0073 37.5 m 39.7596 56.25 x
+b 19.5024 37.5 m 39.0073 37.5 x
+b 19.8735 56.25 m 39.7596 56.25 x
+b 39.0073 37.5 m 39.7596 56.25 x
+b 58.5096 37.5 m 59.6605 56.25 x
+b 39.0073 37.5 m 58.5096 37.5 x
+b 39.7596 56.25 m 59.6605 56.25 x
+b 58.5096 37.5 m 59.6605 56.25 x
+b 77.99 37.5 m 79.5548 56.25 x
+b 58.5096 37.5 m 77.99 37.5 x
+b 59.6605 56.25 m 79.5548 56.25 x
+b 77.99 37.5 m 79.5548 56.25 x
+b 97.409 37.5 m 99.384 56.25 x
+b 77.99 37.5 m 97.409 37.5 x
+b 79.5548 56.25 m 99.384 56.25 x
+b 97.409 37.5 m 99.384 56.25 x
+b 116.709 37.5 m 119.047 56.25 x
+b 97.409 37.5 m 116.709 37.5 x
+b 99.384 56.25 m 119.047 56.25 x
+b 116.709 37.5 m 119.047 56.25 x
+b 135.824 37.5 m 138.419 56.25 x
+b 116.709 37.5 m 135.824 37.5 x
+b 119.047 56.25 m 138.419 56.25 x
+b 135.824 37.5 m 138.419 56.25 x
+b 154.703 37.5 m 157.39 56.25 x
+b 135.824 37.5 m 154.703 37.5 x
+b 138.419 56.25 m 157.39 56.25 x
+b 154.703 37.5 m 157.39 56.25 x
+b 173.324 37.5 m 175.919 56.25 x
+b 154.703 37.5 m 173.324 37.5 x
+b 157.39 56.25 m 175.919 56.25 x
+b 173.324 37.5 m 175.919 56.25 x
+b 191.709 37.5 m 194.047 56.25 x
+b 173.324 37.5 m 191.709 37.5 x
+b 175.919 56.25 m 194.047 56.25 x
+b 191.709 37.5 m 194.047 56.25 x
+b 209.909 37.5 m 211.884 56.25 x
+b 191.709 37.5 m 209.909 37.5 x
+b 194.047 56.25 m 211.884 56.25 x
+b 209.909 37.5 m 211.884 56.25 x
+b 227.99 37.5 m 229.555 56.25 x
+b 209.909 37.5 m 227.99 37.5 x
+b 211.884 56.25 m 229.555 56.25 x
+b 227.99 37.5 m 229.555 56.25 x
+b 246.01 37.5 m 247.161 56.25 x
+b 227.99 37.5 m 246.01 37.5 x
+b 229.555 56.25 m 247.161 56.25 x
+b 246.01 37.5 m 247.161 56.25 x
+b 264.007 37.5 m 264.76 56.25 x
+b 246.01 37.5 m 264.007 37.5 x
+b 247.161 56.25 m 264.76 56.25 x
+b 264.007 37.5 m 264.76 56.25 x
+b 282.002 37.5 m 282.374 56.25 x
+b 264.007 37.5 m 282.002 37.5 x
+b 264.76 56.25 m 282.374 56.25 x
+b 282.002 37.5 m 282.374 56.25 x
+b 300 37.5 m 300 56.25 x
+b 282.002 37.5 m 300 37.5 x
+b 282.374 56.25 m 300 56.25 x
+b 1.27365e-11 56.25 m 1.27098e-11 75 x
+b 19.8735 56.25 m 20.229 75 x
+b 1.27365e-11 56.25 m 19.8735 56.25 x
+b 1.27098e-11 75 m 20.229 75 x
+b 19.8735 56.25 m 20.229 75 x
+b 39.7596 56.25 m 40.49 75 x
+b 19.8735 56.25 m 39.7596 56.25 x
+b 20.229 75 m 40.49 75 x
+b 39.7596 56.25 m 40.49 75 x
+b 59.6605 56.25 m 60.8048 75 x
+b 39.7596 56.25 m 59.6605 56.25 x
+b 40.49 75 m 60.8048 75 x
+b 59.6605 56.25 m 60.8048 75 x
+b 79.5548 56.25 m 81.168 75 x
+b 59.6605 56.25 m 79.5548 56.25 x
+b 60.8048 75 m 81.168 75 x
+b 79.5548 56.25 m 81.168 75 x
+b 99.384 56.25 m 101.512 75 x
+b 79.5548 56.25 m 99.384 56.25 x
+b 81.168 75 m 101.512 75 x
+b 99.384 56.25 m 101.512 75 x
+b 119.047 56.25 m 121.682 75 x
+b 99.384 56.25 m 119.047 56.25 x
+b 101.512 75 m 121.682 75 x
+b 119.047 56.25 m 121.682 75 x
+b 138.419 56.25 m 141.438 75 x
+b 119.047 56.25 m 138.419 56.25 x
+b 121.682 75 m 141.438 75 x
+b 138.419 56.25 m 141.438 75 x
+b 157.39 56.25 m 160.556 75 x
+b 138.419 56.25 m 157.39 56.25 x
+b 141.438 75 m 160.556 75 x
+b 157.39 56.25 m 160.556 75 x
+b 175.919 56.25 m 178.938 75 x
+b 157.39 56.25 m 175.919 56.25 x
+b 160.556 75 m 178.938 75 x
+b 175.919 56.25 m 178.938 75 x
+b 194.047 56.25 m 196.682 75 x
+b 175.919 56.25 m 194.047 56.25 x
+b 178.938 75 m 196.682 75 x
+b 194.047 56.25 m 196.682 75 x
+b 211.884 56.25 m 214.012 75 x
+b 194.047 56.25 m 211.884 56.25 x
+b 196.682 75 m 214.012 75 x
+b 211.884 56.25 m 214.012 75 x
+b 229.555 56.25 m 231.168 75 x
+b 211.884 56.25 m 229.555 56.25 x
+b 214.012 75 m 231.168 75 x
+b 229.555 56.25 m 231.168 75 x
+b 247.161 56.25 m 248.305 75 x
+b 229.555 56.25 m 247.161 56.25 x
+b 231.168 75 m 248.305 75 x
+b 247.161 56.25 m 248.305 75 x
+b 264.76 56.25 m 265.49 75 x
+b 247.161 56.25 m 264.76 56.25 x
+b 248.305 75 m 265.49 75 x
+b 264.76 56.25 m 265.49 75 x
+b 282.374 56.25 m 282.729 75 x
+b 264.76 56.25 m 282.374 56.25 x
+b 265.49 75 m 282.729 75 x
+b 282.374 56.25 m 282.729 75 x
+b 300 56.25 m 300 75 x
+b 282.374 56.25 m 300 56.25 x
+b 282.729 75 m 300 75 x
+b 1.27098e-11 75 m 1.27098e-11 93.75 x
+b 20.229 75 m 20.5495 93.75 x
+b 1.27098e-11 75 m 20.229 75 x
+b 1.27098e-11 93.75 m 20.5495 93.75 x
+b 20.229 75 m 20.5495 93.75 x
+b 40.49 75 m 41.159 93.75 x
+b 20.229 75 m 40.49 75 x
+b 20.5495 93.75 m 41.159 93.75 x
+b 40.49 75 m 41.159 93.75 x
+b 60.8048 75 m 61.884 93.75 x
+b 40.49 75 m 60.8048 75 x
+b 41.159 93.75 m 61.884 93.75 x
+b 60.8048 75 m 61.884 93.75 x
+b 81.168 75 m 82.7625 93.75 x
+b 60.8048 75 m 81.168 75 x
+b 61.884 93.75 m 82.7625 93.75 x
+b 81.168 75 m 82.7625 93.75 x
+b 101.512 75 m 103.781 93.75 x
+b 81.168 75 m 101.512 75 x
+b 82.7625 93.75 m 103.781 93.75 x
+b 101.512 75 m 103.781 93.75 x
+b 121.682 75 m 124.72 93.75 x
+b 101.512 75 m 121.682 75 x
+b 103.781 93.75 m 124.72 93.75 x
+b 121.682 75 m 124.72 93.75 x
+b 141.438 75 m 145.155 93.75 x
+b 121.682 75 m 141.438 75 x
+b 124.72 93.75 m 145.155 93.75 x
+b 141.438 75 m 145.155 93.75 x
+b 160.556 75 m 164.534 93.75 x
+b 141.438 75 m 160.556 75 x
+b 145.155 93.75 m 164.534 93.75 x
+b 160.556 75 m 164.534 93.75 x
+b 178.938 75 m 182.655 93.75 x
+b 160.556 75 m 178.938 75 x
+b 164.534 93.75 m 182.655 93.75 x
+b 178.938 75 m 182.655 93.75 x
+b 196.682 75 m 199.72 93.75 x
+b 178.938 75 m 196.682 75 x
+b 182.655 93.75 m 199.72 93.75 x
+b 196.682 75 m 199.72 93.75 x
+b 214.012 75 m 216.281 93.75 x
+b 196.682 75 m 214.012 75 x
+b 199.72 93.75 m 216.281 93.75 x
+b 214.012 75 m 216.281 93.75 x
+b 231.168 75 m 232.762 93.75 x
+b 214.012 75 m 231.168 75 x
+b 216.281 93.75 m 232.762 93.75 x
+b 231.168 75 m 232.762 93.75 x
+b 248.305 75 m 249.384 93.75 x
+b 231.168 75 m 248.305 75 x
+b 232.762 93.75 m 249.384 93.75 x
+b 248.305 75 m 249.384 93.75 x
+b 265.49 75 m 266.159 93.75 x
+b 248.305 75 m 265.49 75 x
+b 249.384 93.75 m 266.159 93.75 x
+b 265.49 75 m 266.159 93.75 x
+b 282.729 75 m 283.049 93.75 x
+b 265.49 75 m 282.729 75 x
+b 266.159 93.75 m 283.049 93.75 x
+b 282.729 75 m 283.049 93.75 x
+b 300 75 m 300 93.75 x
+b 282.729 75 m 300 75 x
+b 283.049 93.75 m 300 93.75 x
+b 1.27098e-11 93.75 m 1.27098e-11 112.5 x
+b 20.5495 93.75 m 20.8088 112.5 x
+b 1.27098e-11 93.75 m 20.5495 93.75 x
+b 1.27098e-11 112.5 m 20.8088 112.5 x
+b 20.5495 93.75 m 20.8088 112.5 x
+b 41.159 93.75 m 41.7088 112.5 x
+b 20.5495 93.75 m 41.159 93.75 x
+b 20.8088 112.5 m 41.7088 112.5 x
+b 41.159 93.75 m 41.7088 112.5 x
+b 61.884 93.75 m 62.7971 112.5 x
+b 41.159 93.75 m 61.884 93.75 x
+b 41.7088 112.5 m 62.7971 112.5 x
+b 61.884 93.75 m 62.7971 112.5 x
+b 82.7625 93.75 m 84.182 112.5 x
+b 61.884 93.75 m 82.7625 93.75 x
+b 62.7971 112.5 m 84.182 112.5 x
+b 82.7625 93.75 m 84.182 112.5 x
+b 103.781 93.75 m 105.97 112.5 x
+b 82.7625 93.75 m 103.781 93.75 x
+b 84.182 112.5 m 105.97 112.5 x
+b 103.781 93.75 m 105.97 112.5 x
+b 124.72 93.75 m 128.249 112.5 x
+b 103.781 93.75 m 124.72 93.75 x
+b 105.97 112.5 m 128.249 112.5 x
+b 124.72 93.75 m 128.249 112.5 x
+b 145.155 93.75 m 149.977 112.5 x
+b 124.72 93.75 m 145.155 93.75 x
+b 128.249 112.5 m 149.977 112.5 x
+b 145.155 93.75 m 149.977 112.5 x
+b 164.534 93.75 m 170.081 112.5 x
+b 145.155 93.75 m 164.534 93.75 x
+b 149.977 112.5 m 170.081 112.5 x
+b 164.534 93.75 m 170.081 112.5 x
+b 182.655 93.75 m 187.477 112.5 x
+b 164.534 93.75 m 182.655 93.75 x
+b 170.081 112.5 m 187.477 112.5 x
+b 182.655 93.75 m 187.477 112.5 x
+b 199.72 93.75 m 203.249 112.5 x
+b 182.655 93.75 m 199.72 93.75 x
+b 187.477 112.5 m 203.249 112.5 x
+b 199.72 93.75 m 203.249 112.5 x
+b 216.281 93.75 m 218.47 112.5 x
+b 199.72 93.75 m 216.281 93.75 x
+b 203.249 112.5 m 218.47 112.5 x
+b 216.281 93.75 m 218.47 112.5 x
+b 232.762 93.75 m 234.182 112.5 x
+b 216.281 93.75 m 232.762 93.75 x
+b 218.47 112.5 m 234.182 112.5 x
+b 232.762 93.75 m 234.182 112.5 x
+b 249.384 93.75 m 250.297 112.5 x
+b 232.762 93.75 m 249.384 93.75 x
+b 234.182 112.5 m 250.297 112.5 x
+b 249.384 93.75 m 250.297 112.5 x
+b 266.159 93.75 m 266.709 112.5 x
+b 249.384 93.75 m 266.159 93.75 x
+b 250.297 112.5 m 266.709 112.5 x
+b 266.159 93.75 m 266.709 112.5 x
+b 283.049 93.75 m 283.309 112.5 x
+b 266.159 93.75 m 283.049 93.75 x
+b 266.709 112.5 m 283.309 112.5 x
+b 283.049 93.75 m 283.309 112.5 x
+b 300 93.75 m 300 112.5 x
+b 283.049 93.75 m 300 93.75 x
+b 283.309 112.5 m 300 112.5 x
+b 1.27098e-11 112.5 m 1.27098e-11 131.25 x
+b 20.8088 112.5 m 20.9792 131.25 x
+b 1.27098e-11 112.5 m 20.8088 112.5 x
+b 1.27098e-11 131.25 m 20.9792 131.25 x
+b 20.8088 112.5 m 20.9792 131.25 x
+b 41.7088 112.5 m 42.0743 131.25 x
+b 20.8088 112.5 m 41.7088 112.5 x
+b 20.9792 131.25 m 42.0743 131.25 x
+b 41.7088 112.5 m 42.0743 131.25 x
+b 62.7971 112.5 m 63.4186 131.25 x
+b 41.7088 112.5 m 62.7971 112.5 x
+b 42.0743 131.25 m 63.4186 131.25 x
+b 62.7971 112.5 m 63.4186 131.25 x
+b 84.182 112.5 m 85.1879 131.25 x
+b 62.7971 112.5 m 84.182 112.5 x
+b 63.4186 131.25 m 85.1879 131.25 x
+b 84.182 112.5 m 85.1879 131.25 x
+b 105.97 112.5 m 107.655 131.25 x
+b 84.182 112.5 m 105.97 112.5 x
+b 85.1879 131.25 m 107.655 131.25 x
+b 105.97 112.5 m 107.655 131.25 x
+b 128.249 112.5 m 131.227 131.25 x
+b 105.97 112.5 m 128.249 112.5 x
+b 107.655 131.25 m 131.227 131.25 x
+b 128.249 112.5 m 131.227 131.25 x
+b 149.977 112.5 m 157.506 131.25 x
+b 128.249 112.5 m 149.977 112.5 x
+b 131.227 131.25 m 157.506 131.25 x
+b 149.977 112.5 m 157.506 131.25 x
+b 170.081 112.5 m 178.341 131.25 x
+b 149.977 112.5 m 170.081 112.5 x
+b 157.506 131.25 m 178.341 131.25 x
+b 170.081 112.5 m 178.341 131.25 x
+b 187.477 112.5 m 195.006 131.25 x
+b 170.081 112.5 m 187.477 112.5 x
+b 178.341 131.25 m 195.006 131.25 x
+b 187.477 112.5 m 195.006 131.25 x
+b 203.249 112.5 m 206.227 131.25 x
+b 187.477 112.5 m 203.249 112.5 x
+b 195.006 131.25 m 206.227 131.25 x
+b 203.249 112.5 m 206.227 131.25 x
+b 218.47 112.5 m 220.155 131.25 x
+b 203.249 112.5 m 218.47 112.5 x
+b 206.227 131.25 m 220.155 131.25 x
+b 218.47 112.5 m 220.155 131.25 x
+b 234.182 112.5 m 235.188 131.25 x
+b 218.47 112.5 m 234.182 112.5 x
+b 220.155 131.25 m 235.188 131.25 x
+b 234.182 112.5 m 235.188 131.25 x
+b 250.297 112.5 m 250.919 131.25 x
+b 234.182 112.5 m 250.297 112.5 x
+b 235.188 131.25 m 250.919 131.25 x
+b 250.297 112.5 m 250.919 131.25 x
+b 266.709 112.5 m 267.074 131.25 x
+b 250.297 112.5 m 266.709 112.5 x
+b 250.919 131.25 m 267.074 131.25 x
+b 266.709 112.5 m 267.074 131.25 x
+b 283.309 112.5 m 283.479 131.25 x
+b 266.709 112.5 m 283.309 112.5 x
+b 267.074 131.25 m 283.479 131.25 x
+b 283.309 112.5 m 283.479 131.25 x
+b 300 112.5 m 300 131.25 x
+b 283.309 112.5 m 300 112.5 x
+b 283.479 131.25 m 300 131.25 x
+b 1.27098e-11 131.25 m 1.27098e-11 150 x
+b 20.9792 131.25 m 21.0387 150 x
+b 1.27098e-11 131.25 m 20.9792 131.25 x
+b 1.27098e-11 150 m 21.0387 150 x
+b 20.9792 131.25 m 21.0387 150 x
+b 42.0743 131.25 m 42.2029 150 x
+b 20.9792 131.25 m 42.0743 131.25 x
+b 21.0387 150 m 42.2029 150 x
+b 42.0743 131.25 m 42.2029 150 x
+b 63.4186 131.25 m 63.64 150 x
+b 42.0743 131.25 m 63.4186 131.25 x
+b 42.2029 150 m 63.64 150 x
+b 63.4186 131.25 m 63.64 150 x
+b 85.1879 131.25 m 85.5558 150 x
+b 63.4186 131.25 m 85.1879 131.25 x
+b 63.64 150 m 85.5558 150 x
+b 85.1879 131.25 m 85.5558 150 x
+b 107.655 131.25 m 108.284 150 x
+b 85.1879 131.25 m 107.655 131.25 x
+b 85.5558 150 m 108.284 150 x
+b 107.655 131.25 m 108.284 150 x
+b 131.227 131.25 m 132.581 150 x
+b 107.655 131.25 m 131.227 131.25 x
+b 108.284 150 m 132.581 150 x
+b 131.227 131.25 m 132.581 150 x
+b 157.506 131.25 m 159.591 150 x
+b 131.227 131.25 m 157.506 131.25 x
+b 132.581 150 m 159.591 150 x
+b 157.506 131.25 m 159.591 150 x
+b 178.341 131.25 m 210 150 x
+b 157.506 131.25 m 178.341 131.25 x
+b 159.591 150 m 210 150 x
+b 178.341 131.25 m 210 150 x
+b 195.006 131.25 m 197.091 150 x
+b 178.341 131.25 m 195.006 131.25 x
+b 210 150 m 197.091 150 x
+b 195.006 131.25 m 197.091 150 x
+b 206.227 131.25 m 207.581 150 x
+b 195.006 131.25 m 206.227 131.25 x
+b 197.091 150 m 207.581 150 x
+b 206.227 131.25 m 207.581 150 x
+b 220.155 131.25 m 220.784 150 x
+b 206.227 131.25 m 220.155 131.25 x
+b 207.581 150 m 220.784 150 x
+b 220.155 131.25 m 220.784 150 x
+b 235.188 131.25 m 235.556 150 x
+b 220.155 131.25 m 235.188 131.25 x
+b 220.784 150 m 235.556 150 x
+b 235.188 131.25 m 235.556 150 x
+b 250.919 131.25 m 251.14 150 x
+b 235.188 131.25 m 250.919 131.25 x
+b 235.556 150 m 251.14 150 x
+b 250.919 131.25 m 251.14 150 x
+b 267.074 131.25 m 267.203 150 x
+b 250.919 131.25 m 267.074 131.25 x
+b 251.14 150 m 267.203 150 x
+b 267.074 131.25 m 267.203 150 x
+b 283.479 131.25 m 283.539 150 x
+b 267.074 131.25 m 283.479 131.25 x
+b 267.203 150 m 283.539 150 x
+b 283.479 131.25 m 283.539 150 x
+b 300 131.25 m 300 150 x
+b 283.479 131.25 m 300 131.25 x
+b 283.539 150 m 300 150 x
+b 1.27098e-11 150 m 1.27098e-11 168.75 x
+b 21.0387 150 m 20.9792 168.75 x
+b 1.27098e-11 150 m 21.0387 150 x
+b 1.27098e-11 168.75 m 20.9792 168.75 x
+b 21.0387 150 m 20.9792 168.75 x
+b 42.2029 150 m 42.0743 168.75 x
+b 21.0387 150 m 42.2029 150 x
+b 20.9792 168.75 m 42.0743 168.75 x
+b 42.2029 150 m 42.0743 168.75 x
+b 63.64 150 m 63.4186 168.75 x
+b 42.2029 150 m 63.64 150 x
+b 42.0743 168.75 m 63.4186 168.75 x
+b 63.64 150 m 63.4186 168.75 x
+b 85.5558 150 m 85.1879 168.75 x
+b 63.64 150 m 85.5558 150 x
+b 63.4186 168.75 m 85.1879 168.75 x
+b 85.5558 150 m 85.1879 168.75 x
+b 108.284 150 m 107.655 168.75 x
+b 85.5558 150 m 108.284 150 x
+b 85.1879 168.75 m 107.655 168.75 x
+b 108.284 150 m 107.655 168.75 x
+b 132.581 150 m 131.227 168.75 x
+b 108.284 150 m 132.581 150 x
+b 107.655 168.75 m 131.227 168.75 x
+b 132.581 150 m 131.227 168.75 x
+b 159.591 150 m 157.506 168.75 x
+b 132.581 150 m 159.591 150 x
+b 131.227 168.75 m 157.506 168.75 x
+b 159.591 150 m 157.506 168.75 x
+b 210 150 m 178.341 168.75 x
+b 159.591 150 m 210 150 x
+b 157.506 168.75 m 178.341 168.75 x
+b 210 150 m 178.341 168.75 x
+b 197.091 150 m 195.006 168.75 x
+b 210 150 m 197.091 150 x
+b 178.341 168.75 m 195.006 168.75 x
+b 197.091 150 m 195.006 168.75 x
+b 207.581 150 m 206.227 168.75 x
+b 197.091 150 m 207.581 150 x
+b 195.006 168.75 m 206.227 168.75 x
+b 207.581 150 m 206.227 168.75 x
+b 220.784 150 m 220.155 168.75 x
+b 207.581 150 m 220.784 150 x
+b 206.227 168.75 m 220.155 168.75 x
+b 220.784 150 m 220.155 168.75 x
+b 235.556 150 m 235.188 168.75 x
+b 220.784 150 m 235.556 150 x
+b 220.155 168.75 m 235.188 168.75 x
+b 235.556 150 m 235.188 168.75 x
+b 251.14 150 m 250.919 168.75 x
+b 235.556 150 m 251.14 150 x
+b 235.188 168.75 m 250.919 168.75 x
+b 251.14 150 m 250.919 168.75 x
+b 267.203 150 m 267.074 168.75 x
+b 251.14 150 m 267.203 150 x
+b 250.919 168.75 m 267.074 168.75 x
+b 267.203 150 m 267.074 168.75 x
+b 283.539 150 m 283.479 168.75 x
+b 267.203 150 m 283.539 150 x
+b 267.074 168.75 m 283.479 168.75 x
+b 283.539 150 m 283.479 168.75 x
+b 300 150 m 300 168.75 x
+b 283.539 150 m 300 150 x
+b 283.479 168.75 m 300 168.75 x
+b 1.27098e-11 168.75 m 1.27365e-11 187.5 x
+b 20.9792 168.75 m 20.8088 187.5 x
+b 1.27098e-11 168.75 m 20.9792 168.75 x
+b 1.27365e-11 187.5 m 20.8088 187.5 x
+b 20.9792 168.75 m 20.8088 187.5 x
+b 42.0743 168.75 m 41.7088 187.5 x
+b 20.9792 168.75 m 42.0743 168.75 x
+b 20.8088 187.5 m 41.7088 187.5 x
+b 42.0743 168.75 m 41.7088 187.5 x
+b 63.4186 168.75 m 62.7971 187.5 x
+b 42.0743 168.75 m 63.4186 168.75 x
+b 41.7088 187.5 m 62.7971 187.5 x
+b 63.4186 168.75 m 62.7971 187.5 x
+b 85.1879 168.75 m 84.182 187.5 x
+b 63.4186 168.75 m 85.1879 168.75 x
+b 62.7971 187.5 m 84.182 187.5 x
+b 85.1879 168.75 m 84.182 187.5 x
+b 107.655 168.75 m 105.97 187.5 x
+b 85.1879 168.75 m 107.655 168.75 x
+b 84.182 187.5 m 105.97 187.5 x
+b 107.655 168.75 m 105.97 187.5 x
+b 131.227 168.75 m 128.249 187.5 x
+b 107.655 168.75 m 131.227 168.75 x
+b 105.97 187.5 m 128.249 187.5 x
+b 131.227 168.75 m 128.249 187.5 x
+b 157.506 168.75 m 149.977 187.5 x
+b 131.227 168.75 m 157.506 168.75 x
+b 128.249 187.5 m 149.977 187.5 x
+b 157.506 168.75 m 149.977 187.5 x
+b 178.341 168.75 m 170.081 187.5 x
+b 157.506 168.75 m 178.341 168.75 x
+b 149.977 187.5 m 170.081 187.5 x
+b 178.341 168.75 m 170.081 187.5 x
+b 195.006 168.75 m 187.477 187.5 x
+b 178.341 168.75 m 195.006 168.75 x
+b 170.081 187.5 m 187.477 187.5 x
+b 195.006 168.75 m 187.477 187.5 x
+b 206.227 168.75 m 203.249 187.5 x
+b 195.006 168.75 m 206.227 168.75 x
+b 187.477 187.5 m 203.249 187.5 x
+b 206.227 168.75 m 203.249 187.5 x
+b 220.155 168.75 m 218.47 187.5 x
+b 206.227 168.75 m 220.155 168.75 x
+b 203.249 187.5 m 218.47 187.5 x
+b 220.155 168.75 m 218.47 187.5 x
+b 235.188 168.75 m 234.182 187.5 x
+b 220.155 168.75 m 235.188 168.75 x
+b 218.47 187.5 m 234.182 187.5 x
+b 235.188 168.75 m 234.182 187.5 x
+b 250.919 168.75 m 250.297 187.5 x
+b 235.188 168.75 m 250.919 168.75 x
+b 234.182 187.5 m 250.297 187.5 x
+b 250.919 168.75 m 250.297 187.5 x
+b 267.074 168.75 m 266.709 187.5 x
+b 250.919 168.75 m 267.074 168.75 x
+b 250.297 187.5 m 266.709 187.5 x
+b 267.074 168.75 m 266.709 187.5 x
+b 283.479 168.75 m 283.309 187.5 x
+b 267.074 168.75 m 283.479 168.75 x
+b 266.709 187.5 m 283.309 187.5 x
+b 283.479 168.75 m 283.309 187.5 x
+b 300 168.75 m 300 187.5 x
+b 283.479 168.75 m 300 168.75 x
+b 283.309 187.5 m 300 187.5 x
+b 1.27365e-11 187.5 m 1.27098e-11 206.25 x
+b 20.8088 187.5 m 20.5495 206.25 x
+b 1.27365e-11 187.5 m 20.8088 187.5 x
+b 1.27098e-11 206.25 m 20.5495 206.25 x
+b 20.8088 187.5 m 20.5495 206.25 x
+b 41.7088 187.5 m 41.159 206.25 x
+b 20.8088 187.5 m 41.7088 187.5 x
+b 20.5495 206.25 m 41.159 206.25 x
+b 41.7088 187.5 m 41.159 206.25 x
+b 62.7971 187.5 m 61.884 206.25 x
+b 41.7088 187.5 m 62.7971 187.5 x
+b 41.159 206.25 m 61.884 206.25 x
+b 62.7971 187.5 m 61.884 206.25 x
+b 84.182 187.5 m 82.7625 206.25 x
+b 62.7971 187.5 m 84.182 187.5 x
+b 61.884 206.25 m 82.7625 206.25 x
+b 84.182 187.5 m 82.7625 206.25 x
+b 105.97 187.5 m 103.781 206.25 x
+b 84.182 187.5 m 105.97 187.5 x
+b 82.7625 206.25 m 103.781 206.25 x
+b 105.97 187.5 m 103.781 206.25 x
+b 128.249 187.5 m 124.72 206.25 x
+b 105.97 187.5 m 128.249 187.5 x
+b 103.781 206.25 m 124.72 206.25 x
+b 128.249 187.5 m 124.72 206.25 x
+b 149.977 187.5 m 145.155 206.25 x
+b 128.249 187.5 m 149.977 187.5 x
+b 124.72 206.25 m 145.155 206.25 x
+b 149.977 187.5 m 145.155 206.25 x
+b 170.081 187.5 m 164.534 206.25 x
+b 149.977 187.5 m 170.081 187.5 x
+b 145.155 206.25 m 164.534 206.25 x
+b 170.081 187.5 m 164.534 206.25 x
+b 187.477 187.5 m 182.655 206.25 x
+b 170.081 187.5 m 187.477 187.5 x
+b 164.534 206.25 m 182.655 206.25 x
+b 187.477 187.5 m 182.655 206.25 x
+b 203.249 187.5 m 199.72 206.25 x
+b 187.477 187.5 m 203.249 187.5 x
+b 182.655 206.25 m 199.72 206.25 x
+b 203.249 187.5 m 199.72 206.25 x
+b 218.47 187.5 m 216.281 206.25 x
+b 203.249 187.5 m 218.47 187.5 x
+b 199.72 206.25 m 216.281 206.25 x
+b 218.47 187.5 m 216.281 206.25 x
+b 234.182 187.5 m 232.762 206.25 x
+b 218.47 187.5 m 234.182 187.5 x
+b 216.281 206.25 m 232.762 206.25 x
+b 234.182 187.5 m 232.762 206.25 x
+b 250.297 187.5 m 249.384 206.25 x
+b 234.182 187.5 m 250.297 187.5 x
+b 232.762 206.25 m 249.384 206.25 x
+b 250.297 187.5 m 249.384 206.25 x
+b 266.709 187.5 m 266.159 206.25 x
+b 250.297 187.5 m 266.709 187.5 x
+b 249.384 206.25 m 266.159 206.25 x
+b 266.709 187.5 m 266.159 206.25 x
+b 283.309 187.5 m 283.049 206.25 x
+b 266.709 187.5 m 283.309 187.5 x
+b 266.159 206.25 m 283.049 206.25 x
+b 283.309 187.5 m 283.049 206.25 x
+b 300 187.5 m 300 206.25 x
+b 283.309 187.5 m 300 187.5 x
+b 283.049 206.25 m 300 206.25 x
+b 1.27098e-11 206.25 m 1.27365e-11 225 x
+b 20.5495 206.25 m 20.229 225 x
+b 1.27098e-11 206.25 m 20.5495 206.25 x
+b 1.27365e-11 225 m 20.229 225 x
+b 20.5495 206.25 m 20.229 225 x
+b 41.159 206.25 m 40.49 225 x
+b 20.5495 206.25 m 41.159 206.25 x
+b 20.229 225 m 40.49 225 x
+b 41.159 206.25 m 40.49 225 x
+b 61.884 206.25 m 60.8048 225 x
+b 41.159 206.25 m 61.884 206.25 x
+b 40.49 225 m 60.8048 225 x
+b 61.884 206.25 m 60.8048 225 x
+b 82.7625 206.25 m 81.168 225 x
+b 61.884 206.25 m 82.7625 206.25 x
+b 60.8048 225 m 81.168 225 x
+b 82.7625 206.25 m 81.168 225 x
+b 103.781 206.25 m 101.512 225 x
+b 82.7625 206.25 m 103.781 206.25 x
+b 81.168 225 m 101.512 225 x
+b 103.781 206.25 m 101.512 225 x
+b 124.72 206.25 m 121.682 225 x
+b 103.781 206.25 m 124.72 206.25 x
+b 101.512 225 m 121.682 225 x
+b 124.72 206.25 m 121.682 225 x
+b 145.155 206.25 m 141.438 225 x
+b 124.72 206.25 m 145.155 206.25 x
+b 121.682 225 m 141.438 225 x
+b 145.155 206.25 m 141.438 225 x
+b 164.534 206.25 m 160.556 225 x
+b 145.155 206.25 m 164.534 206.25 x
+b 141.438 225 m 160.556 225 x
+b 164.534 206.25 m 160.556 225 x
+b 182.655 206.25 m 178.938 225 x
+b 164.534 206.25 m 182.655 206.25 x
+b 160.556 225 m 178.938 225 x
+b 182.655 206.25 m 178.938 225 x
+b 199.72 206.25 m 196.682 225 x
+b 182.655 206.25 m 199.72 206.25 x
+b 178.938 225 m 196.682 225 x
+b 199.72 206.25 m 196.682 225 x
+b 216.281 206.25 m 214.012 225 x
+b 199.72 206.25 m 216.281 206.25 x
+b 196.682 225 m 214.012 225 x
+b 216.281 206.25 m 214.012 225 x
+b 232.762 206.25 m 231.168 225 x
+b 216.281 206.25 m 232.762 206.25 x
+b 214.012 225 m 231.168 225 x
+b 232.762 206.25 m 231.168 225 x
+b 249.384 206.25 m 248.305 225 x
+b 232.762 206.25 m 249.384 206.25 x
+b 231.168 225 m 248.305 225 x
+b 249.384 206.25 m 248.305 225 x
+b 266.159 206.25 m 265.49 225 x
+b 249.384 206.25 m 266.159 206.25 x
+b 248.305 225 m 265.49 225 x
+b 266.159 206.25 m 265.49 225 x
+b 283.049 206.25 m 282.729 225 x
+b 266.159 206.25 m 283.049 206.25 x
+b 265.49 225 m 282.729 225 x
+b 283.049 206.25 m 282.729 225 x
+b 300 206.25 m 300 225 x
+b 283.049 206.25 m 300 206.25 x
+b 282.729 225 m 300 225 x
+b 1.27365e-11 225 m 1.27098e-11 243.75 x
+b 20.229 225 m 19.8735 243.75 x
+b 1.27365e-11 225 m 20.229 225 x
+b 1.27098e-11 243.75 m 19.8735 243.75 x
+b 20.229 225 m 19.8735 243.75 x
+b 40.49 225 m 39.7596 243.75 x
+b 20.229 225 m 40.49 225 x
+b 19.8735 243.75 m 39.7596 243.75 x
+b 40.49 225 m 39.7596 243.75 x
+b 60.8048 225 m 59.6605 243.75 x
+b 40.49 225 m 60.8048 225 x
+b 39.7596 243.75 m 59.6605 243.75 x
+b 60.8048 225 m 59.6605 243.75 x
+b 81.168 225 m 79.5548 243.75 x
+b 60.8048 225 m 81.168 225 x
+b 59.6605 243.75 m 79.5548 243.75 x
+b 81.168 225 m 79.5548 243.75 x
+b 101.512 225 m 99.384 243.75 x
+b 81.168 225 m 101.512 225 x
+b 79.5548 243.75 m 99.384 243.75 x
+b 101.512 225 m 99.384 243.75 x
+b 121.682 225 m 119.047 243.75 x
+b 101.512 225 m 121.682 225 x
+b 99.384 243.75 m 119.047 243.75 x
+b 121.682 225 m 119.047 243.75 x
+b 141.438 225 m 138.419 243.75 x
+b 121.682 225 m 141.438 225 x
+b 119.047 243.75 m 138.419 243.75 x
+b 141.438 225 m 138.419 243.75 x
+b 160.556 225 m 157.39 243.75 x
+b 141.438 225 m 160.556 225 x
+b 138.419 243.75 m 157.39 243.75 x
+b 160.556 225 m 157.39 243.75 x
+b 178.938 225 m 175.919 243.75 x
+b 160.556 225 m 178.938 225 x
+b 157.39 243.75 m 175.919 243.75 x
+b 178.938 225 m 175.919 243.75 x
+b 196.682 225 m 194.047 243.75 x
+b 178.938 225 m 196.682 225 x
+b 175.919 243.75 m 194.047 243.75 x
+b 196.682 225 m 194.047 243.75 x
+b 214.012 225 m 211.884 243.75 x
+b 196.682 225 m 214.012 225 x
+b 194.047 243.75 m 211.884 243.75 x
+b 214.012 225 m 211.884 243.75 x
+b 231.168 225 m 229.555 243.75 x
+b 214.012 225 m 231.168 225 x
+b 211.884 243.75 m 229.555 243.75 x
+b 231.168 225 m 229.555 243.75 x
+b 248.305 225 m 247.161 243.75 x
+b 231.168 225 m 248.305 225 x
+b 229.555 243.75 m 247.161 243.75 x
+b 248.305 225 m 247.161 243.75 x
+b 265.49 225 m 264.76 243.75 x
+b 248.305 225 m 265.49 225 x
+b 247.161 243.75 m 264.76 243.75 x
+b 265.49 225 m 264.76 243.75 x
+b 282.729 225 m 282.374 243.75 x
+b 265.49 225 m 282.729 225 x
+b 264.76 243.75 m 282.374 243.75 x
+b 282.729 225 m 282.374 243.75 x
+b 300 225 m 300 243.75 x
+b 282.729 225 m 300 225 x
+b 282.374 243.75 m 300 243.75 x
+b 1.27098e-11 243.75 m 1.27098e-11 262.5 x
+b 19.8735 243.75 m 19.5024 262.5 x
+b 1.27098e-11 243.75 m 19.8735 243.75 x
+b 1.27098e-11 262.5 m 19.5024 262.5 x
+b 19.8735 243.75 m 19.5024 262.5 x
+b 39.7596 243.75 m 39.0073 262.5 x
+b 19.8735 243.75 m 39.7596 243.75 x
+b 19.5024 262.5 m 39.0073 262.5 x
+b 39.7596 243.75 m 39.0073 262.5 x
+b 59.6605 243.75 m 58.5096 262.5 x
+b 39.7596 243.75 m 59.6605 243.75 x
+b 39.0073 262.5 m 58.5096 262.5 x
+b 59.6605 243.75 m 58.5096 262.5 x
+b 79.5548 243.75 m 77.99 262.5 x
+b 59.6605 243.75 m 79.5548 243.75 x
+b 58.5096 262.5 m 77.99 262.5 x
+b 79.5548 243.75 m 77.99 262.5 x
+b 99.384 243.75 m 97.409 262.5 x
+b 79.5548 243.75 m 99.384 243.75 x
+b 77.99 262.5 m 97.409 262.5 x
+b 99.384 243.75 m 97.409 262.5 x
+b 119.047 243.75 m 116.709 262.5 x
+b 99.384 243.75 m 119.047 243.75 x
+b 97.409 262.5 m 116.709 262.5 x
+b 119.047 243.75 m 116.709 262.5 x
+b 138.419 243.75 m 135.824 262.5 x
+b 119.047 243.75 m 138.419 243.75 x
+b 116.709 262.5 m 135.824 262.5 x
+b 138.419 243.75 m 135.824 262.5 x
+b 157.39 243.75 m 154.703 262.5 x
+b 138.419 243.75 m 157.39 243.75 x
+b 135.824 262.5 m 154.703 262.5 x
+b 157.39 243.75 m 154.703 262.5 x
+b 175.919 243.75 m 173.324 262.5 x
+b 157.39 243.75 m 175.919 243.75 x
+b 154.703 262.5 m 173.324 262.5 x
+b 175.919 243.75 m 173.324 262.5 x
+b 194.047 243.75 m 191.709 262.5 x
+b 175.919 243.75 m 194.047 243.75 x
+b 173.324 262.5 m 191.709 262.5 x
+b 194.047 243.75 m 191.709 262.5 x
+b 211.884 243.75 m 209.909 262.5 x
+b 194.047 243.75 m 211.884 243.75 x
+b 191.709 262.5 m 209.909 262.5 x
+b 211.884 243.75 m 209.909 262.5 x
+b 229.555 243.75 m 227.99 262.5 x
+b 211.884 243.75 m 229.555 243.75 x
+b 209.909 262.5 m 227.99 262.5 x
+b 229.555 243.75 m 227.99 262.5 x
+b 247.161 243.75 m 246.01 262.5 x
+b 229.555 243.75 m 247.161 243.75 x
+b 227.99 262.5 m 246.01 262.5 x
+b 247.161 243.75 m 246.01 262.5 x
+b 264.76 243.75 m 264.007 262.5 x
+b 247.161 243.75 m 264.76 243.75 x
+b 246.01 262.5 m 264.007 262.5 x
+b 264.76 243.75 m 264.007 262.5 x
+b 282.374 243.75 m 282.002 262.5 x
+b 264.76 243.75 m 282.374 243.75 x
+b 264.007 262.5 m 282.002 262.5 x
+b 282.374 243.75 m 282.002 262.5 x
+b 300 243.75 m 300 262.5 x
+b 282.374 243.75 m 300 243.75 x
+b 282.002 262.5 m 300 262.5 x
+b 1.27098e-11 262.5 m 1.27631e-11 281.25 x
+b 19.5024 262.5 m 19.1265 281.25 x
+b 1.27098e-11 262.5 m 19.5024 262.5 x
+b 1.27631e-11 281.25 m 19.1265 281.25 x
+b 19.5024 262.5 m 19.1265 281.25 x
+b 39.0073 262.5 m 38.2524 281.25 x
+b 19.5024 262.5 m 39.0073 262.5 x
+b 19.1265 281.25 m 38.2524 281.25 x
+b 39.0073 262.5 m 38.2524 281.25 x
+b 58.5096 262.5 m 57.3735 281.25 x
+b 39.0073 262.5 m 58.5096 262.5 x
+b 38.2524 281.25 m 57.3735 281.25 x
+b 58.5096 262.5 m 57.3735 281.25 x
+b 77.99 262.5 m 76.479 281.25 x
+b 58.5096 262.5 m 77.99 262.5 x
+b 57.3735 281.25 m 76.479 281.25 x
+b 77.99 262.5 m 76.479 281.25 x
+b 97.409 262.5 m 95.5495 281.25 x
+b 77.99 262.5 m 97.409 262.5 x
+b 76.479 281.25 m 95.5495 281.25 x
+b 97.409 262.5 m 95.5495 281.25 x
+b 116.709 262.5 m 114.559 281.25 x
+b 97.409 262.5 m 116.709 262.5 x
+b 95.5495 281.25 m 114.559 281.25 x
+b 116.709 262.5 m 114.559 281.25 x
+b 135.824 262.5 m 133.479 281.25 x
+b 116.709 262.5 m 135.824 262.5 x
+b 114.559 281.25 m 133.479 281.25 x
+b 135.824 262.5 m 133.479 281.25 x
+b 154.703 262.5 m 152.289 281.25 x
+b 135.824 262.5 m 154.703 262.5 x
+b 133.479 281.25 m 152.289 281.25 x
+b 154.703 262.5 m 152.289 281.25 x
+b 173.324 262.5 m 170.979 281.25 x
+b 154.703 262.5 m 173.324 262.5 x
+b 152.289 281.25 m 170.979 281.25 x
+b 173.324 262.5 m 170.979 281.25 x
+b 191.709 262.5 m 189.559 281.25 x
+b 173.324 262.5 m 191.709 262.5 x
+b 170.979 281.25 m 189.559 281.25 x
+b 191.709 262.5 m 189.559 281.25 x
+b 209.909 262.5 m 208.049 281.25 x
+b 191.709 262.5 m 209.909 262.5 x
+b 189.559 281.25 m 208.049 281.25 x
+b 209.909 262.5 m 208.049 281.25 x
+b 227.99 262.5 m 226.479 281.25 x
+b 209.909 262.5 m 227.99 262.5 x
+b 208.049 281.25 m 226.479 281.25 x
+b 227.99 262.5 m 226.479 281.25 x
+b 246.01 262.5 m 244.874 281.25 x
+b 227.99 262.5 m 246.01 262.5 x
+b 226.479 281.25 m 244.874 281.25 x
+b 246.01 262.5 m 244.874 281.25 x
+b 264.007 262.5 m 263.252 281.25 x
+b 246.01 262.5 m 264.007 262.5 x
+b 244.874 281.25 m 263.252 281.25 x
+b 264.007 262.5 m 263.252 281.25 x
+b 282.002 262.5 m 281.627 281.25 x
+b 264.007 262.5 m 282.002 262.5 x
+b 263.252 281.25 m 281.627 281.25 x
+b 282.002 262.5 m 281.627 281.25 x
+b 300 262.5 m 300 281.25 x
+b 282.002 262.5 m 300 262.5 x
+b 281.627 281.25 m 300 281.25 x
+b 1.27631e-11 281.25 m 2.66454e-14 300 x
+b 19.1265 281.25 m 18.75 300 x
+b 1.27631e-11 281.25 m 19.1265 281.25 x
+b 2.66454e-14 300 m 18.75 300 x
+b 19.1265 281.25 m 18.75 300 x
+b 38.2524 281.25 m 37.5 300 x
+b 19.1265 281.25 m 38.2524 281.25 x
+b 18.75 300 m 37.5 300 x
+b 38.2524 281.25 m 37.5 300 x
+b 57.3735 281.25 m 56.25 300 x
+b 38.2524 281.25 m 57.3735 281.25 x
+b 37.5 300 m 56.25 300 x
+b 57.3735 281.25 m 56.25 300 x
+b 76.479 281.25 m 75 300 x
+b 57.3735 281.25 m 76.479 281.25 x
+b 56.25 300 m 75 300 x
+b 76.479 281.25 m 75 300 x
+b 95.5495 281.25 m 93.75 300 x
+b 76.479 281.25 m 95.5495 281.25 x
+b 75 300 m 93.75 300 x
+b 95.5495 281.25 m 93.75 300 x
+b 114.559 281.25 m 112.5 300 x
+b 95.5495 281.25 m 114.559 281.25 x
+b 93.75 300 m 112.5 300 x
+b 114.559 281.25 m 112.5 300 x
+b 133.479 281.25 m 131.25 300 x
+b 114.559 281.25 m 133.479 281.25 x
+b 112.5 300 m 131.25 300 x
+b 133.479 281.25 m 131.25 300 x
+b 152.289 281.25 m 150 300 x
+b 133.479 281.25 m 152.289 281.25 x
+b 131.25 300 m 150 300 x
+b 152.289 281.25 m 150 300 x
+b 170.979 281.25 m 168.75 300 x
+b 152.289 281.25 m 170.979 281.25 x
+b 150 300 m 168.75 300 x
+b 170.979 281.25 m 168.75 300 x
+b 189.559 281.25 m 187.5 300 x
+b 170.979 281.25 m 189.559 281.25 x
+b 168.75 300 m 187.5 300 x
+b 189.559 281.25 m 187.5 300 x
+b 208.049 281.25 m 206.25 300 x
+b 189.559 281.25 m 208.049 281.25 x
+b 187.5 300 m 206.25 300 x
+b 208.049 281.25 m 206.25 300 x
+b 226.479 281.25 m 225 300 x
+b 208.049 281.25 m 226.479 281.25 x
+b 206.25 300 m 225 300 x
+b 226.479 281.25 m 225 300 x
+b 244.874 281.25 m 243.75 300 x
+b 226.479 281.25 m 244.874 281.25 x
+b 225 300 m 243.75 300 x
+b 244.874 281.25 m 243.75 300 x
+b 263.252 281.25 m 262.5 300 x
+b 244.874 281.25 m 263.252 281.25 x
+b 243.75 300 m 262.5 300 x
+b 263.252 281.25 m 262.5 300 x
+b 281.627 281.25 m 281.25 300 x
+b 263.252 281.25 m 281.627 281.25 x
+b 262.5 300 m 281.25 300 x
+b 281.627 281.25 m 281.25 300 x
+b 300 281.25 m 300 300 x
+b 281.627 281.25 m 300 281.25 x
+b 281.25 300 m 300 300 x
+showpage
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2014 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.
+//
+// ---------------------------------------------------------------------
+
+// like grid_transform, but use a spatially variable coefficient
+
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/grid/tria.h>
+#include <deal.II/grid/tria_accessor.h>
+#include <deal.II/grid/tria_boundary_lib.h>
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/grid_out.h>
+#include <deal.II/fe/mapping_q.h>
+
+#include <fstream>
+#include <iomanip>
+
+
+template <int dim>
+class Coefficient : public Function<dim>
+{
+public:
+ virtual double value (const Point<dim> &p,
+ const unsigned int) const
+ {
+ return (p[0]>0 ? 10 : 1);
+ }
+};
+
+
+int main ()
+{
+ const unsigned int dim=2;
+ Point<dim> origin;
+ HyperShellBoundary<dim> boundary(origin);
+ MappingQ<dim> mapping(2);
+ Triangulation<dim> tria;
+ tria.set_boundary(0, boundary);
+ const double inner_radius=1.;
+ const double outer_radius=5.;
+ GridGenerator::hyper_shell(tria, origin, inner_radius, outer_radius, 8);
+ tria.refine_global(2);
+
+ // build up a map of vertex indices
+ // of boundary vertices to the new
+ // boundary points
+ std::map<unsigned int,Point<dim> > new_points;
+
+ // new center and new radius
+ // of the inner circle.
+ const Point<dim> n_center(0,-1);
+ const double n_radius=0.5;
+
+ Triangulation<dim>::cell_iterator cell=tria.begin_active(),
+ endc=tria.end();
+ Triangulation<dim>::face_iterator face;
+ for (; cell!=endc; ++cell)
+ {
+ if (cell->at_boundary())
+ for (unsigned int face_no=0; face_no<GeometryInfo<dim>::faces_per_cell; ++face_no)
+ {
+ face=cell->face(face_no);
+ if (face->at_boundary())
+ for (unsigned int vertex_no=0;
+ vertex_no<GeometryInfo<dim>::vertices_per_face; ++vertex_no)
+ {
+ const Point<dim> &v=face->vertex(vertex_no);
+ if (std::fabs(std::sqrt(v.square())-outer_radius)<1e-12)
+ {
+ // leave the
+ // point, where
+ // they are.
+ new_points.insert(std::pair<types::global_dof_index, Point<dim> > (
+ face->vertex_index(vertex_no), v));
+ }
+ else if (std::fabs(std::sqrt(v.square())-inner_radius)<1e-12)
+ {
+ // move the
+ // center of
+ // the inner
+ // circle to
+ // (-1,0) and
+ // take half
+ // the radius
+ // of the
+ // circle.
+ new_points.insert(std::pair<types::global_dof_index, Point<dim> > (
+ face->vertex_index(vertex_no), n_radius/inner_radius*v+n_center));
+ face->set_boundary_indicator(1);
+ }
+ else
+ Assert(false, ExcInternalError());
+ }
+ }
+ }
+
+ const Coefficient<dim> c;
+ GridGenerator::laplace_transformation (tria, new_points, &c);
+ HyperBallBoundary<dim> inner_ball(n_center, n_radius);
+ tria.set_boundary(1, inner_ball);
+
+ GridOut grid_out;
+ std::ofstream eps_stream2("output");
+ grid_out.write_eps(tria, eps_stream2, &mapping);
+
+ tria.clear();
+
+ return 0;
+}
--- /dev/null
+%!PS-Adobe-2.0 EPSF-1.2
+%%Title: deal.II Output
+%%Creator: the deal.II library
+
+%%BoundingBox: 0 0 301 300
+/m {moveto} bind def
+/x {lineto stroke} bind def
+/b {0 0 0 setrgbcolor} def
+/r {1 0 0 setrgbcolor} def
+%%EndProlog
+
+0.5 setlinewidth
+b 300 150 m 269.727 145.754 x
+b 297.118 179.264 m 265.518 167.89 x
+b 269.727 145.754 m 265.518 167.89 x
+b 297.118 179.264 m 265.518 167.89 x
+b 288.582 207.403 m 258.81 189.709 x
+b 265.518 167.89 m 258.81 189.709 x
+b 269.727 145.754 m 238.9 140.339 x
+b 265.518 167.89 m 233.152 154.954 x
+b 269.727 145.754 m 265.518 167.89 x
+b 238.9 140.339 m 233.152 154.954 x
+b 265.518 167.89 m 233.152 154.954 x
+b 258.81 189.709 m 228.21 170.233 x
+b 265.518 167.89 m 258.81 189.709 x
+b 233.152 154.954 m 228.21 170.233 x
+b 288.582 207.403 m 258.81 189.709 x
+b 274.72 233.336 m 249.015 210.274 x
+b 258.81 189.709 m 249.015 210.274 x
+b 274.72 233.336 m 249.015 210.274 x
+b 256.066 256.066 m 237.148 229.58 x
+b 249.015 210.274 m 237.148 229.58 x
+b 258.81 189.709 m 228.21 170.233 x
+b 249.015 210.274 m 222.557 185.384 x
+b 258.81 189.709 m 249.015 210.274 x
+b 228.21 170.233 m 222.557 185.384 x
+b 249.015 210.274 m 222.557 185.384 x
+b 237.148 229.58 m 217.611 201.559 x
+b 249.015 210.274 m 237.148 229.58 x
+b 222.557 185.384 m 217.611 201.559 x
+b 238.9 140.339 m 206.034 132.808 x
+b 233.152 154.954 m 202.601 141.732 x
+b 238.9 140.339 m 233.152 154.954 x
+b 206.034 132.808 m 202.601 141.732 x
+b 233.152 154.954 m 202.601 141.732 x
+b 228.21 170.233 m 199.827 151.101 x
+b 233.152 154.954 m 228.21 170.233 x
+b 202.601 141.732 m 199.827 151.101 x
+b 206.034 132.808 m 165 120 x
+b 202.601 141.732 m 164.712 122.926 x
+b 206.034 132.808 m 202.601 141.732 x
+b 202.601 141.732 m 164.712 122.926 x
+b 199.827 151.101 m 163.858 125.74 x
+b 202.601 141.732 m 199.827 151.101 x
+b 228.21 170.233 m 199.827 151.101 x
+b 222.557 185.384 m 196.809 160.42 x
+b 228.21 170.233 m 222.557 185.384 x
+b 199.827 151.101 m 196.809 160.42 x
+b 222.557 185.384 m 196.809 160.42 x
+b 217.611 201.559 m 194.714 170.564 x
+b 222.557 185.384 m 217.611 201.559 x
+b 196.809 160.42 m 194.714 170.564 x
+b 199.827 151.101 m 163.858 125.74 x
+b 196.809 160.42 m 162.472 128.334 x
+b 199.827 151.101 m 196.809 160.42 x
+b 196.809 160.42 m 162.472 128.334 x
+b 194.714 170.564 m 160.607 130.607 x
+b 196.809 160.42 m 194.714 170.564 x
+b 256.066 256.066 m 237.148 229.58 x
+b 233.336 274.72 m 220.334 242.018 x
+b 237.148 229.58 m 220.334 242.018 x
+b 233.336 274.72 m 220.334 242.018 x
+b 207.403 288.582 m 203.351 252.407 x
+b 220.334 242.018 m 203.351 252.407 x
+b 237.148 229.58 m 217.611 201.559 x
+b 220.334 242.018 m 205.861 207.335 x
+b 237.148 229.58 m 220.334 242.018 x
+b 217.611 201.559 m 205.861 207.335 x
+b 220.334 242.018 m 205.861 207.335 x
+b 203.351 252.407 m 196.412 214.078 x
+b 220.334 242.018 m 203.351 252.407 x
+b 205.861 207.335 m 196.412 214.078 x
+b 207.403 288.582 m 203.351 252.407 x
+b 179.264 297.118 m 187.875 259.574 x
+b 203.351 252.407 m 187.875 259.574 x
+b 179.264 297.118 m 187.875 259.574 x
+b 150 300 m 179.383 264.302 x
+b 187.875 259.574 m 179.383 264.302 x
+b 203.351 252.407 m 196.412 214.078 x
+b 187.875 259.574 m 189.406 219.94 x
+b 203.351 252.407 m 187.875 259.574 x
+b 196.412 214.078 m 189.406 219.94 x
+b 187.875 259.574 m 189.406 219.94 x
+b 179.383 264.302 m 184.976 226.918 x
+b 187.875 259.574 m 179.383 264.302 x
+b 189.406 219.94 m 184.976 226.918 x
+b 217.611 201.559 m 194.714 170.564 x
+b 205.861 207.335 m 187.95 174.155 x
+b 217.611 201.559 m 205.861 207.335 x
+b 194.714 170.564 m 187.95 174.155 x
+b 205.861 207.335 m 187.95 174.155 x
+b 196.412 214.078 m 182.997 178.312 x
+b 205.861 207.335 m 196.412 214.078 x
+b 187.95 174.155 m 182.997 178.312 x
+b 194.714 170.564 m 160.607 130.607 x
+b 187.95 174.155 m 158.334 132.472 x
+b 194.714 170.564 m 187.95 174.155 x
+b 187.95 174.155 m 158.334 132.472 x
+b 182.997 178.312 m 155.74 133.858 x
+b 187.95 174.155 m 182.997 178.312 x
+b 196.412 214.078 m 182.997 178.312 x
+b 189.406 219.94 m 179.604 181.896 x
+b 196.412 214.078 m 189.406 219.94 x
+b 182.997 178.312 m 179.604 181.896 x
+b 189.406 219.94 m 179.604 181.896 x
+b 184.976 226.918 m 179.159 186.203 x
+b 189.406 219.94 m 184.976 226.918 x
+b 179.604 181.896 m 179.159 186.203 x
+b 182.997 178.312 m 155.74 133.858 x
+b 179.604 181.896 m 152.926 134.712 x
+b 182.997 178.312 m 179.604 181.896 x
+b 179.604 181.896 m 152.926 134.712 x
+b 179.159 186.203 m 150 135 x
+b 179.604 181.896 m 179.159 186.203 x
+b 150 300 m 179.383 264.302 x
+b 120.736 297.118 m 142.981 259.574 x
+b 179.383 264.302 m 142.981 259.574 x
+b 120.736 297.118 m 142.981 259.574 x
+b 92.5975 288.582 m 114.682 252.407 x
+b 142.981 259.574 m 114.682 252.407 x
+b 179.383 264.302 m 184.976 226.918 x
+b 142.981 259.574 m 158.361 219.94 x
+b 179.383 264.302 m 142.981 259.574 x
+b 184.976 226.918 m 158.361 219.94 x
+b 142.981 259.574 m 158.361 219.94 x
+b 114.682 252.407 m 134.405 214.078 x
+b 142.981 259.574 m 114.682 252.407 x
+b 158.361 219.94 m 134.405 214.078 x
+b 92.5975 288.582 m 114.682 252.407 x
+b 66.6645 274.72 m 90.6726 242.018 x
+b 114.682 252.407 m 90.6726 242.018 x
+b 66.6645 274.72 m 90.6726 242.018 x
+b 43.934 256.066 m 69.4963 229.58 x
+b 90.6726 242.018 m 69.4963 229.58 x
+b 114.682 252.407 m 134.405 214.078 x
+b 90.6726 242.018 m 113.957 207.335 x
+b 114.682 252.407 m 90.6726 242.018 x
+b 134.405 214.078 m 113.957 207.335 x
+b 90.6726 242.018 m 113.957 207.335 x
+b 69.4963 229.58 m 95.1697 201.559 x
+b 90.6726 242.018 m 69.4963 229.58 x
+b 113.957 207.335 m 95.1697 201.559 x
+b 184.976 226.918 m 179.159 186.203 x
+b 158.361 219.94 m 160.18 181.896 x
+b 184.976 226.918 m 158.361 219.94 x
+b 179.159 186.203 m 160.18 181.896 x
+b 158.361 219.94 m 160.18 181.896 x
+b 134.405 214.078 m 144.515 178.312 x
+b 158.361 219.94 m 134.405 214.078 x
+b 160.18 181.896 m 144.515 178.312 x
+b 179.159 186.203 m 150 135 x
+b 160.18 181.896 m 147.074 134.712 x
+b 179.159 186.203 m 160.18 181.896 x
+b 160.18 181.896 m 147.074 134.712 x
+b 144.515 178.312 m 144.26 133.858 x
+b 160.18 181.896 m 144.515 178.312 x
+b 134.405 214.078 m 144.515 178.312 x
+b 113.957 207.335 m 131.15 174.155 x
+b 134.405 214.078 m 113.957 207.335 x
+b 144.515 178.312 m 131.15 174.155 x
+b 113.957 207.335 m 131.15 174.155 x
+b 95.1697 201.559 m 119.202 170.564 x
+b 113.957 207.335 m 95.1697 201.559 x
+b 131.15 174.155 m 119.202 170.564 x
+b 144.515 178.312 m 144.26 133.858 x
+b 131.15 174.155 m 141.666 132.472 x
+b 144.515 178.312 m 131.15 174.155 x
+b 131.15 174.155 m 141.666 132.472 x
+b 119.202 170.564 m 139.393 130.607 x
+b 131.15 174.155 m 119.202 170.564 x
+b 43.934 256.066 m 69.4963 229.58 x
+b 25.2796 233.336 m 55.8639 210.274 x
+b 69.4963 229.58 m 55.8639 210.274 x
+b 25.2796 233.336 m 55.8639 210.274 x
+b 11.4181 207.403 m 44.7446 189.709 x
+b 55.8639 210.274 m 44.7446 189.709 x
+b 69.4963 229.58 m 95.1697 201.559 x
+b 55.8639 210.274 m 86.7509 185.384 x
+b 69.4963 229.58 m 55.8639 210.274 x
+b 95.1697 201.559 m 86.7509 185.384 x
+b 55.8639 210.274 m 86.7509 185.384 x
+b 44.7446 189.709 m 78.5133 170.233 x
+b 55.8639 210.274 m 44.7446 189.709 x
+b 86.7509 185.384 m 78.5133 170.233 x
+b 11.4181 207.403 m 44.7446 189.709 x
+b 2.88221 179.264 m 37.2546 167.89 x
+b 44.7446 189.709 m 37.2546 167.89 x
+b 2.88221 179.264 m 37.2546 167.89 x
+b 0 150 m 32.6325 145.754 x
+b 37.2546 167.89 m 32.6325 145.754 x
+b 44.7446 189.709 m 78.5133 170.233 x
+b 37.2546 167.89 m 72.1371 154.954 x
+b 44.7446 189.709 m 37.2546 167.89 x
+b 78.5133 170.233 m 72.1371 154.954 x
+b 37.2546 167.89 m 72.1371 154.954 x
+b 32.6325 145.754 m 65.7419 140.339 x
+b 37.2546 167.89 m 32.6325 145.754 x
+b 72.1371 154.954 m 65.7419 140.339 x
+b 95.1697 201.559 m 119.202 170.564 x
+b 86.7509 185.384 m 112.538 160.42 x
+b 95.1697 201.559 m 86.7509 185.384 x
+b 119.202 170.564 m 112.538 160.42 x
+b 86.7509 185.384 m 112.538 160.42 x
+b 78.5133 170.233 m 106.923 151.101 x
+b 86.7509 185.384 m 78.5133 170.233 x
+b 112.538 160.42 m 106.923 151.101 x
+b 119.202 170.564 m 139.393 130.607 x
+b 112.538 160.42 m 137.528 128.334 x
+b 119.202 170.564 m 112.538 160.42 x
+b 112.538 160.42 m 137.528 128.334 x
+b 106.923 151.101 m 136.142 125.74 x
+b 112.538 160.42 m 106.923 151.101 x
+b 78.5133 170.233 m 106.923 151.101 x
+b 72.1371 154.954 m 102.848 141.732 x
+b 78.5133 170.233 m 72.1371 154.954 x
+b 106.923 151.101 m 102.848 141.732 x
+b 72.1371 154.954 m 102.848 141.732 x
+b 65.7419 140.339 m 99.2433 132.808 x
+b 72.1371 154.954 m 65.7419 140.339 x
+b 102.848 141.732 m 99.2433 132.808 x
+b 106.923 151.101 m 136.142 125.74 x
+b 102.848 141.732 m 135.288 122.926 x
+b 106.923 151.101 m 102.848 141.732 x
+b 102.848 141.732 m 135.288 122.926 x
+b 99.2433 132.808 m 135 120 x
+b 102.848 141.732 m 99.2433 132.808 x
+b 0 150 m 32.6325 145.754 x
+b 2.88221 120.736 m 37.2546 122.996 x
+b 32.6325 145.754 m 37.2546 122.996 x
+b 2.88221 120.736 m 37.2546 122.996 x
+b 11.4181 92.5975 m 44.7446 101.04 x
+b 37.2546 122.996 m 44.7446 101.04 x
+b 32.6325 145.754 m 65.7419 140.339 x
+b 37.2546 122.996 m 72.1371 123.91 x
+b 32.6325 145.754 m 37.2546 122.996 x
+b 65.7419 140.339 m 72.1371 123.91 x
+b 37.2546 122.996 m 72.1371 123.91 x
+b 44.7446 101.04 m 78.5133 108.227 x
+b 37.2546 122.996 m 44.7446 101.04 x
+b 72.1371 123.91 m 78.5133 108.227 x
+b 11.4181 92.5975 m 44.7446 101.04 x
+b 25.2796 66.6645 m 55.8639 80.6122 x
+b 44.7446 101.04 m 55.8639 80.6122 x
+b 25.2796 66.6645 m 55.8639 80.6122 x
+b 43.934 43.934 m 69.4963 61.9287 x
+b 55.8639 80.6122 m 69.4963 61.9287 x
+b 44.7446 101.04 m 78.5133 108.227 x
+b 55.8639 80.6122 m 86.7509 93.4804 x
+b 44.7446 101.04 m 55.8639 80.6122 x
+b 78.5133 108.227 m 86.7509 93.4804 x
+b 55.8639 80.6122 m 86.7509 93.4804 x
+b 69.4963 61.9287 m 95.1697 79.1183 x
+b 55.8639 80.6122 m 69.4963 61.9287 x
+b 86.7509 93.4804 m 95.1697 79.1183 x
+b 65.7419 140.339 m 99.2433 132.808 x
+b 72.1371 123.91 m 102.848 122.308 x
+b 65.7419 140.339 m 72.1371 123.91 x
+b 99.2433 132.808 m 102.848 122.308 x
+b 72.1371 123.91 m 102.848 122.308 x
+b 78.5133 108.227 m 106.923 112.619 x
+b 72.1371 123.91 m 78.5133 108.227 x
+b 102.848 122.308 m 106.923 112.619 x
+b 99.2433 132.808 m 135 120 x
+b 102.848 122.308 m 135.288 117.074 x
+b 99.2433 132.808 m 102.848 122.308 x
+b 102.848 122.308 m 135.288 117.074 x
+b 106.923 112.619 m 136.142 114.26 x
+b 102.848 122.308 m 106.923 112.619 x
+b 78.5133 108.227 m 106.923 112.619 x
+b 86.7509 93.4804 m 112.538 103.619 x
+b 78.5133 108.227 m 86.7509 93.4804 x
+b 106.923 112.619 m 112.538 103.619 x
+b 86.7509 93.4804 m 112.538 103.619 x
+b 95.1697 79.1183 m 119.202 95.052 x
+b 86.7509 93.4804 m 95.1697 79.1183 x
+b 112.538 103.619 m 119.202 95.052 x
+b 106.923 112.619 m 136.142 114.26 x
+b 112.538 103.619 m 137.528 111.666 x
+b 106.923 112.619 m 112.538 103.619 x
+b 112.538 103.619 m 137.528 111.666 x
+b 119.202 95.052 m 139.393 109.393 x
+b 112.538 103.619 m 119.202 95.052 x
+b 43.934 43.934 m 69.4963 61.9287 x
+b 66.6645 25.2796 m 90.6726 48.8674 x
+b 69.4963 61.9287 m 90.6726 48.8674 x
+b 66.6645 25.2796 m 90.6726 48.8674 x
+b 92.5975 11.4181 m 114.682 38.3417 x
+b 90.6726 48.8674 m 114.682 38.3417 x
+b 69.4963 61.9287 m 95.1697 79.1183 x
+b 90.6726 48.8674 m 113.957 71.5288 x
+b 69.4963 61.9287 m 90.6726 48.8674 x
+b 95.1697 79.1183 m 113.957 71.5288 x
+b 90.6726 48.8674 m 113.957 71.5288 x
+b 114.682 38.3417 m 134.405 64.3816 x
+b 90.6726 48.8674 m 114.682 38.3417 x
+b 113.957 71.5288 m 134.405 64.3816 x
+b 92.5975 11.4181 m 114.682 38.3417 x
+b 120.736 2.88221 m 142.981 31.3115 x
+b 114.682 38.3417 m 142.981 31.3115 x
+b 120.736 2.88221 m 142.981 31.3115 x
+b 150 0 m 179.383 27.207 x
+b 142.981 31.3115 m 179.383 27.207 x
+b 114.682 38.3417 m 134.405 64.3816 x
+b 142.981 31.3115 m 158.361 58.9245 x
+b 114.682 38.3417 m 142.981 31.3115 x
+b 134.405 64.3816 m 158.361 58.9245 x
+b 142.981 31.3115 m 158.361 58.9245 x
+b 179.383 27.207 m 184.976 53.7599 x
+b 142.981 31.3115 m 179.383 27.207 x
+b 158.361 58.9245 m 184.976 53.7599 x
+b 95.1697 79.1183 m 119.202 95.052 x
+b 113.957 71.5288 m 131.15 89.8844 x
+b 95.1697 79.1183 m 113.957 71.5288 x
+b 119.202 95.052 m 131.15 89.8844 x
+b 113.957 71.5288 m 131.15 89.8844 x
+b 134.405 64.3816 m 144.515 85.4079 x
+b 113.957 71.5288 m 134.405 64.3816 x
+b 131.15 89.8844 m 144.515 85.4079 x
+b 119.202 95.052 m 139.393 109.393 x
+b 131.15 89.8844 m 141.666 107.528 x
+b 119.202 95.052 m 131.15 89.8844 x
+b 131.15 89.8844 m 141.666 107.528 x
+b 144.515 85.4079 m 144.26 106.142 x
+b 131.15 89.8844 m 144.515 85.4079 x
+b 134.405 64.3816 m 144.515 85.4079 x
+b 158.361 58.9245 m 160.18 82.1435 x
+b 134.405 64.3816 m 158.361 58.9245 x
+b 144.515 85.4079 m 160.18 82.1435 x
+b 158.361 58.9245 m 160.18 82.1435 x
+b 184.976 53.7599 m 179.159 79.4129 x
+b 158.361 58.9245 m 184.976 53.7599 x
+b 160.18 82.1435 m 179.159 79.4129 x
+b 144.515 85.4079 m 144.26 106.142 x
+b 160.18 82.1435 m 147.074 105.288 x
+b 144.515 85.4079 m 160.18 82.1435 x
+b 160.18 82.1435 m 147.074 105.288 x
+b 179.159 79.4129 m 150 105 x
+b 160.18 82.1435 m 179.159 79.4129 x
+b 150 0 m 179.383 27.207 x
+b 179.264 2.88221 m 187.875 31.3115 x
+b 179.383 27.207 m 187.875 31.3115 x
+b 179.264 2.88221 m 187.875 31.3115 x
+b 207.403 11.4181 m 203.351 38.3417 x
+b 187.875 31.3115 m 203.351 38.3417 x
+b 179.383 27.207 m 184.976 53.7599 x
+b 187.875 31.3115 m 189.406 58.9245 x
+b 179.383 27.207 m 187.875 31.3115 x
+b 184.976 53.7599 m 189.406 58.9245 x
+b 187.875 31.3115 m 189.406 58.9245 x
+b 203.351 38.3417 m 196.412 64.3816 x
+b 187.875 31.3115 m 203.351 38.3417 x
+b 189.406 58.9245 m 196.412 64.3816 x
+b 207.403 11.4181 m 203.351 38.3417 x
+b 233.336 25.2796 m 220.334 48.8674 x
+b 203.351 38.3417 m 220.334 48.8674 x
+b 233.336 25.2796 m 220.334 48.8674 x
+b 256.066 43.934 m 237.148 61.9287 x
+b 220.334 48.8674 m 237.148 61.9287 x
+b 203.351 38.3417 m 196.412 64.3816 x
+b 220.334 48.8674 m 205.861 71.5288 x
+b 203.351 38.3417 m 220.334 48.8674 x
+b 196.412 64.3816 m 205.861 71.5288 x
+b 220.334 48.8674 m 205.861 71.5288 x
+b 237.148 61.9287 m 217.611 79.1183 x
+b 220.334 48.8674 m 237.148 61.9287 x
+b 205.861 71.5288 m 217.611 79.1183 x
+b 184.976 53.7599 m 179.159 79.4129 x
+b 189.406 58.9245 m 179.604 82.1435 x
+b 184.976 53.7599 m 189.406 58.9245 x
+b 179.159 79.4129 m 179.604 82.1435 x
+b 189.406 58.9245 m 179.604 82.1435 x
+b 196.412 64.3816 m 182.997 85.4079 x
+b 189.406 58.9245 m 196.412 64.3816 x
+b 179.604 82.1435 m 182.997 85.4079 x
+b 179.159 79.4129 m 150 105 x
+b 179.604 82.1435 m 152.926 105.288 x
+b 179.159 79.4129 m 179.604 82.1435 x
+b 179.604 82.1435 m 152.926 105.288 x
+b 182.997 85.4079 m 155.74 106.142 x
+b 179.604 82.1435 m 182.997 85.4079 x
+b 196.412 64.3816 m 182.997 85.4079 x
+b 205.861 71.5288 m 187.95 89.8844 x
+b 196.412 64.3816 m 205.861 71.5288 x
+b 182.997 85.4079 m 187.95 89.8844 x
+b 205.861 71.5288 m 187.95 89.8844 x
+b 217.611 79.1183 m 194.714 95.052 x
+b 205.861 71.5288 m 217.611 79.1183 x
+b 187.95 89.8844 m 194.714 95.052 x
+b 182.997 85.4079 m 155.74 106.142 x
+b 187.95 89.8844 m 158.334 107.528 x
+b 182.997 85.4079 m 187.95 89.8844 x
+b 187.95 89.8844 m 158.334 107.528 x
+b 194.714 95.052 m 160.607 109.393 x
+b 187.95 89.8844 m 194.714 95.052 x
+b 256.066 43.934 m 237.148 61.9287 x
+b 274.72 66.6645 m 249.015 80.6122 x
+b 237.148 61.9287 m 249.015 80.6122 x
+b 274.72 66.6645 m 249.015 80.6122 x
+b 288.582 92.5975 m 258.81 101.04 x
+b 249.015 80.6122 m 258.81 101.04 x
+b 237.148 61.9287 m 217.611 79.1183 x
+b 249.015 80.6122 m 222.557 93.4804 x
+b 237.148 61.9287 m 249.015 80.6122 x
+b 217.611 79.1183 m 222.557 93.4804 x
+b 249.015 80.6122 m 222.557 93.4804 x
+b 258.81 101.04 m 228.21 108.227 x
+b 249.015 80.6122 m 258.81 101.04 x
+b 222.557 93.4804 m 228.21 108.227 x
+b 288.582 92.5975 m 258.81 101.04 x
+b 297.118 120.736 m 265.518 122.996 x
+b 258.81 101.04 m 265.518 122.996 x
+b 297.118 120.736 m 265.518 122.996 x
+b 300 150 m 269.727 145.754 x
+b 265.518 122.996 m 269.727 145.754 x
+b 258.81 101.04 m 228.21 108.227 x
+b 265.518 122.996 m 233.152 123.91 x
+b 258.81 101.04 m 265.518 122.996 x
+b 228.21 108.227 m 233.152 123.91 x
+b 265.518 122.996 m 233.152 123.91 x
+b 269.727 145.754 m 238.9 140.339 x
+b 265.518 122.996 m 269.727 145.754 x
+b 233.152 123.91 m 238.9 140.339 x
+b 217.611 79.1183 m 194.714 95.052 x
+b 222.557 93.4804 m 196.809 103.619 x
+b 217.611 79.1183 m 222.557 93.4804 x
+b 194.714 95.052 m 196.809 103.619 x
+b 222.557 93.4804 m 196.809 103.619 x
+b 228.21 108.227 m 199.827 112.619 x
+b 222.557 93.4804 m 228.21 108.227 x
+b 196.809 103.619 m 199.827 112.619 x
+b 194.714 95.052 m 160.607 109.393 x
+b 196.809 103.619 m 162.472 111.666 x
+b 194.714 95.052 m 196.809 103.619 x
+b 196.809 103.619 m 162.472 111.666 x
+b 199.827 112.619 m 163.858 114.26 x
+b 196.809 103.619 m 199.827 112.619 x
+b 228.21 108.227 m 199.827 112.619 x
+b 233.152 123.91 m 202.601 122.308 x
+b 228.21 108.227 m 233.152 123.91 x
+b 199.827 112.619 m 202.601 122.308 x
+b 233.152 123.91 m 202.601 122.308 x
+b 238.9 140.339 m 206.034 132.808 x
+b 233.152 123.91 m 238.9 140.339 x
+b 202.601 122.308 m 206.034 132.808 x
+b 199.827 112.619 m 163.858 114.26 x
+b 202.601 122.308 m 164.712 117.074 x
+b 199.827 112.619 m 202.601 122.308 x
+b 202.601 122.308 m 164.712 117.074 x
+b 206.034 132.808 m 165 120 x
+b 202.601 122.308 m 206.034 132.808 x
+b 300 150 m 299.678 159.817 x
+b 299.678 159.817 m 298.717 169.572 x
+b 298.717 169.572 m 297.118 179.264 x
+b 297.118 179.264 m 294.887 188.83 x
+b 294.887 188.83 m 292.042 198.209 x
+b 292.042 198.209 m 288.582 207.403 x
+b 288.582 207.403 m 284.528 216.35 x
+b 284.528 216.35 m 279.907 224.994 x
+b 279.907 224.994 m 274.72 233.336 x
+b 274.72 233.336 m 268.999 241.32 x
+b 268.999 241.32 m 262.78 248.896 x
+b 262.78 248.896 m 256.066 256.066 x
+b 165 120 m 164.968 120.982 x
+b 164.968 120.982 m 164.872 121.957 x
+b 164.872 121.957 m 164.712 122.926 x
+b 164.712 122.926 m 164.489 123.883 x
+b 164.489 123.883 m 164.204 124.821 x
+b 164.204 124.821 m 163.858 125.74 x
+b 163.858 125.74 m 163.453 126.635 x
+b 163.453 126.635 m 162.991 127.499 x
+b 162.991 127.499 m 162.472 128.334 x
+b 162.472 128.334 m 161.9 129.132 x
+b 161.9 129.132 m 161.278 129.89 x
+b 161.278 129.89 m 160.607 130.607 x
+b 256.066 256.066 m 248.896 262.78 x
+b 248.896 262.78 m 241.32 268.999 x
+b 241.32 268.999 m 233.336 274.72 x
+b 233.336 274.72 m 224.994 279.907 x
+b 224.994 279.907 m 216.35 284.528 x
+b 216.35 284.528 m 207.403 288.582 x
+b 207.403 288.582 m 198.209 292.042 x
+b 198.209 292.042 m 188.83 294.887 x
+b 188.83 294.887 m 179.264 297.118 x
+b 179.264 297.118 m 169.572 298.717 x
+b 169.572 298.717 m 159.817 299.678 x
+b 159.817 299.678 m 150 300 x
+b 160.607 130.607 m 159.89 131.278 x
+b 159.89 131.278 m 159.132 131.9 x
+b 159.132 131.9 m 158.334 132.472 x
+b 158.334 132.472 m 157.499 132.991 x
+b 157.499 132.991 m 156.635 133.453 x
+b 156.635 133.453 m 155.74 133.858 x
+b 155.74 133.858 m 154.821 134.204 x
+b 154.821 134.204 m 153.883 134.489 x
+b 153.883 134.489 m 152.926 134.712 x
+b 152.926 134.712 m 151.957 134.872 x
+b 151.957 134.872 m 150.982 134.968 x
+b 150.982 134.968 m 150 135 x
+b 150 300 m 140.183 299.678 x
+b 140.183 299.678 m 130.428 298.717 x
+b 130.428 298.717 m 120.736 297.118 x
+b 120.736 297.118 m 111.17 294.887 x
+b 111.17 294.887 m 101.791 292.042 x
+b 101.791 292.042 m 92.5975 288.582 x
+b 92.5975 288.582 m 83.6505 284.528 x
+b 83.6505 284.528 m 75.0062 279.907 x
+b 75.0062 279.907 m 66.6645 274.72 x
+b 66.6645 274.72 m 58.6803 268.999 x
+b 58.6803 268.999 m 51.1035 262.78 x
+b 51.1035 262.78 m 43.934 256.066 x
+b 150 135 m 149.018 134.968 x
+b 149.018 134.968 m 148.043 134.872 x
+b 148.043 134.872 m 147.074 134.712 x
+b 147.074 134.712 m 146.117 134.489 x
+b 146.117 134.489 m 145.179 134.204 x
+b 145.179 134.204 m 144.26 133.858 x
+b 144.26 133.858 m 143.365 133.453 x
+b 143.365 133.453 m 142.501 132.991 x
+b 142.501 132.991 m 141.666 132.472 x
+b 141.666 132.472 m 140.868 131.9 x
+b 140.868 131.9 m 140.11 131.278 x
+b 140.11 131.278 m 139.393 130.607 x
+b 43.934 256.066 m 37.2195 248.896 x
+b 37.2195 248.896 m 31.0014 241.32 x
+b 31.0014 241.32 m 25.2796 233.336 x
+b 25.2796 233.336 m 20.0928 224.994 x
+b 20.0928 224.994 m 15.4723 216.35 x
+b 15.4723 216.35 m 11.4181 207.403 x
+b 11.4181 207.403 m 7.95839 198.209 x
+b 7.95839 198.209 m 5.1131 188.83 x
+b 5.1131 188.83 m 2.88221 179.264 x
+b 2.88221 179.264 m 1.28253 169.572 x
+b 1.28253 169.572 m 0.321791 159.817 x
+b 0.321791 159.817 m 0 150 x
+b 139.393 130.607 m 138.722 129.89 x
+b 138.722 129.89 m 138.1 129.132 x
+b 138.1 129.132 m 137.528 128.334 x
+b 137.528 128.334 m 137.009 127.499 x
+b 137.009 127.499 m 136.547 126.635 x
+b 136.547 126.635 m 136.142 125.74 x
+b 136.142 125.74 m 135.796 124.821 x
+b 135.796 124.821 m 135.511 123.883 x
+b 135.511 123.883 m 135.288 122.926 x
+b 135.288 122.926 m 135.128 121.957 x
+b 135.128 121.957 m 135.032 120.982 x
+b 135.032 120.982 m 135 120 x
+b 0 150 m 0.321791 140.183 x
+b 0.321791 140.183 m 1.28253 130.428 x
+b 1.28253 130.428 m 2.88221 120.736 x
+b 2.88221 120.736 m 5.1131 111.17 x
+b 5.1131 111.17 m 7.95839 101.791 x
+b 7.95839 101.791 m 11.4181 92.5975 x
+b 11.4181 92.5975 m 15.4723 83.6505 x
+b 15.4723 83.6505 m 20.0928 75.0062 x
+b 20.0928 75.0062 m 25.2796 66.6645 x
+b 25.2796 66.6645 m 31.0014 58.6803 x
+b 31.0014 58.6803 m 37.2195 51.1035 x
+b 37.2195 51.1035 m 43.934 43.934 x
+b 135 120 m 135.032 119.018 x
+b 135.032 119.018 m 135.128 118.043 x
+b 135.128 118.043 m 135.288 117.074 x
+b 135.288 117.074 m 135.511 116.117 x
+b 135.511 116.117 m 135.796 115.179 x
+b 135.796 115.179 m 136.142 114.26 x
+b 136.142 114.26 m 136.547 113.365 x
+b 136.547 113.365 m 137.009 112.501 x
+b 137.009 112.501 m 137.528 111.666 x
+b 137.528 111.666 m 138.1 110.868 x
+b 138.1 110.868 m 138.722 110.11 x
+b 138.722 110.11 m 139.393 109.393 x
+b 43.934 43.934 m 51.1035 37.2195 x
+b 51.1035 37.2195 m 58.6803 31.0014 x
+b 58.6803 31.0014 m 66.6645 25.2796 x
+b 66.6645 25.2796 m 75.0062 20.0928 x
+b 75.0062 20.0928 m 83.6505 15.4723 x
+b 83.6505 15.4723 m 92.5975 11.4181 x
+b 92.5975 11.4181 m 101.791 7.95839 x
+b 101.791 7.95839 m 111.17 5.1131 x
+b 111.17 5.1131 m 120.736 2.88221 x
+b 120.736 2.88221 m 130.428 1.28253 x
+b 130.428 1.28253 m 140.183 0.321791 x
+b 140.183 0.321791 m 150 0 x
+b 139.393 109.393 m 140.11 108.722 x
+b 140.11 108.722 m 140.868 108.1 x
+b 140.868 108.1 m 141.666 107.528 x
+b 141.666 107.528 m 142.501 107.009 x
+b 142.501 107.009 m 143.365 106.547 x
+b 143.365 106.547 m 144.26 106.142 x
+b 144.26 106.142 m 145.179 105.796 x
+b 145.179 105.796 m 146.117 105.511 x
+b 146.117 105.511 m 147.074 105.288 x
+b 147.074 105.288 m 148.043 105.128 x
+b 148.043 105.128 m 149.018 105.032 x
+b 149.018 105.032 m 150 105 x
+b 150 0 m 159.817 0.321791 x
+b 159.817 0.321791 m 169.572 1.28253 x
+b 169.572 1.28253 m 179.264 2.88221 x
+b 179.264 2.88221 m 188.83 5.1131 x
+b 188.83 5.1131 m 198.209 7.95839 x
+b 198.209 7.95839 m 207.403 11.4181 x
+b 207.403 11.4181 m 216.35 15.4723 x
+b 216.35 15.4723 m 224.994 20.0928 x
+b 224.994 20.0928 m 233.336 25.2796 x
+b 233.336 25.2796 m 241.32 31.0014 x
+b 241.32 31.0014 m 248.896 37.2195 x
+b 248.896 37.2195 m 256.066 43.934 x
+b 150 105 m 150.982 105.032 x
+b 150.982 105.032 m 151.957 105.128 x
+b 151.957 105.128 m 152.926 105.288 x
+b 152.926 105.288 m 153.883 105.511 x
+b 153.883 105.511 m 154.821 105.796 x
+b 154.821 105.796 m 155.74 106.142 x
+b 155.74 106.142 m 156.635 106.547 x
+b 156.635 106.547 m 157.499 107.009 x
+b 157.499 107.009 m 158.334 107.528 x
+b 158.334 107.528 m 159.132 108.1 x
+b 159.132 108.1 m 159.89 108.722 x
+b 159.89 108.722 m 160.607 109.393 x
+b 256.066 43.934 m 262.78 51.1035 x
+b 262.78 51.1035 m 268.999 58.6803 x
+b 268.999 58.6803 m 274.72 66.6645 x
+b 274.72 66.6645 m 279.907 75.0062 x
+b 279.907 75.0062 m 284.528 83.6505 x
+b 284.528 83.6505 m 288.582 92.5975 x
+b 288.582 92.5975 m 292.042 101.791 x
+b 292.042 101.791 m 294.887 111.17 x
+b 294.887 111.17 m 297.118 120.736 x
+b 297.118 120.736 m 298.717 130.428 x
+b 298.717 130.428 m 299.678 140.183 x
+b 299.678 140.183 m 300 150 x
+b 160.607 109.393 m 161.278 110.11 x
+b 161.278 110.11 m 161.9 110.868 x
+b 161.9 110.868 m 162.472 111.666 x
+b 162.472 111.666 m 162.991 112.501 x
+b 162.991 112.501 m 163.453 113.365 x
+b 163.453 113.365 m 163.858 114.26 x
+b 163.858 114.26 m 164.204 115.179 x
+b 164.204 115.179 m 164.489 116.117 x
+b 164.489 116.117 m 164.712 117.074 x
+b 164.712 117.074 m 164.872 118.043 x
+b 164.872 118.043 m 164.968 119.018 x
+b 164.968 119.018 m 165 120 x
+showpage
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: no_flux_inhom_01.cc 31349 2013-10-20 19:07:06Z maier $
+//
+// Copyright (C) 2007 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+
+// check the creation of inhomogeneous normal-flux boundary conditions
+// for a finite element that consists of only a single set of vector
+// components (i.e. it has dim components)
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/base/function.h>
+#include <deal.II/base/quadrature_lib.h>
+#include <deal.II/lac/vector.h>
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/dofs/dof_handler.h>
+#include <deal.II/lac/constraint_matrix.h>
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_system.h>
+#include <deal.II/fe/mapping_q1.h>
+#include <deal.II/fe/fe_values.h>
+#include <deal.II/numerics/vector_tools.h>
+
+#include <fstream>
+
+
+template<int dim>
+void test (const Triangulation<dim> &tr,
+ const FiniteElement<dim> &fe)
+{
+ DoFHandler<dim> dof(tr);
+ dof.distribute_dofs(fe);
+
+ ConstantFunction<dim> constant_function(1.,dim);
+ typename FunctionMap<dim>::type function_map;
+ for (unsigned int j=0; j<GeometryInfo<dim>::faces_per_cell; ++j)
+ function_map[j] = &constant_function;
+
+ for (unsigned int i=0; i<GeometryInfo<dim>::faces_per_cell; ++i)
+ {
+ deallog << "FE=" << fe.get_name()
+ << ", case=" << i
+ << std::endl;
+
+ std::set<types::boundary_id> boundary_ids;
+ for (unsigned int j=0; j<=i; ++j)
+ boundary_ids.insert (j);
+
+ ConstraintMatrix cm;
+ VectorTools::compute_nonzero_normal_flux_constraints
+ (dof, 0, boundary_ids, function_map, cm);
+
+ cm.print (deallog.get_file_stream ());
+ }
+ //Get the location of all boundary dofs
+ std::vector<types::global_dof_index> face_dofs;
+ const std::vector<Point<dim-1> > &
+ unit_support_points = fe.get_unit_face_support_points();
+ Quadrature<dim-1> quadrature(unit_support_points);
+ FEFaceValues<dim, dim> fe_face_values(fe, quadrature, update_q_points);
+ typename DoFHandler<dim>::active_cell_iterator
+ cell = dof.begin_active(),
+ endc = dof.end();
+ for (; cell!=endc; ++cell)
+ for (unsigned int face_no=0; face_no < GeometryInfo<dim>::faces_per_cell;
+ ++face_no)
+ if (cell->face(face_no)->at_boundary())
+ {
+ typename DoFHandler<dim>::face_iterator face = cell->face(face_no);
+ face_dofs.resize (fe.dofs_per_face);
+ face->get_dof_indices (face_dofs);
+
+ fe_face_values.reinit(cell, face_no);
+ for (unsigned int i=0; i<face_dofs.size(); ++i)
+ {
+ std::cout << face_dofs[i] << "\t"
+ << fe_face_values.quadrature_point(i) << "\t"
+ << fe.face_system_to_component_index(i).first
+ << std::endl;
+ }
+ }
+
+
+}
+
+
+template<int dim>
+void test_hyper_cube()
+{
+ Triangulation<dim> tr;
+ GridGenerator::hyper_cube(tr);
+
+ for (unsigned int i=0; i<GeometryInfo<dim>::faces_per_cell; ++i)
+ tr.begin_active()->face(i)->set_boundary_indicator (i);
+
+ tr.refine_global(2);
+
+ for (unsigned int degree=1; degree<4; ++degree)
+ {
+ FESystem<dim> fe (FE_Q<dim>(degree), dim);
+ test(tr, fe);
+ }
+}
+
+
+int main()
+{
+ std::ofstream logfile ("output");
+ deallog << std::setprecision (2);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console (0);
+ deallog.threshold_double(1.e-12);
+
+ test_hyper_cube<2>();
+ test_hyper_cube<3>();
+}
--- /dev/null
+
+DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=0
+ 0 = 1.00000
+ 4 = 1.00000
+ 12 = 1.00000
+ 30 = 1.00000
+ 36 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=1
+ 0 = 1.00000
+ 4 = 1.00000
+ 12 = 1.00000
+ 22 = 1.00000
+ 24 = 1.00000
+ 28 = 1.00000
+ 30 = 1.00000
+ 36 = 1.00000
+ 44 = 1.00000
+ 48 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=2
+ 0 = 1.00000
+ 1 = 1.00000
+ 3 = 1.00000
+ 4 = 1.00000
+ 9 = 1.00000
+ 12 = 1.00000
+ 19 = 1.00000
+ 22 = 1.00000
+ 23 = 1.00000
+ 24 = 1.00000
+ 28 = 1.00000
+ 30 = 1.00000
+ 36 = 1.00000
+ 44 = 1.00000
+ 48 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=3
+ 0 = 1.00000
+ 1 = 1.00000
+ 3 = 1.00000
+ 4 = 1.00000
+ 9 = 1.00000
+ 12 = 1.00000
+ 19 = 1.00000
+ 22 = 1.00000
+ 23 = 1.00000
+ 24 = 1.00000
+ 28 = 1.00000
+ 30 = 1.00000
+ 36 = 1.00000
+ 37 = 1.00000
+ 39 = 1.00000
+ 41 = 1.00000
+ 44 = 1.00000
+ 47 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=0
+ 0 = 1.00000
+ 4 = 1.00000
+ 8 = 1.00000
+ 30 = 1.00000
+ 34 = 1.00000
+ 90 = 1.00000
+ 94 = 1.00000
+ 110 = 1.00000
+ 114 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=1
+ 0 = 1.00000
+ 4 = 1.00000
+ 8 = 1.00000
+ 30 = 1.00000
+ 34 = 1.00000
+ 62 = 1.00000
+ 64 = 1.00000
+ 66 = 1.00000
+ 82 = 1.00000
+ 84 = 1.00000
+ 90 = 1.00000
+ 94 = 1.00000
+ 110 = 1.00000
+ 114 = 1.00000
+ 138 = 1.00000
+ 140 = 1.00000
+ 154 = 1.00000
+ 156 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=2
+ 0 = 1.00000
+ 1 = 1.00000
+ 3 = 1.00000
+ 4 = 1.00000
+ 8 = 1.00000
+ 13 = 1.00000
+ 19 = 1.00000
+ 25 = 1.00000
+ 30 = 1.00000
+ 34 = 1.00000
+ 51 = 1.00000
+ 57 = 1.00000
+ 62 = 1.00000
+ 63 = 1.00000
+ 64 = 1.00000
+ 66 = 1.00000
+ 69 = 1.00000
+ 82 = 1.00000
+ 84 = 1.00000
+ 90 = 1.00000
+ 94 = 1.00000
+ 110 = 1.00000
+ 114 = 1.00000
+ 138 = 1.00000
+ 140 = 1.00000
+ 154 = 1.00000
+ 156 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=3
+ 0 = 1.00000
+ 1 = 1.00000
+ 3 = 1.00000
+ 4 = 1.00000
+ 8 = 1.00000
+ 13 = 1.00000
+ 19 = 1.00000
+ 25 = 1.00000
+ 30 = 1.00000
+ 34 = 1.00000
+ 51 = 1.00000
+ 57 = 1.00000
+ 62 = 1.00000
+ 63 = 1.00000
+ 64 = 1.00000
+ 66 = 1.00000
+ 69 = 1.00000
+ 82 = 1.00000
+ 84 = 1.00000
+ 90 = 1.00000
+ 94 = 1.00000
+ 110 = 1.00000
+ 111 = 1.00000
+ 113 = 1.00000
+ 114 = 1.00000
+ 119 = 1.00000
+ 123 = 1.00000
+ 127 = 1.00000
+ 138 = 1.00000
+ 140 = 1.00000
+ 147 = 1.00000
+ 151 = 1.00000
+ 154 = 1.00000
+ 155 = 1.00000
+ 156 = 1.00000
+ 159 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=0
+ 0 = 1.00000
+ 4 = 1.00000
+ 8 = 1.00000
+ 9 = 1.00000
+ 56 = 1.00000
+ 60 = 1.00000
+ 61 = 1.00000
+ 182 = 1.00000
+ 186 = 1.00000
+ 187 = 1.00000
+ 224 = 1.00000
+ 228 = 1.00000
+ 229 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=1
+ 0 = 1.00000
+ 4 = 1.00000
+ 8 = 1.00000
+ 9 = 1.00000
+ 56 = 1.00000
+ 60 = 1.00000
+ 61 = 1.00000
+ 122 = 1.00000
+ 124 = 1.00000
+ 126 = 1.00000
+ 127 = 1.00000
+ 164 = 1.00000
+ 166 = 1.00000
+ 167 = 1.00000
+ 182 = 1.00000
+ 186 = 1.00000
+ 187 = 1.00000
+ 224 = 1.00000
+ 228 = 1.00000
+ 229 = 1.00000
+ 284 = 1.00000
+ 286 = 1.00000
+ 287 = 1.00000
+ 320 = 1.00000
+ 322 = 1.00000
+ 323 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=2
+ 0 = 1.00000
+ 1 = 1.00000
+ 3 = 1.00000
+ 4 = 1.00000
+ 8 = 1.00000
+ 9 = 1.00000
+ 18 = 1.00000
+ 19 = 1.00000
+ 33 = 1.00000
+ 42 = 1.00000
+ 43 = 1.00000
+ 56 = 1.00000
+ 60 = 1.00000
+ 61 = 1.00000
+ 99 = 1.00000
+ 108 = 1.00000
+ 109 = 1.00000
+ 122 = 1.00000
+ 123 = 1.00000
+ 124 = 1.00000
+ 126 = 1.00000
+ 127 = 1.00000
+ 132 = 1.00000
+ 133 = 1.00000
+ 164 = 1.00000
+ 166 = 1.00000
+ 167 = 1.00000
+ 182 = 1.00000
+ 186 = 1.00000
+ 187 = 1.00000
+ 224 = 1.00000
+ 228 = 1.00000
+ 229 = 1.00000
+ 284 = 1.00000
+ 286 = 1.00000
+ 287 = 1.00000
+ 320 = 1.00000
+ 322 = 1.00000
+ 323 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=3
+ 0 = 1.00000
+ 1 = 1.00000
+ 3 = 1.00000
+ 4 = 1.00000
+ 8 = 1.00000
+ 9 = 1.00000
+ 18 = 1.00000
+ 19 = 1.00000
+ 33 = 1.00000
+ 42 = 1.00000
+ 43 = 1.00000
+ 56 = 1.00000
+ 60 = 1.00000
+ 61 = 1.00000
+ 99 = 1.00000
+ 108 = 1.00000
+ 109 = 1.00000
+ 122 = 1.00000
+ 123 = 1.00000
+ 124 = 1.00000
+ 126 = 1.00000
+ 127 = 1.00000
+ 132 = 1.00000
+ 133 = 1.00000
+ 164 = 1.00000
+ 166 = 1.00000
+ 167 = 1.00000
+ 182 = 1.00000
+ 186 = 1.00000
+ 187 = 1.00000
+ 224 = 1.00000
+ 225 = 1.00000
+ 227 = 1.00000
+ 228 = 1.00000
+ 229 = 1.00000
+ 238 = 1.00000
+ 239 = 1.00000
+ 249 = 1.00000
+ 256 = 1.00000
+ 257 = 1.00000
+ 284 = 1.00000
+ 286 = 1.00000
+ 287 = 1.00000
+ 303 = 1.00000
+ 310 = 1.00000
+ 311 = 1.00000
+ 320 = 1.00000
+ 321 = 1.00000
+ 322 = 1.00000
+ 323 = 1.00000
+ 328 = 1.00000
+ 329 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=0
+ 0 = 1.00000
+ 6 = 1.00000
+ 12 = 1.00000
+ 18 = 1.00000
+ 36 = 1.00000
+ 42 = 1.00000
+ 54 = 1.00000
+ 60 = 1.00000
+ 72 = 1.00000
+ 135 = 1.00000
+ 141 = 1.00000
+ 153 = 1.00000
+ 159 = 1.00000
+ 171 = 1.00000
+ 180 = 1.00000
+ 225 = 1.00000
+ 231 = 1.00000
+ 243 = 1.00000
+ 252 = 1.00000
+ 258 = 1.00000
+ 270 = 1.00000
+ 315 = 1.00000
+ 324 = 1.00000
+ 333 = 1.00000
+ 342 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=1
+ 0 = 1.00000
+ 6 = 1.00000
+ 12 = 1.00000
+ 18 = 1.00000
+ 36 = 1.00000
+ 42 = 1.00000
+ 54 = 1.00000
+ 60 = 1.00000
+ 72 = 1.00000
+ 93 = 1.00000
+ 96 = 1.00000
+ 99 = 1.00000
+ 102 = 1.00000
+ 111 = 1.00000
+ 114 = 1.00000
+ 123 = 1.00000
+ 126 = 1.00000
+ 132 = 1.00000
+ 135 = 1.00000
+ 141 = 1.00000
+ 153 = 1.00000
+ 159 = 1.00000
+ 171 = 1.00000
+ 180 = 1.00000
+ 195 = 1.00000
+ 198 = 1.00000
+ 207 = 1.00000
+ 210 = 1.00000
+ 216 = 1.00000
+ 222 = 1.00000
+ 225 = 1.00000
+ 231 = 1.00000
+ 243 = 1.00000
+ 252 = 1.00000
+ 258 = 1.00000
+ 270 = 1.00000
+ 285 = 1.00000
+ 288 = 1.00000
+ 294 = 1.00000
+ 303 = 1.00000
+ 306 = 1.00000
+ 312 = 1.00000
+ 315 = 1.00000
+ 324 = 1.00000
+ 333 = 1.00000
+ 342 = 1.00000
+ 354 = 1.00000
+ 360 = 1.00000
+ 366 = 1.00000
+ 372 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=2
+ 0 = 1.00000
+ 1 = 1.00000
+ 4 = 1.00000
+ 6 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 16 = 1.00000
+ 18 = 1.00000
+ 25 = 1.00000
+ 31 = 1.00000
+ 36 = 1.00000
+ 42 = 1.00000
+ 54 = 1.00000
+ 55 = 1.00000
+ 58 = 1.00000
+ 60 = 1.00000
+ 67 = 1.00000
+ 72 = 1.00000
+ 82 = 1.00000
+ 88 = 1.00000
+ 93 = 1.00000
+ 94 = 1.00000
+ 96 = 1.00000
+ 99 = 1.00000
+ 100 = 1.00000
+ 102 = 1.00000
+ 111 = 1.00000
+ 114 = 1.00000
+ 118 = 1.00000
+ 123 = 1.00000
+ 124 = 1.00000
+ 126 = 1.00000
+ 132 = 1.00000
+ 135 = 1.00000
+ 141 = 1.00000
+ 153 = 1.00000
+ 159 = 1.00000
+ 171 = 1.00000
+ 180 = 1.00000
+ 195 = 1.00000
+ 198 = 1.00000
+ 207 = 1.00000
+ 210 = 1.00000
+ 216 = 1.00000
+ 222 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 229 = 1.00000
+ 231 = 1.00000
+ 238 = 1.00000
+ 243 = 1.00000
+ 252 = 1.00000
+ 253 = 1.00000
+ 256 = 1.00000
+ 258 = 1.00000
+ 265 = 1.00000
+ 270 = 1.00000
+ 280 = 1.00000
+ 285 = 1.00000
+ 286 = 1.00000
+ 288 = 1.00000
+ 294 = 1.00000
+ 298 = 1.00000
+ 303 = 1.00000
+ 304 = 1.00000
+ 306 = 1.00000
+ 312 = 1.00000
+ 315 = 1.00000
+ 324 = 1.00000
+ 333 = 1.00000
+ 342 = 1.00000
+ 354 = 1.00000
+ 360 = 1.00000
+ 366 = 1.00000
+ 372 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=3
+ 0 = 1.00000
+ 1 = 1.00000
+ 4 = 1.00000
+ 6 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 16 = 1.00000
+ 18 = 1.00000
+ 25 = 1.00000
+ 31 = 1.00000
+ 36 = 1.00000
+ 42 = 1.00000
+ 54 = 1.00000
+ 55 = 1.00000
+ 58 = 1.00000
+ 60 = 1.00000
+ 67 = 1.00000
+ 72 = 1.00000
+ 82 = 1.00000
+ 88 = 1.00000
+ 93 = 1.00000
+ 94 = 1.00000
+ 96 = 1.00000
+ 99 = 1.00000
+ 100 = 1.00000
+ 102 = 1.00000
+ 111 = 1.00000
+ 114 = 1.00000
+ 118 = 1.00000
+ 123 = 1.00000
+ 124 = 1.00000
+ 126 = 1.00000
+ 132 = 1.00000
+ 135 = 1.00000
+ 141 = 1.00000
+ 153 = 1.00000
+ 154 = 1.00000
+ 157 = 1.00000
+ 159 = 1.00000
+ 160 = 1.00000
+ 163 = 1.00000
+ 166 = 1.00000
+ 169 = 1.00000
+ 171 = 1.00000
+ 180 = 1.00000
+ 181 = 1.00000
+ 184 = 1.00000
+ 187 = 1.00000
+ 195 = 1.00000
+ 198 = 1.00000
+ 202 = 1.00000
+ 205 = 1.00000
+ 207 = 1.00000
+ 208 = 1.00000
+ 210 = 1.00000
+ 211 = 1.00000
+ 216 = 1.00000
+ 220 = 1.00000
+ 222 = 1.00000
+ 223 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 229 = 1.00000
+ 231 = 1.00000
+ 238 = 1.00000
+ 243 = 1.00000
+ 252 = 1.00000
+ 253 = 1.00000
+ 256 = 1.00000
+ 258 = 1.00000
+ 265 = 1.00000
+ 270 = 1.00000
+ 280 = 1.00000
+ 285 = 1.00000
+ 286 = 1.00000
+ 288 = 1.00000
+ 294 = 1.00000
+ 298 = 1.00000
+ 303 = 1.00000
+ 304 = 1.00000
+ 306 = 1.00000
+ 312 = 1.00000
+ 315 = 1.00000
+ 324 = 1.00000
+ 325 = 1.00000
+ 328 = 1.00000
+ 331 = 1.00000
+ 333 = 1.00000
+ 342 = 1.00000
+ 343 = 1.00000
+ 346 = 1.00000
+ 349 = 1.00000
+ 354 = 1.00000
+ 358 = 1.00000
+ 360 = 1.00000
+ 361 = 1.00000
+ 366 = 1.00000
+ 370 = 1.00000
+ 372 = 1.00000
+ 373 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=4
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 4 = 1.00000
+ 5 = 1.00000
+ 6 = 1.00000
+ 8 = 1.00000
+ 11 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 16 = 1.00000
+ 18 = 1.00000
+ 25 = 1.00000
+ 26 = 1.00000
+ 29 = 1.00000
+ 31 = 1.00000
+ 36 = 1.00000
+ 38 = 1.00000
+ 41 = 1.00000
+ 42 = 1.00000
+ 50 = 1.00000
+ 54 = 1.00000
+ 55 = 1.00000
+ 58 = 1.00000
+ 60 = 1.00000
+ 67 = 1.00000
+ 72 = 1.00000
+ 82 = 1.00000
+ 83 = 1.00000
+ 86 = 1.00000
+ 88 = 1.00000
+ 93 = 1.00000
+ 94 = 1.00000
+ 95 = 1.00000
+ 96 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 100 = 1.00000
+ 102 = 1.00000
+ 107 = 1.00000
+ 111 = 1.00000
+ 113 = 1.00000
+ 114 = 1.00000
+ 118 = 1.00000
+ 123 = 1.00000
+ 124 = 1.00000
+ 126 = 1.00000
+ 132 = 1.00000
+ 135 = 1.00000
+ 137 = 1.00000
+ 140 = 1.00000
+ 141 = 1.00000
+ 149 = 1.00000
+ 153 = 1.00000
+ 154 = 1.00000
+ 155 = 1.00000
+ 157 = 1.00000
+ 158 = 1.00000
+ 159 = 1.00000
+ 160 = 1.00000
+ 163 = 1.00000
+ 166 = 1.00000
+ 167 = 1.00000
+ 169 = 1.00000
+ 171 = 1.00000
+ 180 = 1.00000
+ 181 = 1.00000
+ 184 = 1.00000
+ 187 = 1.00000
+ 191 = 1.00000
+ 195 = 1.00000
+ 197 = 1.00000
+ 198 = 1.00000
+ 202 = 1.00000
+ 203 = 1.00000
+ 205 = 1.00000
+ 207 = 1.00000
+ 208 = 1.00000
+ 209 = 1.00000
+ 210 = 1.00000
+ 211 = 1.00000
+ 216 = 1.00000
+ 220 = 1.00000
+ 222 = 1.00000
+ 223 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 229 = 1.00000
+ 231 = 1.00000
+ 238 = 1.00000
+ 243 = 1.00000
+ 252 = 1.00000
+ 253 = 1.00000
+ 256 = 1.00000
+ 258 = 1.00000
+ 265 = 1.00000
+ 270 = 1.00000
+ 280 = 1.00000
+ 285 = 1.00000
+ 286 = 1.00000
+ 288 = 1.00000
+ 294 = 1.00000
+ 298 = 1.00000
+ 303 = 1.00000
+ 304 = 1.00000
+ 306 = 1.00000
+ 312 = 1.00000
+ 315 = 1.00000
+ 324 = 1.00000
+ 325 = 1.00000
+ 328 = 1.00000
+ 331 = 1.00000
+ 333 = 1.00000
+ 342 = 1.00000
+ 343 = 1.00000
+ 346 = 1.00000
+ 349 = 1.00000
+ 354 = 1.00000
+ 358 = 1.00000
+ 360 = 1.00000
+ 361 = 1.00000
+ 366 = 1.00000
+ 370 = 1.00000
+ 372 = 1.00000
+ 373 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=5
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 4 = 1.00000
+ 5 = 1.00000
+ 6 = 1.00000
+ 8 = 1.00000
+ 11 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 16 = 1.00000
+ 18 = 1.00000
+ 25 = 1.00000
+ 26 = 1.00000
+ 29 = 1.00000
+ 31 = 1.00000
+ 36 = 1.00000
+ 38 = 1.00000
+ 41 = 1.00000
+ 42 = 1.00000
+ 50 = 1.00000
+ 54 = 1.00000
+ 55 = 1.00000
+ 58 = 1.00000
+ 60 = 1.00000
+ 67 = 1.00000
+ 72 = 1.00000
+ 82 = 1.00000
+ 83 = 1.00000
+ 86 = 1.00000
+ 88 = 1.00000
+ 93 = 1.00000
+ 94 = 1.00000
+ 95 = 1.00000
+ 96 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 100 = 1.00000
+ 102 = 1.00000
+ 107 = 1.00000
+ 111 = 1.00000
+ 113 = 1.00000
+ 114 = 1.00000
+ 118 = 1.00000
+ 123 = 1.00000
+ 124 = 1.00000
+ 126 = 1.00000
+ 132 = 1.00000
+ 135 = 1.00000
+ 137 = 1.00000
+ 140 = 1.00000
+ 141 = 1.00000
+ 149 = 1.00000
+ 153 = 1.00000
+ 154 = 1.00000
+ 155 = 1.00000
+ 157 = 1.00000
+ 158 = 1.00000
+ 159 = 1.00000
+ 160 = 1.00000
+ 163 = 1.00000
+ 166 = 1.00000
+ 167 = 1.00000
+ 169 = 1.00000
+ 171 = 1.00000
+ 180 = 1.00000
+ 181 = 1.00000
+ 184 = 1.00000
+ 187 = 1.00000
+ 191 = 1.00000
+ 195 = 1.00000
+ 197 = 1.00000
+ 198 = 1.00000
+ 202 = 1.00000
+ 203 = 1.00000
+ 205 = 1.00000
+ 207 = 1.00000
+ 208 = 1.00000
+ 209 = 1.00000
+ 210 = 1.00000
+ 211 = 1.00000
+ 216 = 1.00000
+ 220 = 1.00000
+ 222 = 1.00000
+ 223 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 229 = 1.00000
+ 231 = 1.00000
+ 238 = 1.00000
+ 243 = 1.00000
+ 252 = 1.00000
+ 253 = 1.00000
+ 254 = 1.00000
+ 256 = 1.00000
+ 257 = 1.00000
+ 258 = 1.00000
+ 260 = 1.00000
+ 263 = 1.00000
+ 265 = 1.00000
+ 266 = 1.00000
+ 269 = 1.00000
+ 270 = 1.00000
+ 272 = 1.00000
+ 275 = 1.00000
+ 278 = 1.00000
+ 280 = 1.00000
+ 285 = 1.00000
+ 286 = 1.00000
+ 288 = 1.00000
+ 294 = 1.00000
+ 298 = 1.00000
+ 299 = 1.00000
+ 302 = 1.00000
+ 303 = 1.00000
+ 304 = 1.00000
+ 305 = 1.00000
+ 306 = 1.00000
+ 308 = 1.00000
+ 311 = 1.00000
+ 312 = 1.00000
+ 314 = 1.00000
+ 315 = 1.00000
+ 324 = 1.00000
+ 325 = 1.00000
+ 328 = 1.00000
+ 331 = 1.00000
+ 333 = 1.00000
+ 335 = 1.00000
+ 338 = 1.00000
+ 341 = 1.00000
+ 342 = 1.00000
+ 343 = 1.00000
+ 344 = 1.00000
+ 346 = 1.00000
+ 347 = 1.00000
+ 349 = 1.00000
+ 350 = 1.00000
+ 354 = 1.00000
+ 358 = 1.00000
+ 360 = 1.00000
+ 361 = 1.00000
+ 365 = 1.00000
+ 366 = 1.00000
+ 368 = 1.00000
+ 370 = 1.00000
+ 371 = 1.00000
+ 372 = 1.00000
+ 373 = 1.00000
+ 374 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=0
+ 0 = 1.00000
+ 6 = 1.00000
+ 12 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 36 = 1.00000
+ 48 = 1.00000
+ 54 = 1.00000
+ 60 = 1.00000
+ 135 = 1.00000
+ 141 = 1.00000
+ 147 = 1.00000
+ 156 = 1.00000
+ 165 = 1.00000
+ 171 = 1.00000
+ 225 = 1.00000
+ 231 = 1.00000
+ 237 = 1.00000
+ 249 = 1.00000
+ 255 = 1.00000
+ 261 = 1.00000
+ 315 = 1.00000
+ 321 = 1.00000
+ 330 = 1.00000
+ 336 = 1.00000
+ 675 = 1.00000
+ 681 = 1.00000
+ 687 = 1.00000
+ 696 = 1.00000
+ 705 = 1.00000
+ 711 = 1.00000
+ 765 = 1.00000
+ 771 = 1.00000
+ 777 = 1.00000
+ 786 = 1.00000
+ 795 = 1.00000
+ 801 = 1.00000
+ 855 = 1.00000
+ 861 = 1.00000
+ 870 = 1.00000
+ 876 = 1.00000
+ 915 = 1.00000
+ 921 = 1.00000
+ 930 = 1.00000
+ 936 = 1.00000
+ 1215 = 1.00000
+ 1221 = 1.00000
+ 1227 = 1.00000
+ 1239 = 1.00000
+ 1245 = 1.00000
+ 1251 = 1.00000
+ 1305 = 1.00000
+ 1311 = 1.00000
+ 1320 = 1.00000
+ 1326 = 1.00000
+ 1365 = 1.00000
+ 1371 = 1.00000
+ 1377 = 1.00000
+ 1389 = 1.00000
+ 1395 = 1.00000
+ 1401 = 1.00000
+ 1455 = 1.00000
+ 1461 = 1.00000
+ 1470 = 1.00000
+ 1476 = 1.00000
+ 1755 = 1.00000
+ 1761 = 1.00000
+ 1770 = 1.00000
+ 1776 = 1.00000
+ 1815 = 1.00000
+ 1821 = 1.00000
+ 1830 = 1.00000
+ 1836 = 1.00000
+ 1875 = 1.00000
+ 1881 = 1.00000
+ 1890 = 1.00000
+ 1896 = 1.00000
+ 1935 = 1.00000
+ 1941 = 1.00000
+ 1950 = 1.00000
+ 1956 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=1
+ 0 = 1.00000
+ 6 = 1.00000
+ 12 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 36 = 1.00000
+ 48 = 1.00000
+ 54 = 1.00000
+ 60 = 1.00000
+ 135 = 1.00000
+ 141 = 1.00000
+ 147 = 1.00000
+ 156 = 1.00000
+ 165 = 1.00000
+ 171 = 1.00000
+ 225 = 1.00000
+ 231 = 1.00000
+ 237 = 1.00000
+ 249 = 1.00000
+ 255 = 1.00000
+ 261 = 1.00000
+ 315 = 1.00000
+ 321 = 1.00000
+ 330 = 1.00000
+ 336 = 1.00000
+ 429 = 1.00000
+ 432 = 1.00000
+ 435 = 1.00000
+ 438 = 1.00000
+ 441 = 1.00000
+ 450 = 1.00000
+ 459 = 1.00000
+ 462 = 1.00000
+ 465 = 1.00000
+ 519 = 1.00000
+ 522 = 1.00000
+ 525 = 1.00000
+ 531 = 1.00000
+ 537 = 1.00000
+ 540 = 1.00000
+ 591 = 1.00000
+ 594 = 1.00000
+ 597 = 1.00000
+ 606 = 1.00000
+ 609 = 1.00000
+ 612 = 1.00000
+ 651 = 1.00000
+ 654 = 1.00000
+ 660 = 1.00000
+ 663 = 1.00000
+ 675 = 1.00000
+ 681 = 1.00000
+ 687 = 1.00000
+ 696 = 1.00000
+ 705 = 1.00000
+ 711 = 1.00000
+ 765 = 1.00000
+ 771 = 1.00000
+ 777 = 1.00000
+ 786 = 1.00000
+ 795 = 1.00000
+ 801 = 1.00000
+ 855 = 1.00000
+ 861 = 1.00000
+ 870 = 1.00000
+ 876 = 1.00000
+ 915 = 1.00000
+ 921 = 1.00000
+ 930 = 1.00000
+ 936 = 1.00000
+ 1011 = 1.00000
+ 1014 = 1.00000
+ 1017 = 1.00000
+ 1023 = 1.00000
+ 1029 = 1.00000
+ 1032 = 1.00000
+ 1083 = 1.00000
+ 1086 = 1.00000
+ 1089 = 1.00000
+ 1095 = 1.00000
+ 1101 = 1.00000
+ 1104 = 1.00000
+ 1143 = 1.00000
+ 1146 = 1.00000
+ 1152 = 1.00000
+ 1155 = 1.00000
+ 1191 = 1.00000
+ 1194 = 1.00000
+ 1200 = 1.00000
+ 1203 = 1.00000
+ 1215 = 1.00000
+ 1221 = 1.00000
+ 1227 = 1.00000
+ 1239 = 1.00000
+ 1245 = 1.00000
+ 1251 = 1.00000
+ 1305 = 1.00000
+ 1311 = 1.00000
+ 1320 = 1.00000
+ 1326 = 1.00000
+ 1365 = 1.00000
+ 1371 = 1.00000
+ 1377 = 1.00000
+ 1389 = 1.00000
+ 1395 = 1.00000
+ 1401 = 1.00000
+ 1455 = 1.00000
+ 1461 = 1.00000
+ 1470 = 1.00000
+ 1476 = 1.00000
+ 1551 = 1.00000
+ 1554 = 1.00000
+ 1557 = 1.00000
+ 1566 = 1.00000
+ 1569 = 1.00000
+ 1572 = 1.00000
+ 1611 = 1.00000
+ 1614 = 1.00000
+ 1620 = 1.00000
+ 1623 = 1.00000
+ 1671 = 1.00000
+ 1674 = 1.00000
+ 1677 = 1.00000
+ 1686 = 1.00000
+ 1689 = 1.00000
+ 1692 = 1.00000
+ 1731 = 1.00000
+ 1734 = 1.00000
+ 1740 = 1.00000
+ 1743 = 1.00000
+ 1755 = 1.00000
+ 1761 = 1.00000
+ 1770 = 1.00000
+ 1776 = 1.00000
+ 1815 = 1.00000
+ 1821 = 1.00000
+ 1830 = 1.00000
+ 1836 = 1.00000
+ 1875 = 1.00000
+ 1881 = 1.00000
+ 1890 = 1.00000
+ 1896 = 1.00000
+ 1935 = 1.00000
+ 1941 = 1.00000
+ 1950 = 1.00000
+ 1956 = 1.00000
+ 2019 = 1.00000
+ 2022 = 1.00000
+ 2028 = 1.00000
+ 2031 = 1.00000
+ 2067 = 1.00000
+ 2070 = 1.00000
+ 2076 = 1.00000
+ 2079 = 1.00000
+ 2115 = 1.00000
+ 2118 = 1.00000
+ 2124 = 1.00000
+ 2127 = 1.00000
+ 2163 = 1.00000
+ 2166 = 1.00000
+ 2172 = 1.00000
+ 2175 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=2
+ 0 = 1.00000
+ 1 = 1.00000
+ 4 = 1.00000
+ 6 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 16 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 31 = 1.00000
+ 36 = 1.00000
+ 43 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 52 = 1.00000
+ 54 = 1.00000
+ 60 = 1.00000
+ 67 = 1.00000
+ 82 = 1.00000
+ 88 = 1.00000
+ 97 = 1.00000
+ 106 = 1.00000
+ 112 = 1.00000
+ 121 = 1.00000
+ 135 = 1.00000
+ 141 = 1.00000
+ 147 = 1.00000
+ 156 = 1.00000
+ 165 = 1.00000
+ 171 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 229 = 1.00000
+ 231 = 1.00000
+ 237 = 1.00000
+ 244 = 1.00000
+ 249 = 1.00000
+ 250 = 1.00000
+ 253 = 1.00000
+ 255 = 1.00000
+ 261 = 1.00000
+ 268 = 1.00000
+ 280 = 1.00000
+ 289 = 1.00000
+ 295 = 1.00000
+ 304 = 1.00000
+ 315 = 1.00000
+ 321 = 1.00000
+ 330 = 1.00000
+ 336 = 1.00000
+ 376 = 1.00000
+ 382 = 1.00000
+ 391 = 1.00000
+ 400 = 1.00000
+ 406 = 1.00000
+ 415 = 1.00000
+ 429 = 1.00000
+ 430 = 1.00000
+ 432 = 1.00000
+ 435 = 1.00000
+ 436 = 1.00000
+ 438 = 1.00000
+ 441 = 1.00000
+ 445 = 1.00000
+ 450 = 1.00000
+ 454 = 1.00000
+ 459 = 1.00000
+ 460 = 1.00000
+ 462 = 1.00000
+ 465 = 1.00000
+ 469 = 1.00000
+ 519 = 1.00000
+ 522 = 1.00000
+ 525 = 1.00000
+ 531 = 1.00000
+ 537 = 1.00000
+ 540 = 1.00000
+ 556 = 1.00000
+ 565 = 1.00000
+ 571 = 1.00000
+ 580 = 1.00000
+ 591 = 1.00000
+ 592 = 1.00000
+ 594 = 1.00000
+ 597 = 1.00000
+ 601 = 1.00000
+ 606 = 1.00000
+ 607 = 1.00000
+ 609 = 1.00000
+ 612 = 1.00000
+ 616 = 1.00000
+ 651 = 1.00000
+ 654 = 1.00000
+ 660 = 1.00000
+ 663 = 1.00000
+ 675 = 1.00000
+ 681 = 1.00000
+ 687 = 1.00000
+ 696 = 1.00000
+ 705 = 1.00000
+ 711 = 1.00000
+ 765 = 1.00000
+ 771 = 1.00000
+ 777 = 1.00000
+ 786 = 1.00000
+ 795 = 1.00000
+ 801 = 1.00000
+ 855 = 1.00000
+ 861 = 1.00000
+ 870 = 1.00000
+ 876 = 1.00000
+ 915 = 1.00000
+ 921 = 1.00000
+ 930 = 1.00000
+ 936 = 1.00000
+ 1011 = 1.00000
+ 1014 = 1.00000
+ 1017 = 1.00000
+ 1023 = 1.00000
+ 1029 = 1.00000
+ 1032 = 1.00000
+ 1083 = 1.00000
+ 1086 = 1.00000
+ 1089 = 1.00000
+ 1095 = 1.00000
+ 1101 = 1.00000
+ 1104 = 1.00000
+ 1143 = 1.00000
+ 1146 = 1.00000
+ 1152 = 1.00000
+ 1155 = 1.00000
+ 1191 = 1.00000
+ 1194 = 1.00000
+ 1200 = 1.00000
+ 1203 = 1.00000
+ 1215 = 1.00000
+ 1216 = 1.00000
+ 1219 = 1.00000
+ 1221 = 1.00000
+ 1227 = 1.00000
+ 1234 = 1.00000
+ 1239 = 1.00000
+ 1240 = 1.00000
+ 1243 = 1.00000
+ 1245 = 1.00000
+ 1251 = 1.00000
+ 1258 = 1.00000
+ 1270 = 1.00000
+ 1279 = 1.00000
+ 1285 = 1.00000
+ 1294 = 1.00000
+ 1305 = 1.00000
+ 1311 = 1.00000
+ 1320 = 1.00000
+ 1326 = 1.00000
+ 1365 = 1.00000
+ 1366 = 1.00000
+ 1369 = 1.00000
+ 1371 = 1.00000
+ 1377 = 1.00000
+ 1384 = 1.00000
+ 1389 = 1.00000
+ 1390 = 1.00000
+ 1393 = 1.00000
+ 1395 = 1.00000
+ 1401 = 1.00000
+ 1408 = 1.00000
+ 1420 = 1.00000
+ 1429 = 1.00000
+ 1435 = 1.00000
+ 1444 = 1.00000
+ 1455 = 1.00000
+ 1461 = 1.00000
+ 1470 = 1.00000
+ 1476 = 1.00000
+ 1516 = 1.00000
+ 1525 = 1.00000
+ 1531 = 1.00000
+ 1540 = 1.00000
+ 1551 = 1.00000
+ 1552 = 1.00000
+ 1554 = 1.00000
+ 1557 = 1.00000
+ 1561 = 1.00000
+ 1566 = 1.00000
+ 1567 = 1.00000
+ 1569 = 1.00000
+ 1572 = 1.00000
+ 1576 = 1.00000
+ 1611 = 1.00000
+ 1614 = 1.00000
+ 1620 = 1.00000
+ 1623 = 1.00000
+ 1636 = 1.00000
+ 1645 = 1.00000
+ 1651 = 1.00000
+ 1660 = 1.00000
+ 1671 = 1.00000
+ 1672 = 1.00000
+ 1674 = 1.00000
+ 1677 = 1.00000
+ 1681 = 1.00000
+ 1686 = 1.00000
+ 1687 = 1.00000
+ 1689 = 1.00000
+ 1692 = 1.00000
+ 1696 = 1.00000
+ 1731 = 1.00000
+ 1734 = 1.00000
+ 1740 = 1.00000
+ 1743 = 1.00000
+ 1755 = 1.00000
+ 1761 = 1.00000
+ 1770 = 1.00000
+ 1776 = 1.00000
+ 1815 = 1.00000
+ 1821 = 1.00000
+ 1830 = 1.00000
+ 1836 = 1.00000
+ 1875 = 1.00000
+ 1881 = 1.00000
+ 1890 = 1.00000
+ 1896 = 1.00000
+ 1935 = 1.00000
+ 1941 = 1.00000
+ 1950 = 1.00000
+ 1956 = 1.00000
+ 2019 = 1.00000
+ 2022 = 1.00000
+ 2028 = 1.00000
+ 2031 = 1.00000
+ 2067 = 1.00000
+ 2070 = 1.00000
+ 2076 = 1.00000
+ 2079 = 1.00000
+ 2115 = 1.00000
+ 2118 = 1.00000
+ 2124 = 1.00000
+ 2127 = 1.00000
+ 2163 = 1.00000
+ 2166 = 1.00000
+ 2172 = 1.00000
+ 2175 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=3
+ 0 = 1.00000
+ 1 = 1.00000
+ 4 = 1.00000
+ 6 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 16 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 31 = 1.00000
+ 36 = 1.00000
+ 43 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 52 = 1.00000
+ 54 = 1.00000
+ 60 = 1.00000
+ 67 = 1.00000
+ 82 = 1.00000
+ 88 = 1.00000
+ 97 = 1.00000
+ 106 = 1.00000
+ 112 = 1.00000
+ 121 = 1.00000
+ 135 = 1.00000
+ 141 = 1.00000
+ 147 = 1.00000
+ 156 = 1.00000
+ 165 = 1.00000
+ 171 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 229 = 1.00000
+ 231 = 1.00000
+ 237 = 1.00000
+ 244 = 1.00000
+ 249 = 1.00000
+ 250 = 1.00000
+ 253 = 1.00000
+ 255 = 1.00000
+ 261 = 1.00000
+ 268 = 1.00000
+ 280 = 1.00000
+ 289 = 1.00000
+ 295 = 1.00000
+ 304 = 1.00000
+ 315 = 1.00000
+ 321 = 1.00000
+ 330 = 1.00000
+ 336 = 1.00000
+ 376 = 1.00000
+ 382 = 1.00000
+ 391 = 1.00000
+ 400 = 1.00000
+ 406 = 1.00000
+ 415 = 1.00000
+ 429 = 1.00000
+ 430 = 1.00000
+ 432 = 1.00000
+ 435 = 1.00000
+ 436 = 1.00000
+ 438 = 1.00000
+ 441 = 1.00000
+ 445 = 1.00000
+ 450 = 1.00000
+ 454 = 1.00000
+ 459 = 1.00000
+ 460 = 1.00000
+ 462 = 1.00000
+ 465 = 1.00000
+ 469 = 1.00000
+ 519 = 1.00000
+ 522 = 1.00000
+ 525 = 1.00000
+ 531 = 1.00000
+ 537 = 1.00000
+ 540 = 1.00000
+ 556 = 1.00000
+ 565 = 1.00000
+ 571 = 1.00000
+ 580 = 1.00000
+ 591 = 1.00000
+ 592 = 1.00000
+ 594 = 1.00000
+ 597 = 1.00000
+ 601 = 1.00000
+ 606 = 1.00000
+ 607 = 1.00000
+ 609 = 1.00000
+ 612 = 1.00000
+ 616 = 1.00000
+ 651 = 1.00000
+ 654 = 1.00000
+ 660 = 1.00000
+ 663 = 1.00000
+ 675 = 1.00000
+ 681 = 1.00000
+ 687 = 1.00000
+ 696 = 1.00000
+ 705 = 1.00000
+ 711 = 1.00000
+ 765 = 1.00000
+ 766 = 1.00000
+ 769 = 1.00000
+ 771 = 1.00000
+ 772 = 1.00000
+ 775 = 1.00000
+ 777 = 1.00000
+ 784 = 1.00000
+ 786 = 1.00000
+ 793 = 1.00000
+ 795 = 1.00000
+ 796 = 1.00000
+ 799 = 1.00000
+ 801 = 1.00000
+ 808 = 1.00000
+ 820 = 1.00000
+ 823 = 1.00000
+ 829 = 1.00000
+ 835 = 1.00000
+ 838 = 1.00000
+ 844 = 1.00000
+ 855 = 1.00000
+ 861 = 1.00000
+ 870 = 1.00000
+ 876 = 1.00000
+ 915 = 1.00000
+ 916 = 1.00000
+ 919 = 1.00000
+ 921 = 1.00000
+ 928 = 1.00000
+ 930 = 1.00000
+ 931 = 1.00000
+ 934 = 1.00000
+ 936 = 1.00000
+ 943 = 1.00000
+ 952 = 1.00000
+ 958 = 1.00000
+ 961 = 1.00000
+ 967 = 1.00000
+ 1011 = 1.00000
+ 1014 = 1.00000
+ 1017 = 1.00000
+ 1023 = 1.00000
+ 1029 = 1.00000
+ 1032 = 1.00000
+ 1048 = 1.00000
+ 1051 = 1.00000
+ 1057 = 1.00000
+ 1063 = 1.00000
+ 1066 = 1.00000
+ 1072 = 1.00000
+ 1083 = 1.00000
+ 1084 = 1.00000
+ 1086 = 1.00000
+ 1087 = 1.00000
+ 1089 = 1.00000
+ 1093 = 1.00000
+ 1095 = 1.00000
+ 1099 = 1.00000
+ 1101 = 1.00000
+ 1102 = 1.00000
+ 1104 = 1.00000
+ 1108 = 1.00000
+ 1143 = 1.00000
+ 1146 = 1.00000
+ 1152 = 1.00000
+ 1155 = 1.00000
+ 1168 = 1.00000
+ 1174 = 1.00000
+ 1177 = 1.00000
+ 1183 = 1.00000
+ 1191 = 1.00000
+ 1192 = 1.00000
+ 1194 = 1.00000
+ 1198 = 1.00000
+ 1200 = 1.00000
+ 1201 = 1.00000
+ 1203 = 1.00000
+ 1207 = 1.00000
+ 1215 = 1.00000
+ 1216 = 1.00000
+ 1219 = 1.00000
+ 1221 = 1.00000
+ 1227 = 1.00000
+ 1234 = 1.00000
+ 1239 = 1.00000
+ 1240 = 1.00000
+ 1243 = 1.00000
+ 1245 = 1.00000
+ 1251 = 1.00000
+ 1258 = 1.00000
+ 1270 = 1.00000
+ 1279 = 1.00000
+ 1285 = 1.00000
+ 1294 = 1.00000
+ 1305 = 1.00000
+ 1311 = 1.00000
+ 1320 = 1.00000
+ 1326 = 1.00000
+ 1365 = 1.00000
+ 1366 = 1.00000
+ 1369 = 1.00000
+ 1371 = 1.00000
+ 1377 = 1.00000
+ 1384 = 1.00000
+ 1389 = 1.00000
+ 1390 = 1.00000
+ 1393 = 1.00000
+ 1395 = 1.00000
+ 1401 = 1.00000
+ 1408 = 1.00000
+ 1420 = 1.00000
+ 1429 = 1.00000
+ 1435 = 1.00000
+ 1444 = 1.00000
+ 1455 = 1.00000
+ 1461 = 1.00000
+ 1470 = 1.00000
+ 1476 = 1.00000
+ 1516 = 1.00000
+ 1525 = 1.00000
+ 1531 = 1.00000
+ 1540 = 1.00000
+ 1551 = 1.00000
+ 1552 = 1.00000
+ 1554 = 1.00000
+ 1557 = 1.00000
+ 1561 = 1.00000
+ 1566 = 1.00000
+ 1567 = 1.00000
+ 1569 = 1.00000
+ 1572 = 1.00000
+ 1576 = 1.00000
+ 1611 = 1.00000
+ 1614 = 1.00000
+ 1620 = 1.00000
+ 1623 = 1.00000
+ 1636 = 1.00000
+ 1645 = 1.00000
+ 1651 = 1.00000
+ 1660 = 1.00000
+ 1671 = 1.00000
+ 1672 = 1.00000
+ 1674 = 1.00000
+ 1677 = 1.00000
+ 1681 = 1.00000
+ 1686 = 1.00000
+ 1687 = 1.00000
+ 1689 = 1.00000
+ 1692 = 1.00000
+ 1696 = 1.00000
+ 1731 = 1.00000
+ 1734 = 1.00000
+ 1740 = 1.00000
+ 1743 = 1.00000
+ 1755 = 1.00000
+ 1761 = 1.00000
+ 1770 = 1.00000
+ 1776 = 1.00000
+ 1815 = 1.00000
+ 1816 = 1.00000
+ 1819 = 1.00000
+ 1821 = 1.00000
+ 1828 = 1.00000
+ 1830 = 1.00000
+ 1831 = 1.00000
+ 1834 = 1.00000
+ 1836 = 1.00000
+ 1843 = 1.00000
+ 1852 = 1.00000
+ 1858 = 1.00000
+ 1861 = 1.00000
+ 1867 = 1.00000
+ 1875 = 1.00000
+ 1881 = 1.00000
+ 1890 = 1.00000
+ 1896 = 1.00000
+ 1935 = 1.00000
+ 1936 = 1.00000
+ 1939 = 1.00000
+ 1941 = 1.00000
+ 1948 = 1.00000
+ 1950 = 1.00000
+ 1951 = 1.00000
+ 1954 = 1.00000
+ 1956 = 1.00000
+ 1963 = 1.00000
+ 1972 = 1.00000
+ 1978 = 1.00000
+ 1981 = 1.00000
+ 1987 = 1.00000
+ 2019 = 1.00000
+ 2022 = 1.00000
+ 2028 = 1.00000
+ 2031 = 1.00000
+ 2044 = 1.00000
+ 2050 = 1.00000
+ 2053 = 1.00000
+ 2059 = 1.00000
+ 2067 = 1.00000
+ 2068 = 1.00000
+ 2070 = 1.00000
+ 2074 = 1.00000
+ 2076 = 1.00000
+ 2077 = 1.00000
+ 2079 = 1.00000
+ 2083 = 1.00000
+ 2115 = 1.00000
+ 2118 = 1.00000
+ 2124 = 1.00000
+ 2127 = 1.00000
+ 2140 = 1.00000
+ 2146 = 1.00000
+ 2149 = 1.00000
+ 2155 = 1.00000
+ 2163 = 1.00000
+ 2164 = 1.00000
+ 2166 = 1.00000
+ 2170 = 1.00000
+ 2172 = 1.00000
+ 2173 = 1.00000
+ 2175 = 1.00000
+ 2179 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=4
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 4 = 1.00000
+ 5 = 1.00000
+ 6 = 1.00000
+ 8 = 1.00000
+ 11 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 16 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 26 = 1.00000
+ 29 = 1.00000
+ 31 = 1.00000
+ 32 = 1.00000
+ 35 = 1.00000
+ 36 = 1.00000
+ 43 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 52 = 1.00000
+ 54 = 1.00000
+ 60 = 1.00000
+ 67 = 1.00000
+ 74 = 1.00000
+ 82 = 1.00000
+ 83 = 1.00000
+ 86 = 1.00000
+ 88 = 1.00000
+ 95 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 101 = 1.00000
+ 106 = 1.00000
+ 112 = 1.00000
+ 121 = 1.00000
+ 128 = 1.00000
+ 135 = 1.00000
+ 137 = 1.00000
+ 140 = 1.00000
+ 141 = 1.00000
+ 147 = 1.00000
+ 149 = 1.00000
+ 152 = 1.00000
+ 155 = 1.00000
+ 156 = 1.00000
+ 165 = 1.00000
+ 171 = 1.00000
+ 182 = 1.00000
+ 191 = 1.00000
+ 197 = 1.00000
+ 200 = 1.00000
+ 218 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 229 = 1.00000
+ 231 = 1.00000
+ 237 = 1.00000
+ 244 = 1.00000
+ 249 = 1.00000
+ 250 = 1.00000
+ 253 = 1.00000
+ 255 = 1.00000
+ 261 = 1.00000
+ 268 = 1.00000
+ 280 = 1.00000
+ 289 = 1.00000
+ 295 = 1.00000
+ 304 = 1.00000
+ 315 = 1.00000
+ 321 = 1.00000
+ 330 = 1.00000
+ 336 = 1.00000
+ 376 = 1.00000
+ 377 = 1.00000
+ 380 = 1.00000
+ 382 = 1.00000
+ 389 = 1.00000
+ 391 = 1.00000
+ 392 = 1.00000
+ 395 = 1.00000
+ 400 = 1.00000
+ 406 = 1.00000
+ 415 = 1.00000
+ 422 = 1.00000
+ 429 = 1.00000
+ 430 = 1.00000
+ 431 = 1.00000
+ 432 = 1.00000
+ 434 = 1.00000
+ 435 = 1.00000
+ 436 = 1.00000
+ 438 = 1.00000
+ 441 = 1.00000
+ 443 = 1.00000
+ 445 = 1.00000
+ 446 = 1.00000
+ 449 = 1.00000
+ 450 = 1.00000
+ 454 = 1.00000
+ 459 = 1.00000
+ 460 = 1.00000
+ 462 = 1.00000
+ 465 = 1.00000
+ 469 = 1.00000
+ 476 = 1.00000
+ 485 = 1.00000
+ 491 = 1.00000
+ 494 = 1.00000
+ 512 = 1.00000
+ 519 = 1.00000
+ 521 = 1.00000
+ 522 = 1.00000
+ 525 = 1.00000
+ 527 = 1.00000
+ 530 = 1.00000
+ 531 = 1.00000
+ 537 = 1.00000
+ 540 = 1.00000
+ 548 = 1.00000
+ 556 = 1.00000
+ 565 = 1.00000
+ 571 = 1.00000
+ 580 = 1.00000
+ 591 = 1.00000
+ 592 = 1.00000
+ 594 = 1.00000
+ 597 = 1.00000
+ 601 = 1.00000
+ 606 = 1.00000
+ 607 = 1.00000
+ 609 = 1.00000
+ 612 = 1.00000
+ 616 = 1.00000
+ 651 = 1.00000
+ 654 = 1.00000
+ 660 = 1.00000
+ 663 = 1.00000
+ 675 = 1.00000
+ 677 = 1.00000
+ 680 = 1.00000
+ 681 = 1.00000
+ 687 = 1.00000
+ 689 = 1.00000
+ 692 = 1.00000
+ 695 = 1.00000
+ 696 = 1.00000
+ 705 = 1.00000
+ 711 = 1.00000
+ 722 = 1.00000
+ 731 = 1.00000
+ 737 = 1.00000
+ 740 = 1.00000
+ 758 = 1.00000
+ 765 = 1.00000
+ 766 = 1.00000
+ 767 = 1.00000
+ 769 = 1.00000
+ 770 = 1.00000
+ 771 = 1.00000
+ 772 = 1.00000
+ 775 = 1.00000
+ 777 = 1.00000
+ 779 = 1.00000
+ 782 = 1.00000
+ 784 = 1.00000
+ 785 = 1.00000
+ 786 = 1.00000
+ 793 = 1.00000
+ 795 = 1.00000
+ 796 = 1.00000
+ 799 = 1.00000
+ 801 = 1.00000
+ 808 = 1.00000
+ 812 = 1.00000
+ 820 = 1.00000
+ 821 = 1.00000
+ 823 = 1.00000
+ 827 = 1.00000
+ 829 = 1.00000
+ 830 = 1.00000
+ 835 = 1.00000
+ 838 = 1.00000
+ 844 = 1.00000
+ 848 = 1.00000
+ 855 = 1.00000
+ 861 = 1.00000
+ 870 = 1.00000
+ 876 = 1.00000
+ 915 = 1.00000
+ 916 = 1.00000
+ 919 = 1.00000
+ 921 = 1.00000
+ 928 = 1.00000
+ 930 = 1.00000
+ 931 = 1.00000
+ 934 = 1.00000
+ 936 = 1.00000
+ 943 = 1.00000
+ 952 = 1.00000
+ 958 = 1.00000
+ 961 = 1.00000
+ 967 = 1.00000
+ 977 = 1.00000
+ 983 = 1.00000
+ 986 = 1.00000
+ 1004 = 1.00000
+ 1011 = 1.00000
+ 1013 = 1.00000
+ 1014 = 1.00000
+ 1017 = 1.00000
+ 1019 = 1.00000
+ 1022 = 1.00000
+ 1023 = 1.00000
+ 1029 = 1.00000
+ 1032 = 1.00000
+ 1040 = 1.00000
+ 1048 = 1.00000
+ 1049 = 1.00000
+ 1051 = 1.00000
+ 1055 = 1.00000
+ 1057 = 1.00000
+ 1058 = 1.00000
+ 1063 = 1.00000
+ 1066 = 1.00000
+ 1072 = 1.00000
+ 1076 = 1.00000
+ 1083 = 1.00000
+ 1084 = 1.00000
+ 1085 = 1.00000
+ 1086 = 1.00000
+ 1087 = 1.00000
+ 1089 = 1.00000
+ 1091 = 1.00000
+ 1093 = 1.00000
+ 1094 = 1.00000
+ 1095 = 1.00000
+ 1099 = 1.00000
+ 1101 = 1.00000
+ 1102 = 1.00000
+ 1104 = 1.00000
+ 1108 = 1.00000
+ 1112 = 1.00000
+ 1143 = 1.00000
+ 1146 = 1.00000
+ 1152 = 1.00000
+ 1155 = 1.00000
+ 1168 = 1.00000
+ 1174 = 1.00000
+ 1177 = 1.00000
+ 1183 = 1.00000
+ 1191 = 1.00000
+ 1192 = 1.00000
+ 1194 = 1.00000
+ 1198 = 1.00000
+ 1200 = 1.00000
+ 1201 = 1.00000
+ 1203 = 1.00000
+ 1207 = 1.00000
+ 1215 = 1.00000
+ 1216 = 1.00000
+ 1219 = 1.00000
+ 1221 = 1.00000
+ 1227 = 1.00000
+ 1234 = 1.00000
+ 1239 = 1.00000
+ 1240 = 1.00000
+ 1243 = 1.00000
+ 1245 = 1.00000
+ 1251 = 1.00000
+ 1258 = 1.00000
+ 1270 = 1.00000
+ 1279 = 1.00000
+ 1285 = 1.00000
+ 1294 = 1.00000
+ 1305 = 1.00000
+ 1311 = 1.00000
+ 1320 = 1.00000
+ 1326 = 1.00000
+ 1365 = 1.00000
+ 1366 = 1.00000
+ 1369 = 1.00000
+ 1371 = 1.00000
+ 1377 = 1.00000
+ 1384 = 1.00000
+ 1389 = 1.00000
+ 1390 = 1.00000
+ 1393 = 1.00000
+ 1395 = 1.00000
+ 1401 = 1.00000
+ 1408 = 1.00000
+ 1420 = 1.00000
+ 1429 = 1.00000
+ 1435 = 1.00000
+ 1444 = 1.00000
+ 1455 = 1.00000
+ 1461 = 1.00000
+ 1470 = 1.00000
+ 1476 = 1.00000
+ 1516 = 1.00000
+ 1525 = 1.00000
+ 1531 = 1.00000
+ 1540 = 1.00000
+ 1551 = 1.00000
+ 1552 = 1.00000
+ 1554 = 1.00000
+ 1557 = 1.00000
+ 1561 = 1.00000
+ 1566 = 1.00000
+ 1567 = 1.00000
+ 1569 = 1.00000
+ 1572 = 1.00000
+ 1576 = 1.00000
+ 1611 = 1.00000
+ 1614 = 1.00000
+ 1620 = 1.00000
+ 1623 = 1.00000
+ 1636 = 1.00000
+ 1645 = 1.00000
+ 1651 = 1.00000
+ 1660 = 1.00000
+ 1671 = 1.00000
+ 1672 = 1.00000
+ 1674 = 1.00000
+ 1677 = 1.00000
+ 1681 = 1.00000
+ 1686 = 1.00000
+ 1687 = 1.00000
+ 1689 = 1.00000
+ 1692 = 1.00000
+ 1696 = 1.00000
+ 1731 = 1.00000
+ 1734 = 1.00000
+ 1740 = 1.00000
+ 1743 = 1.00000
+ 1755 = 1.00000
+ 1761 = 1.00000
+ 1770 = 1.00000
+ 1776 = 1.00000
+ 1815 = 1.00000
+ 1816 = 1.00000
+ 1819 = 1.00000
+ 1821 = 1.00000
+ 1828 = 1.00000
+ 1830 = 1.00000
+ 1831 = 1.00000
+ 1834 = 1.00000
+ 1836 = 1.00000
+ 1843 = 1.00000
+ 1852 = 1.00000
+ 1858 = 1.00000
+ 1861 = 1.00000
+ 1867 = 1.00000
+ 1875 = 1.00000
+ 1881 = 1.00000
+ 1890 = 1.00000
+ 1896 = 1.00000
+ 1935 = 1.00000
+ 1936 = 1.00000
+ 1939 = 1.00000
+ 1941 = 1.00000
+ 1948 = 1.00000
+ 1950 = 1.00000
+ 1951 = 1.00000
+ 1954 = 1.00000
+ 1956 = 1.00000
+ 1963 = 1.00000
+ 1972 = 1.00000
+ 1978 = 1.00000
+ 1981 = 1.00000
+ 1987 = 1.00000
+ 2019 = 1.00000
+ 2022 = 1.00000
+ 2028 = 1.00000
+ 2031 = 1.00000
+ 2044 = 1.00000
+ 2050 = 1.00000
+ 2053 = 1.00000
+ 2059 = 1.00000
+ 2067 = 1.00000
+ 2068 = 1.00000
+ 2070 = 1.00000
+ 2074 = 1.00000
+ 2076 = 1.00000
+ 2077 = 1.00000
+ 2079 = 1.00000
+ 2083 = 1.00000
+ 2115 = 1.00000
+ 2118 = 1.00000
+ 2124 = 1.00000
+ 2127 = 1.00000
+ 2140 = 1.00000
+ 2146 = 1.00000
+ 2149 = 1.00000
+ 2155 = 1.00000
+ 2163 = 1.00000
+ 2164 = 1.00000
+ 2166 = 1.00000
+ 2170 = 1.00000
+ 2172 = 1.00000
+ 2173 = 1.00000
+ 2175 = 1.00000
+ 2179 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=5
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 4 = 1.00000
+ 5 = 1.00000
+ 6 = 1.00000
+ 8 = 1.00000
+ 11 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 16 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 26 = 1.00000
+ 29 = 1.00000
+ 31 = 1.00000
+ 32 = 1.00000
+ 35 = 1.00000
+ 36 = 1.00000
+ 43 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 52 = 1.00000
+ 54 = 1.00000
+ 60 = 1.00000
+ 67 = 1.00000
+ 74 = 1.00000
+ 82 = 1.00000
+ 83 = 1.00000
+ 86 = 1.00000
+ 88 = 1.00000
+ 95 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 101 = 1.00000
+ 106 = 1.00000
+ 112 = 1.00000
+ 121 = 1.00000
+ 128 = 1.00000
+ 135 = 1.00000
+ 137 = 1.00000
+ 140 = 1.00000
+ 141 = 1.00000
+ 147 = 1.00000
+ 149 = 1.00000
+ 152 = 1.00000
+ 155 = 1.00000
+ 156 = 1.00000
+ 165 = 1.00000
+ 171 = 1.00000
+ 182 = 1.00000
+ 191 = 1.00000
+ 197 = 1.00000
+ 200 = 1.00000
+ 218 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 229 = 1.00000
+ 231 = 1.00000
+ 237 = 1.00000
+ 244 = 1.00000
+ 249 = 1.00000
+ 250 = 1.00000
+ 253 = 1.00000
+ 255 = 1.00000
+ 261 = 1.00000
+ 268 = 1.00000
+ 280 = 1.00000
+ 289 = 1.00000
+ 295 = 1.00000
+ 304 = 1.00000
+ 315 = 1.00000
+ 321 = 1.00000
+ 330 = 1.00000
+ 336 = 1.00000
+ 376 = 1.00000
+ 377 = 1.00000
+ 380 = 1.00000
+ 382 = 1.00000
+ 389 = 1.00000
+ 391 = 1.00000
+ 392 = 1.00000
+ 395 = 1.00000
+ 400 = 1.00000
+ 406 = 1.00000
+ 415 = 1.00000
+ 422 = 1.00000
+ 429 = 1.00000
+ 430 = 1.00000
+ 431 = 1.00000
+ 432 = 1.00000
+ 434 = 1.00000
+ 435 = 1.00000
+ 436 = 1.00000
+ 438 = 1.00000
+ 441 = 1.00000
+ 443 = 1.00000
+ 445 = 1.00000
+ 446 = 1.00000
+ 449 = 1.00000
+ 450 = 1.00000
+ 454 = 1.00000
+ 459 = 1.00000
+ 460 = 1.00000
+ 462 = 1.00000
+ 465 = 1.00000
+ 469 = 1.00000
+ 476 = 1.00000
+ 485 = 1.00000
+ 491 = 1.00000
+ 494 = 1.00000
+ 512 = 1.00000
+ 519 = 1.00000
+ 521 = 1.00000
+ 522 = 1.00000
+ 525 = 1.00000
+ 527 = 1.00000
+ 530 = 1.00000
+ 531 = 1.00000
+ 537 = 1.00000
+ 540 = 1.00000
+ 548 = 1.00000
+ 556 = 1.00000
+ 565 = 1.00000
+ 571 = 1.00000
+ 580 = 1.00000
+ 591 = 1.00000
+ 592 = 1.00000
+ 594 = 1.00000
+ 597 = 1.00000
+ 601 = 1.00000
+ 606 = 1.00000
+ 607 = 1.00000
+ 609 = 1.00000
+ 612 = 1.00000
+ 616 = 1.00000
+ 651 = 1.00000
+ 654 = 1.00000
+ 660 = 1.00000
+ 663 = 1.00000
+ 675 = 1.00000
+ 677 = 1.00000
+ 680 = 1.00000
+ 681 = 1.00000
+ 687 = 1.00000
+ 689 = 1.00000
+ 692 = 1.00000
+ 695 = 1.00000
+ 696 = 1.00000
+ 705 = 1.00000
+ 711 = 1.00000
+ 722 = 1.00000
+ 731 = 1.00000
+ 737 = 1.00000
+ 740 = 1.00000
+ 758 = 1.00000
+ 765 = 1.00000
+ 766 = 1.00000
+ 767 = 1.00000
+ 769 = 1.00000
+ 770 = 1.00000
+ 771 = 1.00000
+ 772 = 1.00000
+ 775 = 1.00000
+ 777 = 1.00000
+ 779 = 1.00000
+ 782 = 1.00000
+ 784 = 1.00000
+ 785 = 1.00000
+ 786 = 1.00000
+ 793 = 1.00000
+ 795 = 1.00000
+ 796 = 1.00000
+ 799 = 1.00000
+ 801 = 1.00000
+ 808 = 1.00000
+ 812 = 1.00000
+ 820 = 1.00000
+ 821 = 1.00000
+ 823 = 1.00000
+ 827 = 1.00000
+ 829 = 1.00000
+ 830 = 1.00000
+ 835 = 1.00000
+ 838 = 1.00000
+ 844 = 1.00000
+ 848 = 1.00000
+ 855 = 1.00000
+ 861 = 1.00000
+ 870 = 1.00000
+ 876 = 1.00000
+ 915 = 1.00000
+ 916 = 1.00000
+ 919 = 1.00000
+ 921 = 1.00000
+ 928 = 1.00000
+ 930 = 1.00000
+ 931 = 1.00000
+ 934 = 1.00000
+ 936 = 1.00000
+ 943 = 1.00000
+ 952 = 1.00000
+ 958 = 1.00000
+ 961 = 1.00000
+ 967 = 1.00000
+ 977 = 1.00000
+ 983 = 1.00000
+ 986 = 1.00000
+ 1004 = 1.00000
+ 1011 = 1.00000
+ 1013 = 1.00000
+ 1014 = 1.00000
+ 1017 = 1.00000
+ 1019 = 1.00000
+ 1022 = 1.00000
+ 1023 = 1.00000
+ 1029 = 1.00000
+ 1032 = 1.00000
+ 1040 = 1.00000
+ 1048 = 1.00000
+ 1049 = 1.00000
+ 1051 = 1.00000
+ 1055 = 1.00000
+ 1057 = 1.00000
+ 1058 = 1.00000
+ 1063 = 1.00000
+ 1066 = 1.00000
+ 1072 = 1.00000
+ 1076 = 1.00000
+ 1083 = 1.00000
+ 1084 = 1.00000
+ 1085 = 1.00000
+ 1086 = 1.00000
+ 1087 = 1.00000
+ 1089 = 1.00000
+ 1091 = 1.00000
+ 1093 = 1.00000
+ 1094 = 1.00000
+ 1095 = 1.00000
+ 1099 = 1.00000
+ 1101 = 1.00000
+ 1102 = 1.00000
+ 1104 = 1.00000
+ 1108 = 1.00000
+ 1112 = 1.00000
+ 1143 = 1.00000
+ 1146 = 1.00000
+ 1152 = 1.00000
+ 1155 = 1.00000
+ 1168 = 1.00000
+ 1174 = 1.00000
+ 1177 = 1.00000
+ 1183 = 1.00000
+ 1191 = 1.00000
+ 1192 = 1.00000
+ 1194 = 1.00000
+ 1198 = 1.00000
+ 1200 = 1.00000
+ 1201 = 1.00000
+ 1203 = 1.00000
+ 1207 = 1.00000
+ 1215 = 1.00000
+ 1216 = 1.00000
+ 1219 = 1.00000
+ 1221 = 1.00000
+ 1227 = 1.00000
+ 1234 = 1.00000
+ 1239 = 1.00000
+ 1240 = 1.00000
+ 1243 = 1.00000
+ 1245 = 1.00000
+ 1251 = 1.00000
+ 1258 = 1.00000
+ 1270 = 1.00000
+ 1279 = 1.00000
+ 1285 = 1.00000
+ 1294 = 1.00000
+ 1305 = 1.00000
+ 1311 = 1.00000
+ 1320 = 1.00000
+ 1326 = 1.00000
+ 1365 = 1.00000
+ 1366 = 1.00000
+ 1367 = 1.00000
+ 1369 = 1.00000
+ 1370 = 1.00000
+ 1371 = 1.00000
+ 1373 = 1.00000
+ 1376 = 1.00000
+ 1377 = 1.00000
+ 1379 = 1.00000
+ 1382 = 1.00000
+ 1384 = 1.00000
+ 1385 = 1.00000
+ 1388 = 1.00000
+ 1389 = 1.00000
+ 1390 = 1.00000
+ 1393 = 1.00000
+ 1395 = 1.00000
+ 1401 = 1.00000
+ 1408 = 1.00000
+ 1415 = 1.00000
+ 1420 = 1.00000
+ 1421 = 1.00000
+ 1424 = 1.00000
+ 1427 = 1.00000
+ 1429 = 1.00000
+ 1430 = 1.00000
+ 1433 = 1.00000
+ 1435 = 1.00000
+ 1444 = 1.00000
+ 1451 = 1.00000
+ 1455 = 1.00000
+ 1457 = 1.00000
+ 1460 = 1.00000
+ 1461 = 1.00000
+ 1463 = 1.00000
+ 1466 = 1.00000
+ 1469 = 1.00000
+ 1470 = 1.00000
+ 1476 = 1.00000
+ 1487 = 1.00000
+ 1493 = 1.00000
+ 1496 = 1.00000
+ 1499 = 1.00000
+ 1511 = 1.00000
+ 1516 = 1.00000
+ 1525 = 1.00000
+ 1531 = 1.00000
+ 1540 = 1.00000
+ 1551 = 1.00000
+ 1552 = 1.00000
+ 1554 = 1.00000
+ 1557 = 1.00000
+ 1561 = 1.00000
+ 1566 = 1.00000
+ 1567 = 1.00000
+ 1569 = 1.00000
+ 1572 = 1.00000
+ 1576 = 1.00000
+ 1611 = 1.00000
+ 1614 = 1.00000
+ 1620 = 1.00000
+ 1623 = 1.00000
+ 1636 = 1.00000
+ 1637 = 1.00000
+ 1640 = 1.00000
+ 1643 = 1.00000
+ 1645 = 1.00000
+ 1646 = 1.00000
+ 1649 = 1.00000
+ 1651 = 1.00000
+ 1660 = 1.00000
+ 1667 = 1.00000
+ 1671 = 1.00000
+ 1672 = 1.00000
+ 1673 = 1.00000
+ 1674 = 1.00000
+ 1676 = 1.00000
+ 1677 = 1.00000
+ 1679 = 1.00000
+ 1681 = 1.00000
+ 1682 = 1.00000
+ 1685 = 1.00000
+ 1686 = 1.00000
+ 1687 = 1.00000
+ 1689 = 1.00000
+ 1692 = 1.00000
+ 1696 = 1.00000
+ 1703 = 1.00000
+ 1709 = 1.00000
+ 1712 = 1.00000
+ 1715 = 1.00000
+ 1727 = 1.00000
+ 1731 = 1.00000
+ 1733 = 1.00000
+ 1734 = 1.00000
+ 1736 = 1.00000
+ 1739 = 1.00000
+ 1740 = 1.00000
+ 1743 = 1.00000
+ 1751 = 1.00000
+ 1755 = 1.00000
+ 1761 = 1.00000
+ 1770 = 1.00000
+ 1776 = 1.00000
+ 1815 = 1.00000
+ 1816 = 1.00000
+ 1819 = 1.00000
+ 1821 = 1.00000
+ 1828 = 1.00000
+ 1830 = 1.00000
+ 1831 = 1.00000
+ 1834 = 1.00000
+ 1836 = 1.00000
+ 1843 = 1.00000
+ 1852 = 1.00000
+ 1858 = 1.00000
+ 1861 = 1.00000
+ 1867 = 1.00000
+ 1875 = 1.00000
+ 1877 = 1.00000
+ 1880 = 1.00000
+ 1881 = 1.00000
+ 1883 = 1.00000
+ 1886 = 1.00000
+ 1889 = 1.00000
+ 1890 = 1.00000
+ 1896 = 1.00000
+ 1907 = 1.00000
+ 1913 = 1.00000
+ 1916 = 1.00000
+ 1919 = 1.00000
+ 1931 = 1.00000
+ 1935 = 1.00000
+ 1936 = 1.00000
+ 1937 = 1.00000
+ 1939 = 1.00000
+ 1940 = 1.00000
+ 1941 = 1.00000
+ 1943 = 1.00000
+ 1946 = 1.00000
+ 1948 = 1.00000
+ 1949 = 1.00000
+ 1950 = 1.00000
+ 1951 = 1.00000
+ 1954 = 1.00000
+ 1956 = 1.00000
+ 1963 = 1.00000
+ 1967 = 1.00000
+ 1972 = 1.00000
+ 1973 = 1.00000
+ 1976 = 1.00000
+ 1978 = 1.00000
+ 1979 = 1.00000
+ 1981 = 1.00000
+ 1987 = 1.00000
+ 1991 = 1.00000
+ 2019 = 1.00000
+ 2022 = 1.00000
+ 2028 = 1.00000
+ 2031 = 1.00000
+ 2044 = 1.00000
+ 2050 = 1.00000
+ 2053 = 1.00000
+ 2059 = 1.00000
+ 2067 = 1.00000
+ 2068 = 1.00000
+ 2070 = 1.00000
+ 2074 = 1.00000
+ 2076 = 1.00000
+ 2077 = 1.00000
+ 2079 = 1.00000
+ 2083 = 1.00000
+ 2093 = 1.00000
+ 2096 = 1.00000
+ 2099 = 1.00000
+ 2111 = 1.00000
+ 2115 = 1.00000
+ 2117 = 1.00000
+ 2118 = 1.00000
+ 2120 = 1.00000
+ 2123 = 1.00000
+ 2124 = 1.00000
+ 2127 = 1.00000
+ 2135 = 1.00000
+ 2140 = 1.00000
+ 2141 = 1.00000
+ 2144 = 1.00000
+ 2146 = 1.00000
+ 2147 = 1.00000
+ 2149 = 1.00000
+ 2155 = 1.00000
+ 2159 = 1.00000
+ 2163 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2166 = 1.00000
+ 2168 = 1.00000
+ 2170 = 1.00000
+ 2171 = 1.00000
+ 2172 = 1.00000
+ 2173 = 1.00000
+ 2175 = 1.00000
+ 2179 = 1.00000
+ 2183 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=0
+ 0 = 1.00000
+ 6 = 1.00000
+ 12 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 25 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 72 = 1.00000
+ 73 = 1.00000
+ 84 = 1.00000
+ 85 = 1.00000
+ 96 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 336 = 1.00000
+ 342 = 1.00000
+ 348 = 1.00000
+ 349 = 1.00000
+ 366 = 1.00000
+ 367 = 1.00000
+ 384 = 1.00000
+ 385 = 1.00000
+ 396 = 1.00000
+ 397 = 1.00000
+ 398 = 1.00000
+ 399 = 1.00000
+ 588 = 1.00000
+ 594 = 1.00000
+ 600 = 1.00000
+ 601 = 1.00000
+ 624 = 1.00000
+ 625 = 1.00000
+ 636 = 1.00000
+ 637 = 1.00000
+ 648 = 1.00000
+ 649 = 1.00000
+ 650 = 1.00000
+ 651 = 1.00000
+ 840 = 1.00000
+ 846 = 1.00000
+ 847 = 1.00000
+ 864 = 1.00000
+ 865 = 1.00000
+ 876 = 1.00000
+ 877 = 1.00000
+ 878 = 1.00000
+ 879 = 1.00000
+ 1911 = 1.00000
+ 1917 = 1.00000
+ 1923 = 1.00000
+ 1924 = 1.00000
+ 1941 = 1.00000
+ 1942 = 1.00000
+ 1959 = 1.00000
+ 1960 = 1.00000
+ 1971 = 1.00000
+ 1972 = 1.00000
+ 1973 = 1.00000
+ 1974 = 1.00000
+ 2163 = 1.00000
+ 2169 = 1.00000
+ 2175 = 1.00000
+ 2176 = 1.00000
+ 2193 = 1.00000
+ 2194 = 1.00000
+ 2211 = 1.00000
+ 2212 = 1.00000
+ 2223 = 1.00000
+ 2224 = 1.00000
+ 2225 = 1.00000
+ 2226 = 1.00000
+ 2415 = 1.00000
+ 2421 = 1.00000
+ 2422 = 1.00000
+ 2439 = 1.00000
+ 2440 = 1.00000
+ 2451 = 1.00000
+ 2452 = 1.00000
+ 2453 = 1.00000
+ 2454 = 1.00000
+ 2604 = 1.00000
+ 2610 = 1.00000
+ 2611 = 1.00000
+ 2628 = 1.00000
+ 2629 = 1.00000
+ 2640 = 1.00000
+ 2641 = 1.00000
+ 2642 = 1.00000
+ 2643 = 1.00000
+ 3549 = 1.00000
+ 3555 = 1.00000
+ 3561 = 1.00000
+ 3562 = 1.00000
+ 3585 = 1.00000
+ 3586 = 1.00000
+ 3597 = 1.00000
+ 3598 = 1.00000
+ 3609 = 1.00000
+ 3610 = 1.00000
+ 3611 = 1.00000
+ 3612 = 1.00000
+ 3801 = 1.00000
+ 3807 = 1.00000
+ 3808 = 1.00000
+ 3825 = 1.00000
+ 3826 = 1.00000
+ 3837 = 1.00000
+ 3838 = 1.00000
+ 3839 = 1.00000
+ 3840 = 1.00000
+ 3990 = 1.00000
+ 3996 = 1.00000
+ 4002 = 1.00000
+ 4003 = 1.00000
+ 4026 = 1.00000
+ 4027 = 1.00000
+ 4038 = 1.00000
+ 4039 = 1.00000
+ 4050 = 1.00000
+ 4051 = 1.00000
+ 4052 = 1.00000
+ 4053 = 1.00000
+ 4242 = 1.00000
+ 4248 = 1.00000
+ 4249 = 1.00000
+ 4266 = 1.00000
+ 4267 = 1.00000
+ 4278 = 1.00000
+ 4279 = 1.00000
+ 4280 = 1.00000
+ 4281 = 1.00000
+ 5187 = 1.00000
+ 5193 = 1.00000
+ 5194 = 1.00000
+ 5211 = 1.00000
+ 5212 = 1.00000
+ 5223 = 1.00000
+ 5224 = 1.00000
+ 5225 = 1.00000
+ 5226 = 1.00000
+ 5376 = 1.00000
+ 5382 = 1.00000
+ 5383 = 1.00000
+ 5400 = 1.00000
+ 5401 = 1.00000
+ 5412 = 1.00000
+ 5413 = 1.00000
+ 5414 = 1.00000
+ 5415 = 1.00000
+ 5565 = 1.00000
+ 5571 = 1.00000
+ 5572 = 1.00000
+ 5589 = 1.00000
+ 5590 = 1.00000
+ 5601 = 1.00000
+ 5602 = 1.00000
+ 5603 = 1.00000
+ 5604 = 1.00000
+ 5754 = 1.00000
+ 5760 = 1.00000
+ 5761 = 1.00000
+ 5778 = 1.00000
+ 5779 = 1.00000
+ 5790 = 1.00000
+ 5791 = 1.00000
+ 5792 = 1.00000
+ 5793 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=1
+ 0 = 1.00000
+ 6 = 1.00000
+ 12 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 25 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 72 = 1.00000
+ 73 = 1.00000
+ 84 = 1.00000
+ 85 = 1.00000
+ 96 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 336 = 1.00000
+ 342 = 1.00000
+ 348 = 1.00000
+ 349 = 1.00000
+ 366 = 1.00000
+ 367 = 1.00000
+ 384 = 1.00000
+ 385 = 1.00000
+ 396 = 1.00000
+ 397 = 1.00000
+ 398 = 1.00000
+ 399 = 1.00000
+ 588 = 1.00000
+ 594 = 1.00000
+ 600 = 1.00000
+ 601 = 1.00000
+ 624 = 1.00000
+ 625 = 1.00000
+ 636 = 1.00000
+ 637 = 1.00000
+ 648 = 1.00000
+ 649 = 1.00000
+ 650 = 1.00000
+ 651 = 1.00000
+ 840 = 1.00000
+ 846 = 1.00000
+ 847 = 1.00000
+ 864 = 1.00000
+ 865 = 1.00000
+ 876 = 1.00000
+ 877 = 1.00000
+ 878 = 1.00000
+ 879 = 1.00000
+ 1173 = 1.00000
+ 1176 = 1.00000
+ 1179 = 1.00000
+ 1182 = 1.00000
+ 1185 = 1.00000
+ 1186 = 1.00000
+ 1203 = 1.00000
+ 1204 = 1.00000
+ 1221 = 1.00000
+ 1222 = 1.00000
+ 1227 = 1.00000
+ 1228 = 1.00000
+ 1233 = 1.00000
+ 1234 = 1.00000
+ 1235 = 1.00000
+ 1236 = 1.00000
+ 1425 = 1.00000
+ 1428 = 1.00000
+ 1431 = 1.00000
+ 1432 = 1.00000
+ 1443 = 1.00000
+ 1444 = 1.00000
+ 1455 = 1.00000
+ 1456 = 1.00000
+ 1461 = 1.00000
+ 1462 = 1.00000
+ 1463 = 1.00000
+ 1464 = 1.00000
+ 1641 = 1.00000
+ 1644 = 1.00000
+ 1647 = 1.00000
+ 1648 = 1.00000
+ 1665 = 1.00000
+ 1666 = 1.00000
+ 1671 = 1.00000
+ 1672 = 1.00000
+ 1677 = 1.00000
+ 1678 = 1.00000
+ 1679 = 1.00000
+ 1680 = 1.00000
+ 1830 = 1.00000
+ 1833 = 1.00000
+ 1834 = 1.00000
+ 1845 = 1.00000
+ 1846 = 1.00000
+ 1851 = 1.00000
+ 1852 = 1.00000
+ 1853 = 1.00000
+ 1854 = 1.00000
+ 1911 = 1.00000
+ 1917 = 1.00000
+ 1923 = 1.00000
+ 1924 = 1.00000
+ 1941 = 1.00000
+ 1942 = 1.00000
+ 1959 = 1.00000
+ 1960 = 1.00000
+ 1971 = 1.00000
+ 1972 = 1.00000
+ 1973 = 1.00000
+ 1974 = 1.00000
+ 2163 = 1.00000
+ 2169 = 1.00000
+ 2175 = 1.00000
+ 2176 = 1.00000
+ 2193 = 1.00000
+ 2194 = 1.00000
+ 2211 = 1.00000
+ 2212 = 1.00000
+ 2223 = 1.00000
+ 2224 = 1.00000
+ 2225 = 1.00000
+ 2226 = 1.00000
+ 2415 = 1.00000
+ 2421 = 1.00000
+ 2422 = 1.00000
+ 2439 = 1.00000
+ 2440 = 1.00000
+ 2451 = 1.00000
+ 2452 = 1.00000
+ 2453 = 1.00000
+ 2454 = 1.00000
+ 2604 = 1.00000
+ 2610 = 1.00000
+ 2611 = 1.00000
+ 2628 = 1.00000
+ 2629 = 1.00000
+ 2640 = 1.00000
+ 2641 = 1.00000
+ 2642 = 1.00000
+ 2643 = 1.00000
+ 2901 = 1.00000
+ 2904 = 1.00000
+ 2907 = 1.00000
+ 2908 = 1.00000
+ 2919 = 1.00000
+ 2920 = 1.00000
+ 2931 = 1.00000
+ 2932 = 1.00000
+ 2937 = 1.00000
+ 2938 = 1.00000
+ 2939 = 1.00000
+ 2940 = 1.00000
+ 3117 = 1.00000
+ 3120 = 1.00000
+ 3123 = 1.00000
+ 3124 = 1.00000
+ 3135 = 1.00000
+ 3136 = 1.00000
+ 3147 = 1.00000
+ 3148 = 1.00000
+ 3153 = 1.00000
+ 3154 = 1.00000
+ 3155 = 1.00000
+ 3156 = 1.00000
+ 3306 = 1.00000
+ 3309 = 1.00000
+ 3310 = 1.00000
+ 3321 = 1.00000
+ 3322 = 1.00000
+ 3327 = 1.00000
+ 3328 = 1.00000
+ 3329 = 1.00000
+ 3330 = 1.00000
+ 3468 = 1.00000
+ 3471 = 1.00000
+ 3472 = 1.00000
+ 3483 = 1.00000
+ 3484 = 1.00000
+ 3489 = 1.00000
+ 3490 = 1.00000
+ 3491 = 1.00000
+ 3492 = 1.00000
+ 3549 = 1.00000
+ 3555 = 1.00000
+ 3561 = 1.00000
+ 3562 = 1.00000
+ 3585 = 1.00000
+ 3586 = 1.00000
+ 3597 = 1.00000
+ 3598 = 1.00000
+ 3609 = 1.00000
+ 3610 = 1.00000
+ 3611 = 1.00000
+ 3612 = 1.00000
+ 3801 = 1.00000
+ 3807 = 1.00000
+ 3808 = 1.00000
+ 3825 = 1.00000
+ 3826 = 1.00000
+ 3837 = 1.00000
+ 3838 = 1.00000
+ 3839 = 1.00000
+ 3840 = 1.00000
+ 3990 = 1.00000
+ 3996 = 1.00000
+ 4002 = 1.00000
+ 4003 = 1.00000
+ 4026 = 1.00000
+ 4027 = 1.00000
+ 4038 = 1.00000
+ 4039 = 1.00000
+ 4050 = 1.00000
+ 4051 = 1.00000
+ 4052 = 1.00000
+ 4053 = 1.00000
+ 4242 = 1.00000
+ 4248 = 1.00000
+ 4249 = 1.00000
+ 4266 = 1.00000
+ 4267 = 1.00000
+ 4278 = 1.00000
+ 4279 = 1.00000
+ 4280 = 1.00000
+ 4281 = 1.00000
+ 4539 = 1.00000
+ 4542 = 1.00000
+ 4545 = 1.00000
+ 4546 = 1.00000
+ 4563 = 1.00000
+ 4564 = 1.00000
+ 4569 = 1.00000
+ 4570 = 1.00000
+ 4575 = 1.00000
+ 4576 = 1.00000
+ 4577 = 1.00000
+ 4578 = 1.00000
+ 4728 = 1.00000
+ 4731 = 1.00000
+ 4732 = 1.00000
+ 4743 = 1.00000
+ 4744 = 1.00000
+ 4749 = 1.00000
+ 4750 = 1.00000
+ 4751 = 1.00000
+ 4752 = 1.00000
+ 4917 = 1.00000
+ 4920 = 1.00000
+ 4923 = 1.00000
+ 4924 = 1.00000
+ 4941 = 1.00000
+ 4942 = 1.00000
+ 4947 = 1.00000
+ 4948 = 1.00000
+ 4953 = 1.00000
+ 4954 = 1.00000
+ 4955 = 1.00000
+ 4956 = 1.00000
+ 5106 = 1.00000
+ 5109 = 1.00000
+ 5110 = 1.00000
+ 5121 = 1.00000
+ 5122 = 1.00000
+ 5127 = 1.00000
+ 5128 = 1.00000
+ 5129 = 1.00000
+ 5130 = 1.00000
+ 5187 = 1.00000
+ 5193 = 1.00000
+ 5194 = 1.00000
+ 5211 = 1.00000
+ 5212 = 1.00000
+ 5223 = 1.00000
+ 5224 = 1.00000
+ 5225 = 1.00000
+ 5226 = 1.00000
+ 5376 = 1.00000
+ 5382 = 1.00000
+ 5383 = 1.00000
+ 5400 = 1.00000
+ 5401 = 1.00000
+ 5412 = 1.00000
+ 5413 = 1.00000
+ 5414 = 1.00000
+ 5415 = 1.00000
+ 5565 = 1.00000
+ 5571 = 1.00000
+ 5572 = 1.00000
+ 5589 = 1.00000
+ 5590 = 1.00000
+ 5601 = 1.00000
+ 5602 = 1.00000
+ 5603 = 1.00000
+ 5604 = 1.00000
+ 5754 = 1.00000
+ 5760 = 1.00000
+ 5761 = 1.00000
+ 5778 = 1.00000
+ 5779 = 1.00000
+ 5790 = 1.00000
+ 5791 = 1.00000
+ 5792 = 1.00000
+ 5793 = 1.00000
+ 6024 = 1.00000
+ 6027 = 1.00000
+ 6028 = 1.00000
+ 6039 = 1.00000
+ 6040 = 1.00000
+ 6045 = 1.00000
+ 6046 = 1.00000
+ 6047 = 1.00000
+ 6048 = 1.00000
+ 6186 = 1.00000
+ 6189 = 1.00000
+ 6190 = 1.00000
+ 6201 = 1.00000
+ 6202 = 1.00000
+ 6207 = 1.00000
+ 6208 = 1.00000
+ 6209 = 1.00000
+ 6210 = 1.00000
+ 6348 = 1.00000
+ 6351 = 1.00000
+ 6352 = 1.00000
+ 6363 = 1.00000
+ 6364 = 1.00000
+ 6369 = 1.00000
+ 6370 = 1.00000
+ 6371 = 1.00000
+ 6372 = 1.00000
+ 6510 = 1.00000
+ 6513 = 1.00000
+ 6514 = 1.00000
+ 6525 = 1.00000
+ 6526 = 1.00000
+ 6531 = 1.00000
+ 6532 = 1.00000
+ 6533 = 1.00000
+ 6534 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=2
+ 0 = 1.00000
+ 1 = 1.00000
+ 4 = 1.00000
+ 6 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 16 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 25 = 1.00000
+ 38 = 1.00000
+ 39 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 62 = 1.00000
+ 63 = 1.00000
+ 72 = 1.00000
+ 74 = 1.00000
+ 73 = 1.00000
+ 75 = 1.00000
+ 80 = 1.00000
+ 81 = 1.00000
+ 84 = 1.00000
+ 85 = 1.00000
+ 96 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 124 = 1.00000
+ 125 = 1.00000
+ 126 = 1.00000
+ 127 = 1.00000
+ 193 = 1.00000
+ 199 = 1.00000
+ 212 = 1.00000
+ 213 = 1.00000
+ 230 = 1.00000
+ 231 = 1.00000
+ 242 = 1.00000
+ 243 = 1.00000
+ 268 = 1.00000
+ 269 = 1.00000
+ 270 = 1.00000
+ 271 = 1.00000
+ 336 = 1.00000
+ 342 = 1.00000
+ 348 = 1.00000
+ 349 = 1.00000
+ 366 = 1.00000
+ 367 = 1.00000
+ 384 = 1.00000
+ 385 = 1.00000
+ 396 = 1.00000
+ 397 = 1.00000
+ 398 = 1.00000
+ 399 = 1.00000
+ 588 = 1.00000
+ 589 = 1.00000
+ 592 = 1.00000
+ 594 = 1.00000
+ 600 = 1.00000
+ 601 = 1.00000
+ 614 = 1.00000
+ 615 = 1.00000
+ 624 = 1.00000
+ 626 = 1.00000
+ 625 = 1.00000
+ 627 = 1.00000
+ 632 = 1.00000
+ 633 = 1.00000
+ 636 = 1.00000
+ 637 = 1.00000
+ 648 = 1.00000
+ 649 = 1.00000
+ 650 = 1.00000
+ 651 = 1.00000
+ 676 = 1.00000
+ 677 = 1.00000
+ 678 = 1.00000
+ 679 = 1.00000
+ 733 = 1.00000
+ 746 = 1.00000
+ 747 = 1.00000
+ 758 = 1.00000
+ 759 = 1.00000
+ 784 = 1.00000
+ 785 = 1.00000
+ 786 = 1.00000
+ 787 = 1.00000
+ 840 = 1.00000
+ 846 = 1.00000
+ 847 = 1.00000
+ 864 = 1.00000
+ 865 = 1.00000
+ 876 = 1.00000
+ 877 = 1.00000
+ 878 = 1.00000
+ 879 = 1.00000
+ 1030 = 1.00000
+ 1036 = 1.00000
+ 1049 = 1.00000
+ 1050 = 1.00000
+ 1067 = 1.00000
+ 1068 = 1.00000
+ 1079 = 1.00000
+ 1080 = 1.00000
+ 1105 = 1.00000
+ 1106 = 1.00000
+ 1107 = 1.00000
+ 1108 = 1.00000
+ 1173 = 1.00000
+ 1174 = 1.00000
+ 1176 = 1.00000
+ 1179 = 1.00000
+ 1180 = 1.00000
+ 1182 = 1.00000
+ 1185 = 1.00000
+ 1186 = 1.00000
+ 1193 = 1.00000
+ 1194 = 1.00000
+ 1203 = 1.00000
+ 1204 = 1.00000
+ 1211 = 1.00000
+ 1212 = 1.00000
+ 1221 = 1.00000
+ 1223 = 1.00000
+ 1222 = 1.00000
+ 1224 = 1.00000
+ 1227 = 1.00000
+ 1228 = 1.00000
+ 1233 = 1.00000
+ 1234 = 1.00000
+ 1235 = 1.00000
+ 1236 = 1.00000
+ 1249 = 1.00000
+ 1250 = 1.00000
+ 1251 = 1.00000
+ 1252 = 1.00000
+ 1425 = 1.00000
+ 1428 = 1.00000
+ 1431 = 1.00000
+ 1432 = 1.00000
+ 1443 = 1.00000
+ 1444 = 1.00000
+ 1455 = 1.00000
+ 1456 = 1.00000
+ 1461 = 1.00000
+ 1462 = 1.00000
+ 1463 = 1.00000
+ 1464 = 1.00000
+ 1534 = 1.00000
+ 1547 = 1.00000
+ 1548 = 1.00000
+ 1559 = 1.00000
+ 1560 = 1.00000
+ 1585 = 1.00000
+ 1586 = 1.00000
+ 1587 = 1.00000
+ 1588 = 1.00000
+ 1641 = 1.00000
+ 1642 = 1.00000
+ 1644 = 1.00000
+ 1647 = 1.00000
+ 1648 = 1.00000
+ 1655 = 1.00000
+ 1656 = 1.00000
+ 1665 = 1.00000
+ 1667 = 1.00000
+ 1666 = 1.00000
+ 1668 = 1.00000
+ 1671 = 1.00000
+ 1672 = 1.00000
+ 1677 = 1.00000
+ 1678 = 1.00000
+ 1679 = 1.00000
+ 1680 = 1.00000
+ 1693 = 1.00000
+ 1694 = 1.00000
+ 1695 = 1.00000
+ 1696 = 1.00000
+ 1830 = 1.00000
+ 1833 = 1.00000
+ 1834 = 1.00000
+ 1845 = 1.00000
+ 1846 = 1.00000
+ 1851 = 1.00000
+ 1852 = 1.00000
+ 1853 = 1.00000
+ 1854 = 1.00000
+ 1911 = 1.00000
+ 1917 = 1.00000
+ 1923 = 1.00000
+ 1924 = 1.00000
+ 1941 = 1.00000
+ 1942 = 1.00000
+ 1959 = 1.00000
+ 1960 = 1.00000
+ 1971 = 1.00000
+ 1972 = 1.00000
+ 1973 = 1.00000
+ 1974 = 1.00000
+ 2163 = 1.00000
+ 2169 = 1.00000
+ 2175 = 1.00000
+ 2176 = 1.00000
+ 2193 = 1.00000
+ 2194 = 1.00000
+ 2211 = 1.00000
+ 2212 = 1.00000
+ 2223 = 1.00000
+ 2224 = 1.00000
+ 2225 = 1.00000
+ 2226 = 1.00000
+ 2415 = 1.00000
+ 2421 = 1.00000
+ 2422 = 1.00000
+ 2439 = 1.00000
+ 2440 = 1.00000
+ 2451 = 1.00000
+ 2452 = 1.00000
+ 2453 = 1.00000
+ 2454 = 1.00000
+ 2604 = 1.00000
+ 2610 = 1.00000
+ 2611 = 1.00000
+ 2628 = 1.00000
+ 2629 = 1.00000
+ 2640 = 1.00000
+ 2641 = 1.00000
+ 2642 = 1.00000
+ 2643 = 1.00000
+ 2901 = 1.00000
+ 2904 = 1.00000
+ 2907 = 1.00000
+ 2908 = 1.00000
+ 2919 = 1.00000
+ 2920 = 1.00000
+ 2931 = 1.00000
+ 2932 = 1.00000
+ 2937 = 1.00000
+ 2938 = 1.00000
+ 2939 = 1.00000
+ 2940 = 1.00000
+ 3117 = 1.00000
+ 3120 = 1.00000
+ 3123 = 1.00000
+ 3124 = 1.00000
+ 3135 = 1.00000
+ 3136 = 1.00000
+ 3147 = 1.00000
+ 3148 = 1.00000
+ 3153 = 1.00000
+ 3154 = 1.00000
+ 3155 = 1.00000
+ 3156 = 1.00000
+ 3306 = 1.00000
+ 3309 = 1.00000
+ 3310 = 1.00000
+ 3321 = 1.00000
+ 3322 = 1.00000
+ 3327 = 1.00000
+ 3328 = 1.00000
+ 3329 = 1.00000
+ 3330 = 1.00000
+ 3468 = 1.00000
+ 3471 = 1.00000
+ 3472 = 1.00000
+ 3483 = 1.00000
+ 3484 = 1.00000
+ 3489 = 1.00000
+ 3490 = 1.00000
+ 3491 = 1.00000
+ 3492 = 1.00000
+ 3549 = 1.00000
+ 3550 = 1.00000
+ 3553 = 1.00000
+ 3555 = 1.00000
+ 3561 = 1.00000
+ 3562 = 1.00000
+ 3575 = 1.00000
+ 3576 = 1.00000
+ 3585 = 1.00000
+ 3587 = 1.00000
+ 3586 = 1.00000
+ 3588 = 1.00000
+ 3593 = 1.00000
+ 3594 = 1.00000
+ 3597 = 1.00000
+ 3598 = 1.00000
+ 3609 = 1.00000
+ 3610 = 1.00000
+ 3611 = 1.00000
+ 3612 = 1.00000
+ 3637 = 1.00000
+ 3638 = 1.00000
+ 3639 = 1.00000
+ 3640 = 1.00000
+ 3694 = 1.00000
+ 3707 = 1.00000
+ 3708 = 1.00000
+ 3719 = 1.00000
+ 3720 = 1.00000
+ 3745 = 1.00000
+ 3746 = 1.00000
+ 3747 = 1.00000
+ 3748 = 1.00000
+ 3801 = 1.00000
+ 3807 = 1.00000
+ 3808 = 1.00000
+ 3825 = 1.00000
+ 3826 = 1.00000
+ 3837 = 1.00000
+ 3838 = 1.00000
+ 3839 = 1.00000
+ 3840 = 1.00000
+ 3990 = 1.00000
+ 3991 = 1.00000
+ 3994 = 1.00000
+ 3996 = 1.00000
+ 4002 = 1.00000
+ 4003 = 1.00000
+ 4016 = 1.00000
+ 4017 = 1.00000
+ 4026 = 1.00000
+ 4028 = 1.00000
+ 4027 = 1.00000
+ 4029 = 1.00000
+ 4034 = 1.00000
+ 4035 = 1.00000
+ 4038 = 1.00000
+ 4039 = 1.00000
+ 4050 = 1.00000
+ 4051 = 1.00000
+ 4052 = 1.00000
+ 4053 = 1.00000
+ 4078 = 1.00000
+ 4079 = 1.00000
+ 4080 = 1.00000
+ 4081 = 1.00000
+ 4135 = 1.00000
+ 4148 = 1.00000
+ 4149 = 1.00000
+ 4160 = 1.00000
+ 4161 = 1.00000
+ 4186 = 1.00000
+ 4187 = 1.00000
+ 4188 = 1.00000
+ 4189 = 1.00000
+ 4242 = 1.00000
+ 4248 = 1.00000
+ 4249 = 1.00000
+ 4266 = 1.00000
+ 4267 = 1.00000
+ 4278 = 1.00000
+ 4279 = 1.00000
+ 4280 = 1.00000
+ 4281 = 1.00000
+ 4432 = 1.00000
+ 4445 = 1.00000
+ 4446 = 1.00000
+ 4457 = 1.00000
+ 4458 = 1.00000
+ 4483 = 1.00000
+ 4484 = 1.00000
+ 4485 = 1.00000
+ 4486 = 1.00000
+ 4539 = 1.00000
+ 4540 = 1.00000
+ 4542 = 1.00000
+ 4545 = 1.00000
+ 4546 = 1.00000
+ 4553 = 1.00000
+ 4554 = 1.00000
+ 4563 = 1.00000
+ 4565 = 1.00000
+ 4564 = 1.00000
+ 4566 = 1.00000
+ 4569 = 1.00000
+ 4570 = 1.00000
+ 4575 = 1.00000
+ 4576 = 1.00000
+ 4577 = 1.00000
+ 4578 = 1.00000
+ 4591 = 1.00000
+ 4592 = 1.00000
+ 4593 = 1.00000
+ 4594 = 1.00000
+ 4728 = 1.00000
+ 4731 = 1.00000
+ 4732 = 1.00000
+ 4743 = 1.00000
+ 4744 = 1.00000
+ 4749 = 1.00000
+ 4750 = 1.00000
+ 4751 = 1.00000
+ 4752 = 1.00000
+ 4810 = 1.00000
+ 4823 = 1.00000
+ 4824 = 1.00000
+ 4835 = 1.00000
+ 4836 = 1.00000
+ 4861 = 1.00000
+ 4862 = 1.00000
+ 4863 = 1.00000
+ 4864 = 1.00000
+ 4917 = 1.00000
+ 4918 = 1.00000
+ 4920 = 1.00000
+ 4923 = 1.00000
+ 4924 = 1.00000
+ 4931 = 1.00000
+ 4932 = 1.00000
+ 4941 = 1.00000
+ 4943 = 1.00000
+ 4942 = 1.00000
+ 4944 = 1.00000
+ 4947 = 1.00000
+ 4948 = 1.00000
+ 4953 = 1.00000
+ 4954 = 1.00000
+ 4955 = 1.00000
+ 4956 = 1.00000
+ 4969 = 1.00000
+ 4970 = 1.00000
+ 4971 = 1.00000
+ 4972 = 1.00000
+ 5106 = 1.00000
+ 5109 = 1.00000
+ 5110 = 1.00000
+ 5121 = 1.00000
+ 5122 = 1.00000
+ 5127 = 1.00000
+ 5128 = 1.00000
+ 5129 = 1.00000
+ 5130 = 1.00000
+ 5187 = 1.00000
+ 5193 = 1.00000
+ 5194 = 1.00000
+ 5211 = 1.00000
+ 5212 = 1.00000
+ 5223 = 1.00000
+ 5224 = 1.00000
+ 5225 = 1.00000
+ 5226 = 1.00000
+ 5376 = 1.00000
+ 5382 = 1.00000
+ 5383 = 1.00000
+ 5400 = 1.00000
+ 5401 = 1.00000
+ 5412 = 1.00000
+ 5413 = 1.00000
+ 5414 = 1.00000
+ 5415 = 1.00000
+ 5565 = 1.00000
+ 5571 = 1.00000
+ 5572 = 1.00000
+ 5589 = 1.00000
+ 5590 = 1.00000
+ 5601 = 1.00000
+ 5602 = 1.00000
+ 5603 = 1.00000
+ 5604 = 1.00000
+ 5754 = 1.00000
+ 5760 = 1.00000
+ 5761 = 1.00000
+ 5778 = 1.00000
+ 5779 = 1.00000
+ 5790 = 1.00000
+ 5791 = 1.00000
+ 5792 = 1.00000
+ 5793 = 1.00000
+ 6024 = 1.00000
+ 6027 = 1.00000
+ 6028 = 1.00000
+ 6039 = 1.00000
+ 6040 = 1.00000
+ 6045 = 1.00000
+ 6046 = 1.00000
+ 6047 = 1.00000
+ 6048 = 1.00000
+ 6186 = 1.00000
+ 6189 = 1.00000
+ 6190 = 1.00000
+ 6201 = 1.00000
+ 6202 = 1.00000
+ 6207 = 1.00000
+ 6208 = 1.00000
+ 6209 = 1.00000
+ 6210 = 1.00000
+ 6348 = 1.00000
+ 6351 = 1.00000
+ 6352 = 1.00000
+ 6363 = 1.00000
+ 6364 = 1.00000
+ 6369 = 1.00000
+ 6370 = 1.00000
+ 6371 = 1.00000
+ 6372 = 1.00000
+ 6510 = 1.00000
+ 6513 = 1.00000
+ 6514 = 1.00000
+ 6525 = 1.00000
+ 6526 = 1.00000
+ 6531 = 1.00000
+ 6532 = 1.00000
+ 6533 = 1.00000
+ 6534 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=3
+ 0 = 1.00000
+ 1 = 1.00000
+ 4 = 1.00000
+ 6 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 16 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 25 = 1.00000
+ 38 = 1.00000
+ 39 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 62 = 1.00000
+ 63 = 1.00000
+ 72 = 1.00000
+ 74 = 1.00000
+ 73 = 1.00000
+ 75 = 1.00000
+ 80 = 1.00000
+ 81 = 1.00000
+ 84 = 1.00000
+ 85 = 1.00000
+ 96 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 124 = 1.00000
+ 125 = 1.00000
+ 126 = 1.00000
+ 127 = 1.00000
+ 193 = 1.00000
+ 199 = 1.00000
+ 212 = 1.00000
+ 213 = 1.00000
+ 230 = 1.00000
+ 231 = 1.00000
+ 242 = 1.00000
+ 243 = 1.00000
+ 268 = 1.00000
+ 269 = 1.00000
+ 270 = 1.00000
+ 271 = 1.00000
+ 336 = 1.00000
+ 342 = 1.00000
+ 348 = 1.00000
+ 349 = 1.00000
+ 366 = 1.00000
+ 367 = 1.00000
+ 384 = 1.00000
+ 385 = 1.00000
+ 396 = 1.00000
+ 397 = 1.00000
+ 398 = 1.00000
+ 399 = 1.00000
+ 588 = 1.00000
+ 589 = 1.00000
+ 592 = 1.00000
+ 594 = 1.00000
+ 600 = 1.00000
+ 601 = 1.00000
+ 614 = 1.00000
+ 615 = 1.00000
+ 624 = 1.00000
+ 626 = 1.00000
+ 625 = 1.00000
+ 627 = 1.00000
+ 632 = 1.00000
+ 633 = 1.00000
+ 636 = 1.00000
+ 637 = 1.00000
+ 648 = 1.00000
+ 649 = 1.00000
+ 650 = 1.00000
+ 651 = 1.00000
+ 676 = 1.00000
+ 677 = 1.00000
+ 678 = 1.00000
+ 679 = 1.00000
+ 733 = 1.00000
+ 746 = 1.00000
+ 747 = 1.00000
+ 758 = 1.00000
+ 759 = 1.00000
+ 784 = 1.00000
+ 785 = 1.00000
+ 786 = 1.00000
+ 787 = 1.00000
+ 840 = 1.00000
+ 846 = 1.00000
+ 847 = 1.00000
+ 864 = 1.00000
+ 865 = 1.00000
+ 876 = 1.00000
+ 877 = 1.00000
+ 878 = 1.00000
+ 879 = 1.00000
+ 1030 = 1.00000
+ 1036 = 1.00000
+ 1049 = 1.00000
+ 1050 = 1.00000
+ 1067 = 1.00000
+ 1068 = 1.00000
+ 1079 = 1.00000
+ 1080 = 1.00000
+ 1105 = 1.00000
+ 1106 = 1.00000
+ 1107 = 1.00000
+ 1108 = 1.00000
+ 1173 = 1.00000
+ 1174 = 1.00000
+ 1176 = 1.00000
+ 1179 = 1.00000
+ 1180 = 1.00000
+ 1182 = 1.00000
+ 1185 = 1.00000
+ 1186 = 1.00000
+ 1193 = 1.00000
+ 1194 = 1.00000
+ 1203 = 1.00000
+ 1204 = 1.00000
+ 1211 = 1.00000
+ 1212 = 1.00000
+ 1221 = 1.00000
+ 1223 = 1.00000
+ 1222 = 1.00000
+ 1224 = 1.00000
+ 1227 = 1.00000
+ 1228 = 1.00000
+ 1233 = 1.00000
+ 1234 = 1.00000
+ 1235 = 1.00000
+ 1236 = 1.00000
+ 1249 = 1.00000
+ 1250 = 1.00000
+ 1251 = 1.00000
+ 1252 = 1.00000
+ 1425 = 1.00000
+ 1428 = 1.00000
+ 1431 = 1.00000
+ 1432 = 1.00000
+ 1443 = 1.00000
+ 1444 = 1.00000
+ 1455 = 1.00000
+ 1456 = 1.00000
+ 1461 = 1.00000
+ 1462 = 1.00000
+ 1463 = 1.00000
+ 1464 = 1.00000
+ 1534 = 1.00000
+ 1547 = 1.00000
+ 1548 = 1.00000
+ 1559 = 1.00000
+ 1560 = 1.00000
+ 1585 = 1.00000
+ 1586 = 1.00000
+ 1587 = 1.00000
+ 1588 = 1.00000
+ 1641 = 1.00000
+ 1642 = 1.00000
+ 1644 = 1.00000
+ 1647 = 1.00000
+ 1648 = 1.00000
+ 1655 = 1.00000
+ 1656 = 1.00000
+ 1665 = 1.00000
+ 1667 = 1.00000
+ 1666 = 1.00000
+ 1668 = 1.00000
+ 1671 = 1.00000
+ 1672 = 1.00000
+ 1677 = 1.00000
+ 1678 = 1.00000
+ 1679 = 1.00000
+ 1680 = 1.00000
+ 1693 = 1.00000
+ 1694 = 1.00000
+ 1695 = 1.00000
+ 1696 = 1.00000
+ 1830 = 1.00000
+ 1833 = 1.00000
+ 1834 = 1.00000
+ 1845 = 1.00000
+ 1846 = 1.00000
+ 1851 = 1.00000
+ 1852 = 1.00000
+ 1853 = 1.00000
+ 1854 = 1.00000
+ 1911 = 1.00000
+ 1917 = 1.00000
+ 1923 = 1.00000
+ 1924 = 1.00000
+ 1941 = 1.00000
+ 1942 = 1.00000
+ 1959 = 1.00000
+ 1960 = 1.00000
+ 1971 = 1.00000
+ 1972 = 1.00000
+ 1973 = 1.00000
+ 1974 = 1.00000
+ 2163 = 1.00000
+ 2164 = 1.00000
+ 2167 = 1.00000
+ 2169 = 1.00000
+ 2170 = 1.00000
+ 2173 = 1.00000
+ 2175 = 1.00000
+ 2176 = 1.00000
+ 2189 = 1.00000
+ 2190 = 1.00000
+ 2193 = 1.00000
+ 2194 = 1.00000
+ 2207 = 1.00000
+ 2208 = 1.00000
+ 2211 = 1.00000
+ 2213 = 1.00000
+ 2212 = 1.00000
+ 2214 = 1.00000
+ 2219 = 1.00000
+ 2220 = 1.00000
+ 2223 = 1.00000
+ 2224 = 1.00000
+ 2225 = 1.00000
+ 2226 = 1.00000
+ 2251 = 1.00000
+ 2252 = 1.00000
+ 2253 = 1.00000
+ 2254 = 1.00000
+ 2308 = 1.00000
+ 2311 = 1.00000
+ 2321 = 1.00000
+ 2322 = 1.00000
+ 2333 = 1.00000
+ 2334 = 1.00000
+ 2339 = 1.00000
+ 2340 = 1.00000
+ 2359 = 1.00000
+ 2360 = 1.00000
+ 2361 = 1.00000
+ 2362 = 1.00000
+ 2415 = 1.00000
+ 2421 = 1.00000
+ 2422 = 1.00000
+ 2439 = 1.00000
+ 2440 = 1.00000
+ 2451 = 1.00000
+ 2452 = 1.00000
+ 2453 = 1.00000
+ 2454 = 1.00000
+ 2604 = 1.00000
+ 2605 = 1.00000
+ 2608 = 1.00000
+ 2610 = 1.00000
+ 2611 = 1.00000
+ 2624 = 1.00000
+ 2625 = 1.00000
+ 2628 = 1.00000
+ 2630 = 1.00000
+ 2629 = 1.00000
+ 2631 = 1.00000
+ 2636 = 1.00000
+ 2637 = 1.00000
+ 2640 = 1.00000
+ 2641 = 1.00000
+ 2642 = 1.00000
+ 2643 = 1.00000
+ 2668 = 1.00000
+ 2669 = 1.00000
+ 2670 = 1.00000
+ 2671 = 1.00000
+ 2713 = 1.00000
+ 2723 = 1.00000
+ 2724 = 1.00000
+ 2729 = 1.00000
+ 2730 = 1.00000
+ 2749 = 1.00000
+ 2750 = 1.00000
+ 2751 = 1.00000
+ 2752 = 1.00000
+ 2901 = 1.00000
+ 2904 = 1.00000
+ 2907 = 1.00000
+ 2908 = 1.00000
+ 2919 = 1.00000
+ 2920 = 1.00000
+ 2931 = 1.00000
+ 2932 = 1.00000
+ 2937 = 1.00000
+ 2938 = 1.00000
+ 2939 = 1.00000
+ 2940 = 1.00000
+ 3010 = 1.00000
+ 3013 = 1.00000
+ 3023 = 1.00000
+ 3024 = 1.00000
+ 3035 = 1.00000
+ 3036 = 1.00000
+ 3041 = 1.00000
+ 3042 = 1.00000
+ 3061 = 1.00000
+ 3062 = 1.00000
+ 3063 = 1.00000
+ 3064 = 1.00000
+ 3117 = 1.00000
+ 3118 = 1.00000
+ 3120 = 1.00000
+ 3121 = 1.00000
+ 3123 = 1.00000
+ 3124 = 1.00000
+ 3131 = 1.00000
+ 3132 = 1.00000
+ 3135 = 1.00000
+ 3136 = 1.00000
+ 3143 = 1.00000
+ 3144 = 1.00000
+ 3147 = 1.00000
+ 3149 = 1.00000
+ 3148 = 1.00000
+ 3150 = 1.00000
+ 3153 = 1.00000
+ 3154 = 1.00000
+ 3155 = 1.00000
+ 3156 = 1.00000
+ 3169 = 1.00000
+ 3170 = 1.00000
+ 3171 = 1.00000
+ 3172 = 1.00000
+ 3306 = 1.00000
+ 3309 = 1.00000
+ 3310 = 1.00000
+ 3321 = 1.00000
+ 3322 = 1.00000
+ 3327 = 1.00000
+ 3328 = 1.00000
+ 3329 = 1.00000
+ 3330 = 1.00000
+ 3388 = 1.00000
+ 3398 = 1.00000
+ 3399 = 1.00000
+ 3404 = 1.00000
+ 3405 = 1.00000
+ 3424 = 1.00000
+ 3425 = 1.00000
+ 3426 = 1.00000
+ 3427 = 1.00000
+ 3468 = 1.00000
+ 3469 = 1.00000
+ 3471 = 1.00000
+ 3472 = 1.00000
+ 3479 = 1.00000
+ 3480 = 1.00000
+ 3483 = 1.00000
+ 3485 = 1.00000
+ 3484 = 1.00000
+ 3486 = 1.00000
+ 3489 = 1.00000
+ 3490 = 1.00000
+ 3491 = 1.00000
+ 3492 = 1.00000
+ 3505 = 1.00000
+ 3506 = 1.00000
+ 3507 = 1.00000
+ 3508 = 1.00000
+ 3549 = 1.00000
+ 3550 = 1.00000
+ 3553 = 1.00000
+ 3555 = 1.00000
+ 3561 = 1.00000
+ 3562 = 1.00000
+ 3575 = 1.00000
+ 3576 = 1.00000
+ 3585 = 1.00000
+ 3587 = 1.00000
+ 3586 = 1.00000
+ 3588 = 1.00000
+ 3593 = 1.00000
+ 3594 = 1.00000
+ 3597 = 1.00000
+ 3598 = 1.00000
+ 3609 = 1.00000
+ 3610 = 1.00000
+ 3611 = 1.00000
+ 3612 = 1.00000
+ 3637 = 1.00000
+ 3638 = 1.00000
+ 3639 = 1.00000
+ 3640 = 1.00000
+ 3694 = 1.00000
+ 3707 = 1.00000
+ 3708 = 1.00000
+ 3719 = 1.00000
+ 3720 = 1.00000
+ 3745 = 1.00000
+ 3746 = 1.00000
+ 3747 = 1.00000
+ 3748 = 1.00000
+ 3801 = 1.00000
+ 3807 = 1.00000
+ 3808 = 1.00000
+ 3825 = 1.00000
+ 3826 = 1.00000
+ 3837 = 1.00000
+ 3838 = 1.00000
+ 3839 = 1.00000
+ 3840 = 1.00000
+ 3990 = 1.00000
+ 3991 = 1.00000
+ 3994 = 1.00000
+ 3996 = 1.00000
+ 4002 = 1.00000
+ 4003 = 1.00000
+ 4016 = 1.00000
+ 4017 = 1.00000
+ 4026 = 1.00000
+ 4028 = 1.00000
+ 4027 = 1.00000
+ 4029 = 1.00000
+ 4034 = 1.00000
+ 4035 = 1.00000
+ 4038 = 1.00000
+ 4039 = 1.00000
+ 4050 = 1.00000
+ 4051 = 1.00000
+ 4052 = 1.00000
+ 4053 = 1.00000
+ 4078 = 1.00000
+ 4079 = 1.00000
+ 4080 = 1.00000
+ 4081 = 1.00000
+ 4135 = 1.00000
+ 4148 = 1.00000
+ 4149 = 1.00000
+ 4160 = 1.00000
+ 4161 = 1.00000
+ 4186 = 1.00000
+ 4187 = 1.00000
+ 4188 = 1.00000
+ 4189 = 1.00000
+ 4242 = 1.00000
+ 4248 = 1.00000
+ 4249 = 1.00000
+ 4266 = 1.00000
+ 4267 = 1.00000
+ 4278 = 1.00000
+ 4279 = 1.00000
+ 4280 = 1.00000
+ 4281 = 1.00000
+ 4432 = 1.00000
+ 4445 = 1.00000
+ 4446 = 1.00000
+ 4457 = 1.00000
+ 4458 = 1.00000
+ 4483 = 1.00000
+ 4484 = 1.00000
+ 4485 = 1.00000
+ 4486 = 1.00000
+ 4539 = 1.00000
+ 4540 = 1.00000
+ 4542 = 1.00000
+ 4545 = 1.00000
+ 4546 = 1.00000
+ 4553 = 1.00000
+ 4554 = 1.00000
+ 4563 = 1.00000
+ 4565 = 1.00000
+ 4564 = 1.00000
+ 4566 = 1.00000
+ 4569 = 1.00000
+ 4570 = 1.00000
+ 4575 = 1.00000
+ 4576 = 1.00000
+ 4577 = 1.00000
+ 4578 = 1.00000
+ 4591 = 1.00000
+ 4592 = 1.00000
+ 4593 = 1.00000
+ 4594 = 1.00000
+ 4728 = 1.00000
+ 4731 = 1.00000
+ 4732 = 1.00000
+ 4743 = 1.00000
+ 4744 = 1.00000
+ 4749 = 1.00000
+ 4750 = 1.00000
+ 4751 = 1.00000
+ 4752 = 1.00000
+ 4810 = 1.00000
+ 4823 = 1.00000
+ 4824 = 1.00000
+ 4835 = 1.00000
+ 4836 = 1.00000
+ 4861 = 1.00000
+ 4862 = 1.00000
+ 4863 = 1.00000
+ 4864 = 1.00000
+ 4917 = 1.00000
+ 4918 = 1.00000
+ 4920 = 1.00000
+ 4923 = 1.00000
+ 4924 = 1.00000
+ 4931 = 1.00000
+ 4932 = 1.00000
+ 4941 = 1.00000
+ 4943 = 1.00000
+ 4942 = 1.00000
+ 4944 = 1.00000
+ 4947 = 1.00000
+ 4948 = 1.00000
+ 4953 = 1.00000
+ 4954 = 1.00000
+ 4955 = 1.00000
+ 4956 = 1.00000
+ 4969 = 1.00000
+ 4970 = 1.00000
+ 4971 = 1.00000
+ 4972 = 1.00000
+ 5106 = 1.00000
+ 5109 = 1.00000
+ 5110 = 1.00000
+ 5121 = 1.00000
+ 5122 = 1.00000
+ 5127 = 1.00000
+ 5128 = 1.00000
+ 5129 = 1.00000
+ 5130 = 1.00000
+ 5187 = 1.00000
+ 5193 = 1.00000
+ 5194 = 1.00000
+ 5211 = 1.00000
+ 5212 = 1.00000
+ 5223 = 1.00000
+ 5224 = 1.00000
+ 5225 = 1.00000
+ 5226 = 1.00000
+ 5376 = 1.00000
+ 5377 = 1.00000
+ 5380 = 1.00000
+ 5382 = 1.00000
+ 5383 = 1.00000
+ 5396 = 1.00000
+ 5397 = 1.00000
+ 5400 = 1.00000
+ 5402 = 1.00000
+ 5401 = 1.00000
+ 5403 = 1.00000
+ 5408 = 1.00000
+ 5409 = 1.00000
+ 5412 = 1.00000
+ 5413 = 1.00000
+ 5414 = 1.00000
+ 5415 = 1.00000
+ 5440 = 1.00000
+ 5441 = 1.00000
+ 5442 = 1.00000
+ 5443 = 1.00000
+ 5485 = 1.00000
+ 5495 = 1.00000
+ 5496 = 1.00000
+ 5501 = 1.00000
+ 5502 = 1.00000
+ 5521 = 1.00000
+ 5522 = 1.00000
+ 5523 = 1.00000
+ 5524 = 1.00000
+ 5565 = 1.00000
+ 5571 = 1.00000
+ 5572 = 1.00000
+ 5589 = 1.00000
+ 5590 = 1.00000
+ 5601 = 1.00000
+ 5602 = 1.00000
+ 5603 = 1.00000
+ 5604 = 1.00000
+ 5754 = 1.00000
+ 5755 = 1.00000
+ 5758 = 1.00000
+ 5760 = 1.00000
+ 5761 = 1.00000
+ 5774 = 1.00000
+ 5775 = 1.00000
+ 5778 = 1.00000
+ 5780 = 1.00000
+ 5779 = 1.00000
+ 5781 = 1.00000
+ 5786 = 1.00000
+ 5787 = 1.00000
+ 5790 = 1.00000
+ 5791 = 1.00000
+ 5792 = 1.00000
+ 5793 = 1.00000
+ 5818 = 1.00000
+ 5819 = 1.00000
+ 5820 = 1.00000
+ 5821 = 1.00000
+ 5863 = 1.00000
+ 5873 = 1.00000
+ 5874 = 1.00000
+ 5879 = 1.00000
+ 5880 = 1.00000
+ 5899 = 1.00000
+ 5900 = 1.00000
+ 5901 = 1.00000
+ 5902 = 1.00000
+ 6024 = 1.00000
+ 6027 = 1.00000
+ 6028 = 1.00000
+ 6039 = 1.00000
+ 6040 = 1.00000
+ 6045 = 1.00000
+ 6046 = 1.00000
+ 6047 = 1.00000
+ 6048 = 1.00000
+ 6106 = 1.00000
+ 6116 = 1.00000
+ 6117 = 1.00000
+ 6122 = 1.00000
+ 6123 = 1.00000
+ 6142 = 1.00000
+ 6143 = 1.00000
+ 6144 = 1.00000
+ 6145 = 1.00000
+ 6186 = 1.00000
+ 6187 = 1.00000
+ 6189 = 1.00000
+ 6190 = 1.00000
+ 6197 = 1.00000
+ 6198 = 1.00000
+ 6201 = 1.00000
+ 6203 = 1.00000
+ 6202 = 1.00000
+ 6204 = 1.00000
+ 6207 = 1.00000
+ 6208 = 1.00000
+ 6209 = 1.00000
+ 6210 = 1.00000
+ 6223 = 1.00000
+ 6224 = 1.00000
+ 6225 = 1.00000
+ 6226 = 1.00000
+ 6348 = 1.00000
+ 6351 = 1.00000
+ 6352 = 1.00000
+ 6363 = 1.00000
+ 6364 = 1.00000
+ 6369 = 1.00000
+ 6370 = 1.00000
+ 6371 = 1.00000
+ 6372 = 1.00000
+ 6430 = 1.00000
+ 6440 = 1.00000
+ 6441 = 1.00000
+ 6446 = 1.00000
+ 6447 = 1.00000
+ 6466 = 1.00000
+ 6467 = 1.00000
+ 6468 = 1.00000
+ 6469 = 1.00000
+ 6510 = 1.00000
+ 6511 = 1.00000
+ 6513 = 1.00000
+ 6514 = 1.00000
+ 6521 = 1.00000
+ 6522 = 1.00000
+ 6525 = 1.00000
+ 6527 = 1.00000
+ 6526 = 1.00000
+ 6528 = 1.00000
+ 6531 = 1.00000
+ 6532 = 1.00000
+ 6533 = 1.00000
+ 6534 = 1.00000
+ 6547 = 1.00000
+ 6548 = 1.00000
+ 6549 = 1.00000
+ 6550 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=4
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 4 = 1.00000
+ 5 = 1.00000
+ 6 = 1.00000
+ 8 = 1.00000
+ 11 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 16 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 28 = 1.00000
+ 25 = 1.00000
+ 29 = 1.00000
+ 34 = 1.00000
+ 35 = 1.00000
+ 38 = 1.00000
+ 40 = 1.00000
+ 39 = 1.00000
+ 41 = 1.00000
+ 46 = 1.00000
+ 47 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 62 = 1.00000
+ 63 = 1.00000
+ 72 = 1.00000
+ 74 = 1.00000
+ 73 = 1.00000
+ 75 = 1.00000
+ 80 = 1.00000
+ 81 = 1.00000
+ 84 = 1.00000
+ 85 = 1.00000
+ 96 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 124 = 1.00000
+ 125 = 1.00000
+ 126 = 1.00000
+ 127 = 1.00000
+ 152 = 1.00000
+ 153 = 1.00000
+ 154 = 1.00000
+ 155 = 1.00000
+ 193 = 1.00000
+ 194 = 1.00000
+ 197 = 1.00000
+ 199 = 1.00000
+ 208 = 1.00000
+ 209 = 1.00000
+ 212 = 1.00000
+ 214 = 1.00000
+ 213 = 1.00000
+ 215 = 1.00000
+ 220 = 1.00000
+ 221 = 1.00000
+ 230 = 1.00000
+ 231 = 1.00000
+ 242 = 1.00000
+ 243 = 1.00000
+ 268 = 1.00000
+ 269 = 1.00000
+ 270 = 1.00000
+ 271 = 1.00000
+ 296 = 1.00000
+ 297 = 1.00000
+ 298 = 1.00000
+ 299 = 1.00000
+ 336 = 1.00000
+ 338 = 1.00000
+ 341 = 1.00000
+ 342 = 1.00000
+ 348 = 1.00000
+ 352 = 1.00000
+ 349 = 1.00000
+ 353 = 1.00000
+ 358 = 1.00000
+ 359 = 1.00000
+ 364 = 1.00000
+ 365 = 1.00000
+ 366 = 1.00000
+ 367 = 1.00000
+ 384 = 1.00000
+ 385 = 1.00000
+ 396 = 1.00000
+ 397 = 1.00000
+ 398 = 1.00000
+ 399 = 1.00000
+ 440 = 1.00000
+ 441 = 1.00000
+ 442 = 1.00000
+ 443 = 1.00000
+ 482 = 1.00000
+ 490 = 1.00000
+ 491 = 1.00000
+ 496 = 1.00000
+ 497 = 1.00000
+ 548 = 1.00000
+ 549 = 1.00000
+ 550 = 1.00000
+ 551 = 1.00000
+ 588 = 1.00000
+ 589 = 1.00000
+ 592 = 1.00000
+ 594 = 1.00000
+ 600 = 1.00000
+ 601 = 1.00000
+ 614 = 1.00000
+ 615 = 1.00000
+ 624 = 1.00000
+ 626 = 1.00000
+ 625 = 1.00000
+ 627 = 1.00000
+ 632 = 1.00000
+ 633 = 1.00000
+ 636 = 1.00000
+ 637 = 1.00000
+ 648 = 1.00000
+ 649 = 1.00000
+ 650 = 1.00000
+ 651 = 1.00000
+ 676 = 1.00000
+ 677 = 1.00000
+ 678 = 1.00000
+ 679 = 1.00000
+ 733 = 1.00000
+ 746 = 1.00000
+ 747 = 1.00000
+ 758 = 1.00000
+ 759 = 1.00000
+ 784 = 1.00000
+ 785 = 1.00000
+ 786 = 1.00000
+ 787 = 1.00000
+ 840 = 1.00000
+ 846 = 1.00000
+ 847 = 1.00000
+ 864 = 1.00000
+ 865 = 1.00000
+ 876 = 1.00000
+ 877 = 1.00000
+ 878 = 1.00000
+ 879 = 1.00000
+ 1030 = 1.00000
+ 1031 = 1.00000
+ 1034 = 1.00000
+ 1036 = 1.00000
+ 1045 = 1.00000
+ 1046 = 1.00000
+ 1049 = 1.00000
+ 1051 = 1.00000
+ 1050 = 1.00000
+ 1052 = 1.00000
+ 1057 = 1.00000
+ 1058 = 1.00000
+ 1067 = 1.00000
+ 1068 = 1.00000
+ 1079 = 1.00000
+ 1080 = 1.00000
+ 1105 = 1.00000
+ 1106 = 1.00000
+ 1107 = 1.00000
+ 1108 = 1.00000
+ 1133 = 1.00000
+ 1134 = 1.00000
+ 1135 = 1.00000
+ 1136 = 1.00000
+ 1173 = 1.00000
+ 1174 = 1.00000
+ 1175 = 1.00000
+ 1176 = 1.00000
+ 1178 = 1.00000
+ 1179 = 1.00000
+ 1180 = 1.00000
+ 1182 = 1.00000
+ 1185 = 1.00000
+ 1189 = 1.00000
+ 1186 = 1.00000
+ 1190 = 1.00000
+ 1193 = 1.00000
+ 1195 = 1.00000
+ 1194 = 1.00000
+ 1196 = 1.00000
+ 1201 = 1.00000
+ 1202 = 1.00000
+ 1203 = 1.00000
+ 1204 = 1.00000
+ 1211 = 1.00000
+ 1212 = 1.00000
+ 1221 = 1.00000
+ 1223 = 1.00000
+ 1222 = 1.00000
+ 1224 = 1.00000
+ 1227 = 1.00000
+ 1228 = 1.00000
+ 1233 = 1.00000
+ 1234 = 1.00000
+ 1235 = 1.00000
+ 1236 = 1.00000
+ 1249 = 1.00000
+ 1250 = 1.00000
+ 1251 = 1.00000
+ 1252 = 1.00000
+ 1277 = 1.00000
+ 1278 = 1.00000
+ 1279 = 1.00000
+ 1280 = 1.00000
+ 1319 = 1.00000
+ 1327 = 1.00000
+ 1328 = 1.00000
+ 1333 = 1.00000
+ 1334 = 1.00000
+ 1385 = 1.00000
+ 1386 = 1.00000
+ 1387 = 1.00000
+ 1388 = 1.00000
+ 1425 = 1.00000
+ 1427 = 1.00000
+ 1428 = 1.00000
+ 1431 = 1.00000
+ 1435 = 1.00000
+ 1432 = 1.00000
+ 1436 = 1.00000
+ 1441 = 1.00000
+ 1442 = 1.00000
+ 1443 = 1.00000
+ 1444 = 1.00000
+ 1455 = 1.00000
+ 1456 = 1.00000
+ 1461 = 1.00000
+ 1462 = 1.00000
+ 1463 = 1.00000
+ 1464 = 1.00000
+ 1493 = 1.00000
+ 1494 = 1.00000
+ 1495 = 1.00000
+ 1496 = 1.00000
+ 1534 = 1.00000
+ 1547 = 1.00000
+ 1548 = 1.00000
+ 1559 = 1.00000
+ 1560 = 1.00000
+ 1585 = 1.00000
+ 1586 = 1.00000
+ 1587 = 1.00000
+ 1588 = 1.00000
+ 1641 = 1.00000
+ 1642 = 1.00000
+ 1644 = 1.00000
+ 1647 = 1.00000
+ 1648 = 1.00000
+ 1655 = 1.00000
+ 1656 = 1.00000
+ 1665 = 1.00000
+ 1667 = 1.00000
+ 1666 = 1.00000
+ 1668 = 1.00000
+ 1671 = 1.00000
+ 1672 = 1.00000
+ 1677 = 1.00000
+ 1678 = 1.00000
+ 1679 = 1.00000
+ 1680 = 1.00000
+ 1693 = 1.00000
+ 1694 = 1.00000
+ 1695 = 1.00000
+ 1696 = 1.00000
+ 1830 = 1.00000
+ 1833 = 1.00000
+ 1834 = 1.00000
+ 1845 = 1.00000
+ 1846 = 1.00000
+ 1851 = 1.00000
+ 1852 = 1.00000
+ 1853 = 1.00000
+ 1854 = 1.00000
+ 1911 = 1.00000
+ 1913 = 1.00000
+ 1916 = 1.00000
+ 1917 = 1.00000
+ 1923 = 1.00000
+ 1927 = 1.00000
+ 1924 = 1.00000
+ 1928 = 1.00000
+ 1933 = 1.00000
+ 1934 = 1.00000
+ 1939 = 1.00000
+ 1940 = 1.00000
+ 1941 = 1.00000
+ 1942 = 1.00000
+ 1959 = 1.00000
+ 1960 = 1.00000
+ 1971 = 1.00000
+ 1972 = 1.00000
+ 1973 = 1.00000
+ 1974 = 1.00000
+ 2015 = 1.00000
+ 2016 = 1.00000
+ 2017 = 1.00000
+ 2018 = 1.00000
+ 2057 = 1.00000
+ 2065 = 1.00000
+ 2066 = 1.00000
+ 2071 = 1.00000
+ 2072 = 1.00000
+ 2123 = 1.00000
+ 2124 = 1.00000
+ 2125 = 1.00000
+ 2126 = 1.00000
+ 2163 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2167 = 1.00000
+ 2168 = 1.00000
+ 2169 = 1.00000
+ 2170 = 1.00000
+ 2173 = 1.00000
+ 2175 = 1.00000
+ 2179 = 1.00000
+ 2176 = 1.00000
+ 2180 = 1.00000
+ 2185 = 1.00000
+ 2186 = 1.00000
+ 2189 = 1.00000
+ 2191 = 1.00000
+ 2190 = 1.00000
+ 2192 = 1.00000
+ 2193 = 1.00000
+ 2194 = 1.00000
+ 2207 = 1.00000
+ 2208 = 1.00000
+ 2211 = 1.00000
+ 2213 = 1.00000
+ 2212 = 1.00000
+ 2214 = 1.00000
+ 2219 = 1.00000
+ 2220 = 1.00000
+ 2223 = 1.00000
+ 2224 = 1.00000
+ 2225 = 1.00000
+ 2226 = 1.00000
+ 2251 = 1.00000
+ 2252 = 1.00000
+ 2253 = 1.00000
+ 2254 = 1.00000
+ 2267 = 1.00000
+ 2268 = 1.00000
+ 2269 = 1.00000
+ 2270 = 1.00000
+ 2308 = 1.00000
+ 2309 = 1.00000
+ 2311 = 1.00000
+ 2317 = 1.00000
+ 2318 = 1.00000
+ 2321 = 1.00000
+ 2323 = 1.00000
+ 2322 = 1.00000
+ 2324 = 1.00000
+ 2333 = 1.00000
+ 2334 = 1.00000
+ 2339 = 1.00000
+ 2340 = 1.00000
+ 2359 = 1.00000
+ 2360 = 1.00000
+ 2361 = 1.00000
+ 2362 = 1.00000
+ 2375 = 1.00000
+ 2376 = 1.00000
+ 2377 = 1.00000
+ 2378 = 1.00000
+ 2415 = 1.00000
+ 2421 = 1.00000
+ 2422 = 1.00000
+ 2439 = 1.00000
+ 2440 = 1.00000
+ 2451 = 1.00000
+ 2452 = 1.00000
+ 2453 = 1.00000
+ 2454 = 1.00000
+ 2604 = 1.00000
+ 2605 = 1.00000
+ 2608 = 1.00000
+ 2610 = 1.00000
+ 2611 = 1.00000
+ 2624 = 1.00000
+ 2625 = 1.00000
+ 2628 = 1.00000
+ 2630 = 1.00000
+ 2629 = 1.00000
+ 2631 = 1.00000
+ 2636 = 1.00000
+ 2637 = 1.00000
+ 2640 = 1.00000
+ 2641 = 1.00000
+ 2642 = 1.00000
+ 2643 = 1.00000
+ 2668 = 1.00000
+ 2669 = 1.00000
+ 2670 = 1.00000
+ 2671 = 1.00000
+ 2713 = 1.00000
+ 2723 = 1.00000
+ 2724 = 1.00000
+ 2729 = 1.00000
+ 2730 = 1.00000
+ 2749 = 1.00000
+ 2750 = 1.00000
+ 2751 = 1.00000
+ 2752 = 1.00000
+ 2795 = 1.00000
+ 2803 = 1.00000
+ 2804 = 1.00000
+ 2809 = 1.00000
+ 2810 = 1.00000
+ 2861 = 1.00000
+ 2862 = 1.00000
+ 2863 = 1.00000
+ 2864 = 1.00000
+ 2901 = 1.00000
+ 2903 = 1.00000
+ 2904 = 1.00000
+ 2907 = 1.00000
+ 2911 = 1.00000
+ 2908 = 1.00000
+ 2912 = 1.00000
+ 2917 = 1.00000
+ 2918 = 1.00000
+ 2919 = 1.00000
+ 2920 = 1.00000
+ 2931 = 1.00000
+ 2932 = 1.00000
+ 2937 = 1.00000
+ 2938 = 1.00000
+ 2939 = 1.00000
+ 2940 = 1.00000
+ 2969 = 1.00000
+ 2970 = 1.00000
+ 2971 = 1.00000
+ 2972 = 1.00000
+ 3010 = 1.00000
+ 3011 = 1.00000
+ 3013 = 1.00000
+ 3019 = 1.00000
+ 3020 = 1.00000
+ 3023 = 1.00000
+ 3025 = 1.00000
+ 3024 = 1.00000
+ 3026 = 1.00000
+ 3035 = 1.00000
+ 3036 = 1.00000
+ 3041 = 1.00000
+ 3042 = 1.00000
+ 3061 = 1.00000
+ 3062 = 1.00000
+ 3063 = 1.00000
+ 3064 = 1.00000
+ 3077 = 1.00000
+ 3078 = 1.00000
+ 3079 = 1.00000
+ 3080 = 1.00000
+ 3117 = 1.00000
+ 3118 = 1.00000
+ 3119 = 1.00000
+ 3120 = 1.00000
+ 3121 = 1.00000
+ 3123 = 1.00000
+ 3127 = 1.00000
+ 3124 = 1.00000
+ 3128 = 1.00000
+ 3131 = 1.00000
+ 3133 = 1.00000
+ 3132 = 1.00000
+ 3134 = 1.00000
+ 3135 = 1.00000
+ 3136 = 1.00000
+ 3143 = 1.00000
+ 3144 = 1.00000
+ 3147 = 1.00000
+ 3149 = 1.00000
+ 3148 = 1.00000
+ 3150 = 1.00000
+ 3153 = 1.00000
+ 3154 = 1.00000
+ 3155 = 1.00000
+ 3156 = 1.00000
+ 3169 = 1.00000
+ 3170 = 1.00000
+ 3171 = 1.00000
+ 3172 = 1.00000
+ 3185 = 1.00000
+ 3186 = 1.00000
+ 3187 = 1.00000
+ 3188 = 1.00000
+ 3306 = 1.00000
+ 3309 = 1.00000
+ 3310 = 1.00000
+ 3321 = 1.00000
+ 3322 = 1.00000
+ 3327 = 1.00000
+ 3328 = 1.00000
+ 3329 = 1.00000
+ 3330 = 1.00000
+ 3388 = 1.00000
+ 3398 = 1.00000
+ 3399 = 1.00000
+ 3404 = 1.00000
+ 3405 = 1.00000
+ 3424 = 1.00000
+ 3425 = 1.00000
+ 3426 = 1.00000
+ 3427 = 1.00000
+ 3468 = 1.00000
+ 3469 = 1.00000
+ 3471 = 1.00000
+ 3472 = 1.00000
+ 3479 = 1.00000
+ 3480 = 1.00000
+ 3483 = 1.00000
+ 3485 = 1.00000
+ 3484 = 1.00000
+ 3486 = 1.00000
+ 3489 = 1.00000
+ 3490 = 1.00000
+ 3491 = 1.00000
+ 3492 = 1.00000
+ 3505 = 1.00000
+ 3506 = 1.00000
+ 3507 = 1.00000
+ 3508 = 1.00000
+ 3549 = 1.00000
+ 3550 = 1.00000
+ 3553 = 1.00000
+ 3555 = 1.00000
+ 3561 = 1.00000
+ 3562 = 1.00000
+ 3575 = 1.00000
+ 3576 = 1.00000
+ 3585 = 1.00000
+ 3587 = 1.00000
+ 3586 = 1.00000
+ 3588 = 1.00000
+ 3593 = 1.00000
+ 3594 = 1.00000
+ 3597 = 1.00000
+ 3598 = 1.00000
+ 3609 = 1.00000
+ 3610 = 1.00000
+ 3611 = 1.00000
+ 3612 = 1.00000
+ 3637 = 1.00000
+ 3638 = 1.00000
+ 3639 = 1.00000
+ 3640 = 1.00000
+ 3694 = 1.00000
+ 3707 = 1.00000
+ 3708 = 1.00000
+ 3719 = 1.00000
+ 3720 = 1.00000
+ 3745 = 1.00000
+ 3746 = 1.00000
+ 3747 = 1.00000
+ 3748 = 1.00000
+ 3801 = 1.00000
+ 3807 = 1.00000
+ 3808 = 1.00000
+ 3825 = 1.00000
+ 3826 = 1.00000
+ 3837 = 1.00000
+ 3838 = 1.00000
+ 3839 = 1.00000
+ 3840 = 1.00000
+ 3990 = 1.00000
+ 3991 = 1.00000
+ 3994 = 1.00000
+ 3996 = 1.00000
+ 4002 = 1.00000
+ 4003 = 1.00000
+ 4016 = 1.00000
+ 4017 = 1.00000
+ 4026 = 1.00000
+ 4028 = 1.00000
+ 4027 = 1.00000
+ 4029 = 1.00000
+ 4034 = 1.00000
+ 4035 = 1.00000
+ 4038 = 1.00000
+ 4039 = 1.00000
+ 4050 = 1.00000
+ 4051 = 1.00000
+ 4052 = 1.00000
+ 4053 = 1.00000
+ 4078 = 1.00000
+ 4079 = 1.00000
+ 4080 = 1.00000
+ 4081 = 1.00000
+ 4135 = 1.00000
+ 4148 = 1.00000
+ 4149 = 1.00000
+ 4160 = 1.00000
+ 4161 = 1.00000
+ 4186 = 1.00000
+ 4187 = 1.00000
+ 4188 = 1.00000
+ 4189 = 1.00000
+ 4242 = 1.00000
+ 4248 = 1.00000
+ 4249 = 1.00000
+ 4266 = 1.00000
+ 4267 = 1.00000
+ 4278 = 1.00000
+ 4279 = 1.00000
+ 4280 = 1.00000
+ 4281 = 1.00000
+ 4432 = 1.00000
+ 4445 = 1.00000
+ 4446 = 1.00000
+ 4457 = 1.00000
+ 4458 = 1.00000
+ 4483 = 1.00000
+ 4484 = 1.00000
+ 4485 = 1.00000
+ 4486 = 1.00000
+ 4539 = 1.00000
+ 4540 = 1.00000
+ 4542 = 1.00000
+ 4545 = 1.00000
+ 4546 = 1.00000
+ 4553 = 1.00000
+ 4554 = 1.00000
+ 4563 = 1.00000
+ 4565 = 1.00000
+ 4564 = 1.00000
+ 4566 = 1.00000
+ 4569 = 1.00000
+ 4570 = 1.00000
+ 4575 = 1.00000
+ 4576 = 1.00000
+ 4577 = 1.00000
+ 4578 = 1.00000
+ 4591 = 1.00000
+ 4592 = 1.00000
+ 4593 = 1.00000
+ 4594 = 1.00000
+ 4728 = 1.00000
+ 4731 = 1.00000
+ 4732 = 1.00000
+ 4743 = 1.00000
+ 4744 = 1.00000
+ 4749 = 1.00000
+ 4750 = 1.00000
+ 4751 = 1.00000
+ 4752 = 1.00000
+ 4810 = 1.00000
+ 4823 = 1.00000
+ 4824 = 1.00000
+ 4835 = 1.00000
+ 4836 = 1.00000
+ 4861 = 1.00000
+ 4862 = 1.00000
+ 4863 = 1.00000
+ 4864 = 1.00000
+ 4917 = 1.00000
+ 4918 = 1.00000
+ 4920 = 1.00000
+ 4923 = 1.00000
+ 4924 = 1.00000
+ 4931 = 1.00000
+ 4932 = 1.00000
+ 4941 = 1.00000
+ 4943 = 1.00000
+ 4942 = 1.00000
+ 4944 = 1.00000
+ 4947 = 1.00000
+ 4948 = 1.00000
+ 4953 = 1.00000
+ 4954 = 1.00000
+ 4955 = 1.00000
+ 4956 = 1.00000
+ 4969 = 1.00000
+ 4970 = 1.00000
+ 4971 = 1.00000
+ 4972 = 1.00000
+ 5106 = 1.00000
+ 5109 = 1.00000
+ 5110 = 1.00000
+ 5121 = 1.00000
+ 5122 = 1.00000
+ 5127 = 1.00000
+ 5128 = 1.00000
+ 5129 = 1.00000
+ 5130 = 1.00000
+ 5187 = 1.00000
+ 5193 = 1.00000
+ 5194 = 1.00000
+ 5211 = 1.00000
+ 5212 = 1.00000
+ 5223 = 1.00000
+ 5224 = 1.00000
+ 5225 = 1.00000
+ 5226 = 1.00000
+ 5376 = 1.00000
+ 5377 = 1.00000
+ 5380 = 1.00000
+ 5382 = 1.00000
+ 5383 = 1.00000
+ 5396 = 1.00000
+ 5397 = 1.00000
+ 5400 = 1.00000
+ 5402 = 1.00000
+ 5401 = 1.00000
+ 5403 = 1.00000
+ 5408 = 1.00000
+ 5409 = 1.00000
+ 5412 = 1.00000
+ 5413 = 1.00000
+ 5414 = 1.00000
+ 5415 = 1.00000
+ 5440 = 1.00000
+ 5441 = 1.00000
+ 5442 = 1.00000
+ 5443 = 1.00000
+ 5485 = 1.00000
+ 5495 = 1.00000
+ 5496 = 1.00000
+ 5501 = 1.00000
+ 5502 = 1.00000
+ 5521 = 1.00000
+ 5522 = 1.00000
+ 5523 = 1.00000
+ 5524 = 1.00000
+ 5565 = 1.00000
+ 5571 = 1.00000
+ 5572 = 1.00000
+ 5589 = 1.00000
+ 5590 = 1.00000
+ 5601 = 1.00000
+ 5602 = 1.00000
+ 5603 = 1.00000
+ 5604 = 1.00000
+ 5754 = 1.00000
+ 5755 = 1.00000
+ 5758 = 1.00000
+ 5760 = 1.00000
+ 5761 = 1.00000
+ 5774 = 1.00000
+ 5775 = 1.00000
+ 5778 = 1.00000
+ 5780 = 1.00000
+ 5779 = 1.00000
+ 5781 = 1.00000
+ 5786 = 1.00000
+ 5787 = 1.00000
+ 5790 = 1.00000
+ 5791 = 1.00000
+ 5792 = 1.00000
+ 5793 = 1.00000
+ 5818 = 1.00000
+ 5819 = 1.00000
+ 5820 = 1.00000
+ 5821 = 1.00000
+ 5863 = 1.00000
+ 5873 = 1.00000
+ 5874 = 1.00000
+ 5879 = 1.00000
+ 5880 = 1.00000
+ 5899 = 1.00000
+ 5900 = 1.00000
+ 5901 = 1.00000
+ 5902 = 1.00000
+ 6024 = 1.00000
+ 6027 = 1.00000
+ 6028 = 1.00000
+ 6039 = 1.00000
+ 6040 = 1.00000
+ 6045 = 1.00000
+ 6046 = 1.00000
+ 6047 = 1.00000
+ 6048 = 1.00000
+ 6106 = 1.00000
+ 6116 = 1.00000
+ 6117 = 1.00000
+ 6122 = 1.00000
+ 6123 = 1.00000
+ 6142 = 1.00000
+ 6143 = 1.00000
+ 6144 = 1.00000
+ 6145 = 1.00000
+ 6186 = 1.00000
+ 6187 = 1.00000
+ 6189 = 1.00000
+ 6190 = 1.00000
+ 6197 = 1.00000
+ 6198 = 1.00000
+ 6201 = 1.00000
+ 6203 = 1.00000
+ 6202 = 1.00000
+ 6204 = 1.00000
+ 6207 = 1.00000
+ 6208 = 1.00000
+ 6209 = 1.00000
+ 6210 = 1.00000
+ 6223 = 1.00000
+ 6224 = 1.00000
+ 6225 = 1.00000
+ 6226 = 1.00000
+ 6348 = 1.00000
+ 6351 = 1.00000
+ 6352 = 1.00000
+ 6363 = 1.00000
+ 6364 = 1.00000
+ 6369 = 1.00000
+ 6370 = 1.00000
+ 6371 = 1.00000
+ 6372 = 1.00000
+ 6430 = 1.00000
+ 6440 = 1.00000
+ 6441 = 1.00000
+ 6446 = 1.00000
+ 6447 = 1.00000
+ 6466 = 1.00000
+ 6467 = 1.00000
+ 6468 = 1.00000
+ 6469 = 1.00000
+ 6510 = 1.00000
+ 6511 = 1.00000
+ 6513 = 1.00000
+ 6514 = 1.00000
+ 6521 = 1.00000
+ 6522 = 1.00000
+ 6525 = 1.00000
+ 6527 = 1.00000
+ 6526 = 1.00000
+ 6528 = 1.00000
+ 6531 = 1.00000
+ 6532 = 1.00000
+ 6533 = 1.00000
+ 6534 = 1.00000
+ 6547 = 1.00000
+ 6548 = 1.00000
+ 6549 = 1.00000
+ 6550 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=5
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 4 = 1.00000
+ 5 = 1.00000
+ 6 = 1.00000
+ 8 = 1.00000
+ 11 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 16 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 28 = 1.00000
+ 25 = 1.00000
+ 29 = 1.00000
+ 34 = 1.00000
+ 35 = 1.00000
+ 38 = 1.00000
+ 40 = 1.00000
+ 39 = 1.00000
+ 41 = 1.00000
+ 46 = 1.00000
+ 47 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 62 = 1.00000
+ 63 = 1.00000
+ 72 = 1.00000
+ 74 = 1.00000
+ 73 = 1.00000
+ 75 = 1.00000
+ 80 = 1.00000
+ 81 = 1.00000
+ 84 = 1.00000
+ 85 = 1.00000
+ 96 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 124 = 1.00000
+ 125 = 1.00000
+ 126 = 1.00000
+ 127 = 1.00000
+ 152 = 1.00000
+ 153 = 1.00000
+ 154 = 1.00000
+ 155 = 1.00000
+ 193 = 1.00000
+ 194 = 1.00000
+ 197 = 1.00000
+ 199 = 1.00000
+ 208 = 1.00000
+ 209 = 1.00000
+ 212 = 1.00000
+ 214 = 1.00000
+ 213 = 1.00000
+ 215 = 1.00000
+ 220 = 1.00000
+ 221 = 1.00000
+ 230 = 1.00000
+ 231 = 1.00000
+ 242 = 1.00000
+ 243 = 1.00000
+ 268 = 1.00000
+ 269 = 1.00000
+ 270 = 1.00000
+ 271 = 1.00000
+ 296 = 1.00000
+ 297 = 1.00000
+ 298 = 1.00000
+ 299 = 1.00000
+ 336 = 1.00000
+ 338 = 1.00000
+ 341 = 1.00000
+ 342 = 1.00000
+ 348 = 1.00000
+ 352 = 1.00000
+ 349 = 1.00000
+ 353 = 1.00000
+ 358 = 1.00000
+ 359 = 1.00000
+ 364 = 1.00000
+ 365 = 1.00000
+ 366 = 1.00000
+ 367 = 1.00000
+ 384 = 1.00000
+ 385 = 1.00000
+ 396 = 1.00000
+ 397 = 1.00000
+ 398 = 1.00000
+ 399 = 1.00000
+ 440 = 1.00000
+ 441 = 1.00000
+ 442 = 1.00000
+ 443 = 1.00000
+ 482 = 1.00000
+ 490 = 1.00000
+ 491 = 1.00000
+ 496 = 1.00000
+ 497 = 1.00000
+ 548 = 1.00000
+ 549 = 1.00000
+ 550 = 1.00000
+ 551 = 1.00000
+ 588 = 1.00000
+ 589 = 1.00000
+ 592 = 1.00000
+ 594 = 1.00000
+ 600 = 1.00000
+ 601 = 1.00000
+ 614 = 1.00000
+ 615 = 1.00000
+ 624 = 1.00000
+ 626 = 1.00000
+ 625 = 1.00000
+ 627 = 1.00000
+ 632 = 1.00000
+ 633 = 1.00000
+ 636 = 1.00000
+ 637 = 1.00000
+ 648 = 1.00000
+ 649 = 1.00000
+ 650 = 1.00000
+ 651 = 1.00000
+ 676 = 1.00000
+ 677 = 1.00000
+ 678 = 1.00000
+ 679 = 1.00000
+ 733 = 1.00000
+ 746 = 1.00000
+ 747 = 1.00000
+ 758 = 1.00000
+ 759 = 1.00000
+ 784 = 1.00000
+ 785 = 1.00000
+ 786 = 1.00000
+ 787 = 1.00000
+ 840 = 1.00000
+ 846 = 1.00000
+ 847 = 1.00000
+ 864 = 1.00000
+ 865 = 1.00000
+ 876 = 1.00000
+ 877 = 1.00000
+ 878 = 1.00000
+ 879 = 1.00000
+ 1030 = 1.00000
+ 1031 = 1.00000
+ 1034 = 1.00000
+ 1036 = 1.00000
+ 1045 = 1.00000
+ 1046 = 1.00000
+ 1049 = 1.00000
+ 1051 = 1.00000
+ 1050 = 1.00000
+ 1052 = 1.00000
+ 1057 = 1.00000
+ 1058 = 1.00000
+ 1067 = 1.00000
+ 1068 = 1.00000
+ 1079 = 1.00000
+ 1080 = 1.00000
+ 1105 = 1.00000
+ 1106 = 1.00000
+ 1107 = 1.00000
+ 1108 = 1.00000
+ 1133 = 1.00000
+ 1134 = 1.00000
+ 1135 = 1.00000
+ 1136 = 1.00000
+ 1173 = 1.00000
+ 1174 = 1.00000
+ 1175 = 1.00000
+ 1176 = 1.00000
+ 1178 = 1.00000
+ 1179 = 1.00000
+ 1180 = 1.00000
+ 1182 = 1.00000
+ 1185 = 1.00000
+ 1189 = 1.00000
+ 1186 = 1.00000
+ 1190 = 1.00000
+ 1193 = 1.00000
+ 1195 = 1.00000
+ 1194 = 1.00000
+ 1196 = 1.00000
+ 1201 = 1.00000
+ 1202 = 1.00000
+ 1203 = 1.00000
+ 1204 = 1.00000
+ 1211 = 1.00000
+ 1212 = 1.00000
+ 1221 = 1.00000
+ 1223 = 1.00000
+ 1222 = 1.00000
+ 1224 = 1.00000
+ 1227 = 1.00000
+ 1228 = 1.00000
+ 1233 = 1.00000
+ 1234 = 1.00000
+ 1235 = 1.00000
+ 1236 = 1.00000
+ 1249 = 1.00000
+ 1250 = 1.00000
+ 1251 = 1.00000
+ 1252 = 1.00000
+ 1277 = 1.00000
+ 1278 = 1.00000
+ 1279 = 1.00000
+ 1280 = 1.00000
+ 1319 = 1.00000
+ 1327 = 1.00000
+ 1328 = 1.00000
+ 1333 = 1.00000
+ 1334 = 1.00000
+ 1385 = 1.00000
+ 1386 = 1.00000
+ 1387 = 1.00000
+ 1388 = 1.00000
+ 1425 = 1.00000
+ 1427 = 1.00000
+ 1428 = 1.00000
+ 1431 = 1.00000
+ 1435 = 1.00000
+ 1432 = 1.00000
+ 1436 = 1.00000
+ 1441 = 1.00000
+ 1442 = 1.00000
+ 1443 = 1.00000
+ 1444 = 1.00000
+ 1455 = 1.00000
+ 1456 = 1.00000
+ 1461 = 1.00000
+ 1462 = 1.00000
+ 1463 = 1.00000
+ 1464 = 1.00000
+ 1493 = 1.00000
+ 1494 = 1.00000
+ 1495 = 1.00000
+ 1496 = 1.00000
+ 1534 = 1.00000
+ 1547 = 1.00000
+ 1548 = 1.00000
+ 1559 = 1.00000
+ 1560 = 1.00000
+ 1585 = 1.00000
+ 1586 = 1.00000
+ 1587 = 1.00000
+ 1588 = 1.00000
+ 1641 = 1.00000
+ 1642 = 1.00000
+ 1644 = 1.00000
+ 1647 = 1.00000
+ 1648 = 1.00000
+ 1655 = 1.00000
+ 1656 = 1.00000
+ 1665 = 1.00000
+ 1667 = 1.00000
+ 1666 = 1.00000
+ 1668 = 1.00000
+ 1671 = 1.00000
+ 1672 = 1.00000
+ 1677 = 1.00000
+ 1678 = 1.00000
+ 1679 = 1.00000
+ 1680 = 1.00000
+ 1693 = 1.00000
+ 1694 = 1.00000
+ 1695 = 1.00000
+ 1696 = 1.00000
+ 1830 = 1.00000
+ 1833 = 1.00000
+ 1834 = 1.00000
+ 1845 = 1.00000
+ 1846 = 1.00000
+ 1851 = 1.00000
+ 1852 = 1.00000
+ 1853 = 1.00000
+ 1854 = 1.00000
+ 1911 = 1.00000
+ 1913 = 1.00000
+ 1916 = 1.00000
+ 1917 = 1.00000
+ 1923 = 1.00000
+ 1927 = 1.00000
+ 1924 = 1.00000
+ 1928 = 1.00000
+ 1933 = 1.00000
+ 1934 = 1.00000
+ 1939 = 1.00000
+ 1940 = 1.00000
+ 1941 = 1.00000
+ 1942 = 1.00000
+ 1959 = 1.00000
+ 1960 = 1.00000
+ 1971 = 1.00000
+ 1972 = 1.00000
+ 1973 = 1.00000
+ 1974 = 1.00000
+ 2015 = 1.00000
+ 2016 = 1.00000
+ 2017 = 1.00000
+ 2018 = 1.00000
+ 2057 = 1.00000
+ 2065 = 1.00000
+ 2066 = 1.00000
+ 2071 = 1.00000
+ 2072 = 1.00000
+ 2123 = 1.00000
+ 2124 = 1.00000
+ 2125 = 1.00000
+ 2126 = 1.00000
+ 2163 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2167 = 1.00000
+ 2168 = 1.00000
+ 2169 = 1.00000
+ 2170 = 1.00000
+ 2173 = 1.00000
+ 2175 = 1.00000
+ 2179 = 1.00000
+ 2176 = 1.00000
+ 2180 = 1.00000
+ 2185 = 1.00000
+ 2186 = 1.00000
+ 2189 = 1.00000
+ 2191 = 1.00000
+ 2190 = 1.00000
+ 2192 = 1.00000
+ 2193 = 1.00000
+ 2194 = 1.00000
+ 2207 = 1.00000
+ 2208 = 1.00000
+ 2211 = 1.00000
+ 2213 = 1.00000
+ 2212 = 1.00000
+ 2214 = 1.00000
+ 2219 = 1.00000
+ 2220 = 1.00000
+ 2223 = 1.00000
+ 2224 = 1.00000
+ 2225 = 1.00000
+ 2226 = 1.00000
+ 2251 = 1.00000
+ 2252 = 1.00000
+ 2253 = 1.00000
+ 2254 = 1.00000
+ 2267 = 1.00000
+ 2268 = 1.00000
+ 2269 = 1.00000
+ 2270 = 1.00000
+ 2308 = 1.00000
+ 2309 = 1.00000
+ 2311 = 1.00000
+ 2317 = 1.00000
+ 2318 = 1.00000
+ 2321 = 1.00000
+ 2323 = 1.00000
+ 2322 = 1.00000
+ 2324 = 1.00000
+ 2333 = 1.00000
+ 2334 = 1.00000
+ 2339 = 1.00000
+ 2340 = 1.00000
+ 2359 = 1.00000
+ 2360 = 1.00000
+ 2361 = 1.00000
+ 2362 = 1.00000
+ 2375 = 1.00000
+ 2376 = 1.00000
+ 2377 = 1.00000
+ 2378 = 1.00000
+ 2415 = 1.00000
+ 2421 = 1.00000
+ 2422 = 1.00000
+ 2439 = 1.00000
+ 2440 = 1.00000
+ 2451 = 1.00000
+ 2452 = 1.00000
+ 2453 = 1.00000
+ 2454 = 1.00000
+ 2604 = 1.00000
+ 2605 = 1.00000
+ 2608 = 1.00000
+ 2610 = 1.00000
+ 2611 = 1.00000
+ 2624 = 1.00000
+ 2625 = 1.00000
+ 2628 = 1.00000
+ 2630 = 1.00000
+ 2629 = 1.00000
+ 2631 = 1.00000
+ 2636 = 1.00000
+ 2637 = 1.00000
+ 2640 = 1.00000
+ 2641 = 1.00000
+ 2642 = 1.00000
+ 2643 = 1.00000
+ 2668 = 1.00000
+ 2669 = 1.00000
+ 2670 = 1.00000
+ 2671 = 1.00000
+ 2713 = 1.00000
+ 2723 = 1.00000
+ 2724 = 1.00000
+ 2729 = 1.00000
+ 2730 = 1.00000
+ 2749 = 1.00000
+ 2750 = 1.00000
+ 2751 = 1.00000
+ 2752 = 1.00000
+ 2795 = 1.00000
+ 2803 = 1.00000
+ 2804 = 1.00000
+ 2809 = 1.00000
+ 2810 = 1.00000
+ 2861 = 1.00000
+ 2862 = 1.00000
+ 2863 = 1.00000
+ 2864 = 1.00000
+ 2901 = 1.00000
+ 2903 = 1.00000
+ 2904 = 1.00000
+ 2907 = 1.00000
+ 2911 = 1.00000
+ 2908 = 1.00000
+ 2912 = 1.00000
+ 2917 = 1.00000
+ 2918 = 1.00000
+ 2919 = 1.00000
+ 2920 = 1.00000
+ 2931 = 1.00000
+ 2932 = 1.00000
+ 2937 = 1.00000
+ 2938 = 1.00000
+ 2939 = 1.00000
+ 2940 = 1.00000
+ 2969 = 1.00000
+ 2970 = 1.00000
+ 2971 = 1.00000
+ 2972 = 1.00000
+ 3010 = 1.00000
+ 3011 = 1.00000
+ 3013 = 1.00000
+ 3019 = 1.00000
+ 3020 = 1.00000
+ 3023 = 1.00000
+ 3025 = 1.00000
+ 3024 = 1.00000
+ 3026 = 1.00000
+ 3035 = 1.00000
+ 3036 = 1.00000
+ 3041 = 1.00000
+ 3042 = 1.00000
+ 3061 = 1.00000
+ 3062 = 1.00000
+ 3063 = 1.00000
+ 3064 = 1.00000
+ 3077 = 1.00000
+ 3078 = 1.00000
+ 3079 = 1.00000
+ 3080 = 1.00000
+ 3117 = 1.00000
+ 3118 = 1.00000
+ 3119 = 1.00000
+ 3120 = 1.00000
+ 3121 = 1.00000
+ 3123 = 1.00000
+ 3127 = 1.00000
+ 3124 = 1.00000
+ 3128 = 1.00000
+ 3131 = 1.00000
+ 3133 = 1.00000
+ 3132 = 1.00000
+ 3134 = 1.00000
+ 3135 = 1.00000
+ 3136 = 1.00000
+ 3143 = 1.00000
+ 3144 = 1.00000
+ 3147 = 1.00000
+ 3149 = 1.00000
+ 3148 = 1.00000
+ 3150 = 1.00000
+ 3153 = 1.00000
+ 3154 = 1.00000
+ 3155 = 1.00000
+ 3156 = 1.00000
+ 3169 = 1.00000
+ 3170 = 1.00000
+ 3171 = 1.00000
+ 3172 = 1.00000
+ 3185 = 1.00000
+ 3186 = 1.00000
+ 3187 = 1.00000
+ 3188 = 1.00000
+ 3306 = 1.00000
+ 3309 = 1.00000
+ 3310 = 1.00000
+ 3321 = 1.00000
+ 3322 = 1.00000
+ 3327 = 1.00000
+ 3328 = 1.00000
+ 3329 = 1.00000
+ 3330 = 1.00000
+ 3388 = 1.00000
+ 3398 = 1.00000
+ 3399 = 1.00000
+ 3404 = 1.00000
+ 3405 = 1.00000
+ 3424 = 1.00000
+ 3425 = 1.00000
+ 3426 = 1.00000
+ 3427 = 1.00000
+ 3468 = 1.00000
+ 3469 = 1.00000
+ 3471 = 1.00000
+ 3472 = 1.00000
+ 3479 = 1.00000
+ 3480 = 1.00000
+ 3483 = 1.00000
+ 3485 = 1.00000
+ 3484 = 1.00000
+ 3486 = 1.00000
+ 3489 = 1.00000
+ 3490 = 1.00000
+ 3491 = 1.00000
+ 3492 = 1.00000
+ 3505 = 1.00000
+ 3506 = 1.00000
+ 3507 = 1.00000
+ 3508 = 1.00000
+ 3549 = 1.00000
+ 3550 = 1.00000
+ 3553 = 1.00000
+ 3555 = 1.00000
+ 3561 = 1.00000
+ 3562 = 1.00000
+ 3575 = 1.00000
+ 3576 = 1.00000
+ 3585 = 1.00000
+ 3587 = 1.00000
+ 3586 = 1.00000
+ 3588 = 1.00000
+ 3593 = 1.00000
+ 3594 = 1.00000
+ 3597 = 1.00000
+ 3598 = 1.00000
+ 3609 = 1.00000
+ 3610 = 1.00000
+ 3611 = 1.00000
+ 3612 = 1.00000
+ 3637 = 1.00000
+ 3638 = 1.00000
+ 3639 = 1.00000
+ 3640 = 1.00000
+ 3694 = 1.00000
+ 3707 = 1.00000
+ 3708 = 1.00000
+ 3719 = 1.00000
+ 3720 = 1.00000
+ 3745 = 1.00000
+ 3746 = 1.00000
+ 3747 = 1.00000
+ 3748 = 1.00000
+ 3801 = 1.00000
+ 3807 = 1.00000
+ 3808 = 1.00000
+ 3825 = 1.00000
+ 3826 = 1.00000
+ 3837 = 1.00000
+ 3838 = 1.00000
+ 3839 = 1.00000
+ 3840 = 1.00000
+ 3990 = 1.00000
+ 3991 = 1.00000
+ 3992 = 1.00000
+ 3994 = 1.00000
+ 3995 = 1.00000
+ 3996 = 1.00000
+ 3998 = 1.00000
+ 4001 = 1.00000
+ 4002 = 1.00000
+ 4006 = 1.00000
+ 4003 = 1.00000
+ 4007 = 1.00000
+ 4012 = 1.00000
+ 4013 = 1.00000
+ 4016 = 1.00000
+ 4018 = 1.00000
+ 4017 = 1.00000
+ 4019 = 1.00000
+ 4024 = 1.00000
+ 4025 = 1.00000
+ 4026 = 1.00000
+ 4028 = 1.00000
+ 4027 = 1.00000
+ 4029 = 1.00000
+ 4034 = 1.00000
+ 4035 = 1.00000
+ 4038 = 1.00000
+ 4039 = 1.00000
+ 4050 = 1.00000
+ 4051 = 1.00000
+ 4052 = 1.00000
+ 4053 = 1.00000
+ 4078 = 1.00000
+ 4079 = 1.00000
+ 4080 = 1.00000
+ 4081 = 1.00000
+ 4106 = 1.00000
+ 4107 = 1.00000
+ 4108 = 1.00000
+ 4109 = 1.00000
+ 4135 = 1.00000
+ 4136 = 1.00000
+ 4139 = 1.00000
+ 4144 = 1.00000
+ 4145 = 1.00000
+ 4148 = 1.00000
+ 4150 = 1.00000
+ 4149 = 1.00000
+ 4151 = 1.00000
+ 4156 = 1.00000
+ 4157 = 1.00000
+ 4160 = 1.00000
+ 4161 = 1.00000
+ 4186 = 1.00000
+ 4187 = 1.00000
+ 4188 = 1.00000
+ 4189 = 1.00000
+ 4214 = 1.00000
+ 4215 = 1.00000
+ 4216 = 1.00000
+ 4217 = 1.00000
+ 4242 = 1.00000
+ 4244 = 1.00000
+ 4247 = 1.00000
+ 4248 = 1.00000
+ 4252 = 1.00000
+ 4249 = 1.00000
+ 4253 = 1.00000
+ 4258 = 1.00000
+ 4259 = 1.00000
+ 4264 = 1.00000
+ 4265 = 1.00000
+ 4266 = 1.00000
+ 4267 = 1.00000
+ 4278 = 1.00000
+ 4279 = 1.00000
+ 4280 = 1.00000
+ 4281 = 1.00000
+ 4322 = 1.00000
+ 4323 = 1.00000
+ 4324 = 1.00000
+ 4325 = 1.00000
+ 4352 = 1.00000
+ 4357 = 1.00000
+ 4358 = 1.00000
+ 4363 = 1.00000
+ 4364 = 1.00000
+ 4403 = 1.00000
+ 4404 = 1.00000
+ 4405 = 1.00000
+ 4406 = 1.00000
+ 4432 = 1.00000
+ 4445 = 1.00000
+ 4446 = 1.00000
+ 4457 = 1.00000
+ 4458 = 1.00000
+ 4483 = 1.00000
+ 4484 = 1.00000
+ 4485 = 1.00000
+ 4486 = 1.00000
+ 4539 = 1.00000
+ 4540 = 1.00000
+ 4542 = 1.00000
+ 4545 = 1.00000
+ 4546 = 1.00000
+ 4553 = 1.00000
+ 4554 = 1.00000
+ 4563 = 1.00000
+ 4565 = 1.00000
+ 4564 = 1.00000
+ 4566 = 1.00000
+ 4569 = 1.00000
+ 4570 = 1.00000
+ 4575 = 1.00000
+ 4576 = 1.00000
+ 4577 = 1.00000
+ 4578 = 1.00000
+ 4591 = 1.00000
+ 4592 = 1.00000
+ 4593 = 1.00000
+ 4594 = 1.00000
+ 4728 = 1.00000
+ 4731 = 1.00000
+ 4732 = 1.00000
+ 4743 = 1.00000
+ 4744 = 1.00000
+ 4749 = 1.00000
+ 4750 = 1.00000
+ 4751 = 1.00000
+ 4752 = 1.00000
+ 4810 = 1.00000
+ 4811 = 1.00000
+ 4814 = 1.00000
+ 4819 = 1.00000
+ 4820 = 1.00000
+ 4823 = 1.00000
+ 4825 = 1.00000
+ 4824 = 1.00000
+ 4826 = 1.00000
+ 4831 = 1.00000
+ 4832 = 1.00000
+ 4835 = 1.00000
+ 4836 = 1.00000
+ 4861 = 1.00000
+ 4862 = 1.00000
+ 4863 = 1.00000
+ 4864 = 1.00000
+ 4889 = 1.00000
+ 4890 = 1.00000
+ 4891 = 1.00000
+ 4892 = 1.00000
+ 4917 = 1.00000
+ 4918 = 1.00000
+ 4919 = 1.00000
+ 4920 = 1.00000
+ 4922 = 1.00000
+ 4923 = 1.00000
+ 4927 = 1.00000
+ 4924 = 1.00000
+ 4928 = 1.00000
+ 4931 = 1.00000
+ 4933 = 1.00000
+ 4932 = 1.00000
+ 4934 = 1.00000
+ 4939 = 1.00000
+ 4940 = 1.00000
+ 4941 = 1.00000
+ 4943 = 1.00000
+ 4942 = 1.00000
+ 4944 = 1.00000
+ 4947 = 1.00000
+ 4948 = 1.00000
+ 4953 = 1.00000
+ 4954 = 1.00000
+ 4955 = 1.00000
+ 4956 = 1.00000
+ 4969 = 1.00000
+ 4970 = 1.00000
+ 4971 = 1.00000
+ 4972 = 1.00000
+ 4997 = 1.00000
+ 4998 = 1.00000
+ 4999 = 1.00000
+ 5000 = 1.00000
+ 5027 = 1.00000
+ 5032 = 1.00000
+ 5033 = 1.00000
+ 5038 = 1.00000
+ 5039 = 1.00000
+ 5078 = 1.00000
+ 5079 = 1.00000
+ 5080 = 1.00000
+ 5081 = 1.00000
+ 5106 = 1.00000
+ 5108 = 1.00000
+ 5109 = 1.00000
+ 5113 = 1.00000
+ 5110 = 1.00000
+ 5114 = 1.00000
+ 5119 = 1.00000
+ 5120 = 1.00000
+ 5121 = 1.00000
+ 5122 = 1.00000
+ 5127 = 1.00000
+ 5128 = 1.00000
+ 5129 = 1.00000
+ 5130 = 1.00000
+ 5159 = 1.00000
+ 5160 = 1.00000
+ 5161 = 1.00000
+ 5162 = 1.00000
+ 5187 = 1.00000
+ 5193 = 1.00000
+ 5194 = 1.00000
+ 5211 = 1.00000
+ 5212 = 1.00000
+ 5223 = 1.00000
+ 5224 = 1.00000
+ 5225 = 1.00000
+ 5226 = 1.00000
+ 5376 = 1.00000
+ 5377 = 1.00000
+ 5380 = 1.00000
+ 5382 = 1.00000
+ 5383 = 1.00000
+ 5396 = 1.00000
+ 5397 = 1.00000
+ 5400 = 1.00000
+ 5402 = 1.00000
+ 5401 = 1.00000
+ 5403 = 1.00000
+ 5408 = 1.00000
+ 5409 = 1.00000
+ 5412 = 1.00000
+ 5413 = 1.00000
+ 5414 = 1.00000
+ 5415 = 1.00000
+ 5440 = 1.00000
+ 5441 = 1.00000
+ 5442 = 1.00000
+ 5443 = 1.00000
+ 5485 = 1.00000
+ 5495 = 1.00000
+ 5496 = 1.00000
+ 5501 = 1.00000
+ 5502 = 1.00000
+ 5521 = 1.00000
+ 5522 = 1.00000
+ 5523 = 1.00000
+ 5524 = 1.00000
+ 5565 = 1.00000
+ 5567 = 1.00000
+ 5570 = 1.00000
+ 5571 = 1.00000
+ 5575 = 1.00000
+ 5572 = 1.00000
+ 5576 = 1.00000
+ 5581 = 1.00000
+ 5582 = 1.00000
+ 5587 = 1.00000
+ 5588 = 1.00000
+ 5589 = 1.00000
+ 5590 = 1.00000
+ 5601 = 1.00000
+ 5602 = 1.00000
+ 5603 = 1.00000
+ 5604 = 1.00000
+ 5645 = 1.00000
+ 5646 = 1.00000
+ 5647 = 1.00000
+ 5648 = 1.00000
+ 5675 = 1.00000
+ 5680 = 1.00000
+ 5681 = 1.00000
+ 5686 = 1.00000
+ 5687 = 1.00000
+ 5726 = 1.00000
+ 5727 = 1.00000
+ 5728 = 1.00000
+ 5729 = 1.00000
+ 5754 = 1.00000
+ 5755 = 1.00000
+ 5756 = 1.00000
+ 5758 = 1.00000
+ 5759 = 1.00000
+ 5760 = 1.00000
+ 5764 = 1.00000
+ 5761 = 1.00000
+ 5765 = 1.00000
+ 5770 = 1.00000
+ 5771 = 1.00000
+ 5774 = 1.00000
+ 5776 = 1.00000
+ 5775 = 1.00000
+ 5777 = 1.00000
+ 5778 = 1.00000
+ 5780 = 1.00000
+ 5779 = 1.00000
+ 5781 = 1.00000
+ 5786 = 1.00000
+ 5787 = 1.00000
+ 5790 = 1.00000
+ 5791 = 1.00000
+ 5792 = 1.00000
+ 5793 = 1.00000
+ 5818 = 1.00000
+ 5819 = 1.00000
+ 5820 = 1.00000
+ 5821 = 1.00000
+ 5834 = 1.00000
+ 5835 = 1.00000
+ 5836 = 1.00000
+ 5837 = 1.00000
+ 5863 = 1.00000
+ 5864 = 1.00000
+ 5869 = 1.00000
+ 5870 = 1.00000
+ 5873 = 1.00000
+ 5875 = 1.00000
+ 5874 = 1.00000
+ 5876 = 1.00000
+ 5879 = 1.00000
+ 5880 = 1.00000
+ 5899 = 1.00000
+ 5900 = 1.00000
+ 5901 = 1.00000
+ 5902 = 1.00000
+ 5915 = 1.00000
+ 5916 = 1.00000
+ 5917 = 1.00000
+ 5918 = 1.00000
+ 6024 = 1.00000
+ 6027 = 1.00000
+ 6028 = 1.00000
+ 6039 = 1.00000
+ 6040 = 1.00000
+ 6045 = 1.00000
+ 6046 = 1.00000
+ 6047 = 1.00000
+ 6048 = 1.00000
+ 6106 = 1.00000
+ 6116 = 1.00000
+ 6117 = 1.00000
+ 6122 = 1.00000
+ 6123 = 1.00000
+ 6142 = 1.00000
+ 6143 = 1.00000
+ 6144 = 1.00000
+ 6145 = 1.00000
+ 6186 = 1.00000
+ 6187 = 1.00000
+ 6189 = 1.00000
+ 6190 = 1.00000
+ 6197 = 1.00000
+ 6198 = 1.00000
+ 6201 = 1.00000
+ 6203 = 1.00000
+ 6202 = 1.00000
+ 6204 = 1.00000
+ 6207 = 1.00000
+ 6208 = 1.00000
+ 6209 = 1.00000
+ 6210 = 1.00000
+ 6223 = 1.00000
+ 6224 = 1.00000
+ 6225 = 1.00000
+ 6226 = 1.00000
+ 6269 = 1.00000
+ 6274 = 1.00000
+ 6275 = 1.00000
+ 6280 = 1.00000
+ 6281 = 1.00000
+ 6320 = 1.00000
+ 6321 = 1.00000
+ 6322 = 1.00000
+ 6323 = 1.00000
+ 6348 = 1.00000
+ 6350 = 1.00000
+ 6351 = 1.00000
+ 6355 = 1.00000
+ 6352 = 1.00000
+ 6356 = 1.00000
+ 6361 = 1.00000
+ 6362 = 1.00000
+ 6363 = 1.00000
+ 6364 = 1.00000
+ 6369 = 1.00000
+ 6370 = 1.00000
+ 6371 = 1.00000
+ 6372 = 1.00000
+ 6401 = 1.00000
+ 6402 = 1.00000
+ 6403 = 1.00000
+ 6404 = 1.00000
+ 6430 = 1.00000
+ 6431 = 1.00000
+ 6436 = 1.00000
+ 6437 = 1.00000
+ 6440 = 1.00000
+ 6442 = 1.00000
+ 6441 = 1.00000
+ 6443 = 1.00000
+ 6446 = 1.00000
+ 6447 = 1.00000
+ 6466 = 1.00000
+ 6467 = 1.00000
+ 6468 = 1.00000
+ 6469 = 1.00000
+ 6482 = 1.00000
+ 6483 = 1.00000
+ 6484 = 1.00000
+ 6485 = 1.00000
+ 6510 = 1.00000
+ 6511 = 1.00000
+ 6512 = 1.00000
+ 6513 = 1.00000
+ 6517 = 1.00000
+ 6514 = 1.00000
+ 6518 = 1.00000
+ 6521 = 1.00000
+ 6523 = 1.00000
+ 6522 = 1.00000
+ 6524 = 1.00000
+ 6525 = 1.00000
+ 6527 = 1.00000
+ 6526 = 1.00000
+ 6528 = 1.00000
+ 6531 = 1.00000
+ 6532 = 1.00000
+ 6533 = 1.00000
+ 6534 = 1.00000
+ 6547 = 1.00000
+ 6548 = 1.00000
+ 6549 = 1.00000
+ 6550 = 1.00000
+ 6563 = 1.00000
+ 6564 = 1.00000
+ 6565 = 1.00000
+ 6566 = 1.00000
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: normal_flux_01.cc 31349 2013-10-20 19:07:06Z maier $
+//
+// Copyright (C) 2007 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+
+// check the creation of tangential flux boundary conditions for a finite
+// element that consists of only a single set of vector components
+// (i.e. it has dim components). Similar as the normal-flux test in
+// normal_flux_inhom_01.cc
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/base/function.h>
+#include <deal.II/base/quadrature_lib.h>
+#include <deal.II/lac/vector.h>
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/dofs/dof_handler.h>
+#include <deal.II/lac/constraint_matrix.h>
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_system.h>
+#include <deal.II/fe/mapping_q1.h>
+#include <deal.II/fe/fe_values.h>
+#include <deal.II/numerics/vector_tools.h>
+
+#include <fstream>
+
+
+template<int dim>
+void test (const Triangulation<dim> &tr,
+ const FiniteElement<dim> &fe)
+{
+ DoFHandler<dim> dof(tr);
+ dof.distribute_dofs(fe);
+
+ ConstantFunction<dim> constant_function(1.,dim);
+ typename FunctionMap<dim>::type function_map;
+ for (unsigned int j=0; j<GeometryInfo<dim>::faces_per_cell; ++j)
+ function_map[j] = &constant_function;
+
+ for (unsigned int i=0; i<GeometryInfo<dim>::faces_per_cell; ++i)
+ {
+ deallog << "FE=" << fe.get_name()
+ << ", case=" << i
+ << std::endl;
+
+ std::set<types::boundary_id> boundary_ids;
+ for (unsigned int j=0; j<=i; ++j)
+ boundary_ids.insert (j);
+
+ ConstraintMatrix cm;
+ VectorTools::compute_nonzero_tangential_flux_constraints
+ (dof, 0, boundary_ids, function_map, cm);
+
+ cm.print (deallog.get_file_stream ());
+ }
+ //Get the location of all boundary dofs
+ std::vector<types::global_dof_index> face_dofs;
+ const std::vector<Point<dim-1> > &
+ unit_support_points = fe.get_unit_face_support_points();
+ Quadrature<dim-1> quadrature(unit_support_points);
+ FEFaceValues<dim, dim> fe_face_values(fe, quadrature, update_q_points);
+ typename DoFHandler<dim>::active_cell_iterator
+ cell = dof.begin_active(),
+ endc = dof.end();
+ for (; cell!=endc; ++cell)
+ for (unsigned int face_no=0; face_no < GeometryInfo<dim>::faces_per_cell;
+ ++face_no)
+ if (cell->face(face_no)->at_boundary())
+ {
+ typename DoFHandler<dim>::face_iterator face = cell->face(face_no);
+ face_dofs.resize (fe.dofs_per_face);
+ face->get_dof_indices (face_dofs);
+
+ fe_face_values.reinit(cell, face_no);
+ for (unsigned int i=0; i<face_dofs.size(); ++i)
+ {
+ std::cout << face_dofs[i] << "\t"
+ << fe_face_values.quadrature_point(i) << "\t"
+ << fe.face_system_to_component_index(i).first
+ << std::endl;
+ }
+ }
+}
+
+
+template<int dim>
+void test_hyper_cube()
+{
+ Triangulation<dim> tr;
+ GridGenerator::hyper_cube(tr);
+
+ for (unsigned int i=0; i<GeometryInfo<dim>::faces_per_cell; ++i)
+ tr.begin_active()->face(i)->set_boundary_indicator (i);
+
+ tr.refine_global(2);
+
+ for (unsigned int degree=1; degree<4; ++degree)
+ {
+ FESystem<dim> fe (FE_Q<dim>(degree), dim);
+ test(tr, fe);
+ }
+}
+
+
+int main()
+{
+ std::ofstream logfile ("output");
+ deallog << std::setprecision (2);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console (0);
+ deallog.threshold_double(1.e-12);
+
+ test_hyper_cube<2>();
+ test_hyper_cube<3>();
+}
--- /dev/null
+
+DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=0
+ 1 = 1.00000
+ 5 = 1.00000
+ 13 = 1.00000
+ 31 = 1.00000
+ 37 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=1
+ 1 = 1.00000
+ 5 = 1.00000
+ 13 = 1.00000
+ 23 = 1.00000
+ 25 = 1.00000
+ 29 = 1.00000
+ 31 = 1.00000
+ 37 = 1.00000
+ 45 = 1.00000
+ 49 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=2
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 5 = 1.00000
+ 8 = 1.00000
+ 13 = 1.00000
+ 18 = 1.00000
+ 22 = 1.00000
+ 23 = 1.00000
+ 25 = 1.00000
+ 29 = 1.00000
+ 31 = 1.00000
+ 37 = 1.00000
+ 45 = 1.00000
+ 49 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(1)^2], case=3
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 5 = 1.00000
+ 8 = 1.00000
+ 13 = 1.00000
+ 18 = 1.00000
+ 22 = 1.00000
+ 23 = 1.00000
+ 25 = 1.00000
+ 29 = 1.00000
+ 31 = 1.00000
+ 36 = 1.00000
+ 37 = 1.00000
+ 38 = 1.00000
+ 40 = 1.00000
+ 45 = 1.00000
+ 46 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=0
+ 1 = 1.00000
+ 5 = 1.00000
+ 9 = 1.00000
+ 31 = 1.00000
+ 35 = 1.00000
+ 91 = 1.00000
+ 95 = 1.00000
+ 111 = 1.00000
+ 115 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=1
+ 1 = 1.00000
+ 5 = 1.00000
+ 9 = 1.00000
+ 31 = 1.00000
+ 35 = 1.00000
+ 63 = 1.00000
+ 65 = 1.00000
+ 67 = 1.00000
+ 83 = 1.00000
+ 85 = 1.00000
+ 91 = 1.00000
+ 95 = 1.00000
+ 111 = 1.00000
+ 115 = 1.00000
+ 139 = 1.00000
+ 141 = 1.00000
+ 155 = 1.00000
+ 157 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=2
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 5 = 1.00000
+ 9 = 1.00000
+ 12 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 31 = 1.00000
+ 35 = 1.00000
+ 50 = 1.00000
+ 56 = 1.00000
+ 62 = 1.00000
+ 63 = 1.00000
+ 65 = 1.00000
+ 67 = 1.00000
+ 68 = 1.00000
+ 83 = 1.00000
+ 85 = 1.00000
+ 91 = 1.00000
+ 95 = 1.00000
+ 111 = 1.00000
+ 115 = 1.00000
+ 139 = 1.00000
+ 141 = 1.00000
+ 155 = 1.00000
+ 157 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(2)^2], case=3
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 5 = 1.00000
+ 9 = 1.00000
+ 12 = 1.00000
+ 18 = 1.00000
+ 24 = 1.00000
+ 31 = 1.00000
+ 35 = 1.00000
+ 50 = 1.00000
+ 56 = 1.00000
+ 62 = 1.00000
+ 63 = 1.00000
+ 65 = 1.00000
+ 67 = 1.00000
+ 68 = 1.00000
+ 83 = 1.00000
+ 85 = 1.00000
+ 91 = 1.00000
+ 95 = 1.00000
+ 110 = 1.00000
+ 111 = 1.00000
+ 112 = 1.00000
+ 115 = 1.00000
+ 118 = 1.00000
+ 122 = 1.00000
+ 126 = 1.00000
+ 139 = 1.00000
+ 141 = 1.00000
+ 146 = 1.00000
+ 150 = 1.00000
+ 154 = 1.00000
+ 155 = 1.00000
+ 157 = 1.00000
+ 158 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=0
+ 1 = 1.00000
+ 5 = 1.00000
+ 10 = 1.00000
+ 11 = 1.00000
+ 57 = 1.00000
+ 62 = 1.00000
+ 63 = 1.00000
+ 183 = 1.00000
+ 188 = 1.00000
+ 189 = 1.00000
+ 225 = 1.00000
+ 230 = 1.00000
+ 231 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=1
+ 1 = 1.00000
+ 5 = 1.00000
+ 10 = 1.00000
+ 11 = 1.00000
+ 57 = 1.00000
+ 62 = 1.00000
+ 63 = 1.00000
+ 123 = 1.00000
+ 125 = 1.00000
+ 128 = 1.00000
+ 129 = 1.00000
+ 165 = 1.00000
+ 168 = 1.00000
+ 169 = 1.00000
+ 183 = 1.00000
+ 188 = 1.00000
+ 189 = 1.00000
+ 225 = 1.00000
+ 230 = 1.00000
+ 231 = 1.00000
+ 285 = 1.00000
+ 288 = 1.00000
+ 289 = 1.00000
+ 321 = 1.00000
+ 324 = 1.00000
+ 325 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=2
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 5 = 1.00000
+ 10 = 1.00000
+ 11 = 1.00000
+ 16 = 1.00000
+ 17 = 1.00000
+ 32 = 1.00000
+ 40 = 1.00000
+ 41 = 1.00000
+ 57 = 1.00000
+ 62 = 1.00000
+ 63 = 1.00000
+ 98 = 1.00000
+ 106 = 1.00000
+ 107 = 1.00000
+ 122 = 1.00000
+ 123 = 1.00000
+ 125 = 1.00000
+ 128 = 1.00000
+ 129 = 1.00000
+ 130 = 1.00000
+ 131 = 1.00000
+ 165 = 1.00000
+ 168 = 1.00000
+ 169 = 1.00000
+ 183 = 1.00000
+ 188 = 1.00000
+ 189 = 1.00000
+ 225 = 1.00000
+ 230 = 1.00000
+ 231 = 1.00000
+ 285 = 1.00000
+ 288 = 1.00000
+ 289 = 1.00000
+ 321 = 1.00000
+ 324 = 1.00000
+ 325 = 1.00000
+DEAL::FE=FESystem<2>[FE_Q<2>(3)^2], case=3
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 5 = 1.00000
+ 10 = 1.00000
+ 11 = 1.00000
+ 16 = 1.00000
+ 17 = 1.00000
+ 32 = 1.00000
+ 40 = 1.00000
+ 41 = 1.00000
+ 57 = 1.00000
+ 62 = 1.00000
+ 63 = 1.00000
+ 98 = 1.00000
+ 106 = 1.00000
+ 107 = 1.00000
+ 122 = 1.00000
+ 123 = 1.00000
+ 125 = 1.00000
+ 128 = 1.00000
+ 129 = 1.00000
+ 130 = 1.00000
+ 131 = 1.00000
+ 165 = 1.00000
+ 168 = 1.00000
+ 169 = 1.00000
+ 183 = 1.00000
+ 188 = 1.00000
+ 189 = 1.00000
+ 224 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 230 = 1.00000
+ 231 = 1.00000
+ 236 = 1.00000
+ 237 = 1.00000
+ 248 = 1.00000
+ 254 = 1.00000
+ 255 = 1.00000
+ 285 = 1.00000
+ 288 = 1.00000
+ 289 = 1.00000
+ 302 = 1.00000
+ 308 = 1.00000
+ 309 = 1.00000
+ 320 = 1.00000
+ 321 = 1.00000
+ 324 = 1.00000
+ 325 = 1.00000
+ 326 = 1.00000
+ 327 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=0
+ 1 = 1.00000
+ 2 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 37 = 1.00000
+ 38 = 1.00000
+ 43 = 1.00000
+ 44 = 1.00000
+ 55 = 1.00000
+ 56 = 1.00000
+ 61 = 1.00000
+ 62 = 1.00000
+ 73 = 1.00000
+ 74 = 1.00000
+ 136 = 1.00000
+ 137 = 1.00000
+ 142 = 1.00000
+ 143 = 1.00000
+ 154 = 1.00000
+ 155 = 1.00000
+ 160 = 1.00000
+ 161 = 1.00000
+ 172 = 1.00000
+ 173 = 1.00000
+ 181 = 1.00000
+ 182 = 1.00000
+ 226 = 1.00000
+ 227 = 1.00000
+ 232 = 1.00000
+ 233 = 1.00000
+ 244 = 1.00000
+ 245 = 1.00000
+ 253 = 1.00000
+ 254 = 1.00000
+ 259 = 1.00000
+ 260 = 1.00000
+ 271 = 1.00000
+ 272 = 1.00000
+ 316 = 1.00000
+ 317 = 1.00000
+ 325 = 1.00000
+ 326 = 1.00000
+ 334 = 1.00000
+ 335 = 1.00000
+ 343 = 1.00000
+ 344 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=1
+ 1 = 1.00000
+ 2 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 37 = 1.00000
+ 38 = 1.00000
+ 43 = 1.00000
+ 44 = 1.00000
+ 55 = 1.00000
+ 56 = 1.00000
+ 61 = 1.00000
+ 62 = 1.00000
+ 73 = 1.00000
+ 74 = 1.00000
+ 94 = 1.00000
+ 95 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 100 = 1.00000
+ 101 = 1.00000
+ 103 = 1.00000
+ 104 = 1.00000
+ 112 = 1.00000
+ 113 = 1.00000
+ 115 = 1.00000
+ 116 = 1.00000
+ 124 = 1.00000
+ 125 = 1.00000
+ 127 = 1.00000
+ 128 = 1.00000
+ 133 = 1.00000
+ 134 = 1.00000
+ 136 = 1.00000
+ 137 = 1.00000
+ 142 = 1.00000
+ 143 = 1.00000
+ 154 = 1.00000
+ 155 = 1.00000
+ 160 = 1.00000
+ 161 = 1.00000
+ 172 = 1.00000
+ 173 = 1.00000
+ 181 = 1.00000
+ 182 = 1.00000
+ 196 = 1.00000
+ 197 = 1.00000
+ 199 = 1.00000
+ 200 = 1.00000
+ 208 = 1.00000
+ 209 = 1.00000
+ 211 = 1.00000
+ 212 = 1.00000
+ 217 = 1.00000
+ 218 = 1.00000
+ 223 = 1.00000
+ 224 = 1.00000
+ 226 = 1.00000
+ 227 = 1.00000
+ 232 = 1.00000
+ 233 = 1.00000
+ 244 = 1.00000
+ 245 = 1.00000
+ 253 = 1.00000
+ 254 = 1.00000
+ 259 = 1.00000
+ 260 = 1.00000
+ 271 = 1.00000
+ 272 = 1.00000
+ 286 = 1.00000
+ 287 = 1.00000
+ 289 = 1.00000
+ 290 = 1.00000
+ 295 = 1.00000
+ 296 = 1.00000
+ 304 = 1.00000
+ 305 = 1.00000
+ 307 = 1.00000
+ 308 = 1.00000
+ 313 = 1.00000
+ 314 = 1.00000
+ 316 = 1.00000
+ 317 = 1.00000
+ 325 = 1.00000
+ 326 = 1.00000
+ 334 = 1.00000
+ 335 = 1.00000
+ 343 = 1.00000
+ 344 = 1.00000
+ 355 = 1.00000
+ 356 = 1.00000
+ 361 = 1.00000
+ 362 = 1.00000
+ 367 = 1.00000
+ 368 = 1.00000
+ 373 = 1.00000
+ 374 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=2
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 3 = 1.00000
+ 5 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 15 = 1.00000
+ 17 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 24 = 1.00000
+ 26 = 1.00000
+ 30 = 1.00000
+ 32 = 1.00000
+ 37 = 1.00000
+ 38 = 1.00000
+ 43 = 1.00000
+ 44 = 1.00000
+ 54 = 1.00000
+ 55 = 1.00000
+ 56 = 1.00000
+ 57 = 1.00000
+ 59 = 1.00000
+ 61 = 1.00000
+ 62 = 1.00000
+ 66 = 1.00000
+ 68 = 1.00000
+ 73 = 1.00000
+ 74 = 1.00000
+ 81 = 1.00000
+ 83 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 93 = 1.00000
+ 94 = 1.00000
+ 95 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 100 = 1.00000
+ 101 = 1.00000
+ 103 = 1.00000
+ 104 = 1.00000
+ 112 = 1.00000
+ 113 = 1.00000
+ 115 = 1.00000
+ 116 = 1.00000
+ 117 = 1.00000
+ 119 = 1.00000
+ 123 = 1.00000
+ 124 = 1.00000
+ 125 = 1.00000
+ 127 = 1.00000
+ 128 = 1.00000
+ 133 = 1.00000
+ 134 = 1.00000
+ 136 = 1.00000
+ 137 = 1.00000
+ 142 = 1.00000
+ 143 = 1.00000
+ 154 = 1.00000
+ 155 = 1.00000
+ 160 = 1.00000
+ 161 = 1.00000
+ 172 = 1.00000
+ 173 = 1.00000
+ 181 = 1.00000
+ 182 = 1.00000
+ 196 = 1.00000
+ 197 = 1.00000
+ 199 = 1.00000
+ 200 = 1.00000
+ 208 = 1.00000
+ 209 = 1.00000
+ 211 = 1.00000
+ 212 = 1.00000
+ 217 = 1.00000
+ 218 = 1.00000
+ 223 = 1.00000
+ 224 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 227 = 1.00000
+ 228 = 1.00000
+ 230 = 1.00000
+ 232 = 1.00000
+ 233 = 1.00000
+ 237 = 1.00000
+ 239 = 1.00000
+ 244 = 1.00000
+ 245 = 1.00000
+ 252 = 1.00000
+ 253 = 1.00000
+ 254 = 1.00000
+ 255 = 1.00000
+ 257 = 1.00000
+ 259 = 1.00000
+ 260 = 1.00000
+ 264 = 1.00000
+ 266 = 1.00000
+ 271 = 1.00000
+ 272 = 1.00000
+ 279 = 1.00000
+ 281 = 1.00000
+ 285 = 1.00000
+ 286 = 1.00000
+ 287 = 1.00000
+ 289 = 1.00000
+ 290 = 1.00000
+ 295 = 1.00000
+ 296 = 1.00000
+ 297 = 1.00000
+ 299 = 1.00000
+ 303 = 1.00000
+ 304 = 1.00000
+ 305 = 1.00000
+ 307 = 1.00000
+ 308 = 1.00000
+ 313 = 1.00000
+ 314 = 1.00000
+ 316 = 1.00000
+ 317 = 1.00000
+ 325 = 1.00000
+ 326 = 1.00000
+ 334 = 1.00000
+ 335 = 1.00000
+ 343 = 1.00000
+ 344 = 1.00000
+ 355 = 1.00000
+ 356 = 1.00000
+ 361 = 1.00000
+ 362 = 1.00000
+ 367 = 1.00000
+ 368 = 1.00000
+ 373 = 1.00000
+ 374 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=3
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 3 = 1.00000
+ 5 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 15 = 1.00000
+ 17 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 24 = 1.00000
+ 26 = 1.00000
+ 30 = 1.00000
+ 32 = 1.00000
+ 37 = 1.00000
+ 38 = 1.00000
+ 43 = 1.00000
+ 44 = 1.00000
+ 54 = 1.00000
+ 55 = 1.00000
+ 56 = 1.00000
+ 57 = 1.00000
+ 59 = 1.00000
+ 61 = 1.00000
+ 62 = 1.00000
+ 66 = 1.00000
+ 68 = 1.00000
+ 73 = 1.00000
+ 74 = 1.00000
+ 81 = 1.00000
+ 83 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 93 = 1.00000
+ 94 = 1.00000
+ 95 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 100 = 1.00000
+ 101 = 1.00000
+ 103 = 1.00000
+ 104 = 1.00000
+ 112 = 1.00000
+ 113 = 1.00000
+ 115 = 1.00000
+ 116 = 1.00000
+ 117 = 1.00000
+ 119 = 1.00000
+ 123 = 1.00000
+ 124 = 1.00000
+ 125 = 1.00000
+ 127 = 1.00000
+ 128 = 1.00000
+ 133 = 1.00000
+ 134 = 1.00000
+ 136 = 1.00000
+ 137 = 1.00000
+ 142 = 1.00000
+ 143 = 1.00000
+ 153 = 1.00000
+ 154 = 1.00000
+ 155 = 1.00000
+ 156 = 1.00000
+ 158 = 1.00000
+ 159 = 1.00000
+ 160 = 1.00000
+ 161 = 1.00000
+ 162 = 1.00000
+ 164 = 1.00000
+ 165 = 1.00000
+ 167 = 1.00000
+ 168 = 1.00000
+ 170 = 1.00000
+ 172 = 1.00000
+ 173 = 1.00000
+ 180 = 1.00000
+ 181 = 1.00000
+ 182 = 1.00000
+ 183 = 1.00000
+ 185 = 1.00000
+ 186 = 1.00000
+ 188 = 1.00000
+ 196 = 1.00000
+ 197 = 1.00000
+ 199 = 1.00000
+ 200 = 1.00000
+ 201 = 1.00000
+ 203 = 1.00000
+ 204 = 1.00000
+ 206 = 1.00000
+ 207 = 1.00000
+ 208 = 1.00000
+ 209 = 1.00000
+ 210 = 1.00000
+ 211 = 1.00000
+ 212 = 1.00000
+ 217 = 1.00000
+ 218 = 1.00000
+ 219 = 1.00000
+ 221 = 1.00000
+ 222 = 1.00000
+ 223 = 1.00000
+ 224 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 227 = 1.00000
+ 228 = 1.00000
+ 230 = 1.00000
+ 232 = 1.00000
+ 233 = 1.00000
+ 237 = 1.00000
+ 239 = 1.00000
+ 244 = 1.00000
+ 245 = 1.00000
+ 252 = 1.00000
+ 253 = 1.00000
+ 254 = 1.00000
+ 255 = 1.00000
+ 257 = 1.00000
+ 259 = 1.00000
+ 260 = 1.00000
+ 264 = 1.00000
+ 266 = 1.00000
+ 271 = 1.00000
+ 272 = 1.00000
+ 279 = 1.00000
+ 281 = 1.00000
+ 285 = 1.00000
+ 286 = 1.00000
+ 287 = 1.00000
+ 289 = 1.00000
+ 290 = 1.00000
+ 295 = 1.00000
+ 296 = 1.00000
+ 297 = 1.00000
+ 299 = 1.00000
+ 303 = 1.00000
+ 304 = 1.00000
+ 305 = 1.00000
+ 307 = 1.00000
+ 308 = 1.00000
+ 313 = 1.00000
+ 314 = 1.00000
+ 316 = 1.00000
+ 317 = 1.00000
+ 324 = 1.00000
+ 325 = 1.00000
+ 326 = 1.00000
+ 327 = 1.00000
+ 329 = 1.00000
+ 330 = 1.00000
+ 332 = 1.00000
+ 334 = 1.00000
+ 335 = 1.00000
+ 342 = 1.00000
+ 343 = 1.00000
+ 344 = 1.00000
+ 345 = 1.00000
+ 347 = 1.00000
+ 348 = 1.00000
+ 350 = 1.00000
+ 355 = 1.00000
+ 356 = 1.00000
+ 357 = 1.00000
+ 359 = 1.00000
+ 360 = 1.00000
+ 361 = 1.00000
+ 362 = 1.00000
+ 367 = 1.00000
+ 368 = 1.00000
+ 369 = 1.00000
+ 371 = 1.00000
+ 372 = 1.00000
+ 373 = 1.00000
+ 374 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=4
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 3 = 1.00000
+ 4 = 1.00000
+ 5 = 1.00000
+ 6 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 9 = 1.00000
+ 10 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 15 = 1.00000
+ 17 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 24 = 1.00000
+ 25 = 1.00000
+ 26 = 1.00000
+ 27 = 1.00000
+ 28 = 1.00000
+ 30 = 1.00000
+ 32 = 1.00000
+ 36 = 1.00000
+ 37 = 1.00000
+ 38 = 1.00000
+ 39 = 1.00000
+ 40 = 1.00000
+ 43 = 1.00000
+ 44 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 54 = 1.00000
+ 55 = 1.00000
+ 56 = 1.00000
+ 57 = 1.00000
+ 59 = 1.00000
+ 61 = 1.00000
+ 62 = 1.00000
+ 66 = 1.00000
+ 68 = 1.00000
+ 73 = 1.00000
+ 74 = 1.00000
+ 81 = 1.00000
+ 82 = 1.00000
+ 83 = 1.00000
+ 84 = 1.00000
+ 85 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 93 = 1.00000
+ 94 = 1.00000
+ 95 = 1.00000
+ 96 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 100 = 1.00000
+ 101 = 1.00000
+ 103 = 1.00000
+ 104 = 1.00000
+ 105 = 1.00000
+ 106 = 1.00000
+ 111 = 1.00000
+ 112 = 1.00000
+ 113 = 1.00000
+ 115 = 1.00000
+ 116 = 1.00000
+ 117 = 1.00000
+ 119 = 1.00000
+ 123 = 1.00000
+ 124 = 1.00000
+ 125 = 1.00000
+ 127 = 1.00000
+ 128 = 1.00000
+ 133 = 1.00000
+ 134 = 1.00000
+ 135 = 1.00000
+ 136 = 1.00000
+ 137 = 1.00000
+ 138 = 1.00000
+ 139 = 1.00000
+ 142 = 1.00000
+ 143 = 1.00000
+ 147 = 1.00000
+ 148 = 1.00000
+ 153 = 1.00000
+ 154 = 1.00000
+ 155 = 1.00000
+ 156 = 1.00000
+ 157 = 1.00000
+ 158 = 1.00000
+ 159 = 1.00000
+ 160 = 1.00000
+ 161 = 1.00000
+ 162 = 1.00000
+ 164 = 1.00000
+ 165 = 1.00000
+ 166 = 1.00000
+ 167 = 1.00000
+ 168 = 1.00000
+ 170 = 1.00000
+ 172 = 1.00000
+ 173 = 1.00000
+ 180 = 1.00000
+ 181 = 1.00000
+ 182 = 1.00000
+ 183 = 1.00000
+ 185 = 1.00000
+ 186 = 1.00000
+ 188 = 1.00000
+ 189 = 1.00000
+ 190 = 1.00000
+ 195 = 1.00000
+ 196 = 1.00000
+ 197 = 1.00000
+ 199 = 1.00000
+ 200 = 1.00000
+ 201 = 1.00000
+ 202 = 1.00000
+ 203 = 1.00000
+ 204 = 1.00000
+ 206 = 1.00000
+ 207 = 1.00000
+ 208 = 1.00000
+ 209 = 1.00000
+ 210 = 1.00000
+ 211 = 1.00000
+ 212 = 1.00000
+ 217 = 1.00000
+ 218 = 1.00000
+ 219 = 1.00000
+ 221 = 1.00000
+ 222 = 1.00000
+ 223 = 1.00000
+ 224 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 227 = 1.00000
+ 228 = 1.00000
+ 230 = 1.00000
+ 232 = 1.00000
+ 233 = 1.00000
+ 237 = 1.00000
+ 239 = 1.00000
+ 244 = 1.00000
+ 245 = 1.00000
+ 252 = 1.00000
+ 253 = 1.00000
+ 254 = 1.00000
+ 255 = 1.00000
+ 257 = 1.00000
+ 259 = 1.00000
+ 260 = 1.00000
+ 264 = 1.00000
+ 266 = 1.00000
+ 271 = 1.00000
+ 272 = 1.00000
+ 279 = 1.00000
+ 281 = 1.00000
+ 285 = 1.00000
+ 286 = 1.00000
+ 287 = 1.00000
+ 289 = 1.00000
+ 290 = 1.00000
+ 295 = 1.00000
+ 296 = 1.00000
+ 297 = 1.00000
+ 299 = 1.00000
+ 303 = 1.00000
+ 304 = 1.00000
+ 305 = 1.00000
+ 307 = 1.00000
+ 308 = 1.00000
+ 313 = 1.00000
+ 314 = 1.00000
+ 316 = 1.00000
+ 317 = 1.00000
+ 324 = 1.00000
+ 325 = 1.00000
+ 326 = 1.00000
+ 327 = 1.00000
+ 329 = 1.00000
+ 330 = 1.00000
+ 332 = 1.00000
+ 334 = 1.00000
+ 335 = 1.00000
+ 342 = 1.00000
+ 343 = 1.00000
+ 344 = 1.00000
+ 345 = 1.00000
+ 347 = 1.00000
+ 348 = 1.00000
+ 350 = 1.00000
+ 355 = 1.00000
+ 356 = 1.00000
+ 357 = 1.00000
+ 359 = 1.00000
+ 360 = 1.00000
+ 361 = 1.00000
+ 362 = 1.00000
+ 367 = 1.00000
+ 368 = 1.00000
+ 369 = 1.00000
+ 371 = 1.00000
+ 372 = 1.00000
+ 373 = 1.00000
+ 374 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(1)^3], case=5
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 3 = 1.00000
+ 4 = 1.00000
+ 5 = 1.00000
+ 6 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 9 = 1.00000
+ 10 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 15 = 1.00000
+ 17 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 24 = 1.00000
+ 25 = 1.00000
+ 26 = 1.00000
+ 27 = 1.00000
+ 28 = 1.00000
+ 30 = 1.00000
+ 32 = 1.00000
+ 36 = 1.00000
+ 37 = 1.00000
+ 38 = 1.00000
+ 39 = 1.00000
+ 40 = 1.00000
+ 43 = 1.00000
+ 44 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 54 = 1.00000
+ 55 = 1.00000
+ 56 = 1.00000
+ 57 = 1.00000
+ 59 = 1.00000
+ 61 = 1.00000
+ 62 = 1.00000
+ 66 = 1.00000
+ 68 = 1.00000
+ 73 = 1.00000
+ 74 = 1.00000
+ 81 = 1.00000
+ 82 = 1.00000
+ 83 = 1.00000
+ 84 = 1.00000
+ 85 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 93 = 1.00000
+ 94 = 1.00000
+ 95 = 1.00000
+ 96 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 100 = 1.00000
+ 101 = 1.00000
+ 103 = 1.00000
+ 104 = 1.00000
+ 105 = 1.00000
+ 106 = 1.00000
+ 111 = 1.00000
+ 112 = 1.00000
+ 113 = 1.00000
+ 115 = 1.00000
+ 116 = 1.00000
+ 117 = 1.00000
+ 119 = 1.00000
+ 123 = 1.00000
+ 124 = 1.00000
+ 125 = 1.00000
+ 127 = 1.00000
+ 128 = 1.00000
+ 133 = 1.00000
+ 134 = 1.00000
+ 135 = 1.00000
+ 136 = 1.00000
+ 137 = 1.00000
+ 138 = 1.00000
+ 139 = 1.00000
+ 142 = 1.00000
+ 143 = 1.00000
+ 147 = 1.00000
+ 148 = 1.00000
+ 153 = 1.00000
+ 154 = 1.00000
+ 155 = 1.00000
+ 156 = 1.00000
+ 157 = 1.00000
+ 158 = 1.00000
+ 159 = 1.00000
+ 160 = 1.00000
+ 161 = 1.00000
+ 162 = 1.00000
+ 164 = 1.00000
+ 165 = 1.00000
+ 166 = 1.00000
+ 167 = 1.00000
+ 168 = 1.00000
+ 170 = 1.00000
+ 172 = 1.00000
+ 173 = 1.00000
+ 180 = 1.00000
+ 181 = 1.00000
+ 182 = 1.00000
+ 183 = 1.00000
+ 185 = 1.00000
+ 186 = 1.00000
+ 188 = 1.00000
+ 189 = 1.00000
+ 190 = 1.00000
+ 195 = 1.00000
+ 196 = 1.00000
+ 197 = 1.00000
+ 199 = 1.00000
+ 200 = 1.00000
+ 201 = 1.00000
+ 202 = 1.00000
+ 203 = 1.00000
+ 204 = 1.00000
+ 206 = 1.00000
+ 207 = 1.00000
+ 208 = 1.00000
+ 209 = 1.00000
+ 210 = 1.00000
+ 211 = 1.00000
+ 212 = 1.00000
+ 217 = 1.00000
+ 218 = 1.00000
+ 219 = 1.00000
+ 221 = 1.00000
+ 222 = 1.00000
+ 223 = 1.00000
+ 224 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 227 = 1.00000
+ 228 = 1.00000
+ 230 = 1.00000
+ 232 = 1.00000
+ 233 = 1.00000
+ 237 = 1.00000
+ 239 = 1.00000
+ 244 = 1.00000
+ 245 = 1.00000
+ 252 = 1.00000
+ 253 = 1.00000
+ 254 = 1.00000
+ 255 = 1.00000
+ 256 = 1.00000
+ 257 = 1.00000
+ 258 = 1.00000
+ 259 = 1.00000
+ 260 = 1.00000
+ 261 = 1.00000
+ 262 = 1.00000
+ 264 = 1.00000
+ 265 = 1.00000
+ 266 = 1.00000
+ 267 = 1.00000
+ 268 = 1.00000
+ 270 = 1.00000
+ 271 = 1.00000
+ 272 = 1.00000
+ 273 = 1.00000
+ 274 = 1.00000
+ 276 = 1.00000
+ 277 = 1.00000
+ 279 = 1.00000
+ 281 = 1.00000
+ 285 = 1.00000
+ 286 = 1.00000
+ 287 = 1.00000
+ 289 = 1.00000
+ 290 = 1.00000
+ 295 = 1.00000
+ 296 = 1.00000
+ 297 = 1.00000
+ 298 = 1.00000
+ 299 = 1.00000
+ 300 = 1.00000
+ 301 = 1.00000
+ 303 = 1.00000
+ 304 = 1.00000
+ 305 = 1.00000
+ 306 = 1.00000
+ 307 = 1.00000
+ 308 = 1.00000
+ 309 = 1.00000
+ 310 = 1.00000
+ 312 = 1.00000
+ 313 = 1.00000
+ 314 = 1.00000
+ 316 = 1.00000
+ 317 = 1.00000
+ 324 = 1.00000
+ 325 = 1.00000
+ 326 = 1.00000
+ 327 = 1.00000
+ 329 = 1.00000
+ 330 = 1.00000
+ 332 = 1.00000
+ 333 = 1.00000
+ 334 = 1.00000
+ 335 = 1.00000
+ 336 = 1.00000
+ 337 = 1.00000
+ 339 = 1.00000
+ 340 = 1.00000
+ 342 = 1.00000
+ 343 = 1.00000
+ 344 = 1.00000
+ 345 = 1.00000
+ 346 = 1.00000
+ 347 = 1.00000
+ 348 = 1.00000
+ 349 = 1.00000
+ 350 = 1.00000
+ 355 = 1.00000
+ 356 = 1.00000
+ 357 = 1.00000
+ 359 = 1.00000
+ 360 = 1.00000
+ 361 = 1.00000
+ 362 = 1.00000
+ 363 = 1.00000
+ 364 = 1.00000
+ 366 = 1.00000
+ 367 = 1.00000
+ 368 = 1.00000
+ 369 = 1.00000
+ 370 = 1.00000
+ 371 = 1.00000
+ 372 = 1.00000
+ 373 = 1.00000
+ 374 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=0
+ 1 = 1.00000
+ 2 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 25 = 1.00000
+ 26 = 1.00000
+ 37 = 1.00000
+ 38 = 1.00000
+ 49 = 1.00000
+ 50 = 1.00000
+ 55 = 1.00000
+ 56 = 1.00000
+ 61 = 1.00000
+ 62 = 1.00000
+ 136 = 1.00000
+ 137 = 1.00000
+ 142 = 1.00000
+ 143 = 1.00000
+ 148 = 1.00000
+ 149 = 1.00000
+ 157 = 1.00000
+ 158 = 1.00000
+ 166 = 1.00000
+ 167 = 1.00000
+ 172 = 1.00000
+ 173 = 1.00000
+ 226 = 1.00000
+ 227 = 1.00000
+ 232 = 1.00000
+ 233 = 1.00000
+ 238 = 1.00000
+ 239 = 1.00000
+ 250 = 1.00000
+ 251 = 1.00000
+ 256 = 1.00000
+ 257 = 1.00000
+ 262 = 1.00000
+ 263 = 1.00000
+ 316 = 1.00000
+ 317 = 1.00000
+ 322 = 1.00000
+ 323 = 1.00000
+ 331 = 1.00000
+ 332 = 1.00000
+ 337 = 1.00000
+ 338 = 1.00000
+ 676 = 1.00000
+ 677 = 1.00000
+ 682 = 1.00000
+ 683 = 1.00000
+ 688 = 1.00000
+ 689 = 1.00000
+ 697 = 1.00000
+ 698 = 1.00000
+ 706 = 1.00000
+ 707 = 1.00000
+ 712 = 1.00000
+ 713 = 1.00000
+ 766 = 1.00000
+ 767 = 1.00000
+ 772 = 1.00000
+ 773 = 1.00000
+ 778 = 1.00000
+ 779 = 1.00000
+ 787 = 1.00000
+ 788 = 1.00000
+ 796 = 1.00000
+ 797 = 1.00000
+ 802 = 1.00000
+ 803 = 1.00000
+ 856 = 1.00000
+ 857 = 1.00000
+ 862 = 1.00000
+ 863 = 1.00000
+ 871 = 1.00000
+ 872 = 1.00000
+ 877 = 1.00000
+ 878 = 1.00000
+ 916 = 1.00000
+ 917 = 1.00000
+ 922 = 1.00000
+ 923 = 1.00000
+ 931 = 1.00000
+ 932 = 1.00000
+ 937 = 1.00000
+ 938 = 1.00000
+ 1216 = 1.00000
+ 1217 = 1.00000
+ 1222 = 1.00000
+ 1223 = 1.00000
+ 1228 = 1.00000
+ 1229 = 1.00000
+ 1240 = 1.00000
+ 1241 = 1.00000
+ 1246 = 1.00000
+ 1247 = 1.00000
+ 1252 = 1.00000
+ 1253 = 1.00000
+ 1306 = 1.00000
+ 1307 = 1.00000
+ 1312 = 1.00000
+ 1313 = 1.00000
+ 1321 = 1.00000
+ 1322 = 1.00000
+ 1327 = 1.00000
+ 1328 = 1.00000
+ 1366 = 1.00000
+ 1367 = 1.00000
+ 1372 = 1.00000
+ 1373 = 1.00000
+ 1378 = 1.00000
+ 1379 = 1.00000
+ 1390 = 1.00000
+ 1391 = 1.00000
+ 1396 = 1.00000
+ 1397 = 1.00000
+ 1402 = 1.00000
+ 1403 = 1.00000
+ 1456 = 1.00000
+ 1457 = 1.00000
+ 1462 = 1.00000
+ 1463 = 1.00000
+ 1471 = 1.00000
+ 1472 = 1.00000
+ 1477 = 1.00000
+ 1478 = 1.00000
+ 1756 = 1.00000
+ 1757 = 1.00000
+ 1762 = 1.00000
+ 1763 = 1.00000
+ 1771 = 1.00000
+ 1772 = 1.00000
+ 1777 = 1.00000
+ 1778 = 1.00000
+ 1816 = 1.00000
+ 1817 = 1.00000
+ 1822 = 1.00000
+ 1823 = 1.00000
+ 1831 = 1.00000
+ 1832 = 1.00000
+ 1837 = 1.00000
+ 1838 = 1.00000
+ 1876 = 1.00000
+ 1877 = 1.00000
+ 1882 = 1.00000
+ 1883 = 1.00000
+ 1891 = 1.00000
+ 1892 = 1.00000
+ 1897 = 1.00000
+ 1898 = 1.00000
+ 1936 = 1.00000
+ 1937 = 1.00000
+ 1942 = 1.00000
+ 1943 = 1.00000
+ 1951 = 1.00000
+ 1952 = 1.00000
+ 1957 = 1.00000
+ 1958 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=1
+ 1 = 1.00000
+ 2 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 25 = 1.00000
+ 26 = 1.00000
+ 37 = 1.00000
+ 38 = 1.00000
+ 49 = 1.00000
+ 50 = 1.00000
+ 55 = 1.00000
+ 56 = 1.00000
+ 61 = 1.00000
+ 62 = 1.00000
+ 136 = 1.00000
+ 137 = 1.00000
+ 142 = 1.00000
+ 143 = 1.00000
+ 148 = 1.00000
+ 149 = 1.00000
+ 157 = 1.00000
+ 158 = 1.00000
+ 166 = 1.00000
+ 167 = 1.00000
+ 172 = 1.00000
+ 173 = 1.00000
+ 226 = 1.00000
+ 227 = 1.00000
+ 232 = 1.00000
+ 233 = 1.00000
+ 238 = 1.00000
+ 239 = 1.00000
+ 250 = 1.00000
+ 251 = 1.00000
+ 256 = 1.00000
+ 257 = 1.00000
+ 262 = 1.00000
+ 263 = 1.00000
+ 316 = 1.00000
+ 317 = 1.00000
+ 322 = 1.00000
+ 323 = 1.00000
+ 331 = 1.00000
+ 332 = 1.00000
+ 337 = 1.00000
+ 338 = 1.00000
+ 430 = 1.00000
+ 431 = 1.00000
+ 433 = 1.00000
+ 434 = 1.00000
+ 436 = 1.00000
+ 437 = 1.00000
+ 439 = 1.00000
+ 440 = 1.00000
+ 442 = 1.00000
+ 443 = 1.00000
+ 451 = 1.00000
+ 452 = 1.00000
+ 460 = 1.00000
+ 461 = 1.00000
+ 463 = 1.00000
+ 464 = 1.00000
+ 466 = 1.00000
+ 467 = 1.00000
+ 520 = 1.00000
+ 521 = 1.00000
+ 523 = 1.00000
+ 524 = 1.00000
+ 526 = 1.00000
+ 527 = 1.00000
+ 532 = 1.00000
+ 533 = 1.00000
+ 538 = 1.00000
+ 539 = 1.00000
+ 541 = 1.00000
+ 542 = 1.00000
+ 592 = 1.00000
+ 593 = 1.00000
+ 595 = 1.00000
+ 596 = 1.00000
+ 598 = 1.00000
+ 599 = 1.00000
+ 607 = 1.00000
+ 608 = 1.00000
+ 610 = 1.00000
+ 611 = 1.00000
+ 613 = 1.00000
+ 614 = 1.00000
+ 652 = 1.00000
+ 653 = 1.00000
+ 655 = 1.00000
+ 656 = 1.00000
+ 661 = 1.00000
+ 662 = 1.00000
+ 664 = 1.00000
+ 665 = 1.00000
+ 676 = 1.00000
+ 677 = 1.00000
+ 682 = 1.00000
+ 683 = 1.00000
+ 688 = 1.00000
+ 689 = 1.00000
+ 697 = 1.00000
+ 698 = 1.00000
+ 706 = 1.00000
+ 707 = 1.00000
+ 712 = 1.00000
+ 713 = 1.00000
+ 766 = 1.00000
+ 767 = 1.00000
+ 772 = 1.00000
+ 773 = 1.00000
+ 778 = 1.00000
+ 779 = 1.00000
+ 787 = 1.00000
+ 788 = 1.00000
+ 796 = 1.00000
+ 797 = 1.00000
+ 802 = 1.00000
+ 803 = 1.00000
+ 856 = 1.00000
+ 857 = 1.00000
+ 862 = 1.00000
+ 863 = 1.00000
+ 871 = 1.00000
+ 872 = 1.00000
+ 877 = 1.00000
+ 878 = 1.00000
+ 916 = 1.00000
+ 917 = 1.00000
+ 922 = 1.00000
+ 923 = 1.00000
+ 931 = 1.00000
+ 932 = 1.00000
+ 937 = 1.00000
+ 938 = 1.00000
+ 1012 = 1.00000
+ 1013 = 1.00000
+ 1015 = 1.00000
+ 1016 = 1.00000
+ 1018 = 1.00000
+ 1019 = 1.00000
+ 1024 = 1.00000
+ 1025 = 1.00000
+ 1030 = 1.00000
+ 1031 = 1.00000
+ 1033 = 1.00000
+ 1034 = 1.00000
+ 1084 = 1.00000
+ 1085 = 1.00000
+ 1087 = 1.00000
+ 1088 = 1.00000
+ 1090 = 1.00000
+ 1091 = 1.00000
+ 1096 = 1.00000
+ 1097 = 1.00000
+ 1102 = 1.00000
+ 1103 = 1.00000
+ 1105 = 1.00000
+ 1106 = 1.00000
+ 1144 = 1.00000
+ 1145 = 1.00000
+ 1147 = 1.00000
+ 1148 = 1.00000
+ 1153 = 1.00000
+ 1154 = 1.00000
+ 1156 = 1.00000
+ 1157 = 1.00000
+ 1192 = 1.00000
+ 1193 = 1.00000
+ 1195 = 1.00000
+ 1196 = 1.00000
+ 1201 = 1.00000
+ 1202 = 1.00000
+ 1204 = 1.00000
+ 1205 = 1.00000
+ 1216 = 1.00000
+ 1217 = 1.00000
+ 1222 = 1.00000
+ 1223 = 1.00000
+ 1228 = 1.00000
+ 1229 = 1.00000
+ 1240 = 1.00000
+ 1241 = 1.00000
+ 1246 = 1.00000
+ 1247 = 1.00000
+ 1252 = 1.00000
+ 1253 = 1.00000
+ 1306 = 1.00000
+ 1307 = 1.00000
+ 1312 = 1.00000
+ 1313 = 1.00000
+ 1321 = 1.00000
+ 1322 = 1.00000
+ 1327 = 1.00000
+ 1328 = 1.00000
+ 1366 = 1.00000
+ 1367 = 1.00000
+ 1372 = 1.00000
+ 1373 = 1.00000
+ 1378 = 1.00000
+ 1379 = 1.00000
+ 1390 = 1.00000
+ 1391 = 1.00000
+ 1396 = 1.00000
+ 1397 = 1.00000
+ 1402 = 1.00000
+ 1403 = 1.00000
+ 1456 = 1.00000
+ 1457 = 1.00000
+ 1462 = 1.00000
+ 1463 = 1.00000
+ 1471 = 1.00000
+ 1472 = 1.00000
+ 1477 = 1.00000
+ 1478 = 1.00000
+ 1552 = 1.00000
+ 1553 = 1.00000
+ 1555 = 1.00000
+ 1556 = 1.00000
+ 1558 = 1.00000
+ 1559 = 1.00000
+ 1567 = 1.00000
+ 1568 = 1.00000
+ 1570 = 1.00000
+ 1571 = 1.00000
+ 1573 = 1.00000
+ 1574 = 1.00000
+ 1612 = 1.00000
+ 1613 = 1.00000
+ 1615 = 1.00000
+ 1616 = 1.00000
+ 1621 = 1.00000
+ 1622 = 1.00000
+ 1624 = 1.00000
+ 1625 = 1.00000
+ 1672 = 1.00000
+ 1673 = 1.00000
+ 1675 = 1.00000
+ 1676 = 1.00000
+ 1678 = 1.00000
+ 1679 = 1.00000
+ 1687 = 1.00000
+ 1688 = 1.00000
+ 1690 = 1.00000
+ 1691 = 1.00000
+ 1693 = 1.00000
+ 1694 = 1.00000
+ 1732 = 1.00000
+ 1733 = 1.00000
+ 1735 = 1.00000
+ 1736 = 1.00000
+ 1741 = 1.00000
+ 1742 = 1.00000
+ 1744 = 1.00000
+ 1745 = 1.00000
+ 1756 = 1.00000
+ 1757 = 1.00000
+ 1762 = 1.00000
+ 1763 = 1.00000
+ 1771 = 1.00000
+ 1772 = 1.00000
+ 1777 = 1.00000
+ 1778 = 1.00000
+ 1816 = 1.00000
+ 1817 = 1.00000
+ 1822 = 1.00000
+ 1823 = 1.00000
+ 1831 = 1.00000
+ 1832 = 1.00000
+ 1837 = 1.00000
+ 1838 = 1.00000
+ 1876 = 1.00000
+ 1877 = 1.00000
+ 1882 = 1.00000
+ 1883 = 1.00000
+ 1891 = 1.00000
+ 1892 = 1.00000
+ 1897 = 1.00000
+ 1898 = 1.00000
+ 1936 = 1.00000
+ 1937 = 1.00000
+ 1942 = 1.00000
+ 1943 = 1.00000
+ 1951 = 1.00000
+ 1952 = 1.00000
+ 1957 = 1.00000
+ 1958 = 1.00000
+ 2020 = 1.00000
+ 2021 = 1.00000
+ 2023 = 1.00000
+ 2024 = 1.00000
+ 2029 = 1.00000
+ 2030 = 1.00000
+ 2032 = 1.00000
+ 2033 = 1.00000
+ 2068 = 1.00000
+ 2069 = 1.00000
+ 2071 = 1.00000
+ 2072 = 1.00000
+ 2077 = 1.00000
+ 2078 = 1.00000
+ 2080 = 1.00000
+ 2081 = 1.00000
+ 2116 = 1.00000
+ 2117 = 1.00000
+ 2119 = 1.00000
+ 2120 = 1.00000
+ 2125 = 1.00000
+ 2126 = 1.00000
+ 2128 = 1.00000
+ 2129 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2167 = 1.00000
+ 2168 = 1.00000
+ 2173 = 1.00000
+ 2174 = 1.00000
+ 2176 = 1.00000
+ 2177 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=2
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 3 = 1.00000
+ 5 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 15 = 1.00000
+ 17 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 25 = 1.00000
+ 26 = 1.00000
+ 30 = 1.00000
+ 32 = 1.00000
+ 37 = 1.00000
+ 38 = 1.00000
+ 42 = 1.00000
+ 44 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 50 = 1.00000
+ 51 = 1.00000
+ 53 = 1.00000
+ 55 = 1.00000
+ 56 = 1.00000
+ 61 = 1.00000
+ 62 = 1.00000
+ 66 = 1.00000
+ 68 = 1.00000
+ 81 = 1.00000
+ 83 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 96 = 1.00000
+ 98 = 1.00000
+ 105 = 1.00000
+ 107 = 1.00000
+ 111 = 1.00000
+ 113 = 1.00000
+ 120 = 1.00000
+ 122 = 1.00000
+ 136 = 1.00000
+ 137 = 1.00000
+ 142 = 1.00000
+ 143 = 1.00000
+ 148 = 1.00000
+ 149 = 1.00000
+ 157 = 1.00000
+ 158 = 1.00000
+ 166 = 1.00000
+ 167 = 1.00000
+ 172 = 1.00000
+ 173 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 227 = 1.00000
+ 228 = 1.00000
+ 230 = 1.00000
+ 232 = 1.00000
+ 233 = 1.00000
+ 238 = 1.00000
+ 239 = 1.00000
+ 243 = 1.00000
+ 245 = 1.00000
+ 249 = 1.00000
+ 250 = 1.00000
+ 251 = 1.00000
+ 252 = 1.00000
+ 254 = 1.00000
+ 256 = 1.00000
+ 257 = 1.00000
+ 262 = 1.00000
+ 263 = 1.00000
+ 267 = 1.00000
+ 269 = 1.00000
+ 279 = 1.00000
+ 281 = 1.00000
+ 288 = 1.00000
+ 290 = 1.00000
+ 294 = 1.00000
+ 296 = 1.00000
+ 303 = 1.00000
+ 305 = 1.00000
+ 316 = 1.00000
+ 317 = 1.00000
+ 322 = 1.00000
+ 323 = 1.00000
+ 331 = 1.00000
+ 332 = 1.00000
+ 337 = 1.00000
+ 338 = 1.00000
+ 375 = 1.00000
+ 377 = 1.00000
+ 381 = 1.00000
+ 383 = 1.00000
+ 390 = 1.00000
+ 392 = 1.00000
+ 399 = 1.00000
+ 401 = 1.00000
+ 405 = 1.00000
+ 407 = 1.00000
+ 414 = 1.00000
+ 416 = 1.00000
+ 429 = 1.00000
+ 430 = 1.00000
+ 431 = 1.00000
+ 433 = 1.00000
+ 434 = 1.00000
+ 435 = 1.00000
+ 436 = 1.00000
+ 437 = 1.00000
+ 439 = 1.00000
+ 440 = 1.00000
+ 442 = 1.00000
+ 443 = 1.00000
+ 444 = 1.00000
+ 446 = 1.00000
+ 451 = 1.00000
+ 452 = 1.00000
+ 453 = 1.00000
+ 455 = 1.00000
+ 459 = 1.00000
+ 460 = 1.00000
+ 461 = 1.00000
+ 463 = 1.00000
+ 464 = 1.00000
+ 466 = 1.00000
+ 467 = 1.00000
+ 468 = 1.00000
+ 470 = 1.00000
+ 520 = 1.00000
+ 521 = 1.00000
+ 523 = 1.00000
+ 524 = 1.00000
+ 526 = 1.00000
+ 527 = 1.00000
+ 532 = 1.00000
+ 533 = 1.00000
+ 538 = 1.00000
+ 539 = 1.00000
+ 541 = 1.00000
+ 542 = 1.00000
+ 555 = 1.00000
+ 557 = 1.00000
+ 564 = 1.00000
+ 566 = 1.00000
+ 570 = 1.00000
+ 572 = 1.00000
+ 579 = 1.00000
+ 581 = 1.00000
+ 591 = 1.00000
+ 592 = 1.00000
+ 593 = 1.00000
+ 595 = 1.00000
+ 596 = 1.00000
+ 598 = 1.00000
+ 599 = 1.00000
+ 600 = 1.00000
+ 602 = 1.00000
+ 606 = 1.00000
+ 607 = 1.00000
+ 608 = 1.00000
+ 610 = 1.00000
+ 611 = 1.00000
+ 613 = 1.00000
+ 614 = 1.00000
+ 615 = 1.00000
+ 617 = 1.00000
+ 652 = 1.00000
+ 653 = 1.00000
+ 655 = 1.00000
+ 656 = 1.00000
+ 661 = 1.00000
+ 662 = 1.00000
+ 664 = 1.00000
+ 665 = 1.00000
+ 676 = 1.00000
+ 677 = 1.00000
+ 682 = 1.00000
+ 683 = 1.00000
+ 688 = 1.00000
+ 689 = 1.00000
+ 697 = 1.00000
+ 698 = 1.00000
+ 706 = 1.00000
+ 707 = 1.00000
+ 712 = 1.00000
+ 713 = 1.00000
+ 766 = 1.00000
+ 767 = 1.00000
+ 772 = 1.00000
+ 773 = 1.00000
+ 778 = 1.00000
+ 779 = 1.00000
+ 787 = 1.00000
+ 788 = 1.00000
+ 796 = 1.00000
+ 797 = 1.00000
+ 802 = 1.00000
+ 803 = 1.00000
+ 856 = 1.00000
+ 857 = 1.00000
+ 862 = 1.00000
+ 863 = 1.00000
+ 871 = 1.00000
+ 872 = 1.00000
+ 877 = 1.00000
+ 878 = 1.00000
+ 916 = 1.00000
+ 917 = 1.00000
+ 922 = 1.00000
+ 923 = 1.00000
+ 931 = 1.00000
+ 932 = 1.00000
+ 937 = 1.00000
+ 938 = 1.00000
+ 1012 = 1.00000
+ 1013 = 1.00000
+ 1015 = 1.00000
+ 1016 = 1.00000
+ 1018 = 1.00000
+ 1019 = 1.00000
+ 1024 = 1.00000
+ 1025 = 1.00000
+ 1030 = 1.00000
+ 1031 = 1.00000
+ 1033 = 1.00000
+ 1034 = 1.00000
+ 1084 = 1.00000
+ 1085 = 1.00000
+ 1087 = 1.00000
+ 1088 = 1.00000
+ 1090 = 1.00000
+ 1091 = 1.00000
+ 1096 = 1.00000
+ 1097 = 1.00000
+ 1102 = 1.00000
+ 1103 = 1.00000
+ 1105 = 1.00000
+ 1106 = 1.00000
+ 1144 = 1.00000
+ 1145 = 1.00000
+ 1147 = 1.00000
+ 1148 = 1.00000
+ 1153 = 1.00000
+ 1154 = 1.00000
+ 1156 = 1.00000
+ 1157 = 1.00000
+ 1192 = 1.00000
+ 1193 = 1.00000
+ 1195 = 1.00000
+ 1196 = 1.00000
+ 1201 = 1.00000
+ 1202 = 1.00000
+ 1204 = 1.00000
+ 1205 = 1.00000
+ 1215 = 1.00000
+ 1216 = 1.00000
+ 1217 = 1.00000
+ 1218 = 1.00000
+ 1220 = 1.00000
+ 1222 = 1.00000
+ 1223 = 1.00000
+ 1228 = 1.00000
+ 1229 = 1.00000
+ 1233 = 1.00000
+ 1235 = 1.00000
+ 1239 = 1.00000
+ 1240 = 1.00000
+ 1241 = 1.00000
+ 1242 = 1.00000
+ 1244 = 1.00000
+ 1246 = 1.00000
+ 1247 = 1.00000
+ 1252 = 1.00000
+ 1253 = 1.00000
+ 1257 = 1.00000
+ 1259 = 1.00000
+ 1269 = 1.00000
+ 1271 = 1.00000
+ 1278 = 1.00000
+ 1280 = 1.00000
+ 1284 = 1.00000
+ 1286 = 1.00000
+ 1293 = 1.00000
+ 1295 = 1.00000
+ 1306 = 1.00000
+ 1307 = 1.00000
+ 1312 = 1.00000
+ 1313 = 1.00000
+ 1321 = 1.00000
+ 1322 = 1.00000
+ 1327 = 1.00000
+ 1328 = 1.00000
+ 1365 = 1.00000
+ 1366 = 1.00000
+ 1367 = 1.00000
+ 1368 = 1.00000
+ 1370 = 1.00000
+ 1372 = 1.00000
+ 1373 = 1.00000
+ 1378 = 1.00000
+ 1379 = 1.00000
+ 1383 = 1.00000
+ 1385 = 1.00000
+ 1389 = 1.00000
+ 1390 = 1.00000
+ 1391 = 1.00000
+ 1392 = 1.00000
+ 1394 = 1.00000
+ 1396 = 1.00000
+ 1397 = 1.00000
+ 1402 = 1.00000
+ 1403 = 1.00000
+ 1407 = 1.00000
+ 1409 = 1.00000
+ 1419 = 1.00000
+ 1421 = 1.00000
+ 1428 = 1.00000
+ 1430 = 1.00000
+ 1434 = 1.00000
+ 1436 = 1.00000
+ 1443 = 1.00000
+ 1445 = 1.00000
+ 1456 = 1.00000
+ 1457 = 1.00000
+ 1462 = 1.00000
+ 1463 = 1.00000
+ 1471 = 1.00000
+ 1472 = 1.00000
+ 1477 = 1.00000
+ 1478 = 1.00000
+ 1515 = 1.00000
+ 1517 = 1.00000
+ 1524 = 1.00000
+ 1526 = 1.00000
+ 1530 = 1.00000
+ 1532 = 1.00000
+ 1539 = 1.00000
+ 1541 = 1.00000
+ 1551 = 1.00000
+ 1552 = 1.00000
+ 1553 = 1.00000
+ 1555 = 1.00000
+ 1556 = 1.00000
+ 1558 = 1.00000
+ 1559 = 1.00000
+ 1560 = 1.00000
+ 1562 = 1.00000
+ 1566 = 1.00000
+ 1567 = 1.00000
+ 1568 = 1.00000
+ 1570 = 1.00000
+ 1571 = 1.00000
+ 1573 = 1.00000
+ 1574 = 1.00000
+ 1575 = 1.00000
+ 1577 = 1.00000
+ 1612 = 1.00000
+ 1613 = 1.00000
+ 1615 = 1.00000
+ 1616 = 1.00000
+ 1621 = 1.00000
+ 1622 = 1.00000
+ 1624 = 1.00000
+ 1625 = 1.00000
+ 1635 = 1.00000
+ 1637 = 1.00000
+ 1644 = 1.00000
+ 1646 = 1.00000
+ 1650 = 1.00000
+ 1652 = 1.00000
+ 1659 = 1.00000
+ 1661 = 1.00000
+ 1671 = 1.00000
+ 1672 = 1.00000
+ 1673 = 1.00000
+ 1675 = 1.00000
+ 1676 = 1.00000
+ 1678 = 1.00000
+ 1679 = 1.00000
+ 1680 = 1.00000
+ 1682 = 1.00000
+ 1686 = 1.00000
+ 1687 = 1.00000
+ 1688 = 1.00000
+ 1690 = 1.00000
+ 1691 = 1.00000
+ 1693 = 1.00000
+ 1694 = 1.00000
+ 1695 = 1.00000
+ 1697 = 1.00000
+ 1732 = 1.00000
+ 1733 = 1.00000
+ 1735 = 1.00000
+ 1736 = 1.00000
+ 1741 = 1.00000
+ 1742 = 1.00000
+ 1744 = 1.00000
+ 1745 = 1.00000
+ 1756 = 1.00000
+ 1757 = 1.00000
+ 1762 = 1.00000
+ 1763 = 1.00000
+ 1771 = 1.00000
+ 1772 = 1.00000
+ 1777 = 1.00000
+ 1778 = 1.00000
+ 1816 = 1.00000
+ 1817 = 1.00000
+ 1822 = 1.00000
+ 1823 = 1.00000
+ 1831 = 1.00000
+ 1832 = 1.00000
+ 1837 = 1.00000
+ 1838 = 1.00000
+ 1876 = 1.00000
+ 1877 = 1.00000
+ 1882 = 1.00000
+ 1883 = 1.00000
+ 1891 = 1.00000
+ 1892 = 1.00000
+ 1897 = 1.00000
+ 1898 = 1.00000
+ 1936 = 1.00000
+ 1937 = 1.00000
+ 1942 = 1.00000
+ 1943 = 1.00000
+ 1951 = 1.00000
+ 1952 = 1.00000
+ 1957 = 1.00000
+ 1958 = 1.00000
+ 2020 = 1.00000
+ 2021 = 1.00000
+ 2023 = 1.00000
+ 2024 = 1.00000
+ 2029 = 1.00000
+ 2030 = 1.00000
+ 2032 = 1.00000
+ 2033 = 1.00000
+ 2068 = 1.00000
+ 2069 = 1.00000
+ 2071 = 1.00000
+ 2072 = 1.00000
+ 2077 = 1.00000
+ 2078 = 1.00000
+ 2080 = 1.00000
+ 2081 = 1.00000
+ 2116 = 1.00000
+ 2117 = 1.00000
+ 2119 = 1.00000
+ 2120 = 1.00000
+ 2125 = 1.00000
+ 2126 = 1.00000
+ 2128 = 1.00000
+ 2129 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2167 = 1.00000
+ 2168 = 1.00000
+ 2173 = 1.00000
+ 2174 = 1.00000
+ 2176 = 1.00000
+ 2177 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=3
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 3 = 1.00000
+ 5 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 15 = 1.00000
+ 17 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 25 = 1.00000
+ 26 = 1.00000
+ 30 = 1.00000
+ 32 = 1.00000
+ 37 = 1.00000
+ 38 = 1.00000
+ 42 = 1.00000
+ 44 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 50 = 1.00000
+ 51 = 1.00000
+ 53 = 1.00000
+ 55 = 1.00000
+ 56 = 1.00000
+ 61 = 1.00000
+ 62 = 1.00000
+ 66 = 1.00000
+ 68 = 1.00000
+ 81 = 1.00000
+ 83 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 96 = 1.00000
+ 98 = 1.00000
+ 105 = 1.00000
+ 107 = 1.00000
+ 111 = 1.00000
+ 113 = 1.00000
+ 120 = 1.00000
+ 122 = 1.00000
+ 136 = 1.00000
+ 137 = 1.00000
+ 142 = 1.00000
+ 143 = 1.00000
+ 148 = 1.00000
+ 149 = 1.00000
+ 157 = 1.00000
+ 158 = 1.00000
+ 166 = 1.00000
+ 167 = 1.00000
+ 172 = 1.00000
+ 173 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 227 = 1.00000
+ 228 = 1.00000
+ 230 = 1.00000
+ 232 = 1.00000
+ 233 = 1.00000
+ 238 = 1.00000
+ 239 = 1.00000
+ 243 = 1.00000
+ 245 = 1.00000
+ 249 = 1.00000
+ 250 = 1.00000
+ 251 = 1.00000
+ 252 = 1.00000
+ 254 = 1.00000
+ 256 = 1.00000
+ 257 = 1.00000
+ 262 = 1.00000
+ 263 = 1.00000
+ 267 = 1.00000
+ 269 = 1.00000
+ 279 = 1.00000
+ 281 = 1.00000
+ 288 = 1.00000
+ 290 = 1.00000
+ 294 = 1.00000
+ 296 = 1.00000
+ 303 = 1.00000
+ 305 = 1.00000
+ 316 = 1.00000
+ 317 = 1.00000
+ 322 = 1.00000
+ 323 = 1.00000
+ 331 = 1.00000
+ 332 = 1.00000
+ 337 = 1.00000
+ 338 = 1.00000
+ 375 = 1.00000
+ 377 = 1.00000
+ 381 = 1.00000
+ 383 = 1.00000
+ 390 = 1.00000
+ 392 = 1.00000
+ 399 = 1.00000
+ 401 = 1.00000
+ 405 = 1.00000
+ 407 = 1.00000
+ 414 = 1.00000
+ 416 = 1.00000
+ 429 = 1.00000
+ 430 = 1.00000
+ 431 = 1.00000
+ 433 = 1.00000
+ 434 = 1.00000
+ 435 = 1.00000
+ 436 = 1.00000
+ 437 = 1.00000
+ 439 = 1.00000
+ 440 = 1.00000
+ 442 = 1.00000
+ 443 = 1.00000
+ 444 = 1.00000
+ 446 = 1.00000
+ 451 = 1.00000
+ 452 = 1.00000
+ 453 = 1.00000
+ 455 = 1.00000
+ 459 = 1.00000
+ 460 = 1.00000
+ 461 = 1.00000
+ 463 = 1.00000
+ 464 = 1.00000
+ 466 = 1.00000
+ 467 = 1.00000
+ 468 = 1.00000
+ 470 = 1.00000
+ 520 = 1.00000
+ 521 = 1.00000
+ 523 = 1.00000
+ 524 = 1.00000
+ 526 = 1.00000
+ 527 = 1.00000
+ 532 = 1.00000
+ 533 = 1.00000
+ 538 = 1.00000
+ 539 = 1.00000
+ 541 = 1.00000
+ 542 = 1.00000
+ 555 = 1.00000
+ 557 = 1.00000
+ 564 = 1.00000
+ 566 = 1.00000
+ 570 = 1.00000
+ 572 = 1.00000
+ 579 = 1.00000
+ 581 = 1.00000
+ 591 = 1.00000
+ 592 = 1.00000
+ 593 = 1.00000
+ 595 = 1.00000
+ 596 = 1.00000
+ 598 = 1.00000
+ 599 = 1.00000
+ 600 = 1.00000
+ 602 = 1.00000
+ 606 = 1.00000
+ 607 = 1.00000
+ 608 = 1.00000
+ 610 = 1.00000
+ 611 = 1.00000
+ 613 = 1.00000
+ 614 = 1.00000
+ 615 = 1.00000
+ 617 = 1.00000
+ 652 = 1.00000
+ 653 = 1.00000
+ 655 = 1.00000
+ 656 = 1.00000
+ 661 = 1.00000
+ 662 = 1.00000
+ 664 = 1.00000
+ 665 = 1.00000
+ 676 = 1.00000
+ 677 = 1.00000
+ 682 = 1.00000
+ 683 = 1.00000
+ 688 = 1.00000
+ 689 = 1.00000
+ 697 = 1.00000
+ 698 = 1.00000
+ 706 = 1.00000
+ 707 = 1.00000
+ 712 = 1.00000
+ 713 = 1.00000
+ 765 = 1.00000
+ 766 = 1.00000
+ 767 = 1.00000
+ 768 = 1.00000
+ 770 = 1.00000
+ 771 = 1.00000
+ 772 = 1.00000
+ 773 = 1.00000
+ 774 = 1.00000
+ 776 = 1.00000
+ 778 = 1.00000
+ 779 = 1.00000
+ 783 = 1.00000
+ 785 = 1.00000
+ 787 = 1.00000
+ 788 = 1.00000
+ 792 = 1.00000
+ 794 = 1.00000
+ 795 = 1.00000
+ 796 = 1.00000
+ 797 = 1.00000
+ 798 = 1.00000
+ 800 = 1.00000
+ 802 = 1.00000
+ 803 = 1.00000
+ 807 = 1.00000
+ 809 = 1.00000
+ 819 = 1.00000
+ 821 = 1.00000
+ 822 = 1.00000
+ 824 = 1.00000
+ 828 = 1.00000
+ 830 = 1.00000
+ 834 = 1.00000
+ 836 = 1.00000
+ 837 = 1.00000
+ 839 = 1.00000
+ 843 = 1.00000
+ 845 = 1.00000
+ 856 = 1.00000
+ 857 = 1.00000
+ 862 = 1.00000
+ 863 = 1.00000
+ 871 = 1.00000
+ 872 = 1.00000
+ 877 = 1.00000
+ 878 = 1.00000
+ 915 = 1.00000
+ 916 = 1.00000
+ 917 = 1.00000
+ 918 = 1.00000
+ 920 = 1.00000
+ 922 = 1.00000
+ 923 = 1.00000
+ 927 = 1.00000
+ 929 = 1.00000
+ 930 = 1.00000
+ 931 = 1.00000
+ 932 = 1.00000
+ 933 = 1.00000
+ 935 = 1.00000
+ 937 = 1.00000
+ 938 = 1.00000
+ 942 = 1.00000
+ 944 = 1.00000
+ 951 = 1.00000
+ 953 = 1.00000
+ 957 = 1.00000
+ 959 = 1.00000
+ 960 = 1.00000
+ 962 = 1.00000
+ 966 = 1.00000
+ 968 = 1.00000
+ 1012 = 1.00000
+ 1013 = 1.00000
+ 1015 = 1.00000
+ 1016 = 1.00000
+ 1018 = 1.00000
+ 1019 = 1.00000
+ 1024 = 1.00000
+ 1025 = 1.00000
+ 1030 = 1.00000
+ 1031 = 1.00000
+ 1033 = 1.00000
+ 1034 = 1.00000
+ 1047 = 1.00000
+ 1049 = 1.00000
+ 1050 = 1.00000
+ 1052 = 1.00000
+ 1056 = 1.00000
+ 1058 = 1.00000
+ 1062 = 1.00000
+ 1064 = 1.00000
+ 1065 = 1.00000
+ 1067 = 1.00000
+ 1071 = 1.00000
+ 1073 = 1.00000
+ 1083 = 1.00000
+ 1084 = 1.00000
+ 1085 = 1.00000
+ 1086 = 1.00000
+ 1087 = 1.00000
+ 1088 = 1.00000
+ 1090 = 1.00000
+ 1091 = 1.00000
+ 1092 = 1.00000
+ 1094 = 1.00000
+ 1096 = 1.00000
+ 1097 = 1.00000
+ 1098 = 1.00000
+ 1100 = 1.00000
+ 1101 = 1.00000
+ 1102 = 1.00000
+ 1103 = 1.00000
+ 1105 = 1.00000
+ 1106 = 1.00000
+ 1107 = 1.00000
+ 1109 = 1.00000
+ 1144 = 1.00000
+ 1145 = 1.00000
+ 1147 = 1.00000
+ 1148 = 1.00000
+ 1153 = 1.00000
+ 1154 = 1.00000
+ 1156 = 1.00000
+ 1157 = 1.00000
+ 1167 = 1.00000
+ 1169 = 1.00000
+ 1173 = 1.00000
+ 1175 = 1.00000
+ 1176 = 1.00000
+ 1178 = 1.00000
+ 1182 = 1.00000
+ 1184 = 1.00000
+ 1191 = 1.00000
+ 1192 = 1.00000
+ 1193 = 1.00000
+ 1195 = 1.00000
+ 1196 = 1.00000
+ 1197 = 1.00000
+ 1199 = 1.00000
+ 1200 = 1.00000
+ 1201 = 1.00000
+ 1202 = 1.00000
+ 1204 = 1.00000
+ 1205 = 1.00000
+ 1206 = 1.00000
+ 1208 = 1.00000
+ 1215 = 1.00000
+ 1216 = 1.00000
+ 1217 = 1.00000
+ 1218 = 1.00000
+ 1220 = 1.00000
+ 1222 = 1.00000
+ 1223 = 1.00000
+ 1228 = 1.00000
+ 1229 = 1.00000
+ 1233 = 1.00000
+ 1235 = 1.00000
+ 1239 = 1.00000
+ 1240 = 1.00000
+ 1241 = 1.00000
+ 1242 = 1.00000
+ 1244 = 1.00000
+ 1246 = 1.00000
+ 1247 = 1.00000
+ 1252 = 1.00000
+ 1253 = 1.00000
+ 1257 = 1.00000
+ 1259 = 1.00000
+ 1269 = 1.00000
+ 1271 = 1.00000
+ 1278 = 1.00000
+ 1280 = 1.00000
+ 1284 = 1.00000
+ 1286 = 1.00000
+ 1293 = 1.00000
+ 1295 = 1.00000
+ 1306 = 1.00000
+ 1307 = 1.00000
+ 1312 = 1.00000
+ 1313 = 1.00000
+ 1321 = 1.00000
+ 1322 = 1.00000
+ 1327 = 1.00000
+ 1328 = 1.00000
+ 1365 = 1.00000
+ 1366 = 1.00000
+ 1367 = 1.00000
+ 1368 = 1.00000
+ 1370 = 1.00000
+ 1372 = 1.00000
+ 1373 = 1.00000
+ 1378 = 1.00000
+ 1379 = 1.00000
+ 1383 = 1.00000
+ 1385 = 1.00000
+ 1389 = 1.00000
+ 1390 = 1.00000
+ 1391 = 1.00000
+ 1392 = 1.00000
+ 1394 = 1.00000
+ 1396 = 1.00000
+ 1397 = 1.00000
+ 1402 = 1.00000
+ 1403 = 1.00000
+ 1407 = 1.00000
+ 1409 = 1.00000
+ 1419 = 1.00000
+ 1421 = 1.00000
+ 1428 = 1.00000
+ 1430 = 1.00000
+ 1434 = 1.00000
+ 1436 = 1.00000
+ 1443 = 1.00000
+ 1445 = 1.00000
+ 1456 = 1.00000
+ 1457 = 1.00000
+ 1462 = 1.00000
+ 1463 = 1.00000
+ 1471 = 1.00000
+ 1472 = 1.00000
+ 1477 = 1.00000
+ 1478 = 1.00000
+ 1515 = 1.00000
+ 1517 = 1.00000
+ 1524 = 1.00000
+ 1526 = 1.00000
+ 1530 = 1.00000
+ 1532 = 1.00000
+ 1539 = 1.00000
+ 1541 = 1.00000
+ 1551 = 1.00000
+ 1552 = 1.00000
+ 1553 = 1.00000
+ 1555 = 1.00000
+ 1556 = 1.00000
+ 1558 = 1.00000
+ 1559 = 1.00000
+ 1560 = 1.00000
+ 1562 = 1.00000
+ 1566 = 1.00000
+ 1567 = 1.00000
+ 1568 = 1.00000
+ 1570 = 1.00000
+ 1571 = 1.00000
+ 1573 = 1.00000
+ 1574 = 1.00000
+ 1575 = 1.00000
+ 1577 = 1.00000
+ 1612 = 1.00000
+ 1613 = 1.00000
+ 1615 = 1.00000
+ 1616 = 1.00000
+ 1621 = 1.00000
+ 1622 = 1.00000
+ 1624 = 1.00000
+ 1625 = 1.00000
+ 1635 = 1.00000
+ 1637 = 1.00000
+ 1644 = 1.00000
+ 1646 = 1.00000
+ 1650 = 1.00000
+ 1652 = 1.00000
+ 1659 = 1.00000
+ 1661 = 1.00000
+ 1671 = 1.00000
+ 1672 = 1.00000
+ 1673 = 1.00000
+ 1675 = 1.00000
+ 1676 = 1.00000
+ 1678 = 1.00000
+ 1679 = 1.00000
+ 1680 = 1.00000
+ 1682 = 1.00000
+ 1686 = 1.00000
+ 1687 = 1.00000
+ 1688 = 1.00000
+ 1690 = 1.00000
+ 1691 = 1.00000
+ 1693 = 1.00000
+ 1694 = 1.00000
+ 1695 = 1.00000
+ 1697 = 1.00000
+ 1732 = 1.00000
+ 1733 = 1.00000
+ 1735 = 1.00000
+ 1736 = 1.00000
+ 1741 = 1.00000
+ 1742 = 1.00000
+ 1744 = 1.00000
+ 1745 = 1.00000
+ 1756 = 1.00000
+ 1757 = 1.00000
+ 1762 = 1.00000
+ 1763 = 1.00000
+ 1771 = 1.00000
+ 1772 = 1.00000
+ 1777 = 1.00000
+ 1778 = 1.00000
+ 1815 = 1.00000
+ 1816 = 1.00000
+ 1817 = 1.00000
+ 1818 = 1.00000
+ 1820 = 1.00000
+ 1822 = 1.00000
+ 1823 = 1.00000
+ 1827 = 1.00000
+ 1829 = 1.00000
+ 1830 = 1.00000
+ 1831 = 1.00000
+ 1832 = 1.00000
+ 1833 = 1.00000
+ 1835 = 1.00000
+ 1837 = 1.00000
+ 1838 = 1.00000
+ 1842 = 1.00000
+ 1844 = 1.00000
+ 1851 = 1.00000
+ 1853 = 1.00000
+ 1857 = 1.00000
+ 1859 = 1.00000
+ 1860 = 1.00000
+ 1862 = 1.00000
+ 1866 = 1.00000
+ 1868 = 1.00000
+ 1876 = 1.00000
+ 1877 = 1.00000
+ 1882 = 1.00000
+ 1883 = 1.00000
+ 1891 = 1.00000
+ 1892 = 1.00000
+ 1897 = 1.00000
+ 1898 = 1.00000
+ 1935 = 1.00000
+ 1936 = 1.00000
+ 1937 = 1.00000
+ 1938 = 1.00000
+ 1940 = 1.00000
+ 1942 = 1.00000
+ 1943 = 1.00000
+ 1947 = 1.00000
+ 1949 = 1.00000
+ 1950 = 1.00000
+ 1951 = 1.00000
+ 1952 = 1.00000
+ 1953 = 1.00000
+ 1955 = 1.00000
+ 1957 = 1.00000
+ 1958 = 1.00000
+ 1962 = 1.00000
+ 1964 = 1.00000
+ 1971 = 1.00000
+ 1973 = 1.00000
+ 1977 = 1.00000
+ 1979 = 1.00000
+ 1980 = 1.00000
+ 1982 = 1.00000
+ 1986 = 1.00000
+ 1988 = 1.00000
+ 2020 = 1.00000
+ 2021 = 1.00000
+ 2023 = 1.00000
+ 2024 = 1.00000
+ 2029 = 1.00000
+ 2030 = 1.00000
+ 2032 = 1.00000
+ 2033 = 1.00000
+ 2043 = 1.00000
+ 2045 = 1.00000
+ 2049 = 1.00000
+ 2051 = 1.00000
+ 2052 = 1.00000
+ 2054 = 1.00000
+ 2058 = 1.00000
+ 2060 = 1.00000
+ 2067 = 1.00000
+ 2068 = 1.00000
+ 2069 = 1.00000
+ 2071 = 1.00000
+ 2072 = 1.00000
+ 2073 = 1.00000
+ 2075 = 1.00000
+ 2076 = 1.00000
+ 2077 = 1.00000
+ 2078 = 1.00000
+ 2080 = 1.00000
+ 2081 = 1.00000
+ 2082 = 1.00000
+ 2084 = 1.00000
+ 2116 = 1.00000
+ 2117 = 1.00000
+ 2119 = 1.00000
+ 2120 = 1.00000
+ 2125 = 1.00000
+ 2126 = 1.00000
+ 2128 = 1.00000
+ 2129 = 1.00000
+ 2139 = 1.00000
+ 2141 = 1.00000
+ 2145 = 1.00000
+ 2147 = 1.00000
+ 2148 = 1.00000
+ 2150 = 1.00000
+ 2154 = 1.00000
+ 2156 = 1.00000
+ 2163 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2167 = 1.00000
+ 2168 = 1.00000
+ 2169 = 1.00000
+ 2171 = 1.00000
+ 2172 = 1.00000
+ 2173 = 1.00000
+ 2174 = 1.00000
+ 2176 = 1.00000
+ 2177 = 1.00000
+ 2178 = 1.00000
+ 2180 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=4
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 3 = 1.00000
+ 4 = 1.00000
+ 5 = 1.00000
+ 6 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 9 = 1.00000
+ 10 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 15 = 1.00000
+ 17 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 24 = 1.00000
+ 25 = 1.00000
+ 26 = 1.00000
+ 27 = 1.00000
+ 28 = 1.00000
+ 30 = 1.00000
+ 31 = 1.00000
+ 32 = 1.00000
+ 33 = 1.00000
+ 34 = 1.00000
+ 37 = 1.00000
+ 38 = 1.00000
+ 42 = 1.00000
+ 44 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 50 = 1.00000
+ 51 = 1.00000
+ 53 = 1.00000
+ 55 = 1.00000
+ 56 = 1.00000
+ 61 = 1.00000
+ 62 = 1.00000
+ 66 = 1.00000
+ 68 = 1.00000
+ 72 = 1.00000
+ 73 = 1.00000
+ 81 = 1.00000
+ 82 = 1.00000
+ 83 = 1.00000
+ 84 = 1.00000
+ 85 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 93 = 1.00000
+ 94 = 1.00000
+ 96 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 100 = 1.00000
+ 105 = 1.00000
+ 107 = 1.00000
+ 111 = 1.00000
+ 113 = 1.00000
+ 120 = 1.00000
+ 122 = 1.00000
+ 126 = 1.00000
+ 127 = 1.00000
+ 135 = 1.00000
+ 136 = 1.00000
+ 137 = 1.00000
+ 138 = 1.00000
+ 139 = 1.00000
+ 142 = 1.00000
+ 143 = 1.00000
+ 147 = 1.00000
+ 148 = 1.00000
+ 149 = 1.00000
+ 150 = 1.00000
+ 151 = 1.00000
+ 153 = 1.00000
+ 154 = 1.00000
+ 157 = 1.00000
+ 158 = 1.00000
+ 166 = 1.00000
+ 167 = 1.00000
+ 172 = 1.00000
+ 173 = 1.00000
+ 180 = 1.00000
+ 181 = 1.00000
+ 189 = 1.00000
+ 190 = 1.00000
+ 195 = 1.00000
+ 196 = 1.00000
+ 198 = 1.00000
+ 199 = 1.00000
+ 216 = 1.00000
+ 217 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 227 = 1.00000
+ 228 = 1.00000
+ 230 = 1.00000
+ 232 = 1.00000
+ 233 = 1.00000
+ 238 = 1.00000
+ 239 = 1.00000
+ 243 = 1.00000
+ 245 = 1.00000
+ 249 = 1.00000
+ 250 = 1.00000
+ 251 = 1.00000
+ 252 = 1.00000
+ 254 = 1.00000
+ 256 = 1.00000
+ 257 = 1.00000
+ 262 = 1.00000
+ 263 = 1.00000
+ 267 = 1.00000
+ 269 = 1.00000
+ 279 = 1.00000
+ 281 = 1.00000
+ 288 = 1.00000
+ 290 = 1.00000
+ 294 = 1.00000
+ 296 = 1.00000
+ 303 = 1.00000
+ 305 = 1.00000
+ 316 = 1.00000
+ 317 = 1.00000
+ 322 = 1.00000
+ 323 = 1.00000
+ 331 = 1.00000
+ 332 = 1.00000
+ 337 = 1.00000
+ 338 = 1.00000
+ 375 = 1.00000
+ 376 = 1.00000
+ 377 = 1.00000
+ 378 = 1.00000
+ 379 = 1.00000
+ 381 = 1.00000
+ 383 = 1.00000
+ 387 = 1.00000
+ 388 = 1.00000
+ 390 = 1.00000
+ 391 = 1.00000
+ 392 = 1.00000
+ 393 = 1.00000
+ 394 = 1.00000
+ 399 = 1.00000
+ 401 = 1.00000
+ 405 = 1.00000
+ 407 = 1.00000
+ 414 = 1.00000
+ 416 = 1.00000
+ 420 = 1.00000
+ 421 = 1.00000
+ 429 = 1.00000
+ 430 = 1.00000
+ 431 = 1.00000
+ 432 = 1.00000
+ 433 = 1.00000
+ 434 = 1.00000
+ 435 = 1.00000
+ 436 = 1.00000
+ 437 = 1.00000
+ 439 = 1.00000
+ 440 = 1.00000
+ 441 = 1.00000
+ 442 = 1.00000
+ 443 = 1.00000
+ 444 = 1.00000
+ 445 = 1.00000
+ 446 = 1.00000
+ 447 = 1.00000
+ 448 = 1.00000
+ 451 = 1.00000
+ 452 = 1.00000
+ 453 = 1.00000
+ 455 = 1.00000
+ 459 = 1.00000
+ 460 = 1.00000
+ 461 = 1.00000
+ 463 = 1.00000
+ 464 = 1.00000
+ 466 = 1.00000
+ 467 = 1.00000
+ 468 = 1.00000
+ 470 = 1.00000
+ 474 = 1.00000
+ 475 = 1.00000
+ 483 = 1.00000
+ 484 = 1.00000
+ 489 = 1.00000
+ 490 = 1.00000
+ 492 = 1.00000
+ 493 = 1.00000
+ 510 = 1.00000
+ 511 = 1.00000
+ 519 = 1.00000
+ 520 = 1.00000
+ 521 = 1.00000
+ 523 = 1.00000
+ 524 = 1.00000
+ 525 = 1.00000
+ 526 = 1.00000
+ 527 = 1.00000
+ 528 = 1.00000
+ 529 = 1.00000
+ 532 = 1.00000
+ 533 = 1.00000
+ 538 = 1.00000
+ 539 = 1.00000
+ 541 = 1.00000
+ 542 = 1.00000
+ 546 = 1.00000
+ 547 = 1.00000
+ 555 = 1.00000
+ 557 = 1.00000
+ 564 = 1.00000
+ 566 = 1.00000
+ 570 = 1.00000
+ 572 = 1.00000
+ 579 = 1.00000
+ 581 = 1.00000
+ 591 = 1.00000
+ 592 = 1.00000
+ 593 = 1.00000
+ 595 = 1.00000
+ 596 = 1.00000
+ 598 = 1.00000
+ 599 = 1.00000
+ 600 = 1.00000
+ 602 = 1.00000
+ 606 = 1.00000
+ 607 = 1.00000
+ 608 = 1.00000
+ 610 = 1.00000
+ 611 = 1.00000
+ 613 = 1.00000
+ 614 = 1.00000
+ 615 = 1.00000
+ 617 = 1.00000
+ 652 = 1.00000
+ 653 = 1.00000
+ 655 = 1.00000
+ 656 = 1.00000
+ 661 = 1.00000
+ 662 = 1.00000
+ 664 = 1.00000
+ 665 = 1.00000
+ 675 = 1.00000
+ 676 = 1.00000
+ 677 = 1.00000
+ 678 = 1.00000
+ 679 = 1.00000
+ 682 = 1.00000
+ 683 = 1.00000
+ 687 = 1.00000
+ 688 = 1.00000
+ 689 = 1.00000
+ 690 = 1.00000
+ 691 = 1.00000
+ 693 = 1.00000
+ 694 = 1.00000
+ 697 = 1.00000
+ 698 = 1.00000
+ 706 = 1.00000
+ 707 = 1.00000
+ 712 = 1.00000
+ 713 = 1.00000
+ 720 = 1.00000
+ 721 = 1.00000
+ 729 = 1.00000
+ 730 = 1.00000
+ 735 = 1.00000
+ 736 = 1.00000
+ 738 = 1.00000
+ 739 = 1.00000
+ 756 = 1.00000
+ 757 = 1.00000
+ 765 = 1.00000
+ 766 = 1.00000
+ 767 = 1.00000
+ 768 = 1.00000
+ 769 = 1.00000
+ 770 = 1.00000
+ 771 = 1.00000
+ 772 = 1.00000
+ 773 = 1.00000
+ 774 = 1.00000
+ 776 = 1.00000
+ 777 = 1.00000
+ 778 = 1.00000
+ 779 = 1.00000
+ 780 = 1.00000
+ 781 = 1.00000
+ 783 = 1.00000
+ 784 = 1.00000
+ 785 = 1.00000
+ 787 = 1.00000
+ 788 = 1.00000
+ 792 = 1.00000
+ 794 = 1.00000
+ 795 = 1.00000
+ 796 = 1.00000
+ 797 = 1.00000
+ 798 = 1.00000
+ 800 = 1.00000
+ 802 = 1.00000
+ 803 = 1.00000
+ 807 = 1.00000
+ 809 = 1.00000
+ 810 = 1.00000
+ 811 = 1.00000
+ 819 = 1.00000
+ 820 = 1.00000
+ 821 = 1.00000
+ 822 = 1.00000
+ 824 = 1.00000
+ 825 = 1.00000
+ 826 = 1.00000
+ 828 = 1.00000
+ 829 = 1.00000
+ 830 = 1.00000
+ 834 = 1.00000
+ 836 = 1.00000
+ 837 = 1.00000
+ 839 = 1.00000
+ 843 = 1.00000
+ 845 = 1.00000
+ 846 = 1.00000
+ 847 = 1.00000
+ 856 = 1.00000
+ 857 = 1.00000
+ 862 = 1.00000
+ 863 = 1.00000
+ 871 = 1.00000
+ 872 = 1.00000
+ 877 = 1.00000
+ 878 = 1.00000
+ 915 = 1.00000
+ 916 = 1.00000
+ 917 = 1.00000
+ 918 = 1.00000
+ 920 = 1.00000
+ 922 = 1.00000
+ 923 = 1.00000
+ 927 = 1.00000
+ 929 = 1.00000
+ 930 = 1.00000
+ 931 = 1.00000
+ 932 = 1.00000
+ 933 = 1.00000
+ 935 = 1.00000
+ 937 = 1.00000
+ 938 = 1.00000
+ 942 = 1.00000
+ 944 = 1.00000
+ 951 = 1.00000
+ 953 = 1.00000
+ 957 = 1.00000
+ 959 = 1.00000
+ 960 = 1.00000
+ 962 = 1.00000
+ 966 = 1.00000
+ 968 = 1.00000
+ 975 = 1.00000
+ 976 = 1.00000
+ 981 = 1.00000
+ 982 = 1.00000
+ 984 = 1.00000
+ 985 = 1.00000
+ 1002 = 1.00000
+ 1003 = 1.00000
+ 1011 = 1.00000
+ 1012 = 1.00000
+ 1013 = 1.00000
+ 1015 = 1.00000
+ 1016 = 1.00000
+ 1017 = 1.00000
+ 1018 = 1.00000
+ 1019 = 1.00000
+ 1020 = 1.00000
+ 1021 = 1.00000
+ 1024 = 1.00000
+ 1025 = 1.00000
+ 1030 = 1.00000
+ 1031 = 1.00000
+ 1033 = 1.00000
+ 1034 = 1.00000
+ 1038 = 1.00000
+ 1039 = 1.00000
+ 1047 = 1.00000
+ 1048 = 1.00000
+ 1049 = 1.00000
+ 1050 = 1.00000
+ 1052 = 1.00000
+ 1053 = 1.00000
+ 1054 = 1.00000
+ 1056 = 1.00000
+ 1057 = 1.00000
+ 1058 = 1.00000
+ 1062 = 1.00000
+ 1064 = 1.00000
+ 1065 = 1.00000
+ 1067 = 1.00000
+ 1071 = 1.00000
+ 1073 = 1.00000
+ 1074 = 1.00000
+ 1075 = 1.00000
+ 1083 = 1.00000
+ 1084 = 1.00000
+ 1085 = 1.00000
+ 1086 = 1.00000
+ 1087 = 1.00000
+ 1088 = 1.00000
+ 1089 = 1.00000
+ 1090 = 1.00000
+ 1091 = 1.00000
+ 1092 = 1.00000
+ 1093 = 1.00000
+ 1094 = 1.00000
+ 1096 = 1.00000
+ 1097 = 1.00000
+ 1098 = 1.00000
+ 1100 = 1.00000
+ 1101 = 1.00000
+ 1102 = 1.00000
+ 1103 = 1.00000
+ 1105 = 1.00000
+ 1106 = 1.00000
+ 1107 = 1.00000
+ 1109 = 1.00000
+ 1110 = 1.00000
+ 1111 = 1.00000
+ 1144 = 1.00000
+ 1145 = 1.00000
+ 1147 = 1.00000
+ 1148 = 1.00000
+ 1153 = 1.00000
+ 1154 = 1.00000
+ 1156 = 1.00000
+ 1157 = 1.00000
+ 1167 = 1.00000
+ 1169 = 1.00000
+ 1173 = 1.00000
+ 1175 = 1.00000
+ 1176 = 1.00000
+ 1178 = 1.00000
+ 1182 = 1.00000
+ 1184 = 1.00000
+ 1191 = 1.00000
+ 1192 = 1.00000
+ 1193 = 1.00000
+ 1195 = 1.00000
+ 1196 = 1.00000
+ 1197 = 1.00000
+ 1199 = 1.00000
+ 1200 = 1.00000
+ 1201 = 1.00000
+ 1202 = 1.00000
+ 1204 = 1.00000
+ 1205 = 1.00000
+ 1206 = 1.00000
+ 1208 = 1.00000
+ 1215 = 1.00000
+ 1216 = 1.00000
+ 1217 = 1.00000
+ 1218 = 1.00000
+ 1220 = 1.00000
+ 1222 = 1.00000
+ 1223 = 1.00000
+ 1228 = 1.00000
+ 1229 = 1.00000
+ 1233 = 1.00000
+ 1235 = 1.00000
+ 1239 = 1.00000
+ 1240 = 1.00000
+ 1241 = 1.00000
+ 1242 = 1.00000
+ 1244 = 1.00000
+ 1246 = 1.00000
+ 1247 = 1.00000
+ 1252 = 1.00000
+ 1253 = 1.00000
+ 1257 = 1.00000
+ 1259 = 1.00000
+ 1269 = 1.00000
+ 1271 = 1.00000
+ 1278 = 1.00000
+ 1280 = 1.00000
+ 1284 = 1.00000
+ 1286 = 1.00000
+ 1293 = 1.00000
+ 1295 = 1.00000
+ 1306 = 1.00000
+ 1307 = 1.00000
+ 1312 = 1.00000
+ 1313 = 1.00000
+ 1321 = 1.00000
+ 1322 = 1.00000
+ 1327 = 1.00000
+ 1328 = 1.00000
+ 1365 = 1.00000
+ 1366 = 1.00000
+ 1367 = 1.00000
+ 1368 = 1.00000
+ 1370 = 1.00000
+ 1372 = 1.00000
+ 1373 = 1.00000
+ 1378 = 1.00000
+ 1379 = 1.00000
+ 1383 = 1.00000
+ 1385 = 1.00000
+ 1389 = 1.00000
+ 1390 = 1.00000
+ 1391 = 1.00000
+ 1392 = 1.00000
+ 1394 = 1.00000
+ 1396 = 1.00000
+ 1397 = 1.00000
+ 1402 = 1.00000
+ 1403 = 1.00000
+ 1407 = 1.00000
+ 1409 = 1.00000
+ 1419 = 1.00000
+ 1421 = 1.00000
+ 1428 = 1.00000
+ 1430 = 1.00000
+ 1434 = 1.00000
+ 1436 = 1.00000
+ 1443 = 1.00000
+ 1445 = 1.00000
+ 1456 = 1.00000
+ 1457 = 1.00000
+ 1462 = 1.00000
+ 1463 = 1.00000
+ 1471 = 1.00000
+ 1472 = 1.00000
+ 1477 = 1.00000
+ 1478 = 1.00000
+ 1515 = 1.00000
+ 1517 = 1.00000
+ 1524 = 1.00000
+ 1526 = 1.00000
+ 1530 = 1.00000
+ 1532 = 1.00000
+ 1539 = 1.00000
+ 1541 = 1.00000
+ 1551 = 1.00000
+ 1552 = 1.00000
+ 1553 = 1.00000
+ 1555 = 1.00000
+ 1556 = 1.00000
+ 1558 = 1.00000
+ 1559 = 1.00000
+ 1560 = 1.00000
+ 1562 = 1.00000
+ 1566 = 1.00000
+ 1567 = 1.00000
+ 1568 = 1.00000
+ 1570 = 1.00000
+ 1571 = 1.00000
+ 1573 = 1.00000
+ 1574 = 1.00000
+ 1575 = 1.00000
+ 1577 = 1.00000
+ 1612 = 1.00000
+ 1613 = 1.00000
+ 1615 = 1.00000
+ 1616 = 1.00000
+ 1621 = 1.00000
+ 1622 = 1.00000
+ 1624 = 1.00000
+ 1625 = 1.00000
+ 1635 = 1.00000
+ 1637 = 1.00000
+ 1644 = 1.00000
+ 1646 = 1.00000
+ 1650 = 1.00000
+ 1652 = 1.00000
+ 1659 = 1.00000
+ 1661 = 1.00000
+ 1671 = 1.00000
+ 1672 = 1.00000
+ 1673 = 1.00000
+ 1675 = 1.00000
+ 1676 = 1.00000
+ 1678 = 1.00000
+ 1679 = 1.00000
+ 1680 = 1.00000
+ 1682 = 1.00000
+ 1686 = 1.00000
+ 1687 = 1.00000
+ 1688 = 1.00000
+ 1690 = 1.00000
+ 1691 = 1.00000
+ 1693 = 1.00000
+ 1694 = 1.00000
+ 1695 = 1.00000
+ 1697 = 1.00000
+ 1732 = 1.00000
+ 1733 = 1.00000
+ 1735 = 1.00000
+ 1736 = 1.00000
+ 1741 = 1.00000
+ 1742 = 1.00000
+ 1744 = 1.00000
+ 1745 = 1.00000
+ 1756 = 1.00000
+ 1757 = 1.00000
+ 1762 = 1.00000
+ 1763 = 1.00000
+ 1771 = 1.00000
+ 1772 = 1.00000
+ 1777 = 1.00000
+ 1778 = 1.00000
+ 1815 = 1.00000
+ 1816 = 1.00000
+ 1817 = 1.00000
+ 1818 = 1.00000
+ 1820 = 1.00000
+ 1822 = 1.00000
+ 1823 = 1.00000
+ 1827 = 1.00000
+ 1829 = 1.00000
+ 1830 = 1.00000
+ 1831 = 1.00000
+ 1832 = 1.00000
+ 1833 = 1.00000
+ 1835 = 1.00000
+ 1837 = 1.00000
+ 1838 = 1.00000
+ 1842 = 1.00000
+ 1844 = 1.00000
+ 1851 = 1.00000
+ 1853 = 1.00000
+ 1857 = 1.00000
+ 1859 = 1.00000
+ 1860 = 1.00000
+ 1862 = 1.00000
+ 1866 = 1.00000
+ 1868 = 1.00000
+ 1876 = 1.00000
+ 1877 = 1.00000
+ 1882 = 1.00000
+ 1883 = 1.00000
+ 1891 = 1.00000
+ 1892 = 1.00000
+ 1897 = 1.00000
+ 1898 = 1.00000
+ 1935 = 1.00000
+ 1936 = 1.00000
+ 1937 = 1.00000
+ 1938 = 1.00000
+ 1940 = 1.00000
+ 1942 = 1.00000
+ 1943 = 1.00000
+ 1947 = 1.00000
+ 1949 = 1.00000
+ 1950 = 1.00000
+ 1951 = 1.00000
+ 1952 = 1.00000
+ 1953 = 1.00000
+ 1955 = 1.00000
+ 1957 = 1.00000
+ 1958 = 1.00000
+ 1962 = 1.00000
+ 1964 = 1.00000
+ 1971 = 1.00000
+ 1973 = 1.00000
+ 1977 = 1.00000
+ 1979 = 1.00000
+ 1980 = 1.00000
+ 1982 = 1.00000
+ 1986 = 1.00000
+ 1988 = 1.00000
+ 2020 = 1.00000
+ 2021 = 1.00000
+ 2023 = 1.00000
+ 2024 = 1.00000
+ 2029 = 1.00000
+ 2030 = 1.00000
+ 2032 = 1.00000
+ 2033 = 1.00000
+ 2043 = 1.00000
+ 2045 = 1.00000
+ 2049 = 1.00000
+ 2051 = 1.00000
+ 2052 = 1.00000
+ 2054 = 1.00000
+ 2058 = 1.00000
+ 2060 = 1.00000
+ 2067 = 1.00000
+ 2068 = 1.00000
+ 2069 = 1.00000
+ 2071 = 1.00000
+ 2072 = 1.00000
+ 2073 = 1.00000
+ 2075 = 1.00000
+ 2076 = 1.00000
+ 2077 = 1.00000
+ 2078 = 1.00000
+ 2080 = 1.00000
+ 2081 = 1.00000
+ 2082 = 1.00000
+ 2084 = 1.00000
+ 2116 = 1.00000
+ 2117 = 1.00000
+ 2119 = 1.00000
+ 2120 = 1.00000
+ 2125 = 1.00000
+ 2126 = 1.00000
+ 2128 = 1.00000
+ 2129 = 1.00000
+ 2139 = 1.00000
+ 2141 = 1.00000
+ 2145 = 1.00000
+ 2147 = 1.00000
+ 2148 = 1.00000
+ 2150 = 1.00000
+ 2154 = 1.00000
+ 2156 = 1.00000
+ 2163 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2167 = 1.00000
+ 2168 = 1.00000
+ 2169 = 1.00000
+ 2171 = 1.00000
+ 2172 = 1.00000
+ 2173 = 1.00000
+ 2174 = 1.00000
+ 2176 = 1.00000
+ 2177 = 1.00000
+ 2178 = 1.00000
+ 2180 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(2)^3], case=5
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 3 = 1.00000
+ 4 = 1.00000
+ 5 = 1.00000
+ 6 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 9 = 1.00000
+ 10 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 15 = 1.00000
+ 17 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 24 = 1.00000
+ 25 = 1.00000
+ 26 = 1.00000
+ 27 = 1.00000
+ 28 = 1.00000
+ 30 = 1.00000
+ 31 = 1.00000
+ 32 = 1.00000
+ 33 = 1.00000
+ 34 = 1.00000
+ 37 = 1.00000
+ 38 = 1.00000
+ 42 = 1.00000
+ 44 = 1.00000
+ 48 = 1.00000
+ 49 = 1.00000
+ 50 = 1.00000
+ 51 = 1.00000
+ 53 = 1.00000
+ 55 = 1.00000
+ 56 = 1.00000
+ 61 = 1.00000
+ 62 = 1.00000
+ 66 = 1.00000
+ 68 = 1.00000
+ 72 = 1.00000
+ 73 = 1.00000
+ 81 = 1.00000
+ 82 = 1.00000
+ 83 = 1.00000
+ 84 = 1.00000
+ 85 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 93 = 1.00000
+ 94 = 1.00000
+ 96 = 1.00000
+ 97 = 1.00000
+ 98 = 1.00000
+ 99 = 1.00000
+ 100 = 1.00000
+ 105 = 1.00000
+ 107 = 1.00000
+ 111 = 1.00000
+ 113 = 1.00000
+ 120 = 1.00000
+ 122 = 1.00000
+ 126 = 1.00000
+ 127 = 1.00000
+ 135 = 1.00000
+ 136 = 1.00000
+ 137 = 1.00000
+ 138 = 1.00000
+ 139 = 1.00000
+ 142 = 1.00000
+ 143 = 1.00000
+ 147 = 1.00000
+ 148 = 1.00000
+ 149 = 1.00000
+ 150 = 1.00000
+ 151 = 1.00000
+ 153 = 1.00000
+ 154 = 1.00000
+ 157 = 1.00000
+ 158 = 1.00000
+ 166 = 1.00000
+ 167 = 1.00000
+ 172 = 1.00000
+ 173 = 1.00000
+ 180 = 1.00000
+ 181 = 1.00000
+ 189 = 1.00000
+ 190 = 1.00000
+ 195 = 1.00000
+ 196 = 1.00000
+ 198 = 1.00000
+ 199 = 1.00000
+ 216 = 1.00000
+ 217 = 1.00000
+ 225 = 1.00000
+ 226 = 1.00000
+ 227 = 1.00000
+ 228 = 1.00000
+ 230 = 1.00000
+ 232 = 1.00000
+ 233 = 1.00000
+ 238 = 1.00000
+ 239 = 1.00000
+ 243 = 1.00000
+ 245 = 1.00000
+ 249 = 1.00000
+ 250 = 1.00000
+ 251 = 1.00000
+ 252 = 1.00000
+ 254 = 1.00000
+ 256 = 1.00000
+ 257 = 1.00000
+ 262 = 1.00000
+ 263 = 1.00000
+ 267 = 1.00000
+ 269 = 1.00000
+ 279 = 1.00000
+ 281 = 1.00000
+ 288 = 1.00000
+ 290 = 1.00000
+ 294 = 1.00000
+ 296 = 1.00000
+ 303 = 1.00000
+ 305 = 1.00000
+ 316 = 1.00000
+ 317 = 1.00000
+ 322 = 1.00000
+ 323 = 1.00000
+ 331 = 1.00000
+ 332 = 1.00000
+ 337 = 1.00000
+ 338 = 1.00000
+ 375 = 1.00000
+ 376 = 1.00000
+ 377 = 1.00000
+ 378 = 1.00000
+ 379 = 1.00000
+ 381 = 1.00000
+ 383 = 1.00000
+ 387 = 1.00000
+ 388 = 1.00000
+ 390 = 1.00000
+ 391 = 1.00000
+ 392 = 1.00000
+ 393 = 1.00000
+ 394 = 1.00000
+ 399 = 1.00000
+ 401 = 1.00000
+ 405 = 1.00000
+ 407 = 1.00000
+ 414 = 1.00000
+ 416 = 1.00000
+ 420 = 1.00000
+ 421 = 1.00000
+ 429 = 1.00000
+ 430 = 1.00000
+ 431 = 1.00000
+ 432 = 1.00000
+ 433 = 1.00000
+ 434 = 1.00000
+ 435 = 1.00000
+ 436 = 1.00000
+ 437 = 1.00000
+ 439 = 1.00000
+ 440 = 1.00000
+ 441 = 1.00000
+ 442 = 1.00000
+ 443 = 1.00000
+ 444 = 1.00000
+ 445 = 1.00000
+ 446 = 1.00000
+ 447 = 1.00000
+ 448 = 1.00000
+ 451 = 1.00000
+ 452 = 1.00000
+ 453 = 1.00000
+ 455 = 1.00000
+ 459 = 1.00000
+ 460 = 1.00000
+ 461 = 1.00000
+ 463 = 1.00000
+ 464 = 1.00000
+ 466 = 1.00000
+ 467 = 1.00000
+ 468 = 1.00000
+ 470 = 1.00000
+ 474 = 1.00000
+ 475 = 1.00000
+ 483 = 1.00000
+ 484 = 1.00000
+ 489 = 1.00000
+ 490 = 1.00000
+ 492 = 1.00000
+ 493 = 1.00000
+ 510 = 1.00000
+ 511 = 1.00000
+ 519 = 1.00000
+ 520 = 1.00000
+ 521 = 1.00000
+ 523 = 1.00000
+ 524 = 1.00000
+ 525 = 1.00000
+ 526 = 1.00000
+ 527 = 1.00000
+ 528 = 1.00000
+ 529 = 1.00000
+ 532 = 1.00000
+ 533 = 1.00000
+ 538 = 1.00000
+ 539 = 1.00000
+ 541 = 1.00000
+ 542 = 1.00000
+ 546 = 1.00000
+ 547 = 1.00000
+ 555 = 1.00000
+ 557 = 1.00000
+ 564 = 1.00000
+ 566 = 1.00000
+ 570 = 1.00000
+ 572 = 1.00000
+ 579 = 1.00000
+ 581 = 1.00000
+ 591 = 1.00000
+ 592 = 1.00000
+ 593 = 1.00000
+ 595 = 1.00000
+ 596 = 1.00000
+ 598 = 1.00000
+ 599 = 1.00000
+ 600 = 1.00000
+ 602 = 1.00000
+ 606 = 1.00000
+ 607 = 1.00000
+ 608 = 1.00000
+ 610 = 1.00000
+ 611 = 1.00000
+ 613 = 1.00000
+ 614 = 1.00000
+ 615 = 1.00000
+ 617 = 1.00000
+ 652 = 1.00000
+ 653 = 1.00000
+ 655 = 1.00000
+ 656 = 1.00000
+ 661 = 1.00000
+ 662 = 1.00000
+ 664 = 1.00000
+ 665 = 1.00000
+ 675 = 1.00000
+ 676 = 1.00000
+ 677 = 1.00000
+ 678 = 1.00000
+ 679 = 1.00000
+ 682 = 1.00000
+ 683 = 1.00000
+ 687 = 1.00000
+ 688 = 1.00000
+ 689 = 1.00000
+ 690 = 1.00000
+ 691 = 1.00000
+ 693 = 1.00000
+ 694 = 1.00000
+ 697 = 1.00000
+ 698 = 1.00000
+ 706 = 1.00000
+ 707 = 1.00000
+ 712 = 1.00000
+ 713 = 1.00000
+ 720 = 1.00000
+ 721 = 1.00000
+ 729 = 1.00000
+ 730 = 1.00000
+ 735 = 1.00000
+ 736 = 1.00000
+ 738 = 1.00000
+ 739 = 1.00000
+ 756 = 1.00000
+ 757 = 1.00000
+ 765 = 1.00000
+ 766 = 1.00000
+ 767 = 1.00000
+ 768 = 1.00000
+ 769 = 1.00000
+ 770 = 1.00000
+ 771 = 1.00000
+ 772 = 1.00000
+ 773 = 1.00000
+ 774 = 1.00000
+ 776 = 1.00000
+ 777 = 1.00000
+ 778 = 1.00000
+ 779 = 1.00000
+ 780 = 1.00000
+ 781 = 1.00000
+ 783 = 1.00000
+ 784 = 1.00000
+ 785 = 1.00000
+ 787 = 1.00000
+ 788 = 1.00000
+ 792 = 1.00000
+ 794 = 1.00000
+ 795 = 1.00000
+ 796 = 1.00000
+ 797 = 1.00000
+ 798 = 1.00000
+ 800 = 1.00000
+ 802 = 1.00000
+ 803 = 1.00000
+ 807 = 1.00000
+ 809 = 1.00000
+ 810 = 1.00000
+ 811 = 1.00000
+ 819 = 1.00000
+ 820 = 1.00000
+ 821 = 1.00000
+ 822 = 1.00000
+ 824 = 1.00000
+ 825 = 1.00000
+ 826 = 1.00000
+ 828 = 1.00000
+ 829 = 1.00000
+ 830 = 1.00000
+ 834 = 1.00000
+ 836 = 1.00000
+ 837 = 1.00000
+ 839 = 1.00000
+ 843 = 1.00000
+ 845 = 1.00000
+ 846 = 1.00000
+ 847 = 1.00000
+ 856 = 1.00000
+ 857 = 1.00000
+ 862 = 1.00000
+ 863 = 1.00000
+ 871 = 1.00000
+ 872 = 1.00000
+ 877 = 1.00000
+ 878 = 1.00000
+ 915 = 1.00000
+ 916 = 1.00000
+ 917 = 1.00000
+ 918 = 1.00000
+ 920 = 1.00000
+ 922 = 1.00000
+ 923 = 1.00000
+ 927 = 1.00000
+ 929 = 1.00000
+ 930 = 1.00000
+ 931 = 1.00000
+ 932 = 1.00000
+ 933 = 1.00000
+ 935 = 1.00000
+ 937 = 1.00000
+ 938 = 1.00000
+ 942 = 1.00000
+ 944 = 1.00000
+ 951 = 1.00000
+ 953 = 1.00000
+ 957 = 1.00000
+ 959 = 1.00000
+ 960 = 1.00000
+ 962 = 1.00000
+ 966 = 1.00000
+ 968 = 1.00000
+ 975 = 1.00000
+ 976 = 1.00000
+ 981 = 1.00000
+ 982 = 1.00000
+ 984 = 1.00000
+ 985 = 1.00000
+ 1002 = 1.00000
+ 1003 = 1.00000
+ 1011 = 1.00000
+ 1012 = 1.00000
+ 1013 = 1.00000
+ 1015 = 1.00000
+ 1016 = 1.00000
+ 1017 = 1.00000
+ 1018 = 1.00000
+ 1019 = 1.00000
+ 1020 = 1.00000
+ 1021 = 1.00000
+ 1024 = 1.00000
+ 1025 = 1.00000
+ 1030 = 1.00000
+ 1031 = 1.00000
+ 1033 = 1.00000
+ 1034 = 1.00000
+ 1038 = 1.00000
+ 1039 = 1.00000
+ 1047 = 1.00000
+ 1048 = 1.00000
+ 1049 = 1.00000
+ 1050 = 1.00000
+ 1052 = 1.00000
+ 1053 = 1.00000
+ 1054 = 1.00000
+ 1056 = 1.00000
+ 1057 = 1.00000
+ 1058 = 1.00000
+ 1062 = 1.00000
+ 1064 = 1.00000
+ 1065 = 1.00000
+ 1067 = 1.00000
+ 1071 = 1.00000
+ 1073 = 1.00000
+ 1074 = 1.00000
+ 1075 = 1.00000
+ 1083 = 1.00000
+ 1084 = 1.00000
+ 1085 = 1.00000
+ 1086 = 1.00000
+ 1087 = 1.00000
+ 1088 = 1.00000
+ 1089 = 1.00000
+ 1090 = 1.00000
+ 1091 = 1.00000
+ 1092 = 1.00000
+ 1093 = 1.00000
+ 1094 = 1.00000
+ 1096 = 1.00000
+ 1097 = 1.00000
+ 1098 = 1.00000
+ 1100 = 1.00000
+ 1101 = 1.00000
+ 1102 = 1.00000
+ 1103 = 1.00000
+ 1105 = 1.00000
+ 1106 = 1.00000
+ 1107 = 1.00000
+ 1109 = 1.00000
+ 1110 = 1.00000
+ 1111 = 1.00000
+ 1144 = 1.00000
+ 1145 = 1.00000
+ 1147 = 1.00000
+ 1148 = 1.00000
+ 1153 = 1.00000
+ 1154 = 1.00000
+ 1156 = 1.00000
+ 1157 = 1.00000
+ 1167 = 1.00000
+ 1169 = 1.00000
+ 1173 = 1.00000
+ 1175 = 1.00000
+ 1176 = 1.00000
+ 1178 = 1.00000
+ 1182 = 1.00000
+ 1184 = 1.00000
+ 1191 = 1.00000
+ 1192 = 1.00000
+ 1193 = 1.00000
+ 1195 = 1.00000
+ 1196 = 1.00000
+ 1197 = 1.00000
+ 1199 = 1.00000
+ 1200 = 1.00000
+ 1201 = 1.00000
+ 1202 = 1.00000
+ 1204 = 1.00000
+ 1205 = 1.00000
+ 1206 = 1.00000
+ 1208 = 1.00000
+ 1215 = 1.00000
+ 1216 = 1.00000
+ 1217 = 1.00000
+ 1218 = 1.00000
+ 1220 = 1.00000
+ 1222 = 1.00000
+ 1223 = 1.00000
+ 1228 = 1.00000
+ 1229 = 1.00000
+ 1233 = 1.00000
+ 1235 = 1.00000
+ 1239 = 1.00000
+ 1240 = 1.00000
+ 1241 = 1.00000
+ 1242 = 1.00000
+ 1244 = 1.00000
+ 1246 = 1.00000
+ 1247 = 1.00000
+ 1252 = 1.00000
+ 1253 = 1.00000
+ 1257 = 1.00000
+ 1259 = 1.00000
+ 1269 = 1.00000
+ 1271 = 1.00000
+ 1278 = 1.00000
+ 1280 = 1.00000
+ 1284 = 1.00000
+ 1286 = 1.00000
+ 1293 = 1.00000
+ 1295 = 1.00000
+ 1306 = 1.00000
+ 1307 = 1.00000
+ 1312 = 1.00000
+ 1313 = 1.00000
+ 1321 = 1.00000
+ 1322 = 1.00000
+ 1327 = 1.00000
+ 1328 = 1.00000
+ 1365 = 1.00000
+ 1366 = 1.00000
+ 1367 = 1.00000
+ 1368 = 1.00000
+ 1369 = 1.00000
+ 1370 = 1.00000
+ 1371 = 1.00000
+ 1372 = 1.00000
+ 1373 = 1.00000
+ 1374 = 1.00000
+ 1375 = 1.00000
+ 1377 = 1.00000
+ 1378 = 1.00000
+ 1379 = 1.00000
+ 1380 = 1.00000
+ 1381 = 1.00000
+ 1383 = 1.00000
+ 1384 = 1.00000
+ 1385 = 1.00000
+ 1386 = 1.00000
+ 1387 = 1.00000
+ 1389 = 1.00000
+ 1390 = 1.00000
+ 1391 = 1.00000
+ 1392 = 1.00000
+ 1394 = 1.00000
+ 1396 = 1.00000
+ 1397 = 1.00000
+ 1402 = 1.00000
+ 1403 = 1.00000
+ 1407 = 1.00000
+ 1409 = 1.00000
+ 1413 = 1.00000
+ 1414 = 1.00000
+ 1419 = 1.00000
+ 1420 = 1.00000
+ 1421 = 1.00000
+ 1422 = 1.00000
+ 1423 = 1.00000
+ 1425 = 1.00000
+ 1426 = 1.00000
+ 1428 = 1.00000
+ 1429 = 1.00000
+ 1430 = 1.00000
+ 1431 = 1.00000
+ 1432 = 1.00000
+ 1434 = 1.00000
+ 1436 = 1.00000
+ 1443 = 1.00000
+ 1445 = 1.00000
+ 1449 = 1.00000
+ 1450 = 1.00000
+ 1455 = 1.00000
+ 1456 = 1.00000
+ 1457 = 1.00000
+ 1458 = 1.00000
+ 1459 = 1.00000
+ 1461 = 1.00000
+ 1462 = 1.00000
+ 1463 = 1.00000
+ 1464 = 1.00000
+ 1465 = 1.00000
+ 1467 = 1.00000
+ 1468 = 1.00000
+ 1471 = 1.00000
+ 1472 = 1.00000
+ 1477 = 1.00000
+ 1478 = 1.00000
+ 1485 = 1.00000
+ 1486 = 1.00000
+ 1491 = 1.00000
+ 1492 = 1.00000
+ 1494 = 1.00000
+ 1495 = 1.00000
+ 1497 = 1.00000
+ 1498 = 1.00000
+ 1509 = 1.00000
+ 1510 = 1.00000
+ 1515 = 1.00000
+ 1517 = 1.00000
+ 1524 = 1.00000
+ 1526 = 1.00000
+ 1530 = 1.00000
+ 1532 = 1.00000
+ 1539 = 1.00000
+ 1541 = 1.00000
+ 1551 = 1.00000
+ 1552 = 1.00000
+ 1553 = 1.00000
+ 1555 = 1.00000
+ 1556 = 1.00000
+ 1558 = 1.00000
+ 1559 = 1.00000
+ 1560 = 1.00000
+ 1562 = 1.00000
+ 1566 = 1.00000
+ 1567 = 1.00000
+ 1568 = 1.00000
+ 1570 = 1.00000
+ 1571 = 1.00000
+ 1573 = 1.00000
+ 1574 = 1.00000
+ 1575 = 1.00000
+ 1577 = 1.00000
+ 1612 = 1.00000
+ 1613 = 1.00000
+ 1615 = 1.00000
+ 1616 = 1.00000
+ 1621 = 1.00000
+ 1622 = 1.00000
+ 1624 = 1.00000
+ 1625 = 1.00000
+ 1635 = 1.00000
+ 1636 = 1.00000
+ 1637 = 1.00000
+ 1638 = 1.00000
+ 1639 = 1.00000
+ 1641 = 1.00000
+ 1642 = 1.00000
+ 1644 = 1.00000
+ 1645 = 1.00000
+ 1646 = 1.00000
+ 1647 = 1.00000
+ 1648 = 1.00000
+ 1650 = 1.00000
+ 1652 = 1.00000
+ 1659 = 1.00000
+ 1661 = 1.00000
+ 1665 = 1.00000
+ 1666 = 1.00000
+ 1671 = 1.00000
+ 1672 = 1.00000
+ 1673 = 1.00000
+ 1674 = 1.00000
+ 1675 = 1.00000
+ 1676 = 1.00000
+ 1677 = 1.00000
+ 1678 = 1.00000
+ 1679 = 1.00000
+ 1680 = 1.00000
+ 1681 = 1.00000
+ 1682 = 1.00000
+ 1683 = 1.00000
+ 1684 = 1.00000
+ 1686 = 1.00000
+ 1687 = 1.00000
+ 1688 = 1.00000
+ 1690 = 1.00000
+ 1691 = 1.00000
+ 1693 = 1.00000
+ 1694 = 1.00000
+ 1695 = 1.00000
+ 1697 = 1.00000
+ 1701 = 1.00000
+ 1702 = 1.00000
+ 1707 = 1.00000
+ 1708 = 1.00000
+ 1710 = 1.00000
+ 1711 = 1.00000
+ 1713 = 1.00000
+ 1714 = 1.00000
+ 1725 = 1.00000
+ 1726 = 1.00000
+ 1731 = 1.00000
+ 1732 = 1.00000
+ 1733 = 1.00000
+ 1734 = 1.00000
+ 1735 = 1.00000
+ 1736 = 1.00000
+ 1737 = 1.00000
+ 1738 = 1.00000
+ 1741 = 1.00000
+ 1742 = 1.00000
+ 1744 = 1.00000
+ 1745 = 1.00000
+ 1749 = 1.00000
+ 1750 = 1.00000
+ 1756 = 1.00000
+ 1757 = 1.00000
+ 1762 = 1.00000
+ 1763 = 1.00000
+ 1771 = 1.00000
+ 1772 = 1.00000
+ 1777 = 1.00000
+ 1778 = 1.00000
+ 1815 = 1.00000
+ 1816 = 1.00000
+ 1817 = 1.00000
+ 1818 = 1.00000
+ 1820 = 1.00000
+ 1822 = 1.00000
+ 1823 = 1.00000
+ 1827 = 1.00000
+ 1829 = 1.00000
+ 1830 = 1.00000
+ 1831 = 1.00000
+ 1832 = 1.00000
+ 1833 = 1.00000
+ 1835 = 1.00000
+ 1837 = 1.00000
+ 1838 = 1.00000
+ 1842 = 1.00000
+ 1844 = 1.00000
+ 1851 = 1.00000
+ 1853 = 1.00000
+ 1857 = 1.00000
+ 1859 = 1.00000
+ 1860 = 1.00000
+ 1862 = 1.00000
+ 1866 = 1.00000
+ 1868 = 1.00000
+ 1875 = 1.00000
+ 1876 = 1.00000
+ 1877 = 1.00000
+ 1878 = 1.00000
+ 1879 = 1.00000
+ 1881 = 1.00000
+ 1882 = 1.00000
+ 1883 = 1.00000
+ 1884 = 1.00000
+ 1885 = 1.00000
+ 1887 = 1.00000
+ 1888 = 1.00000
+ 1891 = 1.00000
+ 1892 = 1.00000
+ 1897 = 1.00000
+ 1898 = 1.00000
+ 1905 = 1.00000
+ 1906 = 1.00000
+ 1911 = 1.00000
+ 1912 = 1.00000
+ 1914 = 1.00000
+ 1915 = 1.00000
+ 1917 = 1.00000
+ 1918 = 1.00000
+ 1929 = 1.00000
+ 1930 = 1.00000
+ 1935 = 1.00000
+ 1936 = 1.00000
+ 1937 = 1.00000
+ 1938 = 1.00000
+ 1939 = 1.00000
+ 1940 = 1.00000
+ 1941 = 1.00000
+ 1942 = 1.00000
+ 1943 = 1.00000
+ 1944 = 1.00000
+ 1945 = 1.00000
+ 1947 = 1.00000
+ 1948 = 1.00000
+ 1949 = 1.00000
+ 1950 = 1.00000
+ 1951 = 1.00000
+ 1952 = 1.00000
+ 1953 = 1.00000
+ 1955 = 1.00000
+ 1957 = 1.00000
+ 1958 = 1.00000
+ 1962 = 1.00000
+ 1964 = 1.00000
+ 1965 = 1.00000
+ 1966 = 1.00000
+ 1971 = 1.00000
+ 1972 = 1.00000
+ 1973 = 1.00000
+ 1974 = 1.00000
+ 1975 = 1.00000
+ 1977 = 1.00000
+ 1978 = 1.00000
+ 1979 = 1.00000
+ 1980 = 1.00000
+ 1982 = 1.00000
+ 1986 = 1.00000
+ 1988 = 1.00000
+ 1989 = 1.00000
+ 1990 = 1.00000
+ 2020 = 1.00000
+ 2021 = 1.00000
+ 2023 = 1.00000
+ 2024 = 1.00000
+ 2029 = 1.00000
+ 2030 = 1.00000
+ 2032 = 1.00000
+ 2033 = 1.00000
+ 2043 = 1.00000
+ 2045 = 1.00000
+ 2049 = 1.00000
+ 2051 = 1.00000
+ 2052 = 1.00000
+ 2054 = 1.00000
+ 2058 = 1.00000
+ 2060 = 1.00000
+ 2067 = 1.00000
+ 2068 = 1.00000
+ 2069 = 1.00000
+ 2071 = 1.00000
+ 2072 = 1.00000
+ 2073 = 1.00000
+ 2075 = 1.00000
+ 2076 = 1.00000
+ 2077 = 1.00000
+ 2078 = 1.00000
+ 2080 = 1.00000
+ 2081 = 1.00000
+ 2082 = 1.00000
+ 2084 = 1.00000
+ 2091 = 1.00000
+ 2092 = 1.00000
+ 2094 = 1.00000
+ 2095 = 1.00000
+ 2097 = 1.00000
+ 2098 = 1.00000
+ 2109 = 1.00000
+ 2110 = 1.00000
+ 2115 = 1.00000
+ 2116 = 1.00000
+ 2117 = 1.00000
+ 2118 = 1.00000
+ 2119 = 1.00000
+ 2120 = 1.00000
+ 2121 = 1.00000
+ 2122 = 1.00000
+ 2125 = 1.00000
+ 2126 = 1.00000
+ 2128 = 1.00000
+ 2129 = 1.00000
+ 2133 = 1.00000
+ 2134 = 1.00000
+ 2139 = 1.00000
+ 2140 = 1.00000
+ 2141 = 1.00000
+ 2142 = 1.00000
+ 2143 = 1.00000
+ 2145 = 1.00000
+ 2146 = 1.00000
+ 2147 = 1.00000
+ 2148 = 1.00000
+ 2150 = 1.00000
+ 2154 = 1.00000
+ 2156 = 1.00000
+ 2157 = 1.00000
+ 2158 = 1.00000
+ 2163 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2166 = 1.00000
+ 2167 = 1.00000
+ 2168 = 1.00000
+ 2169 = 1.00000
+ 2170 = 1.00000
+ 2171 = 1.00000
+ 2172 = 1.00000
+ 2173 = 1.00000
+ 2174 = 1.00000
+ 2176 = 1.00000
+ 2177 = 1.00000
+ 2178 = 1.00000
+ 2180 = 1.00000
+ 2181 = 1.00000
+ 2182 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=0
+ 1 = 1.00000
+ 2 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 26 = 1.00000
+ 28 = 1.00000
+ 27 = 1.00000
+ 29 = 1.00000
+ 50 = 1.00000
+ 52 = 1.00000
+ 51 = 1.00000
+ 53 = 1.00000
+ 74 = 1.00000
+ 76 = 1.00000
+ 75 = 1.00000
+ 77 = 1.00000
+ 86 = 1.00000
+ 88 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 100 = 1.00000
+ 104 = 1.00000
+ 101 = 1.00000
+ 105 = 1.00000
+ 102 = 1.00000
+ 106 = 1.00000
+ 103 = 1.00000
+ 107 = 1.00000
+ 337 = 1.00000
+ 338 = 1.00000
+ 343 = 1.00000
+ 344 = 1.00000
+ 350 = 1.00000
+ 352 = 1.00000
+ 351 = 1.00000
+ 353 = 1.00000
+ 368 = 1.00000
+ 370 = 1.00000
+ 369 = 1.00000
+ 371 = 1.00000
+ 386 = 1.00000
+ 388 = 1.00000
+ 387 = 1.00000
+ 389 = 1.00000
+ 400 = 1.00000
+ 404 = 1.00000
+ 401 = 1.00000
+ 405 = 1.00000
+ 402 = 1.00000
+ 406 = 1.00000
+ 403 = 1.00000
+ 407 = 1.00000
+ 589 = 1.00000
+ 590 = 1.00000
+ 595 = 1.00000
+ 596 = 1.00000
+ 602 = 1.00000
+ 604 = 1.00000
+ 603 = 1.00000
+ 605 = 1.00000
+ 626 = 1.00000
+ 628 = 1.00000
+ 627 = 1.00000
+ 629 = 1.00000
+ 638 = 1.00000
+ 640 = 1.00000
+ 639 = 1.00000
+ 641 = 1.00000
+ 652 = 1.00000
+ 656 = 1.00000
+ 653 = 1.00000
+ 657 = 1.00000
+ 654 = 1.00000
+ 658 = 1.00000
+ 655 = 1.00000
+ 659 = 1.00000
+ 841 = 1.00000
+ 842 = 1.00000
+ 848 = 1.00000
+ 850 = 1.00000
+ 849 = 1.00000
+ 851 = 1.00000
+ 866 = 1.00000
+ 868 = 1.00000
+ 867 = 1.00000
+ 869 = 1.00000
+ 880 = 1.00000
+ 884 = 1.00000
+ 881 = 1.00000
+ 885 = 1.00000
+ 882 = 1.00000
+ 886 = 1.00000
+ 883 = 1.00000
+ 887 = 1.00000
+ 1912 = 1.00000
+ 1913 = 1.00000
+ 1918 = 1.00000
+ 1919 = 1.00000
+ 1925 = 1.00000
+ 1927 = 1.00000
+ 1926 = 1.00000
+ 1928 = 1.00000
+ 1943 = 1.00000
+ 1945 = 1.00000
+ 1944 = 1.00000
+ 1946 = 1.00000
+ 1961 = 1.00000
+ 1963 = 1.00000
+ 1962 = 1.00000
+ 1964 = 1.00000
+ 1975 = 1.00000
+ 1979 = 1.00000
+ 1976 = 1.00000
+ 1980 = 1.00000
+ 1977 = 1.00000
+ 1981 = 1.00000
+ 1978 = 1.00000
+ 1982 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2170 = 1.00000
+ 2171 = 1.00000
+ 2177 = 1.00000
+ 2179 = 1.00000
+ 2178 = 1.00000
+ 2180 = 1.00000
+ 2195 = 1.00000
+ 2197 = 1.00000
+ 2196 = 1.00000
+ 2198 = 1.00000
+ 2213 = 1.00000
+ 2215 = 1.00000
+ 2214 = 1.00000
+ 2216 = 1.00000
+ 2227 = 1.00000
+ 2231 = 1.00000
+ 2228 = 1.00000
+ 2232 = 1.00000
+ 2229 = 1.00000
+ 2233 = 1.00000
+ 2230 = 1.00000
+ 2234 = 1.00000
+ 2416 = 1.00000
+ 2417 = 1.00000
+ 2423 = 1.00000
+ 2425 = 1.00000
+ 2424 = 1.00000
+ 2426 = 1.00000
+ 2441 = 1.00000
+ 2443 = 1.00000
+ 2442 = 1.00000
+ 2444 = 1.00000
+ 2455 = 1.00000
+ 2459 = 1.00000
+ 2456 = 1.00000
+ 2460 = 1.00000
+ 2457 = 1.00000
+ 2461 = 1.00000
+ 2458 = 1.00000
+ 2462 = 1.00000
+ 2605 = 1.00000
+ 2606 = 1.00000
+ 2612 = 1.00000
+ 2614 = 1.00000
+ 2613 = 1.00000
+ 2615 = 1.00000
+ 2630 = 1.00000
+ 2632 = 1.00000
+ 2631 = 1.00000
+ 2633 = 1.00000
+ 2644 = 1.00000
+ 2648 = 1.00000
+ 2645 = 1.00000
+ 2649 = 1.00000
+ 2646 = 1.00000
+ 2650 = 1.00000
+ 2647 = 1.00000
+ 2651 = 1.00000
+ 3550 = 1.00000
+ 3551 = 1.00000
+ 3556 = 1.00000
+ 3557 = 1.00000
+ 3563 = 1.00000
+ 3565 = 1.00000
+ 3564 = 1.00000
+ 3566 = 1.00000
+ 3587 = 1.00000
+ 3589 = 1.00000
+ 3588 = 1.00000
+ 3590 = 1.00000
+ 3599 = 1.00000
+ 3601 = 1.00000
+ 3600 = 1.00000
+ 3602 = 1.00000
+ 3613 = 1.00000
+ 3617 = 1.00000
+ 3614 = 1.00000
+ 3618 = 1.00000
+ 3615 = 1.00000
+ 3619 = 1.00000
+ 3616 = 1.00000
+ 3620 = 1.00000
+ 3802 = 1.00000
+ 3803 = 1.00000
+ 3809 = 1.00000
+ 3811 = 1.00000
+ 3810 = 1.00000
+ 3812 = 1.00000
+ 3827 = 1.00000
+ 3829 = 1.00000
+ 3828 = 1.00000
+ 3830 = 1.00000
+ 3841 = 1.00000
+ 3845 = 1.00000
+ 3842 = 1.00000
+ 3846 = 1.00000
+ 3843 = 1.00000
+ 3847 = 1.00000
+ 3844 = 1.00000
+ 3848 = 1.00000
+ 3991 = 1.00000
+ 3992 = 1.00000
+ 3997 = 1.00000
+ 3998 = 1.00000
+ 4004 = 1.00000
+ 4006 = 1.00000
+ 4005 = 1.00000
+ 4007 = 1.00000
+ 4028 = 1.00000
+ 4030 = 1.00000
+ 4029 = 1.00000
+ 4031 = 1.00000
+ 4040 = 1.00000
+ 4042 = 1.00000
+ 4041 = 1.00000
+ 4043 = 1.00000
+ 4054 = 1.00000
+ 4058 = 1.00000
+ 4055 = 1.00000
+ 4059 = 1.00000
+ 4056 = 1.00000
+ 4060 = 1.00000
+ 4057 = 1.00000
+ 4061 = 1.00000
+ 4243 = 1.00000
+ 4244 = 1.00000
+ 4250 = 1.00000
+ 4252 = 1.00000
+ 4251 = 1.00000
+ 4253 = 1.00000
+ 4268 = 1.00000
+ 4270 = 1.00000
+ 4269 = 1.00000
+ 4271 = 1.00000
+ 4282 = 1.00000
+ 4286 = 1.00000
+ 4283 = 1.00000
+ 4287 = 1.00000
+ 4284 = 1.00000
+ 4288 = 1.00000
+ 4285 = 1.00000
+ 4289 = 1.00000
+ 5188 = 1.00000
+ 5189 = 1.00000
+ 5195 = 1.00000
+ 5197 = 1.00000
+ 5196 = 1.00000
+ 5198 = 1.00000
+ 5213 = 1.00000
+ 5215 = 1.00000
+ 5214 = 1.00000
+ 5216 = 1.00000
+ 5227 = 1.00000
+ 5231 = 1.00000
+ 5228 = 1.00000
+ 5232 = 1.00000
+ 5229 = 1.00000
+ 5233 = 1.00000
+ 5230 = 1.00000
+ 5234 = 1.00000
+ 5377 = 1.00000
+ 5378 = 1.00000
+ 5384 = 1.00000
+ 5386 = 1.00000
+ 5385 = 1.00000
+ 5387 = 1.00000
+ 5402 = 1.00000
+ 5404 = 1.00000
+ 5403 = 1.00000
+ 5405 = 1.00000
+ 5416 = 1.00000
+ 5420 = 1.00000
+ 5417 = 1.00000
+ 5421 = 1.00000
+ 5418 = 1.00000
+ 5422 = 1.00000
+ 5419 = 1.00000
+ 5423 = 1.00000
+ 5566 = 1.00000
+ 5567 = 1.00000
+ 5573 = 1.00000
+ 5575 = 1.00000
+ 5574 = 1.00000
+ 5576 = 1.00000
+ 5591 = 1.00000
+ 5593 = 1.00000
+ 5592 = 1.00000
+ 5594 = 1.00000
+ 5605 = 1.00000
+ 5609 = 1.00000
+ 5606 = 1.00000
+ 5610 = 1.00000
+ 5607 = 1.00000
+ 5611 = 1.00000
+ 5608 = 1.00000
+ 5612 = 1.00000
+ 5755 = 1.00000
+ 5756 = 1.00000
+ 5762 = 1.00000
+ 5764 = 1.00000
+ 5763 = 1.00000
+ 5765 = 1.00000
+ 5780 = 1.00000
+ 5782 = 1.00000
+ 5781 = 1.00000
+ 5783 = 1.00000
+ 5794 = 1.00000
+ 5798 = 1.00000
+ 5795 = 1.00000
+ 5799 = 1.00000
+ 5796 = 1.00000
+ 5800 = 1.00000
+ 5797 = 1.00000
+ 5801 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=1
+ 1 = 1.00000
+ 2 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 26 = 1.00000
+ 28 = 1.00000
+ 27 = 1.00000
+ 29 = 1.00000
+ 50 = 1.00000
+ 52 = 1.00000
+ 51 = 1.00000
+ 53 = 1.00000
+ 74 = 1.00000
+ 76 = 1.00000
+ 75 = 1.00000
+ 77 = 1.00000
+ 86 = 1.00000
+ 88 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 100 = 1.00000
+ 104 = 1.00000
+ 101 = 1.00000
+ 105 = 1.00000
+ 102 = 1.00000
+ 106 = 1.00000
+ 103 = 1.00000
+ 107 = 1.00000
+ 337 = 1.00000
+ 338 = 1.00000
+ 343 = 1.00000
+ 344 = 1.00000
+ 350 = 1.00000
+ 352 = 1.00000
+ 351 = 1.00000
+ 353 = 1.00000
+ 368 = 1.00000
+ 370 = 1.00000
+ 369 = 1.00000
+ 371 = 1.00000
+ 386 = 1.00000
+ 388 = 1.00000
+ 387 = 1.00000
+ 389 = 1.00000
+ 400 = 1.00000
+ 404 = 1.00000
+ 401 = 1.00000
+ 405 = 1.00000
+ 402 = 1.00000
+ 406 = 1.00000
+ 403 = 1.00000
+ 407 = 1.00000
+ 589 = 1.00000
+ 590 = 1.00000
+ 595 = 1.00000
+ 596 = 1.00000
+ 602 = 1.00000
+ 604 = 1.00000
+ 603 = 1.00000
+ 605 = 1.00000
+ 626 = 1.00000
+ 628 = 1.00000
+ 627 = 1.00000
+ 629 = 1.00000
+ 638 = 1.00000
+ 640 = 1.00000
+ 639 = 1.00000
+ 641 = 1.00000
+ 652 = 1.00000
+ 656 = 1.00000
+ 653 = 1.00000
+ 657 = 1.00000
+ 654 = 1.00000
+ 658 = 1.00000
+ 655 = 1.00000
+ 659 = 1.00000
+ 841 = 1.00000
+ 842 = 1.00000
+ 848 = 1.00000
+ 850 = 1.00000
+ 849 = 1.00000
+ 851 = 1.00000
+ 866 = 1.00000
+ 868 = 1.00000
+ 867 = 1.00000
+ 869 = 1.00000
+ 880 = 1.00000
+ 884 = 1.00000
+ 881 = 1.00000
+ 885 = 1.00000
+ 882 = 1.00000
+ 886 = 1.00000
+ 883 = 1.00000
+ 887 = 1.00000
+ 1174 = 1.00000
+ 1175 = 1.00000
+ 1177 = 1.00000
+ 1178 = 1.00000
+ 1180 = 1.00000
+ 1181 = 1.00000
+ 1183 = 1.00000
+ 1184 = 1.00000
+ 1187 = 1.00000
+ 1189 = 1.00000
+ 1188 = 1.00000
+ 1190 = 1.00000
+ 1205 = 1.00000
+ 1207 = 1.00000
+ 1206 = 1.00000
+ 1208 = 1.00000
+ 1223 = 1.00000
+ 1225 = 1.00000
+ 1224 = 1.00000
+ 1226 = 1.00000
+ 1229 = 1.00000
+ 1231 = 1.00000
+ 1230 = 1.00000
+ 1232 = 1.00000
+ 1237 = 1.00000
+ 1241 = 1.00000
+ 1238 = 1.00000
+ 1242 = 1.00000
+ 1239 = 1.00000
+ 1243 = 1.00000
+ 1240 = 1.00000
+ 1244 = 1.00000
+ 1426 = 1.00000
+ 1427 = 1.00000
+ 1429 = 1.00000
+ 1430 = 1.00000
+ 1433 = 1.00000
+ 1435 = 1.00000
+ 1434 = 1.00000
+ 1436 = 1.00000
+ 1445 = 1.00000
+ 1447 = 1.00000
+ 1446 = 1.00000
+ 1448 = 1.00000
+ 1457 = 1.00000
+ 1459 = 1.00000
+ 1458 = 1.00000
+ 1460 = 1.00000
+ 1465 = 1.00000
+ 1469 = 1.00000
+ 1466 = 1.00000
+ 1470 = 1.00000
+ 1467 = 1.00000
+ 1471 = 1.00000
+ 1468 = 1.00000
+ 1472 = 1.00000
+ 1642 = 1.00000
+ 1643 = 1.00000
+ 1645 = 1.00000
+ 1646 = 1.00000
+ 1649 = 1.00000
+ 1651 = 1.00000
+ 1650 = 1.00000
+ 1652 = 1.00000
+ 1667 = 1.00000
+ 1669 = 1.00000
+ 1668 = 1.00000
+ 1670 = 1.00000
+ 1673 = 1.00000
+ 1675 = 1.00000
+ 1674 = 1.00000
+ 1676 = 1.00000
+ 1681 = 1.00000
+ 1685 = 1.00000
+ 1682 = 1.00000
+ 1686 = 1.00000
+ 1683 = 1.00000
+ 1687 = 1.00000
+ 1684 = 1.00000
+ 1688 = 1.00000
+ 1831 = 1.00000
+ 1832 = 1.00000
+ 1835 = 1.00000
+ 1837 = 1.00000
+ 1836 = 1.00000
+ 1838 = 1.00000
+ 1847 = 1.00000
+ 1849 = 1.00000
+ 1848 = 1.00000
+ 1850 = 1.00000
+ 1855 = 1.00000
+ 1859 = 1.00000
+ 1856 = 1.00000
+ 1860 = 1.00000
+ 1857 = 1.00000
+ 1861 = 1.00000
+ 1858 = 1.00000
+ 1862 = 1.00000
+ 1912 = 1.00000
+ 1913 = 1.00000
+ 1918 = 1.00000
+ 1919 = 1.00000
+ 1925 = 1.00000
+ 1927 = 1.00000
+ 1926 = 1.00000
+ 1928 = 1.00000
+ 1943 = 1.00000
+ 1945 = 1.00000
+ 1944 = 1.00000
+ 1946 = 1.00000
+ 1961 = 1.00000
+ 1963 = 1.00000
+ 1962 = 1.00000
+ 1964 = 1.00000
+ 1975 = 1.00000
+ 1979 = 1.00000
+ 1976 = 1.00000
+ 1980 = 1.00000
+ 1977 = 1.00000
+ 1981 = 1.00000
+ 1978 = 1.00000
+ 1982 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2170 = 1.00000
+ 2171 = 1.00000
+ 2177 = 1.00000
+ 2179 = 1.00000
+ 2178 = 1.00000
+ 2180 = 1.00000
+ 2195 = 1.00000
+ 2197 = 1.00000
+ 2196 = 1.00000
+ 2198 = 1.00000
+ 2213 = 1.00000
+ 2215 = 1.00000
+ 2214 = 1.00000
+ 2216 = 1.00000
+ 2227 = 1.00000
+ 2231 = 1.00000
+ 2228 = 1.00000
+ 2232 = 1.00000
+ 2229 = 1.00000
+ 2233 = 1.00000
+ 2230 = 1.00000
+ 2234 = 1.00000
+ 2416 = 1.00000
+ 2417 = 1.00000
+ 2423 = 1.00000
+ 2425 = 1.00000
+ 2424 = 1.00000
+ 2426 = 1.00000
+ 2441 = 1.00000
+ 2443 = 1.00000
+ 2442 = 1.00000
+ 2444 = 1.00000
+ 2455 = 1.00000
+ 2459 = 1.00000
+ 2456 = 1.00000
+ 2460 = 1.00000
+ 2457 = 1.00000
+ 2461 = 1.00000
+ 2458 = 1.00000
+ 2462 = 1.00000
+ 2605 = 1.00000
+ 2606 = 1.00000
+ 2612 = 1.00000
+ 2614 = 1.00000
+ 2613 = 1.00000
+ 2615 = 1.00000
+ 2630 = 1.00000
+ 2632 = 1.00000
+ 2631 = 1.00000
+ 2633 = 1.00000
+ 2644 = 1.00000
+ 2648 = 1.00000
+ 2645 = 1.00000
+ 2649 = 1.00000
+ 2646 = 1.00000
+ 2650 = 1.00000
+ 2647 = 1.00000
+ 2651 = 1.00000
+ 2902 = 1.00000
+ 2903 = 1.00000
+ 2905 = 1.00000
+ 2906 = 1.00000
+ 2909 = 1.00000
+ 2911 = 1.00000
+ 2910 = 1.00000
+ 2912 = 1.00000
+ 2921 = 1.00000
+ 2923 = 1.00000
+ 2922 = 1.00000
+ 2924 = 1.00000
+ 2933 = 1.00000
+ 2935 = 1.00000
+ 2934 = 1.00000
+ 2936 = 1.00000
+ 2941 = 1.00000
+ 2945 = 1.00000
+ 2942 = 1.00000
+ 2946 = 1.00000
+ 2943 = 1.00000
+ 2947 = 1.00000
+ 2944 = 1.00000
+ 2948 = 1.00000
+ 3118 = 1.00000
+ 3119 = 1.00000
+ 3121 = 1.00000
+ 3122 = 1.00000
+ 3125 = 1.00000
+ 3127 = 1.00000
+ 3126 = 1.00000
+ 3128 = 1.00000
+ 3137 = 1.00000
+ 3139 = 1.00000
+ 3138 = 1.00000
+ 3140 = 1.00000
+ 3149 = 1.00000
+ 3151 = 1.00000
+ 3150 = 1.00000
+ 3152 = 1.00000
+ 3157 = 1.00000
+ 3161 = 1.00000
+ 3158 = 1.00000
+ 3162 = 1.00000
+ 3159 = 1.00000
+ 3163 = 1.00000
+ 3160 = 1.00000
+ 3164 = 1.00000
+ 3307 = 1.00000
+ 3308 = 1.00000
+ 3311 = 1.00000
+ 3313 = 1.00000
+ 3312 = 1.00000
+ 3314 = 1.00000
+ 3323 = 1.00000
+ 3325 = 1.00000
+ 3324 = 1.00000
+ 3326 = 1.00000
+ 3331 = 1.00000
+ 3335 = 1.00000
+ 3332 = 1.00000
+ 3336 = 1.00000
+ 3333 = 1.00000
+ 3337 = 1.00000
+ 3334 = 1.00000
+ 3338 = 1.00000
+ 3469 = 1.00000
+ 3470 = 1.00000
+ 3473 = 1.00000
+ 3475 = 1.00000
+ 3474 = 1.00000
+ 3476 = 1.00000
+ 3485 = 1.00000
+ 3487 = 1.00000
+ 3486 = 1.00000
+ 3488 = 1.00000
+ 3493 = 1.00000
+ 3497 = 1.00000
+ 3494 = 1.00000
+ 3498 = 1.00000
+ 3495 = 1.00000
+ 3499 = 1.00000
+ 3496 = 1.00000
+ 3500 = 1.00000
+ 3550 = 1.00000
+ 3551 = 1.00000
+ 3556 = 1.00000
+ 3557 = 1.00000
+ 3563 = 1.00000
+ 3565 = 1.00000
+ 3564 = 1.00000
+ 3566 = 1.00000
+ 3587 = 1.00000
+ 3589 = 1.00000
+ 3588 = 1.00000
+ 3590 = 1.00000
+ 3599 = 1.00000
+ 3601 = 1.00000
+ 3600 = 1.00000
+ 3602 = 1.00000
+ 3613 = 1.00000
+ 3617 = 1.00000
+ 3614 = 1.00000
+ 3618 = 1.00000
+ 3615 = 1.00000
+ 3619 = 1.00000
+ 3616 = 1.00000
+ 3620 = 1.00000
+ 3802 = 1.00000
+ 3803 = 1.00000
+ 3809 = 1.00000
+ 3811 = 1.00000
+ 3810 = 1.00000
+ 3812 = 1.00000
+ 3827 = 1.00000
+ 3829 = 1.00000
+ 3828 = 1.00000
+ 3830 = 1.00000
+ 3841 = 1.00000
+ 3845 = 1.00000
+ 3842 = 1.00000
+ 3846 = 1.00000
+ 3843 = 1.00000
+ 3847 = 1.00000
+ 3844 = 1.00000
+ 3848 = 1.00000
+ 3991 = 1.00000
+ 3992 = 1.00000
+ 3997 = 1.00000
+ 3998 = 1.00000
+ 4004 = 1.00000
+ 4006 = 1.00000
+ 4005 = 1.00000
+ 4007 = 1.00000
+ 4028 = 1.00000
+ 4030 = 1.00000
+ 4029 = 1.00000
+ 4031 = 1.00000
+ 4040 = 1.00000
+ 4042 = 1.00000
+ 4041 = 1.00000
+ 4043 = 1.00000
+ 4054 = 1.00000
+ 4058 = 1.00000
+ 4055 = 1.00000
+ 4059 = 1.00000
+ 4056 = 1.00000
+ 4060 = 1.00000
+ 4057 = 1.00000
+ 4061 = 1.00000
+ 4243 = 1.00000
+ 4244 = 1.00000
+ 4250 = 1.00000
+ 4252 = 1.00000
+ 4251 = 1.00000
+ 4253 = 1.00000
+ 4268 = 1.00000
+ 4270 = 1.00000
+ 4269 = 1.00000
+ 4271 = 1.00000
+ 4282 = 1.00000
+ 4286 = 1.00000
+ 4283 = 1.00000
+ 4287 = 1.00000
+ 4284 = 1.00000
+ 4288 = 1.00000
+ 4285 = 1.00000
+ 4289 = 1.00000
+ 4540 = 1.00000
+ 4541 = 1.00000
+ 4543 = 1.00000
+ 4544 = 1.00000
+ 4547 = 1.00000
+ 4549 = 1.00000
+ 4548 = 1.00000
+ 4550 = 1.00000
+ 4565 = 1.00000
+ 4567 = 1.00000
+ 4566 = 1.00000
+ 4568 = 1.00000
+ 4571 = 1.00000
+ 4573 = 1.00000
+ 4572 = 1.00000
+ 4574 = 1.00000
+ 4579 = 1.00000
+ 4583 = 1.00000
+ 4580 = 1.00000
+ 4584 = 1.00000
+ 4581 = 1.00000
+ 4585 = 1.00000
+ 4582 = 1.00000
+ 4586 = 1.00000
+ 4729 = 1.00000
+ 4730 = 1.00000
+ 4733 = 1.00000
+ 4735 = 1.00000
+ 4734 = 1.00000
+ 4736 = 1.00000
+ 4745 = 1.00000
+ 4747 = 1.00000
+ 4746 = 1.00000
+ 4748 = 1.00000
+ 4753 = 1.00000
+ 4757 = 1.00000
+ 4754 = 1.00000
+ 4758 = 1.00000
+ 4755 = 1.00000
+ 4759 = 1.00000
+ 4756 = 1.00000
+ 4760 = 1.00000
+ 4918 = 1.00000
+ 4919 = 1.00000
+ 4921 = 1.00000
+ 4922 = 1.00000
+ 4925 = 1.00000
+ 4927 = 1.00000
+ 4926 = 1.00000
+ 4928 = 1.00000
+ 4943 = 1.00000
+ 4945 = 1.00000
+ 4944 = 1.00000
+ 4946 = 1.00000
+ 4949 = 1.00000
+ 4951 = 1.00000
+ 4950 = 1.00000
+ 4952 = 1.00000
+ 4957 = 1.00000
+ 4961 = 1.00000
+ 4958 = 1.00000
+ 4962 = 1.00000
+ 4959 = 1.00000
+ 4963 = 1.00000
+ 4960 = 1.00000
+ 4964 = 1.00000
+ 5107 = 1.00000
+ 5108 = 1.00000
+ 5111 = 1.00000
+ 5113 = 1.00000
+ 5112 = 1.00000
+ 5114 = 1.00000
+ 5123 = 1.00000
+ 5125 = 1.00000
+ 5124 = 1.00000
+ 5126 = 1.00000
+ 5131 = 1.00000
+ 5135 = 1.00000
+ 5132 = 1.00000
+ 5136 = 1.00000
+ 5133 = 1.00000
+ 5137 = 1.00000
+ 5134 = 1.00000
+ 5138 = 1.00000
+ 5188 = 1.00000
+ 5189 = 1.00000
+ 5195 = 1.00000
+ 5197 = 1.00000
+ 5196 = 1.00000
+ 5198 = 1.00000
+ 5213 = 1.00000
+ 5215 = 1.00000
+ 5214 = 1.00000
+ 5216 = 1.00000
+ 5227 = 1.00000
+ 5231 = 1.00000
+ 5228 = 1.00000
+ 5232 = 1.00000
+ 5229 = 1.00000
+ 5233 = 1.00000
+ 5230 = 1.00000
+ 5234 = 1.00000
+ 5377 = 1.00000
+ 5378 = 1.00000
+ 5384 = 1.00000
+ 5386 = 1.00000
+ 5385 = 1.00000
+ 5387 = 1.00000
+ 5402 = 1.00000
+ 5404 = 1.00000
+ 5403 = 1.00000
+ 5405 = 1.00000
+ 5416 = 1.00000
+ 5420 = 1.00000
+ 5417 = 1.00000
+ 5421 = 1.00000
+ 5418 = 1.00000
+ 5422 = 1.00000
+ 5419 = 1.00000
+ 5423 = 1.00000
+ 5566 = 1.00000
+ 5567 = 1.00000
+ 5573 = 1.00000
+ 5575 = 1.00000
+ 5574 = 1.00000
+ 5576 = 1.00000
+ 5591 = 1.00000
+ 5593 = 1.00000
+ 5592 = 1.00000
+ 5594 = 1.00000
+ 5605 = 1.00000
+ 5609 = 1.00000
+ 5606 = 1.00000
+ 5610 = 1.00000
+ 5607 = 1.00000
+ 5611 = 1.00000
+ 5608 = 1.00000
+ 5612 = 1.00000
+ 5755 = 1.00000
+ 5756 = 1.00000
+ 5762 = 1.00000
+ 5764 = 1.00000
+ 5763 = 1.00000
+ 5765 = 1.00000
+ 5780 = 1.00000
+ 5782 = 1.00000
+ 5781 = 1.00000
+ 5783 = 1.00000
+ 5794 = 1.00000
+ 5798 = 1.00000
+ 5795 = 1.00000
+ 5799 = 1.00000
+ 5796 = 1.00000
+ 5800 = 1.00000
+ 5797 = 1.00000
+ 5801 = 1.00000
+ 6025 = 1.00000
+ 6026 = 1.00000
+ 6029 = 1.00000
+ 6031 = 1.00000
+ 6030 = 1.00000
+ 6032 = 1.00000
+ 6041 = 1.00000
+ 6043 = 1.00000
+ 6042 = 1.00000
+ 6044 = 1.00000
+ 6049 = 1.00000
+ 6053 = 1.00000
+ 6050 = 1.00000
+ 6054 = 1.00000
+ 6051 = 1.00000
+ 6055 = 1.00000
+ 6052 = 1.00000
+ 6056 = 1.00000
+ 6187 = 1.00000
+ 6188 = 1.00000
+ 6191 = 1.00000
+ 6193 = 1.00000
+ 6192 = 1.00000
+ 6194 = 1.00000
+ 6203 = 1.00000
+ 6205 = 1.00000
+ 6204 = 1.00000
+ 6206 = 1.00000
+ 6211 = 1.00000
+ 6215 = 1.00000
+ 6212 = 1.00000
+ 6216 = 1.00000
+ 6213 = 1.00000
+ 6217 = 1.00000
+ 6214 = 1.00000
+ 6218 = 1.00000
+ 6349 = 1.00000
+ 6350 = 1.00000
+ 6353 = 1.00000
+ 6355 = 1.00000
+ 6354 = 1.00000
+ 6356 = 1.00000
+ 6365 = 1.00000
+ 6367 = 1.00000
+ 6366 = 1.00000
+ 6368 = 1.00000
+ 6373 = 1.00000
+ 6377 = 1.00000
+ 6374 = 1.00000
+ 6378 = 1.00000
+ 6375 = 1.00000
+ 6379 = 1.00000
+ 6376 = 1.00000
+ 6380 = 1.00000
+ 6511 = 1.00000
+ 6512 = 1.00000
+ 6515 = 1.00000
+ 6517 = 1.00000
+ 6516 = 1.00000
+ 6518 = 1.00000
+ 6527 = 1.00000
+ 6529 = 1.00000
+ 6528 = 1.00000
+ 6530 = 1.00000
+ 6535 = 1.00000
+ 6539 = 1.00000
+ 6536 = 1.00000
+ 6540 = 1.00000
+ 6537 = 1.00000
+ 6541 = 1.00000
+ 6538 = 1.00000
+ 6542 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=2
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 3 = 1.00000
+ 5 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 15 = 1.00000
+ 17 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 26 = 1.00000
+ 28 = 1.00000
+ 27 = 1.00000
+ 29 = 1.00000
+ 36 = 1.00000
+ 40 = 1.00000
+ 37 = 1.00000
+ 41 = 1.00000
+ 50 = 1.00000
+ 52 = 1.00000
+ 51 = 1.00000
+ 53 = 1.00000
+ 60 = 1.00000
+ 64 = 1.00000
+ 61 = 1.00000
+ 65 = 1.00000
+ 72 = 1.00000
+ 74 = 1.00000
+ 76 = 1.00000
+ 73 = 1.00000
+ 75 = 1.00000
+ 77 = 1.00000
+ 78 = 1.00000
+ 82 = 1.00000
+ 79 = 1.00000
+ 83 = 1.00000
+ 86 = 1.00000
+ 88 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 100 = 1.00000
+ 104 = 1.00000
+ 101 = 1.00000
+ 105 = 1.00000
+ 102 = 1.00000
+ 106 = 1.00000
+ 103 = 1.00000
+ 107 = 1.00000
+ 120 = 1.00000
+ 128 = 1.00000
+ 121 = 1.00000
+ 129 = 1.00000
+ 122 = 1.00000
+ 130 = 1.00000
+ 123 = 1.00000
+ 131 = 1.00000
+ 192 = 1.00000
+ 194 = 1.00000
+ 198 = 1.00000
+ 200 = 1.00000
+ 210 = 1.00000
+ 214 = 1.00000
+ 211 = 1.00000
+ 215 = 1.00000
+ 228 = 1.00000
+ 232 = 1.00000
+ 229 = 1.00000
+ 233 = 1.00000
+ 240 = 1.00000
+ 244 = 1.00000
+ 241 = 1.00000
+ 245 = 1.00000
+ 264 = 1.00000
+ 272 = 1.00000
+ 265 = 1.00000
+ 273 = 1.00000
+ 266 = 1.00000
+ 274 = 1.00000
+ 267 = 1.00000
+ 275 = 1.00000
+ 337 = 1.00000
+ 338 = 1.00000
+ 343 = 1.00000
+ 344 = 1.00000
+ 350 = 1.00000
+ 352 = 1.00000
+ 351 = 1.00000
+ 353 = 1.00000
+ 368 = 1.00000
+ 370 = 1.00000
+ 369 = 1.00000
+ 371 = 1.00000
+ 386 = 1.00000
+ 388 = 1.00000
+ 387 = 1.00000
+ 389 = 1.00000
+ 400 = 1.00000
+ 404 = 1.00000
+ 401 = 1.00000
+ 405 = 1.00000
+ 402 = 1.00000
+ 406 = 1.00000
+ 403 = 1.00000
+ 407 = 1.00000
+ 588 = 1.00000
+ 589 = 1.00000
+ 590 = 1.00000
+ 591 = 1.00000
+ 593 = 1.00000
+ 595 = 1.00000
+ 596 = 1.00000
+ 602 = 1.00000
+ 604 = 1.00000
+ 603 = 1.00000
+ 605 = 1.00000
+ 612 = 1.00000
+ 616 = 1.00000
+ 613 = 1.00000
+ 617 = 1.00000
+ 624 = 1.00000
+ 626 = 1.00000
+ 628 = 1.00000
+ 625 = 1.00000
+ 627 = 1.00000
+ 629 = 1.00000
+ 630 = 1.00000
+ 634 = 1.00000
+ 631 = 1.00000
+ 635 = 1.00000
+ 638 = 1.00000
+ 640 = 1.00000
+ 639 = 1.00000
+ 641 = 1.00000
+ 652 = 1.00000
+ 656 = 1.00000
+ 653 = 1.00000
+ 657 = 1.00000
+ 654 = 1.00000
+ 658 = 1.00000
+ 655 = 1.00000
+ 659 = 1.00000
+ 672 = 1.00000
+ 680 = 1.00000
+ 673 = 1.00000
+ 681 = 1.00000
+ 674 = 1.00000
+ 682 = 1.00000
+ 675 = 1.00000
+ 683 = 1.00000
+ 732 = 1.00000
+ 734 = 1.00000
+ 744 = 1.00000
+ 748 = 1.00000
+ 745 = 1.00000
+ 749 = 1.00000
+ 756 = 1.00000
+ 760 = 1.00000
+ 757 = 1.00000
+ 761 = 1.00000
+ 780 = 1.00000
+ 788 = 1.00000
+ 781 = 1.00000
+ 789 = 1.00000
+ 782 = 1.00000
+ 790 = 1.00000
+ 783 = 1.00000
+ 791 = 1.00000
+ 841 = 1.00000
+ 842 = 1.00000
+ 848 = 1.00000
+ 850 = 1.00000
+ 849 = 1.00000
+ 851 = 1.00000
+ 866 = 1.00000
+ 868 = 1.00000
+ 867 = 1.00000
+ 869 = 1.00000
+ 880 = 1.00000
+ 884 = 1.00000
+ 881 = 1.00000
+ 885 = 1.00000
+ 882 = 1.00000
+ 886 = 1.00000
+ 883 = 1.00000
+ 887 = 1.00000
+ 1029 = 1.00000
+ 1031 = 1.00000
+ 1035 = 1.00000
+ 1037 = 1.00000
+ 1047 = 1.00000
+ 1051 = 1.00000
+ 1048 = 1.00000
+ 1052 = 1.00000
+ 1065 = 1.00000
+ 1069 = 1.00000
+ 1066 = 1.00000
+ 1070 = 1.00000
+ 1077 = 1.00000
+ 1081 = 1.00000
+ 1078 = 1.00000
+ 1082 = 1.00000
+ 1101 = 1.00000
+ 1109 = 1.00000
+ 1102 = 1.00000
+ 1110 = 1.00000
+ 1103 = 1.00000
+ 1111 = 1.00000
+ 1104 = 1.00000
+ 1112 = 1.00000
+ 1173 = 1.00000
+ 1174 = 1.00000
+ 1175 = 1.00000
+ 1177 = 1.00000
+ 1178 = 1.00000
+ 1179 = 1.00000
+ 1180 = 1.00000
+ 1181 = 1.00000
+ 1183 = 1.00000
+ 1184 = 1.00000
+ 1187 = 1.00000
+ 1189 = 1.00000
+ 1188 = 1.00000
+ 1190 = 1.00000
+ 1191 = 1.00000
+ 1195 = 1.00000
+ 1192 = 1.00000
+ 1196 = 1.00000
+ 1205 = 1.00000
+ 1207 = 1.00000
+ 1206 = 1.00000
+ 1208 = 1.00000
+ 1209 = 1.00000
+ 1213 = 1.00000
+ 1210 = 1.00000
+ 1214 = 1.00000
+ 1221 = 1.00000
+ 1223 = 1.00000
+ 1225 = 1.00000
+ 1222 = 1.00000
+ 1224 = 1.00000
+ 1226 = 1.00000
+ 1229 = 1.00000
+ 1231 = 1.00000
+ 1230 = 1.00000
+ 1232 = 1.00000
+ 1237 = 1.00000
+ 1241 = 1.00000
+ 1238 = 1.00000
+ 1242 = 1.00000
+ 1239 = 1.00000
+ 1243 = 1.00000
+ 1240 = 1.00000
+ 1244 = 1.00000
+ 1245 = 1.00000
+ 1253 = 1.00000
+ 1246 = 1.00000
+ 1254 = 1.00000
+ 1247 = 1.00000
+ 1255 = 1.00000
+ 1248 = 1.00000
+ 1256 = 1.00000
+ 1426 = 1.00000
+ 1427 = 1.00000
+ 1429 = 1.00000
+ 1430 = 1.00000
+ 1433 = 1.00000
+ 1435 = 1.00000
+ 1434 = 1.00000
+ 1436 = 1.00000
+ 1445 = 1.00000
+ 1447 = 1.00000
+ 1446 = 1.00000
+ 1448 = 1.00000
+ 1457 = 1.00000
+ 1459 = 1.00000
+ 1458 = 1.00000
+ 1460 = 1.00000
+ 1465 = 1.00000
+ 1469 = 1.00000
+ 1466 = 1.00000
+ 1470 = 1.00000
+ 1467 = 1.00000
+ 1471 = 1.00000
+ 1468 = 1.00000
+ 1472 = 1.00000
+ 1533 = 1.00000
+ 1535 = 1.00000
+ 1545 = 1.00000
+ 1549 = 1.00000
+ 1546 = 1.00000
+ 1550 = 1.00000
+ 1557 = 1.00000
+ 1561 = 1.00000
+ 1558 = 1.00000
+ 1562 = 1.00000
+ 1581 = 1.00000
+ 1589 = 1.00000
+ 1582 = 1.00000
+ 1590 = 1.00000
+ 1583 = 1.00000
+ 1591 = 1.00000
+ 1584 = 1.00000
+ 1592 = 1.00000
+ 1641 = 1.00000
+ 1642 = 1.00000
+ 1643 = 1.00000
+ 1645 = 1.00000
+ 1646 = 1.00000
+ 1649 = 1.00000
+ 1651 = 1.00000
+ 1650 = 1.00000
+ 1652 = 1.00000
+ 1653 = 1.00000
+ 1657 = 1.00000
+ 1654 = 1.00000
+ 1658 = 1.00000
+ 1665 = 1.00000
+ 1667 = 1.00000
+ 1669 = 1.00000
+ 1666 = 1.00000
+ 1668 = 1.00000
+ 1670 = 1.00000
+ 1673 = 1.00000
+ 1675 = 1.00000
+ 1674 = 1.00000
+ 1676 = 1.00000
+ 1681 = 1.00000
+ 1685 = 1.00000
+ 1682 = 1.00000
+ 1686 = 1.00000
+ 1683 = 1.00000
+ 1687 = 1.00000
+ 1684 = 1.00000
+ 1688 = 1.00000
+ 1689 = 1.00000
+ 1697 = 1.00000
+ 1690 = 1.00000
+ 1698 = 1.00000
+ 1691 = 1.00000
+ 1699 = 1.00000
+ 1692 = 1.00000
+ 1700 = 1.00000
+ 1831 = 1.00000
+ 1832 = 1.00000
+ 1835 = 1.00000
+ 1837 = 1.00000
+ 1836 = 1.00000
+ 1838 = 1.00000
+ 1847 = 1.00000
+ 1849 = 1.00000
+ 1848 = 1.00000
+ 1850 = 1.00000
+ 1855 = 1.00000
+ 1859 = 1.00000
+ 1856 = 1.00000
+ 1860 = 1.00000
+ 1857 = 1.00000
+ 1861 = 1.00000
+ 1858 = 1.00000
+ 1862 = 1.00000
+ 1912 = 1.00000
+ 1913 = 1.00000
+ 1918 = 1.00000
+ 1919 = 1.00000
+ 1925 = 1.00000
+ 1927 = 1.00000
+ 1926 = 1.00000
+ 1928 = 1.00000
+ 1943 = 1.00000
+ 1945 = 1.00000
+ 1944 = 1.00000
+ 1946 = 1.00000
+ 1961 = 1.00000
+ 1963 = 1.00000
+ 1962 = 1.00000
+ 1964 = 1.00000
+ 1975 = 1.00000
+ 1979 = 1.00000
+ 1976 = 1.00000
+ 1980 = 1.00000
+ 1977 = 1.00000
+ 1981 = 1.00000
+ 1978 = 1.00000
+ 1982 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2170 = 1.00000
+ 2171 = 1.00000
+ 2177 = 1.00000
+ 2179 = 1.00000
+ 2178 = 1.00000
+ 2180 = 1.00000
+ 2195 = 1.00000
+ 2197 = 1.00000
+ 2196 = 1.00000
+ 2198 = 1.00000
+ 2213 = 1.00000
+ 2215 = 1.00000
+ 2214 = 1.00000
+ 2216 = 1.00000
+ 2227 = 1.00000
+ 2231 = 1.00000
+ 2228 = 1.00000
+ 2232 = 1.00000
+ 2229 = 1.00000
+ 2233 = 1.00000
+ 2230 = 1.00000
+ 2234 = 1.00000
+ 2416 = 1.00000
+ 2417 = 1.00000
+ 2423 = 1.00000
+ 2425 = 1.00000
+ 2424 = 1.00000
+ 2426 = 1.00000
+ 2441 = 1.00000
+ 2443 = 1.00000
+ 2442 = 1.00000
+ 2444 = 1.00000
+ 2455 = 1.00000
+ 2459 = 1.00000
+ 2456 = 1.00000
+ 2460 = 1.00000
+ 2457 = 1.00000
+ 2461 = 1.00000
+ 2458 = 1.00000
+ 2462 = 1.00000
+ 2605 = 1.00000
+ 2606 = 1.00000
+ 2612 = 1.00000
+ 2614 = 1.00000
+ 2613 = 1.00000
+ 2615 = 1.00000
+ 2630 = 1.00000
+ 2632 = 1.00000
+ 2631 = 1.00000
+ 2633 = 1.00000
+ 2644 = 1.00000
+ 2648 = 1.00000
+ 2645 = 1.00000
+ 2649 = 1.00000
+ 2646 = 1.00000
+ 2650 = 1.00000
+ 2647 = 1.00000
+ 2651 = 1.00000
+ 2902 = 1.00000
+ 2903 = 1.00000
+ 2905 = 1.00000
+ 2906 = 1.00000
+ 2909 = 1.00000
+ 2911 = 1.00000
+ 2910 = 1.00000
+ 2912 = 1.00000
+ 2921 = 1.00000
+ 2923 = 1.00000
+ 2922 = 1.00000
+ 2924 = 1.00000
+ 2933 = 1.00000
+ 2935 = 1.00000
+ 2934 = 1.00000
+ 2936 = 1.00000
+ 2941 = 1.00000
+ 2945 = 1.00000
+ 2942 = 1.00000
+ 2946 = 1.00000
+ 2943 = 1.00000
+ 2947 = 1.00000
+ 2944 = 1.00000
+ 2948 = 1.00000
+ 3118 = 1.00000
+ 3119 = 1.00000
+ 3121 = 1.00000
+ 3122 = 1.00000
+ 3125 = 1.00000
+ 3127 = 1.00000
+ 3126 = 1.00000
+ 3128 = 1.00000
+ 3137 = 1.00000
+ 3139 = 1.00000
+ 3138 = 1.00000
+ 3140 = 1.00000
+ 3149 = 1.00000
+ 3151 = 1.00000
+ 3150 = 1.00000
+ 3152 = 1.00000
+ 3157 = 1.00000
+ 3161 = 1.00000
+ 3158 = 1.00000
+ 3162 = 1.00000
+ 3159 = 1.00000
+ 3163 = 1.00000
+ 3160 = 1.00000
+ 3164 = 1.00000
+ 3307 = 1.00000
+ 3308 = 1.00000
+ 3311 = 1.00000
+ 3313 = 1.00000
+ 3312 = 1.00000
+ 3314 = 1.00000
+ 3323 = 1.00000
+ 3325 = 1.00000
+ 3324 = 1.00000
+ 3326 = 1.00000
+ 3331 = 1.00000
+ 3335 = 1.00000
+ 3332 = 1.00000
+ 3336 = 1.00000
+ 3333 = 1.00000
+ 3337 = 1.00000
+ 3334 = 1.00000
+ 3338 = 1.00000
+ 3469 = 1.00000
+ 3470 = 1.00000
+ 3473 = 1.00000
+ 3475 = 1.00000
+ 3474 = 1.00000
+ 3476 = 1.00000
+ 3485 = 1.00000
+ 3487 = 1.00000
+ 3486 = 1.00000
+ 3488 = 1.00000
+ 3493 = 1.00000
+ 3497 = 1.00000
+ 3494 = 1.00000
+ 3498 = 1.00000
+ 3495 = 1.00000
+ 3499 = 1.00000
+ 3496 = 1.00000
+ 3500 = 1.00000
+ 3549 = 1.00000
+ 3550 = 1.00000
+ 3551 = 1.00000
+ 3552 = 1.00000
+ 3554 = 1.00000
+ 3556 = 1.00000
+ 3557 = 1.00000
+ 3563 = 1.00000
+ 3565 = 1.00000
+ 3564 = 1.00000
+ 3566 = 1.00000
+ 3573 = 1.00000
+ 3577 = 1.00000
+ 3574 = 1.00000
+ 3578 = 1.00000
+ 3585 = 1.00000
+ 3587 = 1.00000
+ 3589 = 1.00000
+ 3586 = 1.00000
+ 3588 = 1.00000
+ 3590 = 1.00000
+ 3591 = 1.00000
+ 3595 = 1.00000
+ 3592 = 1.00000
+ 3596 = 1.00000
+ 3599 = 1.00000
+ 3601 = 1.00000
+ 3600 = 1.00000
+ 3602 = 1.00000
+ 3613 = 1.00000
+ 3617 = 1.00000
+ 3614 = 1.00000
+ 3618 = 1.00000
+ 3615 = 1.00000
+ 3619 = 1.00000
+ 3616 = 1.00000
+ 3620 = 1.00000
+ 3633 = 1.00000
+ 3641 = 1.00000
+ 3634 = 1.00000
+ 3642 = 1.00000
+ 3635 = 1.00000
+ 3643 = 1.00000
+ 3636 = 1.00000
+ 3644 = 1.00000
+ 3693 = 1.00000
+ 3695 = 1.00000
+ 3705 = 1.00000
+ 3709 = 1.00000
+ 3706 = 1.00000
+ 3710 = 1.00000
+ 3717 = 1.00000
+ 3721 = 1.00000
+ 3718 = 1.00000
+ 3722 = 1.00000
+ 3741 = 1.00000
+ 3749 = 1.00000
+ 3742 = 1.00000
+ 3750 = 1.00000
+ 3743 = 1.00000
+ 3751 = 1.00000
+ 3744 = 1.00000
+ 3752 = 1.00000
+ 3802 = 1.00000
+ 3803 = 1.00000
+ 3809 = 1.00000
+ 3811 = 1.00000
+ 3810 = 1.00000
+ 3812 = 1.00000
+ 3827 = 1.00000
+ 3829 = 1.00000
+ 3828 = 1.00000
+ 3830 = 1.00000
+ 3841 = 1.00000
+ 3845 = 1.00000
+ 3842 = 1.00000
+ 3846 = 1.00000
+ 3843 = 1.00000
+ 3847 = 1.00000
+ 3844 = 1.00000
+ 3848 = 1.00000
+ 3990 = 1.00000
+ 3991 = 1.00000
+ 3992 = 1.00000
+ 3993 = 1.00000
+ 3995 = 1.00000
+ 3997 = 1.00000
+ 3998 = 1.00000
+ 4004 = 1.00000
+ 4006 = 1.00000
+ 4005 = 1.00000
+ 4007 = 1.00000
+ 4014 = 1.00000
+ 4018 = 1.00000
+ 4015 = 1.00000
+ 4019 = 1.00000
+ 4026 = 1.00000
+ 4028 = 1.00000
+ 4030 = 1.00000
+ 4027 = 1.00000
+ 4029 = 1.00000
+ 4031 = 1.00000
+ 4032 = 1.00000
+ 4036 = 1.00000
+ 4033 = 1.00000
+ 4037 = 1.00000
+ 4040 = 1.00000
+ 4042 = 1.00000
+ 4041 = 1.00000
+ 4043 = 1.00000
+ 4054 = 1.00000
+ 4058 = 1.00000
+ 4055 = 1.00000
+ 4059 = 1.00000
+ 4056 = 1.00000
+ 4060 = 1.00000
+ 4057 = 1.00000
+ 4061 = 1.00000
+ 4074 = 1.00000
+ 4082 = 1.00000
+ 4075 = 1.00000
+ 4083 = 1.00000
+ 4076 = 1.00000
+ 4084 = 1.00000
+ 4077 = 1.00000
+ 4085 = 1.00000
+ 4134 = 1.00000
+ 4136 = 1.00000
+ 4146 = 1.00000
+ 4150 = 1.00000
+ 4147 = 1.00000
+ 4151 = 1.00000
+ 4158 = 1.00000
+ 4162 = 1.00000
+ 4159 = 1.00000
+ 4163 = 1.00000
+ 4182 = 1.00000
+ 4190 = 1.00000
+ 4183 = 1.00000
+ 4191 = 1.00000
+ 4184 = 1.00000
+ 4192 = 1.00000
+ 4185 = 1.00000
+ 4193 = 1.00000
+ 4243 = 1.00000
+ 4244 = 1.00000
+ 4250 = 1.00000
+ 4252 = 1.00000
+ 4251 = 1.00000
+ 4253 = 1.00000
+ 4268 = 1.00000
+ 4270 = 1.00000
+ 4269 = 1.00000
+ 4271 = 1.00000
+ 4282 = 1.00000
+ 4286 = 1.00000
+ 4283 = 1.00000
+ 4287 = 1.00000
+ 4284 = 1.00000
+ 4288 = 1.00000
+ 4285 = 1.00000
+ 4289 = 1.00000
+ 4431 = 1.00000
+ 4433 = 1.00000
+ 4443 = 1.00000
+ 4447 = 1.00000
+ 4444 = 1.00000
+ 4448 = 1.00000
+ 4455 = 1.00000
+ 4459 = 1.00000
+ 4456 = 1.00000
+ 4460 = 1.00000
+ 4479 = 1.00000
+ 4487 = 1.00000
+ 4480 = 1.00000
+ 4488 = 1.00000
+ 4481 = 1.00000
+ 4489 = 1.00000
+ 4482 = 1.00000
+ 4490 = 1.00000
+ 4539 = 1.00000
+ 4540 = 1.00000
+ 4541 = 1.00000
+ 4543 = 1.00000
+ 4544 = 1.00000
+ 4547 = 1.00000
+ 4549 = 1.00000
+ 4548 = 1.00000
+ 4550 = 1.00000
+ 4551 = 1.00000
+ 4555 = 1.00000
+ 4552 = 1.00000
+ 4556 = 1.00000
+ 4563 = 1.00000
+ 4565 = 1.00000
+ 4567 = 1.00000
+ 4564 = 1.00000
+ 4566 = 1.00000
+ 4568 = 1.00000
+ 4571 = 1.00000
+ 4573 = 1.00000
+ 4572 = 1.00000
+ 4574 = 1.00000
+ 4579 = 1.00000
+ 4583 = 1.00000
+ 4580 = 1.00000
+ 4584 = 1.00000
+ 4581 = 1.00000
+ 4585 = 1.00000
+ 4582 = 1.00000
+ 4586 = 1.00000
+ 4587 = 1.00000
+ 4595 = 1.00000
+ 4588 = 1.00000
+ 4596 = 1.00000
+ 4589 = 1.00000
+ 4597 = 1.00000
+ 4590 = 1.00000
+ 4598 = 1.00000
+ 4729 = 1.00000
+ 4730 = 1.00000
+ 4733 = 1.00000
+ 4735 = 1.00000
+ 4734 = 1.00000
+ 4736 = 1.00000
+ 4745 = 1.00000
+ 4747 = 1.00000
+ 4746 = 1.00000
+ 4748 = 1.00000
+ 4753 = 1.00000
+ 4757 = 1.00000
+ 4754 = 1.00000
+ 4758 = 1.00000
+ 4755 = 1.00000
+ 4759 = 1.00000
+ 4756 = 1.00000
+ 4760 = 1.00000
+ 4809 = 1.00000
+ 4811 = 1.00000
+ 4821 = 1.00000
+ 4825 = 1.00000
+ 4822 = 1.00000
+ 4826 = 1.00000
+ 4833 = 1.00000
+ 4837 = 1.00000
+ 4834 = 1.00000
+ 4838 = 1.00000
+ 4857 = 1.00000
+ 4865 = 1.00000
+ 4858 = 1.00000
+ 4866 = 1.00000
+ 4859 = 1.00000
+ 4867 = 1.00000
+ 4860 = 1.00000
+ 4868 = 1.00000
+ 4917 = 1.00000
+ 4918 = 1.00000
+ 4919 = 1.00000
+ 4921 = 1.00000
+ 4922 = 1.00000
+ 4925 = 1.00000
+ 4927 = 1.00000
+ 4926 = 1.00000
+ 4928 = 1.00000
+ 4929 = 1.00000
+ 4933 = 1.00000
+ 4930 = 1.00000
+ 4934 = 1.00000
+ 4941 = 1.00000
+ 4943 = 1.00000
+ 4945 = 1.00000
+ 4942 = 1.00000
+ 4944 = 1.00000
+ 4946 = 1.00000
+ 4949 = 1.00000
+ 4951 = 1.00000
+ 4950 = 1.00000
+ 4952 = 1.00000
+ 4957 = 1.00000
+ 4961 = 1.00000
+ 4958 = 1.00000
+ 4962 = 1.00000
+ 4959 = 1.00000
+ 4963 = 1.00000
+ 4960 = 1.00000
+ 4964 = 1.00000
+ 4965 = 1.00000
+ 4973 = 1.00000
+ 4966 = 1.00000
+ 4974 = 1.00000
+ 4967 = 1.00000
+ 4975 = 1.00000
+ 4968 = 1.00000
+ 4976 = 1.00000
+ 5107 = 1.00000
+ 5108 = 1.00000
+ 5111 = 1.00000
+ 5113 = 1.00000
+ 5112 = 1.00000
+ 5114 = 1.00000
+ 5123 = 1.00000
+ 5125 = 1.00000
+ 5124 = 1.00000
+ 5126 = 1.00000
+ 5131 = 1.00000
+ 5135 = 1.00000
+ 5132 = 1.00000
+ 5136 = 1.00000
+ 5133 = 1.00000
+ 5137 = 1.00000
+ 5134 = 1.00000
+ 5138 = 1.00000
+ 5188 = 1.00000
+ 5189 = 1.00000
+ 5195 = 1.00000
+ 5197 = 1.00000
+ 5196 = 1.00000
+ 5198 = 1.00000
+ 5213 = 1.00000
+ 5215 = 1.00000
+ 5214 = 1.00000
+ 5216 = 1.00000
+ 5227 = 1.00000
+ 5231 = 1.00000
+ 5228 = 1.00000
+ 5232 = 1.00000
+ 5229 = 1.00000
+ 5233 = 1.00000
+ 5230 = 1.00000
+ 5234 = 1.00000
+ 5377 = 1.00000
+ 5378 = 1.00000
+ 5384 = 1.00000
+ 5386 = 1.00000
+ 5385 = 1.00000
+ 5387 = 1.00000
+ 5402 = 1.00000
+ 5404 = 1.00000
+ 5403 = 1.00000
+ 5405 = 1.00000
+ 5416 = 1.00000
+ 5420 = 1.00000
+ 5417 = 1.00000
+ 5421 = 1.00000
+ 5418 = 1.00000
+ 5422 = 1.00000
+ 5419 = 1.00000
+ 5423 = 1.00000
+ 5566 = 1.00000
+ 5567 = 1.00000
+ 5573 = 1.00000
+ 5575 = 1.00000
+ 5574 = 1.00000
+ 5576 = 1.00000
+ 5591 = 1.00000
+ 5593 = 1.00000
+ 5592 = 1.00000
+ 5594 = 1.00000
+ 5605 = 1.00000
+ 5609 = 1.00000
+ 5606 = 1.00000
+ 5610 = 1.00000
+ 5607 = 1.00000
+ 5611 = 1.00000
+ 5608 = 1.00000
+ 5612 = 1.00000
+ 5755 = 1.00000
+ 5756 = 1.00000
+ 5762 = 1.00000
+ 5764 = 1.00000
+ 5763 = 1.00000
+ 5765 = 1.00000
+ 5780 = 1.00000
+ 5782 = 1.00000
+ 5781 = 1.00000
+ 5783 = 1.00000
+ 5794 = 1.00000
+ 5798 = 1.00000
+ 5795 = 1.00000
+ 5799 = 1.00000
+ 5796 = 1.00000
+ 5800 = 1.00000
+ 5797 = 1.00000
+ 5801 = 1.00000
+ 6025 = 1.00000
+ 6026 = 1.00000
+ 6029 = 1.00000
+ 6031 = 1.00000
+ 6030 = 1.00000
+ 6032 = 1.00000
+ 6041 = 1.00000
+ 6043 = 1.00000
+ 6042 = 1.00000
+ 6044 = 1.00000
+ 6049 = 1.00000
+ 6053 = 1.00000
+ 6050 = 1.00000
+ 6054 = 1.00000
+ 6051 = 1.00000
+ 6055 = 1.00000
+ 6052 = 1.00000
+ 6056 = 1.00000
+ 6187 = 1.00000
+ 6188 = 1.00000
+ 6191 = 1.00000
+ 6193 = 1.00000
+ 6192 = 1.00000
+ 6194 = 1.00000
+ 6203 = 1.00000
+ 6205 = 1.00000
+ 6204 = 1.00000
+ 6206 = 1.00000
+ 6211 = 1.00000
+ 6215 = 1.00000
+ 6212 = 1.00000
+ 6216 = 1.00000
+ 6213 = 1.00000
+ 6217 = 1.00000
+ 6214 = 1.00000
+ 6218 = 1.00000
+ 6349 = 1.00000
+ 6350 = 1.00000
+ 6353 = 1.00000
+ 6355 = 1.00000
+ 6354 = 1.00000
+ 6356 = 1.00000
+ 6365 = 1.00000
+ 6367 = 1.00000
+ 6366 = 1.00000
+ 6368 = 1.00000
+ 6373 = 1.00000
+ 6377 = 1.00000
+ 6374 = 1.00000
+ 6378 = 1.00000
+ 6375 = 1.00000
+ 6379 = 1.00000
+ 6376 = 1.00000
+ 6380 = 1.00000
+ 6511 = 1.00000
+ 6512 = 1.00000
+ 6515 = 1.00000
+ 6517 = 1.00000
+ 6516 = 1.00000
+ 6518 = 1.00000
+ 6527 = 1.00000
+ 6529 = 1.00000
+ 6528 = 1.00000
+ 6530 = 1.00000
+ 6535 = 1.00000
+ 6539 = 1.00000
+ 6536 = 1.00000
+ 6540 = 1.00000
+ 6537 = 1.00000
+ 6541 = 1.00000
+ 6538 = 1.00000
+ 6542 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=3
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 3 = 1.00000
+ 5 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 15 = 1.00000
+ 17 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 26 = 1.00000
+ 28 = 1.00000
+ 27 = 1.00000
+ 29 = 1.00000
+ 36 = 1.00000
+ 40 = 1.00000
+ 37 = 1.00000
+ 41 = 1.00000
+ 50 = 1.00000
+ 52 = 1.00000
+ 51 = 1.00000
+ 53 = 1.00000
+ 60 = 1.00000
+ 64 = 1.00000
+ 61 = 1.00000
+ 65 = 1.00000
+ 72 = 1.00000
+ 74 = 1.00000
+ 76 = 1.00000
+ 73 = 1.00000
+ 75 = 1.00000
+ 77 = 1.00000
+ 78 = 1.00000
+ 82 = 1.00000
+ 79 = 1.00000
+ 83 = 1.00000
+ 86 = 1.00000
+ 88 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 100 = 1.00000
+ 104 = 1.00000
+ 101 = 1.00000
+ 105 = 1.00000
+ 102 = 1.00000
+ 106 = 1.00000
+ 103 = 1.00000
+ 107 = 1.00000
+ 120 = 1.00000
+ 128 = 1.00000
+ 121 = 1.00000
+ 129 = 1.00000
+ 122 = 1.00000
+ 130 = 1.00000
+ 123 = 1.00000
+ 131 = 1.00000
+ 192 = 1.00000
+ 194 = 1.00000
+ 198 = 1.00000
+ 200 = 1.00000
+ 210 = 1.00000
+ 214 = 1.00000
+ 211 = 1.00000
+ 215 = 1.00000
+ 228 = 1.00000
+ 232 = 1.00000
+ 229 = 1.00000
+ 233 = 1.00000
+ 240 = 1.00000
+ 244 = 1.00000
+ 241 = 1.00000
+ 245 = 1.00000
+ 264 = 1.00000
+ 272 = 1.00000
+ 265 = 1.00000
+ 273 = 1.00000
+ 266 = 1.00000
+ 274 = 1.00000
+ 267 = 1.00000
+ 275 = 1.00000
+ 337 = 1.00000
+ 338 = 1.00000
+ 343 = 1.00000
+ 344 = 1.00000
+ 350 = 1.00000
+ 352 = 1.00000
+ 351 = 1.00000
+ 353 = 1.00000
+ 368 = 1.00000
+ 370 = 1.00000
+ 369 = 1.00000
+ 371 = 1.00000
+ 386 = 1.00000
+ 388 = 1.00000
+ 387 = 1.00000
+ 389 = 1.00000
+ 400 = 1.00000
+ 404 = 1.00000
+ 401 = 1.00000
+ 405 = 1.00000
+ 402 = 1.00000
+ 406 = 1.00000
+ 403 = 1.00000
+ 407 = 1.00000
+ 588 = 1.00000
+ 589 = 1.00000
+ 590 = 1.00000
+ 591 = 1.00000
+ 593 = 1.00000
+ 595 = 1.00000
+ 596 = 1.00000
+ 602 = 1.00000
+ 604 = 1.00000
+ 603 = 1.00000
+ 605 = 1.00000
+ 612 = 1.00000
+ 616 = 1.00000
+ 613 = 1.00000
+ 617 = 1.00000
+ 624 = 1.00000
+ 626 = 1.00000
+ 628 = 1.00000
+ 625 = 1.00000
+ 627 = 1.00000
+ 629 = 1.00000
+ 630 = 1.00000
+ 634 = 1.00000
+ 631 = 1.00000
+ 635 = 1.00000
+ 638 = 1.00000
+ 640 = 1.00000
+ 639 = 1.00000
+ 641 = 1.00000
+ 652 = 1.00000
+ 656 = 1.00000
+ 653 = 1.00000
+ 657 = 1.00000
+ 654 = 1.00000
+ 658 = 1.00000
+ 655 = 1.00000
+ 659 = 1.00000
+ 672 = 1.00000
+ 680 = 1.00000
+ 673 = 1.00000
+ 681 = 1.00000
+ 674 = 1.00000
+ 682 = 1.00000
+ 675 = 1.00000
+ 683 = 1.00000
+ 732 = 1.00000
+ 734 = 1.00000
+ 744 = 1.00000
+ 748 = 1.00000
+ 745 = 1.00000
+ 749 = 1.00000
+ 756 = 1.00000
+ 760 = 1.00000
+ 757 = 1.00000
+ 761 = 1.00000
+ 780 = 1.00000
+ 788 = 1.00000
+ 781 = 1.00000
+ 789 = 1.00000
+ 782 = 1.00000
+ 790 = 1.00000
+ 783 = 1.00000
+ 791 = 1.00000
+ 841 = 1.00000
+ 842 = 1.00000
+ 848 = 1.00000
+ 850 = 1.00000
+ 849 = 1.00000
+ 851 = 1.00000
+ 866 = 1.00000
+ 868 = 1.00000
+ 867 = 1.00000
+ 869 = 1.00000
+ 880 = 1.00000
+ 884 = 1.00000
+ 881 = 1.00000
+ 885 = 1.00000
+ 882 = 1.00000
+ 886 = 1.00000
+ 883 = 1.00000
+ 887 = 1.00000
+ 1029 = 1.00000
+ 1031 = 1.00000
+ 1035 = 1.00000
+ 1037 = 1.00000
+ 1047 = 1.00000
+ 1051 = 1.00000
+ 1048 = 1.00000
+ 1052 = 1.00000
+ 1065 = 1.00000
+ 1069 = 1.00000
+ 1066 = 1.00000
+ 1070 = 1.00000
+ 1077 = 1.00000
+ 1081 = 1.00000
+ 1078 = 1.00000
+ 1082 = 1.00000
+ 1101 = 1.00000
+ 1109 = 1.00000
+ 1102 = 1.00000
+ 1110 = 1.00000
+ 1103 = 1.00000
+ 1111 = 1.00000
+ 1104 = 1.00000
+ 1112 = 1.00000
+ 1173 = 1.00000
+ 1174 = 1.00000
+ 1175 = 1.00000
+ 1177 = 1.00000
+ 1178 = 1.00000
+ 1179 = 1.00000
+ 1180 = 1.00000
+ 1181 = 1.00000
+ 1183 = 1.00000
+ 1184 = 1.00000
+ 1187 = 1.00000
+ 1189 = 1.00000
+ 1188 = 1.00000
+ 1190 = 1.00000
+ 1191 = 1.00000
+ 1195 = 1.00000
+ 1192 = 1.00000
+ 1196 = 1.00000
+ 1205 = 1.00000
+ 1207 = 1.00000
+ 1206 = 1.00000
+ 1208 = 1.00000
+ 1209 = 1.00000
+ 1213 = 1.00000
+ 1210 = 1.00000
+ 1214 = 1.00000
+ 1221 = 1.00000
+ 1223 = 1.00000
+ 1225 = 1.00000
+ 1222 = 1.00000
+ 1224 = 1.00000
+ 1226 = 1.00000
+ 1229 = 1.00000
+ 1231 = 1.00000
+ 1230 = 1.00000
+ 1232 = 1.00000
+ 1237 = 1.00000
+ 1241 = 1.00000
+ 1238 = 1.00000
+ 1242 = 1.00000
+ 1239 = 1.00000
+ 1243 = 1.00000
+ 1240 = 1.00000
+ 1244 = 1.00000
+ 1245 = 1.00000
+ 1253 = 1.00000
+ 1246 = 1.00000
+ 1254 = 1.00000
+ 1247 = 1.00000
+ 1255 = 1.00000
+ 1248 = 1.00000
+ 1256 = 1.00000
+ 1426 = 1.00000
+ 1427 = 1.00000
+ 1429 = 1.00000
+ 1430 = 1.00000
+ 1433 = 1.00000
+ 1435 = 1.00000
+ 1434 = 1.00000
+ 1436 = 1.00000
+ 1445 = 1.00000
+ 1447 = 1.00000
+ 1446 = 1.00000
+ 1448 = 1.00000
+ 1457 = 1.00000
+ 1459 = 1.00000
+ 1458 = 1.00000
+ 1460 = 1.00000
+ 1465 = 1.00000
+ 1469 = 1.00000
+ 1466 = 1.00000
+ 1470 = 1.00000
+ 1467 = 1.00000
+ 1471 = 1.00000
+ 1468 = 1.00000
+ 1472 = 1.00000
+ 1533 = 1.00000
+ 1535 = 1.00000
+ 1545 = 1.00000
+ 1549 = 1.00000
+ 1546 = 1.00000
+ 1550 = 1.00000
+ 1557 = 1.00000
+ 1561 = 1.00000
+ 1558 = 1.00000
+ 1562 = 1.00000
+ 1581 = 1.00000
+ 1589 = 1.00000
+ 1582 = 1.00000
+ 1590 = 1.00000
+ 1583 = 1.00000
+ 1591 = 1.00000
+ 1584 = 1.00000
+ 1592 = 1.00000
+ 1641 = 1.00000
+ 1642 = 1.00000
+ 1643 = 1.00000
+ 1645 = 1.00000
+ 1646 = 1.00000
+ 1649 = 1.00000
+ 1651 = 1.00000
+ 1650 = 1.00000
+ 1652 = 1.00000
+ 1653 = 1.00000
+ 1657 = 1.00000
+ 1654 = 1.00000
+ 1658 = 1.00000
+ 1665 = 1.00000
+ 1667 = 1.00000
+ 1669 = 1.00000
+ 1666 = 1.00000
+ 1668 = 1.00000
+ 1670 = 1.00000
+ 1673 = 1.00000
+ 1675 = 1.00000
+ 1674 = 1.00000
+ 1676 = 1.00000
+ 1681 = 1.00000
+ 1685 = 1.00000
+ 1682 = 1.00000
+ 1686 = 1.00000
+ 1683 = 1.00000
+ 1687 = 1.00000
+ 1684 = 1.00000
+ 1688 = 1.00000
+ 1689 = 1.00000
+ 1697 = 1.00000
+ 1690 = 1.00000
+ 1698 = 1.00000
+ 1691 = 1.00000
+ 1699 = 1.00000
+ 1692 = 1.00000
+ 1700 = 1.00000
+ 1831 = 1.00000
+ 1832 = 1.00000
+ 1835 = 1.00000
+ 1837 = 1.00000
+ 1836 = 1.00000
+ 1838 = 1.00000
+ 1847 = 1.00000
+ 1849 = 1.00000
+ 1848 = 1.00000
+ 1850 = 1.00000
+ 1855 = 1.00000
+ 1859 = 1.00000
+ 1856 = 1.00000
+ 1860 = 1.00000
+ 1857 = 1.00000
+ 1861 = 1.00000
+ 1858 = 1.00000
+ 1862 = 1.00000
+ 1912 = 1.00000
+ 1913 = 1.00000
+ 1918 = 1.00000
+ 1919 = 1.00000
+ 1925 = 1.00000
+ 1927 = 1.00000
+ 1926 = 1.00000
+ 1928 = 1.00000
+ 1943 = 1.00000
+ 1945 = 1.00000
+ 1944 = 1.00000
+ 1946 = 1.00000
+ 1961 = 1.00000
+ 1963 = 1.00000
+ 1962 = 1.00000
+ 1964 = 1.00000
+ 1975 = 1.00000
+ 1979 = 1.00000
+ 1976 = 1.00000
+ 1980 = 1.00000
+ 1977 = 1.00000
+ 1981 = 1.00000
+ 1978 = 1.00000
+ 1982 = 1.00000
+ 2163 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2166 = 1.00000
+ 2168 = 1.00000
+ 2169 = 1.00000
+ 2170 = 1.00000
+ 2171 = 1.00000
+ 2172 = 1.00000
+ 2174 = 1.00000
+ 2177 = 1.00000
+ 2179 = 1.00000
+ 2178 = 1.00000
+ 2180 = 1.00000
+ 2187 = 1.00000
+ 2191 = 1.00000
+ 2188 = 1.00000
+ 2192 = 1.00000
+ 2195 = 1.00000
+ 2197 = 1.00000
+ 2196 = 1.00000
+ 2198 = 1.00000
+ 2205 = 1.00000
+ 2209 = 1.00000
+ 2206 = 1.00000
+ 2210 = 1.00000
+ 2211 = 1.00000
+ 2213 = 1.00000
+ 2215 = 1.00000
+ 2212 = 1.00000
+ 2214 = 1.00000
+ 2216 = 1.00000
+ 2217 = 1.00000
+ 2221 = 1.00000
+ 2218 = 1.00000
+ 2222 = 1.00000
+ 2227 = 1.00000
+ 2231 = 1.00000
+ 2228 = 1.00000
+ 2232 = 1.00000
+ 2229 = 1.00000
+ 2233 = 1.00000
+ 2230 = 1.00000
+ 2234 = 1.00000
+ 2247 = 1.00000
+ 2255 = 1.00000
+ 2248 = 1.00000
+ 2256 = 1.00000
+ 2249 = 1.00000
+ 2257 = 1.00000
+ 2250 = 1.00000
+ 2258 = 1.00000
+ 2307 = 1.00000
+ 2309 = 1.00000
+ 2310 = 1.00000
+ 2312 = 1.00000
+ 2319 = 1.00000
+ 2323 = 1.00000
+ 2320 = 1.00000
+ 2324 = 1.00000
+ 2331 = 1.00000
+ 2335 = 1.00000
+ 2332 = 1.00000
+ 2336 = 1.00000
+ 2337 = 1.00000
+ 2341 = 1.00000
+ 2338 = 1.00000
+ 2342 = 1.00000
+ 2355 = 1.00000
+ 2363 = 1.00000
+ 2356 = 1.00000
+ 2364 = 1.00000
+ 2357 = 1.00000
+ 2365 = 1.00000
+ 2358 = 1.00000
+ 2366 = 1.00000
+ 2416 = 1.00000
+ 2417 = 1.00000
+ 2423 = 1.00000
+ 2425 = 1.00000
+ 2424 = 1.00000
+ 2426 = 1.00000
+ 2441 = 1.00000
+ 2443 = 1.00000
+ 2442 = 1.00000
+ 2444 = 1.00000
+ 2455 = 1.00000
+ 2459 = 1.00000
+ 2456 = 1.00000
+ 2460 = 1.00000
+ 2457 = 1.00000
+ 2461 = 1.00000
+ 2458 = 1.00000
+ 2462 = 1.00000
+ 2604 = 1.00000
+ 2605 = 1.00000
+ 2606 = 1.00000
+ 2607 = 1.00000
+ 2609 = 1.00000
+ 2612 = 1.00000
+ 2614 = 1.00000
+ 2613 = 1.00000
+ 2615 = 1.00000
+ 2622 = 1.00000
+ 2626 = 1.00000
+ 2623 = 1.00000
+ 2627 = 1.00000
+ 2628 = 1.00000
+ 2630 = 1.00000
+ 2632 = 1.00000
+ 2629 = 1.00000
+ 2631 = 1.00000
+ 2633 = 1.00000
+ 2634 = 1.00000
+ 2638 = 1.00000
+ 2635 = 1.00000
+ 2639 = 1.00000
+ 2644 = 1.00000
+ 2648 = 1.00000
+ 2645 = 1.00000
+ 2649 = 1.00000
+ 2646 = 1.00000
+ 2650 = 1.00000
+ 2647 = 1.00000
+ 2651 = 1.00000
+ 2664 = 1.00000
+ 2672 = 1.00000
+ 2665 = 1.00000
+ 2673 = 1.00000
+ 2666 = 1.00000
+ 2674 = 1.00000
+ 2667 = 1.00000
+ 2675 = 1.00000
+ 2712 = 1.00000
+ 2714 = 1.00000
+ 2721 = 1.00000
+ 2725 = 1.00000
+ 2722 = 1.00000
+ 2726 = 1.00000
+ 2727 = 1.00000
+ 2731 = 1.00000
+ 2728 = 1.00000
+ 2732 = 1.00000
+ 2745 = 1.00000
+ 2753 = 1.00000
+ 2746 = 1.00000
+ 2754 = 1.00000
+ 2747 = 1.00000
+ 2755 = 1.00000
+ 2748 = 1.00000
+ 2756 = 1.00000
+ 2902 = 1.00000
+ 2903 = 1.00000
+ 2905 = 1.00000
+ 2906 = 1.00000
+ 2909 = 1.00000
+ 2911 = 1.00000
+ 2910 = 1.00000
+ 2912 = 1.00000
+ 2921 = 1.00000
+ 2923 = 1.00000
+ 2922 = 1.00000
+ 2924 = 1.00000
+ 2933 = 1.00000
+ 2935 = 1.00000
+ 2934 = 1.00000
+ 2936 = 1.00000
+ 2941 = 1.00000
+ 2945 = 1.00000
+ 2942 = 1.00000
+ 2946 = 1.00000
+ 2943 = 1.00000
+ 2947 = 1.00000
+ 2944 = 1.00000
+ 2948 = 1.00000
+ 3009 = 1.00000
+ 3011 = 1.00000
+ 3012 = 1.00000
+ 3014 = 1.00000
+ 3021 = 1.00000
+ 3025 = 1.00000
+ 3022 = 1.00000
+ 3026 = 1.00000
+ 3033 = 1.00000
+ 3037 = 1.00000
+ 3034 = 1.00000
+ 3038 = 1.00000
+ 3039 = 1.00000
+ 3043 = 1.00000
+ 3040 = 1.00000
+ 3044 = 1.00000
+ 3057 = 1.00000
+ 3065 = 1.00000
+ 3058 = 1.00000
+ 3066 = 1.00000
+ 3059 = 1.00000
+ 3067 = 1.00000
+ 3060 = 1.00000
+ 3068 = 1.00000
+ 3117 = 1.00000
+ 3118 = 1.00000
+ 3119 = 1.00000
+ 3120 = 1.00000
+ 3121 = 1.00000
+ 3122 = 1.00000
+ 3125 = 1.00000
+ 3127 = 1.00000
+ 3126 = 1.00000
+ 3128 = 1.00000
+ 3129 = 1.00000
+ 3133 = 1.00000
+ 3130 = 1.00000
+ 3134 = 1.00000
+ 3137 = 1.00000
+ 3139 = 1.00000
+ 3138 = 1.00000
+ 3140 = 1.00000
+ 3141 = 1.00000
+ 3145 = 1.00000
+ 3142 = 1.00000
+ 3146 = 1.00000
+ 3147 = 1.00000
+ 3149 = 1.00000
+ 3151 = 1.00000
+ 3148 = 1.00000
+ 3150 = 1.00000
+ 3152 = 1.00000
+ 3157 = 1.00000
+ 3161 = 1.00000
+ 3158 = 1.00000
+ 3162 = 1.00000
+ 3159 = 1.00000
+ 3163 = 1.00000
+ 3160 = 1.00000
+ 3164 = 1.00000
+ 3165 = 1.00000
+ 3173 = 1.00000
+ 3166 = 1.00000
+ 3174 = 1.00000
+ 3167 = 1.00000
+ 3175 = 1.00000
+ 3168 = 1.00000
+ 3176 = 1.00000
+ 3307 = 1.00000
+ 3308 = 1.00000
+ 3311 = 1.00000
+ 3313 = 1.00000
+ 3312 = 1.00000
+ 3314 = 1.00000
+ 3323 = 1.00000
+ 3325 = 1.00000
+ 3324 = 1.00000
+ 3326 = 1.00000
+ 3331 = 1.00000
+ 3335 = 1.00000
+ 3332 = 1.00000
+ 3336 = 1.00000
+ 3333 = 1.00000
+ 3337 = 1.00000
+ 3334 = 1.00000
+ 3338 = 1.00000
+ 3387 = 1.00000
+ 3389 = 1.00000
+ 3396 = 1.00000
+ 3400 = 1.00000
+ 3397 = 1.00000
+ 3401 = 1.00000
+ 3402 = 1.00000
+ 3406 = 1.00000
+ 3403 = 1.00000
+ 3407 = 1.00000
+ 3420 = 1.00000
+ 3428 = 1.00000
+ 3421 = 1.00000
+ 3429 = 1.00000
+ 3422 = 1.00000
+ 3430 = 1.00000
+ 3423 = 1.00000
+ 3431 = 1.00000
+ 3468 = 1.00000
+ 3469 = 1.00000
+ 3470 = 1.00000
+ 3473 = 1.00000
+ 3475 = 1.00000
+ 3474 = 1.00000
+ 3476 = 1.00000
+ 3477 = 1.00000
+ 3481 = 1.00000
+ 3478 = 1.00000
+ 3482 = 1.00000
+ 3483 = 1.00000
+ 3485 = 1.00000
+ 3487 = 1.00000
+ 3484 = 1.00000
+ 3486 = 1.00000
+ 3488 = 1.00000
+ 3493 = 1.00000
+ 3497 = 1.00000
+ 3494 = 1.00000
+ 3498 = 1.00000
+ 3495 = 1.00000
+ 3499 = 1.00000
+ 3496 = 1.00000
+ 3500 = 1.00000
+ 3501 = 1.00000
+ 3509 = 1.00000
+ 3502 = 1.00000
+ 3510 = 1.00000
+ 3503 = 1.00000
+ 3511 = 1.00000
+ 3504 = 1.00000
+ 3512 = 1.00000
+ 3549 = 1.00000
+ 3550 = 1.00000
+ 3551 = 1.00000
+ 3552 = 1.00000
+ 3554 = 1.00000
+ 3556 = 1.00000
+ 3557 = 1.00000
+ 3563 = 1.00000
+ 3565 = 1.00000
+ 3564 = 1.00000
+ 3566 = 1.00000
+ 3573 = 1.00000
+ 3577 = 1.00000
+ 3574 = 1.00000
+ 3578 = 1.00000
+ 3585 = 1.00000
+ 3587 = 1.00000
+ 3589 = 1.00000
+ 3586 = 1.00000
+ 3588 = 1.00000
+ 3590 = 1.00000
+ 3591 = 1.00000
+ 3595 = 1.00000
+ 3592 = 1.00000
+ 3596 = 1.00000
+ 3599 = 1.00000
+ 3601 = 1.00000
+ 3600 = 1.00000
+ 3602 = 1.00000
+ 3613 = 1.00000
+ 3617 = 1.00000
+ 3614 = 1.00000
+ 3618 = 1.00000
+ 3615 = 1.00000
+ 3619 = 1.00000
+ 3616 = 1.00000
+ 3620 = 1.00000
+ 3633 = 1.00000
+ 3641 = 1.00000
+ 3634 = 1.00000
+ 3642 = 1.00000
+ 3635 = 1.00000
+ 3643 = 1.00000
+ 3636 = 1.00000
+ 3644 = 1.00000
+ 3693 = 1.00000
+ 3695 = 1.00000
+ 3705 = 1.00000
+ 3709 = 1.00000
+ 3706 = 1.00000
+ 3710 = 1.00000
+ 3717 = 1.00000
+ 3721 = 1.00000
+ 3718 = 1.00000
+ 3722 = 1.00000
+ 3741 = 1.00000
+ 3749 = 1.00000
+ 3742 = 1.00000
+ 3750 = 1.00000
+ 3743 = 1.00000
+ 3751 = 1.00000
+ 3744 = 1.00000
+ 3752 = 1.00000
+ 3802 = 1.00000
+ 3803 = 1.00000
+ 3809 = 1.00000
+ 3811 = 1.00000
+ 3810 = 1.00000
+ 3812 = 1.00000
+ 3827 = 1.00000
+ 3829 = 1.00000
+ 3828 = 1.00000
+ 3830 = 1.00000
+ 3841 = 1.00000
+ 3845 = 1.00000
+ 3842 = 1.00000
+ 3846 = 1.00000
+ 3843 = 1.00000
+ 3847 = 1.00000
+ 3844 = 1.00000
+ 3848 = 1.00000
+ 3990 = 1.00000
+ 3991 = 1.00000
+ 3992 = 1.00000
+ 3993 = 1.00000
+ 3995 = 1.00000
+ 3997 = 1.00000
+ 3998 = 1.00000
+ 4004 = 1.00000
+ 4006 = 1.00000
+ 4005 = 1.00000
+ 4007 = 1.00000
+ 4014 = 1.00000
+ 4018 = 1.00000
+ 4015 = 1.00000
+ 4019 = 1.00000
+ 4026 = 1.00000
+ 4028 = 1.00000
+ 4030 = 1.00000
+ 4027 = 1.00000
+ 4029 = 1.00000
+ 4031 = 1.00000
+ 4032 = 1.00000
+ 4036 = 1.00000
+ 4033 = 1.00000
+ 4037 = 1.00000
+ 4040 = 1.00000
+ 4042 = 1.00000
+ 4041 = 1.00000
+ 4043 = 1.00000
+ 4054 = 1.00000
+ 4058 = 1.00000
+ 4055 = 1.00000
+ 4059 = 1.00000
+ 4056 = 1.00000
+ 4060 = 1.00000
+ 4057 = 1.00000
+ 4061 = 1.00000
+ 4074 = 1.00000
+ 4082 = 1.00000
+ 4075 = 1.00000
+ 4083 = 1.00000
+ 4076 = 1.00000
+ 4084 = 1.00000
+ 4077 = 1.00000
+ 4085 = 1.00000
+ 4134 = 1.00000
+ 4136 = 1.00000
+ 4146 = 1.00000
+ 4150 = 1.00000
+ 4147 = 1.00000
+ 4151 = 1.00000
+ 4158 = 1.00000
+ 4162 = 1.00000
+ 4159 = 1.00000
+ 4163 = 1.00000
+ 4182 = 1.00000
+ 4190 = 1.00000
+ 4183 = 1.00000
+ 4191 = 1.00000
+ 4184 = 1.00000
+ 4192 = 1.00000
+ 4185 = 1.00000
+ 4193 = 1.00000
+ 4243 = 1.00000
+ 4244 = 1.00000
+ 4250 = 1.00000
+ 4252 = 1.00000
+ 4251 = 1.00000
+ 4253 = 1.00000
+ 4268 = 1.00000
+ 4270 = 1.00000
+ 4269 = 1.00000
+ 4271 = 1.00000
+ 4282 = 1.00000
+ 4286 = 1.00000
+ 4283 = 1.00000
+ 4287 = 1.00000
+ 4284 = 1.00000
+ 4288 = 1.00000
+ 4285 = 1.00000
+ 4289 = 1.00000
+ 4431 = 1.00000
+ 4433 = 1.00000
+ 4443 = 1.00000
+ 4447 = 1.00000
+ 4444 = 1.00000
+ 4448 = 1.00000
+ 4455 = 1.00000
+ 4459 = 1.00000
+ 4456 = 1.00000
+ 4460 = 1.00000
+ 4479 = 1.00000
+ 4487 = 1.00000
+ 4480 = 1.00000
+ 4488 = 1.00000
+ 4481 = 1.00000
+ 4489 = 1.00000
+ 4482 = 1.00000
+ 4490 = 1.00000
+ 4539 = 1.00000
+ 4540 = 1.00000
+ 4541 = 1.00000
+ 4543 = 1.00000
+ 4544 = 1.00000
+ 4547 = 1.00000
+ 4549 = 1.00000
+ 4548 = 1.00000
+ 4550 = 1.00000
+ 4551 = 1.00000
+ 4555 = 1.00000
+ 4552 = 1.00000
+ 4556 = 1.00000
+ 4563 = 1.00000
+ 4565 = 1.00000
+ 4567 = 1.00000
+ 4564 = 1.00000
+ 4566 = 1.00000
+ 4568 = 1.00000
+ 4571 = 1.00000
+ 4573 = 1.00000
+ 4572 = 1.00000
+ 4574 = 1.00000
+ 4579 = 1.00000
+ 4583 = 1.00000
+ 4580 = 1.00000
+ 4584 = 1.00000
+ 4581 = 1.00000
+ 4585 = 1.00000
+ 4582 = 1.00000
+ 4586 = 1.00000
+ 4587 = 1.00000
+ 4595 = 1.00000
+ 4588 = 1.00000
+ 4596 = 1.00000
+ 4589 = 1.00000
+ 4597 = 1.00000
+ 4590 = 1.00000
+ 4598 = 1.00000
+ 4729 = 1.00000
+ 4730 = 1.00000
+ 4733 = 1.00000
+ 4735 = 1.00000
+ 4734 = 1.00000
+ 4736 = 1.00000
+ 4745 = 1.00000
+ 4747 = 1.00000
+ 4746 = 1.00000
+ 4748 = 1.00000
+ 4753 = 1.00000
+ 4757 = 1.00000
+ 4754 = 1.00000
+ 4758 = 1.00000
+ 4755 = 1.00000
+ 4759 = 1.00000
+ 4756 = 1.00000
+ 4760 = 1.00000
+ 4809 = 1.00000
+ 4811 = 1.00000
+ 4821 = 1.00000
+ 4825 = 1.00000
+ 4822 = 1.00000
+ 4826 = 1.00000
+ 4833 = 1.00000
+ 4837 = 1.00000
+ 4834 = 1.00000
+ 4838 = 1.00000
+ 4857 = 1.00000
+ 4865 = 1.00000
+ 4858 = 1.00000
+ 4866 = 1.00000
+ 4859 = 1.00000
+ 4867 = 1.00000
+ 4860 = 1.00000
+ 4868 = 1.00000
+ 4917 = 1.00000
+ 4918 = 1.00000
+ 4919 = 1.00000
+ 4921 = 1.00000
+ 4922 = 1.00000
+ 4925 = 1.00000
+ 4927 = 1.00000
+ 4926 = 1.00000
+ 4928 = 1.00000
+ 4929 = 1.00000
+ 4933 = 1.00000
+ 4930 = 1.00000
+ 4934 = 1.00000
+ 4941 = 1.00000
+ 4943 = 1.00000
+ 4945 = 1.00000
+ 4942 = 1.00000
+ 4944 = 1.00000
+ 4946 = 1.00000
+ 4949 = 1.00000
+ 4951 = 1.00000
+ 4950 = 1.00000
+ 4952 = 1.00000
+ 4957 = 1.00000
+ 4961 = 1.00000
+ 4958 = 1.00000
+ 4962 = 1.00000
+ 4959 = 1.00000
+ 4963 = 1.00000
+ 4960 = 1.00000
+ 4964 = 1.00000
+ 4965 = 1.00000
+ 4973 = 1.00000
+ 4966 = 1.00000
+ 4974 = 1.00000
+ 4967 = 1.00000
+ 4975 = 1.00000
+ 4968 = 1.00000
+ 4976 = 1.00000
+ 5107 = 1.00000
+ 5108 = 1.00000
+ 5111 = 1.00000
+ 5113 = 1.00000
+ 5112 = 1.00000
+ 5114 = 1.00000
+ 5123 = 1.00000
+ 5125 = 1.00000
+ 5124 = 1.00000
+ 5126 = 1.00000
+ 5131 = 1.00000
+ 5135 = 1.00000
+ 5132 = 1.00000
+ 5136 = 1.00000
+ 5133 = 1.00000
+ 5137 = 1.00000
+ 5134 = 1.00000
+ 5138 = 1.00000
+ 5188 = 1.00000
+ 5189 = 1.00000
+ 5195 = 1.00000
+ 5197 = 1.00000
+ 5196 = 1.00000
+ 5198 = 1.00000
+ 5213 = 1.00000
+ 5215 = 1.00000
+ 5214 = 1.00000
+ 5216 = 1.00000
+ 5227 = 1.00000
+ 5231 = 1.00000
+ 5228 = 1.00000
+ 5232 = 1.00000
+ 5229 = 1.00000
+ 5233 = 1.00000
+ 5230 = 1.00000
+ 5234 = 1.00000
+ 5376 = 1.00000
+ 5377 = 1.00000
+ 5378 = 1.00000
+ 5379 = 1.00000
+ 5381 = 1.00000
+ 5384 = 1.00000
+ 5386 = 1.00000
+ 5385 = 1.00000
+ 5387 = 1.00000
+ 5394 = 1.00000
+ 5398 = 1.00000
+ 5395 = 1.00000
+ 5399 = 1.00000
+ 5400 = 1.00000
+ 5402 = 1.00000
+ 5404 = 1.00000
+ 5401 = 1.00000
+ 5403 = 1.00000
+ 5405 = 1.00000
+ 5406 = 1.00000
+ 5410 = 1.00000
+ 5407 = 1.00000
+ 5411 = 1.00000
+ 5416 = 1.00000
+ 5420 = 1.00000
+ 5417 = 1.00000
+ 5421 = 1.00000
+ 5418 = 1.00000
+ 5422 = 1.00000
+ 5419 = 1.00000
+ 5423 = 1.00000
+ 5436 = 1.00000
+ 5444 = 1.00000
+ 5437 = 1.00000
+ 5445 = 1.00000
+ 5438 = 1.00000
+ 5446 = 1.00000
+ 5439 = 1.00000
+ 5447 = 1.00000
+ 5484 = 1.00000
+ 5486 = 1.00000
+ 5493 = 1.00000
+ 5497 = 1.00000
+ 5494 = 1.00000
+ 5498 = 1.00000
+ 5499 = 1.00000
+ 5503 = 1.00000
+ 5500 = 1.00000
+ 5504 = 1.00000
+ 5517 = 1.00000
+ 5525 = 1.00000
+ 5518 = 1.00000
+ 5526 = 1.00000
+ 5519 = 1.00000
+ 5527 = 1.00000
+ 5520 = 1.00000
+ 5528 = 1.00000
+ 5566 = 1.00000
+ 5567 = 1.00000
+ 5573 = 1.00000
+ 5575 = 1.00000
+ 5574 = 1.00000
+ 5576 = 1.00000
+ 5591 = 1.00000
+ 5593 = 1.00000
+ 5592 = 1.00000
+ 5594 = 1.00000
+ 5605 = 1.00000
+ 5609 = 1.00000
+ 5606 = 1.00000
+ 5610 = 1.00000
+ 5607 = 1.00000
+ 5611 = 1.00000
+ 5608 = 1.00000
+ 5612 = 1.00000
+ 5754 = 1.00000
+ 5755 = 1.00000
+ 5756 = 1.00000
+ 5757 = 1.00000
+ 5759 = 1.00000
+ 5762 = 1.00000
+ 5764 = 1.00000
+ 5763 = 1.00000
+ 5765 = 1.00000
+ 5772 = 1.00000
+ 5776 = 1.00000
+ 5773 = 1.00000
+ 5777 = 1.00000
+ 5778 = 1.00000
+ 5780 = 1.00000
+ 5782 = 1.00000
+ 5779 = 1.00000
+ 5781 = 1.00000
+ 5783 = 1.00000
+ 5784 = 1.00000
+ 5788 = 1.00000
+ 5785 = 1.00000
+ 5789 = 1.00000
+ 5794 = 1.00000
+ 5798 = 1.00000
+ 5795 = 1.00000
+ 5799 = 1.00000
+ 5796 = 1.00000
+ 5800 = 1.00000
+ 5797 = 1.00000
+ 5801 = 1.00000
+ 5814 = 1.00000
+ 5822 = 1.00000
+ 5815 = 1.00000
+ 5823 = 1.00000
+ 5816 = 1.00000
+ 5824 = 1.00000
+ 5817 = 1.00000
+ 5825 = 1.00000
+ 5862 = 1.00000
+ 5864 = 1.00000
+ 5871 = 1.00000
+ 5875 = 1.00000
+ 5872 = 1.00000
+ 5876 = 1.00000
+ 5877 = 1.00000
+ 5881 = 1.00000
+ 5878 = 1.00000
+ 5882 = 1.00000
+ 5895 = 1.00000
+ 5903 = 1.00000
+ 5896 = 1.00000
+ 5904 = 1.00000
+ 5897 = 1.00000
+ 5905 = 1.00000
+ 5898 = 1.00000
+ 5906 = 1.00000
+ 6025 = 1.00000
+ 6026 = 1.00000
+ 6029 = 1.00000
+ 6031 = 1.00000
+ 6030 = 1.00000
+ 6032 = 1.00000
+ 6041 = 1.00000
+ 6043 = 1.00000
+ 6042 = 1.00000
+ 6044 = 1.00000
+ 6049 = 1.00000
+ 6053 = 1.00000
+ 6050 = 1.00000
+ 6054 = 1.00000
+ 6051 = 1.00000
+ 6055 = 1.00000
+ 6052 = 1.00000
+ 6056 = 1.00000
+ 6105 = 1.00000
+ 6107 = 1.00000
+ 6114 = 1.00000
+ 6118 = 1.00000
+ 6115 = 1.00000
+ 6119 = 1.00000
+ 6120 = 1.00000
+ 6124 = 1.00000
+ 6121 = 1.00000
+ 6125 = 1.00000
+ 6138 = 1.00000
+ 6146 = 1.00000
+ 6139 = 1.00000
+ 6147 = 1.00000
+ 6140 = 1.00000
+ 6148 = 1.00000
+ 6141 = 1.00000
+ 6149 = 1.00000
+ 6186 = 1.00000
+ 6187 = 1.00000
+ 6188 = 1.00000
+ 6191 = 1.00000
+ 6193 = 1.00000
+ 6192 = 1.00000
+ 6194 = 1.00000
+ 6195 = 1.00000
+ 6199 = 1.00000
+ 6196 = 1.00000
+ 6200 = 1.00000
+ 6201 = 1.00000
+ 6203 = 1.00000
+ 6205 = 1.00000
+ 6202 = 1.00000
+ 6204 = 1.00000
+ 6206 = 1.00000
+ 6211 = 1.00000
+ 6215 = 1.00000
+ 6212 = 1.00000
+ 6216 = 1.00000
+ 6213 = 1.00000
+ 6217 = 1.00000
+ 6214 = 1.00000
+ 6218 = 1.00000
+ 6219 = 1.00000
+ 6227 = 1.00000
+ 6220 = 1.00000
+ 6228 = 1.00000
+ 6221 = 1.00000
+ 6229 = 1.00000
+ 6222 = 1.00000
+ 6230 = 1.00000
+ 6349 = 1.00000
+ 6350 = 1.00000
+ 6353 = 1.00000
+ 6355 = 1.00000
+ 6354 = 1.00000
+ 6356 = 1.00000
+ 6365 = 1.00000
+ 6367 = 1.00000
+ 6366 = 1.00000
+ 6368 = 1.00000
+ 6373 = 1.00000
+ 6377 = 1.00000
+ 6374 = 1.00000
+ 6378 = 1.00000
+ 6375 = 1.00000
+ 6379 = 1.00000
+ 6376 = 1.00000
+ 6380 = 1.00000
+ 6429 = 1.00000
+ 6431 = 1.00000
+ 6438 = 1.00000
+ 6442 = 1.00000
+ 6439 = 1.00000
+ 6443 = 1.00000
+ 6444 = 1.00000
+ 6448 = 1.00000
+ 6445 = 1.00000
+ 6449 = 1.00000
+ 6462 = 1.00000
+ 6470 = 1.00000
+ 6463 = 1.00000
+ 6471 = 1.00000
+ 6464 = 1.00000
+ 6472 = 1.00000
+ 6465 = 1.00000
+ 6473 = 1.00000
+ 6510 = 1.00000
+ 6511 = 1.00000
+ 6512 = 1.00000
+ 6515 = 1.00000
+ 6517 = 1.00000
+ 6516 = 1.00000
+ 6518 = 1.00000
+ 6519 = 1.00000
+ 6523 = 1.00000
+ 6520 = 1.00000
+ 6524 = 1.00000
+ 6525 = 1.00000
+ 6527 = 1.00000
+ 6529 = 1.00000
+ 6526 = 1.00000
+ 6528 = 1.00000
+ 6530 = 1.00000
+ 6535 = 1.00000
+ 6539 = 1.00000
+ 6536 = 1.00000
+ 6540 = 1.00000
+ 6537 = 1.00000
+ 6541 = 1.00000
+ 6538 = 1.00000
+ 6542 = 1.00000
+ 6543 = 1.00000
+ 6551 = 1.00000
+ 6544 = 1.00000
+ 6552 = 1.00000
+ 6545 = 1.00000
+ 6553 = 1.00000
+ 6546 = 1.00000
+ 6554 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=4
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 3 = 1.00000
+ 4 = 1.00000
+ 5 = 1.00000
+ 6 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 9 = 1.00000
+ 10 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 15 = 1.00000
+ 17 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 24 = 1.00000
+ 26 = 1.00000
+ 28 = 1.00000
+ 25 = 1.00000
+ 27 = 1.00000
+ 29 = 1.00000
+ 30 = 1.00000
+ 32 = 1.00000
+ 31 = 1.00000
+ 33 = 1.00000
+ 36 = 1.00000
+ 38 = 1.00000
+ 40 = 1.00000
+ 37 = 1.00000
+ 39 = 1.00000
+ 41 = 1.00000
+ 42 = 1.00000
+ 44 = 1.00000
+ 43 = 1.00000
+ 45 = 1.00000
+ 50 = 1.00000
+ 52 = 1.00000
+ 51 = 1.00000
+ 53 = 1.00000
+ 60 = 1.00000
+ 64 = 1.00000
+ 61 = 1.00000
+ 65 = 1.00000
+ 72 = 1.00000
+ 74 = 1.00000
+ 76 = 1.00000
+ 73 = 1.00000
+ 75 = 1.00000
+ 77 = 1.00000
+ 78 = 1.00000
+ 82 = 1.00000
+ 79 = 1.00000
+ 83 = 1.00000
+ 86 = 1.00000
+ 88 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 100 = 1.00000
+ 104 = 1.00000
+ 101 = 1.00000
+ 105 = 1.00000
+ 102 = 1.00000
+ 106 = 1.00000
+ 103 = 1.00000
+ 107 = 1.00000
+ 120 = 1.00000
+ 128 = 1.00000
+ 121 = 1.00000
+ 129 = 1.00000
+ 122 = 1.00000
+ 130 = 1.00000
+ 123 = 1.00000
+ 131 = 1.00000
+ 144 = 1.00000
+ 148 = 1.00000
+ 145 = 1.00000
+ 149 = 1.00000
+ 146 = 1.00000
+ 150 = 1.00000
+ 147 = 1.00000
+ 151 = 1.00000
+ 192 = 1.00000
+ 193 = 1.00000
+ 194 = 1.00000
+ 195 = 1.00000
+ 196 = 1.00000
+ 198 = 1.00000
+ 200 = 1.00000
+ 204 = 1.00000
+ 206 = 1.00000
+ 205 = 1.00000
+ 207 = 1.00000
+ 210 = 1.00000
+ 212 = 1.00000
+ 214 = 1.00000
+ 211 = 1.00000
+ 213 = 1.00000
+ 215 = 1.00000
+ 216 = 1.00000
+ 218 = 1.00000
+ 217 = 1.00000
+ 219 = 1.00000
+ 228 = 1.00000
+ 232 = 1.00000
+ 229 = 1.00000
+ 233 = 1.00000
+ 240 = 1.00000
+ 244 = 1.00000
+ 241 = 1.00000
+ 245 = 1.00000
+ 264 = 1.00000
+ 272 = 1.00000
+ 265 = 1.00000
+ 273 = 1.00000
+ 266 = 1.00000
+ 274 = 1.00000
+ 267 = 1.00000
+ 275 = 1.00000
+ 288 = 1.00000
+ 292 = 1.00000
+ 289 = 1.00000
+ 293 = 1.00000
+ 290 = 1.00000
+ 294 = 1.00000
+ 291 = 1.00000
+ 295 = 1.00000
+ 336 = 1.00000
+ 337 = 1.00000
+ 338 = 1.00000
+ 339 = 1.00000
+ 340 = 1.00000
+ 343 = 1.00000
+ 344 = 1.00000
+ 348 = 1.00000
+ 350 = 1.00000
+ 352 = 1.00000
+ 349 = 1.00000
+ 351 = 1.00000
+ 353 = 1.00000
+ 354 = 1.00000
+ 356 = 1.00000
+ 355 = 1.00000
+ 357 = 1.00000
+ 360 = 1.00000
+ 362 = 1.00000
+ 361 = 1.00000
+ 363 = 1.00000
+ 368 = 1.00000
+ 370 = 1.00000
+ 369 = 1.00000
+ 371 = 1.00000
+ 386 = 1.00000
+ 388 = 1.00000
+ 387 = 1.00000
+ 389 = 1.00000
+ 400 = 1.00000
+ 404 = 1.00000
+ 401 = 1.00000
+ 405 = 1.00000
+ 402 = 1.00000
+ 406 = 1.00000
+ 403 = 1.00000
+ 407 = 1.00000
+ 432 = 1.00000
+ 436 = 1.00000
+ 433 = 1.00000
+ 437 = 1.00000
+ 434 = 1.00000
+ 438 = 1.00000
+ 435 = 1.00000
+ 439 = 1.00000
+ 480 = 1.00000
+ 481 = 1.00000
+ 486 = 1.00000
+ 488 = 1.00000
+ 487 = 1.00000
+ 489 = 1.00000
+ 492 = 1.00000
+ 494 = 1.00000
+ 493 = 1.00000
+ 495 = 1.00000
+ 540 = 1.00000
+ 544 = 1.00000
+ 541 = 1.00000
+ 545 = 1.00000
+ 542 = 1.00000
+ 546 = 1.00000
+ 543 = 1.00000
+ 547 = 1.00000
+ 588 = 1.00000
+ 589 = 1.00000
+ 590 = 1.00000
+ 591 = 1.00000
+ 593 = 1.00000
+ 595 = 1.00000
+ 596 = 1.00000
+ 602 = 1.00000
+ 604 = 1.00000
+ 603 = 1.00000
+ 605 = 1.00000
+ 612 = 1.00000
+ 616 = 1.00000
+ 613 = 1.00000
+ 617 = 1.00000
+ 624 = 1.00000
+ 626 = 1.00000
+ 628 = 1.00000
+ 625 = 1.00000
+ 627 = 1.00000
+ 629 = 1.00000
+ 630 = 1.00000
+ 634 = 1.00000
+ 631 = 1.00000
+ 635 = 1.00000
+ 638 = 1.00000
+ 640 = 1.00000
+ 639 = 1.00000
+ 641 = 1.00000
+ 652 = 1.00000
+ 656 = 1.00000
+ 653 = 1.00000
+ 657 = 1.00000
+ 654 = 1.00000
+ 658 = 1.00000
+ 655 = 1.00000
+ 659 = 1.00000
+ 672 = 1.00000
+ 680 = 1.00000
+ 673 = 1.00000
+ 681 = 1.00000
+ 674 = 1.00000
+ 682 = 1.00000
+ 675 = 1.00000
+ 683 = 1.00000
+ 732 = 1.00000
+ 734 = 1.00000
+ 744 = 1.00000
+ 748 = 1.00000
+ 745 = 1.00000
+ 749 = 1.00000
+ 756 = 1.00000
+ 760 = 1.00000
+ 757 = 1.00000
+ 761 = 1.00000
+ 780 = 1.00000
+ 788 = 1.00000
+ 781 = 1.00000
+ 789 = 1.00000
+ 782 = 1.00000
+ 790 = 1.00000
+ 783 = 1.00000
+ 791 = 1.00000
+ 841 = 1.00000
+ 842 = 1.00000
+ 848 = 1.00000
+ 850 = 1.00000
+ 849 = 1.00000
+ 851 = 1.00000
+ 866 = 1.00000
+ 868 = 1.00000
+ 867 = 1.00000
+ 869 = 1.00000
+ 880 = 1.00000
+ 884 = 1.00000
+ 881 = 1.00000
+ 885 = 1.00000
+ 882 = 1.00000
+ 886 = 1.00000
+ 883 = 1.00000
+ 887 = 1.00000
+ 1029 = 1.00000
+ 1030 = 1.00000
+ 1031 = 1.00000
+ 1032 = 1.00000
+ 1033 = 1.00000
+ 1035 = 1.00000
+ 1037 = 1.00000
+ 1041 = 1.00000
+ 1043 = 1.00000
+ 1042 = 1.00000
+ 1044 = 1.00000
+ 1047 = 1.00000
+ 1049 = 1.00000
+ 1051 = 1.00000
+ 1048 = 1.00000
+ 1050 = 1.00000
+ 1052 = 1.00000
+ 1053 = 1.00000
+ 1055 = 1.00000
+ 1054 = 1.00000
+ 1056 = 1.00000
+ 1065 = 1.00000
+ 1069 = 1.00000
+ 1066 = 1.00000
+ 1070 = 1.00000
+ 1077 = 1.00000
+ 1081 = 1.00000
+ 1078 = 1.00000
+ 1082 = 1.00000
+ 1101 = 1.00000
+ 1109 = 1.00000
+ 1102 = 1.00000
+ 1110 = 1.00000
+ 1103 = 1.00000
+ 1111 = 1.00000
+ 1104 = 1.00000
+ 1112 = 1.00000
+ 1125 = 1.00000
+ 1129 = 1.00000
+ 1126 = 1.00000
+ 1130 = 1.00000
+ 1127 = 1.00000
+ 1131 = 1.00000
+ 1128 = 1.00000
+ 1132 = 1.00000
+ 1173 = 1.00000
+ 1174 = 1.00000
+ 1175 = 1.00000
+ 1176 = 1.00000
+ 1177 = 1.00000
+ 1178 = 1.00000
+ 1179 = 1.00000
+ 1180 = 1.00000
+ 1181 = 1.00000
+ 1183 = 1.00000
+ 1184 = 1.00000
+ 1185 = 1.00000
+ 1187 = 1.00000
+ 1189 = 1.00000
+ 1186 = 1.00000
+ 1188 = 1.00000
+ 1190 = 1.00000
+ 1191 = 1.00000
+ 1193 = 1.00000
+ 1195 = 1.00000
+ 1192 = 1.00000
+ 1194 = 1.00000
+ 1196 = 1.00000
+ 1197 = 1.00000
+ 1199 = 1.00000
+ 1198 = 1.00000
+ 1200 = 1.00000
+ 1205 = 1.00000
+ 1207 = 1.00000
+ 1206 = 1.00000
+ 1208 = 1.00000
+ 1209 = 1.00000
+ 1213 = 1.00000
+ 1210 = 1.00000
+ 1214 = 1.00000
+ 1221 = 1.00000
+ 1223 = 1.00000
+ 1225 = 1.00000
+ 1222 = 1.00000
+ 1224 = 1.00000
+ 1226 = 1.00000
+ 1229 = 1.00000
+ 1231 = 1.00000
+ 1230 = 1.00000
+ 1232 = 1.00000
+ 1237 = 1.00000
+ 1241 = 1.00000
+ 1238 = 1.00000
+ 1242 = 1.00000
+ 1239 = 1.00000
+ 1243 = 1.00000
+ 1240 = 1.00000
+ 1244 = 1.00000
+ 1245 = 1.00000
+ 1253 = 1.00000
+ 1246 = 1.00000
+ 1254 = 1.00000
+ 1247 = 1.00000
+ 1255 = 1.00000
+ 1248 = 1.00000
+ 1256 = 1.00000
+ 1269 = 1.00000
+ 1273 = 1.00000
+ 1270 = 1.00000
+ 1274 = 1.00000
+ 1271 = 1.00000
+ 1275 = 1.00000
+ 1272 = 1.00000
+ 1276 = 1.00000
+ 1317 = 1.00000
+ 1318 = 1.00000
+ 1323 = 1.00000
+ 1325 = 1.00000
+ 1324 = 1.00000
+ 1326 = 1.00000
+ 1329 = 1.00000
+ 1331 = 1.00000
+ 1330 = 1.00000
+ 1332 = 1.00000
+ 1377 = 1.00000
+ 1381 = 1.00000
+ 1378 = 1.00000
+ 1382 = 1.00000
+ 1379 = 1.00000
+ 1383 = 1.00000
+ 1380 = 1.00000
+ 1384 = 1.00000
+ 1425 = 1.00000
+ 1426 = 1.00000
+ 1427 = 1.00000
+ 1429 = 1.00000
+ 1430 = 1.00000
+ 1431 = 1.00000
+ 1433 = 1.00000
+ 1435 = 1.00000
+ 1432 = 1.00000
+ 1434 = 1.00000
+ 1436 = 1.00000
+ 1437 = 1.00000
+ 1439 = 1.00000
+ 1438 = 1.00000
+ 1440 = 1.00000
+ 1445 = 1.00000
+ 1447 = 1.00000
+ 1446 = 1.00000
+ 1448 = 1.00000
+ 1457 = 1.00000
+ 1459 = 1.00000
+ 1458 = 1.00000
+ 1460 = 1.00000
+ 1465 = 1.00000
+ 1469 = 1.00000
+ 1466 = 1.00000
+ 1470 = 1.00000
+ 1467 = 1.00000
+ 1471 = 1.00000
+ 1468 = 1.00000
+ 1472 = 1.00000
+ 1485 = 1.00000
+ 1489 = 1.00000
+ 1486 = 1.00000
+ 1490 = 1.00000
+ 1487 = 1.00000
+ 1491 = 1.00000
+ 1488 = 1.00000
+ 1492 = 1.00000
+ 1533 = 1.00000
+ 1535 = 1.00000
+ 1545 = 1.00000
+ 1549 = 1.00000
+ 1546 = 1.00000
+ 1550 = 1.00000
+ 1557 = 1.00000
+ 1561 = 1.00000
+ 1558 = 1.00000
+ 1562 = 1.00000
+ 1581 = 1.00000
+ 1589 = 1.00000
+ 1582 = 1.00000
+ 1590 = 1.00000
+ 1583 = 1.00000
+ 1591 = 1.00000
+ 1584 = 1.00000
+ 1592 = 1.00000
+ 1641 = 1.00000
+ 1642 = 1.00000
+ 1643 = 1.00000
+ 1645 = 1.00000
+ 1646 = 1.00000
+ 1649 = 1.00000
+ 1651 = 1.00000
+ 1650 = 1.00000
+ 1652 = 1.00000
+ 1653 = 1.00000
+ 1657 = 1.00000
+ 1654 = 1.00000
+ 1658 = 1.00000
+ 1665 = 1.00000
+ 1667 = 1.00000
+ 1669 = 1.00000
+ 1666 = 1.00000
+ 1668 = 1.00000
+ 1670 = 1.00000
+ 1673 = 1.00000
+ 1675 = 1.00000
+ 1674 = 1.00000
+ 1676 = 1.00000
+ 1681 = 1.00000
+ 1685 = 1.00000
+ 1682 = 1.00000
+ 1686 = 1.00000
+ 1683 = 1.00000
+ 1687 = 1.00000
+ 1684 = 1.00000
+ 1688 = 1.00000
+ 1689 = 1.00000
+ 1697 = 1.00000
+ 1690 = 1.00000
+ 1698 = 1.00000
+ 1691 = 1.00000
+ 1699 = 1.00000
+ 1692 = 1.00000
+ 1700 = 1.00000
+ 1831 = 1.00000
+ 1832 = 1.00000
+ 1835 = 1.00000
+ 1837 = 1.00000
+ 1836 = 1.00000
+ 1838 = 1.00000
+ 1847 = 1.00000
+ 1849 = 1.00000
+ 1848 = 1.00000
+ 1850 = 1.00000
+ 1855 = 1.00000
+ 1859 = 1.00000
+ 1856 = 1.00000
+ 1860 = 1.00000
+ 1857 = 1.00000
+ 1861 = 1.00000
+ 1858 = 1.00000
+ 1862 = 1.00000
+ 1911 = 1.00000
+ 1912 = 1.00000
+ 1913 = 1.00000
+ 1914 = 1.00000
+ 1915 = 1.00000
+ 1918 = 1.00000
+ 1919 = 1.00000
+ 1923 = 1.00000
+ 1925 = 1.00000
+ 1927 = 1.00000
+ 1924 = 1.00000
+ 1926 = 1.00000
+ 1928 = 1.00000
+ 1929 = 1.00000
+ 1931 = 1.00000
+ 1930 = 1.00000
+ 1932 = 1.00000
+ 1935 = 1.00000
+ 1937 = 1.00000
+ 1936 = 1.00000
+ 1938 = 1.00000
+ 1943 = 1.00000
+ 1945 = 1.00000
+ 1944 = 1.00000
+ 1946 = 1.00000
+ 1961 = 1.00000
+ 1963 = 1.00000
+ 1962 = 1.00000
+ 1964 = 1.00000
+ 1975 = 1.00000
+ 1979 = 1.00000
+ 1976 = 1.00000
+ 1980 = 1.00000
+ 1977 = 1.00000
+ 1981 = 1.00000
+ 1978 = 1.00000
+ 1982 = 1.00000
+ 2007 = 1.00000
+ 2011 = 1.00000
+ 2008 = 1.00000
+ 2012 = 1.00000
+ 2009 = 1.00000
+ 2013 = 1.00000
+ 2010 = 1.00000
+ 2014 = 1.00000
+ 2055 = 1.00000
+ 2056 = 1.00000
+ 2061 = 1.00000
+ 2063 = 1.00000
+ 2062 = 1.00000
+ 2064 = 1.00000
+ 2067 = 1.00000
+ 2069 = 1.00000
+ 2068 = 1.00000
+ 2070 = 1.00000
+ 2115 = 1.00000
+ 2119 = 1.00000
+ 2116 = 1.00000
+ 2120 = 1.00000
+ 2117 = 1.00000
+ 2121 = 1.00000
+ 2118 = 1.00000
+ 2122 = 1.00000
+ 2163 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2166 = 1.00000
+ 2167 = 1.00000
+ 2168 = 1.00000
+ 2169 = 1.00000
+ 2170 = 1.00000
+ 2171 = 1.00000
+ 2172 = 1.00000
+ 2174 = 1.00000
+ 2175 = 1.00000
+ 2177 = 1.00000
+ 2179 = 1.00000
+ 2176 = 1.00000
+ 2178 = 1.00000
+ 2180 = 1.00000
+ 2181 = 1.00000
+ 2183 = 1.00000
+ 2182 = 1.00000
+ 2184 = 1.00000
+ 2187 = 1.00000
+ 2189 = 1.00000
+ 2191 = 1.00000
+ 2188 = 1.00000
+ 2190 = 1.00000
+ 2192 = 1.00000
+ 2195 = 1.00000
+ 2197 = 1.00000
+ 2196 = 1.00000
+ 2198 = 1.00000
+ 2205 = 1.00000
+ 2209 = 1.00000
+ 2206 = 1.00000
+ 2210 = 1.00000
+ 2211 = 1.00000
+ 2213 = 1.00000
+ 2215 = 1.00000
+ 2212 = 1.00000
+ 2214 = 1.00000
+ 2216 = 1.00000
+ 2217 = 1.00000
+ 2221 = 1.00000
+ 2218 = 1.00000
+ 2222 = 1.00000
+ 2227 = 1.00000
+ 2231 = 1.00000
+ 2228 = 1.00000
+ 2232 = 1.00000
+ 2229 = 1.00000
+ 2233 = 1.00000
+ 2230 = 1.00000
+ 2234 = 1.00000
+ 2247 = 1.00000
+ 2255 = 1.00000
+ 2248 = 1.00000
+ 2256 = 1.00000
+ 2249 = 1.00000
+ 2257 = 1.00000
+ 2250 = 1.00000
+ 2258 = 1.00000
+ 2259 = 1.00000
+ 2263 = 1.00000
+ 2260 = 1.00000
+ 2264 = 1.00000
+ 2261 = 1.00000
+ 2265 = 1.00000
+ 2262 = 1.00000
+ 2266 = 1.00000
+ 2307 = 1.00000
+ 2308 = 1.00000
+ 2309 = 1.00000
+ 2310 = 1.00000
+ 2312 = 1.00000
+ 2313 = 1.00000
+ 2315 = 1.00000
+ 2314 = 1.00000
+ 2316 = 1.00000
+ 2319 = 1.00000
+ 2321 = 1.00000
+ 2323 = 1.00000
+ 2320 = 1.00000
+ 2322 = 1.00000
+ 2324 = 1.00000
+ 2331 = 1.00000
+ 2335 = 1.00000
+ 2332 = 1.00000
+ 2336 = 1.00000
+ 2337 = 1.00000
+ 2341 = 1.00000
+ 2338 = 1.00000
+ 2342 = 1.00000
+ 2355 = 1.00000
+ 2363 = 1.00000
+ 2356 = 1.00000
+ 2364 = 1.00000
+ 2357 = 1.00000
+ 2365 = 1.00000
+ 2358 = 1.00000
+ 2366 = 1.00000
+ 2367 = 1.00000
+ 2371 = 1.00000
+ 2368 = 1.00000
+ 2372 = 1.00000
+ 2369 = 1.00000
+ 2373 = 1.00000
+ 2370 = 1.00000
+ 2374 = 1.00000
+ 2416 = 1.00000
+ 2417 = 1.00000
+ 2423 = 1.00000
+ 2425 = 1.00000
+ 2424 = 1.00000
+ 2426 = 1.00000
+ 2441 = 1.00000
+ 2443 = 1.00000
+ 2442 = 1.00000
+ 2444 = 1.00000
+ 2455 = 1.00000
+ 2459 = 1.00000
+ 2456 = 1.00000
+ 2460 = 1.00000
+ 2457 = 1.00000
+ 2461 = 1.00000
+ 2458 = 1.00000
+ 2462 = 1.00000
+ 2604 = 1.00000
+ 2605 = 1.00000
+ 2606 = 1.00000
+ 2607 = 1.00000
+ 2609 = 1.00000
+ 2612 = 1.00000
+ 2614 = 1.00000
+ 2613 = 1.00000
+ 2615 = 1.00000
+ 2622 = 1.00000
+ 2626 = 1.00000
+ 2623 = 1.00000
+ 2627 = 1.00000
+ 2628 = 1.00000
+ 2630 = 1.00000
+ 2632 = 1.00000
+ 2629 = 1.00000
+ 2631 = 1.00000
+ 2633 = 1.00000
+ 2634 = 1.00000
+ 2638 = 1.00000
+ 2635 = 1.00000
+ 2639 = 1.00000
+ 2644 = 1.00000
+ 2648 = 1.00000
+ 2645 = 1.00000
+ 2649 = 1.00000
+ 2646 = 1.00000
+ 2650 = 1.00000
+ 2647 = 1.00000
+ 2651 = 1.00000
+ 2664 = 1.00000
+ 2672 = 1.00000
+ 2665 = 1.00000
+ 2673 = 1.00000
+ 2666 = 1.00000
+ 2674 = 1.00000
+ 2667 = 1.00000
+ 2675 = 1.00000
+ 2712 = 1.00000
+ 2714 = 1.00000
+ 2721 = 1.00000
+ 2725 = 1.00000
+ 2722 = 1.00000
+ 2726 = 1.00000
+ 2727 = 1.00000
+ 2731 = 1.00000
+ 2728 = 1.00000
+ 2732 = 1.00000
+ 2745 = 1.00000
+ 2753 = 1.00000
+ 2746 = 1.00000
+ 2754 = 1.00000
+ 2747 = 1.00000
+ 2755 = 1.00000
+ 2748 = 1.00000
+ 2756 = 1.00000
+ 2793 = 1.00000
+ 2794 = 1.00000
+ 2799 = 1.00000
+ 2801 = 1.00000
+ 2800 = 1.00000
+ 2802 = 1.00000
+ 2805 = 1.00000
+ 2807 = 1.00000
+ 2806 = 1.00000
+ 2808 = 1.00000
+ 2853 = 1.00000
+ 2857 = 1.00000
+ 2854 = 1.00000
+ 2858 = 1.00000
+ 2855 = 1.00000
+ 2859 = 1.00000
+ 2856 = 1.00000
+ 2860 = 1.00000
+ 2901 = 1.00000
+ 2902 = 1.00000
+ 2903 = 1.00000
+ 2905 = 1.00000
+ 2906 = 1.00000
+ 2907 = 1.00000
+ 2909 = 1.00000
+ 2911 = 1.00000
+ 2908 = 1.00000
+ 2910 = 1.00000
+ 2912 = 1.00000
+ 2913 = 1.00000
+ 2915 = 1.00000
+ 2914 = 1.00000
+ 2916 = 1.00000
+ 2921 = 1.00000
+ 2923 = 1.00000
+ 2922 = 1.00000
+ 2924 = 1.00000
+ 2933 = 1.00000
+ 2935 = 1.00000
+ 2934 = 1.00000
+ 2936 = 1.00000
+ 2941 = 1.00000
+ 2945 = 1.00000
+ 2942 = 1.00000
+ 2946 = 1.00000
+ 2943 = 1.00000
+ 2947 = 1.00000
+ 2944 = 1.00000
+ 2948 = 1.00000
+ 2961 = 1.00000
+ 2965 = 1.00000
+ 2962 = 1.00000
+ 2966 = 1.00000
+ 2963 = 1.00000
+ 2967 = 1.00000
+ 2964 = 1.00000
+ 2968 = 1.00000
+ 3009 = 1.00000
+ 3010 = 1.00000
+ 3011 = 1.00000
+ 3012 = 1.00000
+ 3014 = 1.00000
+ 3015 = 1.00000
+ 3017 = 1.00000
+ 3016 = 1.00000
+ 3018 = 1.00000
+ 3021 = 1.00000
+ 3023 = 1.00000
+ 3025 = 1.00000
+ 3022 = 1.00000
+ 3024 = 1.00000
+ 3026 = 1.00000
+ 3033 = 1.00000
+ 3037 = 1.00000
+ 3034 = 1.00000
+ 3038 = 1.00000
+ 3039 = 1.00000
+ 3043 = 1.00000
+ 3040 = 1.00000
+ 3044 = 1.00000
+ 3057 = 1.00000
+ 3065 = 1.00000
+ 3058 = 1.00000
+ 3066 = 1.00000
+ 3059 = 1.00000
+ 3067 = 1.00000
+ 3060 = 1.00000
+ 3068 = 1.00000
+ 3069 = 1.00000
+ 3073 = 1.00000
+ 3070 = 1.00000
+ 3074 = 1.00000
+ 3071 = 1.00000
+ 3075 = 1.00000
+ 3072 = 1.00000
+ 3076 = 1.00000
+ 3117 = 1.00000
+ 3118 = 1.00000
+ 3119 = 1.00000
+ 3120 = 1.00000
+ 3121 = 1.00000
+ 3122 = 1.00000
+ 3123 = 1.00000
+ 3125 = 1.00000
+ 3127 = 1.00000
+ 3124 = 1.00000
+ 3126 = 1.00000
+ 3128 = 1.00000
+ 3129 = 1.00000
+ 3131 = 1.00000
+ 3133 = 1.00000
+ 3130 = 1.00000
+ 3132 = 1.00000
+ 3134 = 1.00000
+ 3137 = 1.00000
+ 3139 = 1.00000
+ 3138 = 1.00000
+ 3140 = 1.00000
+ 3141 = 1.00000
+ 3145 = 1.00000
+ 3142 = 1.00000
+ 3146 = 1.00000
+ 3147 = 1.00000
+ 3149 = 1.00000
+ 3151 = 1.00000
+ 3148 = 1.00000
+ 3150 = 1.00000
+ 3152 = 1.00000
+ 3157 = 1.00000
+ 3161 = 1.00000
+ 3158 = 1.00000
+ 3162 = 1.00000
+ 3159 = 1.00000
+ 3163 = 1.00000
+ 3160 = 1.00000
+ 3164 = 1.00000
+ 3165 = 1.00000
+ 3173 = 1.00000
+ 3166 = 1.00000
+ 3174 = 1.00000
+ 3167 = 1.00000
+ 3175 = 1.00000
+ 3168 = 1.00000
+ 3176 = 1.00000
+ 3177 = 1.00000
+ 3181 = 1.00000
+ 3178 = 1.00000
+ 3182 = 1.00000
+ 3179 = 1.00000
+ 3183 = 1.00000
+ 3180 = 1.00000
+ 3184 = 1.00000
+ 3307 = 1.00000
+ 3308 = 1.00000
+ 3311 = 1.00000
+ 3313 = 1.00000
+ 3312 = 1.00000
+ 3314 = 1.00000
+ 3323 = 1.00000
+ 3325 = 1.00000
+ 3324 = 1.00000
+ 3326 = 1.00000
+ 3331 = 1.00000
+ 3335 = 1.00000
+ 3332 = 1.00000
+ 3336 = 1.00000
+ 3333 = 1.00000
+ 3337 = 1.00000
+ 3334 = 1.00000
+ 3338 = 1.00000
+ 3387 = 1.00000
+ 3389 = 1.00000
+ 3396 = 1.00000
+ 3400 = 1.00000
+ 3397 = 1.00000
+ 3401 = 1.00000
+ 3402 = 1.00000
+ 3406 = 1.00000
+ 3403 = 1.00000
+ 3407 = 1.00000
+ 3420 = 1.00000
+ 3428 = 1.00000
+ 3421 = 1.00000
+ 3429 = 1.00000
+ 3422 = 1.00000
+ 3430 = 1.00000
+ 3423 = 1.00000
+ 3431 = 1.00000
+ 3468 = 1.00000
+ 3469 = 1.00000
+ 3470 = 1.00000
+ 3473 = 1.00000
+ 3475 = 1.00000
+ 3474 = 1.00000
+ 3476 = 1.00000
+ 3477 = 1.00000
+ 3481 = 1.00000
+ 3478 = 1.00000
+ 3482 = 1.00000
+ 3483 = 1.00000
+ 3485 = 1.00000
+ 3487 = 1.00000
+ 3484 = 1.00000
+ 3486 = 1.00000
+ 3488 = 1.00000
+ 3493 = 1.00000
+ 3497 = 1.00000
+ 3494 = 1.00000
+ 3498 = 1.00000
+ 3495 = 1.00000
+ 3499 = 1.00000
+ 3496 = 1.00000
+ 3500 = 1.00000
+ 3501 = 1.00000
+ 3509 = 1.00000
+ 3502 = 1.00000
+ 3510 = 1.00000
+ 3503 = 1.00000
+ 3511 = 1.00000
+ 3504 = 1.00000
+ 3512 = 1.00000
+ 3549 = 1.00000
+ 3550 = 1.00000
+ 3551 = 1.00000
+ 3552 = 1.00000
+ 3554 = 1.00000
+ 3556 = 1.00000
+ 3557 = 1.00000
+ 3563 = 1.00000
+ 3565 = 1.00000
+ 3564 = 1.00000
+ 3566 = 1.00000
+ 3573 = 1.00000
+ 3577 = 1.00000
+ 3574 = 1.00000
+ 3578 = 1.00000
+ 3585 = 1.00000
+ 3587 = 1.00000
+ 3589 = 1.00000
+ 3586 = 1.00000
+ 3588 = 1.00000
+ 3590 = 1.00000
+ 3591 = 1.00000
+ 3595 = 1.00000
+ 3592 = 1.00000
+ 3596 = 1.00000
+ 3599 = 1.00000
+ 3601 = 1.00000
+ 3600 = 1.00000
+ 3602 = 1.00000
+ 3613 = 1.00000
+ 3617 = 1.00000
+ 3614 = 1.00000
+ 3618 = 1.00000
+ 3615 = 1.00000
+ 3619 = 1.00000
+ 3616 = 1.00000
+ 3620 = 1.00000
+ 3633 = 1.00000
+ 3641 = 1.00000
+ 3634 = 1.00000
+ 3642 = 1.00000
+ 3635 = 1.00000
+ 3643 = 1.00000
+ 3636 = 1.00000
+ 3644 = 1.00000
+ 3693 = 1.00000
+ 3695 = 1.00000
+ 3705 = 1.00000
+ 3709 = 1.00000
+ 3706 = 1.00000
+ 3710 = 1.00000
+ 3717 = 1.00000
+ 3721 = 1.00000
+ 3718 = 1.00000
+ 3722 = 1.00000
+ 3741 = 1.00000
+ 3749 = 1.00000
+ 3742 = 1.00000
+ 3750 = 1.00000
+ 3743 = 1.00000
+ 3751 = 1.00000
+ 3744 = 1.00000
+ 3752 = 1.00000
+ 3802 = 1.00000
+ 3803 = 1.00000
+ 3809 = 1.00000
+ 3811 = 1.00000
+ 3810 = 1.00000
+ 3812 = 1.00000
+ 3827 = 1.00000
+ 3829 = 1.00000
+ 3828 = 1.00000
+ 3830 = 1.00000
+ 3841 = 1.00000
+ 3845 = 1.00000
+ 3842 = 1.00000
+ 3846 = 1.00000
+ 3843 = 1.00000
+ 3847 = 1.00000
+ 3844 = 1.00000
+ 3848 = 1.00000
+ 3990 = 1.00000
+ 3991 = 1.00000
+ 3992 = 1.00000
+ 3993 = 1.00000
+ 3995 = 1.00000
+ 3997 = 1.00000
+ 3998 = 1.00000
+ 4004 = 1.00000
+ 4006 = 1.00000
+ 4005 = 1.00000
+ 4007 = 1.00000
+ 4014 = 1.00000
+ 4018 = 1.00000
+ 4015 = 1.00000
+ 4019 = 1.00000
+ 4026 = 1.00000
+ 4028 = 1.00000
+ 4030 = 1.00000
+ 4027 = 1.00000
+ 4029 = 1.00000
+ 4031 = 1.00000
+ 4032 = 1.00000
+ 4036 = 1.00000
+ 4033 = 1.00000
+ 4037 = 1.00000
+ 4040 = 1.00000
+ 4042 = 1.00000
+ 4041 = 1.00000
+ 4043 = 1.00000
+ 4054 = 1.00000
+ 4058 = 1.00000
+ 4055 = 1.00000
+ 4059 = 1.00000
+ 4056 = 1.00000
+ 4060 = 1.00000
+ 4057 = 1.00000
+ 4061 = 1.00000
+ 4074 = 1.00000
+ 4082 = 1.00000
+ 4075 = 1.00000
+ 4083 = 1.00000
+ 4076 = 1.00000
+ 4084 = 1.00000
+ 4077 = 1.00000
+ 4085 = 1.00000
+ 4134 = 1.00000
+ 4136 = 1.00000
+ 4146 = 1.00000
+ 4150 = 1.00000
+ 4147 = 1.00000
+ 4151 = 1.00000
+ 4158 = 1.00000
+ 4162 = 1.00000
+ 4159 = 1.00000
+ 4163 = 1.00000
+ 4182 = 1.00000
+ 4190 = 1.00000
+ 4183 = 1.00000
+ 4191 = 1.00000
+ 4184 = 1.00000
+ 4192 = 1.00000
+ 4185 = 1.00000
+ 4193 = 1.00000
+ 4243 = 1.00000
+ 4244 = 1.00000
+ 4250 = 1.00000
+ 4252 = 1.00000
+ 4251 = 1.00000
+ 4253 = 1.00000
+ 4268 = 1.00000
+ 4270 = 1.00000
+ 4269 = 1.00000
+ 4271 = 1.00000
+ 4282 = 1.00000
+ 4286 = 1.00000
+ 4283 = 1.00000
+ 4287 = 1.00000
+ 4284 = 1.00000
+ 4288 = 1.00000
+ 4285 = 1.00000
+ 4289 = 1.00000
+ 4431 = 1.00000
+ 4433 = 1.00000
+ 4443 = 1.00000
+ 4447 = 1.00000
+ 4444 = 1.00000
+ 4448 = 1.00000
+ 4455 = 1.00000
+ 4459 = 1.00000
+ 4456 = 1.00000
+ 4460 = 1.00000
+ 4479 = 1.00000
+ 4487 = 1.00000
+ 4480 = 1.00000
+ 4488 = 1.00000
+ 4481 = 1.00000
+ 4489 = 1.00000
+ 4482 = 1.00000
+ 4490 = 1.00000
+ 4539 = 1.00000
+ 4540 = 1.00000
+ 4541 = 1.00000
+ 4543 = 1.00000
+ 4544 = 1.00000
+ 4547 = 1.00000
+ 4549 = 1.00000
+ 4548 = 1.00000
+ 4550 = 1.00000
+ 4551 = 1.00000
+ 4555 = 1.00000
+ 4552 = 1.00000
+ 4556 = 1.00000
+ 4563 = 1.00000
+ 4565 = 1.00000
+ 4567 = 1.00000
+ 4564 = 1.00000
+ 4566 = 1.00000
+ 4568 = 1.00000
+ 4571 = 1.00000
+ 4573 = 1.00000
+ 4572 = 1.00000
+ 4574 = 1.00000
+ 4579 = 1.00000
+ 4583 = 1.00000
+ 4580 = 1.00000
+ 4584 = 1.00000
+ 4581 = 1.00000
+ 4585 = 1.00000
+ 4582 = 1.00000
+ 4586 = 1.00000
+ 4587 = 1.00000
+ 4595 = 1.00000
+ 4588 = 1.00000
+ 4596 = 1.00000
+ 4589 = 1.00000
+ 4597 = 1.00000
+ 4590 = 1.00000
+ 4598 = 1.00000
+ 4729 = 1.00000
+ 4730 = 1.00000
+ 4733 = 1.00000
+ 4735 = 1.00000
+ 4734 = 1.00000
+ 4736 = 1.00000
+ 4745 = 1.00000
+ 4747 = 1.00000
+ 4746 = 1.00000
+ 4748 = 1.00000
+ 4753 = 1.00000
+ 4757 = 1.00000
+ 4754 = 1.00000
+ 4758 = 1.00000
+ 4755 = 1.00000
+ 4759 = 1.00000
+ 4756 = 1.00000
+ 4760 = 1.00000
+ 4809 = 1.00000
+ 4811 = 1.00000
+ 4821 = 1.00000
+ 4825 = 1.00000
+ 4822 = 1.00000
+ 4826 = 1.00000
+ 4833 = 1.00000
+ 4837 = 1.00000
+ 4834 = 1.00000
+ 4838 = 1.00000
+ 4857 = 1.00000
+ 4865 = 1.00000
+ 4858 = 1.00000
+ 4866 = 1.00000
+ 4859 = 1.00000
+ 4867 = 1.00000
+ 4860 = 1.00000
+ 4868 = 1.00000
+ 4917 = 1.00000
+ 4918 = 1.00000
+ 4919 = 1.00000
+ 4921 = 1.00000
+ 4922 = 1.00000
+ 4925 = 1.00000
+ 4927 = 1.00000
+ 4926 = 1.00000
+ 4928 = 1.00000
+ 4929 = 1.00000
+ 4933 = 1.00000
+ 4930 = 1.00000
+ 4934 = 1.00000
+ 4941 = 1.00000
+ 4943 = 1.00000
+ 4945 = 1.00000
+ 4942 = 1.00000
+ 4944 = 1.00000
+ 4946 = 1.00000
+ 4949 = 1.00000
+ 4951 = 1.00000
+ 4950 = 1.00000
+ 4952 = 1.00000
+ 4957 = 1.00000
+ 4961 = 1.00000
+ 4958 = 1.00000
+ 4962 = 1.00000
+ 4959 = 1.00000
+ 4963 = 1.00000
+ 4960 = 1.00000
+ 4964 = 1.00000
+ 4965 = 1.00000
+ 4973 = 1.00000
+ 4966 = 1.00000
+ 4974 = 1.00000
+ 4967 = 1.00000
+ 4975 = 1.00000
+ 4968 = 1.00000
+ 4976 = 1.00000
+ 5107 = 1.00000
+ 5108 = 1.00000
+ 5111 = 1.00000
+ 5113 = 1.00000
+ 5112 = 1.00000
+ 5114 = 1.00000
+ 5123 = 1.00000
+ 5125 = 1.00000
+ 5124 = 1.00000
+ 5126 = 1.00000
+ 5131 = 1.00000
+ 5135 = 1.00000
+ 5132 = 1.00000
+ 5136 = 1.00000
+ 5133 = 1.00000
+ 5137 = 1.00000
+ 5134 = 1.00000
+ 5138 = 1.00000
+ 5188 = 1.00000
+ 5189 = 1.00000
+ 5195 = 1.00000
+ 5197 = 1.00000
+ 5196 = 1.00000
+ 5198 = 1.00000
+ 5213 = 1.00000
+ 5215 = 1.00000
+ 5214 = 1.00000
+ 5216 = 1.00000
+ 5227 = 1.00000
+ 5231 = 1.00000
+ 5228 = 1.00000
+ 5232 = 1.00000
+ 5229 = 1.00000
+ 5233 = 1.00000
+ 5230 = 1.00000
+ 5234 = 1.00000
+ 5376 = 1.00000
+ 5377 = 1.00000
+ 5378 = 1.00000
+ 5379 = 1.00000
+ 5381 = 1.00000
+ 5384 = 1.00000
+ 5386 = 1.00000
+ 5385 = 1.00000
+ 5387 = 1.00000
+ 5394 = 1.00000
+ 5398 = 1.00000
+ 5395 = 1.00000
+ 5399 = 1.00000
+ 5400 = 1.00000
+ 5402 = 1.00000
+ 5404 = 1.00000
+ 5401 = 1.00000
+ 5403 = 1.00000
+ 5405 = 1.00000
+ 5406 = 1.00000
+ 5410 = 1.00000
+ 5407 = 1.00000
+ 5411 = 1.00000
+ 5416 = 1.00000
+ 5420 = 1.00000
+ 5417 = 1.00000
+ 5421 = 1.00000
+ 5418 = 1.00000
+ 5422 = 1.00000
+ 5419 = 1.00000
+ 5423 = 1.00000
+ 5436 = 1.00000
+ 5444 = 1.00000
+ 5437 = 1.00000
+ 5445 = 1.00000
+ 5438 = 1.00000
+ 5446 = 1.00000
+ 5439 = 1.00000
+ 5447 = 1.00000
+ 5484 = 1.00000
+ 5486 = 1.00000
+ 5493 = 1.00000
+ 5497 = 1.00000
+ 5494 = 1.00000
+ 5498 = 1.00000
+ 5499 = 1.00000
+ 5503 = 1.00000
+ 5500 = 1.00000
+ 5504 = 1.00000
+ 5517 = 1.00000
+ 5525 = 1.00000
+ 5518 = 1.00000
+ 5526 = 1.00000
+ 5519 = 1.00000
+ 5527 = 1.00000
+ 5520 = 1.00000
+ 5528 = 1.00000
+ 5566 = 1.00000
+ 5567 = 1.00000
+ 5573 = 1.00000
+ 5575 = 1.00000
+ 5574 = 1.00000
+ 5576 = 1.00000
+ 5591 = 1.00000
+ 5593 = 1.00000
+ 5592 = 1.00000
+ 5594 = 1.00000
+ 5605 = 1.00000
+ 5609 = 1.00000
+ 5606 = 1.00000
+ 5610 = 1.00000
+ 5607 = 1.00000
+ 5611 = 1.00000
+ 5608 = 1.00000
+ 5612 = 1.00000
+ 5754 = 1.00000
+ 5755 = 1.00000
+ 5756 = 1.00000
+ 5757 = 1.00000
+ 5759 = 1.00000
+ 5762 = 1.00000
+ 5764 = 1.00000
+ 5763 = 1.00000
+ 5765 = 1.00000
+ 5772 = 1.00000
+ 5776 = 1.00000
+ 5773 = 1.00000
+ 5777 = 1.00000
+ 5778 = 1.00000
+ 5780 = 1.00000
+ 5782 = 1.00000
+ 5779 = 1.00000
+ 5781 = 1.00000
+ 5783 = 1.00000
+ 5784 = 1.00000
+ 5788 = 1.00000
+ 5785 = 1.00000
+ 5789 = 1.00000
+ 5794 = 1.00000
+ 5798 = 1.00000
+ 5795 = 1.00000
+ 5799 = 1.00000
+ 5796 = 1.00000
+ 5800 = 1.00000
+ 5797 = 1.00000
+ 5801 = 1.00000
+ 5814 = 1.00000
+ 5822 = 1.00000
+ 5815 = 1.00000
+ 5823 = 1.00000
+ 5816 = 1.00000
+ 5824 = 1.00000
+ 5817 = 1.00000
+ 5825 = 1.00000
+ 5862 = 1.00000
+ 5864 = 1.00000
+ 5871 = 1.00000
+ 5875 = 1.00000
+ 5872 = 1.00000
+ 5876 = 1.00000
+ 5877 = 1.00000
+ 5881 = 1.00000
+ 5878 = 1.00000
+ 5882 = 1.00000
+ 5895 = 1.00000
+ 5903 = 1.00000
+ 5896 = 1.00000
+ 5904 = 1.00000
+ 5897 = 1.00000
+ 5905 = 1.00000
+ 5898 = 1.00000
+ 5906 = 1.00000
+ 6025 = 1.00000
+ 6026 = 1.00000
+ 6029 = 1.00000
+ 6031 = 1.00000
+ 6030 = 1.00000
+ 6032 = 1.00000
+ 6041 = 1.00000
+ 6043 = 1.00000
+ 6042 = 1.00000
+ 6044 = 1.00000
+ 6049 = 1.00000
+ 6053 = 1.00000
+ 6050 = 1.00000
+ 6054 = 1.00000
+ 6051 = 1.00000
+ 6055 = 1.00000
+ 6052 = 1.00000
+ 6056 = 1.00000
+ 6105 = 1.00000
+ 6107 = 1.00000
+ 6114 = 1.00000
+ 6118 = 1.00000
+ 6115 = 1.00000
+ 6119 = 1.00000
+ 6120 = 1.00000
+ 6124 = 1.00000
+ 6121 = 1.00000
+ 6125 = 1.00000
+ 6138 = 1.00000
+ 6146 = 1.00000
+ 6139 = 1.00000
+ 6147 = 1.00000
+ 6140 = 1.00000
+ 6148 = 1.00000
+ 6141 = 1.00000
+ 6149 = 1.00000
+ 6186 = 1.00000
+ 6187 = 1.00000
+ 6188 = 1.00000
+ 6191 = 1.00000
+ 6193 = 1.00000
+ 6192 = 1.00000
+ 6194 = 1.00000
+ 6195 = 1.00000
+ 6199 = 1.00000
+ 6196 = 1.00000
+ 6200 = 1.00000
+ 6201 = 1.00000
+ 6203 = 1.00000
+ 6205 = 1.00000
+ 6202 = 1.00000
+ 6204 = 1.00000
+ 6206 = 1.00000
+ 6211 = 1.00000
+ 6215 = 1.00000
+ 6212 = 1.00000
+ 6216 = 1.00000
+ 6213 = 1.00000
+ 6217 = 1.00000
+ 6214 = 1.00000
+ 6218 = 1.00000
+ 6219 = 1.00000
+ 6227 = 1.00000
+ 6220 = 1.00000
+ 6228 = 1.00000
+ 6221 = 1.00000
+ 6229 = 1.00000
+ 6222 = 1.00000
+ 6230 = 1.00000
+ 6349 = 1.00000
+ 6350 = 1.00000
+ 6353 = 1.00000
+ 6355 = 1.00000
+ 6354 = 1.00000
+ 6356 = 1.00000
+ 6365 = 1.00000
+ 6367 = 1.00000
+ 6366 = 1.00000
+ 6368 = 1.00000
+ 6373 = 1.00000
+ 6377 = 1.00000
+ 6374 = 1.00000
+ 6378 = 1.00000
+ 6375 = 1.00000
+ 6379 = 1.00000
+ 6376 = 1.00000
+ 6380 = 1.00000
+ 6429 = 1.00000
+ 6431 = 1.00000
+ 6438 = 1.00000
+ 6442 = 1.00000
+ 6439 = 1.00000
+ 6443 = 1.00000
+ 6444 = 1.00000
+ 6448 = 1.00000
+ 6445 = 1.00000
+ 6449 = 1.00000
+ 6462 = 1.00000
+ 6470 = 1.00000
+ 6463 = 1.00000
+ 6471 = 1.00000
+ 6464 = 1.00000
+ 6472 = 1.00000
+ 6465 = 1.00000
+ 6473 = 1.00000
+ 6510 = 1.00000
+ 6511 = 1.00000
+ 6512 = 1.00000
+ 6515 = 1.00000
+ 6517 = 1.00000
+ 6516 = 1.00000
+ 6518 = 1.00000
+ 6519 = 1.00000
+ 6523 = 1.00000
+ 6520 = 1.00000
+ 6524 = 1.00000
+ 6525 = 1.00000
+ 6527 = 1.00000
+ 6529 = 1.00000
+ 6526 = 1.00000
+ 6528 = 1.00000
+ 6530 = 1.00000
+ 6535 = 1.00000
+ 6539 = 1.00000
+ 6536 = 1.00000
+ 6540 = 1.00000
+ 6537 = 1.00000
+ 6541 = 1.00000
+ 6538 = 1.00000
+ 6542 = 1.00000
+ 6543 = 1.00000
+ 6551 = 1.00000
+ 6544 = 1.00000
+ 6552 = 1.00000
+ 6545 = 1.00000
+ 6553 = 1.00000
+ 6546 = 1.00000
+ 6554 = 1.00000
+DEAL::FE=FESystem<3>[FE_Q<3>(3)^3], case=5
+ 0 = 1.00000
+ 1 = 1.00000
+ 2 = 1.00000
+ 3 = 1.00000
+ 4 = 1.00000
+ 5 = 1.00000
+ 6 = 1.00000
+ 7 = 1.00000
+ 8 = 1.00000
+ 9 = 1.00000
+ 10 = 1.00000
+ 12 = 1.00000
+ 13 = 1.00000
+ 14 = 1.00000
+ 15 = 1.00000
+ 17 = 1.00000
+ 19 = 1.00000
+ 20 = 1.00000
+ 24 = 1.00000
+ 26 = 1.00000
+ 28 = 1.00000
+ 25 = 1.00000
+ 27 = 1.00000
+ 29 = 1.00000
+ 30 = 1.00000
+ 32 = 1.00000
+ 31 = 1.00000
+ 33 = 1.00000
+ 36 = 1.00000
+ 38 = 1.00000
+ 40 = 1.00000
+ 37 = 1.00000
+ 39 = 1.00000
+ 41 = 1.00000
+ 42 = 1.00000
+ 44 = 1.00000
+ 43 = 1.00000
+ 45 = 1.00000
+ 50 = 1.00000
+ 52 = 1.00000
+ 51 = 1.00000
+ 53 = 1.00000
+ 60 = 1.00000
+ 64 = 1.00000
+ 61 = 1.00000
+ 65 = 1.00000
+ 72 = 1.00000
+ 74 = 1.00000
+ 76 = 1.00000
+ 73 = 1.00000
+ 75 = 1.00000
+ 77 = 1.00000
+ 78 = 1.00000
+ 82 = 1.00000
+ 79 = 1.00000
+ 83 = 1.00000
+ 86 = 1.00000
+ 88 = 1.00000
+ 87 = 1.00000
+ 89 = 1.00000
+ 100 = 1.00000
+ 104 = 1.00000
+ 101 = 1.00000
+ 105 = 1.00000
+ 102 = 1.00000
+ 106 = 1.00000
+ 103 = 1.00000
+ 107 = 1.00000
+ 120 = 1.00000
+ 128 = 1.00000
+ 121 = 1.00000
+ 129 = 1.00000
+ 122 = 1.00000
+ 130 = 1.00000
+ 123 = 1.00000
+ 131 = 1.00000
+ 144 = 1.00000
+ 148 = 1.00000
+ 145 = 1.00000
+ 149 = 1.00000
+ 146 = 1.00000
+ 150 = 1.00000
+ 147 = 1.00000
+ 151 = 1.00000
+ 192 = 1.00000
+ 193 = 1.00000
+ 194 = 1.00000
+ 195 = 1.00000
+ 196 = 1.00000
+ 198 = 1.00000
+ 200 = 1.00000
+ 204 = 1.00000
+ 206 = 1.00000
+ 205 = 1.00000
+ 207 = 1.00000
+ 210 = 1.00000
+ 212 = 1.00000
+ 214 = 1.00000
+ 211 = 1.00000
+ 213 = 1.00000
+ 215 = 1.00000
+ 216 = 1.00000
+ 218 = 1.00000
+ 217 = 1.00000
+ 219 = 1.00000
+ 228 = 1.00000
+ 232 = 1.00000
+ 229 = 1.00000
+ 233 = 1.00000
+ 240 = 1.00000
+ 244 = 1.00000
+ 241 = 1.00000
+ 245 = 1.00000
+ 264 = 1.00000
+ 272 = 1.00000
+ 265 = 1.00000
+ 273 = 1.00000
+ 266 = 1.00000
+ 274 = 1.00000
+ 267 = 1.00000
+ 275 = 1.00000
+ 288 = 1.00000
+ 292 = 1.00000
+ 289 = 1.00000
+ 293 = 1.00000
+ 290 = 1.00000
+ 294 = 1.00000
+ 291 = 1.00000
+ 295 = 1.00000
+ 336 = 1.00000
+ 337 = 1.00000
+ 338 = 1.00000
+ 339 = 1.00000
+ 340 = 1.00000
+ 343 = 1.00000
+ 344 = 1.00000
+ 348 = 1.00000
+ 350 = 1.00000
+ 352 = 1.00000
+ 349 = 1.00000
+ 351 = 1.00000
+ 353 = 1.00000
+ 354 = 1.00000
+ 356 = 1.00000
+ 355 = 1.00000
+ 357 = 1.00000
+ 360 = 1.00000
+ 362 = 1.00000
+ 361 = 1.00000
+ 363 = 1.00000
+ 368 = 1.00000
+ 370 = 1.00000
+ 369 = 1.00000
+ 371 = 1.00000
+ 386 = 1.00000
+ 388 = 1.00000
+ 387 = 1.00000
+ 389 = 1.00000
+ 400 = 1.00000
+ 404 = 1.00000
+ 401 = 1.00000
+ 405 = 1.00000
+ 402 = 1.00000
+ 406 = 1.00000
+ 403 = 1.00000
+ 407 = 1.00000
+ 432 = 1.00000
+ 436 = 1.00000
+ 433 = 1.00000
+ 437 = 1.00000
+ 434 = 1.00000
+ 438 = 1.00000
+ 435 = 1.00000
+ 439 = 1.00000
+ 480 = 1.00000
+ 481 = 1.00000
+ 486 = 1.00000
+ 488 = 1.00000
+ 487 = 1.00000
+ 489 = 1.00000
+ 492 = 1.00000
+ 494 = 1.00000
+ 493 = 1.00000
+ 495 = 1.00000
+ 540 = 1.00000
+ 544 = 1.00000
+ 541 = 1.00000
+ 545 = 1.00000
+ 542 = 1.00000
+ 546 = 1.00000
+ 543 = 1.00000
+ 547 = 1.00000
+ 588 = 1.00000
+ 589 = 1.00000
+ 590 = 1.00000
+ 591 = 1.00000
+ 593 = 1.00000
+ 595 = 1.00000
+ 596 = 1.00000
+ 602 = 1.00000
+ 604 = 1.00000
+ 603 = 1.00000
+ 605 = 1.00000
+ 612 = 1.00000
+ 616 = 1.00000
+ 613 = 1.00000
+ 617 = 1.00000
+ 624 = 1.00000
+ 626 = 1.00000
+ 628 = 1.00000
+ 625 = 1.00000
+ 627 = 1.00000
+ 629 = 1.00000
+ 630 = 1.00000
+ 634 = 1.00000
+ 631 = 1.00000
+ 635 = 1.00000
+ 638 = 1.00000
+ 640 = 1.00000
+ 639 = 1.00000
+ 641 = 1.00000
+ 652 = 1.00000
+ 656 = 1.00000
+ 653 = 1.00000
+ 657 = 1.00000
+ 654 = 1.00000
+ 658 = 1.00000
+ 655 = 1.00000
+ 659 = 1.00000
+ 672 = 1.00000
+ 680 = 1.00000
+ 673 = 1.00000
+ 681 = 1.00000
+ 674 = 1.00000
+ 682 = 1.00000
+ 675 = 1.00000
+ 683 = 1.00000
+ 732 = 1.00000
+ 734 = 1.00000
+ 744 = 1.00000
+ 748 = 1.00000
+ 745 = 1.00000
+ 749 = 1.00000
+ 756 = 1.00000
+ 760 = 1.00000
+ 757 = 1.00000
+ 761 = 1.00000
+ 780 = 1.00000
+ 788 = 1.00000
+ 781 = 1.00000
+ 789 = 1.00000
+ 782 = 1.00000
+ 790 = 1.00000
+ 783 = 1.00000
+ 791 = 1.00000
+ 841 = 1.00000
+ 842 = 1.00000
+ 848 = 1.00000
+ 850 = 1.00000
+ 849 = 1.00000
+ 851 = 1.00000
+ 866 = 1.00000
+ 868 = 1.00000
+ 867 = 1.00000
+ 869 = 1.00000
+ 880 = 1.00000
+ 884 = 1.00000
+ 881 = 1.00000
+ 885 = 1.00000
+ 882 = 1.00000
+ 886 = 1.00000
+ 883 = 1.00000
+ 887 = 1.00000
+ 1029 = 1.00000
+ 1030 = 1.00000
+ 1031 = 1.00000
+ 1032 = 1.00000
+ 1033 = 1.00000
+ 1035 = 1.00000
+ 1037 = 1.00000
+ 1041 = 1.00000
+ 1043 = 1.00000
+ 1042 = 1.00000
+ 1044 = 1.00000
+ 1047 = 1.00000
+ 1049 = 1.00000
+ 1051 = 1.00000
+ 1048 = 1.00000
+ 1050 = 1.00000
+ 1052 = 1.00000
+ 1053 = 1.00000
+ 1055 = 1.00000
+ 1054 = 1.00000
+ 1056 = 1.00000
+ 1065 = 1.00000
+ 1069 = 1.00000
+ 1066 = 1.00000
+ 1070 = 1.00000
+ 1077 = 1.00000
+ 1081 = 1.00000
+ 1078 = 1.00000
+ 1082 = 1.00000
+ 1101 = 1.00000
+ 1109 = 1.00000
+ 1102 = 1.00000
+ 1110 = 1.00000
+ 1103 = 1.00000
+ 1111 = 1.00000
+ 1104 = 1.00000
+ 1112 = 1.00000
+ 1125 = 1.00000
+ 1129 = 1.00000
+ 1126 = 1.00000
+ 1130 = 1.00000
+ 1127 = 1.00000
+ 1131 = 1.00000
+ 1128 = 1.00000
+ 1132 = 1.00000
+ 1173 = 1.00000
+ 1174 = 1.00000
+ 1175 = 1.00000
+ 1176 = 1.00000
+ 1177 = 1.00000
+ 1178 = 1.00000
+ 1179 = 1.00000
+ 1180 = 1.00000
+ 1181 = 1.00000
+ 1183 = 1.00000
+ 1184 = 1.00000
+ 1185 = 1.00000
+ 1187 = 1.00000
+ 1189 = 1.00000
+ 1186 = 1.00000
+ 1188 = 1.00000
+ 1190 = 1.00000
+ 1191 = 1.00000
+ 1193 = 1.00000
+ 1195 = 1.00000
+ 1192 = 1.00000
+ 1194 = 1.00000
+ 1196 = 1.00000
+ 1197 = 1.00000
+ 1199 = 1.00000
+ 1198 = 1.00000
+ 1200 = 1.00000
+ 1205 = 1.00000
+ 1207 = 1.00000
+ 1206 = 1.00000
+ 1208 = 1.00000
+ 1209 = 1.00000
+ 1213 = 1.00000
+ 1210 = 1.00000
+ 1214 = 1.00000
+ 1221 = 1.00000
+ 1223 = 1.00000
+ 1225 = 1.00000
+ 1222 = 1.00000
+ 1224 = 1.00000
+ 1226 = 1.00000
+ 1229 = 1.00000
+ 1231 = 1.00000
+ 1230 = 1.00000
+ 1232 = 1.00000
+ 1237 = 1.00000
+ 1241 = 1.00000
+ 1238 = 1.00000
+ 1242 = 1.00000
+ 1239 = 1.00000
+ 1243 = 1.00000
+ 1240 = 1.00000
+ 1244 = 1.00000
+ 1245 = 1.00000
+ 1253 = 1.00000
+ 1246 = 1.00000
+ 1254 = 1.00000
+ 1247 = 1.00000
+ 1255 = 1.00000
+ 1248 = 1.00000
+ 1256 = 1.00000
+ 1269 = 1.00000
+ 1273 = 1.00000
+ 1270 = 1.00000
+ 1274 = 1.00000
+ 1271 = 1.00000
+ 1275 = 1.00000
+ 1272 = 1.00000
+ 1276 = 1.00000
+ 1317 = 1.00000
+ 1318 = 1.00000
+ 1323 = 1.00000
+ 1325 = 1.00000
+ 1324 = 1.00000
+ 1326 = 1.00000
+ 1329 = 1.00000
+ 1331 = 1.00000
+ 1330 = 1.00000
+ 1332 = 1.00000
+ 1377 = 1.00000
+ 1381 = 1.00000
+ 1378 = 1.00000
+ 1382 = 1.00000
+ 1379 = 1.00000
+ 1383 = 1.00000
+ 1380 = 1.00000
+ 1384 = 1.00000
+ 1425 = 1.00000
+ 1426 = 1.00000
+ 1427 = 1.00000
+ 1429 = 1.00000
+ 1430 = 1.00000
+ 1431 = 1.00000
+ 1433 = 1.00000
+ 1435 = 1.00000
+ 1432 = 1.00000
+ 1434 = 1.00000
+ 1436 = 1.00000
+ 1437 = 1.00000
+ 1439 = 1.00000
+ 1438 = 1.00000
+ 1440 = 1.00000
+ 1445 = 1.00000
+ 1447 = 1.00000
+ 1446 = 1.00000
+ 1448 = 1.00000
+ 1457 = 1.00000
+ 1459 = 1.00000
+ 1458 = 1.00000
+ 1460 = 1.00000
+ 1465 = 1.00000
+ 1469 = 1.00000
+ 1466 = 1.00000
+ 1470 = 1.00000
+ 1467 = 1.00000
+ 1471 = 1.00000
+ 1468 = 1.00000
+ 1472 = 1.00000
+ 1485 = 1.00000
+ 1489 = 1.00000
+ 1486 = 1.00000
+ 1490 = 1.00000
+ 1487 = 1.00000
+ 1491 = 1.00000
+ 1488 = 1.00000
+ 1492 = 1.00000
+ 1533 = 1.00000
+ 1535 = 1.00000
+ 1545 = 1.00000
+ 1549 = 1.00000
+ 1546 = 1.00000
+ 1550 = 1.00000
+ 1557 = 1.00000
+ 1561 = 1.00000
+ 1558 = 1.00000
+ 1562 = 1.00000
+ 1581 = 1.00000
+ 1589 = 1.00000
+ 1582 = 1.00000
+ 1590 = 1.00000
+ 1583 = 1.00000
+ 1591 = 1.00000
+ 1584 = 1.00000
+ 1592 = 1.00000
+ 1641 = 1.00000
+ 1642 = 1.00000
+ 1643 = 1.00000
+ 1645 = 1.00000
+ 1646 = 1.00000
+ 1649 = 1.00000
+ 1651 = 1.00000
+ 1650 = 1.00000
+ 1652 = 1.00000
+ 1653 = 1.00000
+ 1657 = 1.00000
+ 1654 = 1.00000
+ 1658 = 1.00000
+ 1665 = 1.00000
+ 1667 = 1.00000
+ 1669 = 1.00000
+ 1666 = 1.00000
+ 1668 = 1.00000
+ 1670 = 1.00000
+ 1673 = 1.00000
+ 1675 = 1.00000
+ 1674 = 1.00000
+ 1676 = 1.00000
+ 1681 = 1.00000
+ 1685 = 1.00000
+ 1682 = 1.00000
+ 1686 = 1.00000
+ 1683 = 1.00000
+ 1687 = 1.00000
+ 1684 = 1.00000
+ 1688 = 1.00000
+ 1689 = 1.00000
+ 1697 = 1.00000
+ 1690 = 1.00000
+ 1698 = 1.00000
+ 1691 = 1.00000
+ 1699 = 1.00000
+ 1692 = 1.00000
+ 1700 = 1.00000
+ 1831 = 1.00000
+ 1832 = 1.00000
+ 1835 = 1.00000
+ 1837 = 1.00000
+ 1836 = 1.00000
+ 1838 = 1.00000
+ 1847 = 1.00000
+ 1849 = 1.00000
+ 1848 = 1.00000
+ 1850 = 1.00000
+ 1855 = 1.00000
+ 1859 = 1.00000
+ 1856 = 1.00000
+ 1860 = 1.00000
+ 1857 = 1.00000
+ 1861 = 1.00000
+ 1858 = 1.00000
+ 1862 = 1.00000
+ 1911 = 1.00000
+ 1912 = 1.00000
+ 1913 = 1.00000
+ 1914 = 1.00000
+ 1915 = 1.00000
+ 1918 = 1.00000
+ 1919 = 1.00000
+ 1923 = 1.00000
+ 1925 = 1.00000
+ 1927 = 1.00000
+ 1924 = 1.00000
+ 1926 = 1.00000
+ 1928 = 1.00000
+ 1929 = 1.00000
+ 1931 = 1.00000
+ 1930 = 1.00000
+ 1932 = 1.00000
+ 1935 = 1.00000
+ 1937 = 1.00000
+ 1936 = 1.00000
+ 1938 = 1.00000
+ 1943 = 1.00000
+ 1945 = 1.00000
+ 1944 = 1.00000
+ 1946 = 1.00000
+ 1961 = 1.00000
+ 1963 = 1.00000
+ 1962 = 1.00000
+ 1964 = 1.00000
+ 1975 = 1.00000
+ 1979 = 1.00000
+ 1976 = 1.00000
+ 1980 = 1.00000
+ 1977 = 1.00000
+ 1981 = 1.00000
+ 1978 = 1.00000
+ 1982 = 1.00000
+ 2007 = 1.00000
+ 2011 = 1.00000
+ 2008 = 1.00000
+ 2012 = 1.00000
+ 2009 = 1.00000
+ 2013 = 1.00000
+ 2010 = 1.00000
+ 2014 = 1.00000
+ 2055 = 1.00000
+ 2056 = 1.00000
+ 2061 = 1.00000
+ 2063 = 1.00000
+ 2062 = 1.00000
+ 2064 = 1.00000
+ 2067 = 1.00000
+ 2069 = 1.00000
+ 2068 = 1.00000
+ 2070 = 1.00000
+ 2115 = 1.00000
+ 2119 = 1.00000
+ 2116 = 1.00000
+ 2120 = 1.00000
+ 2117 = 1.00000
+ 2121 = 1.00000
+ 2118 = 1.00000
+ 2122 = 1.00000
+ 2163 = 1.00000
+ 2164 = 1.00000
+ 2165 = 1.00000
+ 2166 = 1.00000
+ 2167 = 1.00000
+ 2168 = 1.00000
+ 2169 = 1.00000
+ 2170 = 1.00000
+ 2171 = 1.00000
+ 2172 = 1.00000
+ 2174 = 1.00000
+ 2175 = 1.00000
+ 2177 = 1.00000
+ 2179 = 1.00000
+ 2176 = 1.00000
+ 2178 = 1.00000
+ 2180 = 1.00000
+ 2181 = 1.00000
+ 2183 = 1.00000
+ 2182 = 1.00000
+ 2184 = 1.00000
+ 2187 = 1.00000
+ 2189 = 1.00000
+ 2191 = 1.00000
+ 2188 = 1.00000
+ 2190 = 1.00000
+ 2192 = 1.00000
+ 2195 = 1.00000
+ 2197 = 1.00000
+ 2196 = 1.00000
+ 2198 = 1.00000
+ 2205 = 1.00000
+ 2209 = 1.00000
+ 2206 = 1.00000
+ 2210 = 1.00000
+ 2211 = 1.00000
+ 2213 = 1.00000
+ 2215 = 1.00000
+ 2212 = 1.00000
+ 2214 = 1.00000
+ 2216 = 1.00000
+ 2217 = 1.00000
+ 2221 = 1.00000
+ 2218 = 1.00000
+ 2222 = 1.00000
+ 2227 = 1.00000
+ 2231 = 1.00000
+ 2228 = 1.00000
+ 2232 = 1.00000
+ 2229 = 1.00000
+ 2233 = 1.00000
+ 2230 = 1.00000
+ 2234 = 1.00000
+ 2247 = 1.00000
+ 2255 = 1.00000
+ 2248 = 1.00000
+ 2256 = 1.00000
+ 2249 = 1.00000
+ 2257 = 1.00000
+ 2250 = 1.00000
+ 2258 = 1.00000
+ 2259 = 1.00000
+ 2263 = 1.00000
+ 2260 = 1.00000
+ 2264 = 1.00000
+ 2261 = 1.00000
+ 2265 = 1.00000
+ 2262 = 1.00000
+ 2266 = 1.00000
+ 2307 = 1.00000
+ 2308 = 1.00000
+ 2309 = 1.00000
+ 2310 = 1.00000
+ 2312 = 1.00000
+ 2313 = 1.00000
+ 2315 = 1.00000
+ 2314 = 1.00000
+ 2316 = 1.00000
+ 2319 = 1.00000
+ 2321 = 1.00000
+ 2323 = 1.00000
+ 2320 = 1.00000
+ 2322 = 1.00000
+ 2324 = 1.00000
+ 2331 = 1.00000
+ 2335 = 1.00000
+ 2332 = 1.00000
+ 2336 = 1.00000
+ 2337 = 1.00000
+ 2341 = 1.00000
+ 2338 = 1.00000
+ 2342 = 1.00000
+ 2355 = 1.00000
+ 2363 = 1.00000
+ 2356 = 1.00000
+ 2364 = 1.00000
+ 2357 = 1.00000
+ 2365 = 1.00000
+ 2358 = 1.00000
+ 2366 = 1.00000
+ 2367 = 1.00000
+ 2371 = 1.00000
+ 2368 = 1.00000
+ 2372 = 1.00000
+ 2369 = 1.00000
+ 2373 = 1.00000
+ 2370 = 1.00000
+ 2374 = 1.00000
+ 2416 = 1.00000
+ 2417 = 1.00000
+ 2423 = 1.00000
+ 2425 = 1.00000
+ 2424 = 1.00000
+ 2426 = 1.00000
+ 2441 = 1.00000
+ 2443 = 1.00000
+ 2442 = 1.00000
+ 2444 = 1.00000
+ 2455 = 1.00000
+ 2459 = 1.00000
+ 2456 = 1.00000
+ 2460 = 1.00000
+ 2457 = 1.00000
+ 2461 = 1.00000
+ 2458 = 1.00000
+ 2462 = 1.00000
+ 2604 = 1.00000
+ 2605 = 1.00000
+ 2606 = 1.00000
+ 2607 = 1.00000
+ 2609 = 1.00000
+ 2612 = 1.00000
+ 2614 = 1.00000
+ 2613 = 1.00000
+ 2615 = 1.00000
+ 2622 = 1.00000
+ 2626 = 1.00000
+ 2623 = 1.00000
+ 2627 = 1.00000
+ 2628 = 1.00000
+ 2630 = 1.00000
+ 2632 = 1.00000
+ 2629 = 1.00000
+ 2631 = 1.00000
+ 2633 = 1.00000
+ 2634 = 1.00000
+ 2638 = 1.00000
+ 2635 = 1.00000
+ 2639 = 1.00000
+ 2644 = 1.00000
+ 2648 = 1.00000
+ 2645 = 1.00000
+ 2649 = 1.00000
+ 2646 = 1.00000
+ 2650 = 1.00000
+ 2647 = 1.00000
+ 2651 = 1.00000
+ 2664 = 1.00000
+ 2672 = 1.00000
+ 2665 = 1.00000
+ 2673 = 1.00000
+ 2666 = 1.00000
+ 2674 = 1.00000
+ 2667 = 1.00000
+ 2675 = 1.00000
+ 2712 = 1.00000
+ 2714 = 1.00000
+ 2721 = 1.00000
+ 2725 = 1.00000
+ 2722 = 1.00000
+ 2726 = 1.00000
+ 2727 = 1.00000
+ 2731 = 1.00000
+ 2728 = 1.00000
+ 2732 = 1.00000
+ 2745 = 1.00000
+ 2753 = 1.00000
+ 2746 = 1.00000
+ 2754 = 1.00000
+ 2747 = 1.00000
+ 2755 = 1.00000
+ 2748 = 1.00000
+ 2756 = 1.00000
+ 2793 = 1.00000
+ 2794 = 1.00000
+ 2799 = 1.00000
+ 2801 = 1.00000
+ 2800 = 1.00000
+ 2802 = 1.00000
+ 2805 = 1.00000
+ 2807 = 1.00000
+ 2806 = 1.00000
+ 2808 = 1.00000
+ 2853 = 1.00000
+ 2857 = 1.00000
+ 2854 = 1.00000
+ 2858 = 1.00000
+ 2855 = 1.00000
+ 2859 = 1.00000
+ 2856 = 1.00000
+ 2860 = 1.00000
+ 2901 = 1.00000
+ 2902 = 1.00000
+ 2903 = 1.00000
+ 2905 = 1.00000
+ 2906 = 1.00000
+ 2907 = 1.00000
+ 2909 = 1.00000
+ 2911 = 1.00000
+ 2908 = 1.00000
+ 2910 = 1.00000
+ 2912 = 1.00000
+ 2913 = 1.00000
+ 2915 = 1.00000
+ 2914 = 1.00000
+ 2916 = 1.00000
+ 2921 = 1.00000
+ 2923 = 1.00000
+ 2922 = 1.00000
+ 2924 = 1.00000
+ 2933 = 1.00000
+ 2935 = 1.00000
+ 2934 = 1.00000
+ 2936 = 1.00000
+ 2941 = 1.00000
+ 2945 = 1.00000
+ 2942 = 1.00000
+ 2946 = 1.00000
+ 2943 = 1.00000
+ 2947 = 1.00000
+ 2944 = 1.00000
+ 2948 = 1.00000
+ 2961 = 1.00000
+ 2965 = 1.00000
+ 2962 = 1.00000
+ 2966 = 1.00000
+ 2963 = 1.00000
+ 2967 = 1.00000
+ 2964 = 1.00000
+ 2968 = 1.00000
+ 3009 = 1.00000
+ 3010 = 1.00000
+ 3011 = 1.00000
+ 3012 = 1.00000
+ 3014 = 1.00000
+ 3015 = 1.00000
+ 3017 = 1.00000
+ 3016 = 1.00000
+ 3018 = 1.00000
+ 3021 = 1.00000
+ 3023 = 1.00000
+ 3025 = 1.00000
+ 3022 = 1.00000
+ 3024 = 1.00000
+ 3026 = 1.00000
+ 3033 = 1.00000
+ 3037 = 1.00000
+ 3034 = 1.00000
+ 3038 = 1.00000
+ 3039 = 1.00000
+ 3043 = 1.00000
+ 3040 = 1.00000
+ 3044 = 1.00000
+ 3057 = 1.00000
+ 3065 = 1.00000
+ 3058 = 1.00000
+ 3066 = 1.00000
+ 3059 = 1.00000
+ 3067 = 1.00000
+ 3060 = 1.00000
+ 3068 = 1.00000
+ 3069 = 1.00000
+ 3073 = 1.00000
+ 3070 = 1.00000
+ 3074 = 1.00000
+ 3071 = 1.00000
+ 3075 = 1.00000
+ 3072 = 1.00000
+ 3076 = 1.00000
+ 3117 = 1.00000
+ 3118 = 1.00000
+ 3119 = 1.00000
+ 3120 = 1.00000
+ 3121 = 1.00000
+ 3122 = 1.00000
+ 3123 = 1.00000
+ 3125 = 1.00000
+ 3127 = 1.00000
+ 3124 = 1.00000
+ 3126 = 1.00000
+ 3128 = 1.00000
+ 3129 = 1.00000
+ 3131 = 1.00000
+ 3133 = 1.00000
+ 3130 = 1.00000
+ 3132 = 1.00000
+ 3134 = 1.00000
+ 3137 = 1.00000
+ 3139 = 1.00000
+ 3138 = 1.00000
+ 3140 = 1.00000
+ 3141 = 1.00000
+ 3145 = 1.00000
+ 3142 = 1.00000
+ 3146 = 1.00000
+ 3147 = 1.00000
+ 3149 = 1.00000
+ 3151 = 1.00000
+ 3148 = 1.00000
+ 3150 = 1.00000
+ 3152 = 1.00000
+ 3157 = 1.00000
+ 3161 = 1.00000
+ 3158 = 1.00000
+ 3162 = 1.00000
+ 3159 = 1.00000
+ 3163 = 1.00000
+ 3160 = 1.00000
+ 3164 = 1.00000
+ 3165 = 1.00000
+ 3173 = 1.00000
+ 3166 = 1.00000
+ 3174 = 1.00000
+ 3167 = 1.00000
+ 3175 = 1.00000
+ 3168 = 1.00000
+ 3176 = 1.00000
+ 3177 = 1.00000
+ 3181 = 1.00000
+ 3178 = 1.00000
+ 3182 = 1.00000
+ 3179 = 1.00000
+ 3183 = 1.00000
+ 3180 = 1.00000
+ 3184 = 1.00000
+ 3307 = 1.00000
+ 3308 = 1.00000
+ 3311 = 1.00000
+ 3313 = 1.00000
+ 3312 = 1.00000
+ 3314 = 1.00000
+ 3323 = 1.00000
+ 3325 = 1.00000
+ 3324 = 1.00000
+ 3326 = 1.00000
+ 3331 = 1.00000
+ 3335 = 1.00000
+ 3332 = 1.00000
+ 3336 = 1.00000
+ 3333 = 1.00000
+ 3337 = 1.00000
+ 3334 = 1.00000
+ 3338 = 1.00000
+ 3387 = 1.00000
+ 3389 = 1.00000
+ 3396 = 1.00000
+ 3400 = 1.00000
+ 3397 = 1.00000
+ 3401 = 1.00000
+ 3402 = 1.00000
+ 3406 = 1.00000
+ 3403 = 1.00000
+ 3407 = 1.00000
+ 3420 = 1.00000
+ 3428 = 1.00000
+ 3421 = 1.00000
+ 3429 = 1.00000
+ 3422 = 1.00000
+ 3430 = 1.00000
+ 3423 = 1.00000
+ 3431 = 1.00000
+ 3468 = 1.00000
+ 3469 = 1.00000
+ 3470 = 1.00000
+ 3473 = 1.00000
+ 3475 = 1.00000
+ 3474 = 1.00000
+ 3476 = 1.00000
+ 3477 = 1.00000
+ 3481 = 1.00000
+ 3478 = 1.00000
+ 3482 = 1.00000
+ 3483 = 1.00000
+ 3485 = 1.00000
+ 3487 = 1.00000
+ 3484 = 1.00000
+ 3486 = 1.00000
+ 3488 = 1.00000
+ 3493 = 1.00000
+ 3497 = 1.00000
+ 3494 = 1.00000
+ 3498 = 1.00000
+ 3495 = 1.00000
+ 3499 = 1.00000
+ 3496 = 1.00000
+ 3500 = 1.00000
+ 3501 = 1.00000
+ 3509 = 1.00000
+ 3502 = 1.00000
+ 3510 = 1.00000
+ 3503 = 1.00000
+ 3511 = 1.00000
+ 3504 = 1.00000
+ 3512 = 1.00000
+ 3549 = 1.00000
+ 3550 = 1.00000
+ 3551 = 1.00000
+ 3552 = 1.00000
+ 3554 = 1.00000
+ 3556 = 1.00000
+ 3557 = 1.00000
+ 3563 = 1.00000
+ 3565 = 1.00000
+ 3564 = 1.00000
+ 3566 = 1.00000
+ 3573 = 1.00000
+ 3577 = 1.00000
+ 3574 = 1.00000
+ 3578 = 1.00000
+ 3585 = 1.00000
+ 3587 = 1.00000
+ 3589 = 1.00000
+ 3586 = 1.00000
+ 3588 = 1.00000
+ 3590 = 1.00000
+ 3591 = 1.00000
+ 3595 = 1.00000
+ 3592 = 1.00000
+ 3596 = 1.00000
+ 3599 = 1.00000
+ 3601 = 1.00000
+ 3600 = 1.00000
+ 3602 = 1.00000
+ 3613 = 1.00000
+ 3617 = 1.00000
+ 3614 = 1.00000
+ 3618 = 1.00000
+ 3615 = 1.00000
+ 3619 = 1.00000
+ 3616 = 1.00000
+ 3620 = 1.00000
+ 3633 = 1.00000
+ 3641 = 1.00000
+ 3634 = 1.00000
+ 3642 = 1.00000
+ 3635 = 1.00000
+ 3643 = 1.00000
+ 3636 = 1.00000
+ 3644 = 1.00000
+ 3693 = 1.00000
+ 3695 = 1.00000
+ 3705 = 1.00000
+ 3709 = 1.00000
+ 3706 = 1.00000
+ 3710 = 1.00000
+ 3717 = 1.00000
+ 3721 = 1.00000
+ 3718 = 1.00000
+ 3722 = 1.00000
+ 3741 = 1.00000
+ 3749 = 1.00000
+ 3742 = 1.00000
+ 3750 = 1.00000
+ 3743 = 1.00000
+ 3751 = 1.00000
+ 3744 = 1.00000
+ 3752 = 1.00000
+ 3802 = 1.00000
+ 3803 = 1.00000
+ 3809 = 1.00000
+ 3811 = 1.00000
+ 3810 = 1.00000
+ 3812 = 1.00000
+ 3827 = 1.00000
+ 3829 = 1.00000
+ 3828 = 1.00000
+ 3830 = 1.00000
+ 3841 = 1.00000
+ 3845 = 1.00000
+ 3842 = 1.00000
+ 3846 = 1.00000
+ 3843 = 1.00000
+ 3847 = 1.00000
+ 3844 = 1.00000
+ 3848 = 1.00000
+ 3990 = 1.00000
+ 3991 = 1.00000
+ 3992 = 1.00000
+ 3993 = 1.00000
+ 3994 = 1.00000
+ 3995 = 1.00000
+ 3996 = 1.00000
+ 3997 = 1.00000
+ 3998 = 1.00000
+ 3999 = 1.00000
+ 4000 = 1.00000
+ 4002 = 1.00000
+ 4004 = 1.00000
+ 4006 = 1.00000
+ 4003 = 1.00000
+ 4005 = 1.00000
+ 4007 = 1.00000
+ 4008 = 1.00000
+ 4010 = 1.00000
+ 4009 = 1.00000
+ 4011 = 1.00000
+ 4014 = 1.00000
+ 4016 = 1.00000
+ 4018 = 1.00000
+ 4015 = 1.00000
+ 4017 = 1.00000
+ 4019 = 1.00000
+ 4020 = 1.00000
+ 4022 = 1.00000
+ 4021 = 1.00000
+ 4023 = 1.00000
+ 4026 = 1.00000
+ 4028 = 1.00000
+ 4030 = 1.00000
+ 4027 = 1.00000
+ 4029 = 1.00000
+ 4031 = 1.00000
+ 4032 = 1.00000
+ 4036 = 1.00000
+ 4033 = 1.00000
+ 4037 = 1.00000
+ 4040 = 1.00000
+ 4042 = 1.00000
+ 4041 = 1.00000
+ 4043 = 1.00000
+ 4054 = 1.00000
+ 4058 = 1.00000
+ 4055 = 1.00000
+ 4059 = 1.00000
+ 4056 = 1.00000
+ 4060 = 1.00000
+ 4057 = 1.00000
+ 4061 = 1.00000
+ 4074 = 1.00000
+ 4082 = 1.00000
+ 4075 = 1.00000
+ 4083 = 1.00000
+ 4076 = 1.00000
+ 4084 = 1.00000
+ 4077 = 1.00000
+ 4085 = 1.00000
+ 4098 = 1.00000
+ 4102 = 1.00000
+ 4099 = 1.00000
+ 4103 = 1.00000
+ 4100 = 1.00000
+ 4104 = 1.00000
+ 4101 = 1.00000
+ 4105 = 1.00000
+ 4134 = 1.00000
+ 4135 = 1.00000
+ 4136 = 1.00000
+ 4137 = 1.00000
+ 4138 = 1.00000
+ 4140 = 1.00000
+ 4142 = 1.00000
+ 4141 = 1.00000
+ 4143 = 1.00000
+ 4146 = 1.00000
+ 4148 = 1.00000
+ 4150 = 1.00000
+ 4147 = 1.00000
+ 4149 = 1.00000
+ 4151 = 1.00000
+ 4152 = 1.00000
+ 4154 = 1.00000
+ 4153 = 1.00000
+ 4155 = 1.00000
+ 4158 = 1.00000
+ 4162 = 1.00000
+ 4159 = 1.00000
+ 4163 = 1.00000
+ 4182 = 1.00000
+ 4190 = 1.00000
+ 4183 = 1.00000
+ 4191 = 1.00000
+ 4184 = 1.00000
+ 4192 = 1.00000
+ 4185 = 1.00000
+ 4193 = 1.00000
+ 4206 = 1.00000
+ 4210 = 1.00000
+ 4207 = 1.00000
+ 4211 = 1.00000
+ 4208 = 1.00000
+ 4212 = 1.00000
+ 4209 = 1.00000
+ 4213 = 1.00000
+ 4242 = 1.00000
+ 4243 = 1.00000
+ 4244 = 1.00000
+ 4245 = 1.00000
+ 4246 = 1.00000
+ 4248 = 1.00000
+ 4250 = 1.00000
+ 4252 = 1.00000
+ 4249 = 1.00000
+ 4251 = 1.00000
+ 4253 = 1.00000
+ 4254 = 1.00000
+ 4256 = 1.00000
+ 4255 = 1.00000
+ 4257 = 1.00000
+ 4260 = 1.00000
+ 4262 = 1.00000
+ 4261 = 1.00000
+ 4263 = 1.00000
+ 4268 = 1.00000
+ 4270 = 1.00000
+ 4269 = 1.00000
+ 4271 = 1.00000
+ 4282 = 1.00000
+ 4286 = 1.00000
+ 4283 = 1.00000
+ 4287 = 1.00000
+ 4284 = 1.00000
+ 4288 = 1.00000
+ 4285 = 1.00000
+ 4289 = 1.00000
+ 4314 = 1.00000
+ 4318 = 1.00000
+ 4315 = 1.00000
+ 4319 = 1.00000
+ 4316 = 1.00000
+ 4320 = 1.00000
+ 4317 = 1.00000
+ 4321 = 1.00000
+ 4350 = 1.00000
+ 4351 = 1.00000
+ 4353 = 1.00000
+ 4355 = 1.00000
+ 4354 = 1.00000
+ 4356 = 1.00000
+ 4359 = 1.00000
+ 4361 = 1.00000
+ 4360 = 1.00000
+ 4362 = 1.00000
+ 4395 = 1.00000
+ 4399 = 1.00000
+ 4396 = 1.00000
+ 4400 = 1.00000
+ 4397 = 1.00000
+ 4401 = 1.00000
+ 4398 = 1.00000
+ 4402 = 1.00000
+ 4431 = 1.00000
+ 4433 = 1.00000
+ 4443 = 1.00000
+ 4447 = 1.00000
+ 4444 = 1.00000
+ 4448 = 1.00000
+ 4455 = 1.00000
+ 4459 = 1.00000
+ 4456 = 1.00000
+ 4460 = 1.00000
+ 4479 = 1.00000
+ 4487 = 1.00000
+ 4480 = 1.00000
+ 4488 = 1.00000
+ 4481 = 1.00000
+ 4489 = 1.00000
+ 4482 = 1.00000
+ 4490 = 1.00000
+ 4539 = 1.00000
+ 4540 = 1.00000
+ 4541 = 1.00000
+ 4543 = 1.00000
+ 4544 = 1.00000
+ 4547 = 1.00000
+ 4549 = 1.00000
+ 4548 = 1.00000
+ 4550 = 1.00000
+ 4551 = 1.00000
+ 4555 = 1.00000
+ 4552 = 1.00000
+ 4556 = 1.00000
+ 4563 = 1.00000
+ 4565 = 1.00000
+ 4567 = 1.00000
+ 4564 = 1.00000
+ 4566 = 1.00000
+ 4568 = 1.00000
+ 4571 = 1.00000
+ 4573 = 1.00000
+ 4572 = 1.00000
+ 4574 = 1.00000
+ 4579 = 1.00000
+ 4583 = 1.00000
+ 4580 = 1.00000
+ 4584 = 1.00000
+ 4581 = 1.00000
+ 4585 = 1.00000
+ 4582 = 1.00000
+ 4586 = 1.00000
+ 4587 = 1.00000
+ 4595 = 1.00000
+ 4588 = 1.00000
+ 4596 = 1.00000
+ 4589 = 1.00000
+ 4597 = 1.00000
+ 4590 = 1.00000
+ 4598 = 1.00000
+ 4729 = 1.00000
+ 4730 = 1.00000
+ 4733 = 1.00000
+ 4735 = 1.00000
+ 4734 = 1.00000
+ 4736 = 1.00000
+ 4745 = 1.00000
+ 4747 = 1.00000
+ 4746 = 1.00000
+ 4748 = 1.00000
+ 4753 = 1.00000
+ 4757 = 1.00000
+ 4754 = 1.00000
+ 4758 = 1.00000
+ 4755 = 1.00000
+ 4759 = 1.00000
+ 4756 = 1.00000
+ 4760 = 1.00000
+ 4809 = 1.00000
+ 4810 = 1.00000
+ 4811 = 1.00000
+ 4812 = 1.00000
+ 4813 = 1.00000
+ 4815 = 1.00000
+ 4817 = 1.00000
+ 4816 = 1.00000
+ 4818 = 1.00000
+ 4821 = 1.00000
+ 4823 = 1.00000
+ 4825 = 1.00000
+ 4822 = 1.00000
+ 4824 = 1.00000
+ 4826 = 1.00000
+ 4827 = 1.00000
+ 4829 = 1.00000
+ 4828 = 1.00000
+ 4830 = 1.00000
+ 4833 = 1.00000
+ 4837 = 1.00000
+ 4834 = 1.00000
+ 4838 = 1.00000
+ 4857 = 1.00000
+ 4865 = 1.00000
+ 4858 = 1.00000
+ 4866 = 1.00000
+ 4859 = 1.00000
+ 4867 = 1.00000
+ 4860 = 1.00000
+ 4868 = 1.00000
+ 4881 = 1.00000
+ 4885 = 1.00000
+ 4882 = 1.00000
+ 4886 = 1.00000
+ 4883 = 1.00000
+ 4887 = 1.00000
+ 4884 = 1.00000
+ 4888 = 1.00000
+ 4917 = 1.00000
+ 4918 = 1.00000
+ 4919 = 1.00000
+ 4920 = 1.00000
+ 4921 = 1.00000
+ 4922 = 1.00000
+ 4923 = 1.00000
+ 4925 = 1.00000
+ 4927 = 1.00000
+ 4924 = 1.00000
+ 4926 = 1.00000
+ 4928 = 1.00000
+ 4929 = 1.00000
+ 4931 = 1.00000
+ 4933 = 1.00000
+ 4930 = 1.00000
+ 4932 = 1.00000
+ 4934 = 1.00000
+ 4935 = 1.00000
+ 4937 = 1.00000
+ 4936 = 1.00000
+ 4938 = 1.00000
+ 4941 = 1.00000
+ 4943 = 1.00000
+ 4945 = 1.00000
+ 4942 = 1.00000
+ 4944 = 1.00000
+ 4946 = 1.00000
+ 4949 = 1.00000
+ 4951 = 1.00000
+ 4950 = 1.00000
+ 4952 = 1.00000
+ 4957 = 1.00000
+ 4961 = 1.00000
+ 4958 = 1.00000
+ 4962 = 1.00000
+ 4959 = 1.00000
+ 4963 = 1.00000
+ 4960 = 1.00000
+ 4964 = 1.00000
+ 4965 = 1.00000
+ 4973 = 1.00000
+ 4966 = 1.00000
+ 4974 = 1.00000
+ 4967 = 1.00000
+ 4975 = 1.00000
+ 4968 = 1.00000
+ 4976 = 1.00000
+ 4989 = 1.00000
+ 4993 = 1.00000
+ 4990 = 1.00000
+ 4994 = 1.00000
+ 4991 = 1.00000
+ 4995 = 1.00000
+ 4992 = 1.00000
+ 4996 = 1.00000
+ 5025 = 1.00000
+ 5026 = 1.00000
+ 5028 = 1.00000
+ 5030 = 1.00000
+ 5029 = 1.00000
+ 5031 = 1.00000
+ 5034 = 1.00000
+ 5036 = 1.00000
+ 5035 = 1.00000
+ 5037 = 1.00000
+ 5070 = 1.00000
+ 5074 = 1.00000
+ 5071 = 1.00000
+ 5075 = 1.00000
+ 5072 = 1.00000
+ 5076 = 1.00000
+ 5073 = 1.00000
+ 5077 = 1.00000
+ 5106 = 1.00000
+ 5107 = 1.00000
+ 5108 = 1.00000
+ 5109 = 1.00000
+ 5111 = 1.00000
+ 5113 = 1.00000
+ 5110 = 1.00000
+ 5112 = 1.00000
+ 5114 = 1.00000
+ 5115 = 1.00000
+ 5117 = 1.00000
+ 5116 = 1.00000
+ 5118 = 1.00000
+ 5123 = 1.00000
+ 5125 = 1.00000
+ 5124 = 1.00000
+ 5126 = 1.00000
+ 5131 = 1.00000
+ 5135 = 1.00000
+ 5132 = 1.00000
+ 5136 = 1.00000
+ 5133 = 1.00000
+ 5137 = 1.00000
+ 5134 = 1.00000
+ 5138 = 1.00000
+ 5151 = 1.00000
+ 5155 = 1.00000
+ 5152 = 1.00000
+ 5156 = 1.00000
+ 5153 = 1.00000
+ 5157 = 1.00000
+ 5154 = 1.00000
+ 5158 = 1.00000
+ 5188 = 1.00000
+ 5189 = 1.00000
+ 5195 = 1.00000
+ 5197 = 1.00000
+ 5196 = 1.00000
+ 5198 = 1.00000
+ 5213 = 1.00000
+ 5215 = 1.00000
+ 5214 = 1.00000
+ 5216 = 1.00000
+ 5227 = 1.00000
+ 5231 = 1.00000
+ 5228 = 1.00000
+ 5232 = 1.00000
+ 5229 = 1.00000
+ 5233 = 1.00000
+ 5230 = 1.00000
+ 5234 = 1.00000
+ 5376 = 1.00000
+ 5377 = 1.00000
+ 5378 = 1.00000
+ 5379 = 1.00000
+ 5381 = 1.00000
+ 5384 = 1.00000
+ 5386 = 1.00000
+ 5385 = 1.00000
+ 5387 = 1.00000
+ 5394 = 1.00000
+ 5398 = 1.00000
+ 5395 = 1.00000
+ 5399 = 1.00000
+ 5400 = 1.00000
+ 5402 = 1.00000
+ 5404 = 1.00000
+ 5401 = 1.00000
+ 5403 = 1.00000
+ 5405 = 1.00000
+ 5406 = 1.00000
+ 5410 = 1.00000
+ 5407 = 1.00000
+ 5411 = 1.00000
+ 5416 = 1.00000
+ 5420 = 1.00000
+ 5417 = 1.00000
+ 5421 = 1.00000
+ 5418 = 1.00000
+ 5422 = 1.00000
+ 5419 = 1.00000
+ 5423 = 1.00000
+ 5436 = 1.00000
+ 5444 = 1.00000
+ 5437 = 1.00000
+ 5445 = 1.00000
+ 5438 = 1.00000
+ 5446 = 1.00000
+ 5439 = 1.00000
+ 5447 = 1.00000
+ 5484 = 1.00000
+ 5486 = 1.00000
+ 5493 = 1.00000
+ 5497 = 1.00000
+ 5494 = 1.00000
+ 5498 = 1.00000
+ 5499 = 1.00000
+ 5503 = 1.00000
+ 5500 = 1.00000
+ 5504 = 1.00000
+ 5517 = 1.00000
+ 5525 = 1.00000
+ 5518 = 1.00000
+ 5526 = 1.00000
+ 5519 = 1.00000
+ 5527 = 1.00000
+ 5520 = 1.00000
+ 5528 = 1.00000
+ 5565 = 1.00000
+ 5566 = 1.00000
+ 5567 = 1.00000
+ 5568 = 1.00000
+ 5569 = 1.00000
+ 5571 = 1.00000
+ 5573 = 1.00000
+ 5575 = 1.00000
+ 5572 = 1.00000
+ 5574 = 1.00000
+ 5576 = 1.00000
+ 5577 = 1.00000
+ 5579 = 1.00000
+ 5578 = 1.00000
+ 5580 = 1.00000
+ 5583 = 1.00000
+ 5585 = 1.00000
+ 5584 = 1.00000
+ 5586 = 1.00000
+ 5591 = 1.00000
+ 5593 = 1.00000
+ 5592 = 1.00000
+ 5594 = 1.00000
+ 5605 = 1.00000
+ 5609 = 1.00000
+ 5606 = 1.00000
+ 5610 = 1.00000
+ 5607 = 1.00000
+ 5611 = 1.00000
+ 5608 = 1.00000
+ 5612 = 1.00000
+ 5637 = 1.00000
+ 5641 = 1.00000
+ 5638 = 1.00000
+ 5642 = 1.00000
+ 5639 = 1.00000
+ 5643 = 1.00000
+ 5640 = 1.00000
+ 5644 = 1.00000
+ 5673 = 1.00000
+ 5674 = 1.00000
+ 5676 = 1.00000
+ 5678 = 1.00000
+ 5677 = 1.00000
+ 5679 = 1.00000
+ 5682 = 1.00000
+ 5684 = 1.00000
+ 5683 = 1.00000
+ 5685 = 1.00000
+ 5718 = 1.00000
+ 5722 = 1.00000
+ 5719 = 1.00000
+ 5723 = 1.00000
+ 5720 = 1.00000
+ 5724 = 1.00000
+ 5721 = 1.00000
+ 5725 = 1.00000
+ 5754 = 1.00000
+ 5755 = 1.00000
+ 5756 = 1.00000
+ 5757 = 1.00000
+ 5758 = 1.00000
+ 5759 = 1.00000
+ 5760 = 1.00000
+ 5762 = 1.00000
+ 5764 = 1.00000
+ 5761 = 1.00000
+ 5763 = 1.00000
+ 5765 = 1.00000
+ 5766 = 1.00000
+ 5768 = 1.00000
+ 5767 = 1.00000
+ 5769 = 1.00000
+ 5772 = 1.00000
+ 5774 = 1.00000
+ 5776 = 1.00000
+ 5773 = 1.00000
+ 5775 = 1.00000
+ 5777 = 1.00000
+ 5778 = 1.00000
+ 5780 = 1.00000
+ 5782 = 1.00000
+ 5779 = 1.00000
+ 5781 = 1.00000
+ 5783 = 1.00000
+ 5784 = 1.00000
+ 5788 = 1.00000
+ 5785 = 1.00000
+ 5789 = 1.00000
+ 5794 = 1.00000
+ 5798 = 1.00000
+ 5795 = 1.00000
+ 5799 = 1.00000
+ 5796 = 1.00000
+ 5800 = 1.00000
+ 5797 = 1.00000
+ 5801 = 1.00000
+ 5814 = 1.00000
+ 5822 = 1.00000
+ 5815 = 1.00000
+ 5823 = 1.00000
+ 5816 = 1.00000
+ 5824 = 1.00000
+ 5817 = 1.00000
+ 5825 = 1.00000
+ 5826 = 1.00000
+ 5830 = 1.00000
+ 5827 = 1.00000
+ 5831 = 1.00000
+ 5828 = 1.00000
+ 5832 = 1.00000
+ 5829 = 1.00000
+ 5833 = 1.00000
+ 5862 = 1.00000
+ 5863 = 1.00000
+ 5864 = 1.00000
+ 5865 = 1.00000
+ 5867 = 1.00000
+ 5866 = 1.00000
+ 5868 = 1.00000
+ 5871 = 1.00000
+ 5873 = 1.00000
+ 5875 = 1.00000
+ 5872 = 1.00000
+ 5874 = 1.00000
+ 5876 = 1.00000
+ 5877 = 1.00000
+ 5881 = 1.00000
+ 5878 = 1.00000
+ 5882 = 1.00000
+ 5895 = 1.00000
+ 5903 = 1.00000
+ 5896 = 1.00000
+ 5904 = 1.00000
+ 5897 = 1.00000
+ 5905 = 1.00000
+ 5898 = 1.00000
+ 5906 = 1.00000
+ 5907 = 1.00000
+ 5911 = 1.00000
+ 5908 = 1.00000
+ 5912 = 1.00000
+ 5909 = 1.00000
+ 5913 = 1.00000
+ 5910 = 1.00000
+ 5914 = 1.00000
+ 6025 = 1.00000
+ 6026 = 1.00000
+ 6029 = 1.00000
+ 6031 = 1.00000
+ 6030 = 1.00000
+ 6032 = 1.00000
+ 6041 = 1.00000
+ 6043 = 1.00000
+ 6042 = 1.00000
+ 6044 = 1.00000
+ 6049 = 1.00000
+ 6053 = 1.00000
+ 6050 = 1.00000
+ 6054 = 1.00000
+ 6051 = 1.00000
+ 6055 = 1.00000
+ 6052 = 1.00000
+ 6056 = 1.00000
+ 6105 = 1.00000
+ 6107 = 1.00000
+ 6114 = 1.00000
+ 6118 = 1.00000
+ 6115 = 1.00000
+ 6119 = 1.00000
+ 6120 = 1.00000
+ 6124 = 1.00000
+ 6121 = 1.00000
+ 6125 = 1.00000
+ 6138 = 1.00000
+ 6146 = 1.00000
+ 6139 = 1.00000
+ 6147 = 1.00000
+ 6140 = 1.00000
+ 6148 = 1.00000
+ 6141 = 1.00000
+ 6149 = 1.00000
+ 6186 = 1.00000
+ 6187 = 1.00000
+ 6188 = 1.00000
+ 6191 = 1.00000
+ 6193 = 1.00000
+ 6192 = 1.00000
+ 6194 = 1.00000
+ 6195 = 1.00000
+ 6199 = 1.00000
+ 6196 = 1.00000
+ 6200 = 1.00000
+ 6201 = 1.00000
+ 6203 = 1.00000
+ 6205 = 1.00000
+ 6202 = 1.00000
+ 6204 = 1.00000
+ 6206 = 1.00000
+ 6211 = 1.00000
+ 6215 = 1.00000
+ 6212 = 1.00000
+ 6216 = 1.00000
+ 6213 = 1.00000
+ 6217 = 1.00000
+ 6214 = 1.00000
+ 6218 = 1.00000
+ 6219 = 1.00000
+ 6227 = 1.00000
+ 6220 = 1.00000
+ 6228 = 1.00000
+ 6221 = 1.00000
+ 6229 = 1.00000
+ 6222 = 1.00000
+ 6230 = 1.00000
+ 6267 = 1.00000
+ 6268 = 1.00000
+ 6270 = 1.00000
+ 6272 = 1.00000
+ 6271 = 1.00000
+ 6273 = 1.00000
+ 6276 = 1.00000
+ 6278 = 1.00000
+ 6277 = 1.00000
+ 6279 = 1.00000
+ 6312 = 1.00000
+ 6316 = 1.00000
+ 6313 = 1.00000
+ 6317 = 1.00000
+ 6314 = 1.00000
+ 6318 = 1.00000
+ 6315 = 1.00000
+ 6319 = 1.00000
+ 6348 = 1.00000
+ 6349 = 1.00000
+ 6350 = 1.00000
+ 6351 = 1.00000
+ 6353 = 1.00000
+ 6355 = 1.00000
+ 6352 = 1.00000
+ 6354 = 1.00000
+ 6356 = 1.00000
+ 6357 = 1.00000
+ 6359 = 1.00000
+ 6358 = 1.00000
+ 6360 = 1.00000
+ 6365 = 1.00000
+ 6367 = 1.00000
+ 6366 = 1.00000
+ 6368 = 1.00000
+ 6373 = 1.00000
+ 6377 = 1.00000
+ 6374 = 1.00000
+ 6378 = 1.00000
+ 6375 = 1.00000
+ 6379 = 1.00000
+ 6376 = 1.00000
+ 6380 = 1.00000
+ 6393 = 1.00000
+ 6397 = 1.00000
+ 6394 = 1.00000
+ 6398 = 1.00000
+ 6395 = 1.00000
+ 6399 = 1.00000
+ 6396 = 1.00000
+ 6400 = 1.00000
+ 6429 = 1.00000
+ 6430 = 1.00000
+ 6431 = 1.00000
+ 6432 = 1.00000
+ 6434 = 1.00000
+ 6433 = 1.00000
+ 6435 = 1.00000
+ 6438 = 1.00000
+ 6440 = 1.00000
+ 6442 = 1.00000
+ 6439 = 1.00000
+ 6441 = 1.00000
+ 6443 = 1.00000
+ 6444 = 1.00000
+ 6448 = 1.00000
+ 6445 = 1.00000
+ 6449 = 1.00000
+ 6462 = 1.00000
+ 6470 = 1.00000
+ 6463 = 1.00000
+ 6471 = 1.00000
+ 6464 = 1.00000
+ 6472 = 1.00000
+ 6465 = 1.00000
+ 6473 = 1.00000
+ 6474 = 1.00000
+ 6478 = 1.00000
+ 6475 = 1.00000
+ 6479 = 1.00000
+ 6476 = 1.00000
+ 6480 = 1.00000
+ 6477 = 1.00000
+ 6481 = 1.00000
+ 6510 = 1.00000
+ 6511 = 1.00000
+ 6512 = 1.00000
+ 6513 = 1.00000
+ 6515 = 1.00000
+ 6517 = 1.00000
+ 6514 = 1.00000
+ 6516 = 1.00000
+ 6518 = 1.00000
+ 6519 = 1.00000
+ 6521 = 1.00000
+ 6523 = 1.00000
+ 6520 = 1.00000
+ 6522 = 1.00000
+ 6524 = 1.00000
+ 6525 = 1.00000
+ 6527 = 1.00000
+ 6529 = 1.00000
+ 6526 = 1.00000
+ 6528 = 1.00000
+ 6530 = 1.00000
+ 6535 = 1.00000
+ 6539 = 1.00000
+ 6536 = 1.00000
+ 6540 = 1.00000
+ 6537 = 1.00000
+ 6541 = 1.00000
+ 6538 = 1.00000
+ 6542 = 1.00000
+ 6543 = 1.00000
+ 6551 = 1.00000
+ 6544 = 1.00000
+ 6552 = 1.00000
+ 6545 = 1.00000
+ 6553 = 1.00000
+ 6546 = 1.00000
+ 6554 = 1.00000
+ 6555 = 1.00000
+ 6559 = 1.00000
+ 6556 = 1.00000
+ 6560 = 1.00000
+ 6557 = 1.00000
+ 6561 = 1.00000
+ 6558 = 1.00000
+ 6562 = 1.00000
#include <unistd.h>
-template <int dim, int spacedim=dim>
+template <int dim, int spacedim>
void write_vtk (const parallel::distributed::Triangulation<dim,spacedim> &tria,
const char *filename)
{
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2014 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.
+//
+// ---------------------------------------------------------------------
+
+
+// GridGenerator::merge_triangulation did not call
+// GridReordering::reorder_cells, but even then it may sometimes fail.
+//
+// testcase by Carlos Galeano
+
+#include "../tests.h"
+#include <deal.II/grid/tria_boundary.h>
+#include <deal.II/grid/tria_accessor.h>
+#include <deal.II/grid/tria_iterator.h>
+#include <deal.II/grid/tria.h>
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/grid_tools.h>
+#include <deal.II/grid/grid_out.h>
+#include <deal.II/base/logstream.h>
+#include <cmath>
+#include <cstdlib>
+
+#include <fstream>
+#include <iomanip>
+#include <cstdio>
+
+std::ofstream logfile("output");
+
+template<int dim>
+void mesh_info(const Triangulation<dim> &tria)
+{
+ deallog << "Mesh info:" << std::endl
+ << " dimension: " << dim << std::endl
+ << " no. of cells: " << tria.n_active_cells() << std::endl;
+
+ // Next loop over all faces of all cells and find how often each boundary
+ // indicator is used:
+ {
+ std::map<unsigned int, unsigned int> boundary_count;
+ typename Triangulation<dim>::active_cell_iterator
+ cell = tria.begin_active(),
+ endc = tria.end();
+ for (; cell!=endc; ++cell)
+ {
+ for (unsigned int face=0; face<GeometryInfo<dim>::faces_per_cell; ++face)
+ {
+ if (cell->face(face)->at_boundary())
+ boundary_count[cell->face(face)->boundary_indicator()]++;
+ }
+ }
+
+ deallog << " boundary indicators: ";
+ for (std::map<unsigned int, unsigned int>::iterator it=boundary_count.begin();
+ it!=boundary_count.end();
+ ++it)
+ {
+ deallog << it->first << "(" << it->second << " times) ";
+ }
+ deallog << std::endl;
+ }
+
+ // Finally, produce a graphical representation of the mesh to an output
+ // file:
+ GridOut grid_out;
+ grid_out.write_gnuplot (tria, deallog.get_file_stream());
+}
+
+
+void make_grid ()
+{
+ Triangulation<2> tria1;
+ GridGenerator::hyper_cube_with_cylindrical_hole (tria1, 0.25, 1.0);
+
+ Triangulation<2> tria3;
+ GridGenerator::hyper_cube_with_cylindrical_hole (tria3, 0.25, 1.0);
+ GridTools::shift (Point<2>(0,-2), tria3);
+ Triangulation<2> triangulation2;
+
+ mesh_info (tria1);
+ mesh_info (tria3);
+ GridGenerator::merge_triangulations (tria1, tria3, triangulation2);
+
+ mesh_info(triangulation2);
+ deallog << "Number of active cells: "
+ << triangulation2.n_active_cells()
+ << std::endl;
+ deallog << "Total number of cells: "
+ << triangulation2.n_cells()
+ << std::endl;
+
+}
+
+
+int main ()
+{
+ deallog << std::setprecision(2);
+ logfile << std::setprecision(2);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ make_grid();
+}
--- /dev/null
+JobId linux-sh2g.site Mon Apr 7 13:28:47 2014
+DEAL::Mesh info:
+DEAL:: dimension: 2
+DEAL:: no. of cells: 8
+DEAL:: boundary indicators: 0(8 times) 1(8 times)
+1.0 0.0 0 0
+1.0 1.0 0 0
+0.18 0.18 0 0
+0.25 0.0 0 0
+1.0 0.0 0 0
+
+
+1.0 1.0 0 0
+6.1e-17 1.0 0 0
+1.5e-17 0.25 0 0
+0.18 0.18 0 0
+1.0 1.0 0 0
+
+
+6.1e-17 1.0 0 0
+-1.0 1.0 0 0
+-0.18 0.18 0 0
+1.5e-17 0.25 0 0
+6.1e-17 1.0 0 0
+
+
+-1.0 1.0 0 0
+-1.0 1.2e-16 0 0
+-0.25 3.1e-17 0 0
+-0.18 0.18 0 0
+-1.0 1.0 0 0
+
+
+-1.0 1.2e-16 0 0
+-1.0 -1.0 0 0
+-0.18 -0.18 0 0
+-0.25 3.1e-17 0 0
+-1.0 1.2e-16 0 0
+
+
+-1.0 -1.0 0 0
+-1.8e-16 -1.0 0 0
+-4.6e-17 -0.25 0 0
+-0.18 -0.18 0 0
+-1.0 -1.0 0 0
+
+
+-1.8e-16 -1.0 0 0
+1.0 -1.0 0 0
+0.18 -0.18 0 0
+-4.6e-17 -0.25 0 0
+-1.8e-16 -1.0 0 0
+
+
+1.0 -1.0 0 0
+1.0 0.0 0 0
+0.25 0.0 0 0
+0.18 -0.18 0 0
+1.0 -1.0 0 0
+
+
+DEAL::Mesh info:
+DEAL:: dimension: 2
+DEAL:: no. of cells: 8
+DEAL:: boundary indicators: 0(8 times) 1(8 times)
+1.0 -2.0 0 0
+1.0 -1.0 0 0
+0.18 -1.8 0 0
+0.25 -2.0 0 0
+1.0 -2.0 0 0
+
+
+1.0 -1.0 0 0
+6.1e-17 -1.0 0 0
+1.5e-17 -1.8 0 0
+0.18 -1.8 0 0
+1.0 -1.0 0 0
+
+
+6.1e-17 -1.0 0 0
+-1.0 -1.0 0 0
+-0.18 -1.8 0 0
+1.5e-17 -1.8 0 0
+6.1e-17 -1.0 0 0
+
+
+-1.0 -1.0 0 0
+-1.0 -2.0 0 0
+-0.25 -2.0 0 0
+-0.18 -1.8 0 0
+-1.0 -1.0 0 0
+
+
+-1.0 -2.0 0 0
+-1.0 -3.0 0 0
+-0.18 -2.2 0 0
+-0.25 -2.0 0 0
+-1.0 -2.0 0 0
+
+
+-1.0 -3.0 0 0
+-1.8e-16 -3.0 0 0
+-4.6e-17 -2.2 0 0
+-0.18 -2.2 0 0
+-1.0 -3.0 0 0
+
+
+-1.8e-16 -3.0 0 0
+1.0 -3.0 0 0
+0.18 -2.2 0 0
+-4.6e-17 -2.2 0 0
+-1.8e-16 -3.0 0 0
+
+
+1.0 -3.0 0 0
+1.0 -2.0 0 0
+0.25 -2.0 0 0
+0.18 -2.2 0 0
+1.0 -3.0 0 0
+
+
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+
+// Show the shape functions of the Raviart-Thomas element on the unit cell
+// Plots are gnuplot compatible if lines with desired prefix are selected.
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/fe/fe_bdm.h>
+
+#include <vector>
+#include <fstream>
+#include <sstream>
+#include <string>
+
+#define PRECISION 2
+
+
+
+template<int dim>
+inline void
+plot_shape_functions(const unsigned int degree)
+{
+ FE_BDM<dim> fe_rt(degree);
+ deallog.push(fe_rt.get_name());
+
+ const unsigned int div=2;
+ for (unsigned int mz=0; mz<=((dim>2) ? div : 0) ; ++mz)
+ for (unsigned int my=0; my<=((dim>1) ? div : 0) ; ++my)
+ {
+ for (unsigned int mx=0; mx<=div; ++mx)
+ {
+ const Point<dim> p = (dim==2 ?
+ Point<dim>(1.*mx/div, 1.*my/div) :
+ Point<dim>(1.*mx/div, 1.*my/div, 1.*mz/div));
+
+ // Lines with function
+ // values contain
+ // quadrature point and one
+ // vector of dim entries
+ // for each chape function
+ deallog << "value " << p;
+ for (unsigned int i=0; i<fe_rt.dofs_per_cell; ++i)
+ {
+ for (unsigned int c=0; c<dim; ++c)
+ deallog << " " << fe_rt.shape_value_component(i,p,c);
+ deallog << " ";
+ }
+ deallog << std::endl << "grad " << p;
+ for (unsigned int i=0; i<fe_rt.dofs_per_cell; ++i)
+ {
+ for (unsigned int c=0; c<dim; ++c)
+ {
+ deallog << ' ';
+ for (unsigned int d=0; d<dim; ++d)
+ deallog << ' ' << fe_rt.shape_grad_component(i,p,c)[d];
+ }
+ }
+ deallog << std::endl;
+ }
+ deallog << "value " << std::endl;
+ deallog << "grad " << std::endl;
+ }
+
+ deallog.pop();
+}
+
+
+int
+main()
+{
+ std::ofstream logfile ("output");
+ deallog << std::setprecision(PRECISION);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ for (unsigned int degree=1; degree<4; ++degree)
+ plot_shape_functions<2>(degree);
+// plot_shape_functions<3>(degree);
+
+ return 0;
+}
+
+
+
--- /dev/null
+
+DEAL:FE_BDM<2>(1)::value 0.00 0.00 1.37 0 -0.37 0 0 0 0 0 0 1.37 0 -0.37 0 0 0 0
+DEAL:FE_BDM<2>(1)::grad 0.00 0.00 -1.37 -1.73 0 0.87 0.37 1.73 0 -0.87 1.37 0 0 -0.87 -0.37 0 0 0.87 0.87 0 -1.73 -1.37 -0.87 0 1.73 0.37 -0.87 0 0 1.37 0.87 0 0 -0.37
+DEAL:FE_BDM<2>(1)::value 0.50 0.00 0.68 0 -0.18 0 0.68 0 -0.18 0 0.22 0.50 -0.22 0.50 -0.22 0 0.22 0
+DEAL:FE_BDM<2>(1)::grad 0.50 0.00 -1.37 -0.87 0 0.87 0.37 0.87 0 -0.87 1.37 -0.87 0 -0.87 -0.37 0.87 0 0.87 0 0 -1.73 -0.50 0 0 1.73 -0.50 0 0 0 0.50 0 0 0 0.50
+DEAL:FE_BDM<2>(1)::value 1.00 0.00 0 0 0 0 1.37 0 -0.37 0 0 -0.37 0 1.37 0 0 0 0
+DEAL:FE_BDM<2>(1)::grad 1.00 0.00 -1.37 0 0 0.87 0.37 0 0 -0.87 1.37 -1.73 0 -0.87 -0.37 1.73 0 0.87 -0.87 0 -1.73 0.37 0.87 0 1.73 -1.37 0.87 0 0 -0.37 -0.87 0 0 1.37
+DEAL:FE_BDM<2>(1)::value
+DEAL:FE_BDM<2>(1)::grad
+DEAL:FE_BDM<2>(1)::value 0.00 0.50 0.50 0.22 0.50 -0.22 0 -0.22 0 0.22 0 0.68 0 -0.18 0 0.68 0 -0.18
+DEAL:FE_BDM<2>(1)::grad 0.00 0.50 -0.50 -1.73 0 0 -0.50 1.73 0 0 0.50 0 0 0 0.50 0 0 0 0.87 0 -0.87 -1.37 -0.87 0 0.87 0.37 -0.87 0 -0.87 1.37 0.87 0 0.87 -0.37
+DEAL:FE_BDM<2>(1)::value 0.50 0.50 0.25 0.22 0.25 -0.22 0.25 -0.22 0.25 0.22 0.22 0.25 -0.22 0.25 -0.22 0.25 0.22 0.25
+DEAL:FE_BDM<2>(1)::grad 0.50 0.50 -0.50 -0.87 0 0 -0.50 0.87 0 0 0.50 -0.87 0 0 0.50 0.87 0 0 0 0 -0.87 -0.50 0 0 0.87 -0.50 0 0 -0.87 0.50 0 0 0.87 0.50
+DEAL:FE_BDM<2>(1)::value 1.00 0.50 0 0.22 0 -0.22 0.50 -0.22 0.50 0.22 0 -0.18 0 0.68 0 -0.18 0 0.68
+DEAL:FE_BDM<2>(1)::grad 1.00 0.50 -0.50 0 0 0 -0.50 0 0 0 0.50 -1.73 0 0 0.50 1.73 0 0 -0.87 0 -0.87 0.37 0.87 0 0.87 -1.37 0.87 0 -0.87 -0.37 -0.87 0 0.87 1.37
+DEAL:FE_BDM<2>(1)::value
+DEAL:FE_BDM<2>(1)::grad
+DEAL:FE_BDM<2>(1)::value 0.00 1.00 -0.37 0 1.37 0 0 0 0 0 0 0 0 0 0 1.37 0 -0.37
+DEAL:FE_BDM<2>(1)::grad 0.00 1.00 0.37 -1.73 0 -0.87 -1.37 1.73 0 0.87 -0.37 0 0 0.87 1.37 0 0 -0.87 0.87 0 0 -1.37 -0.87 0 0 0.37 -0.87 0 -1.73 1.37 0.87 0 1.73 -0.37
+DEAL:FE_BDM<2>(1)::value 0.50 1.00 -0.18 0 0.68 0 -0.18 0 0.68 0 0.22 0 -0.22 0 -0.22 0.50 0.22 0.50
+DEAL:FE_BDM<2>(1)::grad 0.50 1.00 0.37 -0.87 0 -0.87 -1.37 0.87 0 0.87 -0.37 -0.87 0 0.87 1.37 0.87 0 -0.87 0 0 0 -0.50 0 0 0 -0.50 0 0 -1.73 0.50 0 0 1.73 0.50
+DEAL:FE_BDM<2>(1)::value 1.00 1.00 0 0 0 0 -0.37 0 1.37 0 0 0 0 0 0 -0.37 0 1.37
+DEAL:FE_BDM<2>(1)::grad 1.00 1.00 0.37 0 0 -0.87 -1.37 0 0 0.87 -0.37 -1.73 0 0.87 1.37 1.73 0 -0.87 -0.87 0 0 0.37 0.87 0 0 -1.37 0.87 0 -1.73 -0.37 -0.87 0 1.73 1.37
+DEAL:FE_BDM<2>(1)::value
+DEAL:FE_BDM<2>(1)::grad
+DEAL:FE_BDM<2>(2)::value 0.00 0.00 1.48 0 -0.67 0 0.19 0 0 0 0 0 0 0 0 1.48 0 -0.67 0 0.19 0 0 0 0 0 0 0 0 0 0
+DEAL:FE_BDM<2>(2)::grad 0.00 0.00 -2.31 -4.62 0 0.56 -0.67 6.67 0 -1.11 -1.02 -2.04 0 0.56 0.65 0 0 -0.56 -2.00 0 0 1.11 -0.65 0 0 -0.56 0.56 0 -4.62 -2.31 -1.11 0 6.67 -0.67 0.56 0 -2.04 -1.02 -0.56 0 0 0.65 1.11 0 0 -2.00 -0.56 0 0 -0.65 6.00 0 0 0 0 0 0 6.00
+DEAL:FE_BDM<2>(2)::value 0.50 0.00 0.53 0 -0.67 0 -0.11 0 0.53 0 -0.67 0 -0.11 0 0 0 0 1.00 0 0 0 0 0 0 0 0 1.50 0 0 0
+DEAL:FE_BDM<2>(2)::grad 0.50 0.00 -1.48 -2.31 0 0.56 0.67 3.33 0 -1.11 -0.19 -1.02 0 0.56 1.48 -2.31 0 -0.56 -0.67 3.33 0 1.11 0.19 -1.02 0 -0.56 -0.28 0 -1.29 -0.83 0.56 0 0 -2.33 -0.28 0 1.29 -0.83 0.28 0 0 -0.83 -0.56 0 0 -0.33 0.28 0 0 -0.83 0 0 0 0 0 0 0 6.00
+DEAL:FE_BDM<2>(2)::value 1.00 0.00 0 0 0 0 0 0 1.48 0 -0.67 0 0.19 0 0 0.19 0 -0.67 0 1.48 0 0 0 0 0 0 0 0 0 0
+DEAL:FE_BDM<2>(2)::grad 1.00 0.00 -0.65 0 0 0.56 2.00 0 0 -1.11 0.65 0 0 0.56 2.31 -4.62 0 -0.56 0.67 6.67 0 1.11 1.02 -2.04 0 -0.56 0.56 0 2.04 -1.02 -1.11 0 -6.67 -0.67 0.56 0 4.62 -2.31 -0.56 0 0 -0.65 1.11 0 0 -2.00 -0.56 0 0 0.65 -6.00 0 0 0 0 0 0 6.00
+DEAL:FE_BDM<2>(2)::value
+DEAL:FE_BDM<2>(2)::grad
+DEAL:FE_BDM<2>(2)::value 0.00 0.50 0 0 1.00 0 0 0 0 0 0 0 0 0 0 0.53 0 -0.67 0 -0.11 0 0.53 0 -0.67 0 -0.11 0 0 0 1.50
+DEAL:FE_BDM<2>(2)::grad 0.00 0.50 -0.83 -1.29 0 -0.28 -2.33 0 0 0.56 -0.83 1.29 0 -0.28 -0.83 0 0 0.28 -0.33 0 0 -0.56 -0.83 0 0 0.28 0.56 0 -2.31 -1.48 -1.11 0 3.33 0.67 0.56 0 -1.02 -0.19 -0.56 0 -2.31 1.48 1.11 0 3.33 -0.67 -0.56 0 -1.02 0.19 6.00 0 0 0 0 0 0 0
+DEAL:FE_BDM<2>(2)::value 0.50 0.50 -0.21 0 0.17 0 -0.21 0 -0.21 0 0.17 0 -0.21 0 0 -0.21 0 0.17 0 -0.21 0 -0.21 0 0.17 0 -0.21 1.50 0 0 1.50
+DEAL:FE_BDM<2>(2)::grad 0.50 0.50 0 -0.65 0 -0.28 -1.00 0 0 0.56 0 0.65 0 -0.28 0 -0.65 0 0.28 1.00 0 0 -0.56 0 0.65 0 0.28 -0.28 0 -0.65 0 0.56 0 0 -1.00 -0.28 0 0.65 0 0.28 0 -0.65 0 -0.56 0 0 1.00 0.28 0 0.65 0 0 0 0 0 0 0 0 0
+DEAL:FE_BDM<2>(2)::value 1.00 0.50 0 0 0 0 0 0 0 0 1.00 0 0 0 0 -0.11 0 -0.67 0 0.53 0 -0.11 0 -0.67 0 0.53 0 0 0 1.50
+DEAL:FE_BDM<2>(2)::grad 1.00 0.50 0.83 0 0 -0.28 0.33 0 0 0.56 0.83 0 0 -0.28 0.83 -1.29 0 0.28 2.33 0 0 -0.56 0.83 1.29 0 0.28 0.56 0 1.02 -0.19 -1.11 0 -3.33 0.67 0.56 0 2.31 -1.48 -0.56 0 1.02 0.19 1.11 0 -3.33 -0.67 -0.56 0 2.31 1.48 -6.00 0 0 0 0 0 0 0
+DEAL:FE_BDM<2>(2)::value
+DEAL:FE_BDM<2>(2)::grad
+DEAL:FE_BDM<2>(2)::value 0.00 1.00 0.19 0 -0.67 0 1.48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.48 0 -0.67 0 0.19 0 0 0 0
+DEAL:FE_BDM<2>(2)::grad 0.00 1.00 -1.02 2.04 0 0.56 -0.67 -6.67 0 -1.11 -2.31 4.62 0 0.56 -0.65 0 0 -0.56 -2.00 0 0 1.11 0.65 0 0 -0.56 0.56 0 0 -0.65 -1.11 0 0 2.00 0.56 0 0 0.65 -0.56 0 -4.62 2.31 1.11 0 6.67 0.67 -0.56 0 -2.04 1.02 6.00 0 0 0 0 0 0 -6.00
+DEAL:FE_BDM<2>(2)::value 0.50 1.00 -0.11 0 -0.67 0 0.53 0 -0.11 0 -0.67 0 0.53 0 0 0 0 0 0 0 0 0 0 1.00 0 0 1.50 0 0 0
+DEAL:FE_BDM<2>(2)::grad 0.50 1.00 -0.19 1.02 0 0.56 0.67 -3.33 0 -1.11 -1.48 2.31 0 0.56 0.19 1.02 0 -0.56 -0.67 -3.33 0 1.11 1.48 2.31 0 -0.56 -0.28 0 0 0.83 0.56 0 0 0.33 -0.28 0 0 0.83 0.28 0 -1.29 0.83 -0.56 0 0 2.33 0.28 0 1.29 0.83 0 0 0 0 0 0 0 -6.00
+DEAL:FE_BDM<2>(2)::value 1.00 1.00 0 0 0 0 0 0 0.19 0 -0.67 0 1.48 0 0 0 0 0 0 0 0 0.19 0 -0.67 0 1.48 0 0 0 0
+DEAL:FE_BDM<2>(2)::grad 1.00 1.00 0.65 0 0 0.56 2.00 0 0 -1.11 -0.65 0 0 0.56 1.02 2.04 0 -0.56 0.67 -6.67 0 1.11 2.31 4.62 0 -0.56 0.56 0 0 0.65 -1.11 0 0 2.00 0.56 0 0 -0.65 -0.56 0 2.04 1.02 1.11 0 -6.67 0.67 -0.56 0 4.62 2.31 -6.00 0 0 0 0 0 0 -6.00
+DEAL:FE_BDM<2>(2)::value
+DEAL:FE_BDM<2>(2)::grad
+DEAL:FE_BDM<2>(3)::value 0.00 0.00 1.53 0 -0.81 0 0.40 0 -0.11 0 0 0 0 0 0 0 0 0 0 1.53 0 -0.81 0 0.40 0 -0.11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:FE_BDM<2>(3)::grad 0.00 0.00 -4.27 -8.55 0 0.37 -2.79 13.81 0 -0.94 -2.01 -7.42 0 0.94 0.07 2.16 0 -0.37 0.53 0 0 -0.37 -1.16 0 0 0.94 2.05 0 0 -0.94 1.58 0 0 0.37 0.37 0 -8.55 -4.27 -0.94 0 13.81 -2.79 0.94 0 -7.42 -2.01 -0.37 0 2.16 0.07 -0.37 0 0 0.53 0.94 0 0 -1.16 -0.94 0 0 2.05 0.37 0 0 1.58 54.00 0 0 0 -60.00 0 0 0 -36.00 0 0 0 0 0 0 54.00 0 0 0 -36.00 0 0 0 -60.00
+DEAL:FE_BDM<2>(3)::value 0.50 0.00 0.30 0 -0.90 0 0.21 0 0.15 0 0.30 0 -0.90 0 0.21 0 0.15 0 -0.02 -0.09 0.06 0.59 -0.06 0.59 0.02 -0.09 0.02 0 -0.06 0 0.06 0 -0.02 0 6.00 0 0 0 -9.00 0 0 0 0 0 0 0
+DEAL:FE_BDM<2>(3)::grad 0.50 0.00 -1.09 -3.60 0 0.37 1.63 7.40 0 -0.94 0.41 -4.21 0 0.94 0.55 0.40 0 -0.37 1.09 -3.60 0 -0.37 -1.63 7.40 0 0.94 -0.41 -4.21 0 -0.94 -0.55 0.40 0 0.37 0 0 0.21 -1.30 0 0 -3.48 -3.20 0 0 3.48 -3.20 0 0 -0.21 -1.30 0 0 0 0.26 0 0 0 1.24 0 0 0 1.24 0 0 0 0.26 -15.00 -9.00 0 0 30.00 0 0 0 0 18.00 0 0 0 0 0 36.00 0 0 0 0 0 0 0 -60.00
+DEAL:FE_BDM<2>(3)::value 1.00 0.00 0 0 0 0 0 0 0 0 1.53 0 -0.81 0 0.40 0 -0.11 0 0 -0.11 0 0.40 0 -0.81 0 1.53 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:FE_BDM<2>(3)::grad 1.00 0.00 -0.53 0 0 0.37 1.16 0 0 -0.94 -2.05 0 0 0.94 -1.58 0 0 -0.37 4.27 -8.55 0 -0.37 2.79 13.81 0 0.94 2.01 -7.42 0 -0.94 -0.07 2.16 0 0.37 -0.37 0 -2.16 0.07 0.94 0 7.42 -2.01 -0.94 0 -13.81 -2.79 0.37 0 8.55 -4.27 0.37 0 0 1.58 -0.94 0 0 2.05 0.94 0 0 -1.16 -0.37 0 0 0.53 6.00 0 0 0 -60.00 0 0 0 36.00 0 0 0 0 0 0 18.00 0 0 0 36.00 0 0 0 -60.00
+DEAL:FE_BDM<2>(3)::value
+DEAL:FE_BDM<2>(3)::grad
+DEAL:FE_BDM<2>(3)::value 0.00 0.50 -0.09 -0.02 0.59 0.06 0.59 -0.06 -0.09 0.02 0 0.02 0 -0.06 0 0.06 0 -0.02 0 0.30 0 -0.90 0 0.21 0 0.15 0 0.30 0 -0.90 0 0.21 0 0.15 0 0 0 0 0 0 0 6.00 0 -9.00 0 0
+DEAL:FE_BDM<2>(3)::grad 0.00 0.50 -1.30 0.21 0 0 -3.20 -3.48 0 0 -3.20 3.48 0 0 -1.30 -0.21 0 0 0.26 0 0 0 1.24 0 0 0 1.24 0 0 0 0.26 0 0 0 0.37 0 -3.60 -1.09 -0.94 0 7.40 1.63 0.94 0 -4.21 0.41 -0.37 0 0.40 0.55 -0.37 0 -3.60 1.09 0.94 0 7.40 -1.63 -0.94 0 -4.21 -0.41 0.37 0 0.40 -0.55 36.00 0 0 0 -60.00 0 0 0 0 0 0 0 0 0 -9.00 -15.00 0 0 18.00 0 0 0 0 30.00
+DEAL:FE_BDM<2>(3)::value 0.50 0.50 -0.18 -0.02 0.05 0.06 0.05 -0.06 -0.18 0.02 -0.18 0.02 0.05 -0.06 0.05 0.06 -0.18 -0.02 -0.02 -0.18 0.06 0.05 -0.06 0.05 0.02 -0.18 0.02 -0.18 -0.06 0.05 0.06 0.05 -0.02 -0.18 1.50 0 0 0 0 0 0 1.50 0 0 0 0
+DEAL:FE_BDM<2>(3)::grad 0.50 0.50 0.53 0.78 0 0 0.22 -1.24 0 0 0.22 1.24 0 0 0.53 -0.78 0 0 -0.53 0.78 0 0 -0.22 -1.24 0 0 -0.22 1.24 0 0 -0.53 -0.78 0 0 0 0 0.78 0.53 0 0 -1.24 0.22 0 0 1.24 0.22 0 0 -0.78 0.53 0 0 0.78 -0.53 0 0 -1.24 -0.22 0 0 1.24 -0.22 0 0 -0.78 -0.53 -15.00 -9.00 0 0 30.00 0 0 0 0 18.00 0 0 0 0 -9.00 -15.00 0 0 18.00 0 0 0 0 30.00
+DEAL:FE_BDM<2>(3)::value 1.00 0.50 0 -0.02 0 0.06 0 -0.06 0 0.02 -0.09 0.02 0.59 -0.06 0.59 0.06 -0.09 -0.02 0 0.15 0 0.21 0 -0.90 0 0.30 0 0.15 0 0.21 0 -0.90 0 0.30 0 0 0 0 0 0 0 -3.00 0 9.00 0 0
+DEAL:FE_BDM<2>(3)::grad 1.00 0.50 -0.26 0 0 0 -1.24 0 0 0 -1.24 0 0 0 -0.26 0 0 0 1.30 0.21 0 0 3.20 -3.48 0 0 3.20 3.48 0 0 1.30 -0.21 0 0 -0.37 0 -0.40 0.55 0.94 0 4.21 0.41 -0.94 0 -7.40 1.63 0.37 0 3.60 -1.09 0.37 0 -0.40 -0.55 -0.94 0 4.21 -0.41 0.94 0 -7.40 -1.63 -0.37 0 3.60 1.09 24.00 0 0 0 -60.00 0 0 0 0 0 0 0 0 0 -9.00 -15.00 0 0 18.00 0 0 0 0 30.00
+DEAL:FE_BDM<2>(3)::value
+DEAL:FE_BDM<2>(3)::grad
+DEAL:FE_BDM<2>(3)::value 0.00 1.00 -0.11 0 0.40 0 -0.81 0 1.53 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.53 0 -0.81 0 0.40 0 -0.11 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:FE_BDM<2>(3)::grad 0.00 1.00 0.07 -2.16 0 -0.37 -2.01 7.42 0 0.94 -2.79 -13.81 0 -0.94 -4.27 8.55 0 0.37 1.58 0 0 0.37 2.05 0 0 -0.94 -1.16 0 0 0.94 0.53 0 0 -0.37 0.37 0 0 -0.53 -0.94 0 0 1.16 0.94 0 0 -2.05 -0.37 0 0 -1.58 -0.37 0 -8.55 4.27 0.94 0 13.81 2.79 -0.94 0 -7.42 2.01 0.37 0 2.16 -0.07 18.00 0 0 0 -60.00 0 0 0 36.00 0 0 0 0 0 0 6.00 0 0 0 36.00 0 0 0 -60.00
+DEAL:FE_BDM<2>(3)::value 0.50 1.00 0.15 0 0.21 0 -0.90 0 0.30 0 0.15 0 0.21 0 -0.90 0 0.30 0 -0.02 0 0.06 0 -0.06 0 0.02 0 0.02 -0.09 -0.06 0.59 0.06 0.59 -0.02 -0.09 -3.00 0 0 0 9.00 0 0 0 0 0 0 0
+DEAL:FE_BDM<2>(3)::grad 0.50 1.00 0.55 -0.40 0 -0.37 0.41 4.21 0 0.94 1.63 -7.40 0 -0.94 -1.09 3.60 0 0.37 -0.55 -0.40 0 0.37 -0.41 4.21 0 -0.94 -1.63 -7.40 0 0.94 1.09 3.60 0 -0.37 0 0 0 -0.26 0 0 0 -1.24 0 0 0 -1.24 0 0 0 -0.26 0 0 0.21 1.30 0 0 -3.48 3.20 0 0 3.48 3.20 0 0 -0.21 1.30 -15.00 -9.00 0 0 30.00 0 0 0 0 18.00 0 0 0 0 0 24.00 0 0 0 0 0 0 0 -60.00
+DEAL:FE_BDM<2>(3)::value 1.00 1.00 0 0 0 0 0 0 0 0 -0.11 0 0.40 0 -0.81 0 1.53 0 0 0 0 0 0 0 0 0 0 -0.11 0 0.40 0 -0.81 0 1.53 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:FE_BDM<2>(3)::grad 1.00 1.00 -1.58 0 0 -0.37 -2.05 0 0 0.94 1.16 0 0 -0.94 -0.53 0 0 0.37 -0.07 -2.16 0 0.37 2.01 7.42 0 -0.94 2.79 -13.81 0 0.94 4.27 8.55 0 -0.37 -0.37 0 0 -1.58 0.94 0 0 -2.05 -0.94 0 0 1.16 0.37 0 0 -0.53 0.37 0 -2.16 -0.07 -0.94 0 7.42 2.01 0.94 0 -13.81 2.79 -0.37 0 8.55 4.27 42.00 0 0 0 -60.00 0 0 0 -36.00 0 0 0 0 0 0 42.00 0 0 0 -36.00 0 0 0 -60.00
+DEAL:FE_BDM<2>(3)::value
+DEAL:FE_BDM<2>(3)::grad
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+// Observe how the values of the shape functions change as we make a
+// cell smaller and smaller
+
+#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/lac/solver_cg.h>
+#include <deal.II/lac/precondition.h>
+#include <deal.II/lac/vector_memory.h>
+#include <deal.II/lac/sparse_matrix.h>
+#include <deal.II/lac/sparsity_pattern.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/fe_bdm.h>
+#include <deal.II/fe/fe_values.h>
+
+#include <vector>
+#include <fstream>
+#include <string>
+
+#define PRECISION 2
+
+
+std::ofstream logfile ("output");
+
+template<int dim>
+void
+test (const unsigned int degree)
+{
+ FE_BDM<dim> fe_rt(degree);
+
+ deallog << "Degree=" << degree
+ << std::endl;
+
+ for (double h=1; h>1./128; h/=2)
+ {
+ deallog << " h=" << h
+ << std::endl;
+
+ Triangulation<dim> tr;
+ GridGenerator::hyper_cube(tr, 0., h);
+
+ DoFHandler<dim> dof(tr);
+ dof.distribute_dofs(fe_rt);
+
+ QTrapez<dim> quadrature;
+
+ FEValues<dim> fe_values (fe_rt, quadrature, update_values);
+ fe_values.reinit (dof.begin_active());
+ for (unsigned int q=0; q<quadrature.size(); ++q)
+ {
+ deallog << " Quadrature point " << q << ": ";
+ for (unsigned int i=0; i<fe_rt.dofs_per_cell; ++i)
+ {
+ deallog << '[';
+ for (unsigned int c=0; c<fe_rt.n_components(); ++c)
+ deallog << fe_values.shape_value_component(i,q,c) << ' ';
+ deallog << ']';
+ }
+ deallog << std::endl;
+ }
+ }
+}
+
+
+int
+main()
+{
+ deallog << std::setprecision(PRECISION);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ for (unsigned int i=1; i<4; ++i)
+ test<2>(i);
+
+ return 0;
+}
+
+
+
--- /dev/null
+
+DEAL::Degree=1
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [1.37 0 ][-0.37 0 ][0 0 ][0 0 ][0 1.37 ][0 -0.37 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][1.37 0 ][-0.37 0 ][0 -0.37 ][0 1.37 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-0.37 0 ][1.37 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.37 ][0 -0.37 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][-0.37 0 ][1.37 0 ][0 0 ][0 0 ][0 -0.37 ][0 1.37 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [2.73 0 ][-0.73 0 ][0 0 ][0 0 ][0 2.73 ][0 -0.73 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][2.73 0 ][-0.73 0 ][0 -0.73 ][0 2.73 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-0.73 0 ][2.73 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 2.73 ][0 -0.73 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][-0.73 0 ][2.73 0 ][0 0 ][0 0 ][0 -0.73 ][0 2.73 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [5.46 0 ][-1.46 0 ][0 0 ][0 0 ][0 5.46 ][0 -1.46 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][5.46 0 ][-1.46 0 ][0 -1.46 ][0 5.46 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-1.46 0 ][5.46 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 5.46 ][0 -1.46 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][-1.46 0 ][5.46 0 ][0 0 ][0 0 ][0 -1.46 ][0 5.46 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [10.93 0 ][-2.93 0 ][0 0 ][0 0 ][0 10.93 ][0 -2.93 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][10.93 0 ][-2.93 0 ][0 -2.93 ][0 10.93 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-2.93 0 ][10.93 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 10.93 ][0 -2.93 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][-2.93 0 ][10.93 0 ][0 0 ][0 0 ][0 -2.93 ][0 10.93 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [21.86 0 ][-5.86 0 ][0 0 ][0 0 ][0 21.86 ][0 -5.86 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][21.86 0 ][-5.86 0 ][0 -5.86 ][0 21.86 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-5.86 0 ][21.86 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 21.86 ][0 -5.86 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][-5.86 0 ][21.86 0 ][0 0 ][0 0 ][0 -5.86 ][0 21.86 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [43.71 0 ][-11.71 0 ][0 0 ][0 0 ][0 43.71 ][0 -11.71 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][43.71 0 ][-11.71 0 ][0 -11.71 ][0 43.71 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-11.71 0 ][43.71 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 43.71 ][0 -11.71 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][-11.71 0 ][43.71 0 ][0 0 ][0 0 ][0 -11.71 ][0 43.71 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [87.43 0 ][-23.43 0 ][0 0 ][0 0 ][0 87.43 ][0 -23.43 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][87.43 0 ][-23.43 0 ][0 -23.43 ][0 87.43 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-23.43 0 ][87.43 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 87.43 ][0 -23.43 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][-23.43 0 ][87.43 0 ][0 0 ][0 0 ][0 -23.43 ][0 87.43 ]
+DEAL::Degree=2
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [1.48 0 ][-0.67 0 ][0.19 0 ][0 0 ][0 0 ][0 0 ][0 1.48 ][0 -0.67 ][0 0.19 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][1.48 0 ][-0.67 0 ][0.19 0 ][0 0.19 ][0 -0.67 ][0 1.48 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [0.19 0 ][-0.67 0 ][1.48 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.48 ][0 -0.67 ][0 0.19 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0.19 0 ][-0.67 0 ][1.48 0 ][0 0 ][0 0 ][0 0 ][0 0.19 ][0 -0.67 ][0 1.48 ][0 0 ][0 0 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [2.96 0 ][-1.33 0 ][0.38 0 ][0 0 ][0 0 ][0 0 ][0 2.96 ][0 -1.33 ][0 0.38 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][2.96 0 ][-1.33 0 ][0.38 0 ][0 0.38 ][0 -1.33 ][0 2.96 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [0.38 0 ][-1.33 0 ][2.96 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 2.96 ][0 -1.33 ][0 0.38 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0.38 0 ][-1.33 0 ][2.96 0 ][0 0 ][0 0 ][0 0 ][0 0.38 ][0 -1.33 ][0 2.96 ][0 0 ][0 0 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [5.92 0 ][-2.67 0 ][0.75 0 ][0 0 ][0 0 ][0 0 ][0 5.92 ][0 -2.67 ][0 0.75 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][5.92 0 ][-2.67 0 ][0.75 0 ][0 0.75 ][0 -2.67 ][0 5.92 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [0.75 0 ][-2.67 0 ][5.92 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 5.92 ][0 -2.67 ][0 0.75 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0.75 0 ][-2.67 0 ][5.92 0 ][0 0 ][0 0 ][0 0 ][0 0.75 ][0 -2.67 ][0 5.92 ][0 0 ][0 0 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [11.83 0 ][-5.33 0 ][1.50 0 ][0 0 ][0 0 ][0 0 ][0 11.83 ][0 -5.33 ][0 1.50 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][11.83 0 ][-5.33 0 ][1.50 0 ][0 1.50 ][0 -5.33 ][0 11.83 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [1.50 0 ][-5.33 0 ][11.83 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 11.83 ][0 -5.33 ][0 1.50 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][1.50 0 ][-5.33 0 ][11.83 0 ][0 0 ][0 0 ][0 0 ][0 1.50 ][0 -5.33 ][0 11.83 ][0 0 ][0 0 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [23.66 0 ][-10.67 0 ][3.01 0 ][0 0 ][0 0 ][0 0 ][0 23.66 ][0 -10.67 ][0 3.01 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][23.66 0 ][-10.67 0 ][3.01 0 ][0 3.01 ][0 -10.67 ][0 23.66 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [3.01 0 ][-10.67 0 ][23.66 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 23.66 ][0 -10.67 ][0 3.01 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][3.01 0 ][-10.67 0 ][23.66 0 ][0 0 ][0 0 ][0 0 ][0 3.01 ][0 -10.67 ][0 23.66 ][0 0 ][0 0 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [47.32 0 ][-21.33 0 ][6.01 0 ][0 0 ][0 0 ][0 0 ][0 47.32 ][0 -21.33 ][0 6.01 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][47.32 0 ][-21.33 0 ][6.01 0 ][0 6.01 ][0 -21.33 ][0 47.32 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [6.01 0 ][-21.33 0 ][47.32 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 47.32 ][0 -21.33 ][0 6.01 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][6.01 0 ][-21.33 0 ][47.32 0 ][0 0 ][0 0 ][0 0 ][0 6.01 ][0 -21.33 ][0 47.32 ][0 0 ][0 0 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [94.65 0 ][-42.67 0 ][12.02 0 ][0 0 ][0 0 ][0 0 ][0 94.65 ][0 -42.67 ][0 12.02 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][94.65 0 ][-42.67 0 ][12.02 0 ][0 12.02 ][0 -42.67 ][0 94.65 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [12.02 0 ][-42.67 0 ][94.65 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 94.65 ][0 -42.67 ][0 12.02 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][12.02 0 ][-42.67 0 ][94.65 0 ][0 0 ][0 0 ][0 0 ][0 12.02 ][0 -42.67 ][0 94.65 ][0 0 ][0 0 ]
+DEAL::Degree=3
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [1.53 0 ][-0.81 0 ][0.40 0 ][-0.11 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.53 ][0 -0.81 ][0 0.40 ][0 -0.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][1.53 0 ][-0.81 0 ][0.40 0 ][-0.11 0 ][0 -0.11 ][0 0.40 ][0 -0.81 ][0 1.53 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-0.11 0 ][0.40 0 ][-0.81 0 ][1.53 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.53 ][0 -0.81 ][0 0.40 ][0 -0.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-0.11 0 ][0.40 0 ][-0.81 0 ][1.53 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -0.11 ][0 0.40 ][0 -0.81 ][0 1.53 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [3.05 0 ][-1.63 0 ][0.80 0 ][-0.23 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 3.05 ][0 -1.63 ][0 0.80 ][0 -0.23 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][3.05 0 ][-1.63 0 ][0.80 0 ][-0.23 0 ][0 -0.23 ][0 0.80 ][0 -1.63 ][0 3.05 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-0.23 0 ][0.80 0 ][-1.63 0 ][3.05 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 3.05 ][0 -1.63 ][0 0.80 ][0 -0.23 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-0.23 0 ][0.80 0 ][-1.63 0 ][3.05 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -0.23 ][0 0.80 ][0 -1.63 ][0 3.05 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [6.11 0 ][-3.25 0 ][1.60 0 ][-0.46 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 6.11 ][0 -3.25 ][0 1.60 ][0 -0.46 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][6.11 0 ][-3.25 0 ][1.60 0 ][-0.46 0 ][0 -0.46 ][0 1.60 ][0 -3.25 ][0 6.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-0.46 0 ][1.60 0 ][-3.25 0 ][6.11 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 6.11 ][0 -3.25 ][0 1.60 ][0 -0.46 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-0.46 0 ][1.60 0 ][-3.25 0 ][6.11 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -0.46 ][0 1.60 ][0 -3.25 ][0 6.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [12.21 0 ][-6.51 0 ][3.21 0 ][-0.91 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 12.21 ][0 -6.51 ][0 3.21 ][0 -0.91 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][12.21 0 ][-6.51 0 ][3.21 0 ][-0.91 0 ][0 -0.91 ][0 3.21 ][0 -6.51 ][0 12.21 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-0.91 0 ][3.21 0 ][-6.51 0 ][12.21 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 12.21 ][0 -6.51 ][0 3.21 ][0 -0.91 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-0.91 0 ][3.21 0 ][-6.51 0 ][12.21 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -0.91 ][0 3.21 ][0 -6.51 ][0 12.21 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [24.43 0 ][-13.02 0 ][6.41 0 ][-1.82 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 24.43 ][0 -13.02 ][0 6.41 ][0 -1.82 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][24.43 0 ][-13.02 0 ][6.41 0 ][-1.82 0 ][0 -1.82 ][0 6.41 ][0 -13.02 ][0 24.43 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-1.82 0 ][6.41 0 ][-13.02 0 ][24.43 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 24.43 ][0 -13.02 ][0 6.41 ][0 -1.82 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-1.82 0 ][6.41 0 ][-13.02 0 ][24.43 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -1.82 ][0 6.41 ][0 -13.02 ][0 24.43 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [48.86 0 ][-26.04 0 ][12.82 0 ][-3.65 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 48.86 ][0 -26.04 ][0 12.82 ][0 -3.65 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][48.86 0 ][-26.04 0 ][12.82 0 ][-3.65 0 ][0 -3.65 ][0 12.82 ][0 -26.04 ][0 48.86 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-3.65 0 ][12.82 0 ][-26.04 0 ][48.86 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 48.86 ][0 -26.04 ][0 12.82 ][0 -3.65 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-3.65 0 ][12.82 0 ][-26.04 0 ][48.86 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -3.65 ][0 12.82 ][0 -26.04 ][0 48.86 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [97.71 0 ][-52.07 0 ][25.65 0 ][-7.29 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 97.71 ][0 -52.07 ][0 25.65 ][0 -7.29 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][0 0 ][0 0 ][0 0 ][97.71 0 ][-52.07 0 ][25.65 0 ][-7.29 0 ][0 -7.29 ][0 25.65 ][0 -52.07 ][0 97.71 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 2: [-7.29 0 ][25.65 0 ][-52.07 0 ][97.71 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 97.71 ][0 -52.07 ][0 25.65 ][0 -7.29 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 3: [0 0 ][0 0 ][0 0 ][0 0 ][-7.29 0 ][25.65 0 ][-52.07 0 ][97.71 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 -7.29 ][0 25.65 ][0 -52.07 ][0 97.71 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+// Observe how the values of the shape functions change as we make a
+// cell smaller and smaller. Evaluate the values with FEFaceValues, to
+// make sure the values scale as in rt_10 where we used FEValues
+//
+// the test used to fail because of the issue with computing the
+// normals using FEFaceValue, where FEFaceValue by accident uses the
+// *face* mapping, not the *cell* mapping to compute the Piola
+// transform (leading to a missing power of h in the determinant)
+
+#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/lac/solver_cg.h>
+#include <deal.II/lac/precondition.h>
+#include <deal.II/lac/vector_memory.h>
+#include <deal.II/lac/sparse_matrix.h>
+#include <deal.II/lac/sparsity_pattern.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/fe_bdm.h>
+#include <deal.II/fe/fe_values.h>
+
+#include <vector>
+#include <fstream>
+#include <string>
+
+#define PRECISION 2
+
+
+std::ofstream logfile ("output");
+
+template<int dim>
+void
+test (const unsigned int degree)
+{
+ FE_BDM<dim> fe_rt(degree);
+
+ deallog << "Degree=" << degree
+ << std::endl;
+
+ for (double h=1; h>1./128; h/=2)
+ {
+ deallog << " h=" << h
+ << std::endl;
+
+ Triangulation<dim> tr;
+ GridGenerator::hyper_cube(tr, 0., h);
+
+ DoFHandler<dim> dof(tr);
+ dof.distribute_dofs(fe_rt);
+
+ QTrapez<dim-1> quadrature;
+
+ FEFaceValues<dim> fe_values (fe_rt, quadrature, update_values);
+ fe_values.reinit (dof.begin_active(), 0);
+ for (unsigned int q=0; q<quadrature.size(); ++q)
+ {
+ deallog << " Quadrature point " << q << ": ";
+ for (unsigned int i=0; i<fe_rt.dofs_per_cell; ++i)
+ {
+ deallog << '[';
+ for (unsigned int c=0; c<fe_rt.n_components(); ++c)
+ deallog << fe_values.shape_value_component(i,q,c) << ' ';
+ deallog << ']';
+ }
+ deallog << std::endl;
+ }
+ }
+}
+
+
+int
+main()
+{
+ deallog << std::setprecision(PRECISION);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ for (unsigned int i=1; i<4; ++i)
+ test<2>(i);
+
+ return 0;
+}
+
+
+
--- /dev/null
+
+DEAL::Degree=1
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [1.37 0 ][-0.37 0 ][0 0 ][0 0 ][0 1.37 ][0 -0.37 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-0.37 0 ][1.37 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.37 ][0 -0.37 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [2.73 0 ][-0.73 0 ][0 0 ][0 0 ][0 2.73 ][0 -0.73 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-0.73 0 ][2.73 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 2.73 ][0 -0.73 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [5.46 0 ][-1.46 0 ][0 0 ][0 0 ][0 5.46 ][0 -1.46 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-1.46 0 ][5.46 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 5.46 ][0 -1.46 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [10.93 0 ][-2.93 0 ][0 0 ][0 0 ][0 10.93 ][0 -2.93 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-2.93 0 ][10.93 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 10.93 ][0 -2.93 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [21.86 0 ][-5.86 0 ][0 0 ][0 0 ][0 21.86 ][0 -5.86 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-5.86 0 ][21.86 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 21.86 ][0 -5.86 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [43.71 0 ][-11.71 0 ][0 0 ][0 0 ][0 43.71 ][0 -11.71 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-11.71 0 ][43.71 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 43.71 ][0 -11.71 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [87.43 0 ][-23.43 0 ][0 0 ][0 0 ][0 87.43 ][0 -23.43 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-23.43 0 ][87.43 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 87.43 ][0 -23.43 ]
+DEAL::Degree=2
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [1.48 0 ][-0.67 0 ][0.19 0 ][0 0 ][0 0 ][0 0 ][0 1.48 ][0 -0.67 ][0 0.19 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0.19 0 ][-0.67 0 ][1.48 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.48 ][0 -0.67 ][0 0.19 ][0 0 ][0 0 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [2.96 0 ][-1.33 0 ][0.38 0 ][0 0 ][0 0 ][0 0 ][0 2.96 ][0 -1.33 ][0 0.38 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0.38 0 ][-1.33 0 ][2.96 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 2.96 ][0 -1.33 ][0 0.38 ][0 0 ][0 0 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [5.92 0 ][-2.67 0 ][0.75 0 ][0 0 ][0 0 ][0 0 ][0 5.92 ][0 -2.67 ][0 0.75 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0.75 0 ][-2.67 0 ][5.92 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 5.92 ][0 -2.67 ][0 0.75 ][0 0 ][0 0 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [11.83 0 ][-5.33 0 ][1.50 0 ][0 0 ][0 0 ][0 0 ][0 11.83 ][0 -5.33 ][0 1.50 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [1.50 0 ][-5.33 0 ][11.83 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 11.83 ][0 -5.33 ][0 1.50 ][0 0 ][0 0 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [23.66 0 ][-10.67 0 ][3.01 0 ][0 0 ][0 0 ][0 0 ][0 23.66 ][0 -10.67 ][0 3.01 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [3.01 0 ][-10.67 0 ][23.66 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 23.66 ][0 -10.67 ][0 3.01 ][0 0 ][0 0 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [47.32 0 ][-21.33 0 ][6.01 0 ][0 0 ][0 0 ][0 0 ][0 47.32 ][0 -21.33 ][0 6.01 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [6.01 0 ][-21.33 0 ][47.32 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 47.32 ][0 -21.33 ][0 6.01 ][0 0 ][0 0 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [94.65 0 ][-42.67 0 ][12.02 0 ][0 0 ][0 0 ][0 0 ][0 94.65 ][0 -42.67 ][0 12.02 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [12.02 0 ][-42.67 0 ][94.65 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 94.65 ][0 -42.67 ][0 12.02 ][0 0 ][0 0 ]
+DEAL::Degree=3
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [1.53 0 ][-0.81 0 ][0.40 0 ][-0.11 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.53 ][0 -0.81 ][0 0.40 ][0 -0.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-0.11 0 ][0.40 0 ][-0.81 0 ][1.53 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.53 ][0 -0.81 ][0 0.40 ][0 -0.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [3.05 0 ][-1.63 0 ][0.80 0 ][-0.23 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 3.05 ][0 -1.63 ][0 0.80 ][0 -0.23 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-0.23 0 ][0.80 0 ][-1.63 0 ][3.05 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 3.05 ][0 -1.63 ][0 0.80 ][0 -0.23 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [6.11 0 ][-3.25 0 ][1.60 0 ][-0.46 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 6.11 ][0 -3.25 ][0 1.60 ][0 -0.46 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-0.46 0 ][1.60 0 ][-3.25 0 ][6.11 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 6.11 ][0 -3.25 ][0 1.60 ][0 -0.46 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [12.21 0 ][-6.51 0 ][3.21 0 ][-0.91 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 12.21 ][0 -6.51 ][0 3.21 ][0 -0.91 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-0.91 0 ][3.21 0 ][-6.51 0 ][12.21 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 12.21 ][0 -6.51 ][0 3.21 ][0 -0.91 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [24.43 0 ][-13.02 0 ][6.41 0 ][-1.82 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 24.43 ][0 -13.02 ][0 6.41 ][0 -1.82 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-1.82 0 ][6.41 0 ][-13.02 0 ][24.43 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 24.43 ][0 -13.02 ][0 6.41 ][0 -1.82 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [48.86 0 ][-26.04 0 ][12.82 0 ][-3.65 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 48.86 ][0 -26.04 ][0 12.82 ][0 -3.65 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-3.65 0 ][12.82 0 ][-26.04 0 ][48.86 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 48.86 ][0 -26.04 ][0 12.82 ][0 -3.65 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [97.71 0 ][-52.07 0 ][25.65 0 ][-7.29 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 97.71 ][0 -52.07 ][0 25.65 ][0 -7.29 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-7.29 0 ][25.65 0 ][-52.07 0 ][97.71 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 97.71 ][0 -52.07 ][0 25.65 ][0 -7.29 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+// Like rt_10, but check gradients instead of values
+
+#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/lac/solver_cg.h>
+#include <deal.II/lac/precondition.h>
+#include <deal.II/lac/vector_memory.h>
+#include <deal.II/lac/sparse_matrix.h>
+#include <deal.II/lac/sparsity_pattern.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/fe_bdm.h>
+#include <deal.II/fe/fe_values.h>
+
+#include <vector>
+#include <fstream>
+#include <string>
+
+#define PRECISION 2
+
+
+std::ofstream logfile ("output");
+
+template<int dim>
+void
+test (const unsigned int degree)
+{
+ FE_BDM<dim> fe_rt(degree);
+
+ deallog << "Degree=" << degree
+ << std::endl;
+
+ for (double h=1; h>1./128; h/=2)
+ {
+ deallog << " h=" << h
+ << std::endl;
+
+ Triangulation<dim> tr;
+ GridGenerator::hyper_cube(tr, 0., h);
+
+ DoFHandler<dim> dof(tr);
+ dof.distribute_dofs(fe_rt);
+
+ QTrapez<dim> quadrature;
+
+ FEValues<dim> fe_values (fe_rt, quadrature, update_gradients);
+ fe_values.reinit (dof.begin_active());
+ for (unsigned int q=0; q<quadrature.size(); ++q)
+ {
+ deallog << " Quadrature point " << q << ": ";
+ for (unsigned int i=0; i<fe_rt.dofs_per_cell; ++i)
+ {
+ deallog << '[';
+ for (unsigned int c=0; c<fe_rt.n_components(); ++c)
+ deallog << fe_values.shape_grad_component(i,q,c) << ' ';
+ deallog << ']';
+ }
+ deallog << std::endl;
+ }
+ }
+}
+
+
+int
+main()
+{
+ deallog << std::setprecision(PRECISION);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ for (unsigned int i=1; i<4; ++i)
+ test<2>(i);
+
+ return 0;
+}
+
+
+
--- /dev/null
+
+DEAL::Degree=1
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [-1.37 -1.73 0.00 0.87 ][0.37 1.73 0.00 -0.87 ][1.37 0.00 0.00 -0.87 ][-0.37 0.00 0.00 0.87 ][0.87 0.00 -1.73 -1.37 ][-0.87 0.00 1.73 0.37 ][-0.87 0.00 0.00 1.37 ][0.87 0.00 0.00 -0.37 ]
+DEAL:: Quadrature point 1: [-1.37 0.00 0.00 0.87 ][0.37 0.00 0.00 -0.87 ][1.37 -1.73 0.00 -0.87 ][-0.37 1.73 0.00 0.87 ][-0.87 0.00 -1.73 0.37 ][0.87 0.00 1.73 -1.37 ][0.87 0.00 0.00 -0.37 ][-0.87 0.00 0.00 1.37 ]
+DEAL:: Quadrature point 2: [0.37 -1.73 0.00 -0.87 ][-1.37 1.73 0.00 0.87 ][-0.37 0.00 0.00 0.87 ][1.37 0.00 0.00 -0.87 ][0.87 0.00 0.00 -1.37 ][-0.87 0.00 0.00 0.37 ][-0.87 0.00 -1.73 1.37 ][0.87 0.00 1.73 -0.37 ]
+DEAL:: Quadrature point 3: [0.37 0.00 0.00 -0.87 ][-1.37 0.00 0.00 0.87 ][-0.37 -1.73 0.00 0.87 ][1.37 1.73 0.00 -0.87 ][-0.87 0.00 0.00 0.37 ][0.87 0.00 0.00 -1.37 ][0.87 0.00 -1.73 -0.37 ][-0.87 0.00 1.73 1.37 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [-5.46 -6.93 0.00 3.46 ][1.46 6.93 0.00 -3.46 ][5.46 0.00 0.00 -3.46 ][-1.46 0.00 0.00 3.46 ][3.46 0.00 -6.93 -5.46 ][-3.46 0.00 6.93 1.46 ][-3.46 0.00 0.00 5.46 ][3.46 0.00 0.00 -1.46 ]
+DEAL:: Quadrature point 1: [-5.46 0.00 0.00 3.46 ][1.46 0.00 0.00 -3.46 ][5.46 -6.93 0.00 -3.46 ][-1.46 6.93 0.00 3.46 ][-3.46 0.00 -6.93 1.46 ][3.46 0.00 6.93 -5.46 ][3.46 0.00 0.00 -1.46 ][-3.46 0.00 0.00 5.46 ]
+DEAL:: Quadrature point 2: [1.46 -6.93 0.00 -3.46 ][-5.46 6.93 0.00 3.46 ][-1.46 0.00 0.00 3.46 ][5.46 0.00 0.00 -3.46 ][3.46 0.00 0.00 -5.46 ][-3.46 0.00 0.00 1.46 ][-3.46 0.00 -6.93 5.46 ][3.46 0.00 6.93 -1.46 ]
+DEAL:: Quadrature point 3: [1.46 0.00 0.00 -3.46 ][-5.46 0.00 0.00 3.46 ][-1.46 -6.93 0.00 3.46 ][5.46 6.93 0.00 -3.46 ][-3.46 0.00 0.00 1.46 ][3.46 0.00 0.00 -5.46 ][3.46 0.00 -6.93 -1.46 ][-3.46 0.00 6.93 5.46 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [-21.86 -27.71 0.00 13.86 ][5.86 27.71 0.00 -13.86 ][21.86 0.00 0.00 -13.86 ][-5.86 0.00 0.00 13.86 ][13.86 0.00 -27.71 -21.86 ][-13.86 0.00 27.71 5.86 ][-13.86 0.00 0.00 21.86 ][13.86 0.00 0.00 -5.86 ]
+DEAL:: Quadrature point 1: [-21.86 0.00 0.00 13.86 ][5.86 0.00 0.00 -13.86 ][21.86 -27.71 0.00 -13.86 ][-5.86 27.71 0.00 13.86 ][-13.86 0.00 -27.71 5.86 ][13.86 0.00 27.71 -21.86 ][13.86 0.00 0.00 -5.86 ][-13.86 0.00 0.00 21.86 ]
+DEAL:: Quadrature point 2: [5.86 -27.71 0.00 -13.86 ][-21.86 27.71 0.00 13.86 ][-5.86 0.00 0.00 13.86 ][21.86 0.00 0.00 -13.86 ][13.86 0.00 0.00 -21.86 ][-13.86 0.00 0.00 5.86 ][-13.86 0.00 -27.71 21.86 ][13.86 0.00 27.71 -5.86 ]
+DEAL:: Quadrature point 3: [5.86 0.00 0.00 -13.86 ][-21.86 0.00 0.00 13.86 ][-5.86 -27.71 0.00 13.86 ][21.86 27.71 0.00 -13.86 ][-13.86 0.00 0.00 5.86 ][13.86 0.00 0.00 -21.86 ][13.86 0.00 -27.71 -5.86 ][-13.86 0.00 27.71 21.86 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [-87.43 -110.85 0.00 55.43 ][23.43 110.85 0.00 -55.43 ][87.43 0.00 0.00 -55.43 ][-23.43 0.00 0.00 55.43 ][55.43 0.00 -110.85 -87.43 ][-55.43 0.00 110.85 23.43 ][-55.43 0.00 0.00 87.43 ][55.43 0.00 0.00 -23.43 ]
+DEAL:: Quadrature point 1: [-87.43 0.00 0.00 55.43 ][23.43 0.00 0.00 -55.43 ][87.43 -110.85 0.00 -55.43 ][-23.43 110.85 0.00 55.43 ][-55.43 0.00 -110.85 23.43 ][55.43 0.00 110.85 -87.43 ][55.43 0.00 0.00 -23.43 ][-55.43 0.00 0.00 87.43 ]
+DEAL:: Quadrature point 2: [23.43 -110.85 0.00 -55.43 ][-87.43 110.85 0.00 55.43 ][-23.43 0.00 0.00 55.43 ][87.43 0.00 0.00 -55.43 ][55.43 0.00 0.00 -87.43 ][-55.43 0.00 0.00 23.43 ][-55.43 0.00 -110.85 87.43 ][55.43 0.00 110.85 -23.43 ]
+DEAL:: Quadrature point 3: [23.43 0.00 0.00 -55.43 ][-87.43 0.00 0.00 55.43 ][-23.43 -110.85 0.00 55.43 ][87.43 110.85 0.00 -55.43 ][-55.43 0.00 0.00 23.43 ][55.43 0.00 0.00 -87.43 ][55.43 0.00 -110.85 -23.43 ][-55.43 0.00 110.85 87.43 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [-349.70 -443.41 0.00 221.70 ][93.70 443.41 0.00 -221.70 ][349.70 0.00 0.00 -221.70 ][-93.70 0.00 0.00 221.70 ][221.70 0.00 -443.41 -349.70 ][-221.70 0.00 443.41 93.70 ][-221.70 0.00 0.00 349.70 ][221.70 0.00 0.00 -93.70 ]
+DEAL:: Quadrature point 1: [-349.70 0.00 0.00 221.70 ][93.70 0.00 0.00 -221.70 ][349.70 -443.41 0.00 -221.70 ][-93.70 443.41 0.00 221.70 ][-221.70 0.00 -443.41 93.70 ][221.70 0.00 443.41 -349.70 ][221.70 0.00 0.00 -93.70 ][-221.70 0.00 0.00 349.70 ]
+DEAL:: Quadrature point 2: [93.70 -443.41 0.00 -221.70 ][-349.70 443.41 0.00 221.70 ][-93.70 0.00 0.00 221.70 ][349.70 0.00 0.00 -221.70 ][221.70 0.00 0.00 -349.70 ][-221.70 0.00 0.00 93.70 ][-221.70 0.00 -443.41 349.70 ][221.70 0.00 443.41 -93.70 ]
+DEAL:: Quadrature point 3: [93.70 0.00 0.00 -221.70 ][-349.70 0.00 0.00 221.70 ][-93.70 -443.41 0.00 221.70 ][349.70 443.41 0.00 -221.70 ][-221.70 0.00 0.00 93.70 ][221.70 0.00 0.00 -349.70 ][221.70 0.00 -443.41 -93.70 ][-221.70 0.00 443.41 349.70 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [-1398.81 -1773.62 0.00 886.81 ][374.81 1773.62 0.00 -886.81 ][1398.81 0.00 0.00 -886.81 ][-374.81 0.00 0.00 886.81 ][886.81 0.00 -1773.62 -1398.81 ][-886.81 0.00 1773.62 374.81 ][-886.81 0.00 0.00 1398.81 ][886.81 0.00 0.00 -374.81 ]
+DEAL:: Quadrature point 1: [-1398.81 0.00 0.00 886.81 ][374.81 0.00 0.00 -886.81 ][1398.81 -1773.62 0.00 -886.81 ][-374.81 1773.62 0.00 886.81 ][-886.81 0.00 -1773.62 374.81 ][886.81 0.00 1773.62 -1398.81 ][886.81 0.00 0.00 -374.81 ][-886.81 0.00 0.00 1398.81 ]
+DEAL:: Quadrature point 2: [374.81 -1773.62 0.00 -886.81 ][-1398.81 1773.62 0.00 886.81 ][-374.81 0.00 0.00 886.81 ][1398.81 0.00 0.00 -886.81 ][886.81 0.00 0.00 -1398.81 ][-886.81 0.00 0.00 374.81 ][-886.81 0.00 -1773.62 1398.81 ][886.81 0.00 1773.62 -374.81 ]
+DEAL:: Quadrature point 3: [374.81 0.00 0.00 -886.81 ][-1398.81 0.00 0.00 886.81 ][-374.81 -1773.62 0.00 886.81 ][1398.81 1773.62 0.00 -886.81 ][-886.81 0.00 0.00 374.81 ][886.81 0.00 0.00 -1398.81 ][886.81 0.00 -1773.62 -374.81 ][-886.81 0.00 1773.62 1398.81 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [-5595.24 -7094.48 0.00 3547.24 ][1499.24 7094.48 0.00 -3547.24 ][5595.24 0.00 0.00 -3547.24 ][-1499.24 0.00 0.00 3547.24 ][3547.24 0.00 -7094.48 -5595.24 ][-3547.24 0.00 7094.48 1499.24 ][-3547.24 0.00 0.00 5595.24 ][3547.24 0.00 0.00 -1499.24 ]
+DEAL:: Quadrature point 1: [-5595.24 0.00 0.00 3547.24 ][1499.24 0.00 0.00 -3547.24 ][5595.24 -7094.48 0.00 -3547.24 ][-1499.24 7094.48 0.00 3547.24 ][-3547.24 0.00 -7094.48 1499.24 ][3547.24 0.00 7094.48 -5595.24 ][3547.24 0.00 0.00 -1499.24 ][-3547.24 0.00 0.00 5595.24 ]
+DEAL:: Quadrature point 2: [1499.24 -7094.48 0.00 -3547.24 ][-5595.24 7094.48 0.00 3547.24 ][-1499.24 0.00 0.00 3547.24 ][5595.24 0.00 0.00 -3547.24 ][3547.24 0.00 0.00 -5595.24 ][-3547.24 0.00 0.00 1499.24 ][-3547.24 0.00 -7094.48 5595.24 ][3547.24 0.00 7094.48 -1499.24 ]
+DEAL:: Quadrature point 3: [1499.24 0.00 0.00 -3547.24 ][-5595.24 0.00 0.00 3547.24 ][-1499.24 -7094.48 0.00 3547.24 ][5595.24 7094.48 0.00 -3547.24 ][-3547.24 0.00 0.00 1499.24 ][3547.24 0.00 0.00 -5595.24 ][3547.24 0.00 -7094.48 -1499.24 ][-3547.24 0.00 7094.48 5595.24 ]
+DEAL::Degree=2
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [-2.31 -4.62 0.00 0.56 ][-0.67 6.67 0.00 -1.11 ][-1.02 -2.04 0.00 0.56 ][0.65 0.00 0.00 -0.56 ][-2.00 0.00 0.00 1.11 ][-0.65 0.00 0.00 -0.56 ][0.56 0.00 -4.62 -2.31 ][-1.11 0.00 6.67 -0.67 ][0.56 0.00 -2.04 -1.02 ][-0.56 0.00 0.00 0.65 ][1.11 0.00 0.00 -2.00 ][-0.56 0.00 0.00 -0.65 ][6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6.00 ]
+DEAL:: Quadrature point 1: [-0.65 0.00 0.00 0.56 ][2.00 0.00 0.00 -1.11 ][0.65 0.00 0.00 0.56 ][2.31 -4.62 0.00 -0.56 ][0.67 6.67 0.00 1.11 ][1.02 -2.04 0.00 -0.56 ][0.56 0.00 2.04 -1.02 ][-1.11 0.00 -6.67 -0.67 ][0.56 0.00 4.62 -2.31 ][-0.56 0.00 0.00 -0.65 ][1.11 0.00 0.00 -2.00 ][-0.56 0.00 0.00 0.65 ][-6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6.00 ]
+DEAL:: Quadrature point 2: [-1.02 2.04 0.00 0.56 ][-0.67 -6.67 0.00 -1.11 ][-2.31 4.62 0.00 0.56 ][-0.65 0.00 0.00 -0.56 ][-2.00 0.00 0.00 1.11 ][0.65 0.00 0.00 -0.56 ][0.56 0.00 0.00 -0.65 ][-1.11 0.00 0.00 2.00 ][0.56 0.00 0.00 0.65 ][-0.56 0.00 -4.62 2.31 ][1.11 0.00 6.67 0.67 ][-0.56 0.00 -2.04 1.02 ][6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -6.00 ]
+DEAL:: Quadrature point 3: [0.65 0.00 0.00 0.56 ][2.00 0.00 0.00 -1.11 ][-0.65 0.00 0.00 0.56 ][1.02 2.04 0.00 -0.56 ][0.67 -6.67 0.00 1.11 ][2.31 4.62 0.00 -0.56 ][0.56 0.00 0.00 0.65 ][-1.11 0.00 0.00 2.00 ][0.56 0.00 0.00 -0.65 ][-0.56 0.00 2.04 1.02 ][1.11 0.00 -6.67 0.67 ][-0.56 0.00 4.62 2.31 ][-6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -6.00 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [-9.25 -18.50 0.00 2.22 ][-2.67 26.67 0.00 -4.44 ][-4.08 -8.17 0.00 2.22 ][2.58 0.00 0.00 -2.22 ][-8.00 0.00 0.00 4.44 ][-2.58 0.00 0.00 -2.22 ][2.22 0.00 -18.50 -9.25 ][-4.44 0.00 26.67 -2.67 ][2.22 0.00 -8.17 -4.08 ][-2.22 0.00 0.00 2.58 ][4.44 0.00 0.00 -8.00 ][-2.22 0.00 0.00 -2.58 ][24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24.00 ]
+DEAL:: Quadrature point 1: [-2.58 0.00 0.00 2.22 ][8.00 0.00 0.00 -4.44 ][2.58 0.00 0.00 2.22 ][9.25 -18.50 0.00 -2.22 ][2.67 26.67 0.00 4.44 ][4.08 -8.17 0.00 -2.22 ][2.22 0.00 8.17 -4.08 ][-4.44 0.00 -26.67 -2.67 ][2.22 0.00 18.50 -9.25 ][-2.22 0.00 0.00 -2.58 ][4.44 0.00 0.00 -8.00 ][-2.22 0.00 0.00 2.58 ][-24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24.00 ]
+DEAL:: Quadrature point 2: [-4.08 8.17 0.00 2.22 ][-2.67 -26.67 0.00 -4.44 ][-9.25 18.50 0.00 2.22 ][-2.58 0.00 0.00 -2.22 ][-8.00 0.00 0.00 4.44 ][2.58 0.00 0.00 -2.22 ][2.22 0.00 0.00 -2.58 ][-4.44 0.00 0.00 8.00 ][2.22 0.00 0.00 2.58 ][-2.22 0.00 -18.50 9.25 ][4.44 0.00 26.67 2.67 ][-2.22 0.00 -8.17 4.08 ][24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -24.00 ]
+DEAL:: Quadrature point 3: [2.58 0.00 0.00 2.22 ][8.00 0.00 0.00 -4.44 ][-2.58 0.00 0.00 2.22 ][4.08 8.17 0.00 -2.22 ][2.67 -26.67 0.00 4.44 ][9.25 18.50 0.00 -2.22 ][2.22 0.00 0.00 2.58 ][-4.44 0.00 0.00 8.00 ][2.22 0.00 0.00 -2.58 ][-2.22 0.00 8.17 4.08 ][4.44 0.00 -26.67 2.67 ][-2.22 0.00 18.50 9.25 ][-24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -24.00 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [-36.99 -73.99 0.00 8.89 ][-10.67 106.67 0.00 -17.78 ][-16.34 -32.68 0.00 8.89 ][10.33 0.00 0.00 -8.89 ][-32.00 0.00 0.00 17.78 ][-10.33 0.00 0.00 -8.89 ][8.89 0.00 -73.99 -36.99 ][-17.78 0.00 106.67 -10.67 ][8.89 0.00 -32.68 -16.34 ][-8.89 0.00 0.00 10.33 ][17.78 0.00 0.00 -32.00 ][-8.89 0.00 0.00 -10.33 ][96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 96.00 ]
+DEAL:: Quadrature point 1: [-10.33 0.00 0.00 8.89 ][32.00 0.00 0.00 -17.78 ][10.33 0.00 0.00 8.89 ][36.99 -73.99 0.00 -8.89 ][10.67 106.67 0.00 17.78 ][16.34 -32.68 0.00 -8.89 ][8.89 0.00 32.68 -16.34 ][-17.78 0.00 -106.67 -10.67 ][8.89 0.00 73.99 -36.99 ][-8.89 0.00 0.00 -10.33 ][17.78 0.00 0.00 -32.00 ][-8.89 0.00 0.00 10.33 ][-96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 96.00 ]
+DEAL:: Quadrature point 2: [-16.34 32.68 0.00 8.89 ][-10.67 -106.67 0.00 -17.78 ][-36.99 73.99 0.00 8.89 ][-10.33 0.00 0.00 -8.89 ][-32.00 0.00 0.00 17.78 ][10.33 0.00 0.00 -8.89 ][8.89 0.00 0.00 -10.33 ][-17.78 0.00 0.00 32.00 ][8.89 0.00 0.00 10.33 ][-8.89 0.00 -73.99 36.99 ][17.78 0.00 106.67 10.67 ][-8.89 0.00 -32.68 16.34 ][96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -96.00 ]
+DEAL:: Quadrature point 3: [10.33 0.00 0.00 8.89 ][32.00 0.00 0.00 -17.78 ][-10.33 0.00 0.00 8.89 ][16.34 32.68 0.00 -8.89 ][10.67 -106.67 0.00 17.78 ][36.99 73.99 0.00 -8.89 ][8.89 0.00 0.00 10.33 ][-17.78 0.00 0.00 32.00 ][8.89 0.00 0.00 -10.33 ][-8.89 0.00 32.68 16.34 ][17.78 0.00 -106.67 10.67 ][-8.89 0.00 73.99 36.99 ][-96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -96.00 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [-147.98 -295.96 0.00 35.56 ][-42.67 426.67 0.00 -71.11 ][-65.35 -130.71 0.00 35.56 ][41.31 0.00 0.00 -35.56 ][-128.00 0.00 0.00 71.11 ][-41.31 0.00 0.00 -35.56 ][35.56 0.00 -295.96 -147.98 ][-71.11 0.00 426.67 -42.67 ][35.56 0.00 -130.71 -65.35 ][-35.56 0.00 0.00 41.31 ][71.11 0.00 0.00 -128.00 ][-35.56 0.00 0.00 -41.31 ][384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 384.00 ]
+DEAL:: Quadrature point 1: [-41.31 0.00 0.00 35.56 ][128.00 0.00 0.00 -71.11 ][41.31 0.00 0.00 35.56 ][147.98 -295.96 0.00 -35.56 ][42.67 426.67 0.00 71.11 ][65.35 -130.71 0.00 -35.56 ][35.56 0.00 130.71 -65.35 ][-71.11 0.00 -426.67 -42.67 ][35.56 0.00 295.96 -147.98 ][-35.56 0.00 0.00 -41.31 ][71.11 0.00 0.00 -128.00 ][-35.56 0.00 0.00 41.31 ][-384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 384.00 ]
+DEAL:: Quadrature point 2: [-65.35 130.71 0.00 35.56 ][-42.67 -426.67 0.00 -71.11 ][-147.98 295.96 0.00 35.56 ][-41.31 0.00 0.00 -35.56 ][-128.00 0.00 0.00 71.11 ][41.31 0.00 0.00 -35.56 ][35.56 0.00 0.00 -41.31 ][-71.11 0.00 0.00 128.00 ][35.56 0.00 0.00 41.31 ][-35.56 0.00 -295.96 147.98 ][71.11 0.00 426.67 42.67 ][-35.56 0.00 -130.71 65.35 ][384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -384.00 ]
+DEAL:: Quadrature point 3: [41.31 0.00 0.00 35.56 ][128.00 0.00 0.00 -71.11 ][-41.31 0.00 0.00 35.56 ][65.35 130.71 0.00 -35.56 ][42.67 -426.67 0.00 71.11 ][147.98 295.96 0.00 -35.56 ][35.56 0.00 0.00 41.31 ][-71.11 0.00 0.00 128.00 ][35.56 0.00 0.00 -41.31 ][-35.56 0.00 130.71 65.35 ][71.11 0.00 -426.67 42.67 ][-35.56 0.00 295.96 147.98 ][-384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -384.00 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [-591.91 -1183.83 0.00 142.22 ][-170.67 1706.67 0.00 -284.44 ][-261.42 -522.84 0.00 142.22 ][165.25 0.00 0.00 -142.22 ][-512.00 0.00 0.00 284.44 ][-165.25 0.00 0.00 -142.22 ][142.22 0.00 -1183.83 -591.91 ][-284.44 0.00 1706.67 -170.67 ][142.22 0.00 -522.84 -261.42 ][-142.22 0.00 0.00 165.25 ][284.44 0.00 0.00 -512.00 ][-142.22 0.00 0.00 -165.25 ][1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1536.00 ]
+DEAL:: Quadrature point 1: [-165.25 0.00 0.00 142.22 ][512.00 0.00 0.00 -284.44 ][165.25 0.00 0.00 142.22 ][591.91 -1183.83 0.00 -142.22 ][170.67 1706.67 0.00 284.44 ][261.42 -522.84 0.00 -142.22 ][142.22 0.00 522.84 -261.42 ][-284.44 0.00 -1706.67 -170.67 ][142.22 0.00 1183.83 -591.91 ][-142.22 0.00 0.00 -165.25 ][284.44 0.00 0.00 -512.00 ][-142.22 0.00 0.00 165.25 ][-1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1536.00 ]
+DEAL:: Quadrature point 2: [-261.42 522.84 0.00 142.22 ][-170.67 -1706.67 0.00 -284.44 ][-591.91 1183.83 0.00 142.22 ][-165.25 0.00 0.00 -142.22 ][-512.00 0.00 0.00 284.44 ][165.25 0.00 0.00 -142.22 ][142.22 0.00 0.00 -165.25 ][-284.44 0.00 0.00 512.00 ][142.22 0.00 0.00 165.25 ][-142.22 0.00 -1183.83 591.91 ][284.44 0.00 1706.67 170.67 ][-142.22 0.00 -522.84 261.42 ][1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -1536.00 ]
+DEAL:: Quadrature point 3: [165.25 0.00 0.00 142.22 ][512.00 0.00 0.00 -284.44 ][-165.25 0.00 0.00 142.22 ][261.42 522.84 0.00 -142.22 ][170.67 -1706.67 0.00 284.44 ][591.91 1183.83 0.00 -142.22 ][142.22 0.00 0.00 165.25 ][-284.44 0.00 0.00 512.00 ][142.22 0.00 0.00 -165.25 ][-142.22 0.00 522.84 261.42 ][284.44 0.00 -1706.67 170.67 ][-142.22 0.00 1183.83 591.91 ][-1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -1536.00 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [-2367.66 -4735.31 0.00 568.89 ][-682.67 6826.67 0.00 -1137.78 ][-1045.68 -2091.36 0.00 568.89 ][660.99 0.00 0.00 -568.89 ][-2048.00 0.00 0.00 1137.78 ][-660.99 0.00 0.00 -568.89 ][568.89 0.00 -4735.31 -2367.66 ][-1137.78 0.00 6826.67 -682.67 ][568.89 0.00 -2091.36 -1045.68 ][-568.89 0.00 0.00 660.99 ][1137.78 0.00 0.00 -2048.00 ][-568.89 0.00 0.00 -660.99 ][6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6144.00 ]
+DEAL:: Quadrature point 1: [-660.99 0.00 0.00 568.89 ][2048.00 0.00 0.00 -1137.78 ][660.99 0.00 0.00 568.89 ][2367.66 -4735.31 0.00 -568.89 ][682.67 6826.67 0.00 1137.78 ][1045.68 -2091.36 0.00 -568.89 ][568.89 0.00 2091.36 -1045.68 ][-1137.78 0.00 -6826.67 -682.67 ][568.89 0.00 4735.31 -2367.66 ][-568.89 0.00 0.00 -660.99 ][1137.78 0.00 0.00 -2048.00 ][-568.89 0.00 0.00 660.99 ][-6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6144.00 ]
+DEAL:: Quadrature point 2: [-1045.68 2091.36 0.00 568.89 ][-682.67 -6826.67 0.00 -1137.78 ][-2367.66 4735.31 0.00 568.89 ][-660.99 0.00 0.00 -568.89 ][-2048.00 0.00 0.00 1137.78 ][660.99 0.00 0.00 -568.89 ][568.89 0.00 0.00 -660.99 ][-1137.78 0.00 0.00 2048.00 ][568.89 0.00 0.00 660.99 ][-568.89 0.00 -4735.31 2367.66 ][1137.78 0.00 6826.67 682.67 ][-568.89 0.00 -2091.36 1045.68 ][6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -6144.00 ]
+DEAL:: Quadrature point 3: [660.99 0.00 0.00 568.89 ][2048.00 0.00 0.00 -1137.78 ][-660.99 0.00 0.00 568.89 ][1045.68 2091.36 0.00 -568.89 ][682.67 -6826.67 0.00 1137.78 ][2367.66 4735.31 0.00 -568.89 ][568.89 0.00 0.00 660.99 ][-1137.78 0.00 0.00 2048.00 ][568.89 0.00 0.00 -660.99 ][-568.89 0.00 2091.36 1045.68 ][1137.78 0.00 -6826.67 682.67 ][-568.89 0.00 4735.31 2367.66 ][-6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -6144.00 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [-9470.62 -18941.25 0.00 2275.56 ][-2730.67 27306.67 0.00 -4551.11 ][-4182.71 -8365.42 0.00 2275.56 ][2643.96 0.00 0.00 -2275.56 ][-8192.00 0.00 0.00 4551.11 ][-2643.96 0.00 0.00 -2275.56 ][2275.56 0.00 -18941.25 -9470.62 ][-4551.11 0.00 27306.67 -2730.67 ][2275.56 0.00 -8365.42 -4182.71 ][-2275.56 0.00 0.00 2643.96 ][4551.11 0.00 0.00 -8192.00 ][-2275.56 0.00 0.00 -2643.96 ][24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24576.00 ]
+DEAL:: Quadrature point 1: [-2643.96 0.00 0.00 2275.56 ][8192.00 0.00 0.00 -4551.11 ][2643.96 0.00 0.00 2275.56 ][9470.62 -18941.25 0.00 -2275.56 ][2730.67 27306.67 0.00 4551.11 ][4182.71 -8365.42 0.00 -2275.56 ][2275.56 0.00 8365.42 -4182.71 ][-4551.11 0.00 -27306.67 -2730.67 ][2275.56 0.00 18941.25 -9470.62 ][-2275.56 0.00 0.00 -2643.96 ][4551.11 0.00 0.00 -8192.00 ][-2275.56 0.00 0.00 2643.96 ][-24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24576.00 ]
+DEAL:: Quadrature point 2: [-4182.71 8365.42 0.00 2275.56 ][-2730.67 -27306.67 0.00 -4551.11 ][-9470.62 18941.25 0.00 2275.56 ][-2643.96 0.00 0.00 -2275.56 ][-8192.00 0.00 0.00 4551.11 ][2643.96 0.00 0.00 -2275.56 ][2275.56 0.00 0.00 -2643.96 ][-4551.11 0.00 0.00 8192.00 ][2275.56 0.00 0.00 2643.96 ][-2275.56 0.00 -18941.25 9470.62 ][4551.11 0.00 27306.67 2730.67 ][-2275.56 0.00 -8365.42 4182.71 ][24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -24576.00 ]
+DEAL:: Quadrature point 3: [2643.96 0.00 0.00 2275.56 ][8192.00 0.00 0.00 -4551.11 ][-2643.96 0.00 0.00 2275.56 ][4182.71 8365.42 0.00 -2275.56 ][2730.67 -27306.67 0.00 4551.11 ][9470.62 18941.25 0.00 -2275.56 ][2275.56 0.00 0.00 2643.96 ][-4551.11 0.00 0.00 8192.00 ][2275.56 0.00 0.00 -2643.96 ][-2275.56 0.00 8365.42 4182.71 ][4551.11 0.00 -27306.67 2730.67 ][-2275.56 0.00 18941.25 9470.62 ][-24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -24576.00 ]
+DEAL::Degree=3
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [-4.27 -8.55 0.00 0.37 ][-2.79 13.81 0.00 -0.94 ][-2.01 -7.42 0.00 0.94 ][0.07 2.16 0.00 -0.37 ][0.53 0.00 0.00 -0.37 ][-1.16 0.00 0.00 0.94 ][2.05 0.00 0.00 -0.94 ][1.58 0.00 0.00 0.37 ][0.37 0.00 -8.55 -4.27 ][-0.94 0.00 13.81 -2.79 ][0.94 0.00 -7.42 -2.01 ][-0.37 0.00 2.16 0.07 ][-0.37 0.00 0.00 0.53 ][0.94 0.00 0.00 -1.16 ][-0.94 0.00 0.00 2.05 ][0.37 0.00 0.00 1.58 ][54.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][-36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 54.00 ][0.00 0.00 0.00 -36.00 ][0.00 0.00 0.00 -60.00 ]
+DEAL:: Quadrature point 1: [-0.53 0.00 0.00 0.37 ][1.16 0.00 0.00 -0.94 ][-2.05 0.00 0.00 0.94 ][-1.58 0.00 0.00 -0.37 ][4.27 -8.55 0.00 -0.37 ][2.79 13.81 0.00 0.94 ][2.01 -7.42 0.00 -0.94 ][-0.07 2.16 0.00 0.37 ][-0.37 0.00 -2.16 0.07 ][0.94 0.00 7.42 -2.01 ][-0.94 0.00 -13.81 -2.79 ][0.37 0.00 8.55 -4.27 ][0.37 0.00 0.00 1.58 ][-0.94 0.00 0.00 2.05 ][0.94 0.00 0.00 -1.16 ][-0.37 0.00 0.00 0.53 ][6.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 18.00 ][0.00 0.00 0.00 36.00 ][0.00 0.00 0.00 -60.00 ]
+DEAL:: Quadrature point 2: [0.07 -2.16 0.00 -0.37 ][-2.01 7.42 0.00 0.94 ][-2.79 -13.81 0.00 -0.94 ][-4.27 8.55 0.00 0.37 ][1.58 0.00 0.00 0.37 ][2.05 0.00 0.00 -0.94 ][-1.16 0.00 0.00 0.94 ][0.53 0.00 0.00 -0.37 ][0.37 0.00 0.00 -0.53 ][-0.94 0.00 0.00 1.16 ][0.94 0.00 0.00 -2.05 ][-0.37 0.00 0.00 -1.58 ][-0.37 0.00 -8.55 4.27 ][0.94 0.00 13.81 2.79 ][-0.94 0.00 -7.42 2.01 ][0.37 0.00 2.16 -0.07 ][18.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6.00 ][0.00 0.00 0.00 36.00 ][0.00 0.00 0.00 -60.00 ]
+DEAL:: Quadrature point 3: [-1.58 0.00 0.00 -0.37 ][-2.05 0.00 0.00 0.94 ][1.16 0.00 0.00 -0.94 ][-0.53 0.00 0.00 0.37 ][-0.07 -2.16 0.00 0.37 ][2.01 7.42 0.00 -0.94 ][2.79 -13.81 0.00 0.94 ][4.27 8.55 0.00 -0.37 ][-0.37 0.00 0.00 -1.58 ][0.94 0.00 0.00 -2.05 ][-0.94 0.00 0.00 1.16 ][0.37 0.00 0.00 -0.53 ][0.37 0.00 -2.16 -0.07 ][-0.94 0.00 7.42 2.01 ][0.94 0.00 -13.81 2.79 ][-0.37 0.00 8.55 4.27 ][42.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][-36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 42.00 ][0.00 0.00 0.00 -36.00 ][0.00 0.00 0.00 -60.00 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [-17.06 -34.18 0.00 1.48 ][-11.17 55.23 0.00 -3.76 ][-8.05 -29.67 0.00 3.76 ][0.28 8.62 0.00 -1.48 ][2.11 0.00 0.00 -1.48 ][-4.64 0.00 0.00 3.76 ][8.20 0.00 0.00 -3.76 ][6.33 0.00 0.00 1.48 ][1.48 0.00 -34.18 -17.06 ][-3.76 0.00 55.23 -11.17 ][3.76 0.00 -29.67 -8.05 ][-1.48 0.00 8.62 0.28 ][-1.48 0.00 0.00 2.11 ][3.76 0.00 0.00 -4.64 ][-3.76 0.00 0.00 8.20 ][1.48 0.00 0.00 6.33 ][216.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][-144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 216.00 ][0.00 0.00 0.00 -144.00 ][0.00 0.00 0.00 -240.00 ]
+DEAL:: Quadrature point 1: [-2.11 0.00 0.00 1.48 ][4.64 0.00 0.00 -3.76 ][-8.20 0.00 0.00 3.76 ][-6.33 0.00 0.00 -1.48 ][17.06 -34.18 0.00 -1.48 ][11.17 55.23 0.00 3.76 ][8.05 -29.67 0.00 -3.76 ][-0.28 8.62 0.00 1.48 ][-1.48 0.00 -8.62 0.28 ][3.76 0.00 29.67 -8.05 ][-3.76 0.00 -55.23 -11.17 ][1.48 0.00 34.18 -17.06 ][1.48 0.00 0.00 6.33 ][-3.76 0.00 0.00 8.20 ][3.76 0.00 0.00 -4.64 ][-1.48 0.00 0.00 2.11 ][24.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 72.00 ][0.00 0.00 0.00 144.00 ][0.00 0.00 0.00 -240.00 ]
+DEAL:: Quadrature point 2: [0.28 -8.62 0.00 -1.48 ][-8.05 29.67 0.00 3.76 ][-11.17 -55.23 0.00 -3.76 ][-17.06 34.18 0.00 1.48 ][6.33 0.00 0.00 1.48 ][8.20 0.00 0.00 -3.76 ][-4.64 0.00 0.00 3.76 ][2.11 0.00 0.00 -1.48 ][1.48 0.00 0.00 -2.11 ][-3.76 0.00 0.00 4.64 ][3.76 0.00 0.00 -8.20 ][-1.48 0.00 0.00 -6.33 ][-1.48 0.00 -34.18 17.06 ][3.76 0.00 55.23 11.17 ][-3.76 0.00 -29.67 8.05 ][1.48 0.00 8.62 -0.28 ][72.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24.00 ][0.00 0.00 0.00 144.00 ][0.00 0.00 0.00 -240.00 ]
+DEAL:: Quadrature point 3: [-6.33 0.00 0.00 -1.48 ][-8.20 0.00 0.00 3.76 ][4.64 0.00 0.00 -3.76 ][-2.11 0.00 0.00 1.48 ][-0.28 -8.62 0.00 1.48 ][8.05 29.67 0.00 -3.76 ][11.17 -55.23 0.00 3.76 ][17.06 34.18 0.00 -1.48 ][-1.48 0.00 0.00 -6.33 ][3.76 0.00 0.00 -8.20 ][-3.76 0.00 0.00 4.64 ][1.48 0.00 0.00 -2.11 ][1.48 0.00 -8.62 -0.28 ][-3.76 0.00 29.67 8.05 ][3.76 0.00 -55.23 11.17 ][-1.48 0.00 34.18 17.06 ][168.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][-144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 168.00 ][0.00 0.00 0.00 -144.00 ][0.00 0.00 0.00 -240.00 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [-68.26 -136.74 0.00 5.94 ][-44.68 220.91 0.00 -15.04 ][-32.19 -118.67 0.00 15.04 ][1.13 34.49 0.00 -5.94 ][8.43 0.00 0.00 -5.94 ][-18.55 0.00 0.00 15.04 ][32.81 0.00 0.00 -15.04 ][25.31 0.00 0.00 5.94 ][5.94 0.00 -136.74 -68.26 ][-15.04 0.00 220.91 -44.68 ][15.04 0.00 -118.67 -32.19 ][-5.94 0.00 34.49 1.13 ][-5.94 0.00 0.00 8.43 ][15.04 0.00 0.00 -18.55 ][-15.04 0.00 0.00 32.81 ][5.94 0.00 0.00 25.31 ][864.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][-576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 864.00 ][0.00 0.00 0.00 -576.00 ][0.00 0.00 0.00 -960.00 ]
+DEAL:: Quadrature point 1: [-8.43 0.00 0.00 5.94 ][18.55 0.00 0.00 -15.04 ][-32.81 0.00 0.00 15.04 ][-25.31 0.00 0.00 -5.94 ][68.26 -136.74 0.00 -5.94 ][44.68 220.91 0.00 15.04 ][32.19 -118.67 0.00 -15.04 ][-1.13 34.49 0.00 5.94 ][-5.94 0.00 -34.49 1.13 ][15.04 0.00 118.67 -32.19 ][-15.04 0.00 -220.91 -44.68 ][5.94 0.00 136.74 -68.26 ][5.94 0.00 0.00 25.31 ][-15.04 0.00 0.00 32.81 ][15.04 0.00 0.00 -18.55 ][-5.94 0.00 0.00 8.43 ][96.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 288.00 ][0.00 0.00 0.00 576.00 ][0.00 0.00 0.00 -960.00 ]
+DEAL:: Quadrature point 2: [1.13 -34.49 0.00 -5.94 ][-32.19 118.67 0.00 15.04 ][-44.68 -220.91 0.00 -15.04 ][-68.26 136.74 0.00 5.94 ][25.31 0.00 0.00 5.94 ][32.81 0.00 0.00 -15.04 ][-18.55 0.00 0.00 15.04 ][8.43 0.00 0.00 -5.94 ][5.94 0.00 0.00 -8.43 ][-15.04 0.00 0.00 18.55 ][15.04 0.00 0.00 -32.81 ][-5.94 0.00 0.00 -25.31 ][-5.94 0.00 -136.74 68.26 ][15.04 0.00 220.91 44.68 ][-15.04 0.00 -118.67 32.19 ][5.94 0.00 34.49 -1.13 ][288.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 96.00 ][0.00 0.00 0.00 576.00 ][0.00 0.00 0.00 -960.00 ]
+DEAL:: Quadrature point 3: [-25.31 0.00 0.00 -5.94 ][-32.81 0.00 0.00 15.04 ][18.55 0.00 0.00 -15.04 ][-8.43 0.00 0.00 5.94 ][-1.13 -34.49 0.00 5.94 ][32.19 118.67 0.00 -15.04 ][44.68 -220.91 0.00 15.04 ][68.26 136.74 0.00 -5.94 ][-5.94 0.00 0.00 -25.31 ][15.04 0.00 0.00 -32.81 ][-15.04 0.00 0.00 18.55 ][5.94 0.00 0.00 -8.43 ][5.94 0.00 -34.49 -1.13 ][-15.04 0.00 118.67 32.19 ][15.04 0.00 -220.91 44.68 ][-5.94 0.00 136.74 68.26 ][672.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][-576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 672.00 ][0.00 0.00 0.00 -576.00 ][0.00 0.00 0.00 -960.00 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [-273.04 -546.95 0.00 23.75 ][-178.73 883.66 0.00 -60.15 ][-128.74 -474.69 0.00 60.15 ][4.51 137.98 0.00 -23.75 ][33.71 0.00 0.00 -23.75 ][-74.19 0.00 0.00 60.15 ][131.24 0.00 0.00 -60.15 ][101.24 0.00 0.00 23.75 ][23.75 0.00 -546.95 -273.04 ][-60.15 0.00 883.66 -178.73 ][60.15 0.00 -474.69 -128.74 ][-23.75 0.00 137.98 4.51 ][-23.75 0.00 0.00 33.71 ][60.15 0.00 0.00 -74.19 ][-60.15 0.00 0.00 131.24 ][23.75 0.00 0.00 101.24 ][3456.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][-2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 3456.00 ][0.00 0.00 0.00 -2304.00 ][0.00 0.00 0.00 -3840.00 ]
+DEAL:: Quadrature point 1: [-33.71 0.00 0.00 23.75 ][74.19 0.00 0.00 -60.15 ][-131.24 0.00 0.00 60.15 ][-101.24 0.00 0.00 -23.75 ][273.04 -546.95 0.00 -23.75 ][178.73 883.66 0.00 60.15 ][128.74 -474.69 0.00 -60.15 ][-4.51 137.98 0.00 23.75 ][-23.75 0.00 -137.98 4.51 ][60.15 0.00 474.69 -128.74 ][-60.15 0.00 -883.66 -178.73 ][23.75 0.00 546.95 -273.04 ][23.75 0.00 0.00 101.24 ][-60.15 0.00 0.00 131.24 ][60.15 0.00 0.00 -74.19 ][-23.75 0.00 0.00 33.71 ][384.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1152.00 ][0.00 0.00 0.00 2304.00 ][0.00 0.00 0.00 -3840.00 ]
+DEAL:: Quadrature point 2: [4.51 -137.98 0.00 -23.75 ][-128.74 474.69 0.00 60.15 ][-178.73 -883.66 0.00 -60.15 ][-273.04 546.95 0.00 23.75 ][101.24 0.00 0.00 23.75 ][131.24 0.00 0.00 -60.15 ][-74.19 0.00 0.00 60.15 ][33.71 0.00 0.00 -23.75 ][23.75 0.00 0.00 -33.71 ][-60.15 0.00 0.00 74.19 ][60.15 0.00 0.00 -131.24 ][-23.75 0.00 0.00 -101.24 ][-23.75 0.00 -546.95 273.04 ][60.15 0.00 883.66 178.73 ][-60.15 0.00 -474.69 128.74 ][23.75 0.00 137.98 -4.51 ][1152.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 384.00 ][0.00 0.00 0.00 2304.00 ][0.00 0.00 0.00 -3840.00 ]
+DEAL:: Quadrature point 3: [-101.24 0.00 0.00 -23.75 ][-131.24 0.00 0.00 60.15 ][74.19 0.00 0.00 -60.15 ][-33.71 0.00 0.00 23.75 ][-4.51 -137.98 0.00 23.75 ][128.74 474.69 0.00 -60.15 ][178.73 -883.66 0.00 60.15 ][273.04 546.95 0.00 -23.75 ][-23.75 0.00 0.00 -101.24 ][60.15 0.00 0.00 -131.24 ][-60.15 0.00 0.00 74.19 ][23.75 0.00 0.00 -33.71 ][23.75 0.00 -137.98 -4.51 ][-60.15 0.00 474.69 128.74 ][60.15 0.00 -883.66 178.73 ][-23.75 0.00 546.95 273.04 ][2688.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][-2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 2688.00 ][0.00 0.00 0.00 -2304.00 ][0.00 0.00 0.00 -3840.00 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [-1092.14 -2187.78 0.00 94.98 ][-714.92 3534.63 0.00 -240.58 ][-514.97 -1898.77 0.00 240.58 ][18.04 551.92 0.00 -94.98 ][134.83 0.00 0.00 -94.98 ][-296.76 0.00 0.00 240.58 ][524.96 0.00 0.00 -240.58 ][404.97 0.00 0.00 94.98 ][94.98 0.00 -2187.78 -1092.14 ][-240.58 0.00 3534.63 -714.92 ][240.58 0.00 -1898.77 -514.97 ][-94.98 0.00 551.92 18.04 ][-94.98 0.00 0.00 134.83 ][240.58 0.00 0.00 -296.76 ][-240.58 0.00 0.00 524.96 ][94.98 0.00 0.00 404.97 ][13824.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][-9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 13824.00 ][0.00 0.00 0.00 -9216.00 ][0.00 0.00 0.00 -15360.00 ]
+DEAL:: Quadrature point 1: [-134.83 0.00 0.00 94.98 ][296.76 0.00 0.00 -240.58 ][-524.96 0.00 0.00 240.58 ][-404.97 0.00 0.00 -94.98 ][1092.14 -2187.78 0.00 -94.98 ][714.92 3534.63 0.00 240.58 ][514.97 -1898.77 0.00 -240.58 ][-18.04 551.92 0.00 94.98 ][-94.98 0.00 -551.92 18.04 ][240.58 0.00 1898.77 -514.97 ][-240.58 0.00 -3534.63 -714.92 ][94.98 0.00 2187.78 -1092.14 ][94.98 0.00 0.00 404.97 ][-240.58 0.00 0.00 524.96 ][240.58 0.00 0.00 -296.76 ][-94.98 0.00 0.00 134.83 ][1536.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 4608.00 ][0.00 0.00 0.00 9216.00 ][0.00 0.00 0.00 -15360.00 ]
+DEAL:: Quadrature point 2: [18.04 -551.92 0.00 -94.98 ][-514.97 1898.77 0.00 240.58 ][-714.92 -3534.63 0.00 -240.58 ][-1092.14 2187.78 0.00 94.98 ][404.97 0.00 0.00 94.98 ][524.96 0.00 0.00 -240.58 ][-296.76 0.00 0.00 240.58 ][134.83 0.00 0.00 -94.98 ][94.98 0.00 0.00 -134.83 ][-240.58 0.00 0.00 296.76 ][240.58 0.00 0.00 -524.96 ][-94.98 0.00 0.00 -404.97 ][-94.98 0.00 -2187.78 1092.14 ][240.58 0.00 3534.63 714.92 ][-240.58 0.00 -1898.77 514.97 ][94.98 0.00 551.92 -18.04 ][4608.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1536.00 ][0.00 0.00 0.00 9216.00 ][0.00 0.00 0.00 -15360.00 ]
+DEAL:: Quadrature point 3: [-404.97 0.00 0.00 -94.98 ][-524.96 0.00 0.00 240.58 ][296.76 0.00 0.00 -240.58 ][-134.83 0.00 0.00 94.98 ][-18.04 -551.92 0.00 94.98 ][514.97 1898.77 0.00 -240.58 ][714.92 -3534.63 0.00 240.58 ][1092.14 2187.78 0.00 -94.98 ][-94.98 0.00 0.00 -404.97 ][240.58 0.00 0.00 -524.96 ][-240.58 0.00 0.00 296.76 ][94.98 0.00 0.00 -134.83 ][94.98 0.00 -551.92 -18.04 ][-240.58 0.00 1898.77 514.97 ][240.58 0.00 -3534.63 714.92 ][-94.98 0.00 2187.78 1092.14 ][10752.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][-9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 10752.00 ][0.00 0.00 0.00 -9216.00 ][0.00 0.00 0.00 -15360.00 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [-4368.57 -8751.13 0.00 379.93 ][-2859.70 14138.54 0.00 -962.33 ][-2059.89 -7595.08 0.00 962.33 ][72.17 2207.67 0.00 -379.93 ][539.31 0.00 0.00 -379.93 ][-1187.03 0.00 0.00 962.33 ][2099.85 0.00 0.00 -962.33 ][1619.88 0.00 0.00 379.93 ][379.93 0.00 -8751.13 -4368.57 ][-962.33 0.00 14138.54 -2859.70 ][962.33 0.00 -7595.08 -2059.89 ][-379.93 0.00 2207.67 72.17 ][-379.93 0.00 0.00 539.31 ][962.33 0.00 0.00 -1187.03 ][-962.33 0.00 0.00 2099.85 ][379.93 0.00 0.00 1619.88 ][55296.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][-36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 55296.00 ][0.00 0.00 0.00 -36864.00 ][0.00 0.00 0.00 -61440.00 ]
+DEAL:: Quadrature point 1: [-539.31 0.00 0.00 379.93 ][1187.03 0.00 0.00 -962.33 ][-2099.85 0.00 0.00 962.33 ][-1619.88 0.00 0.00 -379.93 ][4368.57 -8751.13 0.00 -379.93 ][2859.70 14138.54 0.00 962.33 ][2059.89 -7595.08 0.00 -962.33 ][-72.17 2207.67 0.00 379.93 ][-379.93 0.00 -2207.67 72.17 ][962.33 0.00 7595.08 -2059.89 ][-962.33 0.00 -14138.54 -2859.70 ][379.93 0.00 8751.13 -4368.57 ][379.93 0.00 0.00 1619.88 ][-962.33 0.00 0.00 2099.85 ][962.33 0.00 0.00 -1187.03 ][-379.93 0.00 0.00 539.31 ][6144.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 18432.00 ][0.00 0.00 0.00 36864.00 ][0.00 0.00 0.00 -61440.00 ]
+DEAL:: Quadrature point 2: [72.17 -2207.67 0.00 -379.93 ][-2059.89 7595.08 0.00 962.33 ][-2859.70 -14138.54 0.00 -962.33 ][-4368.57 8751.13 0.00 379.93 ][1619.88 0.00 0.00 379.93 ][2099.85 0.00 0.00 -962.33 ][-1187.03 0.00 0.00 962.33 ][539.31 0.00 0.00 -379.93 ][379.93 0.00 0.00 -539.31 ][-962.33 0.00 0.00 1187.03 ][962.33 0.00 0.00 -2099.85 ][-379.93 0.00 0.00 -1619.88 ][-379.93 0.00 -8751.13 4368.57 ][962.33 0.00 14138.54 2859.70 ][-962.33 0.00 -7595.08 2059.89 ][379.93 0.00 2207.67 -72.17 ][18432.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6144.00 ][0.00 0.00 0.00 36864.00 ][0.00 0.00 0.00 -61440.00 ]
+DEAL:: Quadrature point 3: [-1619.88 0.00 0.00 -379.93 ][-2099.85 0.00 0.00 962.33 ][1187.03 0.00 0.00 -962.33 ][-539.31 0.00 0.00 379.93 ][-72.17 -2207.67 0.00 379.93 ][2059.89 7595.08 0.00 -962.33 ][2859.70 -14138.54 0.00 962.33 ][4368.57 8751.13 0.00 -379.93 ][-379.93 0.00 0.00 -1619.88 ][962.33 0.00 0.00 -2099.85 ][-962.33 0.00 0.00 1187.03 ][379.93 0.00 0.00 -539.31 ][379.93 0.00 -2207.67 -72.17 ][-962.33 0.00 7595.08 2059.89 ][962.33 0.00 -14138.54 2859.70 ][-379.93 0.00 8751.13 4368.57 ][43008.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][-36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 43008.00 ][0.00 0.00 0.00 -36864.00 ][0.00 0.00 0.00 -61440.00 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [-17474.29 -35004.51 0.00 1519.73 ][-11438.80 56554.16 0.00 -3849.31 ][-8239.58 -30380.32 0.00 3849.31 ][288.66 8830.68 0.00 -1519.73 ][2157.22 0.00 0.00 -1519.73 ][-4748.14 0.00 0.00 3849.31 ][8399.39 0.00 0.00 -3849.31 ][6479.52 0.00 0.00 1519.73 ][1519.73 0.00 -35004.51 -17474.29 ][-3849.31 0.00 56554.16 -11438.80 ][3849.31 0.00 -30380.32 -8239.58 ][-1519.73 0.00 8830.68 288.66 ][-1519.73 0.00 0.00 2157.22 ][3849.31 0.00 0.00 -4748.14 ][-3849.31 0.00 0.00 8399.39 ][1519.73 0.00 0.00 6479.52 ][221184.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][-147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 221184.00 ][0.00 0.00 0.00 -147456.00 ][0.00 0.00 0.00 -245760.00 ]
+DEAL:: Quadrature point 1: [-2157.22 0.00 0.00 1519.73 ][4748.14 0.00 0.00 -3849.31 ][-8399.39 0.00 0.00 3849.31 ][-6479.52 0.00 0.00 -1519.73 ][17474.29 -35004.51 0.00 -1519.73 ][11438.80 56554.16 0.00 3849.31 ][8239.58 -30380.32 0.00 -3849.31 ][-288.66 8830.68 0.00 1519.73 ][-1519.73 0.00 -8830.68 288.66 ][3849.31 0.00 30380.32 -8239.58 ][-3849.31 0.00 -56554.16 -11438.80 ][1519.73 0.00 35004.51 -17474.29 ][1519.73 0.00 0.00 6479.52 ][-3849.31 0.00 0.00 8399.39 ][3849.31 0.00 0.00 -4748.14 ][-1519.73 0.00 0.00 2157.22 ][24576.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 73728.00 ][0.00 0.00 0.00 147456.00 ][0.00 0.00 0.00 -245760.00 ]
+DEAL:: Quadrature point 2: [288.66 -8830.68 0.00 -1519.73 ][-8239.58 30380.32 0.00 3849.31 ][-11438.80 -56554.16 0.00 -3849.31 ][-17474.29 35004.51 0.00 1519.73 ][6479.52 0.00 0.00 1519.73 ][8399.39 0.00 0.00 -3849.31 ][-4748.14 0.00 0.00 3849.31 ][2157.22 0.00 0.00 -1519.73 ][1519.73 0.00 0.00 -2157.22 ][-3849.31 0.00 0.00 4748.14 ][3849.31 0.00 0.00 -8399.39 ][-1519.73 0.00 0.00 -6479.52 ][-1519.73 0.00 -35004.51 17474.29 ][3849.31 0.00 56554.16 11438.80 ][-3849.31 0.00 -30380.32 8239.58 ][1519.73 0.00 8830.68 -288.66 ][73728.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24576.00 ][0.00 0.00 0.00 147456.00 ][0.00 0.00 0.00 -245760.00 ]
+DEAL:: Quadrature point 3: [-6479.52 0.00 0.00 -1519.73 ][-8399.39 0.00 0.00 3849.31 ][4748.14 0.00 0.00 -3849.31 ][-2157.22 0.00 0.00 1519.73 ][-288.66 -8830.68 0.00 1519.73 ][8239.58 30380.32 0.00 -3849.31 ][11438.80 -56554.16 0.00 3849.31 ][17474.29 35004.51 0.00 -1519.73 ][-1519.73 0.00 0.00 -6479.52 ][3849.31 0.00 0.00 -8399.39 ][-3849.31 0.00 0.00 4748.14 ][1519.73 0.00 0.00 -2157.22 ][1519.73 0.00 -8830.68 -288.66 ][-3849.31 0.00 30380.32 8239.58 ][3849.31 0.00 -56554.16 11438.80 ][-1519.73 0.00 35004.51 17474.29 ][172032.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][-147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 172032.00 ][0.00 0.00 0.00 -147456.00 ][0.00 0.00 0.00 -245760.00 ]
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+// Like rt_11, but for gradients (just as rt_12 is to rt_10)
+//
+// the test used to fail because of the issue with computing the
+// normals using FEFaceValue, where FEFaceValue by accident uses the
+// *face* mapping, not the *cell* mapping to compute the Piola
+// transform (leading to a missing power of h in the determinant)
+
+#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/lac/solver_cg.h>
+#include <deal.II/lac/precondition.h>
+#include <deal.II/lac/vector_memory.h>
+#include <deal.II/lac/sparse_matrix.h>
+#include <deal.II/lac/sparsity_pattern.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/fe_bdm.h>
+#include <deal.II/fe/fe_values.h>
+
+#include <vector>
+#include <fstream>
+#include <string>
+
+#define PRECISION 2
+
+
+std::ofstream logfile ("output");
+
+template<int dim>
+void
+test (const unsigned int degree)
+{
+ FE_BDM<dim> fe_rt(degree);
+
+ deallog << "Degree=" << degree
+ << std::endl;
+
+ for (double h=1; h>1./128; h/=2)
+ {
+ deallog << " h=" << h
+ << std::endl;
+
+ Triangulation<dim> tr;
+ GridGenerator::hyper_cube(tr, 0., h);
+
+ DoFHandler<dim> dof(tr);
+ dof.distribute_dofs(fe_rt);
+
+ QTrapez<dim-1> quadrature;
+
+ FEFaceValues<dim> fe_values (fe_rt, quadrature, update_gradients);
+ fe_values.reinit (dof.begin_active(), 0);
+ for (unsigned int q=0; q<quadrature.size(); ++q)
+ {
+ deallog << " Quadrature point " << q << ": ";
+ for (unsigned int i=0; i<fe_rt.dofs_per_cell; ++i)
+ {
+ deallog << '[';
+ for (unsigned int c=0; c<fe_rt.n_components(); ++c)
+ deallog << fe_values.shape_grad_component(i,q,c) << ' ';
+ deallog << ']';
+ }
+ deallog << std::endl;
+ }
+ }
+}
+
+
+int
+main()
+{
+ deallog << std::setprecision(PRECISION);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ for (unsigned int i=1; i<4; ++i)
+ test<2>(i);
+
+ return 0;
+}
+
+
+
--- /dev/null
+
+DEAL::Degree=1
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [-1.37 -1.73 0.00 0.87 ][0.37 1.73 0.00 -0.87 ][1.37 0.00 0.00 -0.87 ][-0.37 0.00 0.00 0.87 ][0.87 0.00 -1.73 -1.37 ][-0.87 0.00 1.73 0.37 ][-0.87 0.00 0.00 1.37 ][0.87 0.00 0.00 -0.37 ]
+DEAL:: Quadrature point 1: [0.37 -1.73 0.00 -0.87 ][-1.37 1.73 0.00 0.87 ][-0.37 0.00 0.00 0.87 ][1.37 0.00 0.00 -0.87 ][0.87 0.00 0.00 -1.37 ][-0.87 0.00 0.00 0.37 ][-0.87 0.00 -1.73 1.37 ][0.87 0.00 1.73 -0.37 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [-5.46 -6.93 0.00 3.46 ][1.46 6.93 0.00 -3.46 ][5.46 0.00 0.00 -3.46 ][-1.46 0.00 0.00 3.46 ][3.46 0.00 -6.93 -5.46 ][-3.46 0.00 6.93 1.46 ][-3.46 0.00 0.00 5.46 ][3.46 0.00 0.00 -1.46 ]
+DEAL:: Quadrature point 1: [1.46 -6.93 0.00 -3.46 ][-5.46 6.93 0.00 3.46 ][-1.46 0.00 0.00 3.46 ][5.46 0.00 0.00 -3.46 ][3.46 0.00 0.00 -5.46 ][-3.46 0.00 0.00 1.46 ][-3.46 0.00 -6.93 5.46 ][3.46 0.00 6.93 -1.46 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [-21.86 -27.71 0.00 13.86 ][5.86 27.71 0.00 -13.86 ][21.86 0.00 0.00 -13.86 ][-5.86 0.00 0.00 13.86 ][13.86 0.00 -27.71 -21.86 ][-13.86 0.00 27.71 5.86 ][-13.86 0.00 0.00 21.86 ][13.86 0.00 0.00 -5.86 ]
+DEAL:: Quadrature point 1: [5.86 -27.71 0.00 -13.86 ][-21.86 27.71 0.00 13.86 ][-5.86 0.00 0.00 13.86 ][21.86 0.00 0.00 -13.86 ][13.86 0.00 0.00 -21.86 ][-13.86 0.00 0.00 5.86 ][-13.86 0.00 -27.71 21.86 ][13.86 0.00 27.71 -5.86 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [-87.43 -110.85 0.00 55.43 ][23.43 110.85 0.00 -55.43 ][87.43 0.00 0.00 -55.43 ][-23.43 0.00 0.00 55.43 ][55.43 0.00 -110.85 -87.43 ][-55.43 0.00 110.85 23.43 ][-55.43 0.00 0.00 87.43 ][55.43 0.00 0.00 -23.43 ]
+DEAL:: Quadrature point 1: [23.43 -110.85 0.00 -55.43 ][-87.43 110.85 0.00 55.43 ][-23.43 0.00 0.00 55.43 ][87.43 0.00 0.00 -55.43 ][55.43 0.00 0.00 -87.43 ][-55.43 0.00 0.00 23.43 ][-55.43 0.00 -110.85 87.43 ][55.43 0.00 110.85 -23.43 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [-349.70 -443.41 0.00 221.70 ][93.70 443.41 0.00 -221.70 ][349.70 0.00 0.00 -221.70 ][-93.70 0.00 0.00 221.70 ][221.70 0.00 -443.41 -349.70 ][-221.70 0.00 443.41 93.70 ][-221.70 0.00 0.00 349.70 ][221.70 0.00 0.00 -93.70 ]
+DEAL:: Quadrature point 1: [93.70 -443.41 0.00 -221.70 ][-349.70 443.41 0.00 221.70 ][-93.70 0.00 0.00 221.70 ][349.70 0.00 0.00 -221.70 ][221.70 0.00 0.00 -349.70 ][-221.70 0.00 0.00 93.70 ][-221.70 0.00 -443.41 349.70 ][221.70 0.00 443.41 -93.70 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [-1398.81 -1773.62 0.00 886.81 ][374.81 1773.62 0.00 -886.81 ][1398.81 0.00 0.00 -886.81 ][-374.81 0.00 0.00 886.81 ][886.81 0.00 -1773.62 -1398.81 ][-886.81 0.00 1773.62 374.81 ][-886.81 0.00 0.00 1398.81 ][886.81 0.00 0.00 -374.81 ]
+DEAL:: Quadrature point 1: [374.81 -1773.62 0.00 -886.81 ][-1398.81 1773.62 0.00 886.81 ][-374.81 0.00 0.00 886.81 ][1398.81 0.00 0.00 -886.81 ][886.81 0.00 0.00 -1398.81 ][-886.81 0.00 0.00 374.81 ][-886.81 0.00 -1773.62 1398.81 ][886.81 0.00 1773.62 -374.81 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [-5595.24 -7094.48 0.00 3547.24 ][1499.24 7094.48 0.00 -3547.24 ][5595.24 0.00 0.00 -3547.24 ][-1499.24 0.00 0.00 3547.24 ][3547.24 0.00 -7094.48 -5595.24 ][-3547.24 0.00 7094.48 1499.24 ][-3547.24 0.00 0.00 5595.24 ][3547.24 0.00 0.00 -1499.24 ]
+DEAL:: Quadrature point 1: [1499.24 -7094.48 0.00 -3547.24 ][-5595.24 7094.48 0.00 3547.24 ][-1499.24 0.00 0.00 3547.24 ][5595.24 0.00 0.00 -3547.24 ][3547.24 0.00 0.00 -5595.24 ][-3547.24 0.00 0.00 1499.24 ][-3547.24 0.00 -7094.48 5595.24 ][3547.24 0.00 7094.48 -1499.24 ]
+DEAL::Degree=2
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [-2.31 -4.62 0.00 0.56 ][-0.67 6.67 0.00 -1.11 ][-1.02 -2.04 0.00 0.56 ][0.65 0.00 0.00 -0.56 ][-2.00 0.00 0.00 1.11 ][-0.65 0.00 0.00 -0.56 ][0.56 0.00 -4.62 -2.31 ][-1.11 0.00 6.67 -0.67 ][0.56 0.00 -2.04 -1.02 ][-0.56 0.00 0.00 0.65 ][1.11 0.00 0.00 -2.00 ][-0.56 0.00 0.00 -0.65 ][6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6.00 ]
+DEAL:: Quadrature point 1: [-1.02 2.04 0.00 0.56 ][-0.67 -6.67 0.00 -1.11 ][-2.31 4.62 0.00 0.56 ][-0.65 0.00 0.00 -0.56 ][-2.00 0.00 0.00 1.11 ][0.65 0.00 0.00 -0.56 ][0.56 0.00 0.00 -0.65 ][-1.11 0.00 0.00 2.00 ][0.56 0.00 0.00 0.65 ][-0.56 0.00 -4.62 2.31 ][1.11 0.00 6.67 0.67 ][-0.56 0.00 -2.04 1.02 ][6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -6.00 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [-9.25 -18.50 0.00 2.22 ][-2.67 26.67 0.00 -4.44 ][-4.08 -8.17 0.00 2.22 ][2.58 0.00 0.00 -2.22 ][-8.00 0.00 0.00 4.44 ][-2.58 0.00 0.00 -2.22 ][2.22 0.00 -18.50 -9.25 ][-4.44 0.00 26.67 -2.67 ][2.22 0.00 -8.17 -4.08 ][-2.22 0.00 0.00 2.58 ][4.44 0.00 0.00 -8.00 ][-2.22 0.00 0.00 -2.58 ][24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24.00 ]
+DEAL:: Quadrature point 1: [-4.08 8.17 0.00 2.22 ][-2.67 -26.67 0.00 -4.44 ][-9.25 18.50 0.00 2.22 ][-2.58 0.00 0.00 -2.22 ][-8.00 0.00 0.00 4.44 ][2.58 0.00 0.00 -2.22 ][2.22 0.00 0.00 -2.58 ][-4.44 0.00 0.00 8.00 ][2.22 0.00 0.00 2.58 ][-2.22 0.00 -18.50 9.25 ][4.44 0.00 26.67 2.67 ][-2.22 0.00 -8.17 4.08 ][24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -24.00 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [-36.99 -73.99 0.00 8.89 ][-10.67 106.67 0.00 -17.78 ][-16.34 -32.68 0.00 8.89 ][10.33 0.00 0.00 -8.89 ][-32.00 0.00 0.00 17.78 ][-10.33 0.00 0.00 -8.89 ][8.89 0.00 -73.99 -36.99 ][-17.78 0.00 106.67 -10.67 ][8.89 0.00 -32.68 -16.34 ][-8.89 0.00 0.00 10.33 ][17.78 0.00 0.00 -32.00 ][-8.89 0.00 0.00 -10.33 ][96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 96.00 ]
+DEAL:: Quadrature point 1: [-16.34 32.68 0.00 8.89 ][-10.67 -106.67 0.00 -17.78 ][-36.99 73.99 0.00 8.89 ][-10.33 0.00 0.00 -8.89 ][-32.00 0.00 0.00 17.78 ][10.33 0.00 0.00 -8.89 ][8.89 0.00 0.00 -10.33 ][-17.78 0.00 0.00 32.00 ][8.89 0.00 0.00 10.33 ][-8.89 0.00 -73.99 36.99 ][17.78 0.00 106.67 10.67 ][-8.89 0.00 -32.68 16.34 ][96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -96.00 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [-147.98 -295.96 0.00 35.56 ][-42.67 426.67 0.00 -71.11 ][-65.35 -130.71 0.00 35.56 ][41.31 0.00 0.00 -35.56 ][-128.00 0.00 0.00 71.11 ][-41.31 0.00 0.00 -35.56 ][35.56 0.00 -295.96 -147.98 ][-71.11 0.00 426.67 -42.67 ][35.56 0.00 -130.71 -65.35 ][-35.56 0.00 0.00 41.31 ][71.11 0.00 0.00 -128.00 ][-35.56 0.00 0.00 -41.31 ][384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 384.00 ]
+DEAL:: Quadrature point 1: [-65.35 130.71 0.00 35.56 ][-42.67 -426.67 0.00 -71.11 ][-147.98 295.96 0.00 35.56 ][-41.31 0.00 0.00 -35.56 ][-128.00 0.00 0.00 71.11 ][41.31 0.00 0.00 -35.56 ][35.56 0.00 0.00 -41.31 ][-71.11 0.00 0.00 128.00 ][35.56 0.00 0.00 41.31 ][-35.56 0.00 -295.96 147.98 ][71.11 0.00 426.67 42.67 ][-35.56 0.00 -130.71 65.35 ][384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -384.00 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [-591.91 -1183.83 0.00 142.22 ][-170.67 1706.67 0.00 -284.44 ][-261.42 -522.84 0.00 142.22 ][165.25 0.00 0.00 -142.22 ][-512.00 0.00 0.00 284.44 ][-165.25 0.00 0.00 -142.22 ][142.22 0.00 -1183.83 -591.91 ][-284.44 0.00 1706.67 -170.67 ][142.22 0.00 -522.84 -261.42 ][-142.22 0.00 0.00 165.25 ][284.44 0.00 0.00 -512.00 ][-142.22 0.00 0.00 -165.25 ][1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1536.00 ]
+DEAL:: Quadrature point 1: [-261.42 522.84 0.00 142.22 ][-170.67 -1706.67 0.00 -284.44 ][-591.91 1183.83 0.00 142.22 ][-165.25 0.00 0.00 -142.22 ][-512.00 0.00 0.00 284.44 ][165.25 0.00 0.00 -142.22 ][142.22 0.00 0.00 -165.25 ][-284.44 0.00 0.00 512.00 ][142.22 0.00 0.00 165.25 ][-142.22 0.00 -1183.83 591.91 ][284.44 0.00 1706.67 170.67 ][-142.22 0.00 -522.84 261.42 ][1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -1536.00 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [-2367.66 -4735.31 0.00 568.89 ][-682.67 6826.67 0.00 -1137.78 ][-1045.68 -2091.36 0.00 568.89 ][660.99 0.00 0.00 -568.89 ][-2048.00 0.00 0.00 1137.78 ][-660.99 0.00 0.00 -568.89 ][568.89 0.00 -4735.31 -2367.66 ][-1137.78 0.00 6826.67 -682.67 ][568.89 0.00 -2091.36 -1045.68 ][-568.89 0.00 0.00 660.99 ][1137.78 0.00 0.00 -2048.00 ][-568.89 0.00 0.00 -660.99 ][6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6144.00 ]
+DEAL:: Quadrature point 1: [-1045.68 2091.36 0.00 568.89 ][-682.67 -6826.67 0.00 -1137.78 ][-2367.66 4735.31 0.00 568.89 ][-660.99 0.00 0.00 -568.89 ][-2048.00 0.00 0.00 1137.78 ][660.99 0.00 0.00 -568.89 ][568.89 0.00 0.00 -660.99 ][-1137.78 0.00 0.00 2048.00 ][568.89 0.00 0.00 660.99 ][-568.89 0.00 -4735.31 2367.66 ][1137.78 0.00 6826.67 682.67 ][-568.89 0.00 -2091.36 1045.68 ][6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -6144.00 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [-9470.62 -18941.25 0.00 2275.56 ][-2730.67 27306.67 0.00 -4551.11 ][-4182.71 -8365.42 0.00 2275.56 ][2643.96 0.00 0.00 -2275.56 ][-8192.00 0.00 0.00 4551.11 ][-2643.96 0.00 0.00 -2275.56 ][2275.56 0.00 -18941.25 -9470.62 ][-4551.11 0.00 27306.67 -2730.67 ][2275.56 0.00 -8365.42 -4182.71 ][-2275.56 0.00 0.00 2643.96 ][4551.11 0.00 0.00 -8192.00 ][-2275.56 0.00 0.00 -2643.96 ][24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24576.00 ]
+DEAL:: Quadrature point 1: [-4182.71 8365.42 0.00 2275.56 ][-2730.67 -27306.67 0.00 -4551.11 ][-9470.62 18941.25 0.00 2275.56 ][-2643.96 0.00 0.00 -2275.56 ][-8192.00 0.00 0.00 4551.11 ][2643.96 0.00 0.00 -2275.56 ][2275.56 0.00 0.00 -2643.96 ][-4551.11 0.00 0.00 8192.00 ][2275.56 0.00 0.00 2643.96 ][-2275.56 0.00 -18941.25 9470.62 ][4551.11 0.00 27306.67 2730.67 ][-2275.56 0.00 -8365.42 4182.71 ][24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 -24576.00 ]
+DEAL::Degree=3
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [-4.27 -8.55 0.00 0.37 ][-2.79 13.81 0.00 -0.94 ][-2.01 -7.42 0.00 0.94 ][0.07 2.16 0.00 -0.37 ][0.53 0.00 0.00 -0.37 ][-1.16 0.00 0.00 0.94 ][2.05 0.00 0.00 -0.94 ][1.58 0.00 0.00 0.37 ][0.37 0.00 -8.55 -4.27 ][-0.94 0.00 13.81 -2.79 ][0.94 0.00 -7.42 -2.01 ][-0.37 0.00 2.16 0.07 ][-0.37 0.00 0.00 0.53 ][0.94 0.00 0.00 -1.16 ][-0.94 0.00 0.00 2.05 ][0.37 0.00 0.00 1.58 ][54.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][-36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 54.00 ][0.00 0.00 0.00 -36.00 ][0.00 0.00 0.00 -60.00 ]
+DEAL:: Quadrature point 1: [0.07 -2.16 0.00 -0.37 ][-2.01 7.42 0.00 0.94 ][-2.79 -13.81 0.00 -0.94 ][-4.27 8.55 0.00 0.37 ][1.58 0.00 0.00 0.37 ][2.05 0.00 0.00 -0.94 ][-1.16 0.00 0.00 0.94 ][0.53 0.00 0.00 -0.37 ][0.37 0.00 0.00 -0.53 ][-0.94 0.00 0.00 1.16 ][0.94 0.00 0.00 -2.05 ][-0.37 0.00 0.00 -1.58 ][-0.37 0.00 -8.55 4.27 ][0.94 0.00 13.81 2.79 ][-0.94 0.00 -7.42 2.01 ][0.37 0.00 2.16 -0.07 ][18.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6.00 ][0.00 0.00 0.00 36.00 ][0.00 0.00 0.00 -60.00 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [-17.06 -34.18 0.00 1.48 ][-11.17 55.23 0.00 -3.76 ][-8.05 -29.67 0.00 3.76 ][0.28 8.62 0.00 -1.48 ][2.11 0.00 0.00 -1.48 ][-4.64 0.00 0.00 3.76 ][8.20 0.00 0.00 -3.76 ][6.33 0.00 0.00 1.48 ][1.48 0.00 -34.18 -17.06 ][-3.76 0.00 55.23 -11.17 ][3.76 0.00 -29.67 -8.05 ][-1.48 0.00 8.62 0.28 ][-1.48 0.00 0.00 2.11 ][3.76 0.00 0.00 -4.64 ][-3.76 0.00 0.00 8.20 ][1.48 0.00 0.00 6.33 ][216.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][-144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 216.00 ][0.00 0.00 0.00 -144.00 ][0.00 0.00 0.00 -240.00 ]
+DEAL:: Quadrature point 1: [0.28 -8.62 0.00 -1.48 ][-8.05 29.67 0.00 3.76 ][-11.17 -55.23 0.00 -3.76 ][-17.06 34.18 0.00 1.48 ][6.33 0.00 0.00 1.48 ][8.20 0.00 0.00 -3.76 ][-4.64 0.00 0.00 3.76 ][2.11 0.00 0.00 -1.48 ][1.48 0.00 0.00 -2.11 ][-3.76 0.00 0.00 4.64 ][3.76 0.00 0.00 -8.20 ][-1.48 0.00 0.00 -6.33 ][-1.48 0.00 -34.18 17.06 ][3.76 0.00 55.23 11.17 ][-3.76 0.00 -29.67 8.05 ][1.48 0.00 8.62 -0.28 ][72.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24.00 ][0.00 0.00 0.00 144.00 ][0.00 0.00 0.00 -240.00 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [-68.26 -136.74 0.00 5.94 ][-44.68 220.91 0.00 -15.04 ][-32.19 -118.67 0.00 15.04 ][1.13 34.49 0.00 -5.94 ][8.43 0.00 0.00 -5.94 ][-18.55 0.00 0.00 15.04 ][32.81 0.00 0.00 -15.04 ][25.31 0.00 0.00 5.94 ][5.94 0.00 -136.74 -68.26 ][-15.04 0.00 220.91 -44.68 ][15.04 0.00 -118.67 -32.19 ][-5.94 0.00 34.49 1.13 ][-5.94 0.00 0.00 8.43 ][15.04 0.00 0.00 -18.55 ][-15.04 0.00 0.00 32.81 ][5.94 0.00 0.00 25.31 ][864.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][-576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 864.00 ][0.00 0.00 0.00 -576.00 ][0.00 0.00 0.00 -960.00 ]
+DEAL:: Quadrature point 1: [1.13 -34.49 0.00 -5.94 ][-32.19 118.67 0.00 15.04 ][-44.68 -220.91 0.00 -15.04 ][-68.26 136.74 0.00 5.94 ][25.31 0.00 0.00 5.94 ][32.81 0.00 0.00 -15.04 ][-18.55 0.00 0.00 15.04 ][8.43 0.00 0.00 -5.94 ][5.94 0.00 0.00 -8.43 ][-15.04 0.00 0.00 18.55 ][15.04 0.00 0.00 -32.81 ][-5.94 0.00 0.00 -25.31 ][-5.94 0.00 -136.74 68.26 ][15.04 0.00 220.91 44.68 ][-15.04 0.00 -118.67 32.19 ][5.94 0.00 34.49 -1.13 ][288.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 96.00 ][0.00 0.00 0.00 576.00 ][0.00 0.00 0.00 -960.00 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [-273.04 -546.95 0.00 23.75 ][-178.73 883.66 0.00 -60.15 ][-128.74 -474.69 0.00 60.15 ][4.51 137.98 0.00 -23.75 ][33.71 0.00 0.00 -23.75 ][-74.19 0.00 0.00 60.15 ][131.24 0.00 0.00 -60.15 ][101.24 0.00 0.00 23.75 ][23.75 0.00 -546.95 -273.04 ][-60.15 0.00 883.66 -178.73 ][60.15 0.00 -474.69 -128.74 ][-23.75 0.00 137.98 4.51 ][-23.75 0.00 0.00 33.71 ][60.15 0.00 0.00 -74.19 ][-60.15 0.00 0.00 131.24 ][23.75 0.00 0.00 101.24 ][3456.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][-2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 3456.00 ][0.00 0.00 0.00 -2304.00 ][0.00 0.00 0.00 -3840.00 ]
+DEAL:: Quadrature point 1: [4.51 -137.98 0.00 -23.75 ][-128.74 474.69 0.00 60.15 ][-178.73 -883.66 0.00 -60.15 ][-273.04 546.95 0.00 23.75 ][101.24 0.00 0.00 23.75 ][131.24 0.00 0.00 -60.15 ][-74.19 0.00 0.00 60.15 ][33.71 0.00 0.00 -23.75 ][23.75 0.00 0.00 -33.71 ][-60.15 0.00 0.00 74.19 ][60.15 0.00 0.00 -131.24 ][-23.75 0.00 0.00 -101.24 ][-23.75 0.00 -546.95 273.04 ][60.15 0.00 883.66 178.73 ][-60.15 0.00 -474.69 128.74 ][23.75 0.00 137.98 -4.51 ][1152.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 384.00 ][0.00 0.00 0.00 2304.00 ][0.00 0.00 0.00 -3840.00 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [-1092.14 -2187.78 0.00 94.98 ][-714.92 3534.63 0.00 -240.58 ][-514.97 -1898.77 0.00 240.58 ][18.04 551.92 0.00 -94.98 ][134.83 0.00 0.00 -94.98 ][-296.76 0.00 0.00 240.58 ][524.96 0.00 0.00 -240.58 ][404.97 0.00 0.00 94.98 ][94.98 0.00 -2187.78 -1092.14 ][-240.58 0.00 3534.63 -714.92 ][240.58 0.00 -1898.77 -514.97 ][-94.98 0.00 551.92 18.04 ][-94.98 0.00 0.00 134.83 ][240.58 0.00 0.00 -296.76 ][-240.58 0.00 0.00 524.96 ][94.98 0.00 0.00 404.97 ][13824.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][-9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 13824.00 ][0.00 0.00 0.00 -9216.00 ][0.00 0.00 0.00 -15360.00 ]
+DEAL:: Quadrature point 1: [18.04 -551.92 0.00 -94.98 ][-514.97 1898.77 0.00 240.58 ][-714.92 -3534.63 0.00 -240.58 ][-1092.14 2187.78 0.00 94.98 ][404.97 0.00 0.00 94.98 ][524.96 0.00 0.00 -240.58 ][-296.76 0.00 0.00 240.58 ][134.83 0.00 0.00 -94.98 ][94.98 0.00 0.00 -134.83 ][-240.58 0.00 0.00 296.76 ][240.58 0.00 0.00 -524.96 ][-94.98 0.00 0.00 -404.97 ][-94.98 0.00 -2187.78 1092.14 ][240.58 0.00 3534.63 714.92 ][-240.58 0.00 -1898.77 514.97 ][94.98 0.00 551.92 -18.04 ][4608.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1536.00 ][0.00 0.00 0.00 9216.00 ][0.00 0.00 0.00 -15360.00 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [-4368.57 -8751.13 0.00 379.93 ][-2859.70 14138.54 0.00 -962.33 ][-2059.89 -7595.08 0.00 962.33 ][72.17 2207.67 0.00 -379.93 ][539.31 0.00 0.00 -379.93 ][-1187.03 0.00 0.00 962.33 ][2099.85 0.00 0.00 -962.33 ][1619.88 0.00 0.00 379.93 ][379.93 0.00 -8751.13 -4368.57 ][-962.33 0.00 14138.54 -2859.70 ][962.33 0.00 -7595.08 -2059.89 ][-379.93 0.00 2207.67 72.17 ][-379.93 0.00 0.00 539.31 ][962.33 0.00 0.00 -1187.03 ][-962.33 0.00 0.00 2099.85 ][379.93 0.00 0.00 1619.88 ][55296.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][-36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 55296.00 ][0.00 0.00 0.00 -36864.00 ][0.00 0.00 0.00 -61440.00 ]
+DEAL:: Quadrature point 1: [72.17 -2207.67 0.00 -379.93 ][-2059.89 7595.08 0.00 962.33 ][-2859.70 -14138.54 0.00 -962.33 ][-4368.57 8751.13 0.00 379.93 ][1619.88 0.00 0.00 379.93 ][2099.85 0.00 0.00 -962.33 ][-1187.03 0.00 0.00 962.33 ][539.31 0.00 0.00 -379.93 ][379.93 0.00 0.00 -539.31 ][-962.33 0.00 0.00 1187.03 ][962.33 0.00 0.00 -2099.85 ][-379.93 0.00 0.00 -1619.88 ][-379.93 0.00 -8751.13 4368.57 ][962.33 0.00 14138.54 2859.70 ][-962.33 0.00 -7595.08 2059.89 ][379.93 0.00 2207.67 -72.17 ][18432.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6144.00 ][0.00 0.00 0.00 36864.00 ][0.00 0.00 0.00 -61440.00 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [-17474.29 -35004.51 0.00 1519.73 ][-11438.80 56554.16 0.00 -3849.31 ][-8239.58 -30380.32 0.00 3849.31 ][288.66 8830.68 0.00 -1519.73 ][2157.22 0.00 0.00 -1519.73 ][-4748.14 0.00 0.00 3849.31 ][8399.39 0.00 0.00 -3849.31 ][6479.52 0.00 0.00 1519.73 ][1519.73 0.00 -35004.51 -17474.29 ][-3849.31 0.00 56554.16 -11438.80 ][3849.31 0.00 -30380.32 -8239.58 ][-1519.73 0.00 8830.68 288.66 ][-1519.73 0.00 0.00 2157.22 ][3849.31 0.00 0.00 -4748.14 ][-3849.31 0.00 0.00 8399.39 ][1519.73 0.00 0.00 6479.52 ][221184.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][-147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 221184.00 ][0.00 0.00 0.00 -147456.00 ][0.00 0.00 0.00 -245760.00 ]
+DEAL:: Quadrature point 1: [288.66 -8830.68 0.00 -1519.73 ][-8239.58 30380.32 0.00 3849.31 ][-11438.80 -56554.16 0.00 -3849.31 ][-17474.29 35004.51 0.00 1519.73 ][6479.52 0.00 0.00 1519.73 ][8399.39 0.00 0.00 -3849.31 ][-4748.14 0.00 0.00 3849.31 ][2157.22 0.00 0.00 -1519.73 ][1519.73 0.00 0.00 -2157.22 ][-3849.31 0.00 0.00 4748.14 ][3849.31 0.00 0.00 -8399.39 ][-1519.73 0.00 0.00 -6479.52 ][-1519.73 0.00 -35004.51 17474.29 ][3849.31 0.00 56554.16 11438.80 ][-3849.31 0.00 -30380.32 8239.58 ][1519.73 0.00 8830.68 -288.66 ][73728.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24576.00 ][0.00 0.00 0.00 147456.00 ][0.00 0.00 0.00 -245760.00 ]
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+// like rt_11, but use FESubfaceValues
+//
+// the test used to fail because of the issue with computing the
+// normals using FEFaceValue, where FEFaceValue by accident uses the
+// *face* mapping, not the *cell* mapping to compute the Piola
+// transform (leading to a missing power of h in the determinant)
+
+#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/lac/solver_cg.h>
+#include <deal.II/lac/precondition.h>
+#include <deal.II/lac/vector_memory.h>
+#include <deal.II/lac/sparse_matrix.h>
+#include <deal.II/lac/sparsity_pattern.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/fe_bdm.h>
+#include <deal.II/fe/fe_values.h>
+
+#include <vector>
+#include <fstream>
+#include <string>
+
+#define PRECISION 2
+
+
+std::ofstream logfile ("output");
+
+template<int dim>
+void
+test (const unsigned int degree)
+{
+ FE_BDM<dim> fe_rt(degree);
+
+ deallog << "Degree=" << degree
+ << std::endl;
+
+ for (double h=1; h>1./128; h/=2)
+ {
+ deallog << " h=" << h
+ << std::endl;
+
+ Triangulation<dim> tr;
+ GridGenerator::hyper_cube(tr, 0., h);
+
+ DoFHandler<dim> dof(tr);
+ dof.distribute_dofs(fe_rt);
+
+ QTrapez<dim-1> quadrature;
+
+ FESubfaceValues<dim> fe_values (fe_rt, quadrature, update_values);
+ fe_values.reinit (dof.begin_active(), 0, 0);
+ for (unsigned int q=0; q<quadrature.size(); ++q)
+ {
+ deallog << " Quadrature point " << q << ": ";
+ for (unsigned int i=0; i<fe_rt.dofs_per_cell; ++i)
+ {
+ deallog << '[';
+ for (unsigned int c=0; c<fe_rt.n_components(); ++c)
+ deallog << fe_values.shape_value_component(i,q,c) << ' ';
+ deallog << ']';
+ }
+ deallog << std::endl;
+ }
+ }
+}
+
+
+int
+main()
+{
+ deallog << std::setprecision(PRECISION);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ for (unsigned int i=1; i<4; ++i)
+ test<2>(i);
+
+ return 0;
+}
+
+
+
--- /dev/null
+
+DEAL::Degree=1
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [1.37 0 ][-0.37 0 ][0 0 ][0 0 ][0 1.37 ][0 -0.37 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0.50 0.22 ][0.50 -0.22 ][0 -0.22 ][0 0.22 ][0 0.68 ][0 -0.18 ][0 0.68 ][0 -0.18 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [2.73 0 ][-0.73 0 ][0 0 ][0 0 ][0 2.73 ][0 -0.73 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [1.00 0.43 ][1.00 -0.43 ][0 -0.43 ][0 0.43 ][0 1.37 ][0 -0.37 ][0 1.37 ][0 -0.37 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [5.46 0 ][-1.46 0 ][0 0 ][0 0 ][0 5.46 ][0 -1.46 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [2.00 0.87 ][2.00 -0.87 ][0 -0.87 ][0 0.87 ][0 2.73 ][0 -0.73 ][0 2.73 ][0 -0.73 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [10.93 0 ][-2.93 0 ][0 0 ][0 0 ][0 10.93 ][0 -2.93 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [4.00 1.73 ][4.00 -1.73 ][0 -1.73 ][0 1.73 ][0 5.46 ][0 -1.46 ][0 5.46 ][0 -1.46 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [21.86 0 ][-5.86 0 ][0 0 ][0 0 ][0 21.86 ][0 -5.86 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [8.00 3.46 ][8.00 -3.46 ][0 -3.46 ][0 3.46 ][0 10.93 ][0 -2.93 ][0 10.93 ][0 -2.93 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [43.71 0 ][-11.71 0 ][0 0 ][0 0 ][0 43.71 ][0 -11.71 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [16.00 6.93 ][16.00 -6.93 ][0 -6.93 ][0 6.93 ][0 21.86 ][0 -5.86 ][0 21.86 ][0 -5.86 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [87.43 0 ][-23.43 0 ][0 0 ][0 0 ][0 87.43 ][0 -23.43 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [32.00 13.86 ][32.00 -13.86 ][0 -13.86 ][0 13.86 ][0 43.71 ][0 -11.71 ][0 43.71 ][0 -11.71 ]
+DEAL::Degree=2
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [1.48 0 ][-0.67 0 ][0.19 0 ][0 0 ][0 0 ][0 0 ][0 1.48 ][0 -0.67 ][0 0.19 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][1.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0.53 ][0 -0.67 ][0 -0.11 ][0 0.53 ][0 -0.67 ][0 -0.11 ][0 0 ][0 1.50 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [2.96 0 ][-1.33 0 ][0.38 0 ][0 0 ][0 0 ][0 0 ][0 2.96 ][0 -1.33 ][0 0.38 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][2.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.06 ][0 -1.33 ][0 -0.23 ][0 1.06 ][0 -1.33 ][0 -0.23 ][0 0 ][0 3.00 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [5.92 0 ][-2.67 0 ][0.75 0 ][0 0 ][0 0 ][0 0 ][0 5.92 ][0 -2.67 ][0 0.75 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][4.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 2.12 ][0 -2.67 ][0 -0.46 ][0 2.12 ][0 -2.67 ][0 -0.46 ][0 0 ][0 6.00 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [11.83 0 ][-5.33 0 ][1.50 0 ][0 0 ][0 0 ][0 0 ][0 11.83 ][0 -5.33 ][0 1.50 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][8.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 4.25 ][0 -5.33 ][0 -0.92 ][0 4.25 ][0 -5.33 ][0 -0.92 ][0 0 ][0 12.00 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [23.66 0 ][-10.67 0 ][3.01 0 ][0 0 ][0 0 ][0 0 ][0 23.66 ][0 -10.67 ][0 3.01 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][16.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 8.50 ][0 -10.67 ][0 -1.83 ][0 8.50 ][0 -10.67 ][0 -1.83 ][0 0 ][0 24.00 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [47.32 0 ][-21.33 0 ][6.01 0 ][0 0 ][0 0 ][0 0 ][0 47.32 ][0 -21.33 ][0 6.01 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][32.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 16.99 ][0 -21.33 ][0 -3.66 ][0 16.99 ][0 -21.33 ][0 -3.66 ][0 0 ][0 48.00 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [94.65 0 ][-42.67 0 ][12.02 0 ][0 0 ][0 0 ][0 0 ][0 94.65 ][0 -42.67 ][0 12.02 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [0 0 ][64.00 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 33.99 ][0 -42.67 ][0 -7.32 ][0 33.99 ][0 -42.67 ][0 -7.32 ][0 0 ][0 96.00 ]
+DEAL::Degree=3
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [1.53 0 ][-0.81 0 ][0.40 0 ][-0.11 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 1.53 ][0 -0.81 ][0 0.40 ][0 -0.11 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-0.09 -0.02 ][0.59 0.06 ][0.59 -0.06 ][-0.09 0.02 ][0 0.02 ][0 -0.06 ][0 0.06 ][0 -0.02 ][0 0.30 ][0 -0.90 ][0 0.21 ][0 0.15 ][0 0.30 ][0 -0.90 ][0 0.21 ][0 0.15 ][0 0 ][0 0 ][0 0 ][0 6.00 ][0 -9.00 ][0 0 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [3.05 0 ][-1.63 0 ][0.80 0 ][-0.23 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 3.05 ][0 -1.63 ][0 0.80 ][0 -0.23 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-0.18 -0.05 ][1.18 0.12 ][1.18 -0.12 ][-0.18 0.05 ][0 0.05 ][0 -0.12 ][0 0.12 ][0 -0.05 ][0 0.59 ][0 -1.80 ][0 0.41 ][0 0.30 ][0 0.59 ][0 -1.80 ][0 0.41 ][0 0.30 ][0 0 ][0 0 ][0 0 ][0 12.00 ][0 -18.00 ][0 0 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [6.11 0 ][-3.25 0 ][1.60 0 ][-0.46 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 6.11 ][0 -3.25 ][0 1.60 ][0 -0.46 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-0.37 -0.09 ][2.37 0.23 ][2.37 -0.23 ][-0.37 0.09 ][0 0.09 ][0 -0.23 ][0 0.23 ][0 -0.09 ][0 1.18 ][0 -3.60 ][0 0.82 ][0 0.60 ][0 1.18 ][0 -3.60 ][0 0.82 ][0 0.60 ][0 0 ][0 0 ][0 0 ][0 24.00 ][0 -36.00 ][0 0 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [12.21 0 ][-6.51 0 ][3.21 0 ][-0.91 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 12.21 ][0 -6.51 ][0 3.21 ][0 -0.91 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-0.74 -0.19 ][4.74 0.47 ][4.74 -0.47 ][-0.74 0.19 ][0 0.19 ][0 -0.47 ][0 0.47 ][0 -0.19 ][0 2.37 ][0 -7.21 ][0 1.64 ][0 1.20 ][0 2.37 ][0 -7.21 ][0 1.64 ][0 1.20 ][0 0 ][0 0 ][0 0 ][0 48.00 ][0 -72.00 ][0 0 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [24.43 0 ][-13.02 0 ][6.41 0 ][-1.82 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 24.43 ][0 -13.02 ][0 6.41 ][0 -1.82 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-1.48 -0.37 ][9.48 0.94 ][9.48 -0.94 ][-1.48 0.37 ][0 0.37 ][0 -0.94 ][0 0.94 ][0 -0.37 ][0 4.74 ][0 -14.41 ][0 3.28 ][0 2.39 ][0 4.74 ][0 -14.41 ][0 3.28 ][0 2.39 ][0 0 ][0 0 ][0 0 ][0 96.00 ][0 -144.00 ][0 0 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [48.86 0 ][-26.04 0 ][12.82 0 ][-3.65 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 48.86 ][0 -26.04 ][0 12.82 ][0 -3.65 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-2.95 -0.74 ][18.95 1.88 ][18.95 -1.88 ][-2.95 0.74 ][0 0.74 ][0 -1.88 ][0 1.88 ][0 -0.74 ][0 9.47 ][0 -28.83 ][0 6.57 ][0 4.79 ][0 9.47 ][0 -28.83 ][0 6.57 ][0 4.79 ][0 0 ][0 0 ][0 0 ][0 192.00 ][0 -288.00 ][0 0 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [97.71 0 ][-52.07 0 ][25.65 0 ][-7.29 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 97.71 ][0 -52.07 ][0 25.65 ][0 -7.29 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ][0 0 ]
+DEAL:: Quadrature point 1: [-5.91 -1.48 ][37.91 3.76 ][37.91 -3.76 ][-5.91 1.48 ][0 1.48 ][0 -3.76 ][0 3.76 ][0 -1.48 ][0 18.94 ][0 -57.65 ][0 13.14 ][0 9.57 ][0 18.94 ][0 -57.65 ][0 13.14 ][0 9.57 ][0 0 ][0 0 ][0 0 ][0 384.00 ][0 -576.00 ][0 0 ]
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+// Like rt_13, but use FESubfaceValues
+//
+// the test used to fail because of the issue with computing the
+// normals using FEFaceValue, where FEFaceValue by accident uses the
+// *face* mapping, not the *cell* mapping to compute the Piola
+// transform (leading to a missing power of h in the determinant)
+
+#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/lac/solver_cg.h>
+#include <deal.II/lac/precondition.h>
+#include <deal.II/lac/vector_memory.h>
+#include <deal.II/lac/sparse_matrix.h>
+#include <deal.II/lac/sparsity_pattern.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/fe_bdm.h>
+#include <deal.II/fe/fe_values.h>
+
+#include <vector>
+#include <fstream>
+#include <string>
+
+#define PRECISION 2
+
+
+std::ofstream logfile ("output");
+
+template<int dim>
+void
+test (const unsigned int degree)
+{
+ FE_BDM<dim> fe_rt(degree);
+
+ deallog << "Degree=" << degree
+ << std::endl;
+
+ for (double h=1; h>1./128; h/=2)
+ {
+ deallog << " h=" << h
+ << std::endl;
+
+ Triangulation<dim> tr;
+ GridGenerator::hyper_cube(tr, 0., h);
+
+ DoFHandler<dim> dof(tr);
+ dof.distribute_dofs(fe_rt);
+
+ QTrapez<dim-1> quadrature;
+
+ FESubfaceValues<dim> fe_values (fe_rt, quadrature, update_gradients);
+ fe_values.reinit (dof.begin_active(), 0, 0);
+ for (unsigned int q=0; q<quadrature.size(); ++q)
+ {
+ deallog << " Quadrature point " << q << ": ";
+ for (unsigned int i=0; i<fe_rt.dofs_per_cell; ++i)
+ {
+ deallog << '[';
+ for (unsigned int c=0; c<fe_rt.n_components(); ++c)
+ deallog << fe_values.shape_grad_component(i,q,c) << ' ';
+ deallog << ']';
+ }
+ deallog << std::endl;
+ }
+ }
+}
+
+
+int
+main()
+{
+ deallog << std::setprecision(PRECISION);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ for (unsigned int i=1; i<4; ++i)
+ test<2>(i);
+
+ return 0;
+}
+
+
+
--- /dev/null
+
+DEAL::Degree=1
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [-1.37 -1.73 0.00 0.87 ][0.37 1.73 0.00 -0.87 ][1.37 0.00 0.00 -0.87 ][-0.37 0.00 0.00 0.87 ][0.87 0.00 -1.73 -1.37 ][-0.87 0.00 1.73 0.37 ][-0.87 0.00 0.00 1.37 ][0.87 0.00 0.00 -0.37 ]
+DEAL:: Quadrature point 1: [-0.50 -1.73 0.00 0.00 ][-0.50 1.73 0.00 0.00 ][0.50 0.00 0.00 0.00 ][0.50 0.00 0.00 0.00 ][0.87 0.00 -0.87 -1.37 ][-0.87 0.00 0.87 0.37 ][-0.87 0.00 -0.87 1.37 ][0.87 0.00 0.87 -0.37 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [-5.46 -6.93 0.00 3.46 ][1.46 6.93 0.00 -3.46 ][5.46 0.00 0.00 -3.46 ][-1.46 0.00 0.00 3.46 ][3.46 0.00 -6.93 -5.46 ][-3.46 0.00 6.93 1.46 ][-3.46 0.00 0.00 5.46 ][3.46 0.00 0.00 -1.46 ]
+DEAL:: Quadrature point 1: [-2.00 -6.93 0.00 0.00 ][-2.00 6.93 0.00 0.00 ][2.00 0.00 0.00 0.00 ][2.00 0.00 0.00 0.00 ][3.46 0.00 -3.46 -5.46 ][-3.46 0.00 3.46 1.46 ][-3.46 0.00 -3.46 5.46 ][3.46 0.00 3.46 -1.46 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [-21.86 -27.71 0.00 13.86 ][5.86 27.71 0.00 -13.86 ][21.86 0.00 0.00 -13.86 ][-5.86 0.00 0.00 13.86 ][13.86 0.00 -27.71 -21.86 ][-13.86 0.00 27.71 5.86 ][-13.86 0.00 0.00 21.86 ][13.86 0.00 0.00 -5.86 ]
+DEAL:: Quadrature point 1: [-8.00 -27.71 0.00 0.00 ][-8.00 27.71 0.00 0.00 ][8.00 0.00 0.00 0.00 ][8.00 0.00 0.00 0.00 ][13.86 0.00 -13.86 -21.86 ][-13.86 0.00 13.86 5.86 ][-13.86 0.00 -13.86 21.86 ][13.86 0.00 13.86 -5.86 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [-87.43 -110.85 0.00 55.43 ][23.43 110.85 0.00 -55.43 ][87.43 0.00 0.00 -55.43 ][-23.43 0.00 0.00 55.43 ][55.43 0.00 -110.85 -87.43 ][-55.43 0.00 110.85 23.43 ][-55.43 0.00 0.00 87.43 ][55.43 0.00 0.00 -23.43 ]
+DEAL:: Quadrature point 1: [-32.00 -110.85 0.00 0.00 ][-32.00 110.85 0.00 0.00 ][32.00 0.00 0.00 0.00 ][32.00 0.00 0.00 0.00 ][55.43 0.00 -55.43 -87.43 ][-55.43 0.00 55.43 23.43 ][-55.43 0.00 -55.43 87.43 ][55.43 0.00 55.43 -23.43 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [-349.70 -443.41 0.00 221.70 ][93.70 443.41 0.00 -221.70 ][349.70 0.00 0.00 -221.70 ][-93.70 0.00 0.00 221.70 ][221.70 0.00 -443.41 -349.70 ][-221.70 0.00 443.41 93.70 ][-221.70 0.00 0.00 349.70 ][221.70 0.00 0.00 -93.70 ]
+DEAL:: Quadrature point 1: [-128.00 -443.41 0.00 0.00 ][-128.00 443.41 0.00 0.00 ][128.00 0.00 0.00 0.00 ][128.00 0.00 0.00 0.00 ][221.70 0.00 -221.70 -349.70 ][-221.70 0.00 221.70 93.70 ][-221.70 0.00 -221.70 349.70 ][221.70 0.00 221.70 -93.70 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [-1398.81 -1773.62 0.00 886.81 ][374.81 1773.62 0.00 -886.81 ][1398.81 0.00 0.00 -886.81 ][-374.81 0.00 0.00 886.81 ][886.81 0.00 -1773.62 -1398.81 ][-886.81 0.00 1773.62 374.81 ][-886.81 0.00 0.00 1398.81 ][886.81 0.00 0.00 -374.81 ]
+DEAL:: Quadrature point 1: [-512.00 -1773.62 0.00 0.00 ][-512.00 1773.62 0.00 0.00 ][512.00 0.00 0.00 0.00 ][512.00 0.00 0.00 0.00 ][886.81 0.00 -886.81 -1398.81 ][-886.81 0.00 886.81 374.81 ][-886.81 0.00 -886.81 1398.81 ][886.81 0.00 886.81 -374.81 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [-5595.24 -7094.48 0.00 3547.24 ][1499.24 7094.48 0.00 -3547.24 ][5595.24 0.00 0.00 -3547.24 ][-1499.24 0.00 0.00 3547.24 ][3547.24 0.00 -7094.48 -5595.24 ][-3547.24 0.00 7094.48 1499.24 ][-3547.24 0.00 0.00 5595.24 ][3547.24 0.00 0.00 -1499.24 ]
+DEAL:: Quadrature point 1: [-2048.00 -7094.48 0.00 0.00 ][-2048.00 7094.48 0.00 0.00 ][2048.00 0.00 0.00 0.00 ][2048.00 0.00 0.00 0.00 ][3547.24 0.00 -3547.24 -5595.24 ][-3547.24 0.00 3547.24 1499.24 ][-3547.24 0.00 -3547.24 5595.24 ][3547.24 0.00 3547.24 -1499.24 ]
+DEAL::Degree=2
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [-2.31 -4.62 0.00 0.56 ][-0.67 6.67 0.00 -1.11 ][-1.02 -2.04 0.00 0.56 ][0.65 0.00 0.00 -0.56 ][-2.00 0.00 0.00 1.11 ][-0.65 0.00 0.00 -0.56 ][0.56 0.00 -4.62 -2.31 ][-1.11 0.00 6.67 -0.67 ][0.56 0.00 -2.04 -1.02 ][-0.56 0.00 0.00 0.65 ][1.11 0.00 0.00 -2.00 ][-0.56 0.00 0.00 -0.65 ][6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6.00 ]
+DEAL:: Quadrature point 1: [-0.83 -1.29 0.00 -0.28 ][-2.33 0.00 0.00 0.56 ][-0.83 1.29 0.00 -0.28 ][-0.83 0.00 0.00 0.28 ][-0.33 0.00 0.00 -0.56 ][-0.83 0.00 0.00 0.28 ][0.56 0.00 -2.31 -1.48 ][-1.11 0.00 3.33 0.67 ][0.56 0.00 -1.02 -0.19 ][-0.56 0.00 -2.31 1.48 ][1.11 0.00 3.33 -0.67 ][-0.56 0.00 -1.02 0.19 ][6.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [-9.25 -18.50 0.00 2.22 ][-2.67 26.67 0.00 -4.44 ][-4.08 -8.17 0.00 2.22 ][2.58 0.00 0.00 -2.22 ][-8.00 0.00 0.00 4.44 ][-2.58 0.00 0.00 -2.22 ][2.22 0.00 -18.50 -9.25 ][-4.44 0.00 26.67 -2.67 ][2.22 0.00 -8.17 -4.08 ][-2.22 0.00 0.00 2.58 ][4.44 0.00 0.00 -8.00 ][-2.22 0.00 0.00 -2.58 ][24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24.00 ]
+DEAL:: Quadrature point 1: [-3.33 -5.16 0.00 -1.11 ][-9.33 0.00 0.00 2.22 ][-3.33 5.16 0.00 -1.11 ][-3.33 0.00 0.00 1.11 ][-1.33 0.00 0.00 -2.22 ][-3.33 0.00 0.00 1.11 ][2.22 0.00 -9.25 -5.92 ][-4.44 0.00 13.33 2.67 ][2.22 0.00 -4.08 -0.75 ][-2.22 0.00 -9.25 5.92 ][4.44 0.00 13.33 -2.67 ][-2.22 0.00 -4.08 0.75 ][24.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [-36.99 -73.99 0.00 8.89 ][-10.67 106.67 0.00 -17.78 ][-16.34 -32.68 0.00 8.89 ][10.33 0.00 0.00 -8.89 ][-32.00 0.00 0.00 17.78 ][-10.33 0.00 0.00 -8.89 ][8.89 0.00 -73.99 -36.99 ][-17.78 0.00 106.67 -10.67 ][8.89 0.00 -32.68 -16.34 ][-8.89 0.00 0.00 10.33 ][17.78 0.00 0.00 -32.00 ][-8.89 0.00 0.00 -10.33 ][96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 96.00 ]
+DEAL:: Quadrature point 1: [-13.33 -20.66 0.00 -4.44 ][-37.33 0.00 0.00 8.89 ][-13.33 20.66 0.00 -4.44 ][-13.33 0.00 0.00 4.44 ][-5.33 0.00 0.00 -8.89 ][-13.33 0.00 0.00 4.44 ][8.89 0.00 -36.99 -23.66 ][-17.78 0.00 53.33 10.67 ][8.89 0.00 -16.34 -3.01 ][-8.89 0.00 -36.99 23.66 ][17.78 0.00 53.33 -10.67 ][-8.89 0.00 -16.34 3.01 ][96.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [-147.98 -295.96 0.00 35.56 ][-42.67 426.67 0.00 -71.11 ][-65.35 -130.71 0.00 35.56 ][41.31 0.00 0.00 -35.56 ][-128.00 0.00 0.00 71.11 ][-41.31 0.00 0.00 -35.56 ][35.56 0.00 -295.96 -147.98 ][-71.11 0.00 426.67 -42.67 ][35.56 0.00 -130.71 -65.35 ][-35.56 0.00 0.00 41.31 ][71.11 0.00 0.00 -128.00 ][-35.56 0.00 0.00 -41.31 ][384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 384.00 ]
+DEAL:: Quadrature point 1: [-53.33 -82.62 0.00 -17.78 ][-149.33 0.00 0.00 35.56 ][-53.33 82.62 0.00 -17.78 ][-53.33 0.00 0.00 17.78 ][-21.33 0.00 0.00 -35.56 ][-53.33 0.00 0.00 17.78 ][35.56 0.00 -147.98 -94.65 ][-71.11 0.00 213.33 42.67 ][35.56 0.00 -65.35 -12.02 ][-35.56 0.00 -147.98 94.65 ][71.11 0.00 213.33 -42.67 ][-35.56 0.00 -65.35 12.02 ][384.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [-591.91 -1183.83 0.00 142.22 ][-170.67 1706.67 0.00 -284.44 ][-261.42 -522.84 0.00 142.22 ][165.25 0.00 0.00 -142.22 ][-512.00 0.00 0.00 284.44 ][-165.25 0.00 0.00 -142.22 ][142.22 0.00 -1183.83 -591.91 ][-284.44 0.00 1706.67 -170.67 ][142.22 0.00 -522.84 -261.42 ][-142.22 0.00 0.00 165.25 ][284.44 0.00 0.00 -512.00 ][-142.22 0.00 0.00 -165.25 ][1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 1536.00 ]
+DEAL:: Quadrature point 1: [-213.33 -330.49 0.00 -71.11 ][-597.33 0.00 0.00 142.22 ][-213.33 330.49 0.00 -71.11 ][-213.33 0.00 0.00 71.11 ][-85.33 0.00 0.00 -142.22 ][-213.33 0.00 0.00 71.11 ][142.22 0.00 -591.91 -378.58 ][-284.44 0.00 853.33 170.67 ][142.22 0.00 -261.42 -48.09 ][-142.22 0.00 -591.91 378.58 ][284.44 0.00 853.33 -170.67 ][-142.22 0.00 -261.42 48.09 ][1536.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [-2367.66 -4735.31 0.00 568.89 ][-682.67 6826.67 0.00 -1137.78 ][-1045.68 -2091.36 0.00 568.89 ][660.99 0.00 0.00 -568.89 ][-2048.00 0.00 0.00 1137.78 ][-660.99 0.00 0.00 -568.89 ][568.89 0.00 -4735.31 -2367.66 ][-1137.78 0.00 6826.67 -682.67 ][568.89 0.00 -2091.36 -1045.68 ][-568.89 0.00 0.00 660.99 ][1137.78 0.00 0.00 -2048.00 ][-568.89 0.00 0.00 -660.99 ][6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 6144.00 ]
+DEAL:: Quadrature point 1: [-853.33 -1321.98 0.00 -284.44 ][-2389.33 0.00 0.00 568.89 ][-853.33 1321.98 0.00 -284.44 ][-853.33 0.00 0.00 284.44 ][-341.33 0.00 0.00 -568.89 ][-853.33 0.00 0.00 284.44 ][568.89 0.00 -2367.66 -1514.32 ][-1137.78 0.00 3413.33 682.67 ][568.89 0.00 -1045.68 -192.34 ][-568.89 0.00 -2367.66 1514.32 ][1137.78 0.00 3413.33 -682.67 ][-568.89 0.00 -1045.68 192.34 ][6144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [-9470.62 -18941.25 0.00 2275.56 ][-2730.67 27306.67 0.00 -4551.11 ][-4182.71 -8365.42 0.00 2275.56 ][2643.96 0.00 0.00 -2275.56 ][-8192.00 0.00 0.00 4551.11 ][-2643.96 0.00 0.00 -2275.56 ][2275.56 0.00 -18941.25 -9470.62 ][-4551.11 0.00 27306.67 -2730.67 ][2275.56 0.00 -8365.42 -4182.71 ][-2275.56 0.00 0.00 2643.96 ][4551.11 0.00 0.00 -8192.00 ][-2275.56 0.00 0.00 -2643.96 ][24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 24576.00 ]
+DEAL:: Quadrature point 1: [-3413.33 -5287.91 0.00 -1137.78 ][-9557.33 0.00 0.00 2275.56 ][-3413.33 5287.91 0.00 -1137.78 ][-3413.33 0.00 0.00 1137.78 ][-1365.33 0.00 0.00 -2275.56 ][-3413.33 0.00 0.00 1137.78 ][2275.56 0.00 -9470.62 -6057.29 ][-4551.11 0.00 13653.33 2730.67 ][2275.56 0.00 -4182.71 -769.38 ][-2275.56 0.00 -9470.62 6057.29 ][4551.11 0.00 13653.33 -2730.67 ][-2275.56 0.00 -4182.71 769.38 ][24576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ]
+DEAL::Degree=3
+DEAL:: h=1.00
+DEAL:: Quadrature point 0: [-4.27 -8.55 0.00 0.37 ][-2.79 13.81 0.00 -0.94 ][-2.01 -7.42 0.00 0.94 ][0.07 2.16 0.00 -0.37 ][0.53 0.00 0.00 -0.37 ][-1.16 0.00 0.00 0.94 ][2.05 0.00 0.00 -0.94 ][1.58 0.00 0.00 0.37 ][0.37 0.00 -8.55 -4.27 ][-0.94 0.00 13.81 -2.79 ][0.94 0.00 -7.42 -2.01 ][-0.37 0.00 2.16 0.07 ][-0.37 0.00 0.00 0.53 ][0.94 0.00 0.00 -1.16 ][-0.94 0.00 0.00 2.05 ][0.37 0.00 0.00 1.58 ][54.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][-36.00 0.00 0.00 0.00 ][0.00 0.00 0.00 54.00 ][0.00 0.00 0.00 -36.00 ][0.00 0.00 0.00 -60.00 ]
+DEAL:: Quadrature point 1: [-1.30 0.21 0.00 0.00 ][-3.20 -3.48 0.00 0.00 ][-3.20 3.48 0.00 0.00 ][-1.30 -0.21 0.00 0.00 ][0.26 0.00 0.00 0.00 ][1.24 0.00 0.00 0.00 ][1.24 0.00 0.00 0.00 ][0.26 0.00 0.00 0.00 ][0.37 0.00 -3.60 -1.09 ][-0.94 0.00 7.40 1.63 ][0.94 0.00 -4.21 0.41 ][-0.37 0.00 0.40 0.55 ][-0.37 0.00 -3.60 1.09 ][0.94 0.00 7.40 -1.63 ][-0.94 0.00 -4.21 -0.41 ][0.37 0.00 0.40 -0.55 ][36.00 0.00 0.00 0.00 ][-60.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -9.00 -15.00 ][0.00 0.00 18.00 0.00 ][0.00 0.00 0.00 30.00 ]
+DEAL:: h=0.50
+DEAL:: Quadrature point 0: [-17.06 -34.18 0.00 1.48 ][-11.17 55.23 0.00 -3.76 ][-8.05 -29.67 0.00 3.76 ][0.28 8.62 0.00 -1.48 ][2.11 0.00 0.00 -1.48 ][-4.64 0.00 0.00 3.76 ][8.20 0.00 0.00 -3.76 ][6.33 0.00 0.00 1.48 ][1.48 0.00 -34.18 -17.06 ][-3.76 0.00 55.23 -11.17 ][3.76 0.00 -29.67 -8.05 ][-1.48 0.00 8.62 0.28 ][-1.48 0.00 0.00 2.11 ][3.76 0.00 0.00 -4.64 ][-3.76 0.00 0.00 8.20 ][1.48 0.00 0.00 6.33 ][216.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][-144.00 0.00 0.00 0.00 ][0.00 0.00 0.00 216.00 ][0.00 0.00 0.00 -144.00 ][0.00 0.00 0.00 -240.00 ]
+DEAL:: Quadrature point 1: [-5.20 0.86 0.00 0.00 ][-12.80 -13.94 0.00 0.00 ][-12.80 13.94 0.00 0.00 ][-5.20 -0.86 0.00 0.00 ][1.02 0.00 0.00 0.00 ][4.98 0.00 0.00 0.00 ][4.98 0.00 0.00 0.00 ][1.02 0.00 0.00 0.00 ][1.48 0.00 -14.40 -4.37 ][-3.76 0.00 29.61 6.52 ][3.76 0.00 -16.83 1.66 ][-1.48 0.00 1.62 2.19 ][-1.48 0.00 -14.40 4.37 ][3.76 0.00 29.61 -6.52 ][-3.76 0.00 -16.83 -1.66 ][1.48 0.00 1.62 -2.19 ][144.00 0.00 0.00 0.00 ][-240.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -36.00 -60.00 ][0.00 0.00 72.00 0.00 ][0.00 0.00 0.00 120.00 ]
+DEAL:: h=0.25
+DEAL:: Quadrature point 0: [-68.26 -136.74 0.00 5.94 ][-44.68 220.91 0.00 -15.04 ][-32.19 -118.67 0.00 15.04 ][1.13 34.49 0.00 -5.94 ][8.43 0.00 0.00 -5.94 ][-18.55 0.00 0.00 15.04 ][32.81 0.00 0.00 -15.04 ][25.31 0.00 0.00 5.94 ][5.94 0.00 -136.74 -68.26 ][-15.04 0.00 220.91 -44.68 ][15.04 0.00 -118.67 -32.19 ][-5.94 0.00 34.49 1.13 ][-5.94 0.00 0.00 8.43 ][15.04 0.00 0.00 -18.55 ][-15.04 0.00 0.00 32.81 ][5.94 0.00 0.00 25.31 ][864.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][-576.00 0.00 0.00 0.00 ][0.00 0.00 0.00 864.00 ][0.00 0.00 0.00 -576.00 ][0.00 0.00 0.00 -960.00 ]
+DEAL:: Quadrature point 1: [-20.79 3.43 0.00 0.00 ][-51.21 -55.75 0.00 0.00 ][-51.21 55.75 0.00 0.00 ][-20.79 -3.43 0.00 0.00 ][4.09 0.00 0.00 0.00 ][19.91 0.00 0.00 0.00 ][19.91 0.00 0.00 0.00 ][4.09 0.00 0.00 0.00 ][5.94 0.00 -57.58 -17.47 ][-15.04 0.00 118.44 26.06 ][15.04 0.00 -67.32 6.63 ][-5.94 0.00 6.46 8.78 ][-5.94 0.00 -57.58 17.47 ][15.04 0.00 118.44 -26.06 ][-15.04 0.00 -67.32 -6.63 ][5.94 0.00 6.46 -8.78 ][576.00 0.00 0.00 0.00 ][-960.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -144.00 -240.00 ][0.00 0.00 288.00 0.00 ][0.00 0.00 0.00 480.00 ]
+DEAL:: h=0.12
+DEAL:: Quadrature point 0: [-273.04 -546.95 0.00 23.75 ][-178.73 883.66 0.00 -60.15 ][-128.74 -474.69 0.00 60.15 ][4.51 137.98 0.00 -23.75 ][33.71 0.00 0.00 -23.75 ][-74.19 0.00 0.00 60.15 ][131.24 0.00 0.00 -60.15 ][101.24 0.00 0.00 23.75 ][23.75 0.00 -546.95 -273.04 ][-60.15 0.00 883.66 -178.73 ][60.15 0.00 -474.69 -128.74 ][-23.75 0.00 137.98 4.51 ][-23.75 0.00 0.00 33.71 ][60.15 0.00 0.00 -74.19 ][-60.15 0.00 0.00 131.24 ][23.75 0.00 0.00 101.24 ][3456.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][-2304.00 0.00 0.00 0.00 ][0.00 0.00 0.00 3456.00 ][0.00 0.00 0.00 -2304.00 ][0.00 0.00 0.00 -3840.00 ]
+DEAL:: Quadrature point 1: [-83.14 13.72 0.00 0.00 ][-204.86 -223.01 0.00 0.00 ][-204.86 223.01 0.00 0.00 ][-83.14 -13.72 0.00 0.00 ][16.35 0.00 0.00 0.00 ][79.65 0.00 0.00 0.00 ][79.65 0.00 0.00 0.00 ][16.35 0.00 0.00 0.00 ][23.75 0.00 -230.34 -69.89 ][-60.15 0.00 473.76 104.24 ][60.15 0.00 -269.27 26.52 ][-23.75 0.00 25.85 35.12 ][-23.75 0.00 -230.34 69.89 ][60.15 0.00 473.76 -104.24 ][-60.15 0.00 -269.27 -26.52 ][23.75 0.00 25.85 -35.12 ][2304.00 0.00 0.00 0.00 ][-3840.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -576.00 -960.00 ][0.00 0.00 1152.00 0.00 ][0.00 0.00 0.00 1920.00 ]
+DEAL:: h=0.06
+DEAL:: Quadrature point 0: [-1092.14 -2187.78 0.00 94.98 ][-714.92 3534.63 0.00 -240.58 ][-514.97 -1898.77 0.00 240.58 ][18.04 551.92 0.00 -94.98 ][134.83 0.00 0.00 -94.98 ][-296.76 0.00 0.00 240.58 ][524.96 0.00 0.00 -240.58 ][404.97 0.00 0.00 94.98 ][94.98 0.00 -2187.78 -1092.14 ][-240.58 0.00 3534.63 -714.92 ][240.58 0.00 -1898.77 -514.97 ][-94.98 0.00 551.92 18.04 ][-94.98 0.00 0.00 134.83 ][240.58 0.00 0.00 -296.76 ][-240.58 0.00 0.00 524.96 ][94.98 0.00 0.00 404.97 ][13824.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][-9216.00 0.00 0.00 0.00 ][0.00 0.00 0.00 13824.00 ][0.00 0.00 0.00 -9216.00 ][0.00 0.00 0.00 -15360.00 ]
+DEAL:: Quadrature point 1: [-332.57 54.89 0.00 0.00 ][-819.43 -892.02 0.00 0.00 ][-819.43 892.02 0.00 0.00 ][-332.57 -54.89 0.00 0.00 ][65.42 0.00 0.00 0.00 ][318.58 0.00 0.00 0.00 ][318.58 0.00 0.00 0.00 ][65.42 0.00 0.00 0.00 ][94.98 0.00 -921.35 -279.54 ][-240.58 0.00 1895.03 416.98 ][240.58 0.00 -1077.09 106.09 ][-94.98 0.00 103.42 140.48 ][-94.98 0.00 -921.35 279.54 ][240.58 0.00 1895.03 -416.98 ][-240.58 0.00 -1077.09 -106.09 ][94.98 0.00 103.42 -140.48 ][9216.00 0.00 0.00 0.00 ][-15360.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -2304.00 -3840.00 ][0.00 0.00 4608.00 0.00 ][0.00 0.00 0.00 7680.00 ]
+DEAL:: h=0.03
+DEAL:: Quadrature point 0: [-4368.57 -8751.13 0.00 379.93 ][-2859.70 14138.54 0.00 -962.33 ][-2059.89 -7595.08 0.00 962.33 ][72.17 2207.67 0.00 -379.93 ][539.31 0.00 0.00 -379.93 ][-1187.03 0.00 0.00 962.33 ][2099.85 0.00 0.00 -962.33 ][1619.88 0.00 0.00 379.93 ][379.93 0.00 -8751.13 -4368.57 ][-962.33 0.00 14138.54 -2859.70 ][962.33 0.00 -7595.08 -2059.89 ][-379.93 0.00 2207.67 72.17 ][-379.93 0.00 0.00 539.31 ][962.33 0.00 0.00 -1187.03 ][-962.33 0.00 0.00 2099.85 ][379.93 0.00 0.00 1619.88 ][55296.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][-36864.00 0.00 0.00 0.00 ][0.00 0.00 0.00 55296.00 ][0.00 0.00 0.00 -36864.00 ][0.00 0.00 0.00 -61440.00 ]
+DEAL:: Quadrature point 1: [-1330.27 219.58 0.00 0.00 ][-3277.73 -3568.10 0.00 0.00 ][-3277.73 3568.10 0.00 0.00 ][-1330.27 -219.58 0.00 0.00 ][261.66 0.00 0.00 0.00 ][1274.34 0.00 0.00 0.00 ][1274.34 0.00 0.00 0.00 ][261.66 0.00 0.00 0.00 ][379.93 0.00 -3685.40 -1118.18 ][-962.33 0.00 7580.11 1667.91 ][962.33 0.00 -4308.38 424.37 ][-379.93 0.00 413.67 561.91 ][-379.93 0.00 -3685.40 1118.18 ][962.33 0.00 7580.11 -1667.91 ][-962.33 0.00 -4308.38 -424.37 ][379.93 0.00 413.67 -561.91 ][36864.00 0.00 0.00 0.00 ][-61440.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -9216.00 -15360.00 ][0.00 0.00 18432.00 0.00 ][0.00 0.00 0.00 30720.00 ]
+DEAL:: h=0.02
+DEAL:: Quadrature point 0: [-17474.29 -35004.51 0.00 1519.73 ][-11438.80 56554.16 0.00 -3849.31 ][-8239.58 -30380.32 0.00 3849.31 ][288.66 8830.68 0.00 -1519.73 ][2157.22 0.00 0.00 -1519.73 ][-4748.14 0.00 0.00 3849.31 ][8399.39 0.00 0.00 -3849.31 ][6479.52 0.00 0.00 1519.73 ][1519.73 0.00 -35004.51 -17474.29 ][-3849.31 0.00 56554.16 -11438.80 ][3849.31 0.00 -30380.32 -8239.58 ][-1519.73 0.00 8830.68 288.66 ][-1519.73 0.00 0.00 2157.22 ][3849.31 0.00 0.00 -4748.14 ][-3849.31 0.00 0.00 8399.39 ][1519.73 0.00 0.00 6479.52 ][221184.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][-147456.00 0.00 0.00 0.00 ][0.00 0.00 0.00 221184.00 ][0.00 0.00 0.00 -147456.00 ][0.00 0.00 0.00 -245760.00 ]
+DEAL:: Quadrature point 1: [-5321.08 878.30 0.00 0.00 ][-13110.92 -14272.38 0.00 0.00 ][-13110.92 14272.38 0.00 0.00 ][-5321.08 -878.30 0.00 0.00 ][1046.64 0.00 0.00 0.00 ][5097.36 0.00 0.00 0.00 ][5097.36 0.00 0.00 0.00 ][1046.64 0.00 0.00 0.00 ][1519.73 0.00 -14741.60 -4472.71 ][-3849.31 0.00 30320.42 6671.62 ][3849.31 0.00 -17233.50 1697.46 ][-1519.73 0.00 1654.68 2247.62 ][-1519.73 0.00 -14741.60 4472.71 ][3849.31 0.00 30320.42 -6671.62 ][-3849.31 0.00 -17233.50 -1697.46 ][1519.73 0.00 1654.68 -2247.62 ][147456.00 0.00 0.00 0.00 ][-245760.00 0.00 0.00 0.00 ][0.00 0.00 0.00 0.00 ][0.00 0.00 -36864.00 -61440.00 ][0.00 0.00 73728.00 0.00 ][0.00 0.00 0.00 122880.00 ]
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+// Show the shape functions of the Raviart-Thomas element on a grid
+// with only one cell. This cell is rotated, stretched, scaled, etc,
+// and on each of these cells each time we evaluate the shape
+// functions.
+
+#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/fe_bdm.h>
+#include <deal.II/fe/fe_values.h>
+
+#include <vector>
+#include <fstream>
+#include <string>
+
+#define PRECISION 3
+
+
+Point<2> stretch_coordinates (const Point<2> p)
+{
+ return Point<2>(2*p(0), p(1));
+}
+
+
+
+Point<2> tilt_coordinates (const Point<2> p)
+{
+ return Point<2>(p(0)+p(1), p(1));
+}
+
+
+void
+transform_grid (Triangulation<2> &tria,
+ const unsigned int transform)
+{
+ switch (transform)
+ {
+ // first round: take
+ // original grid
+ case 0:
+ break;
+
+ // second round: rotate
+ // triangulation
+ case 1:
+ GridTools::rotate (3.14159265358/2, tria);
+ break;
+
+ // third round: inflate
+ // by a factor of 2
+ case 2:
+ GridTools::scale (2, tria);
+ break;
+
+ // third round: scale
+ // back, rotate back,
+ // stretch
+ case 3:
+ GridTools::scale (.5, tria);
+ GridTools::rotate (-3.14159265358/2, tria);
+ GridTools::transform (&stretch_coordinates, tria);
+
+ break;
+
+ default:
+ Assert (false, ExcNotImplemented());
+ };
+}
+
+
+
+
+template<int dim>
+void
+plot_shape_functions(const unsigned int degree)
+{
+ FE_BDM<dim> element(degree);
+ Triangulation<dim> tr;
+ GridGenerator::hyper_cube(tr, 0., 1.);
+
+ // check the following with a
+ // number of transformed
+ // triangulations
+ for (unsigned int transform=0; transform<4; ++transform)
+ {
+ std::ostringstream ost;
+ ost << "BDM" << degree << "-Transform" << transform;
+ deallog.push(ost.str());
+
+ transform_grid (tr, transform);
+
+ DoFHandler<dim> dof(tr);
+ typename DoFHandler<dim>::cell_iterator c = dof.begin();
+ dof.distribute_dofs(element);
+
+ QTrapez<1> q_trapez;
+ const unsigned int div=2;
+ QIterated<dim> q(q_trapez, div);
+ FEValues<dim> fe(element, q, update_values|update_gradients|update_q_points);
+ fe.reinit(c);
+
+ for (unsigned int q_point=0; q_point< q.size(); ++q_point)
+ {
+ // Output function in
+ // gnuplot readable format,
+ // namely x y z u0x u0y u0z u1x...
+ deallog << "value " << q_point << '\t' << fe.quadrature_point(q_point);
+
+ for (unsigned int i=0; i<element.dofs_per_cell; ++i)
+ {
+ for (unsigned int c=0; c<dim; ++c)
+ deallog << '\t' << fe.shape_value_component(i,q_point,c);
+ }
+
+ // Output the gradients in
+ // similar fashion
+ deallog << std::endl << "gradient " << q_point << '\t' << fe.quadrature_point(q_point);
+
+ for (unsigned int i=0; i<element.dofs_per_cell; ++i)
+ {
+ for (unsigned int c=0; c<dim; ++c)
+ {
+ for (unsigned int d=0; d<dim; ++d)
+ deallog << '\t' << fe.shape_grad_component(i,q_point,c)[d];
+ }
+ }
+ deallog << std::endl;
+
+ if ((q_point+1) % (2*div-1) == 0)
+ {
+ deallog << "value " << std::endl;
+ deallog << "gradient " << std::endl;
+ }
+ }
+
+ deallog << std::endl;
+ deallog.pop();
+ }
+}
+
+
+int
+main()
+{
+ std::ofstream logfile ("output");
+ deallog << std::setprecision(PRECISION);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ for (unsigned int degree=1; degree<4; ++degree)
+ plot_shape_functions<2>(degree);
+
+ return 0;
+}
--- /dev/null
+
+DEAL:BDM1-Transform0::value 0 0.000 0.000 1.366 0 -0.366 0 0 0 0 0 0 1.366 0 -0.366 0 0 0 0
+DEAL:BDM1-Transform0::gradient 0 0.000 0.000 -1.366 -1.732 0 0.866 0.366 1.732 0 -0.866 1.366 0 0 -0.866 -0.366 0 0 0.866 0.866 0 -1.732 -1.366 -0.866 0 1.732 0.366 -0.866 0 0 1.366 0.866 0 0 -0.366
+DEAL:BDM1-Transform0::value 1 0.500 0.000 0.683 0 -0.183 0 0.683 0 -0.183 0 0.217 0.500 -0.217 0.500 -0.217 0 0.217 0
+DEAL:BDM1-Transform0::gradient 1 0.500 0.000 -1.366 -0.866 0 0.866 0.366 0.866 0 -0.866 1.366 -0.866 0 -0.866 -0.366 0.866 0 0.866 0 0 -1.732 -0.500 0 0 1.732 -0.500 0 0 0 0.500 0 0 0 0.500
+DEAL:BDM1-Transform0::value 2 1.000 0.000 0 0 0 0 1.366 0 -0.366 0 0 -0.366 0 1.366 0 0 0 0
+DEAL:BDM1-Transform0::gradient 2 1.000 0.000 -1.366 0 0 0.866 0.366 0 0 -0.866 1.366 -1.732 0 -0.866 -0.366 1.732 0 0.866 -0.866 0 -1.732 0.366 0.866 0 1.732 -1.366 0.866 0 0 -0.366 -0.866 0 0 1.366
+DEAL:BDM1-Transform0::value
+DEAL:BDM1-Transform0::gradient
+DEAL:BDM1-Transform0::value 3 0.000 0.500 0.500 0.217 0.500 -0.217 0 -0.217 0 0.217 0 0.683 0 -0.183 0 0.683 0 -0.183
+DEAL:BDM1-Transform0::gradient 3 0.000 0.500 -0.500 -1.732 0 0 -0.500 1.732 0 0 0.500 0 0 0 0.500 0 0 0 0.866 0 -0.866 -1.366 -0.866 0 0.866 0.366 -0.866 0 -0.866 1.366 0.866 0 0.866 -0.366
+DEAL:BDM1-Transform0::value 4 0.500 0.500 0.250 0.217 0.250 -0.217 0.250 -0.217 0.250 0.217 0.217 0.250 -0.217 0.250 -0.217 0.250 0.217 0.250
+DEAL:BDM1-Transform0::gradient 4 0.500 0.500 -0.500 -0.866 0 0 -0.500 0.866 0 0 0.500 -0.866 0 0 0.500 0.866 0 0 0 0 -0.866 -0.500 0 0 0.866 -0.500 0 0 -0.866 0.500 0 0 0.866 0.500
+DEAL:BDM1-Transform0::value 5 1.000 0.500 0 0.217 0 -0.217 0.500 -0.217 0.500 0.217 0 -0.183 0 0.683 0 -0.183 0 0.683
+DEAL:BDM1-Transform0::gradient 5 1.000 0.500 -0.500 0 0 0 -0.500 0 0 0 0.500 -1.732 0 0 0.500 1.732 0 0 -0.866 0 -0.866 0.366 0.866 0 0.866 -1.366 0.866 0 -0.866 -0.366 -0.866 0 0.866 1.366
+DEAL:BDM1-Transform0::value
+DEAL:BDM1-Transform0::gradient
+DEAL:BDM1-Transform0::value 6 0.000 1.000 -0.366 0 1.366 0 0 0 0 0 0 0 0 0 0 1.366 0 -0.366
+DEAL:BDM1-Transform0::gradient 6 0.000 1.000 0.366 -1.732 0 -0.866 -1.366 1.732 0 0.866 -0.366 0 0 0.866 1.366 0 0 -0.866 0.866 0 0 -1.366 -0.866 0 0 0.366 -0.866 0 -1.732 1.366 0.866 0 1.732 -0.366
+DEAL:BDM1-Transform0::value 7 0.500 1.000 -0.183 0 0.683 0 -0.183 0 0.683 0 0.217 0 -0.217 0 -0.217 0.500 0.217 0.500
+DEAL:BDM1-Transform0::gradient 7 0.500 1.000 0.366 -0.866 0 -0.866 -1.366 0.866 0 0.866 -0.366 -0.866 0 0.866 1.366 0.866 0 -0.866 0 0 0 -0.500 0 0 0 -0.500 0 0 -1.732 0.500 0 0 1.732 0.500
+DEAL:BDM1-Transform0::value 8 1.000 1.000 0 0 0 0 -0.366 0 1.366 0 0 0 0 0 0 -0.366 0 1.366
+DEAL:BDM1-Transform0::gradient 8 1.000 1.000 0.366 0 0 -0.866 -1.366 0 0 0.866 -0.366 -1.732 0 0.866 1.366 1.732 0 -0.866 -0.866 0 0 0.366 0.866 0 0 -1.366 0.866 0 -1.732 -0.366 -0.866 0 1.732 1.366
+DEAL:BDM1-Transform0::value
+DEAL:BDM1-Transform0::gradient
+DEAL:BDM1-Transform0::
+DEAL:BDM1-Transform1::value 0 0.000 0.000 0 1.366 0 -0.366 0 0 0 0 -1.366 0 0.366 0 0 0 0 0
+DEAL:BDM1-Transform1::gradient 0 0.000 0.000 0.866 0 1.732 -1.366 -0.866 0 -1.732 0.366 -0.866 0 0 1.366 0.866 0 0 -0.366 -1.366 1.732 0 0.866 0.366 -1.732 0 -0.866 1.366 0 0 -0.866 -0.366 0 0 0.866
+DEAL:BDM1-Transform1::value 1 0.000 0.500 0 0.683 0 -0.183 0 0.683 0 -0.183 -0.500 0.217 -0.500 -0.217 0 -0.217 0 0.217
+DEAL:BDM1-Transform1::gradient 1 0.000 0.500 0.866 0 0.866 -1.366 -0.866 0 -0.866 0.366 -0.866 0 0.866 1.366 0.866 0 -0.866 -0.366 -0.500 1.732 0 0 -0.500 -1.732 0 0 0.500 0 0 0 0.500 0 0 0
+DEAL:BDM1-Transform1::value 2 0.000 1.000 0 0 0 0 0 1.366 0 -0.366 0.366 0 -1.366 0 0 0 0 0
+DEAL:BDM1-Transform1::gradient 2 0.000 1.000 0.866 0 0 -1.366 -0.866 0 0 0.366 -0.866 0 1.732 1.366 0.866 0 -1.732 -0.366 0.366 1.732 0 -0.866 -1.366 -1.732 0 0.866 -0.366 0 0 0.866 1.366 0 0 -0.866
+DEAL:BDM1-Transform1::value
+DEAL:BDM1-Transform1::gradient
+DEAL:BDM1-Transform1::value 3 -0.500 0.000 -0.217 0.500 0.217 0.500 0.217 0 -0.217 0 -0.683 0 0.183 0 -0.683 0 0.183 0
+DEAL:BDM1-Transform1::gradient 3 -0.500 0.000 0 0 1.732 -0.500 0 0 -1.732 -0.500 0 0 0 0.500 0 0 0 0.500 -1.366 0.866 0 0.866 0.366 -0.866 0 -0.866 1.366 0.866 0 -0.866 -0.366 -0.866 0 0.866
+DEAL:BDM1-Transform1::value 4 -0.500 0.500 -0.217 0.250 0.217 0.250 0.217 0.250 -0.217 0.250 -0.250 0.217 -0.250 -0.217 -0.250 -0.217 -0.250 0.217
+DEAL:BDM1-Transform1::gradient 4 -0.500 0.500 0 0 0.866 -0.500 0 0 -0.866 -0.500 0 0 0.866 0.500 0 0 -0.866 0.500 -0.500 0.866 0 0 -0.500 -0.866 0 0 0.500 0.866 0 0 0.500 -0.866 0 0
+DEAL:BDM1-Transform1::value 5 -0.500 1.000 -0.217 0 0.217 0 0.217 0.500 -0.217 0.500 0.183 0 -0.683 0 0.183 0 -0.683 0
+DEAL:BDM1-Transform1::gradient 5 -0.500 1.000 0 0 0 -0.500 0 0 0 -0.500 0 0 1.732 0.500 0 0 -1.732 0.500 0.366 0.866 0 -0.866 -1.366 -0.866 0 0.866 -0.366 0.866 0 0.866 1.366 -0.866 0 -0.866
+DEAL:BDM1-Transform1::value
+DEAL:BDM1-Transform1::gradient
+DEAL:BDM1-Transform1::value 6 -1.000 0.000 0 -0.366 0 1.366 0 0 0 0 0 0 0 0 -1.366 0 0.366 0
+DEAL:BDM1-Transform1::gradient 6 -1.000 0.000 -0.866 0 1.732 0.366 0.866 0 -1.732 -1.366 0.866 0 0 -0.366 -0.866 0 0 1.366 -1.366 0 0 0.866 0.366 0 0 -0.866 1.366 1.732 0 -0.866 -0.366 -1.732 0 0.866
+DEAL:BDM1-Transform1::value 7 -1.000 0.500 0 -0.183 0 0.683 0 -0.183 0 0.683 0 0.217 0 -0.217 -0.500 -0.217 -0.500 0.217
+DEAL:BDM1-Transform1::gradient 7 -1.000 0.500 -0.866 0 0.866 0.366 0.866 0 -0.866 -1.366 0.866 0 0.866 -0.366 -0.866 0 -0.866 1.366 -0.500 0 0 0 -0.500 0 0 0 0.500 1.732 0 0 0.500 -1.732 0 0
+DEAL:BDM1-Transform1::value 8 -1.000 1.000 0 0 0 0 0 -0.366 0 1.366 0 0 0 0 0.366 0 -1.366 0
+DEAL:BDM1-Transform1::gradient 8 -1.000 1.000 -0.866 0 0 0.366 0.866 0 0 -1.366 0.866 0 1.732 -0.366 -0.866 0 -1.732 1.366 0.366 0 0 -0.866 -1.366 0 0 0.866 -0.366 1.732 0 0.866 1.366 -1.732 0 -0.866
+DEAL:BDM1-Transform1::value
+DEAL:BDM1-Transform1::gradient
+DEAL:BDM1-Transform1::
+DEAL:BDM1-Transform2::value 0 0.000 0.000 0 0.683 0 -0.183 0 0 0 0 -0.683 0 0.183 0 0 0 0 0
+DEAL:BDM1-Transform2::gradient 0 0.000 0.000 0.217 0 0.433 -0.342 -0.217 0 -0.433 0.092 -0.217 0 0 0.342 0.217 0 0 -0.092 -0.342 0.433 0 0.217 0.092 -0.433 0 -0.217 0.342 0 0 -0.217 -0.092 0 0 0.217
+DEAL:BDM1-Transform2::value 1 0.000 1.000 0 0.342 0 -0.092 0 0.342 0 -0.092 -0.250 0.108 -0.250 -0.108 0 -0.108 0 0.108
+DEAL:BDM1-Transform2::gradient 1 0.000 1.000 0.217 0 0.217 -0.342 -0.217 0 -0.217 0.092 -0.217 0 0.217 0.342 0.217 0 -0.217 -0.092 -0.125 0.433 0 0 -0.125 -0.433 0 0 0.125 0 0 0 0.125 0 0 0
+DEAL:BDM1-Transform2::value 2 0.000 2.000 0 0 0 0 0 0.683 0 -0.183 0.183 0 -0.683 0 0 0 0 0
+DEAL:BDM1-Transform2::gradient 2 0.000 2.000 0.217 0 0 -0.342 -0.217 0 0 0.092 -0.217 0 0.433 0.342 0.217 0 -0.433 -0.092 0.092 0.433 0 -0.217 -0.342 -0.433 0 0.217 -0.092 0 0 0.217 0.342 0 0 -0.217
+DEAL:BDM1-Transform2::value
+DEAL:BDM1-Transform2::gradient
+DEAL:BDM1-Transform2::value 3 -1.000 0.000 -0.108 0.250 0.108 0.250 0.108 0 -0.108 0 -0.342 0 0.092 0 -0.342 0 0.092 0
+DEAL:BDM1-Transform2::gradient 3 -1.000 0.000 0 0 0.433 -0.125 0 0 -0.433 -0.125 0 0 0 0.125 0 0 0 0.125 -0.342 0.217 0 0.217 0.092 -0.217 0 -0.217 0.342 0.217 0 -0.217 -0.092 -0.217 0 0.217
+DEAL:BDM1-Transform2::value 4 -1.000 1.000 -0.108 0.125 0.108 0.125 0.108 0.125 -0.108 0.125 -0.125 0.108 -0.125 -0.108 -0.125 -0.108 -0.125 0.108
+DEAL:BDM1-Transform2::gradient 4 -1.000 1.000 0 0 0.217 -0.125 0 0 -0.217 -0.125 0 0 0.217 0.125 0 0 -0.217 0.125 -0.125 0.217 0 0 -0.125 -0.217 0 0 0.125 0.217 0 0 0.125 -0.217 0 0
+DEAL:BDM1-Transform2::value 5 -1.000 2.000 -0.108 0 0.108 0 0.108 0.250 -0.108 0.250 0.092 0 -0.342 0 0.092 0 -0.342 0
+DEAL:BDM1-Transform2::gradient 5 -1.000 2.000 0 0 0 -0.125 0 0 0 -0.125 0 0 0.433 0.125 0 0 -0.433 0.125 0.092 0.217 0 -0.217 -0.342 -0.217 0 0.217 -0.092 0.217 0 0.217 0.342 -0.217 0 -0.217
+DEAL:BDM1-Transform2::value
+DEAL:BDM1-Transform2::gradient
+DEAL:BDM1-Transform2::value 6 -2.000 0.000 0 -0.183 0 0.683 0 0 0 0 0 0 0 0 -0.683 0 0.183 0
+DEAL:BDM1-Transform2::gradient 6 -2.000 0.000 -0.217 0 0.433 0.092 0.217 0 -0.433 -0.342 0.217 0 0 -0.092 -0.217 0 0 0.342 -0.342 0 0 0.217 0.092 0 0 -0.217 0.342 0.433 0 -0.217 -0.092 -0.433 0 0.217
+DEAL:BDM1-Transform2::value 7 -2.000 1.000 0 -0.092 0 0.342 0 -0.092 0 0.342 0 0.108 0 -0.108 -0.250 -0.108 -0.250 0.108
+DEAL:BDM1-Transform2::gradient 7 -2.000 1.000 -0.217 0 0.217 0.092 0.217 0 -0.217 -0.342 0.217 0 0.217 -0.092 -0.217 0 -0.217 0.342 -0.125 0 0 0 -0.125 0 0 0 0.125 0.433 0 0 0.125 -0.433 0 0
+DEAL:BDM1-Transform2::value 8 -2.000 2.000 0 0 0 0 0 -0.183 0 0.683 0 0 0 0 0.183 0 -0.683 0
+DEAL:BDM1-Transform2::gradient 8 -2.000 2.000 -0.217 0 0 0.092 0.217 0 0 -0.342 0.217 0 0.433 -0.092 -0.217 0 -0.433 0.342 0.092 0 0 -0.217 -0.342 0 0 0.217 -0.092 0.433 0 0.217 0.342 -0.433 0 -0.217
+DEAL:BDM1-Transform2::value
+DEAL:BDM1-Transform2::gradient
+DEAL:BDM1-Transform2::
+DEAL:BDM1-Transform3::value 0 0.000 0.000 1.366 0 -0.366 0 0 0 0 0 0 0.683 0 -0.183 0 0 0 0
+DEAL:BDM1-Transform3::gradient 0 0.000 0.000 -0.683 -1.732 0 0.433 0.183 1.732 0 -0.433 0.683 0 0 -0.433 -0.183 0 0 0.433 0.433 0 -0.433 -0.683 -0.433 0 0.433 0.183 -0.433 0 0 0.683 0.433 0 0 -0.183
+DEAL:BDM1-Transform3::value 1 1.000 0.000 0.683 0 -0.183 0 0.683 0 -0.183 0 0.217 0.250 -0.217 0.250 -0.217 0 0.217 0
+DEAL:BDM1-Transform3::gradient 1 1.000 0.000 -0.683 -0.866 0 0.433 0.183 0.866 0 -0.433 0.683 -0.866 0 -0.433 -0.183 0.866 0 0.433 0 0 -0.433 -0.250 0 0 0.433 -0.250 0 0 0 0.250 0 0 0 0.250
+DEAL:BDM1-Transform3::value 2 2.000 0.000 0 0 0 0 1.366 0 -0.366 0 0 -0.183 0 0.683 0 0 0 0
+DEAL:BDM1-Transform3::gradient 2 2.000 0.000 -0.683 0 0 0.433 0.183 0 0 -0.433 0.683 -1.732 0 -0.433 -0.183 1.732 0 0.433 -0.433 0 -0.433 0.183 0.433 0 0.433 -0.683 0.433 0 0 -0.183 -0.433 0 0 0.683
+DEAL:BDM1-Transform3::value
+DEAL:BDM1-Transform3::gradient
+DEAL:BDM1-Transform3::value 3 0.000 0.500 0.500 0.108 0.500 -0.108 0 -0.108 0 0.108 0 0.342 0 -0.092 0 0.342 0 -0.092
+DEAL:BDM1-Transform3::gradient 3 0.000 0.500 -0.250 -1.732 0 0 -0.250 1.732 0 0 0.250 0 0 0 0.250 0 0 0 0.433 0 -0.217 -0.683 -0.433 0 0.217 0.183 -0.433 0 -0.217 0.683 0.433 0 0.217 -0.183
+DEAL:BDM1-Transform3::value 4 1.000 0.500 0.250 0.108 0.250 -0.108 0.250 -0.108 0.250 0.108 0.217 0.125 -0.217 0.125 -0.217 0.125 0.217 0.125
+DEAL:BDM1-Transform3::gradient 4 1.000 0.500 -0.250 -0.866 0 0 -0.250 0.866 0 0 0.250 -0.866 0 0 0.250 0.866 0 0 0 0 -0.217 -0.250 0 0 0.217 -0.250 0 0 -0.217 0.250 0 0 0.217 0.250
+DEAL:BDM1-Transform3::value 5 2.000 0.500 0 0.108 0 -0.108 0.500 -0.108 0.500 0.108 0 -0.092 0 0.342 0 -0.092 0 0.342
+DEAL:BDM1-Transform3::gradient 5 2.000 0.500 -0.250 0 0 0 -0.250 0 0 0 0.250 -1.732 0 0 0.250 1.732 0 0 -0.433 0 -0.217 0.183 0.433 0 0.217 -0.683 0.433 0 -0.217 -0.183 -0.433 0 0.217 0.683
+DEAL:BDM1-Transform3::value
+DEAL:BDM1-Transform3::gradient
+DEAL:BDM1-Transform3::value 6 0.000 1.000 -0.366 0 1.366 0 0 0 0 0 0 0 0 0 0 0.683 0 -0.183
+DEAL:BDM1-Transform3::gradient 6 0.000 1.000 0.183 -1.732 0 -0.433 -0.683 1.732 0 0.433 -0.183 0 0 0.433 0.683 0 0 -0.433 0.433 0 0 -0.683 -0.433 0 0 0.183 -0.433 0 -0.433 0.683 0.433 0 0.433 -0.183
+DEAL:BDM1-Transform3::value 7 1.000 1.000 -0.183 0 0.683 0 -0.183 0 0.683 0 0.217 0 -0.217 0 -0.217 0.250 0.217 0.250
+DEAL:BDM1-Transform3::gradient 7 1.000 1.000 0.183 -0.866 0 -0.433 -0.683 0.866 0 0.433 -0.183 -0.866 0 0.433 0.683 0.866 0 -0.433 0 0 0 -0.250 0 0 0 -0.250 0 0 -0.433 0.250 0 0 0.433 0.250
+DEAL:BDM1-Transform3::value 8 2.000 1.000 0 0 0 0 -0.366 0 1.366 0 0 0 0 0 0 -0.183 0 0.683
+DEAL:BDM1-Transform3::gradient 8 2.000 1.000 0.183 0 0 -0.433 -0.683 0 0 0.433 -0.183 -1.732 0 0.433 0.683 1.732 0 -0.433 -0.433 0 0 0.183 0.433 0 0 -0.683 0.433 0 -0.433 -0.183 -0.433 0 0.433 0.683
+DEAL:BDM1-Transform3::value
+DEAL:BDM1-Transform3::gradient
+DEAL:BDM1-Transform3::
+DEAL:BDM2-Transform0::value 0 0.000 0.000 1.479 0 -0.667 0 0.188 0 0 0 0 0 0 0 0 1.479 0 -0.667 0 0.188 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM2-Transform0::gradient 0 0.000 0.000 -2.312 -4.624 0 0.556 -0.667 6.667 0 -1.111 -1.021 -2.042 0 0.556 0.645 0 0 -0.556 -2.000 0 0 1.111 -0.645 0 0 -0.556 0.556 0 -4.624 -2.312 -1.111 0 6.667 -0.667 0.556 0 -2.042 -1.021 -0.556 0 0 0.645 1.111 0 0 -2.000 -0.556 0 0 -0.645 6.000 0 0 0 0 0 0 6.000
+DEAL:BDM2-Transform0::value 1 0.500 0.000 0.531 0 -0.667 0 -0.114 0 0.531 0 -0.667 0 -0.114 0 0 0 0 1.000 0 0 0 0 0 0 0 0 1.500 0 0 0
+DEAL:BDM2-Transform0::gradient 1 0.500 0.000 -1.479 -2.312 0 0.556 0.667 3.333 0 -1.111 -0.188 -1.021 0 0.556 1.479 -2.312 0 -0.556 -0.667 3.333 0 1.111 0.188 -1.021 0 -0.556 -0.278 0 -1.291 -0.833 0.556 0 0 -2.333 -0.278 0 1.291 -0.833 0.278 0 0 -0.833 -0.556 0 0 -0.333 0.278 0 0 -0.833 0 0 0 0 0 0 0 6.000
+DEAL:BDM2-Transform0::value 2 1.000 0.000 0 0 0 0 0 0 1.479 0 -0.667 0 0.188 0 0 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM2-Transform0::gradient 2 1.000 0.000 -0.645 0 0 0.556 2.000 0 0 -1.111 0.645 0 0 0.556 2.312 -4.624 0 -0.556 0.667 6.667 0 1.111 1.021 -2.042 0 -0.556 0.556 0 2.042 -1.021 -1.111 0 -6.667 -0.667 0.556 0 4.624 -2.312 -0.556 0 0 -0.645 1.111 0 0 -2.000 -0.556 0 0 0.645 -6.000 0 0 0 0 0 0 6.000
+DEAL:BDM2-Transform0::value
+DEAL:BDM2-Transform0::gradient
+DEAL:BDM2-Transform0::value 3 0.000 0.500 0 0 1.000 0 0 0 0 0 0 0 0 0 0 0.531 0 -0.667 0 -0.114 0 0.531 0 -0.667 0 -0.114 0 0 0 1.500
+DEAL:BDM2-Transform0::gradient 3 0.000 0.500 -0.833 -1.291 0 -0.278 -2.333 0 0 0.556 -0.833 1.291 0 -0.278 -0.833 0 0 0.278 -0.333 0 0 -0.556 -0.833 0 0 0.278 0.556 0 -2.312 -1.479 -1.111 0 3.333 0.667 0.556 0 -1.021 -0.188 -0.556 0 -2.312 1.479 1.111 0 3.333 -0.667 -0.556 0 -1.021 0.188 6.000 0 0 0 0 0 0 0
+DEAL:BDM2-Transform0::value 4 0.500 0.500 -0.208 0 0.167 0 -0.208 0 -0.208 0 0.167 0 -0.208 0 0 -0.208 0 0.167 0 -0.208 0 -0.208 0 0.167 0 -0.208 1.500 0 0 1.500
+DEAL:BDM2-Transform0::gradient 4 0.500 0.500 0 -0.645 0 -0.278 -1.000 0 0 0.556 0 0.645 0 -0.278 0 -0.645 0 0.278 1.000 0 0 -0.556 0 0.645 0 0.278 -0.278 0 -0.645 0 0.556 0 0 -1.000 -0.278 0 0.645 0 0.278 0 -0.645 0 -0.556 0 0 1.000 0.278 0 0.645 0 0 0 0 0 0 0 0 0
+DEAL:BDM2-Transform0::value 5 1.000 0.500 0 0 0 0 0 0 0 0 1.000 0 0 0 0 -0.114 0 -0.667 0 0.531 0 -0.114 0 -0.667 0 0.531 0 0 0 1.500
+DEAL:BDM2-Transform0::gradient 5 1.000 0.500 0.833 0 0 -0.278 0.333 0 0 0.556 0.833 0 0 -0.278 0.833 -1.291 0 0.278 2.333 0 0 -0.556 0.833 1.291 0 0.278 0.556 0 1.021 -0.188 -1.111 0 -3.333 0.667 0.556 0 2.312 -1.479 -0.556 0 1.021 0.188 1.111 0 -3.333 -0.667 -0.556 0 2.312 1.479 -6.000 0 0 0 0 0 0 0
+DEAL:BDM2-Transform0::value
+DEAL:BDM2-Transform0::gradient
+DEAL:BDM2-Transform0::value 6 0.000 1.000 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.479 0 -0.667 0 0.188 0 0 0 0
+DEAL:BDM2-Transform0::gradient 6 0.000 1.000 -1.021 2.042 0 0.556 -0.667 -6.667 0 -1.111 -2.312 4.624 0 0.556 -0.645 0 0 -0.556 -2.000 0 0 1.111 0.645 0 0 -0.556 0.556 0 0 -0.645 -1.111 0 0 2.000 0.556 0 0 0.645 -0.556 0 -4.624 2.312 1.111 0 6.667 0.667 -0.556 0 -2.042 1.021 6.000 0 0 0 0 0 0 -6.000
+DEAL:BDM2-Transform0::value 7 0.500 1.000 -0.114 0 -0.667 0 0.531 0 -0.114 0 -0.667 0 0.531 0 0 0 0 0 0 0 0 0 0 1.000 0 0 1.500 0 0 0
+DEAL:BDM2-Transform0::gradient 7 0.500 1.000 -0.188 1.021 0 0.556 0.667 -3.333 0 -1.111 -1.479 2.312 0 0.556 0.188 1.021 0 -0.556 -0.667 -3.333 0 1.111 1.479 2.312 0 -0.556 -0.278 0 0 0.833 0.556 0 0 0.333 -0.278 0 0 0.833 0.278 0 -1.291 0.833 -0.556 0 0 2.333 0.278 0 1.291 0.833 0 0 0 0 0 0 0 -6.000
+DEAL:BDM2-Transform0::value 8 1.000 1.000 0 0 0 0 0 0 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 0 0 0.188 0 -0.667 0 1.479 0 0 0 0
+DEAL:BDM2-Transform0::gradient 8 1.000 1.000 0.645 0 0 0.556 2.000 0 0 -1.111 -0.645 0 0 0.556 1.021 2.042 0 -0.556 0.667 -6.667 0 1.111 2.312 4.624 0 -0.556 0.556 0 0 0.645 -1.111 0 0 2.000 0.556 0 0 -0.645 -0.556 0 2.042 1.021 1.111 0 -6.667 0.667 -0.556 0 4.624 2.312 -6.000 0 0 0 0 0 0 -6.000
+DEAL:BDM2-Transform0::value
+DEAL:BDM2-Transform0::gradient
+DEAL:BDM2-Transform0::
+DEAL:BDM2-Transform1::value 0 0.000 0.000 0 1.479 0 -0.667 0 0.188 0 0 0 0 0 0 -1.479 0 0.667 0 -0.188 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM2-Transform1::gradient 0 0.000 0.000 0.556 0 4.624 -2.312 -1.111 0 -6.667 -0.667 0.556 0 2.042 -1.021 -0.556 0 0 0.645 1.111 0 0 -2.000 -0.556 0 0 -0.645 -2.312 4.624 0 0.556 -0.667 -6.667 0 -1.111 -1.021 2.042 0 0.556 0.645 0 0 -0.556 -2.000 0 0 1.111 -0.645 0 0 -0.556 0 0 0 6.000 6.000 0 0 0
+DEAL:BDM2-Transform1::value 1 0.000 0.500 0 0.531 0 -0.667 0 -0.114 0 0.531 0 -0.667 0 -0.114 0 0 -1.000 0 0 0 0 0 0 0 0 0 0 1.500 0 0
+DEAL:BDM2-Transform1::gradient 1 0.000 0.500 0.556 0 2.312 -1.479 -1.111 0 -3.333 0.667 0.556 0 1.021 -0.188 -0.556 0 2.312 1.479 1.111 0 -3.333 -0.667 -0.556 0 1.021 0.188 -0.833 1.291 0 -0.278 -2.333 0 0 0.556 -0.833 -1.291 0 -0.278 -0.833 0 0 0.278 -0.333 0 0 -0.556 -0.833 0 0 0.278 0 0 0 0 6.000 0 0 0
+DEAL:BDM2-Transform1::value 2 0.000 1.000 0 0 0 0 0 0 0 1.479 0 -0.667 0 0.188 -0.188 0 0.667 0 -1.479 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM2-Transform1::gradient 2 0.000 1.000 0.556 0 0 -0.645 -1.111 0 0 2.000 0.556 0 0 0.645 -0.556 0 4.624 2.312 1.111 0 -6.667 0.667 -0.556 0 2.042 1.021 -1.021 -2.042 0 0.556 -0.667 6.667 0 -1.111 -2.312 -4.624 0 0.556 -0.645 0 0 -0.556 -2.000 0 0 1.111 0.645 0 0 -0.556 0 0 0 -6.000 6.000 0 0 0
+DEAL:BDM2-Transform1::value
+DEAL:BDM2-Transform1::gradient
+DEAL:BDM2-Transform1::value 3 -0.500 0.000 0 0 0 1.000 0 0 0 0 0 0 0 0 -0.531 0 0.667 0 0.114 0 -0.531 0 0.667 0 0.114 0 0 0 -1.500 0
+DEAL:BDM2-Transform1::gradient 3 -0.500 0.000 -0.278 0 1.291 -0.833 0.556 0 0 -2.333 -0.278 0 -1.291 -0.833 0.278 0 0 -0.833 -0.556 0 0 -0.333 0.278 0 0 -0.833 -1.479 2.312 0 0.556 0.667 -3.333 0 -1.111 -0.188 1.021 0 0.556 1.479 2.312 0 -0.556 -0.667 -3.333 0 1.111 0.188 1.021 0 -0.556 0 0 0 6.000 0 0 0 0
+DEAL:BDM2-Transform1::value 4 -0.500 0.500 0 -0.208 0 0.167 0 -0.208 0 -0.208 0 0.167 0 -0.208 0.208 0 -0.167 0 0.208 0 0.208 0 -0.167 0 0.208 0 0 1.500 -1.500 0
+DEAL:BDM2-Transform1::gradient 4 -0.500 0.500 -0.278 0 0.645 0 0.556 0 0 -1.000 -0.278 0 -0.645 0 0.278 0 0.645 0 -0.556 0 0 1.000 0.278 0 -0.645 0 0 0.645 0 -0.278 -1.000 0 0 0.556 0 -0.645 0 -0.278 0 0.645 0 0.278 1.000 0 0 -0.556 0 -0.645 0 0.278 0 0 0 0 0 0 0 0
+DEAL:BDM2-Transform1::value 5 -0.500 1.000 0 0 0 0 0 0 0 0 0 1.000 0 0 0.114 0 0.667 0 -0.531 0 0.114 0 0.667 0 -0.531 0 0 0 -1.500 0
+DEAL:BDM2-Transform1::gradient 5 -0.500 1.000 -0.278 0 0 0.833 0.556 0 0 0.333 -0.278 0 0 0.833 0.278 0 1.291 0.833 -0.556 0 0 2.333 0.278 0 -1.291 0.833 -0.188 -1.021 0 0.556 0.667 3.333 0 -1.111 -1.479 -2.312 0 0.556 0.188 -1.021 0 -0.556 -0.667 3.333 0 1.111 1.479 -2.312 0 -0.556 0 0 0 -6.000 0 0 0 0
+DEAL:BDM2-Transform1::value
+DEAL:BDM2-Transform1::gradient
+DEAL:BDM2-Transform1::value 6 -1.000 0.000 0 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 0 0 0 0 0 0 -1.479 0 0.667 0 -0.188 0 0 0 0 0
+DEAL:BDM2-Transform1::gradient 6 -1.000 0.000 0.556 0 -2.042 -1.021 -1.111 0 6.667 -0.667 0.556 0 -4.624 -2.312 -0.556 0 0 -0.645 1.111 0 0 -2.000 -0.556 0 0 0.645 -0.645 0 0 0.556 2.000 0 0 -1.111 0.645 0 0 0.556 2.312 4.624 0 -0.556 0.667 -6.667 0 1.111 1.021 2.042 0 -0.556 0 0 0 6.000 -6.000 0 0 0
+DEAL:BDM2-Transform1::value 7 -1.000 0.500 0 -0.114 0 -0.667 0 0.531 0 -0.114 0 -0.667 0 0.531 0 0 0 0 0 0 0 0 -1.000 0 0 0 0 1.500 0 0
+DEAL:BDM2-Transform1::gradient 7 -1.000 0.500 0.556 0 -1.021 -0.188 -1.111 0 3.333 0.667 0.556 0 -2.312 -1.479 -0.556 0 -1.021 0.188 1.111 0 3.333 -0.667 -0.556 0 -2.312 1.479 0.833 0 0 -0.278 0.333 0 0 0.556 0.833 0 0 -0.278 0.833 1.291 0 0.278 2.333 0 0 -0.556 0.833 -1.291 0 0.278 0 0 0 0 -6.000 0 0 0
+DEAL:BDM2-Transform1::value 8 -1.000 1.000 0 0 0 0 0 0 0 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 -0.188 0 0.667 0 -1.479 0 0 0 0 0
+DEAL:BDM2-Transform1::gradient 8 -1.000 1.000 0.556 0 0 0.645 -1.111 0 0 2.000 0.556 0 0 -0.645 -0.556 0 -2.042 1.021 1.111 0 6.667 0.667 -0.556 0 -4.624 2.312 0.645 0 0 0.556 2.000 0 0 -1.111 -0.645 0 0 0.556 1.021 -2.042 0 -0.556 0.667 6.667 0 1.111 2.312 -4.624 0 -0.556 0 0 0 -6.000 -6.000 0 0 0
+DEAL:BDM2-Transform1::value
+DEAL:BDM2-Transform1::gradient
+DEAL:BDM2-Transform1::
+DEAL:BDM2-Transform2::value 0 0.000 0.000 0 0.739 0 -0.333 0 0.094 0 0 0 0 0 0 -0.739 0 0.333 0 -0.094 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM2-Transform2::gradient 0 0.000 0.000 0.139 0 1.156 -0.578 -0.278 0 -1.667 -0.167 0.139 0 0.511 -0.255 -0.139 0 0 0.161 0.278 0 0 -0.500 -0.139 0 0 -0.161 -0.578 1.156 0 0.139 -0.167 -1.667 0 -0.278 -0.255 0.511 0 0.139 0.161 0 0 -0.139 -0.500 0 0 0.278 -0.161 0 0 -0.139 0 0 0 1.500 1.500 0 0 0
+DEAL:BDM2-Transform2::value 1 0.000 1.000 0 0.266 0 -0.333 0 -0.057 0 0.266 0 -0.333 0 -0.057 0 0 -0.500 0 0 0 0 0 0 0 0 0 0 0.750 0 0
+DEAL:BDM2-Transform2::gradient 1 0.000 1.000 0.139 0 0.578 -0.370 -0.278 0 -0.833 0.167 0.139 0 0.255 -0.047 -0.139 0 0.578 0.370 0.278 0 -0.833 -0.167 -0.139 0 0.255 0.047 -0.208 0.323 0 -0.069 -0.583 0 0 0.139 -0.208 -0.323 0 -0.069 -0.208 0 0 0.069 -0.083 0 0 -0.139 -0.208 0 0 0.069 0 0 0 0 1.500 0 0 0
+DEAL:BDM2-Transform2::value 2 0.000 2.000 0 0 0 0 0 0 0 0.739 0 -0.333 0 0.094 -0.094 0 0.333 0 -0.739 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM2-Transform2::gradient 2 0.000 2.000 0.139 0 0 -0.161 -0.278 0 0 0.500 0.139 0 0 0.161 -0.139 0 1.156 0.578 0.278 0 -1.667 0.167 -0.139 0 0.511 0.255 -0.255 -0.511 0 0.139 -0.167 1.667 0 -0.278 -0.578 -1.156 0 0.139 -0.161 0 0 -0.139 -0.500 0 0 0.278 0.161 0 0 -0.139 0 0 0 -1.500 1.500 0 0 0
+DEAL:BDM2-Transform2::value
+DEAL:BDM2-Transform2::gradient
+DEAL:BDM2-Transform2::value 3 -1.000 0.000 0 0 0 0.500 0 0 0 0 0 0 0 0 -0.266 0 0.333 0 0.057 0 -0.266 0 0.333 0 0.057 0 0 0 -0.750 0
+DEAL:BDM2-Transform2::gradient 3 -1.000 0.000 -0.069 0 0.323 -0.208 0.139 0 0 -0.583 -0.069 0 -0.323 -0.208 0.069 0 0 -0.208 -0.139 0 0 -0.083 0.069 0 0 -0.208 -0.370 0.578 0 0.139 0.167 -0.833 0 -0.278 -0.047 0.255 0 0.139 0.370 0.578 0 -0.139 -0.167 -0.833 0 0.278 0.047 0.255 0 -0.139 0 0 0 1.500 0 0 0 0
+DEAL:BDM2-Transform2::value 4 -1.000 1.000 0 -0.104 0 0.083 0 -0.104 0 -0.104 0 0.083 0 -0.104 0.104 0 -0.083 0 0.104 0 0.104 0 -0.083 0 0.104 0 0 0.750 -0.750 0
+DEAL:BDM2-Transform2::gradient 4 -1.000 1.000 -0.069 0 0.161 0 0.139 0 0 -0.250 -0.069 0 -0.161 0 0.069 0 0.161 0 -0.139 0 0 0.250 0.069 0 -0.161 0 0 0.161 0 -0.069 -0.250 0 0 0.139 0 -0.161 0 -0.069 0 0.161 0 0.069 0.250 0 0 -0.139 0 -0.161 0 0.069 0 0 0 0 0 0 0 0
+DEAL:BDM2-Transform2::value 5 -1.000 2.000 0 0 0 0 0 0 0 0 0 0.500 0 0 0.057 0 0.333 0 -0.266 0 0.057 0 0.333 0 -0.266 0 0 0 -0.750 0
+DEAL:BDM2-Transform2::gradient 5 -1.000 2.000 -0.069 0 0 0.208 0.139 0 0 0.083 -0.069 0 0 0.208 0.069 0 0.323 0.208 -0.139 0 0 0.583 0.069 0 -0.323 0.208 -0.047 -0.255 0 0.139 0.167 0.833 0 -0.278 -0.370 -0.578 0 0.139 0.047 -0.255 0 -0.139 -0.167 0.833 0 0.278 0.370 -0.578 0 -0.139 0 0 0 -1.500 0 0 0 0
+DEAL:BDM2-Transform2::value
+DEAL:BDM2-Transform2::gradient
+DEAL:BDM2-Transform2::value 6 -2.000 0.000 0 0.094 0 -0.333 0 0.739 0 0 0 0 0 0 0 0 0 0 0 0 -0.739 0 0.333 0 -0.094 0 0 0 0 0
+DEAL:BDM2-Transform2::gradient 6 -2.000 0.000 0.139 0 -0.511 -0.255 -0.278 0 1.667 -0.167 0.139 0 -1.156 -0.578 -0.139 0 0 -0.161 0.278 0 0 -0.500 -0.139 0 0 0.161 -0.161 0 0 0.139 0.500 0 0 -0.278 0.161 0 0 0.139 0.578 1.156 0 -0.139 0.167 -1.667 0 0.278 0.255 0.511 0 -0.139 0 0 0 1.500 -1.500 0 0 0
+DEAL:BDM2-Transform2::value 7 -2.000 1.000 0 -0.057 0 -0.333 0 0.266 0 -0.057 0 -0.333 0 0.266 0 0 0 0 0 0 0 0 -0.500 0 0 0 0 0.750 0 0
+DEAL:BDM2-Transform2::gradient 7 -2.000 1.000 0.139 0 -0.255 -0.047 -0.278 0 0.833 0.167 0.139 0 -0.578 -0.370 -0.139 0 -0.255 0.047 0.278 0 0.833 -0.167 -0.139 0 -0.578 0.370 0.208 0 0 -0.069 0.083 0 0 0.139 0.208 0 0 -0.069 0.208 0.323 0 0.069 0.583 0 0 -0.139 0.208 -0.323 0 0.069 0 0 0 0 -1.500 0 0 0
+DEAL:BDM2-Transform2::value 8 -2.000 2.000 0 0 0 0 0 0 0 0.094 0 -0.333 0 0.739 0 0 0 0 0 0 -0.094 0 0.333 0 -0.739 0 0 0 0 0
+DEAL:BDM2-Transform2::gradient 8 -2.000 2.000 0.139 0 0 0.161 -0.278 0 0 0.500 0.139 0 0 -0.161 -0.139 0 -0.511 0.255 0.278 0 1.667 0.167 -0.139 0 -1.156 0.578 0.161 0 0 0.139 0.500 0 0 -0.278 -0.161 0 0 0.139 0.255 -0.511 0 -0.139 0.167 1.667 0 0.278 0.578 -1.156 0 -0.139 0 0 0 -1.500 -1.500 0 0 0
+DEAL:BDM2-Transform2::value
+DEAL:BDM2-Transform2::gradient
+DEAL:BDM2-Transform2::
+DEAL:BDM2-Transform3::value 0 0.000 0.000 1.479 0 -0.667 0 0.188 0 0 0 0 0 0 0 0 0.739 0 -0.333 0 0.094 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM2-Transform3::gradient 0 0.000 0.000 -1.156 -4.624 0 0.278 -0.333 6.667 0 -0.556 -0.511 -2.042 0 0.278 0.323 0 0 -0.278 -1.000 0 0 0.556 -0.323 0 0 -0.278 0.278 0 -1.156 -1.156 -0.556 0 1.667 -0.333 0.278 0 -0.511 -0.511 -0.278 0 0 0.323 0.556 0 0 -1.000 -0.278 0 0 -0.323 3.000 0 0 0 0 0 0 3.000
+DEAL:BDM2-Transform3::value 1 1.000 0.000 0.531 0 -0.667 0 -0.114 0 0.531 0 -0.667 0 -0.114 0 0 0 0 0.500 0 0 0 0 0 0 0 0 1.500 0 0 0
+DEAL:BDM2-Transform3::gradient 1 1.000 0.000 -0.739 -2.312 0 0.278 0.333 3.333 0 -0.556 -0.094 -1.021 0 0.278 0.739 -2.312 0 -0.278 -0.333 3.333 0 0.556 0.094 -1.021 0 -0.278 -0.139 0 -0.323 -0.417 0.278 0 0 -1.167 -0.139 0 0.323 -0.417 0.139 0 0 -0.417 -0.278 0 0 -0.167 0.139 0 0 -0.417 0 0 0 0 0 0 0 3.000
+DEAL:BDM2-Transform3::value 2 2.000 0.000 0 0 0 0 0 0 1.479 0 -0.667 0 0.188 0 0 0.094 0 -0.333 0 0.739 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM2-Transform3::gradient 2 2.000 0.000 -0.323 0 0 0.278 1.000 0 0 -0.556 0.323 0 0 0.278 1.156 -4.624 0 -0.278 0.333 6.667 0 0.556 0.511 -2.042 0 -0.278 0.278 0 0.511 -0.511 -0.556 0 -1.667 -0.333 0.278 0 1.156 -1.156 -0.278 0 0 -0.323 0.556 0 0 -1.000 -0.278 0 0 0.323 -3.000 0 0 0 0 0 0 3.000
+DEAL:BDM2-Transform3::value
+DEAL:BDM2-Transform3::gradient
+DEAL:BDM2-Transform3::value 3 0.000 0.500 0 0 1.000 0 0 0 0 0 0 0 0 0 0 0.266 0 -0.333 0 -0.057 0 0.266 0 -0.333 0 -0.057 0 0 0 0.750
+DEAL:BDM2-Transform3::gradient 3 0.000 0.500 -0.417 -1.291 0 -0.139 -1.167 0 0 0.278 -0.417 1.291 0 -0.139 -0.417 0 0 0.139 -0.167 0 0 -0.278 -0.417 0 0 0.139 0.278 0 -0.578 -0.739 -0.556 0 0.833 0.333 0.278 0 -0.255 -0.094 -0.278 0 -0.578 0.739 0.556 0 0.833 -0.333 -0.278 0 -0.255 0.094 3.000 0 0 0 0 0 0 0
+DEAL:BDM2-Transform3::value 4 1.000 0.500 -0.208 0 0.167 0 -0.208 0 -0.208 0 0.167 0 -0.208 0 0 -0.104 0 0.083 0 -0.104 0 -0.104 0 0.083 0 -0.104 1.500 0 0 0.750
+DEAL:BDM2-Transform3::gradient 4 1.000 0.500 0 -0.645 0 -0.139 -0.500 0 0 0.278 0 0.645 0 -0.139 0 -0.645 0 0.139 0.500 0 0 -0.278 0 0.645 0 0.139 -0.139 0 -0.161 0 0.278 0 0 -0.500 -0.139 0 0.161 0 0.139 0 -0.161 0 -0.278 0 0 0.500 0.139 0 0.161 0 0 0 0 0 0 0 0 0
+DEAL:BDM2-Transform3::value 5 2.000 0.500 0 0 0 0 0 0 0 0 1.000 0 0 0 0 -0.057 0 -0.333 0 0.266 0 -0.057 0 -0.333 0 0.266 0 0 0 0.750
+DEAL:BDM2-Transform3::gradient 5 2.000 0.500 0.417 0 0 -0.139 0.167 0 0 0.278 0.417 0 0 -0.139 0.417 -1.291 0 0.139 1.167 0 0 -0.278 0.417 1.291 0 0.139 0.278 0 0.255 -0.094 -0.556 0 -0.833 0.333 0.278 0 0.578 -0.739 -0.278 0 0.255 0.094 0.556 0 -0.833 -0.333 -0.278 0 0.578 0.739 -3.000 0 0 0 0 0 0 0
+DEAL:BDM2-Transform3::value
+DEAL:BDM2-Transform3::gradient
+DEAL:BDM2-Transform3::value 6 0.000 1.000 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.739 0 -0.333 0 0.094 0 0 0 0
+DEAL:BDM2-Transform3::gradient 6 0.000 1.000 -0.511 2.042 0 0.278 -0.333 -6.667 0 -0.556 -1.156 4.624 0 0.278 -0.323 0 0 -0.278 -1.000 0 0 0.556 0.323 0 0 -0.278 0.278 0 0 -0.323 -0.556 0 0 1.000 0.278 0 0 0.323 -0.278 0 -1.156 1.156 0.556 0 1.667 0.333 -0.278 0 -0.511 0.511 3.000 0 0 0 0 0 0 -3.000
+DEAL:BDM2-Transform3::value 7 1.000 1.000 -0.114 0 -0.667 0 0.531 0 -0.114 0 -0.667 0 0.531 0 0 0 0 0 0 0 0 0 0 0.500 0 0 1.500 0 0 0
+DEAL:BDM2-Transform3::gradient 7 1.000 1.000 -0.094 1.021 0 0.278 0.333 -3.333 0 -0.556 -0.739 2.312 0 0.278 0.094 1.021 0 -0.278 -0.333 -3.333 0 0.556 0.739 2.312 0 -0.278 -0.139 0 0 0.417 0.278 0 0 0.167 -0.139 0 0 0.417 0.139 0 -0.323 0.417 -0.278 0 0 1.167 0.139 0 0.323 0.417 0 0 0 0 0 0 0 -3.000
+DEAL:BDM2-Transform3::value 8 2.000 1.000 0 0 0 0 0 0 0.188 0 -0.667 0 1.479 0 0 0 0 0 0 0 0 0.094 0 -0.333 0 0.739 0 0 0 0
+DEAL:BDM2-Transform3::gradient 8 2.000 1.000 0.323 0 0 0.278 1.000 0 0 -0.556 -0.323 0 0 0.278 0.511 2.042 0 -0.278 0.333 -6.667 0 0.556 1.156 4.624 0 -0.278 0.278 0 0 0.323 -0.556 0 0 1.000 0.278 0 0 -0.323 -0.278 0 0.511 0.511 0.556 0 -1.667 0.333 -0.278 0 1.156 1.156 -3.000 0 0 0 0 0 0 -3.000
+DEAL:BDM2-Transform3::value
+DEAL:BDM2-Transform3::gradient
+DEAL:BDM2-Transform3::
+DEAL:BDM3-Transform0::value 0 0.000 0.000 1.527 0 -0.814 0 0.401 0 -0.114 0 0 0 0 0 0 0 0 0 0 1.527 0 -0.814 0 0.401 0 -0.114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform0::gradient 0 0.000 0.000 -4.266 -8.546 0 0.371 -2.793 13.807 0 -0.940 -2.012 -7.417 0 0.940 0.070 2.156 0 -0.371 0.527 0 0 -0.371 -1.159 0 0 0.940 2.051 0 0 -0.940 1.582 0 0 0.371 0.371 0 -8.546 -4.266 -0.940 0 13.807 -2.793 0.940 0 -7.417 -2.012 -0.371 0 2.156 0.070 -0.371 0 0 0.527 0.940 0 0 -1.159 -0.940 0 0 2.051 0.371 0 0 1.582 54.000 0 0 0 -60.000 0 0 0 -36.000 0 0 0 0 0 0 54.000 0 0 0 -36.000 0 0 0 -60.000
+DEAL:BDM3-Transform0::value 1 0.500 0.000 0.296 0 -0.901 0 0.205 0 0.150 0 0.296 0 -0.901 0 0.205 0 0.150 0 -0.023 -0.092 0.059 0.592 -0.059 0.592 0.023 -0.092 0.023 0 -0.059 0 0.059 0 -0.023 0 6.000 0 0 0 -9.000 0 0 0 0 0 0 0
+DEAL:BDM3-Transform0::gradient 1 0.500 0.000 -1.092 -3.599 0 0.371 1.629 7.402 0 -0.940 0.414 -4.207 0 0.940 0.549 0.404 0 -0.371 1.092 -3.599 0 -0.371 -1.629 7.402 0 0.940 -0.414 -4.207 0 -0.940 -0.549 0.404 0 0.371 0 0 0.214 -1.299 0 0 -3.484 -3.201 0 0 3.484 -3.201 0 0 -0.214 -1.299 0 0 0 0.256 0 0 0 1.244 0 0 0 1.244 0 0 0 0.256 -15.000 -9.000 0 0 30.000 0 0 0 0 18.000 0 0 0 0 0 36.000 0 0 0 0 0 0 0 -60.000
+DEAL:BDM3-Transform0::value 2 1.000 0.000 0 0 0 0 0 0 0 0 1.527 0 -0.814 0 0.401 0 -0.114 0 0 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform0::gradient 2 1.000 0.000 -0.527 0 0 0.371 1.159 0 0 -0.940 -2.051 0 0 0.940 -1.582 0 0 -0.371 4.266 -8.546 0 -0.371 2.793 13.807 0 0.940 2.012 -7.417 0 -0.940 -0.070 2.156 0 0.371 -0.371 0 -2.156 0.070 0.940 0 7.417 -2.012 -0.940 0 -13.807 -2.793 0.371 0 8.546 -4.266 0.371 0 0 1.582 -0.940 0 0 2.051 0.940 0 0 -1.159 -0.371 0 0 0.527 6.000 0 0 0 -60.000 0 0 0 36.000 0 0 0 0 0 0 18.000 0 0 0 36.000 0 0 0 -60.000
+DEAL:BDM3-Transform0::value
+DEAL:BDM3-Transform0::gradient
+DEAL:BDM3-Transform0::value 3 0.000 0.500 -0.092 -0.023 0.592 0.059 0.592 -0.059 -0.092 0.023 0 0.023 0 -0.059 0 0.059 0 -0.023 0 0.296 0 -0.901 0 0.205 0 0.150 0 0.296 0 -0.901 0 0.205 0 0.150 0 0 0 0 0 0 0 6.000 0 -9.000 0 0
+DEAL:BDM3-Transform0::gradient 3 0.000 0.500 -1.299 0.214 0 0 -3.201 -3.484 0 0 -3.201 3.484 0 0 -1.299 -0.214 0 0 0.256 0 0 0 1.244 0 0 0 1.244 0 0 0 0.256 0 0 0 0.371 0 -3.599 -1.092 -0.940 0 7.402 1.629 0.940 0 -4.207 0.414 -0.371 0 0.404 0.549 -0.371 0 -3.599 1.092 0.940 0 7.402 -1.629 -0.940 0 -4.207 -0.414 0.371 0 0.404 -0.549 36.000 0 0 0 -60.000 0 0 0 0 0 0 0 0 0 -9.000 -15.000 0 0 18.000 0 0 0 0 30.000
+DEAL:BDM3-Transform0::value 4 0.500 0.500 -0.177 -0.023 0.052 0.059 0.052 -0.059 -0.177 0.023 -0.177 0.023 0.052 -0.059 0.052 0.059 -0.177 -0.023 -0.023 -0.177 0.059 0.052 -0.059 0.052 0.023 -0.177 0.023 -0.177 -0.059 0.052 0.059 0.052 -0.023 -0.177 1.500 0 0 0 0 0 0 1.500 0 0 0 0
+DEAL:BDM3-Transform0::gradient 4 0.500 0.500 0.527 0.781 0 0 0.223 -1.243 0 0 0.223 1.243 0 0 0.527 -0.781 0 0 -0.527 0.781 0 0 -0.223 -1.243 0 0 -0.223 1.243 0 0 -0.527 -0.781 0 0 0 0 0.781 0.527 0 0 -1.243 0.223 0 0 1.243 0.223 0 0 -0.781 0.527 0 0 0.781 -0.527 0 0 -1.243 -0.223 0 0 1.243 -0.223 0 0 -0.781 -0.527 -15.000 -9.000 0 0 30.000 0 0 0 0 18.000 0 0 0 0 -9.000 -15.000 0 0 18.000 0 0 0 0 30.000
+DEAL:BDM3-Transform0::value 5 1.000 0.500 0 -0.023 0 0.059 0 -0.059 0 0.023 -0.092 0.023 0.592 -0.059 0.592 0.059 -0.092 -0.023 0 0.150 0 0.205 0 -0.901 0 0.296 0 0.150 0 0.205 0 -0.901 0 0.296 0 0 0 0 0 0 0 -3.000 0 9.000 0 0
+DEAL:BDM3-Transform0::gradient 5 1.000 0.500 -0.256 0 0 0 -1.244 0 0 0 -1.244 0 0 0 -0.256 0 0 0 1.299 0.214 0 0 3.201 -3.484 0 0 3.201 3.484 0 0 1.299 -0.214 0 0 -0.371 0 -0.404 0.549 0.940 0 4.207 0.414 -0.940 0 -7.402 1.629 0.371 0 3.599 -1.092 0.371 0 -0.404 -0.549 -0.940 0 4.207 -0.414 0.940 0 -7.402 -1.629 -0.371 0 3.599 1.092 24.000 0 0 0 -60.000 0 0 0 0 0 0 0 0 0 -9.000 -15.000 0 0 18.000 0 0 0 0 30.000
+DEAL:BDM3-Transform0::value
+DEAL:BDM3-Transform0::gradient
+DEAL:BDM3-Transform0::value 6 0.000 1.000 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.527 0 -0.814 0 0.401 0 -0.114 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform0::gradient 6 0.000 1.000 0.070 -2.156 0 -0.371 -2.012 7.417 0 0.940 -2.793 -13.807 0 -0.940 -4.266 8.546 0 0.371 1.582 0 0 0.371 2.051 0 0 -0.940 -1.159 0 0 0.940 0.527 0 0 -0.371 0.371 0 0 -0.527 -0.940 0 0 1.159 0.940 0 0 -2.051 -0.371 0 0 -1.582 -0.371 0 -8.546 4.266 0.940 0 13.807 2.793 -0.940 0 -7.417 2.012 0.371 0 2.156 -0.070 18.000 0 0 0 -60.000 0 0 0 36.000 0 0 0 0 0 0 6.000 0 0 0 36.000 0 0 0 -60.000
+DEAL:BDM3-Transform0::value 7 0.500 1.000 0.150 0 0.205 0 -0.901 0 0.296 0 0.150 0 0.205 0 -0.901 0 0.296 0 -0.023 0 0.059 0 -0.059 0 0.023 0 0.023 -0.092 -0.059 0.592 0.059 0.592 -0.023 -0.092 -3.000 0 0 0 9.000 0 0 0 0 0 0 0
+DEAL:BDM3-Transform0::gradient 7 0.500 1.000 0.549 -0.404 0 -0.371 0.414 4.207 0 0.940 1.629 -7.402 0 -0.940 -1.092 3.599 0 0.371 -0.549 -0.404 0 0.371 -0.414 4.207 0 -0.940 -1.629 -7.402 0 0.940 1.092 3.599 0 -0.371 0 0 0 -0.256 0 0 0 -1.244 0 0 0 -1.244 0 0 0 -0.256 0 0 0.214 1.299 0 0 -3.484 3.201 0 0 3.484 3.201 0 0 -0.214 1.299 -15.000 -9.000 0 0 30.000 0 0 0 0 18.000 0 0 0 0 0 24.000 0 0 0 0 0 0 0 -60.000
+DEAL:BDM3-Transform0::value 8 1.000 1.000 0 0 0 0 0 0 0 0 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform0::gradient 8 1.000 1.000 -1.582 0 0 -0.371 -2.051 0 0 0.940 1.159 0 0 -0.940 -0.527 0 0 0.371 -0.070 -2.156 0 0.371 2.012 7.417 0 -0.940 2.793 -13.807 0 0.940 4.266 8.546 0 -0.371 -0.371 0 0 -1.582 0.940 0 0 -2.051 -0.940 0 0 1.159 0.371 0 0 -0.527 0.371 0 -2.156 -0.070 -0.940 0 7.417 2.012 0.940 0 -13.807 2.793 -0.371 0 8.546 4.266 42.000 0 0 0 -60.000 0 0 0 -36.000 0 0 0 0 0 0 42.000 0 0 0 -36.000 0 0 0 -60.000
+DEAL:BDM3-Transform0::value
+DEAL:BDM3-Transform0::gradient
+DEAL:BDM3-Transform0::
+DEAL:BDM3-Transform1::value 0 0.000 0.000 0 1.527 0 -0.814 0 0.401 0 -0.114 0 0 0 0 0 0 0 0 -1.527 0 0.814 0 -0.401 0 0.114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform1::gradient 0 0.000 0.000 0.371 0 8.546 -4.266 -0.940 0 -13.807 -2.793 0.940 0 7.417 -2.012 -0.371 0 -2.156 0.070 -0.371 0 0 0.527 0.940 0 0 -1.159 -0.940 0 0 2.051 0.371 0 0 1.582 -4.266 8.546 0 0.371 -2.793 -13.807 0 -0.940 -2.012 7.417 0 0.940 0.070 -2.156 0 -0.371 0.527 0 0 -0.371 -1.159 0 0 0.940 2.051 0 0 -0.940 1.582 0 0 0.371 0 0.000 0.000 54.000 0 0.000 0.000 -60.000 0 0.000 0.000 -36.000 54.000 0.000 0.000 0 -36.000 0.000 0.000 0 -60.000 0.000 0.000 0
+DEAL:BDM3-Transform1::value 1 0.000 0.500 0 0.296 0 -0.901 0 0.205 0 0.150 0 0.296 0 -0.901 0 0.205 0 0.150 0.092 -0.023 -0.592 0.059 -0.592 -0.059 0.092 0.023 0 0.023 0 -0.059 0 0.059 0 -0.023 0 6.000 0 0 0 -9.000 0 0 0 0 0 0
+DEAL:BDM3-Transform1::gradient 1 0.000 0.500 0.371 0 3.599 -1.092 -0.940 0 -7.402 1.629 0.940 0 4.207 0.414 -0.371 0 -0.404 0.549 -0.371 0 3.599 1.092 0.940 0 -7.402 -1.629 -0.940 0 4.207 -0.414 0.371 0 -0.404 -0.549 -1.299 -0.214 0 0 -3.201 3.484 0 0 -3.201 -3.484 0 0 -1.299 0.214 0 0 0.256 0 0 0 1.244 0 0 0 1.244 0 0 0 0.256 0 0 0 0 0 9.000 -15.000 0 0.000 0.000 30.000 0 0 -18.000 0 36.000 0.000 0.000 0 0 0 0 0 -60.000 0.000 0.000 0
+DEAL:BDM3-Transform1::value 2 0.000 1.000 0 0 0 0 0 0 0 0 0 1.527 0 -0.814 0 0.401 0 -0.114 0.114 0 -0.401 0 0.814 0 -1.527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform1::gradient 2 0.000 1.000 0.371 0 0 -0.527 -0.940 0 0 1.159 0.940 0 0 -2.051 -0.371 0 0 -1.582 -0.371 0 8.546 4.266 0.940 0 -13.807 2.793 -0.940 0 7.417 2.012 0.371 0 -2.156 -0.070 0.070 2.156 0 -0.371 -2.012 -7.417 0 0.940 -2.793 13.807 0 -0.940 -4.266 -8.546 0 0.371 1.582 0 0 0.371 2.051 0 0 -0.940 -1.159 0 0 0.940 0.527 0 0 -0.371 0 0 0 6.000 0 0.000 0.000 -60.000 0 0.000 0.000 36.000 18.000 0 0 0 36.000 0.000 0.000 0 -60.000 0.000 0.000 0
+DEAL:BDM3-Transform1::value
+DEAL:BDM3-Transform1::gradient
+DEAL:BDM3-Transform1::value 3 -0.500 0.000 0.023 -0.092 -0.059 0.592 0.059 0.592 -0.023 -0.092 -0.023 0 0.059 0 -0.059 0 0.023 0 -0.296 0 0.901 0 -0.205 0 -0.150 0 -0.296 0 0.901 0 -0.205 0 -0.150 0 0 0 0 0 0 0 -6.000 0 9.000 0 0 0
+DEAL:BDM3-Transform1::gradient 3 -0.500 0.000 0 0 -0.214 -1.299 0 0 3.484 -3.201 0 0 -3.484 -3.201 0 0 0.214 -1.299 0 0 0 0.256 0 0 0 1.244 0 0 0 1.244 0 0 0 0.256 -1.092 3.599 0 0.371 1.629 -7.402 0 -0.940 0.414 4.207 0 0.940 0.549 -0.404 0 -0.371 1.092 3.599 0 -0.371 -1.629 -7.402 0 0.940 -0.414 4.207 0 -0.940 -0.549 -0.404 0 0.371 0 0.000 0.000 36.000 0 0.000 0.000 -60.000 0 0 0 0 -15.000 9.000 0 0 0 -18.000 0 0 30.000 0.000 0.000 0
+DEAL:BDM3-Transform1::value 4 -0.500 0.500 0.023 -0.177 -0.059 0.052 0.059 0.052 -0.023 -0.177 -0.023 -0.177 0.059 0.052 -0.059 0.052 0.023 -0.177 0.177 -0.023 -0.052 0.059 -0.052 -0.059 0.177 0.023 0.177 0.023 -0.052 -0.059 -0.052 0.059 0.177 -0.023 0 1.500 0 0 0 0 -1.500 0 0 0 0 0
+DEAL:BDM3-Transform1::gradient 4 -0.500 0.500 0 0 -0.781 0.527 0 0 1.243 0.223 0 0 -1.243 0.223 0 0 0.781 0.527 0 0 -0.781 -0.527 0 0 1.243 -0.223 0 0 -1.243 -0.223 0 0 0.781 -0.527 0.527 -0.781 0 0 0.223 1.243 0 0 0.223 -1.243 0 0 0.527 0.781 0 0 -0.527 -0.781 0 0 -0.223 1.243 0 0 -0.223 -1.243 0 0 -0.527 0.781 0 0 0 0 9.000 -15.000 0 0.000 0.000 30.000 0 0 -18.000 0 -15.000 9.000 0 0 0 -18.000 0 0 30.000 0.000 0.000 0
+DEAL:BDM3-Transform1::value 5 -0.500 1.000 0.023 0 -0.059 0 0.059 0 -0.023 0 -0.023 -0.092 0.059 0.592 -0.059 0.592 0.023 -0.092 -0.150 0 -0.205 0 0.901 0 -0.296 0 -0.150 0 -0.205 0 0.901 0 -0.296 0 0 0 0 0 0 0 3.000 0 -9.000 0 0 0
+DEAL:BDM3-Transform1::gradient 5 -0.500 1.000 0 0 0 -0.256 0 0 0 -1.244 0 0 0 -1.244 0 0 0 -0.256 0 0 -0.214 1.299 0 0 3.484 3.201 0 0 -3.484 3.201 0 0 0.214 1.299 0.549 0.404 0 -0.371 0.414 -4.207 0 0.940 1.629 7.402 0 -0.940 -1.092 -3.599 0 0.371 -0.549 0.404 0 0.371 -0.414 -4.207 0 -0.940 -1.629 7.402 0 0.940 1.092 -3.599 0 -0.371 0 0.000 0.000 24.000 0 0.000 0.000 -60.000 0 0 0 0 -15.000 9.000 0 0 0 -18.000 0 0 30.000 0.000 0.000 0
+DEAL:BDM3-Transform1::value
+DEAL:BDM3-Transform1::gradient
+DEAL:BDM3-Transform1::value 6 -1.000 0.000 0 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.527 0 0.814 0 -0.401 0 0.114 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform1::gradient 6 -1.000 0.000 -0.371 0 2.156 0.070 0.940 0 -7.417 -2.012 -0.940 0 13.807 -2.793 0.371 0 -8.546 -4.266 0.371 0 0 1.582 -0.940 0 0 2.051 0.940 0 0 -1.159 -0.371 0 0 0.527 -0.527 0 0 0.371 1.159 0 0 -0.940 -2.051 0 0 0.940 -1.582 0 0 -0.371 4.266 8.546 0 -0.371 2.793 -13.807 0 0.940 2.012 7.417 0 -0.940 -0.070 -2.156 0 0.371 0 0 0 18.000 0 0.000 0.000 -60.000 0 0.000 0.000 36.000 6.000 0 0 0 36.000 0.000 0.000 0 -60.000 0.000 0.000 0
+DEAL:BDM3-Transform1::value 7 -1.000 0.500 0 0.150 0 0.205 0 -0.901 0 0.296 0 0.150 0 0.205 0 -0.901 0 0.296 0 -0.023 0 0.059 0 -0.059 0 0.023 0.092 0.023 -0.592 -0.059 -0.592 0.059 0.092 -0.023 0 -3.000 0 0 0 9.000 0 0 0 0 0 0
+DEAL:BDM3-Transform1::gradient 7 -1.000 0.500 -0.371 0 0.404 0.549 0.940 0 -4.207 0.414 -0.940 0 7.402 1.629 0.371 0 -3.599 -1.092 0.371 0 0.404 -0.549 -0.940 0 -4.207 -0.414 0.940 0 7.402 -1.629 -0.371 0 -3.599 1.092 -0.256 0 0 0 -1.244 0 0 0 -1.244 0 0 0 -0.256 0 0 0 1.299 -0.214 0 0 3.201 3.484 0 0 3.201 -3.484 0 0 1.299 0.214 0 0 0 0 9.000 -15.000 0 0.000 0.000 30.000 0 0 -18.000 0 24.000 0.000 0.000 0 0 0 0 0 -60.000 0.000 0.000 0
+DEAL:BDM3-Transform1::value 8 -1.000 1.000 0 0 0 0 0 0 0 0 0 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0.114 0 -0.401 0 0.814 0 -1.527 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform1::gradient 8 -1.000 1.000 -0.371 0 0 -1.582 0.940 0 0 -2.051 -0.940 0 0 1.159 0.371 0 0 -0.527 0.371 0 2.156 -0.070 -0.940 0 -7.417 2.012 0.940 0 13.807 2.793 -0.371 0 -8.546 4.266 -1.582 0 0 -0.371 -2.051 0 0 0.940 1.159 0 0 -0.940 -0.527 0 0 0.371 -0.070 2.156 0 0.371 2.012 -7.417 0 -0.940 2.793 13.807 0 0.940 4.266 -8.546 0 -0.371 0 0.000 0.000 42.000 0 0.000 0.000 -60.000 0 0.000 0.000 -36.000 42.000 0.000 0.000 0 -36.000 0.000 0.000 0 -60.000 0.000 0.000 0
+DEAL:BDM3-Transform1::value
+DEAL:BDM3-Transform1::gradient
+DEAL:BDM3-Transform1::
+DEAL:BDM3-Transform2::value 0 0.000 0.000 0 0.763 0 -0.407 0 0.200 0 -0.057 0 0 0 0 0 0 0 0 -0.763 0 0.407 0 -0.200 0 0.057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform2::gradient 0 0.000 0.000 0.093 0 2.137 -1.067 -0.235 0 -3.452 -0.698 0.235 0 1.854 -0.503 -0.093 0 -0.539 0.018 -0.093 0 0 0.132 0.235 0 0 -0.290 -0.235 0 0 0.513 0.093 0 0 0.395 -1.067 2.137 0 0.093 -0.698 -3.452 0 -0.235 -0.503 1.854 0 0.235 0.018 -0.539 0 -0.093 0.132 0 0 -0.093 -0.290 0 0 0.235 0.513 0 0 -0.235 0.395 0 0 0.093 0 0 0 13.500 0 0 0 -15.000 0 0 0 -9.000 13.500 0 0 0 -9.000 0 0 0 -15.000 0 0 0
+DEAL:BDM3-Transform2::value 1 0.000 1.000 0 0.148 0 -0.450 0 0.103 0 0.075 0 0.148 0 -0.450 0 0.103 0 0.075 0.046 -0.012 -0.296 0.029 -0.296 -0.029 0.046 0.012 0 0.012 0 -0.029 0 0.029 0 -0.012 0 3.000 0 0 0 -4.500 0 0 0 0 0 0
+DEAL:BDM3-Transform2::gradient 1 0.000 1.000 0.093 0 0.900 -0.273 -0.235 0 -1.851 0.407 0.235 0 1.052 0.104 -0.093 0 -0.101 0.137 -0.093 0 0.900 0.273 0.235 0 -1.851 -0.407 -0.235 0 1.052 -0.104 0.093 0 -0.101 -0.137 -0.325 -0.054 0 0 -0.800 0.871 0 0 -0.800 -0.871 0 0 -0.325 0.054 0 0 0.064 0 0 0 0.311 0 0 0 0.311 0 0 0 0.064 0 0 0 0 0 2.250 -3.750 0 0 0 7.500 0 0 -4.500 0 9.000 0 0 0 0 0 0 0 -15.000 0 0 0
+DEAL:BDM3-Transform2::value 2 0.000 2.000 0 0 0 0 0 0 0 0 0 0.763 0 -0.407 0 0.200 0 -0.057 0.057 0 -0.200 0 0.407 0 -0.763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform2::gradient 2 0.000 2.000 0.093 0 0 -0.132 -0.235 0 0 0.290 0.235 0 0 -0.513 -0.093 0 0 -0.395 -0.093 0 2.137 1.067 0.235 0 -3.452 0.698 -0.235 0 1.854 0.503 0.093 0 -0.539 -0.018 0.018 0.539 0 -0.093 -0.503 -1.854 0 0.235 -0.698 3.452 0 -0.235 -1.067 -2.137 0 0.093 0.395 0 0 0.093 0.513 0 0 -0.235 -0.290 0 0 0.235 0.132 0 0 -0.093 0 0 0 1.500 0 0 0 -15.000 0 0 0 9.000 4.500 0 0 0 9.000 0 0 0 -15.000 0 0 0
+DEAL:BDM3-Transform2::value
+DEAL:BDM3-Transform2::gradient
+DEAL:BDM3-Transform2::value 3 -1.000 0.000 0.012 -0.046 -0.029 0.296 0.029 0.296 -0.012 -0.046 -0.012 0 0.029 0 -0.029 0 0.012 0 -0.148 0 0.450 0 -0.103 0 -0.075 0 -0.148 0 0.450 0 -0.103 0 -0.075 0 0 0 0 0 0 0 -3.000 0 4.500 0 0 0
+DEAL:BDM3-Transform2::gradient 3 -1.000 0.000 0 0 -0.054 -0.325 0 0 0.871 -0.800 0 0 -0.871 -0.800 0 0 0.054 -0.325 0 0 0 0.064 0 0 0 0.311 0 0 0 0.311 0 0 0 0.064 -0.273 0.900 0 0.093 0.407 -1.851 0 -0.235 0.104 1.052 0 0.235 0.137 -0.101 0 -0.093 0.273 0.900 0 -0.093 -0.407 -1.851 0 0.235 -0.104 1.052 0 -0.235 -0.137 -0.101 0 0.093 0 0 0 9.000 0 0 0 -15.000 0 0 0 0 -3.750 2.250 0 0 0 -4.500 0 0 7.500 0 0 0
+DEAL:BDM3-Transform2::value 4 -1.000 1.000 0.012 -0.088 -0.029 0.026 0.029 0.026 -0.012 -0.088 -0.012 -0.088 0.029 0.026 -0.029 0.026 0.012 -0.088 0.088 -0.012 -0.026 0.029 -0.026 -0.029 0.088 0.012 0.088 0.012 -0.026 -0.029 -0.026 0.029 0.088 -0.012 0 0.750 0 0 0 0 -0.750 0 0 0 0 0
+DEAL:BDM3-Transform2::gradient 4 -1.000 1.000 0 0 -0.195 0.132 0 0 0.311 0.056 0 0 -0.311 0.056 0 0 0.195 0.132 0 0 -0.195 -0.132 0 0 0.311 -0.056 0 0 -0.311 -0.056 0 0 0.195 -0.132 0.132 -0.195 0 0 0.056 0.311 0 0 0.056 -0.311 0 0 0.132 0.195 0 0 -0.132 -0.195 0 0 -0.056 0.311 0 0 -0.056 -0.311 0 0 -0.132 0.195 0 0 0 0 2.250 -3.750 0 0 0 7.500 0 0 -4.500 0 -3.750 2.250 0 0 0 -4.500 0 0 7.500 0 0 0
+DEAL:BDM3-Transform2::value 5 -1.000 2.000 0.012 0 -0.029 0 0.029 0 -0.012 0 -0.012 -0.046 0.029 0.296 -0.029 0.296 0.012 -0.046 -0.075 0 -0.103 0 0.450 0 -0.148 0 -0.075 0 -0.103 0 0.450 0 -0.148 0 0 0 0 0 0 0 1.500 0 -4.500 0 0 0
+DEAL:BDM3-Transform2::gradient 5 -1.000 2.000 0 0 0 -0.064 0 0 0 -0.311 0 0 0 -0.311 0 0 0 -0.064 0 0 -0.054 0.325 0 0 0.871 0.800 0 0 -0.871 0.800 0 0 0.054 0.325 0.137 0.101 0 -0.093 0.104 -1.052 0 0.235 0.407 1.851 0 -0.235 -0.273 -0.900 0 0.093 -0.137 0.101 0 0.093 -0.104 -1.052 0 -0.235 -0.407 1.851 0 0.235 0.273 -0.900 0 -0.093 0 0 0 6.000 0 0 0 -15.000 0 0 0 0 -3.750 2.250 0 0 0 -4.500 0 0 7.500 0 0 0
+DEAL:BDM3-Transform2::value
+DEAL:BDM3-Transform2::gradient
+DEAL:BDM3-Transform2::value 6 -2.000 0.000 0 -0.057 0 0.200 0 -0.407 0 0.763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.763 0 0.407 0 -0.200 0 0.057 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform2::gradient 6 -2.000 0.000 -0.093 0 0.539 0.018 0.235 0 -1.854 -0.503 -0.235 0 3.452 -0.698 0.093 0 -2.137 -1.067 0.093 0 0 0.395 -0.235 0 0 0.513 0.235 0 0 -0.290 -0.093 0 0 0.132 -0.132 0 0 0.093 0.290 0 0 -0.235 -0.513 0 0 0.235 -0.395 0 0 -0.093 1.067 2.137 0 -0.093 0.698 -3.452 0 0.235 0.503 1.854 0 -0.235 -0.018 -0.539 0 0.093 0 0 0 4.500 0 0 0 -15.000 0 0 0 9.000 1.500 0 0 0 9.000 0 0 0 -15.000 0 0 0
+DEAL:BDM3-Transform2::value 7 -2.000 1.000 0 0.075 0 0.103 0 -0.450 0 0.148 0 0.075 0 0.103 0 -0.450 0 0.148 0 -0.012 0 0.029 0 -0.029 0 0.012 0.046 0.012 -0.296 -0.029 -0.296 0.029 0.046 -0.012 0 -1.500 0 0 0 4.500 0 0 0 0 0 0
+DEAL:BDM3-Transform2::gradient 7 -2.000 1.000 -0.093 0 0.101 0.137 0.235 0 -1.052 0.104 -0.235 0 1.851 0.407 0.093 0 -0.900 -0.273 0.093 0 0.101 -0.137 -0.235 0 -1.052 -0.104 0.235 0 1.851 -0.407 -0.093 0 -0.900 0.273 -0.064 0 0 0 -0.311 0 0 0 -0.311 0 0 0 -0.064 0 0 0 0.325 -0.054 0 0 0.800 0.871 0 0 0.800 -0.871 0 0 0.325 0.054 0 0 0 0 2.250 -3.750 0 0 0 7.500 0 0 -4.500 0 6.000 0 0 0 0 0 0 0 -15.000 0 0 0
+DEAL:BDM3-Transform2::value 8 -2.000 2.000 0 0 0 0 0 0 0 0 0 -0.057 0 0.200 0 -0.407 0 0.763 0 0 0 0 0 0 0 0 0.057 0 -0.200 0 0.407 0 -0.763 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform2::gradient 8 -2.000 2.000 -0.093 0 0 -0.395 0.235 0 0 -0.513 -0.235 0 0 0.290 0.093 0 0 -0.132 0.093 0 0.539 -0.018 -0.235 0 -1.854 0.503 0.235 0 3.452 0.698 -0.093 0 -2.137 1.067 -0.395 0 0 -0.093 -0.513 0 0 0.235 0.290 0 0 -0.235 -0.132 0 0 0.093 -0.018 0.539 0 0.093 0.503 -1.854 0 -0.235 0.698 3.452 0 0.235 1.067 -2.137 0 -0.093 0 0 0 10.500 0 0 0 -15.000 0 0 0 -9.000 10.500 0 0 0 -9.000 0 0 0 -15.000 0 0 0
+DEAL:BDM3-Transform2::value
+DEAL:BDM3-Transform2::gradient
+DEAL:BDM3-Transform2::
+DEAL:BDM3-Transform3::value 0 0.000 0.000 1.527 0 -0.814 0 0.401 0 -0.114 0 0 0 0 0 0 0 0 0 0 0.763 0 -0.407 0 0.200 0 -0.057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform3::gradient 0 0.000 0.000 -2.133 -8.546 0 0.186 -1.396 13.807 0 -0.470 -1.006 -7.417 0 0.470 0.035 2.156 0 -0.186 0.263 0 0 -0.186 -0.580 0 0 0.470 1.025 0 0 -0.470 0.791 0 0 0.186 0.186 0 -2.137 -2.133 -0.470 0 3.452 -1.396 0.470 0 -1.854 -1.006 -0.186 0 0.539 0.035 -0.186 0 0 0.263 0.470 0 0 -0.580 -0.470 0 0 1.025 0.186 0 0 0.791 27.000 0 0 0 -30.000 0 0 0 -18.000 0 0 0 0 0 0 27.000 0 0 0 -18.000 0 0 0 -30.000
+DEAL:BDM3-Transform3::value 1 1.000 0.000 0.296 0 -0.901 0 0.205 0 0.150 0 0.296 0 -0.901 0 0.205 0 0.150 0 -0.023 -0.046 0.059 0.296 -0.059 0.296 0.023 -0.046 0.023 0 -0.059 0 0.059 0 -0.023 0 6.000 0 0 0 -9.000 0 0 0 0 0 0 0
+DEAL:BDM3-Transform3::gradient 1 1.000 0.000 -0.546 -3.599 0 0.186 0.814 7.402 0 -0.470 0.207 -4.207 0 0.470 0.274 0.404 0 -0.186 0.546 -3.599 0 -0.186 -0.814 7.402 0 0.470 -0.207 -4.207 0 -0.470 -0.274 0.404 0 0.186 0 0 0.054 -0.650 0 0 -0.871 -1.600 0 0 0.871 -1.600 0 0 -0.054 -0.650 0 0 0 0.128 0 0 0 0.622 0 0 0 0.622 0 0 0 0.128 -7.500 -9.000 0 0 15.000 0 0 0 0 18.000 0 0 0 0 0 18.000 0 0 0 0 0 0 0 -30.000
+DEAL:BDM3-Transform3::value 2 2.000 0.000 0 0 0 0 0 0 0 0 1.527 0 -0.814 0 0.401 0 -0.114 0 0 -0.057 0 0.200 0 -0.407 0 0.763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform3::gradient 2 2.000 0.000 -0.263 0 0 0.186 0.580 0 0 -0.470 -1.025 0 0 0.470 -0.791 0 0 -0.186 2.133 -8.546 0 -0.186 1.396 13.807 0 0.470 1.006 -7.417 0 -0.470 -0.035 2.156 0 0.186 -0.186 0 -0.539 0.035 0.470 0 1.854 -1.006 -0.470 0 -3.452 -1.396 0.186 0 2.137 -2.133 0.186 0 0 0.791 -0.470 0 0 1.025 0.470 0 0 -0.580 -0.186 0 0 0.263 3.000 0 0 0 -30.000 0 0 0 18.000 0 0 0 0 0 0 9.000 0 0 0 18.000 0 0 0 -30.000
+DEAL:BDM3-Transform3::value
+DEAL:BDM3-Transform3::gradient
+DEAL:BDM3-Transform3::value 3 0.000 0.500 -0.092 -0.012 0.592 0.029 0.592 -0.029 -0.092 0.012 0 0.012 0 -0.029 0 0.029 0 -0.012 0 0.148 0 -0.450 0 0.103 0 0.075 0 0.148 0 -0.450 0 0.103 0 0.075 0 0 0 0 0 0 0 3.000 0 -4.500 0 0
+DEAL:BDM3-Transform3::gradient 3 0.000 0.500 -0.650 0.214 0 0 -1.600 -3.484 0 0 -1.600 3.484 0 0 -0.650 -0.214 0 0 0.128 0 0 0 0.622 0 0 0 0.622 0 0 0 0.128 0 0 0 0.186 0 -0.900 -0.546 -0.470 0 1.851 0.814 0.470 0 -1.052 0.207 -0.186 0 0.101 0.274 -0.186 0 -0.900 0.546 0.470 0 1.851 -0.814 -0.470 0 -1.052 -0.207 0.186 0 0.101 -0.274 18.000 0 0 0 -30.000 0 0 0 0 0 0 0 0 0 -2.250 -7.500 0 0 4.500 0 0 0 0 15.000
+DEAL:BDM3-Transform3::value 4 1.000 0.500 -0.177 -0.012 0.052 0.029 0.052 -0.029 -0.177 0.012 -0.177 0.012 0.052 -0.029 0.052 0.029 -0.177 -0.012 -0.023 -0.088 0.059 0.026 -0.059 0.026 0.023 -0.088 0.023 -0.088 -0.059 0.026 0.059 0.026 -0.023 -0.088 1.500 0 0 0 0 0 0 0.750 0 0 0 0
+DEAL:BDM3-Transform3::gradient 4 1.000 0.500 0.264 0.781 0 0 0.111 -1.243 0 0 0.111 1.243 0 0 0.264 -0.781 0 0 -0.264 0.781 0 0 -0.111 -1.243 0 0 -0.111 1.243 0 0 -0.264 -0.781 0 0 0 0 0.195 0.264 0 0 -0.311 0.111 0 0 0.311 0.111 0 0 -0.195 0.264 0 0 0.195 -0.264 0 0 -0.311 -0.111 0 0 0.311 -0.111 0 0 -0.195 -0.264 -7.500 -9.000 0 0 15.000 0 0 0 0 18.000 0 0 0 0 -2.250 -7.500 0 0 4.500 0 0 0 0 15.000
+DEAL:BDM3-Transform3::value 5 2.000 0.500 0 -0.012 0 0.029 0 -0.029 0 0.012 -0.092 0.012 0.592 -0.029 0.592 0.029 -0.092 -0.012 0 0.075 0 0.103 0 -0.450 0 0.148 0 0.075 0 0.103 0 -0.450 0 0.148 0 0 0 0 0 0 0 -1.500 0 4.500 0 0
+DEAL:BDM3-Transform3::gradient 5 2.000 0.500 -0.128 0 0 0 -0.622 0 0 0 -0.622 0 0 0 -0.128 0 0 0 0.650 0.214 0 0 1.600 -3.484 0 0 1.600 3.484 0 0 0.650 -0.214 0 0 -0.186 0 -0.101 0.274 0.470 0 1.052 0.207 -0.470 0 -1.851 0.814 0.186 0 0.900 -0.546 0.186 0 -0.101 -0.274 -0.470 0 1.052 -0.207 0.470 0 -1.851 -0.814 -0.186 0 0.900 0.546 12.000 0 0 0 -30.000 0 0 0 0 0 0 0 0 0 -2.250 -7.500 0 0 4.500 0 0 0 0 15.000
+DEAL:BDM3-Transform3::value
+DEAL:BDM3-Transform3::gradient
+DEAL:BDM3-Transform3::value 6 0.000 1.000 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.763 0 -0.407 0 0.200 0 -0.057 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform3::gradient 6 0.000 1.000 0.035 -2.156 0 -0.186 -1.006 7.417 0 0.470 -1.396 -13.807 0 -0.470 -2.133 8.546 0 0.186 0.791 0 0 0.186 1.025 0 0 -0.470 -0.580 0 0 0.470 0.263 0 0 -0.186 0.186 0 0 -0.263 -0.470 0 0 0.580 0.470 0 0 -1.025 -0.186 0 0 -0.791 -0.186 0 -2.137 2.133 0.470 0 3.452 1.396 -0.470 0 -1.854 1.006 0.186 0 0.539 -0.035 9.000 0 0 0 -30.000 0 0 0 18.000 0 0 0 0 0 0 3.000 0 0 0 18.000 0 0 0 -30.000
+DEAL:BDM3-Transform3::value 7 1.000 1.000 0.150 0 0.205 0 -0.901 0 0.296 0 0.150 0 0.205 0 -0.901 0 0.296 0 -0.023 0 0.059 0 -0.059 0 0.023 0 0.023 -0.046 -0.059 0.296 0.059 0.296 -0.023 -0.046 -3.000 0 0 0 9.000 0 0 0 0 0 0 0
+DEAL:BDM3-Transform3::gradient 7 1.000 1.000 0.274 -0.404 0 -0.186 0.207 4.207 0 0.470 0.814 -7.402 0 -0.470 -0.546 3.599 0 0.186 -0.274 -0.404 0 0.186 -0.207 4.207 0 -0.470 -0.814 -7.402 0 0.470 0.546 3.599 0 -0.186 0 0 0 -0.128 0 0 0 -0.622 0 0 0 -0.622 0 0 0 -0.128 0 0 0.054 0.650 0 0 -0.871 1.600 0 0 0.871 1.600 0 0 -0.054 0.650 -7.500 -9.000 0 0 15.000 0 0 0 0 18.000 0 0 0 0 0 12.000 0 0 0 0 0 0 0 -30.000
+DEAL:BDM3-Transform3::value 8 2.000 1.000 0 0 0 0 0 0 0 0 -0.114 0 0.401 0 -0.814 0 1.527 0 0 0 0 0 0 0 0 0 0 -0.057 0 0.200 0 -0.407 0 0.763 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL:BDM3-Transform3::gradient 8 2.000 1.000 -0.791 0 0 -0.186 -1.025 0 0 0.470 0.580 0 0 -0.470 -0.263 0 0 0.186 -0.035 -2.156 0 0.186 1.006 7.417 0 -0.470 1.396 -13.807 0 0.470 2.133 8.546 0 -0.186 -0.186 0 0 -0.791 0.470 0 0 -1.025 -0.470 0 0 0.580 0.186 0 0 -0.263 0.186 0 -0.539 -0.035 -0.470 0 1.854 1.006 0.470 0 -3.452 1.396 -0.186 0 2.137 2.133 21.000 0 0 0 -30.000 0 0 0 -18.000 0 0 0 0 0 0 21.000 0 0 0 -18.000 0 0 0 -30.000
+DEAL:BDM3-Transform3::value
+DEAL:BDM3-Transform3::gradient
+DEAL:BDM3-Transform3::
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+
+// Just output the constraint matrices of the RT element
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/fe/fe_bdm.h>
+
+#include <fstream>
+#include <string>
+
+#define PRECISION 4
+
+
+
+template<int dim>
+void
+test(const unsigned int degree)
+{
+ deallog << "FE_BDM<" << dim << "> (" << degree << ")"
+ << std::endl;
+
+ FE_BDM<dim> fe_rt(degree);
+ const FullMatrix<double> &constraints = fe_rt.constraints();
+
+ for (unsigned int i=0; i<constraints.m(); ++i)
+ {
+ for (unsigned int j=0; j<constraints.n(); ++j)
+ deallog << constraints(i,j) << ' ';
+ deallog << std::endl;
+ }
+
+ deallog << std::endl;
+}
+
+
+int
+main()
+{
+ std::ofstream logfile ("output");
+ deallog << std::setprecision(PRECISION);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ for (unsigned int degree=1; degree<4; ++degree)
+ test<2>(degree);
+
+ return 0;
+}
+
+
+
--- /dev/null
+
+DEAL::FE_BDM<2> (1)
+DEAL::0.5915 -0.0915
+DEAL::0.3415 0.1585
+DEAL::0.1585 0.3415
+DEAL::-0.0915 0.5915
+DEAL::
+DEAL::FE_BDM<2> (2)
+DEAL::0.6144 -0.1561 0.0417
+DEAL::0.2655 0.2917 -0.0572
+DEAL::0.0417 0.4894 -0.0311
+DEAL::-0.0311 0.4894 0.0417
+DEAL::-0.0572 0.2917 0.2655
+DEAL::0.0417 -0.1561 0.6144
+DEAL::
+DEAL::FE_BDM<2> (3)
+DEAL::0.6235 -0.1857 0.0863 -0.0242
+DEAL::0.2367 0.3472 -0.1135 0.0295
+DEAL::-0.0037 0.4979 0.0074 -0.0016
+DEAL::-0.0478 0.3543 0.2341 -0.0407
+DEAL::-0.0407 0.2341 0.3543 -0.0478
+DEAL::-0.0016 0.0074 0.4979 -0.0037
+DEAL::0.0295 -0.1135 0.3472 0.2367
+DEAL::-0.0242 0.0863 -0.1857 0.6235
+DEAL::
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+
+// Just output the restriction matrices of the BDM element
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/fe/fe_bdm.h>
+
+#include <fstream>
+#include <string>
+
+#define PRECISION 8
+
+
+
+template<int dim>
+void
+test(const unsigned int degree)
+{
+ deallog << "FE_BDM<" << dim << "> (" << degree << ")"
+ << std::endl;
+
+ FE_BDM<dim> fe_rt(degree);
+
+ for (unsigned int c=0; c<GeometryInfo<dim>::max_children_per_cell; ++c)
+ {
+ const FullMatrix<double> &m = fe_rt.get_restriction_matrix(c);
+
+ for (unsigned int i=0; i<m.m(); ++i)
+ {
+ for (unsigned int j=0; j<m.n(); ++j)
+ deallog << m(i,j) << ' ';
+ deallog << std::endl;
+ }
+
+ deallog << std::endl;
+ }
+}
+
+
+int
+main()
+{
+ std::ofstream logfile ("output");
+ deallog << std::setprecision(PRECISION);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ for (unsigned int degree=1; degree<4; ++degree)
+ {
+ test<2>(degree);
+// test<3>(degree);
+ }
+
+ return 0;
+}
--- /dev/null
+
+DEAL::FE_BDM<2> (1)
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0
+DEAL::
+DEAL::FE_BDM<2> (2)
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::
+DEAL::FE_BDM<2> (3)
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+// build a mass matrix for the RT element and try to invert it. we had trouble
+// with this at one time
+
+#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/lac/solver_cg.h>
+#include <deal.II/lac/precondition.h>
+#include <deal.II/lac/vector_memory.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/fe_bdm.h>
+#include <deal.II/fe/fe_values.h>
+
+#include <vector>
+#include <fstream>
+#include <string>
+
+#define PRECISION 5
+
+
+std::ofstream logfile ("output");
+
+template<int dim>
+void
+test (const unsigned int degree)
+{
+ FE_BDM<dim> fe_rt(degree);
+ Triangulation<dim> tr;
+ GridGenerator::hyper_cube(tr, 0., 1.);
+
+ DoFHandler<dim> dof(tr);
+ typename DoFHandler<dim>::cell_iterator c = dof.begin();
+ dof.distribute_dofs(fe_rt);
+
+ QTrapez<1> q_trapez;
+ const unsigned int div=4;
+ QIterated<dim> q(q_trapez, div);
+ FEValues<dim> fe(fe_rt, q, update_values|update_JxW_values);
+ fe.reinit(c);
+
+ const unsigned int dofs_per_cell = fe_rt.dofs_per_cell;
+ FullMatrix<double> mass_matrix (dofs_per_cell, dofs_per_cell);
+
+ Assert (fe.get_fe().n_components() == dim, ExcInternalError());
+
+
+ for (unsigned int q_point=0; q_point<q.size(); ++q_point)
+ for (unsigned int i=0; i<dofs_per_cell; ++i)
+ for (unsigned int j=0; j<dofs_per_cell; ++j)
+ for (unsigned int d=0; d<dim; ++d)
+ mass_matrix(i,j)
+ += (fe.shape_value_component(i,q_point,d) *
+ fe.shape_value_component(j,q_point,d) *
+ fe.JxW(q_point));
+ for (unsigned int i=0; i<dofs_per_cell; ++i)
+ for (unsigned int j=0; j<dofs_per_cell; ++j)
+ if (std::fabs(mass_matrix(i,j)) < 1e-14)
+ mass_matrix(i,j) = 0;
+ mass_matrix.print_formatted (logfile, 3, false, 0, " ", 1);
+
+ SolverControl solver_control (dofs_per_cell,
+ 1e-8);
+ PrimitiveVectorMemory<> vector_memory;
+ SolverCG<> cg (solver_control, vector_memory);
+
+ Vector<double> tmp1(dofs_per_cell), tmp2(dofs_per_cell);
+ for (unsigned int i=0; i<dofs_per_cell; ++i)
+ tmp1(i) = 1.*Testing::rand()/RAND_MAX;
+ cg.solve (mass_matrix, tmp2, tmp1, PreconditionIdentity());
+
+ deallog << "Degree=" << degree
+ << ": " << solver_control.last_step()
+ << " iterations to obtain convergence."
+ << std::endl;
+}
+
+
+int
+main()
+{
+ deallog << std::setprecision(PRECISION);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ for (unsigned int i=1; i<4; ++i)
+ test<2>(i);
+
+ return 0;
+}
+
+
+
--- /dev/null
+
+0.208 -0.036 0.058 0.020 0.068 0.068
+-0.036 0.208 0.020 0.058 -0.068 -0.068
+0.058 0.020 0.208 -0.036 -0.068 -0.068
+0.020 0.058 -0.036 0.208 0.068 0.068
+0.068 0.068 0.208 -0.036 0.058 0.020
+ -0.068 -0.068 -0.036 0.208 0.020 0.058
+ -0.068 -0.068 0.058 0.020 0.208 -0.036
+0.068 0.068 0.020 0.058 -0.036 0.208
+DEAL:cg::Starting value 1.91960
+DEAL:cg::Convergence step 4 value 0
+DEAL::Degree=1: 4 iterations to obtain convergence.
+0.105 -0.050 -0.003 0.036 -0.030 -0.013 0.004 -0.002 0.004 -0.004 0.002 -0.004 -0.020
+-0.050 0.169 -0.050 -0.030 0.058 -0.030 -0.002 -0.010 -0.002 0.002 0.010 0.002 -0.090
+-0.003 -0.050 0.105 -0.013 -0.030 0.036 0.004 -0.002 0.004 -0.004 0.002 -0.004 -0.020
+0.036 -0.030 -0.013 0.105 -0.050 -0.003 -0.004 0.002 -0.004 0.004 -0.002 0.004 -0.020
+-0.030 0.058 -0.030 -0.050 0.169 -0.050 0.002 0.010 0.002 -0.002 -0.010 -0.002 -0.090
+-0.013 -0.030 0.036 -0.003 -0.050 0.105 -0.004 0.002 -0.004 0.004 -0.002 0.004 -0.020
+0.004 -0.002 0.004 -0.004 0.002 -0.004 0.105 -0.050 -0.003 0.036 -0.030 -0.013 -0.020
+-0.002 -0.010 -0.002 0.002 0.010 0.002 -0.050 0.169 -0.050 -0.030 0.058 -0.030 -0.090
+0.004 -0.002 0.004 -0.004 0.002 -0.004 -0.003 -0.050 0.105 -0.013 -0.030 0.036 -0.020
+-0.004 0.002 -0.004 0.004 -0.002 0.004 0.036 -0.030 -0.013 0.105 -0.050 -0.003 -0.020
+0.002 0.010 0.002 -0.002 -0.010 -0.002 -0.030 0.058 -0.030 -0.050 0.169 -0.050 -0.090
+-0.004 0.002 -0.004 0.004 -0.002 0.004 -0.013 -0.030 0.036 -0.003 -0.050 0.105 -0.020
+-0.020 -0.090 -0.020 -0.020 -0.090 -0.020 1.195
+ -0.020 -0.090 -0.020 -0.020 -0.090 -0.020 1.195
+DEAL:cg::Starting value 2.12523
+DEAL:cg::Convergence step 9 value 0.00000
+DEAL::Degree=2: 9 iterations to obtain convergence.
+0.072 -0.058 0.015 0.002 0.016 -0.031 0.001 0.011 0.000 0.000 0.001 0.001 0.000 0.000 -0.040 0.084 -0.016 -0.006
+-0.058 0.151 -0.056 0.015 -0.031 0.067 -0.039 0.001 0.000 -0.002 -0.001 -0.001 -0.002 0.000 -0.404 0.224 0.468 0.016
+0.015 -0.056 0.151 -0.058 0.001 -0.039 0.067 -0.031 0.001 0.002 0.000 0.000 0.002 0.001 0.064 0.224 -0.468 -0.016
+0.002 0.015 -0.058 0.072 0.011 0.001 -0.031 0.016 -0.001 0.000 0.000 0.000 0.000 -0.001 -0.057 0.084 0.016 0.006
+0.016 -0.031 0.001 0.011 0.072 -0.058 0.015 0.002 -0.001 0.000 0.000 0.000 0.000 -0.001 0.043 -0.084 -0.016 0.006
+-0.031 0.067 -0.039 0.001 -0.058 0.151 -0.056 0.015 0.001 0.002 0.000 0.000 0.002 0.001 -0.180 -0.224 0.468 -0.016
+0.001 -0.039 0.067 -0.031 0.015 -0.056 0.151 -0.058 0.000 -0.002 -0.001 -0.001 -0.002 0.000 0.288 -0.224 -0.468 0.016
+0.011 0.001 -0.031 0.016 0.002 0.015 -0.058 0.072 0.000 0.000 0.001 0.001 0.000 0.000 0.027 -0.084 0.016 -0.006
+0.000 0.000 0.001 0.001 0.000 0.000 0.072 -0.058 0.015 0.002 0.016 -0.031 0.001 0.011 -0.006 -0.040 -0.016 0.084
+0.000 -0.002 -0.001 -0.001 -0.002 0.000 -0.058 0.151 -0.056 0.015 -0.031 0.067 -0.039 0.001 0.016 -0.404 0.468 0.224
+0.001 0.002 0.000 0.000 0.002 0.001 0.015 -0.056 0.151 -0.058 0.001 -0.039 0.067 -0.031 -0.016 0.064 -0.468 0.224
+ -0.001 0.000 0.000 0.000 0.000 -0.001 0.002 0.015 -0.058 0.072 0.011 0.001 -0.031 0.016 0.006 -0.057 0.016 0.084
+ -0.001 0.000 0.000 0.000 0.000 -0.001 0.016 -0.031 0.001 0.011 0.072 -0.058 0.015 0.002 0.006 0.043 -0.016 -0.084
+0.001 0.002 0.000 0.000 0.002 0.001 -0.031 0.067 -0.039 0.001 -0.058 0.151 -0.056 0.015 -0.016 -0.180 0.468 -0.224
+0.000 -0.002 -0.001 -0.001 -0.002 0.000 0.001 -0.039 0.067 -0.031 0.015 -0.056 0.151 -0.058 0.016 0.288 -0.468 -0.224
+0.000 0.000 0.001 0.001 0.000 0.000 0.011 0.001 -0.031 0.016 0.002 0.015 -0.058 0.072 -0.006 0.027 0.016 -0.084
+-0.040 -0.404 0.064 -0.057 0.043 -0.180 0.288 0.027 -0.006 0.016 -0.016 0.006 0.006 -0.016 0.016 -0.006 9.185 -7.910 -8.068
+0.084 0.224 0.224 0.084 -0.084 -0.224 -0.224 -0.084 -7.910 15.820
+-0.016 0.468 -0.468 0.016 -0.016 0.468 -0.468 0.016 -8.068 16.137
+-0.006 0.016 -0.016 0.006 0.006 -0.016 0.016 -0.006 -0.040 -0.404 0.064 -0.057 0.043 -0.180 0.288 0.027 9.185 -8.068 -7.910
+ -0.016 0.468 -0.468 0.016 -0.016 0.468 -0.468 0.016 -8.068 16.137
+ 0.084 0.224 0.224 0.084 -0.084 -0.224 -0.224 -0.084 -7.910 15.820
+DEAL:cg::Starting value 2.78069
+DEAL:cg::Convergence step 14 value 0.00000
+DEAL::Degree=3: 14 iterations to obtain convergence.
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+// build a mass matrix for the RT element and try to invert it. like the rt_8
+// test, except that we use a library function to build the mass matrix
+
+#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/lac/solver_cg.h>
+#include <deal.II/lac/precondition.h>
+#include <deal.II/lac/vector_memory.h>
+#include <deal.II/lac/sparse_matrix.h>
+#include <deal.II/lac/sparsity_pattern.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/fe_bdm.h>
+#include <deal.II/numerics/matrix_tools.h>
+
+#include <vector>
+#include <fstream>
+#include <string>
+
+#define PRECISION 2
+
+
+std::ofstream logfile ("output");
+
+template<int dim>
+void
+test (const unsigned int degree)
+{
+ FE_BDM<dim> fe_rt(degree);
+ Triangulation<dim> tr;
+ GridGenerator::hyper_cube(tr, 0., 1.);
+
+ DoFHandler<dim> dof(tr);
+ dof.distribute_dofs(fe_rt);
+
+ QTrapez<1> q_trapez;
+ const unsigned int div=4;
+ QIterated<dim> q(q_trapez, div);
+
+ const unsigned int dofs_per_cell = fe_rt.dofs_per_cell;
+ SparsityPattern sp (dofs_per_cell, dofs_per_cell, dofs_per_cell);
+ for (unsigned int i=0; i<dofs_per_cell; ++i)
+ for (unsigned int j=0; j<dofs_per_cell; ++j)
+ sp.add(i,j);
+ sp.compress ();
+ SparseMatrix<double> mass_matrix (sp);
+
+ MatrixTools::create_mass_matrix (dof, q, mass_matrix);
+
+ mass_matrix.print_formatted (logfile, 3, false, 0, " ", 1);
+
+ SolverControl solver_control (dofs_per_cell,
+ 1e-8);
+ PrimitiveVectorMemory<> vector_memory;
+ SolverCG<> cg (solver_control, vector_memory);
+
+ Vector<double> tmp1(dofs_per_cell), tmp2(dofs_per_cell);
+ for (unsigned int i=0; i<dofs_per_cell; ++i)
+ tmp1(i) = 1.*Testing::rand()/RAND_MAX;
+ cg.solve (mass_matrix, tmp2, tmp1, PreconditionIdentity());
+
+ deallog << "Degree=" << degree
+ << ": " << solver_control.last_step()
+ << " iterations to obtain convergence."
+ << std::endl;
+}
+
+
+int
+main()
+{
+ deallog << std::setprecision(PRECISION);
+ deallog << std::fixed;
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ for (unsigned int i=1; i<4; ++i)
+ test<2>(i);
+
+ return 0;
+}
+
+
+
--- /dev/null
+
+0.208 -0.036 0.058 0.020 0.068 0.000 0.000 0.068
+-0.036 0.208 0.020 0.058 0.000 -0.068 -0.068 0.000
+0.058 0.020 0.208 -0.036 0.000 -0.068 -0.068 0.000
+0.020 0.058 -0.036 0.208 0.068 0.000 0.000 0.068
+0.068 0.000 0.000 0.068 0.208 -0.036 0.058 0.020
+0.000 -0.068 -0.068 0.000 -0.036 0.208 0.020 0.058
+0.000 -0.068 -0.068 0.000 0.058 0.020 0.208 -0.036
+0.068 0.000 0.000 0.068 0.020 0.058 -0.036 0.208
+DEAL:cg::Starting value 1.92
+DEAL:cg::Convergence step 4 value 0
+DEAL::Degree=1: 4 iterations to obtain convergence.
+0.105 -0.050 -0.003 0.036 -0.030 -0.013 0.004 -0.002 0.004 -0.004 0.002 -0.004 -0.020 0.000
+-0.050 0.169 -0.050 -0.030 0.058 -0.030 -0.002 -0.010 -0.002 0.002 0.010 0.002 -0.090 0.000
+-0.003 -0.050 0.105 -0.013 -0.030 0.036 0.004 -0.002 0.004 -0.004 0.002 -0.004 -0.020 0.000
+0.036 -0.030 -0.013 0.105 -0.050 -0.003 -0.004 0.002 -0.004 0.004 -0.002 0.004 -0.020 0.000
+-0.030 0.058 -0.030 -0.050 0.169 -0.050 0.002 0.010 0.002 -0.002 -0.010 -0.002 -0.090 0.000
+-0.013 -0.030 0.036 -0.003 -0.050 0.105 -0.004 0.002 -0.004 0.004 -0.002 0.004 -0.020 0.000
+0.004 -0.002 0.004 -0.004 0.002 -0.004 0.105 -0.050 -0.003 0.036 -0.030 -0.013 0.000 -0.020
+-0.002 -0.010 -0.002 0.002 0.010 0.002 -0.050 0.169 -0.050 -0.030 0.058 -0.030 0.000 -0.090
+0.004 -0.002 0.004 -0.004 0.002 -0.004 -0.003 -0.050 0.105 -0.013 -0.030 0.036 0.000 -0.020
+-0.004 0.002 -0.004 0.004 -0.002 0.004 0.036 -0.030 -0.013 0.105 -0.050 -0.003 0.000 -0.020
+0.002 0.010 0.002 -0.002 -0.010 -0.002 -0.030 0.058 -0.030 -0.050 0.169 -0.050 0.000 -0.090
+-0.004 0.002 -0.004 0.004 -0.002 0.004 -0.013 -0.030 0.036 -0.003 -0.050 0.105 0.000 -0.020
+-0.020 -0.090 -0.020 -0.020 -0.090 -0.020 0.000 0.000 0.000 0.000 0.000 0.000 1.195 0.000
+0.000 0.000 0.000 0.000 0.000 0.000 -0.020 -0.090 -0.020 -0.020 -0.090 -0.020 0.000 1.195
+DEAL:cg::Starting value 2.13
+DEAL:cg::Convergence step 9 value 0.00
+DEAL::Degree=2: 9 iterations to obtain convergence.
+0.072 -0.058 0.015 0.002 0.016 -0.031 0.001 0.011 0.000 0.000 0.001 0.000 0.000 0.001 0.000 0.000 -0.040 0.084 -0.016 -0.006 0.000 0.000
+-0.058 0.151 -0.056 0.015 -0.031 0.067 -0.039 0.001 0.000 -0.002 0.000 -0.001 -0.001 0.000 -0.002 0.000 -0.404 0.224 0.468 0.016 0.000 0.000
+0.015 -0.056 0.151 -0.058 0.001 -0.039 0.067 -0.031 0.001 0.000 0.002 0.000 0.000 0.002 0.000 0.001 0.064 0.224 -0.468 -0.016 0.000 0.000
+0.002 0.015 -0.058 0.072 0.011 0.001 -0.031 0.016 0.000 -0.001 0.000 0.000 0.000 0.000 -0.001 0.000 -0.057 0.084 0.016 0.006 0.000 0.000
+0.016 -0.031 0.001 0.011 0.072 -0.058 0.015 0.002 0.000 -0.001 0.000 0.000 0.000 0.000 -0.001 0.000 0.043 -0.084 -0.016 0.006 0.000 0.000
+-0.031 0.067 -0.039 0.001 -0.058 0.151 -0.056 0.015 0.001 0.000 0.002 0.000 0.000 0.002 0.000 0.001 -0.180 -0.224 0.468 -0.016 0.000 0.000
+0.001 -0.039 0.067 -0.031 0.015 -0.056 0.151 -0.058 0.000 -0.002 0.000 -0.001 -0.001 0.000 -0.002 0.000 0.288 -0.224 -0.468 0.016 0.000 0.000
+0.011 0.001 -0.031 0.016 0.002 0.015 -0.058 0.072 0.000 0.000 0.001 0.000 0.000 0.001 0.000 0.000 0.027 -0.084 0.016 -0.006 0.000 0.000
+0.000 0.000 0.001 0.000 0.000 0.001 0.000 0.000 0.072 -0.058 0.015 0.002 0.016 -0.031 0.001 0.011 -0.006 0.000 0.000 -0.040 -0.016 0.084
+0.000 -0.002 0.000 -0.001 -0.001 0.000 -0.002 0.000 -0.058 0.151 -0.056 0.015 -0.031 0.067 -0.039 0.001 0.016 0.000 0.000 -0.404 0.468 0.224
+0.001 0.000 0.002 0.000 0.000 0.002 0.000 0.001 0.015 -0.056 0.151 -0.058 0.001 -0.039 0.067 -0.031 -0.016 0.000 0.000 0.064 -0.468 0.224
+0.000 -0.001 0.000 0.000 0.000 0.000 -0.001 0.000 0.002 0.015 -0.058 0.072 0.011 0.001 -0.031 0.016 0.006 0.000 0.000 -0.057 0.016 0.084
+0.000 -0.001 0.000 0.000 0.000 0.000 -0.001 0.000 0.016 -0.031 0.001 0.011 0.072 -0.058 0.015 0.002 0.006 0.000 0.000 0.043 -0.016 -0.084
+0.001 0.000 0.002 0.000 0.000 0.002 0.000 0.001 -0.031 0.067 -0.039 0.001 -0.058 0.151 -0.056 0.015 -0.016 0.000 0.000 -0.180 0.468 -0.224
+0.000 -0.002 0.000 -0.001 -0.001 0.000 -0.002 0.000 0.001 -0.039 0.067 -0.031 0.015 -0.056 0.151 -0.058 0.016 0.000 0.000 0.288 -0.468 -0.224
+0.000 0.000 0.001 0.000 0.000 0.001 0.000 0.000 0.011 0.001 -0.031 0.016 0.002 0.015 -0.058 0.072 -0.006 0.000 0.000 0.027 0.016 -0.084
+-0.040 -0.404 0.064 -0.057 0.043 -0.180 0.288 0.027 -0.006 0.016 -0.016 0.006 0.006 -0.016 0.016 -0.006 9.185 -7.910 -8.068 0.000 0.000 0.000
+0.084 0.224 0.224 0.084 -0.084 -0.224 -0.224 -0.084 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -7.910 15.820 0.000 0.000 0.000 0.000
+-0.016 0.468 -0.468 0.016 -0.016 0.468 -0.468 0.016 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -8.068 0.000 16.137 0.000 0.000 0.000
+-0.006 0.016 -0.016 0.006 0.006 -0.016 0.016 -0.006 -0.040 -0.404 0.064 -0.057 0.043 -0.180 0.288 0.027 0.000 0.000 0.000 9.185 -8.068 -7.910
+0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -0.016 0.468 -0.468 0.016 -0.016 0.468 -0.468 0.016 0.000 0.000 0.000 -8.068 16.137 0.000
+0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.084 0.224 0.224 0.084 -0.084 -0.224 -0.224 -0.084 0.000 0.000 0.000 -7.910 0.000 15.820
+DEAL:cg::Starting value 2.78
+DEAL:cg::Convergence step 14 value 0.00
+DEAL::Degree=3: 14 iterations to obtain convergence.
#include <deal.II/fe/fe_dgq.h>
#include <deal.II/fe/fe_dgp.h>
#include <deal.II/fe/fe_face.h>
+#include <deal.II/fe/fe_q_dg0.h>
#include <deal.II/fe/fe_q_hierarchical.h>
#include <deal.II/fe/fe_system.h>
#include <fstream>
template<int dim>
void print_constant_modes(const FiniteElement<dim> &fe)
{
- Table<2,bool> constant_modes = fe.get_constant_modes();
deallog << "Testing " << fe.get_name() << std::endl;
+ Table<2,bool> constant_modes = fe.get_constant_modes().first;
for (unsigned int r=0; r<constant_modes.n_rows(); ++r)
{
for (unsigned int c=0; c<constant_modes.n_cols(); ++c)
print_constant_modes(FE_FaceP<dim>(1));
print_constant_modes(FESystem<dim>(FE_Q<dim>(1), 2, FE_Q<dim>(2), 1));
print_constant_modes(FESystem<dim>(FE_DGP<dim>(1), 1, FE_Q_iso_Q1<dim>(2), 1));
+ print_constant_modes(FE_Q_DG0<dim>(1));
+ print_constant_modes(FESystem<dim>(FE_Q_DG0<dim>(2), 1, FE_Q<dim>(1), 2));
+ print_constant_modes(FESystem<dim>(FE_Q<dim>(1), 2, FE_Q_DG0<dim>(1), 2));
}
template <>
DEAL::0 0 0 0 0 0 0 0 1 0 0 0
DEAL::1 1 1 1 1 1 1 1 0 0 0 1
DEAL::
+DEAL::Testing FE_Q_DG0<2>(1)
+DEAL::1 1 1 1 0
+DEAL::0 0 0 0 1
+DEAL::
+DEAL::Testing FESystem<2>[FE_Q_DG0<2>(2)-FE_Q<2>(1)^2]
+DEAL::1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+DEAL::0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0
+DEAL::0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0
+DEAL::
+DEAL::Testing FESystem<2>[FE_Q<2>(1)^2-FE_Q_DG0<2>(1)^2]
+DEAL::1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0
+DEAL::0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0
+DEAL::0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
+DEAL::0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+DEAL::
DEAL::Testing FE_Q<3>(1)
DEAL::1 1 1 1 1 1 1 1
DEAL::
DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
DEAL::1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1
DEAL::
+DEAL::Testing FE_Q_DG0<3>(1)
+DEAL::1 1 1 1 1 1 1 1 0
+DEAL::0 0 0 0 0 0 0 0 1
+DEAL::
+DEAL::Testing FESystem<3>[FE_Q_DG0<3>(2)-FE_Q<3>(1)^2]
+DEAL::1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+DEAL::0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+DEAL::
+DEAL::Testing FESystem<3>[FE_Q<3>(1)^2-FE_Q_DG0<3>(1)^2]
+DEAL::1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0
+DEAL::0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0
+DEAL::0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
+DEAL::0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0
+DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+DEAL::
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: system_01.cc 31349 2013-10-20 19:07:06Z maier $
+//
+// Copyright (C) 2003 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+
+// test get_name()
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_dgq.h>
+#include <deal.II/fe/fe_dgp.h>
+#include <deal.II/fe/fe_system.h>
+#include <deal.II/fe/fe_tools.h>
+#include <deal.II/base/quadrature_lib.h>
+
+#include <fstream>
+#include <string>
+
+
+template <int dim>
+void test(const FiniteElement<dim> &fe)
+{
+ deallog << fe.get_name() << std::endl;
+
+}
+
+
+int
+main()
+{
+ initlog();
+
+ {
+ FE_Q<2> fe(1);
+ test(fe);
+ }
+ {
+ FE_Q<2> fe(QGaussLobatto<1>(4));
+ test(fe);
+ }
+ {
+ QGauss<1> quadrature_g(5);
+ FE_DGQArbitraryNodes<2> fe(quadrature_g);
+ test(fe);
+ }
+ {
+ QGaussLobatto<1> quadrature_gl(5);
+ FE_DGQArbitraryNodes<2> fe(quadrature_gl);
+ test(fe);
+ }
+ {
+ QGaussLog<1> quadrature(3);
+ FE_DGQArbitraryNodes<2> fe(quadrature);
+ test(fe);
+ }
+
+
+
+ return 0;
+}
+
+
+
--- /dev/null
+
+DEAL::FE_Q<2>(1)
+DEAL::FE_Q<2>(QGaussLobatto(4))
+DEAL::FE_DGQArbitraryNodes<2>(QUnknownNodes(4))
+DEAL::FE_DGQArbitraryNodes<2>(QGaussLobatto(5))
+DEAL::FE_DGQArbitraryNodes<2>(QUnknownNodes(2))
+++ /dev/null
-// ---------------------------------------------------------------------
-// $Id$
-//
-// Copyright (C) 2013 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.
-//
-// ---------------------------------------------------------------------
-
-#include "../tests.h"
-
-#include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_accessor.h>
-#include <deal.II/grid/tria_iterator.h>
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/tria_boundary_lib.h>
-#include <deal.II/grid/grid_out.h>
-
-#include <fstream>
-#include <cmath>
-
-using namespace dealii;
-
-
-template <int dim>
-void
-show_ordering(const Triangulation<dim> &tr)
-{
- for (typename Triangulation<dim>::cell_iterator cell = tr.begin(); cell != tr.end(); ++cell)
- for (typename Triangulation<dim>::cell_iterator other = tr.begin(); other != tr.end(); ++other)
- {
- deallog << (cell < other ? "less " : "not ");
- deallog << cell->level_subdomain_id() << ':' << other->level_subdomain_id() << ' ';
- if (cell->active())
- deallog << cell->subdomain_id();
- else
- deallog << 'X';
- deallog << ':';
- if (other->active())
- deallog << other->subdomain_id();
- else
- deallog << 'X';
- deallog << ' ';
- deallog << cell->level() << ':' << other->level() << ' ';
- deallog << cell->index() << ':' << other->index() << ' ';
- deallog << std::endl;
- }
-}
-
-template <int dim>
-void test1()
-{
- Triangulation<dim> tr;
- GridGenerator::hyper_ball(tr);
-
- typename Triangulation<dim>::active_cell_iterator cell = tr.begin_active();
- cell->set_subdomain_id(4);
- cell->set_level_subdomain_id(4);
- ++cell;
- cell->set_subdomain_id(3);
- cell->set_level_subdomain_id(5);
-
- tr.refine_global(1);
- cell = tr.begin_active();
- cell->set_level_subdomain_id(3);
- (++cell)->set_level_subdomain_id(4);
- (++cell)->set_level_subdomain_id(5);
- ++cell;
- (++cell)->set_level_subdomain_id(3);
- (++cell)->set_level_subdomain_id(4);
- (++cell)->set_level_subdomain_id(5);
-
- show_ordering(tr);
-}
-
-int main()
-{
- initlog();
-
- test1<2>();
- return 0;
-}
+++ /dev/null
-
-DEAL::not 4:4 X:X 0:0 0:0
-DEAL::less 4:5 X:X 0:0 0:1
-DEAL::not 4:0 X:X 0:0 0:2
-DEAL::not 4:0 X:X 0:0 0:3
-DEAL::not 4:0 X:X 0:0 0:4
-DEAL::not 4:3 X:4 0:1 0:0
-DEAL::less 4:4 X:4 0:1 0:1
-DEAL::less 4:5 X:4 0:1 0:2
-DEAL::not 4:0 X:4 0:1 0:3
-DEAL::not 4:3 X:3 0:1 0:4
-DEAL::less 4:4 X:3 0:1 0:5
-DEAL::less 4:5 X:3 0:1 0:6
-DEAL::not 4:0 X:3 0:1 0:7
-DEAL::not 4:0 X:0 0:1 0:8
-DEAL::not 4:0 X:0 0:1 0:9
-DEAL::not 4:0 X:0 0:1 0:10
-DEAL::not 4:0 X:0 0:1 0:11
-DEAL::not 4:0 X:0 0:1 0:12
-DEAL::not 4:0 X:0 0:1 0:13
-DEAL::not 4:0 X:0 0:1 0:14
-DEAL::not 4:0 X:0 0:1 0:15
-DEAL::not 4:0 X:0 0:1 0:16
-DEAL::not 4:0 X:0 0:1 0:17
-DEAL::not 4:0 X:0 0:1 0:18
-DEAL::not 4:0 X:0 0:1 0:19
-DEAL::not 5:4 X:X 0:0 1:0
-DEAL::not 5:5 X:X 0:0 1:1
-DEAL::not 5:0 X:X 0:0 1:2
-DEAL::not 5:0 X:X 0:0 1:3
-DEAL::not 5:0 X:X 0:0 1:4
-DEAL::not 5:3 X:4 0:1 1:0
-DEAL::not 5:4 X:4 0:1 1:1
-DEAL::less 5:5 X:4 0:1 1:2
-DEAL::not 5:0 X:4 0:1 1:3
-DEAL::not 5:3 X:3 0:1 1:4
-DEAL::not 5:4 X:3 0:1 1:5
-DEAL::less 5:5 X:3 0:1 1:6
-DEAL::not 5:0 X:3 0:1 1:7
-DEAL::not 5:0 X:0 0:1 1:8
-DEAL::not 5:0 X:0 0:1 1:9
-DEAL::not 5:0 X:0 0:1 1:10
-DEAL::not 5:0 X:0 0:1 1:11
-DEAL::not 5:0 X:0 0:1 1:12
-DEAL::not 5:0 X:0 0:1 1:13
-DEAL::not 5:0 X:0 0:1 1:14
-DEAL::not 5:0 X:0 0:1 1:15
-DEAL::not 5:0 X:0 0:1 1:16
-DEAL::not 5:0 X:0 0:1 1:17
-DEAL::not 5:0 X:0 0:1 1:18
-DEAL::not 5:0 X:0 0:1 1:19
-DEAL::less 0:4 X:X 0:0 2:0
-DEAL::less 0:5 X:X 0:0 2:1
-DEAL::not 0:0 X:X 0:0 2:2
-DEAL::less 0:0 X:X 0:0 2:3
-DEAL::less 0:0 X:X 0:0 2:4
-DEAL::less 0:3 X:4 0:1 2:0
-DEAL::less 0:4 X:4 0:1 2:1
-DEAL::less 0:5 X:4 0:1 2:2
-DEAL::less 0:0 X:4 0:1 2:3
-DEAL::less 0:3 X:3 0:1 2:4
-DEAL::less 0:4 X:3 0:1 2:5
-DEAL::less 0:5 X:3 0:1 2:6
-DEAL::less 0:0 X:3 0:1 2:7
-DEAL::less 0:0 X:0 0:1 2:8
-DEAL::less 0:0 X:0 0:1 2:9
-DEAL::less 0:0 X:0 0:1 2:10
-DEAL::less 0:0 X:0 0:1 2:11
-DEAL::less 0:0 X:0 0:1 2:12
-DEAL::less 0:0 X:0 0:1 2:13
-DEAL::less 0:0 X:0 0:1 2:14
-DEAL::less 0:0 X:0 0:1 2:15
-DEAL::less 0:0 X:0 0:1 2:16
-DEAL::less 0:0 X:0 0:1 2:17
-DEAL::less 0:0 X:0 0:1 2:18
-DEAL::less 0:0 X:0 0:1 2:19
-DEAL::less 0:4 X:X 0:0 3:0
-DEAL::less 0:5 X:X 0:0 3:1
-DEAL::not 0:0 X:X 0:0 3:2
-DEAL::not 0:0 X:X 0:0 3:3
-DEAL::less 0:0 X:X 0:0 3:4
-DEAL::less 0:3 X:4 0:1 3:0
-DEAL::less 0:4 X:4 0:1 3:1
-DEAL::less 0:5 X:4 0:1 3:2
-DEAL::less 0:0 X:4 0:1 3:3
-DEAL::less 0:3 X:3 0:1 3:4
-DEAL::less 0:4 X:3 0:1 3:5
-DEAL::less 0:5 X:3 0:1 3:6
-DEAL::less 0:0 X:3 0:1 3:7
-DEAL::less 0:0 X:0 0:1 3:8
-DEAL::less 0:0 X:0 0:1 3:9
-DEAL::less 0:0 X:0 0:1 3:10
-DEAL::less 0:0 X:0 0:1 3:11
-DEAL::less 0:0 X:0 0:1 3:12
-DEAL::less 0:0 X:0 0:1 3:13
-DEAL::less 0:0 X:0 0:1 3:14
-DEAL::less 0:0 X:0 0:1 3:15
-DEAL::less 0:0 X:0 0:1 3:16
-DEAL::less 0:0 X:0 0:1 3:17
-DEAL::less 0:0 X:0 0:1 3:18
-DEAL::less 0:0 X:0 0:1 3:19
-DEAL::less 0:4 X:X 0:0 4:0
-DEAL::less 0:5 X:X 0:0 4:1
-DEAL::not 0:0 X:X 0:0 4:2
-DEAL::not 0:0 X:X 0:0 4:3
-DEAL::not 0:0 X:X 0:0 4:4
-DEAL::less 0:3 X:4 0:1 4:0
-DEAL::less 0:4 X:4 0:1 4:1
-DEAL::less 0:5 X:4 0:1 4:2
-DEAL::less 0:0 X:4 0:1 4:3
-DEAL::less 0:3 X:3 0:1 4:4
-DEAL::less 0:4 X:3 0:1 4:5
-DEAL::less 0:5 X:3 0:1 4:6
-DEAL::less 0:0 X:3 0:1 4:7
-DEAL::less 0:0 X:0 0:1 4:8
-DEAL::less 0:0 X:0 0:1 4:9
-DEAL::less 0:0 X:0 0:1 4:10
-DEAL::less 0:0 X:0 0:1 4:11
-DEAL::less 0:0 X:0 0:1 4:12
-DEAL::less 0:0 X:0 0:1 4:13
-DEAL::less 0:0 X:0 0:1 4:14
-DEAL::less 0:0 X:0 0:1 4:15
-DEAL::less 0:0 X:0 0:1 4:16
-DEAL::less 0:0 X:0 0:1 4:17
-DEAL::less 0:0 X:0 0:1 4:18
-DEAL::less 0:0 X:0 0:1 4:19
-DEAL::less 3:4 4:X 1:0 0:0
-DEAL::less 3:5 4:X 1:0 0:1
-DEAL::not 3:0 4:X 1:0 0:2
-DEAL::not 3:0 4:X 1:0 0:3
-DEAL::not 3:0 4:X 1:0 0:4
-DEAL::not 3:3 4:4 1:1 0:0
-DEAL::less 3:4 4:4 1:1 0:1
-DEAL::less 3:5 4:4 1:1 0:2
-DEAL::not 3:0 4:4 1:1 0:3
-DEAL::not 3:3 4:3 1:1 0:4
-DEAL::less 3:4 4:3 1:1 0:5
-DEAL::less 3:5 4:3 1:1 0:6
-DEAL::not 3:0 4:3 1:1 0:7
-DEAL::not 3:0 4:0 1:1 0:8
-DEAL::not 3:0 4:0 1:1 0:9
-DEAL::not 3:0 4:0 1:1 0:10
-DEAL::not 3:0 4:0 1:1 0:11
-DEAL::not 3:0 4:0 1:1 0:12
-DEAL::not 3:0 4:0 1:1 0:13
-DEAL::not 3:0 4:0 1:1 0:14
-DEAL::not 3:0 4:0 1:1 0:15
-DEAL::not 3:0 4:0 1:1 0:16
-DEAL::not 3:0 4:0 1:1 0:17
-DEAL::not 3:0 4:0 1:1 0:18
-DEAL::not 3:0 4:0 1:1 0:19
-DEAL::not 4:4 4:X 1:0 1:0
-DEAL::less 4:5 4:X 1:0 1:1
-DEAL::not 4:0 4:X 1:0 1:2
-DEAL::not 4:0 4:X 1:0 1:3
-DEAL::not 4:0 4:X 1:0 1:4
-DEAL::not 4:3 4:4 1:1 1:0
-DEAL::not 4:4 4:4 1:1 1:1
-DEAL::less 4:5 4:4 1:1 1:2
-DEAL::not 4:0 4:4 1:1 1:3
-DEAL::not 4:3 4:3 1:1 1:4
-DEAL::not 4:4 4:3 1:1 1:5
-DEAL::less 4:5 4:3 1:1 1:6
-DEAL::not 4:0 4:3 1:1 1:7
-DEAL::not 4:0 4:0 1:1 1:8
-DEAL::not 4:0 4:0 1:1 1:9
-DEAL::not 4:0 4:0 1:1 1:10
-DEAL::not 4:0 4:0 1:1 1:11
-DEAL::not 4:0 4:0 1:1 1:12
-DEAL::not 4:0 4:0 1:1 1:13
-DEAL::not 4:0 4:0 1:1 1:14
-DEAL::not 4:0 4:0 1:1 1:15
-DEAL::not 4:0 4:0 1:1 1:16
-DEAL::not 4:0 4:0 1:1 1:17
-DEAL::not 4:0 4:0 1:1 1:18
-DEAL::not 4:0 4:0 1:1 1:19
-DEAL::not 5:4 4:X 1:0 2:0
-DEAL::not 5:5 4:X 1:0 2:1
-DEAL::not 5:0 4:X 1:0 2:2
-DEAL::not 5:0 4:X 1:0 2:3
-DEAL::not 5:0 4:X 1:0 2:4
-DEAL::not 5:3 4:4 1:1 2:0
-DEAL::not 5:4 4:4 1:1 2:1
-DEAL::not 5:5 4:4 1:1 2:2
-DEAL::not 5:0 4:4 1:1 2:3
-DEAL::not 5:3 4:3 1:1 2:4
-DEAL::not 5:4 4:3 1:1 2:5
-DEAL::not 5:5 4:3 1:1 2:6
-DEAL::not 5:0 4:3 1:1 2:7
-DEAL::not 5:0 4:0 1:1 2:8
-DEAL::not 5:0 4:0 1:1 2:9
-DEAL::not 5:0 4:0 1:1 2:10
-DEAL::not 5:0 4:0 1:1 2:11
-DEAL::not 5:0 4:0 1:1 2:12
-DEAL::not 5:0 4:0 1:1 2:13
-DEAL::not 5:0 4:0 1:1 2:14
-DEAL::not 5:0 4:0 1:1 2:15
-DEAL::not 5:0 4:0 1:1 2:16
-DEAL::not 5:0 4:0 1:1 2:17
-DEAL::not 5:0 4:0 1:1 2:18
-DEAL::not 5:0 4:0 1:1 2:19
-DEAL::less 0:4 4:X 1:0 3:0
-DEAL::less 0:5 4:X 1:0 3:1
-DEAL::not 0:0 4:X 1:0 3:2
-DEAL::not 0:0 4:X 1:0 3:3
-DEAL::not 0:0 4:X 1:0 3:4
-DEAL::less 0:3 4:4 1:1 3:0
-DEAL::less 0:4 4:4 1:1 3:1
-DEAL::less 0:5 4:4 1:1 3:2
-DEAL::not 0:0 4:4 1:1 3:3
-DEAL::less 0:3 4:3 1:1 3:4
-DEAL::less 0:4 4:3 1:1 3:5
-DEAL::less 0:5 4:3 1:1 3:6
-DEAL::not 0:0 4:3 1:1 3:7
-DEAL::not 0:0 4:0 1:1 3:8
-DEAL::not 0:0 4:0 1:1 3:9
-DEAL::not 0:0 4:0 1:1 3:10
-DEAL::not 0:0 4:0 1:1 3:11
-DEAL::not 0:0 4:0 1:1 3:12
-DEAL::not 0:0 4:0 1:1 3:13
-DEAL::not 0:0 4:0 1:1 3:14
-DEAL::not 0:0 4:0 1:1 3:15
-DEAL::not 0:0 4:0 1:1 3:16
-DEAL::not 0:0 4:0 1:1 3:17
-DEAL::not 0:0 4:0 1:1 3:18
-DEAL::not 0:0 4:0 1:1 3:19
-DEAL::less 3:4 3:X 1:0 4:0
-DEAL::less 3:5 3:X 1:0 4:1
-DEAL::not 3:0 3:X 1:0 4:2
-DEAL::not 3:0 3:X 1:0 4:3
-DEAL::not 3:0 3:X 1:0 4:4
-DEAL::less 3:3 3:4 1:1 4:0
-DEAL::less 3:4 3:4 1:1 4:1
-DEAL::less 3:5 3:4 1:1 4:2
-DEAL::not 3:0 3:4 1:1 4:3
-DEAL::not 3:3 3:3 1:1 4:4
-DEAL::less 3:4 3:3 1:1 4:5
-DEAL::less 3:5 3:3 1:1 4:6
-DEAL::not 3:0 3:3 1:1 4:7
-DEAL::not 3:0 3:0 1:1 4:8
-DEAL::not 3:0 3:0 1:1 4:9
-DEAL::not 3:0 3:0 1:1 4:10
-DEAL::not 3:0 3:0 1:1 4:11
-DEAL::not 3:0 3:0 1:1 4:12
-DEAL::not 3:0 3:0 1:1 4:13
-DEAL::not 3:0 3:0 1:1 4:14
-DEAL::not 3:0 3:0 1:1 4:15
-DEAL::not 3:0 3:0 1:1 4:16
-DEAL::not 3:0 3:0 1:1 4:17
-DEAL::not 3:0 3:0 1:1 4:18
-DEAL::not 3:0 3:0 1:1 4:19
-DEAL::not 4:4 3:X 1:0 5:0
-DEAL::less 4:5 3:X 1:0 5:1
-DEAL::not 4:0 3:X 1:0 5:2
-DEAL::not 4:0 3:X 1:0 5:3
-DEAL::not 4:0 3:X 1:0 5:4
-DEAL::not 4:3 3:4 1:1 5:0
-DEAL::less 4:4 3:4 1:1 5:1
-DEAL::less 4:5 3:4 1:1 5:2
-DEAL::not 4:0 3:4 1:1 5:3
-DEAL::not 4:3 3:3 1:1 5:4
-DEAL::not 4:4 3:3 1:1 5:5
-DEAL::less 4:5 3:3 1:1 5:6
-DEAL::not 4:0 3:3 1:1 5:7
-DEAL::not 4:0 3:0 1:1 5:8
-DEAL::not 4:0 3:0 1:1 5:9
-DEAL::not 4:0 3:0 1:1 5:10
-DEAL::not 4:0 3:0 1:1 5:11
-DEAL::not 4:0 3:0 1:1 5:12
-DEAL::not 4:0 3:0 1:1 5:13
-DEAL::not 4:0 3:0 1:1 5:14
-DEAL::not 4:0 3:0 1:1 5:15
-DEAL::not 4:0 3:0 1:1 5:16
-DEAL::not 4:0 3:0 1:1 5:17
-DEAL::not 4:0 3:0 1:1 5:18
-DEAL::not 4:0 3:0 1:1 5:19
-DEAL::not 5:4 3:X 1:0 6:0
-DEAL::not 5:5 3:X 1:0 6:1
-DEAL::not 5:0 3:X 1:0 6:2
-DEAL::not 5:0 3:X 1:0 6:3
-DEAL::not 5:0 3:X 1:0 6:4
-DEAL::not 5:3 3:4 1:1 6:0
-DEAL::not 5:4 3:4 1:1 6:1
-DEAL::less 5:5 3:4 1:1 6:2
-DEAL::not 5:0 3:4 1:1 6:3
-DEAL::not 5:3 3:3 1:1 6:4
-DEAL::not 5:4 3:3 1:1 6:5
-DEAL::not 5:5 3:3 1:1 6:6
-DEAL::not 5:0 3:3 1:1 6:7
-DEAL::not 5:0 3:0 1:1 6:8
-DEAL::not 5:0 3:0 1:1 6:9
-DEAL::not 5:0 3:0 1:1 6:10
-DEAL::not 5:0 3:0 1:1 6:11
-DEAL::not 5:0 3:0 1:1 6:12
-DEAL::not 5:0 3:0 1:1 6:13
-DEAL::not 5:0 3:0 1:1 6:14
-DEAL::not 5:0 3:0 1:1 6:15
-DEAL::not 5:0 3:0 1:1 6:16
-DEAL::not 5:0 3:0 1:1 6:17
-DEAL::not 5:0 3:0 1:1 6:18
-DEAL::not 5:0 3:0 1:1 6:19
-DEAL::less 0:4 3:X 1:0 7:0
-DEAL::less 0:5 3:X 1:0 7:1
-DEAL::not 0:0 3:X 1:0 7:2
-DEAL::not 0:0 3:X 1:0 7:3
-DEAL::not 0:0 3:X 1:0 7:4
-DEAL::less 0:3 3:4 1:1 7:0
-DEAL::less 0:4 3:4 1:1 7:1
-DEAL::less 0:5 3:4 1:1 7:2
-DEAL::less 0:0 3:4 1:1 7:3
-DEAL::less 0:3 3:3 1:1 7:4
-DEAL::less 0:4 3:3 1:1 7:5
-DEAL::less 0:5 3:3 1:1 7:6
-DEAL::not 0:0 3:3 1:1 7:7
-DEAL::not 0:0 3:0 1:1 7:8
-DEAL::not 0:0 3:0 1:1 7:9
-DEAL::not 0:0 3:0 1:1 7:10
-DEAL::not 0:0 3:0 1:1 7:11
-DEAL::not 0:0 3:0 1:1 7:12
-DEAL::not 0:0 3:0 1:1 7:13
-DEAL::not 0:0 3:0 1:1 7:14
-DEAL::not 0:0 3:0 1:1 7:15
-DEAL::not 0:0 3:0 1:1 7:16
-DEAL::not 0:0 3:0 1:1 7:17
-DEAL::not 0:0 3:0 1:1 7:18
-DEAL::not 0:0 3:0 1:1 7:19
-DEAL::less 0:4 0:X 1:0 8:0
-DEAL::less 0:5 0:X 1:0 8:1
-DEAL::not 0:0 0:X 1:0 8:2
-DEAL::not 0:0 0:X 1:0 8:3
-DEAL::not 0:0 0:X 1:0 8:4
-DEAL::less 0:3 0:4 1:1 8:0
-DEAL::less 0:4 0:4 1:1 8:1
-DEAL::less 0:5 0:4 1:1 8:2
-DEAL::less 0:0 0:4 1:1 8:3
-DEAL::less 0:3 0:3 1:1 8:4
-DEAL::less 0:4 0:3 1:1 8:5
-DEAL::less 0:5 0:3 1:1 8:6
-DEAL::less 0:0 0:3 1:1 8:7
-DEAL::not 0:0 0:0 1:1 8:8
-DEAL::less 0:0 0:0 1:1 8:9
-DEAL::less 0:0 0:0 1:1 8:10
-DEAL::less 0:0 0:0 1:1 8:11
-DEAL::less 0:0 0:0 1:1 8:12
-DEAL::less 0:0 0:0 1:1 8:13
-DEAL::less 0:0 0:0 1:1 8:14
-DEAL::less 0:0 0:0 1:1 8:15
-DEAL::less 0:0 0:0 1:1 8:16
-DEAL::less 0:0 0:0 1:1 8:17
-DEAL::less 0:0 0:0 1:1 8:18
-DEAL::less 0:0 0:0 1:1 8:19
-DEAL::less 0:4 0:X 1:0 9:0
-DEAL::less 0:5 0:X 1:0 9:1
-DEAL::not 0:0 0:X 1:0 9:2
-DEAL::not 0:0 0:X 1:0 9:3
-DEAL::not 0:0 0:X 1:0 9:4
-DEAL::less 0:3 0:4 1:1 9:0
-DEAL::less 0:4 0:4 1:1 9:1
-DEAL::less 0:5 0:4 1:1 9:2
-DEAL::less 0:0 0:4 1:1 9:3
-DEAL::less 0:3 0:3 1:1 9:4
-DEAL::less 0:4 0:3 1:1 9:5
-DEAL::less 0:5 0:3 1:1 9:6
-DEAL::less 0:0 0:3 1:1 9:7
-DEAL::not 0:0 0:0 1:1 9:8
-DEAL::not 0:0 0:0 1:1 9:9
-DEAL::less 0:0 0:0 1:1 9:10
-DEAL::less 0:0 0:0 1:1 9:11
-DEAL::less 0:0 0:0 1:1 9:12
-DEAL::less 0:0 0:0 1:1 9:13
-DEAL::less 0:0 0:0 1:1 9:14
-DEAL::less 0:0 0:0 1:1 9:15
-DEAL::less 0:0 0:0 1:1 9:16
-DEAL::less 0:0 0:0 1:1 9:17
-DEAL::less 0:0 0:0 1:1 9:18
-DEAL::less 0:0 0:0 1:1 9:19
-DEAL::less 0:4 0:X 1:0 10:0
-DEAL::less 0:5 0:X 1:0 10:1
-DEAL::not 0:0 0:X 1:0 10:2
-DEAL::not 0:0 0:X 1:0 10:3
-DEAL::not 0:0 0:X 1:0 10:4
-DEAL::less 0:3 0:4 1:1 10:0
-DEAL::less 0:4 0:4 1:1 10:1
-DEAL::less 0:5 0:4 1:1 10:2
-DEAL::less 0:0 0:4 1:1 10:3
-DEAL::less 0:3 0:3 1:1 10:4
-DEAL::less 0:4 0:3 1:1 10:5
-DEAL::less 0:5 0:3 1:1 10:6
-DEAL::less 0:0 0:3 1:1 10:7
-DEAL::not 0:0 0:0 1:1 10:8
-DEAL::not 0:0 0:0 1:1 10:9
-DEAL::not 0:0 0:0 1:1 10:10
-DEAL::less 0:0 0:0 1:1 10:11
-DEAL::less 0:0 0:0 1:1 10:12
-DEAL::less 0:0 0:0 1:1 10:13
-DEAL::less 0:0 0:0 1:1 10:14
-DEAL::less 0:0 0:0 1:1 10:15
-DEAL::less 0:0 0:0 1:1 10:16
-DEAL::less 0:0 0:0 1:1 10:17
-DEAL::less 0:0 0:0 1:1 10:18
-DEAL::less 0:0 0:0 1:1 10:19
-DEAL::less 0:4 0:X 1:0 11:0
-DEAL::less 0:5 0:X 1:0 11:1
-DEAL::not 0:0 0:X 1:0 11:2
-DEAL::not 0:0 0:X 1:0 11:3
-DEAL::not 0:0 0:X 1:0 11:4
-DEAL::less 0:3 0:4 1:1 11:0
-DEAL::less 0:4 0:4 1:1 11:1
-DEAL::less 0:5 0:4 1:1 11:2
-DEAL::less 0:0 0:4 1:1 11:3
-DEAL::less 0:3 0:3 1:1 11:4
-DEAL::less 0:4 0:3 1:1 11:5
-DEAL::less 0:5 0:3 1:1 11:6
-DEAL::less 0:0 0:3 1:1 11:7
-DEAL::not 0:0 0:0 1:1 11:8
-DEAL::not 0:0 0:0 1:1 11:9
-DEAL::not 0:0 0:0 1:1 11:10
-DEAL::not 0:0 0:0 1:1 11:11
-DEAL::less 0:0 0:0 1:1 11:12
-DEAL::less 0:0 0:0 1:1 11:13
-DEAL::less 0:0 0:0 1:1 11:14
-DEAL::less 0:0 0:0 1:1 11:15
-DEAL::less 0:0 0:0 1:1 11:16
-DEAL::less 0:0 0:0 1:1 11:17
-DEAL::less 0:0 0:0 1:1 11:18
-DEAL::less 0:0 0:0 1:1 11:19
-DEAL::less 0:4 0:X 1:0 12:0
-DEAL::less 0:5 0:X 1:0 12:1
-DEAL::not 0:0 0:X 1:0 12:2
-DEAL::not 0:0 0:X 1:0 12:3
-DEAL::not 0:0 0:X 1:0 12:4
-DEAL::less 0:3 0:4 1:1 12:0
-DEAL::less 0:4 0:4 1:1 12:1
-DEAL::less 0:5 0:4 1:1 12:2
-DEAL::less 0:0 0:4 1:1 12:3
-DEAL::less 0:3 0:3 1:1 12:4
-DEAL::less 0:4 0:3 1:1 12:5
-DEAL::less 0:5 0:3 1:1 12:6
-DEAL::less 0:0 0:3 1:1 12:7
-DEAL::not 0:0 0:0 1:1 12:8
-DEAL::not 0:0 0:0 1:1 12:9
-DEAL::not 0:0 0:0 1:1 12:10
-DEAL::not 0:0 0:0 1:1 12:11
-DEAL::not 0:0 0:0 1:1 12:12
-DEAL::less 0:0 0:0 1:1 12:13
-DEAL::less 0:0 0:0 1:1 12:14
-DEAL::less 0:0 0:0 1:1 12:15
-DEAL::less 0:0 0:0 1:1 12:16
-DEAL::less 0:0 0:0 1:1 12:17
-DEAL::less 0:0 0:0 1:1 12:18
-DEAL::less 0:0 0:0 1:1 12:19
-DEAL::less 0:4 0:X 1:0 13:0
-DEAL::less 0:5 0:X 1:0 13:1
-DEAL::not 0:0 0:X 1:0 13:2
-DEAL::not 0:0 0:X 1:0 13:3
-DEAL::not 0:0 0:X 1:0 13:4
-DEAL::less 0:3 0:4 1:1 13:0
-DEAL::less 0:4 0:4 1:1 13:1
-DEAL::less 0:5 0:4 1:1 13:2
-DEAL::less 0:0 0:4 1:1 13:3
-DEAL::less 0:3 0:3 1:1 13:4
-DEAL::less 0:4 0:3 1:1 13:5
-DEAL::less 0:5 0:3 1:1 13:6
-DEAL::less 0:0 0:3 1:1 13:7
-DEAL::not 0:0 0:0 1:1 13:8
-DEAL::not 0:0 0:0 1:1 13:9
-DEAL::not 0:0 0:0 1:1 13:10
-DEAL::not 0:0 0:0 1:1 13:11
-DEAL::not 0:0 0:0 1:1 13:12
-DEAL::not 0:0 0:0 1:1 13:13
-DEAL::less 0:0 0:0 1:1 13:14
-DEAL::less 0:0 0:0 1:1 13:15
-DEAL::less 0:0 0:0 1:1 13:16
-DEAL::less 0:0 0:0 1:1 13:17
-DEAL::less 0:0 0:0 1:1 13:18
-DEAL::less 0:0 0:0 1:1 13:19
-DEAL::less 0:4 0:X 1:0 14:0
-DEAL::less 0:5 0:X 1:0 14:1
-DEAL::not 0:0 0:X 1:0 14:2
-DEAL::not 0:0 0:X 1:0 14:3
-DEAL::not 0:0 0:X 1:0 14:4
-DEAL::less 0:3 0:4 1:1 14:0
-DEAL::less 0:4 0:4 1:1 14:1
-DEAL::less 0:5 0:4 1:1 14:2
-DEAL::less 0:0 0:4 1:1 14:3
-DEAL::less 0:3 0:3 1:1 14:4
-DEAL::less 0:4 0:3 1:1 14:5
-DEAL::less 0:5 0:3 1:1 14:6
-DEAL::less 0:0 0:3 1:1 14:7
-DEAL::not 0:0 0:0 1:1 14:8
-DEAL::not 0:0 0:0 1:1 14:9
-DEAL::not 0:0 0:0 1:1 14:10
-DEAL::not 0:0 0:0 1:1 14:11
-DEAL::not 0:0 0:0 1:1 14:12
-DEAL::not 0:0 0:0 1:1 14:13
-DEAL::not 0:0 0:0 1:1 14:14
-DEAL::less 0:0 0:0 1:1 14:15
-DEAL::less 0:0 0:0 1:1 14:16
-DEAL::less 0:0 0:0 1:1 14:17
-DEAL::less 0:0 0:0 1:1 14:18
-DEAL::less 0:0 0:0 1:1 14:19
-DEAL::less 0:4 0:X 1:0 15:0
-DEAL::less 0:5 0:X 1:0 15:1
-DEAL::not 0:0 0:X 1:0 15:2
-DEAL::not 0:0 0:X 1:0 15:3
-DEAL::not 0:0 0:X 1:0 15:4
-DEAL::less 0:3 0:4 1:1 15:0
-DEAL::less 0:4 0:4 1:1 15:1
-DEAL::less 0:5 0:4 1:1 15:2
-DEAL::less 0:0 0:4 1:1 15:3
-DEAL::less 0:3 0:3 1:1 15:4
-DEAL::less 0:4 0:3 1:1 15:5
-DEAL::less 0:5 0:3 1:1 15:6
-DEAL::less 0:0 0:3 1:1 15:7
-DEAL::not 0:0 0:0 1:1 15:8
-DEAL::not 0:0 0:0 1:1 15:9
-DEAL::not 0:0 0:0 1:1 15:10
-DEAL::not 0:0 0:0 1:1 15:11
-DEAL::not 0:0 0:0 1:1 15:12
-DEAL::not 0:0 0:0 1:1 15:13
-DEAL::not 0:0 0:0 1:1 15:14
-DEAL::not 0:0 0:0 1:1 15:15
-DEAL::less 0:0 0:0 1:1 15:16
-DEAL::less 0:0 0:0 1:1 15:17
-DEAL::less 0:0 0:0 1:1 15:18
-DEAL::less 0:0 0:0 1:1 15:19
-DEAL::less 0:4 0:X 1:0 16:0
-DEAL::less 0:5 0:X 1:0 16:1
-DEAL::not 0:0 0:X 1:0 16:2
-DEAL::not 0:0 0:X 1:0 16:3
-DEAL::not 0:0 0:X 1:0 16:4
-DEAL::less 0:3 0:4 1:1 16:0
-DEAL::less 0:4 0:4 1:1 16:1
-DEAL::less 0:5 0:4 1:1 16:2
-DEAL::less 0:0 0:4 1:1 16:3
-DEAL::less 0:3 0:3 1:1 16:4
-DEAL::less 0:4 0:3 1:1 16:5
-DEAL::less 0:5 0:3 1:1 16:6
-DEAL::less 0:0 0:3 1:1 16:7
-DEAL::not 0:0 0:0 1:1 16:8
-DEAL::not 0:0 0:0 1:1 16:9
-DEAL::not 0:0 0:0 1:1 16:10
-DEAL::not 0:0 0:0 1:1 16:11
-DEAL::not 0:0 0:0 1:1 16:12
-DEAL::not 0:0 0:0 1:1 16:13
-DEAL::not 0:0 0:0 1:1 16:14
-DEAL::not 0:0 0:0 1:1 16:15
-DEAL::not 0:0 0:0 1:1 16:16
-DEAL::less 0:0 0:0 1:1 16:17
-DEAL::less 0:0 0:0 1:1 16:18
-DEAL::less 0:0 0:0 1:1 16:19
-DEAL::less 0:4 0:X 1:0 17:0
-DEAL::less 0:5 0:X 1:0 17:1
-DEAL::not 0:0 0:X 1:0 17:2
-DEAL::not 0:0 0:X 1:0 17:3
-DEAL::not 0:0 0:X 1:0 17:4
-DEAL::less 0:3 0:4 1:1 17:0
-DEAL::less 0:4 0:4 1:1 17:1
-DEAL::less 0:5 0:4 1:1 17:2
-DEAL::less 0:0 0:4 1:1 17:3
-DEAL::less 0:3 0:3 1:1 17:4
-DEAL::less 0:4 0:3 1:1 17:5
-DEAL::less 0:5 0:3 1:1 17:6
-DEAL::less 0:0 0:3 1:1 17:7
-DEAL::not 0:0 0:0 1:1 17:8
-DEAL::not 0:0 0:0 1:1 17:9
-DEAL::not 0:0 0:0 1:1 17:10
-DEAL::not 0:0 0:0 1:1 17:11
-DEAL::not 0:0 0:0 1:1 17:12
-DEAL::not 0:0 0:0 1:1 17:13
-DEAL::not 0:0 0:0 1:1 17:14
-DEAL::not 0:0 0:0 1:1 17:15
-DEAL::not 0:0 0:0 1:1 17:16
-DEAL::not 0:0 0:0 1:1 17:17
-DEAL::less 0:0 0:0 1:1 17:18
-DEAL::less 0:0 0:0 1:1 17:19
-DEAL::less 0:4 0:X 1:0 18:0
-DEAL::less 0:5 0:X 1:0 18:1
-DEAL::not 0:0 0:X 1:0 18:2
-DEAL::not 0:0 0:X 1:0 18:3
-DEAL::not 0:0 0:X 1:0 18:4
-DEAL::less 0:3 0:4 1:1 18:0
-DEAL::less 0:4 0:4 1:1 18:1
-DEAL::less 0:5 0:4 1:1 18:2
-DEAL::less 0:0 0:4 1:1 18:3
-DEAL::less 0:3 0:3 1:1 18:4
-DEAL::less 0:4 0:3 1:1 18:5
-DEAL::less 0:5 0:3 1:1 18:6
-DEAL::less 0:0 0:3 1:1 18:7
-DEAL::not 0:0 0:0 1:1 18:8
-DEAL::not 0:0 0:0 1:1 18:9
-DEAL::not 0:0 0:0 1:1 18:10
-DEAL::not 0:0 0:0 1:1 18:11
-DEAL::not 0:0 0:0 1:1 18:12
-DEAL::not 0:0 0:0 1:1 18:13
-DEAL::not 0:0 0:0 1:1 18:14
-DEAL::not 0:0 0:0 1:1 18:15
-DEAL::not 0:0 0:0 1:1 18:16
-DEAL::not 0:0 0:0 1:1 18:17
-DEAL::not 0:0 0:0 1:1 18:18
-DEAL::less 0:0 0:0 1:1 18:19
-DEAL::less 0:4 0:X 1:0 19:0
-DEAL::less 0:5 0:X 1:0 19:1
-DEAL::not 0:0 0:X 1:0 19:2
-DEAL::not 0:0 0:X 1:0 19:3
-DEAL::not 0:0 0:X 1:0 19:4
-DEAL::less 0:3 0:4 1:1 19:0
-DEAL::less 0:4 0:4 1:1 19:1
-DEAL::less 0:5 0:4 1:1 19:2
-DEAL::less 0:0 0:4 1:1 19:3
-DEAL::less 0:3 0:3 1:1 19:4
-DEAL::less 0:4 0:3 1:1 19:5
-DEAL::less 0:5 0:3 1:1 19:6
-DEAL::less 0:0 0:3 1:1 19:7
-DEAL::not 0:0 0:0 1:1 19:8
-DEAL::not 0:0 0:0 1:1 19:9
-DEAL::not 0:0 0:0 1:1 19:10
-DEAL::not 0:0 0:0 1:1 19:11
-DEAL::not 0:0 0:0 1:1 19:12
-DEAL::not 0:0 0:0 1:1 19:13
-DEAL::not 0:0 0:0 1:1 19:14
-DEAL::not 0:0 0:0 1:1 19:15
-DEAL::not 0:0 0:0 1:1 19:16
-DEAL::not 0:0 0:0 1:1 19:17
-DEAL::not 0:0 0:0 1:1 19:18
-DEAL::not 0:0 0:0 1:1 19:19
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 2006 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check PointerMatrix:checkConstructor1
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/pointer_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+template<typename number>
+ void
+ checkConstructor1()
+ {
+ deallog << "Init with empty matrix" << std::endl;
+ PointerMatrix<FullMatrix<number>, Vector<number> > P;
+ deallog << "Is matrix empty:" << P.empty() << std::endl;
+ }
+
+int
+main()
+{
+
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ checkConstructor1<double>();
+}
--- /dev/null
+
+DEAL::Init with empty matrix
+DEAL::Is matrix empty:1
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 2006 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check PointerMatrix:checkConstructor2
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/pointer_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+template<typename number>
+ void
+ checkConstructor2(FullMatrix<number> &A)
+ {
+ deallog << "Init with matrix A" << std::endl;
+ PointerMatrix<FullMatrix<number>, Vector<number> > P(&A);
+ deallog << "Is matrix empty:" << P.empty() << std::endl;
+ }
+
+int
+main()
+{
+
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ const double Adata[] =
+ { 2, 3, 4, 5 };
+
+ FullMatrix<double> A(2, 2);
+ A.fill(Adata);
+
+ checkConstructor2<double>(A);
+}
--- /dev/null
+
+DEAL::Init with matrix A
+DEAL::Is matrix empty:0
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 2006 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check PointerMatrix:checkConstructor3
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/pointer_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+template<typename number>
+ void
+ checkConstructor3(char *name)
+ {
+ deallog << "Init with matrix name" << std::endl;
+ PointerMatrix<FullMatrix<number>, Vector<number> > P(name);
+ deallog << "Is matrix empty:" << P.empty() << std::endl;
+ }
+
+int
+main()
+{
+
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ char *name = "Matrix A";
+
+ checkConstructor3<double>(name);
+
+}
--- /dev/null
+
+DEAL::Init with matrix name
+DEAL::Is matrix empty:1
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 2006 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check PointerMatrix:checkConstructor4
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/pointer_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+template<typename number>
+ void
+ checkConstructor4(const FullMatrix<number> &A, char *name)
+ {
+ deallog << "Init with matrix name and matrix" << std::endl;
+ PointerMatrix<FullMatrix<number>, Vector<number> > P(&A, name);
+ deallog << "Is matrix empty:" << P.empty() << std::endl;
+ }
+
+int
+main()
+{
+
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ const double Adata[] =
+ { 2, 3, 4, 5 };
+
+ FullMatrix<double> A(2, 2);
+ A.fill(Adata);
+
+ char *name = "Matrix A";
+
+ checkConstructor4<double>(A, name);
+}
--- /dev/null
+
+DEAL::Init with matrix name and matrix
+DEAL::Is matrix empty:0
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 2006 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check PointerMatrix:checkVmult
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/pointer_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+template<typename number>
+ void
+ checkVmult(FullMatrix<number> &A, Vector<number> &V, char *name =
+ "Test Matrix")
+ {
+ deallog << "vmult" << std::endl;
+
+ PointerMatrix<FullMatrix<number>, Vector<number> > P(&A, name);
+ Vector<number> O(A.m());
+ P.vmult(O, V);
+
+ // Check the dimensions of the result matrix
+ Assert(A.m() == O.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ // Verifying results with Method 2: O=A*V
+ Vector<number> O_(A.m());
+ A.vmult(O_, V);
+
+ Assert(O == O_, ExcInternalError());
+ deallog << "Result vector data verified" << std::endl;
+
+ for (unsigned int i = 0; i < O.size(); ++i)
+ deallog << O(i) << '\t';
+ deallog << std::endl;
+ }
+
+int
+main()
+{
+
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ const double Adata[] =
+ { 2, 3, 4, 5 };
+
+ FullMatrix<double> A(2, 2);
+ A.fill(Adata);
+
+ Vector<double> V(2);
+ V(0) = 1;
+ V(1) = 2;
+
+ checkVmult<double>(A, V);
+}
--- /dev/null
+
+DEAL::vmult
+DEAL::Dimensions of result vector verified
+DEAL::Result vector data verified
+DEAL::8.0000 14.0000
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 2006 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check PointerMatrix:checkTvmult
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/pointer_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+template<typename number>
+ void
+ checkTvmult(FullMatrix<number> &A, Vector<number> &V, char *name =
+ "Test Matrix")
+ {
+ deallog << "Tvmult" << std::endl;
+
+ PointerMatrix<FullMatrix<number>, Vector<number> > P(&A, name);
+ Vector<number> O(A.m());
+ P.Tvmult(O, V);
+
+ // Check the dimensions of the result matrix
+ Assert(A.m() == O.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ // Verifying results with Method 2: O=A Transpose*V
+ Vector<number> O_(A.m());
+ A.Tvmult(O_, V);
+
+ Assert(O == O_, ExcInternalError());
+ deallog << "Result vector data verified" << std::endl;
+
+ for (unsigned int i = 0; i < O.size(); ++i)
+ deallog << O(i) << '\t';
+ deallog << std::endl;
+ }
+
+int
+main()
+{
+
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ const double Adata[] =
+ { 2, 3, 4, 5 };
+
+ FullMatrix<double> A(2, 2);
+ A.fill(Adata);
+
+ Vector<double> V(2);
+ V(0) = 1;
+ V(1) = 2;
+
+ checkTvmult<double>(A, V);
+}
--- /dev/null
+
+DEAL::Tvmult
+DEAL::Dimensions of result vector verified
+DEAL::Result vector data verified
+DEAL::10.0000 13.0000
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 2006 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check PointerMatrix:checkTvmult_add
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/pointer_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+template<typename number>
+ void
+ checkTvmult_add(FullMatrix<number> &A, Vector<number> &V, char *name =
+ "Test Matrix")
+ {
+ deallog << "Tvmult_add" << std::endl;
+
+ PointerMatrix<FullMatrix<number>, Vector<number> > P(&A, name);
+
+ deallog << "Result vector set to all ones and to be added with result"
+ << std::endl;
+ Vector<number> O(V.size());
+ for (unsigned int i = 0; i < O.size(); ++i)
+ O(i) = 1;
+
+ P.Tvmult_add(O, V);
+
+ // Check the dimensions of the result matrix
+ Assert(A.m() == O.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ // Verifying results with Method 2: O=O+A Transpose*V
+ Vector<number> O_(V.size());
+ for (unsigned int i = 0; i < O_.size(); ++i)
+ O_(i) = 1;
+
+ A.Tvmult_add(O_, V);
+
+ Assert(O == O_, ExcInternalError());
+ deallog << "Result vector data verified" << std::endl;
+
+ for (unsigned int i = 0; i < O.size(); ++i)
+ deallog << O(i) << '\t';
+ deallog << std::endl;
+ }
+
+int
+main()
+{
+
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ const double Adata[] =
+ { 2, 3, 4, 5 };
+
+ FullMatrix<double> A(2, 2);
+ A.fill(Adata);
+
+ Vector<double> V(2);
+ V(0) = 1;
+ V(1) = 2;
+
+ checkTvmult_add<double>(A, V);
+}
--- /dev/null
+
+DEAL::Tvmult_add
+DEAL::Result vector set to all ones and to be added with result
+DEAL::Dimensions of result vector verified
+DEAL::Result vector data verified
+DEAL::11.0000 14.0000
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 2006 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check PointerMatrix:checkVmult_add
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/pointer_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+template<typename number>
+ void
+ checkVmult_add(FullMatrix<number> &A, Vector<number> &V, char *name =
+ "Test Matrix")
+ {
+ deallog << "vmult_add" << std::endl;
+
+ PointerMatrix<FullMatrix<number>, Vector<number> > P(&A, name);
+
+ deallog << "Result vector set to all ones and to be added with result"
+ << std::endl;
+ Vector<number> O(V.size());
+ for (unsigned int i = 0; i < O.size(); ++i)
+ O(i) = 1;
+
+ P.vmult_add(O, V);
+
+ // Check the dimensions of the result matrix
+ Assert(A.m() == O.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ // Verifying results with Method 2: O=O+A*V
+ Vector<number> O_(V.size());
+ for (unsigned int i = 0; i < O_.size(); ++i)
+ O_(i) = 1;
+
+ A.vmult_add(O_, V);
+
+ Assert(O == O_, ExcInternalError());
+ deallog << "Result vector data verified" << std::endl;
+
+ for (unsigned int i = 0; i < O.size(); ++i)
+ deallog << O(i) << '\t';
+ deallog << std::endl;
+ }
+
+int
+main()
+{
+
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ const double Adata[] =
+ { 2, 3, 4, 5 };
+
+ FullMatrix<double> A(2, 2);
+ A.fill(Adata);
+
+ Vector<double> V(2);
+ V(0) = 1;
+ V(1) = 2;
+
+ checkVmult_add<double>(A, V);
+}
--- /dev/null
+
+DEAL::vmult_add
+DEAL::Result vector set to all ones and to be added with result
+DEAL::Dimensions of result vector verified
+DEAL::Result vector data verified
+DEAL::9.0000 15.0000
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 2006 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check PointerMatrix:checkClear
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/pointer_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+template<typename number>
+ void
+ checkClear(FullMatrix<number> &A)
+ {
+ deallog << "clear" << std::endl;
+ deallog << "Init with matrix 1" << std::endl;
+
+ PointerMatrix<FullMatrix<number>, Vector<number> > P(&A);
+
+ deallog << "Multiplying with all ones vector" << std::endl;
+ Vector<number> V(A.n());
+ for (unsigned int i = 0; i < V.size(); ++i)
+ V(i) = 1;
+
+ Vector<number> O(A.m());
+ P.vmult(O, V);
+
+ // Check the dimensions of the result vector
+ Assert(A.m() == O.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ // Verifying results with Method 2: O=A*V
+ Vector<number> O_(A.m());
+ A.vmult(O_, V);
+
+ Assert(O == O_, ExcInternalError());
+ deallog << "Result vector data verified" << std::endl;
+
+ for (unsigned int i = 0; i < O.size(); ++i)
+ deallog << O(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Clearing pointer matrix" << std::endl;
+ P.clear();
+
+ deallog << "Is matrix empty:" << P.empty() << std::endl;
+ }
+
+int
+main()
+{
+
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ const double Adata[] =
+ { 2, 3, 4, 5 };
+
+ FullMatrix<double> A(2, 2);
+ A.fill(Adata);
+
+ checkClear(A);
+}
--- /dev/null
+
+DEAL::clear
+DEAL::Init with matrix 1
+DEAL::Multiplying with all ones vector
+DEAL::Dimensions of result vector verified
+DEAL::Result vector data verified
+DEAL::5.0000 9.0000
+DEAL::Clearing pointer matrix
+DEAL::Is matrix empty:1
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: pointer_matrix_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 2006 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check PointerMatrix:checkAssign
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/pointer_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+template<typename number>
+ void
+ checkAssign(FullMatrix<number> &A, FullMatrix<number> &B)
+ {
+ deallog << "=" << std::endl;
+ deallog << "Init with matrix 1" << std::endl;
+
+ PointerMatrix<FullMatrix<number>, Vector<number> > P(&A);
+
+ deallog << "Multiplying with all ones vector" << std::endl;
+ Vector<number> V(A.n());
+ for (unsigned int i = 0; i < V.size(); ++i)
+ V(i) = 1;
+
+ Vector<number> O(A.m());
+ P.vmult(O, V);
+
+ // Check the dimensions of the result vector
+ Assert(A.m() == O.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ // Verifying results with Method 2: O=A*V
+ Vector<number> O_(A.m());
+ A.vmult(O_, V);
+
+ Assert(O == O_, ExcInternalError());
+ deallog << "Result vector data verified" << std::endl;
+
+ for (unsigned int i = 0; i < O.size(); ++i)
+ deallog << O(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Clearing pointer matrix" << std::endl;
+ P.clear();
+
+ deallog << "Is matrix empty:" << P.empty() << std::endl;
+
+ deallog << "Assigning pointer matrix to matrix 2" << std::endl;
+
+ P = &B;
+
+ deallog << "Multiplying with all ones vector" << std::endl;
+ Vector<number> V_(B.n());
+ for (unsigned int i = 0; i < V_.size(); ++i)
+ V_(i) = 1;
+
+ Vector<number> OU(B.m());
+ P.vmult(OU, V_);
+
+ // Check the dimensions of the result vector
+ Assert(B.m() == OU.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ // Verifying results with Method 2: O=B*V
+ Vector<number> OU_(B.m());
+ B.vmult(OU_, V_);
+
+ Assert(OU == OU_, ExcInternalError());
+ deallog << "Result vector data verified" << std::endl;
+
+ for (unsigned int i = 0; i < OU.size(); ++i)
+ deallog << OU(i) << '\t';
+ deallog << std::endl;
+ }
+
+int
+main()
+{
+
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ const double Adata[] =
+ { 2, 3, 4, 5 };
+
+ const double Bdata[] =
+ { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
+
+ FullMatrix<double> A(2, 2);
+ A.fill(Adata);
+ FullMatrix<double> B(3, 3);
+ B.fill(Bdata);
+
+ checkAssign(A, B);
+}
--- /dev/null
+
+DEAL::=
+DEAL::Init with matrix 1
+DEAL::Multiplying with all ones vector
+DEAL::Dimensions of result vector verified
+DEAL::Result vector data verified
+DEAL::5.0000 9.0000
+DEAL::Clearing pointer matrix
+DEAL::Is matrix empty:1
+DEAL::Assigning pointer matrix to matrix 2
+DEAL::Multiplying with all ones vector
+DEAL::Dimensions of result vector verified
+DEAL::Result vector data verified
+DEAL::6.0000 15.0000 24.0000
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: shifted_matrix.cc 32491 2014-03-13 dilangov $
+//
+// Copyright (C) 2014 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.
+//
+// ---------------------------------------------------------------------
+
+// check ShiftedMatrix::checkConstructor
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/shifted_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+#include <fstream>
+#include <iomanip>
+#include <cmath>
+
+template<typename number>
+ void
+ checkConstructor(FullMatrix<number> &A, double sigma)
+ {
+ deallog << "constructor" << std::endl;
+
+ ShiftedMatrix < FullMatrix<number> > S(A, sigma);
+
+ deallog << "Multiplying with all ones vector" << std::endl;
+ Vector<number> V(A.n());
+ for (unsigned int i = 0; i < V.size(); ++i)
+ V(i) = 1;
+
+ Vector<number> O(A.m());
+
+ S.vmult(O, V);
+
+ // Check the dimensions of the result matrix
+ Assert(A.m() == O.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ for (unsigned int i = 0; i < O.size(); ++i)
+ deallog << O(i) << '\t';
+ deallog << std::endl;
+ }
+
+int
+main()
+{
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ const double Adata[] =
+ { 2, 3, 4, 5 };
+
+ FullMatrix<double> A(2, 2);
+
+ A.fill(Adata);
+
+ checkConstructor<double>(A, 2);
+}
--- /dev/null
+
+DEAL::constructor
+DEAL::Multiplying with all ones vector
+DEAL::Dimensions of result vector verified
+DEAL::7.0000 11.0000
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: shifted_matrix.cc 32491 2014-03-13 dilangov $
+//
+// Copyright (C) 2014 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.
+//
+// ---------------------------------------------------------------------
+
+// check ShiftedMatrix::checkVmult
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/shifted_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+#include <fstream>
+#include <iomanip>
+#include <cmath>
+
+template<typename number>
+ void
+ checkVmult(FullMatrix<number> &A, double sigma, Vector<number> &V)
+ {
+ deallog << "vmult" << std::endl;
+
+ ShiftedMatrix < FullMatrix<number> > S(A, sigma);
+ Vector<number> O(A.m());
+
+ S.vmult(O, V);
+
+ // Check the dimensions of the result matrix
+ Assert(A.m() == O.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ for (unsigned int i = 0; i < O.size(); ++i)
+ deallog << O(i) << '\t';
+ deallog << std::endl;
+ }
+
+int
+main()
+{
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ const double Adata[] =
+ { 2, 3, 4, 5 };
+
+ FullMatrix<double> A(2, 2);
+
+ A.fill(Adata);
+
+ Vector<double> V(2);
+ V(0) = 1;
+ V(1) = 2;
+
+ checkVmult<double>(A, 2, V);
+}
--- /dev/null
+
+DEAL::vmult
+DEAL::Dimensions of result vector verified
+DEAL::10.0000 18.0000
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: shifted_matrix.cc 32491 2014-03-13 dilangov $
+//
+// Copyright (C) 2014 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.
+//
+// ---------------------------------------------------------------------
+
+// check ShiftedMatrix::checkResidual
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/shifted_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+#include <fstream>
+#include <iomanip>
+#include <cmath>
+
+template<typename number>
+ void
+ checkResidual(FullMatrix<number> &A, double sigma, Vector<number> &V,
+ Vector<number> &R)
+ {
+ deallog << "residual" << std::endl;
+
+ ShiftedMatrix < FullMatrix<number> > S(A, sigma);
+ Vector<number> O(A.m());
+ double residual;
+
+ residual = S.residual(O, V, R);
+
+ // Check the dimensions of the result matrix
+ Assert(A.m() == O.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ deallog << "Residual vector" << std::endl;
+ for (unsigned int i = 0; i < O.size(); ++i)
+ deallog << O(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Residual value" << std::endl;
+ deallog << residual << std::endl;
+ }
+
+int
+main()
+{
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ const double Adata[] =
+ { 2, 3, 4, 5 };
+
+ FullMatrix<double> A(2, 2);
+
+ A.fill(Adata);
+
+ Vector<double> V(2);
+ V(0) = 1;
+ V(1) = 2;
+
+ Vector<double> R(2);
+ R(0) = 1;
+ R(1) = 1;
+
+ checkResidual<double>(A, 2, V, R);
+}
--- /dev/null
+
+DEAL::residual
+DEAL::Dimensions of result vector verified
+DEAL::Residual vector
+DEAL::-9.0000 -17.0000
+DEAL::Residual value
+DEAL::19.2354
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: shifted_matrix.cc 32491 2014-03-13 dilangov $
+//
+// Copyright (C) 2014 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.
+//
+// ---------------------------------------------------------------------
+
+// check ShiftedMatrix::checkSetSigma
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/shifted_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+#include <fstream>
+#include <iomanip>
+#include <cmath>
+
+template<typename number>
+ void
+ checkSetSigma(FullMatrix<number> &A, double sigma)
+ {
+ deallog << "shift(sigma)" << std::endl;
+
+ deallog << "Init ShiftedMatrix with sigma=0" << std::endl;
+ ShiftedMatrix < FullMatrix<number> > S(A, 0);
+
+ deallog << "Multiplying with all ones vector" << std::endl;
+ Vector<number> V(A.n());
+ for (unsigned int i = 0; i < V.size(); ++i)
+ V(i) = 1;
+
+ Vector<number> O(A.m());
+
+ S.vmult(O, V);
+
+ // Check the dimensions of the result matrix
+ Assert(A.m() == O.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ for (unsigned int i = 0; i < O.size(); ++i)
+ deallog << O(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Setting new sigma value" << std::endl;
+ S.shift(sigma);
+
+ deallog << "Multiplying with all ones vector" << std::endl;
+ S.vmult(O, V);
+
+ // Check the dimensions of the result matrix
+ Assert(A.m() == O.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ for (unsigned int i = 0; i < O.size(); ++i)
+ deallog << O(i) << '\t';
+ deallog << std::endl;
+ }
+
+int
+main()
+{
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ const double Adata[] =
+ { 2, 3, 4, 5 };
+
+ FullMatrix<double> A(2, 2);
+
+ A.fill(Adata);
+
+ checkSetSigma<double>(A, 2);
+}
--- /dev/null
+
+DEAL::shift(sigma)
+DEAL::Init ShiftedMatrix with sigma=0
+DEAL::Multiplying with all ones vector
+DEAL::Dimensions of result vector verified
+DEAL::5.0000 9.0000
+DEAL::Setting new sigma value
+DEAL::Multiplying with all ones vector
+DEAL::Dimensions of result vector verified
+DEAL::7.0000 11.0000
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: shifted_matrix.cc 32491 2014-03-13 dilangov $
+//
+// Copyright (C) 2014 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.
+//
+// ---------------------------------------------------------------------
+
+// check ShiftedMatrix::checkGetSigma
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/shifted_matrix.h>
+#include <deal.II/lac/full_matrix.h>
+#include <deal.II/lac/vector.h>
+
+#include <fstream>
+#include <iomanip>
+#include <cmath>
+
+template<typename number>
+ void
+ checkGetSigma(FullMatrix<number> &A)
+ {
+ deallog << "shift()" << std::endl;
+
+ deallog << "Init ShiftedMatrix with sigma=0" << std::endl;
+ ShiftedMatrix < FullMatrix<number> > S(A, 0);
+
+ deallog << "Multiplying with all ones vector" << std::endl;
+ Vector<number> V(A.n());
+ for (unsigned int i = 0; i < V.size(); ++i)
+ V(i) = 1;
+
+ Vector<number> O(A.m());
+
+ S.vmult(O, V);
+
+ // Check the dimensions of the result matrix
+ Assert(A.m() == O.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ for (unsigned int i = 0; i < O.size(); ++i)
+ deallog << O(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Setting new sigma value by incrementing old value by 1"
+ << std::endl;
+
+ deallog << "Old sigma value" << std::endl;
+ double sigma = S.shift();
+ deallog << sigma << std::endl;
+ sigma = sigma + 1;
+ deallog << "New sigma value" << std::endl;
+ deallog << sigma << std::endl;
+
+ S.shift(sigma);
+
+ deallog << "Multiplying with all ones vector" << std::endl;
+ S.vmult(O, V);
+
+ // Check the dimensions of the result matrix
+ Assert(A.m() == O.size(), ExcInternalError());
+ deallog << "Dimensions of result vector verified" << std::endl;
+
+ for (unsigned int i = 0; i < O.size(); ++i)
+ deallog << O(i) << '\t';
+ deallog << std::endl;
+ }
+
+int
+main()
+{
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(4);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ const double Adata[] =
+ { 2, 3, 4, 5 };
+
+ FullMatrix<double> A(2, 2);
+
+ A.fill(Adata);
+
+ checkGetSigma<double>(A);
+}
--- /dev/null
+
+DEAL::shift()
+DEAL::Init ShiftedMatrix with sigma=0
+DEAL::Multiplying with all ones vector
+DEAL::Dimensions of result vector verified
+DEAL::5.0000 9.0000
+DEAL::Setting new sigma value by incrementing old value by 1
+DEAL::Old sigma value
+DEAL::0
+DEAL::New sigma value
+DEAL::1.0000
+DEAL::Multiplying with all ones vector
+DEAL::Dimensions of result vector verified
+DEAL::6.0000 10.0000
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: vector_view_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 1998 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check VectorView::checkReadOnlyConstructor
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/vector.h>
+#include <deal.II/lac/vector_view.h>
+#include <cmath>
+#include <fstream>
+#include <iomanip>
+
+template<typename number>
+ void
+ checkReadOnlyConstructor(const Vector<number> &V)
+ {
+ deallog << "Read-only constructor" << std::endl;
+ VectorView<number> VV(V.size(), V.begin());
+
+ deallog << "Printing Vector<number>" << std::endl;
+ for (unsigned int i = 0; i < V.size(); ++i)
+ deallog << V(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Printing VectorView<number> pointing to Vector<number>"
+ << std::endl;
+ for (unsigned int i = 0; i < VV.size(); ++i)
+ deallog << VV(i) << '\t';
+ deallog << std::endl;
+
+ /* deallog << "Incrementing Vector<number> elements using Read-only handle of VectorView<number>" << std::endl;
+ deallog << "Function fails beyond this point" << std::endl;
+ for (unsigned int i=0; i<VV.size(); ++i)
+ VV(i)=VV(i)+1; */
+ }
+
+int
+main()
+{
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(2);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ Vector<double> V1(5);
+ V1(0) = 1;
+ V1(1) = 2;
+ V1(2) = 3;
+ V1(3) = 4;
+ V1(4) = 5;
+
+ const Vector<double> V2(V1);
+
+ checkReadOnlyConstructor<double>(V2);
+}
+
--- /dev/null
+
+DEAL::Read-only constructor
+DEAL::Printing Vector<number>
+DEAL::1.00 2.00 3.00 4.00 5.00
+DEAL::Printing VectorView<number> pointing to Vector<number>
+DEAL::1.00 2.00 3.00 4.00 5.00
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: vector_view_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 1998 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check VectorView::checkReinit1
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/vector.h>
+#include <deal.II/lac/vector_view.h>
+#include <cmath>
+#include <fstream>
+#include <iomanip>
+
+template<typename number, typename size_type>
+ void
+ checkReinit1(const size_type N, const bool fast = false)
+ {
+ deallog << "Reinit with const size and fast" << std::endl;
+
+ deallog
+ << "Creating Vector<number> of size N+10 and filling with values 1 to N+10"
+ << std::endl;
+
+ Vector < number > V(N + 10);
+ for (unsigned int i = 0; i < V.size(); i++)
+ V(i) = i + 1;
+
+ deallog
+ << "Creating VectorView<number> of size N+10 pointing to Vector<number>"
+ << std::endl;
+ VectorView<number> VV(V.size(), V.begin());
+
+ deallog << "Printing Vector<number>" << std::endl;
+ for (unsigned int i = 0; i < V.size(); ++i)
+ deallog << V(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Printing VectorView<number> pointing to Vector<number>"
+ << std::endl;
+ for (unsigned int i = 0; i < VV.size(); ++i)
+ deallog << VV(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Reinit VectorView<number> to size N from N+10 with fast="
+ << fast << std::endl;
+ VV.reinit(N, fast);
+
+ deallog << "Printing Vector<number>" << std::endl;
+ for (unsigned int i = 0; i < V.size(); ++i)
+ deallog << V(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Printing VectorView<number> pointing to Vector<number>"
+ << std::endl;
+ for (unsigned int i = 0; i < VV.size(); ++i)
+ deallog << VV(i) << '\t';
+ deallog << std::endl;
+ }
+
+int
+main()
+{
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(2);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ checkReinit1<double, int>(10, false);
+ checkReinit1<double, int>(10, true);
+}
+
--- /dev/null
+
+DEAL::Reinit with const size and fast
+DEAL::Creating Vector<number> of size N+10 and filling with values 1 to N+10
+DEAL::Creating VectorView<number> of size N+10 pointing to Vector<number>
+DEAL::Printing Vector<number>
+DEAL::1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00
+DEAL::Printing VectorView<number> pointing to Vector<number>
+DEAL::1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00
+DEAL::Reinit VectorView<number> to size N from N+10 with fast=0
+DEAL::Printing Vector<number>
+DEAL::0 0 0 0 0 0 0 0 0 0 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00
+DEAL::Printing VectorView<number> pointing to Vector<number>
+DEAL::0 0 0 0 0 0 0 0 0 0
+DEAL::Reinit with const size and fast
+DEAL::Creating Vector<number> of size N+10 and filling with values 1 to N+10
+DEAL::Creating VectorView<number> of size N+10 pointing to Vector<number>
+DEAL::Printing Vector<number>
+DEAL::1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00
+DEAL::Printing VectorView<number> pointing to Vector<number>
+DEAL::1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00
+DEAL::Reinit VectorView<number> to size N from N+10 with fast=1
+DEAL::Printing Vector<number>
+DEAL::1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00
+DEAL::Printing VectorView<number> pointing to Vector<number>
+DEAL::1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: vector_view_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 1998 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check VectorView::checkReinit3
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/vector.h>
+#include <deal.II/lac/vector_view.h>
+#include <cmath>
+#include <fstream>
+#include <iomanip>
+
+template<typename number>
+ void
+ checkReinit3(const Vector<number> &V)
+ {
+ deallog
+ << "Reinit a ReadOnly VectorView<number> with const Vector<number> and const size"
+ << std::endl;
+
+ deallog
+ << "Creating dummy Vector<number> of size V.size() and filling with zeros"
+ << std::endl;
+
+ Vector<number> _V(V.size());
+ for (unsigned int i = 0; i < _V.size(); i++)
+ _V(i) = 0;
+
+ deallog << "Creating VectorView<number> pointing to dummy Vector<number>"
+ << std::endl;
+ VectorView<number> VV(_V.size(), _V.begin());
+
+ deallog << "Printing dummy Vector<number>" << std::endl;
+ for (unsigned int i = 0; i < _V.size(); ++i)
+ deallog << _V(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Printing VectorView<number> pointing to dummy Vector<number>"
+ << std::endl;
+ for (unsigned int i = 0; i < VV.size(); ++i)
+ deallog << VV(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Reinit VectorView<number> to half of Vector<number>"
+ << std::endl;
+ VV.reinit(V.size() / 2, V.begin());
+
+ deallog << "Printing Vector<number>" << std::endl;
+ for (unsigned int i = 0; i < V.size(); ++i)
+ deallog << V(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Printing VectorView<number> pointing to half of Vector<number>"
+ << std::endl;
+ for (unsigned int i = 0; i < VV.size(); ++i)
+ deallog << VV(i) << '\t';
+ deallog << std::endl;
+
+ /* deallog << "Incrementing Vector<number> elements using Read-only handle of VectorView<number>" << std::endl;
+ deallog << "Function fails beyond this point" << std::endl;
+ for (unsigned int i=0; i<VV.size(); ++i)
+ VV(i)=VV(i)+1; */
+ }
+
+int
+main()
+{
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(2);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ Vector<double> V1(5);
+ V1(0) = 1;
+ V1(1) = 2;
+ V1(2) = 3;
+ V1(3) = 4;
+ V1(4) = 5;
+
+ const Vector<double> V2(V1);
+
+ checkReinit3<double>(V2);
+}
+
--- /dev/null
+
+DEAL::Reinit a ReadOnly VectorView<number> with const Vector<number> and const size
+DEAL::Creating dummy Vector<number> of size V.size() and filling with zeros
+DEAL::Creating VectorView<number> pointing to dummy Vector<number>
+DEAL::Printing dummy Vector<number>
+DEAL::0 0 0 0 0
+DEAL::Printing VectorView<number> pointing to dummy Vector<number>
+DEAL::0 0 0 0 0
+DEAL::Reinit VectorView<number> to half of Vector<number>
+DEAL::Printing Vector<number>
+DEAL::1.00 2.00 3.00 4.00 5.00
+DEAL::Printing VectorView<number> pointing to half of Vector<number>
+DEAL::1.00 2.00
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: vector_view_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 1998 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check VectorView::checkReinit2
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/vector.h>
+#include <deal.II/lac/vector_view.h>
+#include <cmath>
+#include <fstream>
+#include <iomanip>
+
+template<typename number>
+ void
+ checkReinit2(Vector<number> &V)
+ {
+ deallog
+ << "Reinit a ReadWrite VectorView<number> with Vector<number> and const size"
+ << std::endl;
+
+ deallog
+ << "Creating dummy Vector<number> of size V.size() and filling with zeros"
+ << std::endl;
+
+ Vector<number> _V(V.size());
+ for (unsigned int i = 0; i < _V.size(); i++)
+ _V(i) = 0;
+
+ deallog << "Creating VectorView<number> pointing to dummy Vector<number>"
+ << std::endl;
+ VectorView<number> VV(_V.size(), _V.begin());
+
+ deallog << "Printing dummy Vector<number>" << std::endl;
+ for (unsigned int i = 0; i < _V.size(); ++i)
+ deallog << _V(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Printing VectorView<number> pointing to dummy Vector<number>"
+ << std::endl;
+ for (unsigned int i = 0; i < VV.size(); ++i)
+ deallog << VV(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Reinit VectorView<number> to half of Vector<number>"
+ << std::endl;
+ VV.reinit(V.size() / 2, V.begin());
+
+ deallog << "Printing Vector<number>" << std::endl;
+ for (unsigned int i = 0; i < V.size(); ++i)
+ deallog << V(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Printing VectorView<number> pointing to half of Vector<number>"
+ << std::endl;
+ for (unsigned int i = 0; i < VV.size(); ++i)
+ deallog << VV(i) << '\t';
+ deallog << std::endl;
+
+ deallog
+ << "Incrementing Vector<number> elements using Read-write handle of VectorView<number>"
+ << std::endl;
+ for (unsigned int i = 0; i < VV.size(); ++i)
+ VV(i) = VV(i) + 1;
+
+ deallog << "Printing modified Vector<number>" << std::endl;
+ for (unsigned int i = 0; i < V.size(); ++i)
+ deallog << V(i) << '\t';
+ deallog << std::endl;
+ }
+
+int
+main()
+{
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(2);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ Vector<double> V1(5);
+ V1(0) = 1;
+ V1(1) = 2;
+ V1(2) = 3;
+ V1(3) = 4;
+ V1(4) = 5;
+
+ checkReinit2<double>(V1);
+}
+
--- /dev/null
+
+DEAL::Reinit a ReadWrite VectorView<number> with Vector<number> and const size
+DEAL::Creating dummy Vector<number> of size V.size() and filling with zeros
+DEAL::Creating VectorView<number> pointing to dummy Vector<number>
+DEAL::Printing dummy Vector<number>
+DEAL::0 0 0 0 0
+DEAL::Printing VectorView<number> pointing to dummy Vector<number>
+DEAL::0 0 0 0 0
+DEAL::Reinit VectorView<number> to half of Vector<number>
+DEAL::Printing Vector<number>
+DEAL::1.00 2.00 3.00 4.00 5.00
+DEAL::Printing VectorView<number> pointing to half of Vector<number>
+DEAL::1.00 2.00
+DEAL::Incrementing Vector<number> elements using Read-write handle of VectorView<number>
+DEAL::Printing modified Vector<number>
+DEAL::2.00 3.00 3.00 4.00 5.00
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: vector_view_01.cc 2014-03-14 dilangov $
+//
+// Copyright (C) 1998 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+// check VectorView::checkReadWriteConstructor
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/vector.h>
+#include <deal.II/lac/vector_view.h>
+#include <cmath>
+#include <fstream>
+#include <iomanip>
+
+template<typename number>
+ void
+ checkReadWriteConstructor(Vector<number> &V)
+ {
+ deallog << "Read-write constructor" << std::endl;
+ VectorView<number> VV(V.size(), V.begin());
+
+ deallog << "Printing Vector<number>" << std::endl;
+ for (unsigned int i = 0; i < V.size(); ++i)
+ deallog << V(i) << '\t';
+ deallog << std::endl;
+
+ deallog << "Printing VectorView<number> pointing to Vector<number>"
+ << std::endl;
+ for (unsigned int i = 0; i < VV.size(); ++i)
+ deallog << VV(i) << '\t';
+ deallog << std::endl;
+
+ deallog
+ << "Incrementing Vector<number> elements using Read-write handle of VectorView<number>"
+ << std::endl;
+ for (unsigned int i = 0; i < VV.size(); ++i)
+ VV(i) = VV(i) + 1;
+
+ deallog << "Printing modified Vector<number>" << std::endl;
+ for (unsigned int i = 0; i < V.size(); ++i)
+ deallog << V(i) << '\t';
+ deallog << std::endl;
+ }
+
+int
+main()
+{
+ std::ofstream logfile("output");
+ deallog << std::fixed;
+ deallog << std::setprecision(2);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ Vector<double> V1(5);
+ V1(0) = 1;
+ V1(1) = 2;
+ V1(2) = 3;
+ V1(3) = 4;
+ V1(4) = 5;
+
+ checkReadWriteConstructor<double>(V1);
+}
+
--- /dev/null
+
+DEAL::Read-write constructor
+DEAL::Printing Vector<number>
+DEAL::1.00 2.00 3.00 4.00 5.00
+DEAL::Printing VectorView<number> pointing to Vector<number>
+DEAL::1.00 2.00 3.00 4.00 5.00
+DEAL::Incrementing Vector<number> elements using Read-write handle of VectorView<number>
+DEAL::Printing modified Vector<number>
+DEAL::2.00 3.00 4.00 5.00 6.00
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id: full_matrix_00.cc $
+//
+// Copyright (C) 2014 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.
+//
+// ---------------------------------------------------------------------
+
+
+// Tests reinitialisation of square and rectangle LAPACKFullMatrix
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/lac/lapack_full_matrix.h>
+
+#include <fstream>
+#include <iostream>
+
+
+void test (const unsigned int size,
+ const bool reinit_square)
+{
+ // this test can not currently work with matrices smaller than
+ // 1\times2.
+ Assert (size>2, ExcInternalError());
+
+ // initialise a first matrix with the standard constructor and fill
+ // it with some numbers
+ LAPACKFullMatrix<double> M (size, size);
+
+ for (unsigned int i=0; i<size; ++i)
+ for (unsigned int j=0; j<size; ++j)
+ M(i,j) = i+2.*j;
+
+ // initialise a second matrix with the standard constructor and fill
+ // it with some numbers
+ LAPACKFullMatrix<double> N (size+2, size-2);
+
+ for (unsigned int i=0; i<N.m(); ++i)
+ for (unsigned int j=0; j<N.n (); ++j)
+ N(i,j) = i+2.*j;
+
+ // clearly, this should be the case
+ Assert (N.m () != M.m (), ExcInternalError());
+ Assert (N.n () != M.n (), ExcInternalError());
+
+ // if reinit_square is true, reinitialise the rectangle matrix to a
+ // square matrix (use reinit (const unsigned int))
+ if (reinit_square)
+ {
+ // reinitialise the matrix and fill it with some numbers
+ N.reinit (size);
+
+ for (unsigned int i=0; i<N.m (); ++i)
+ for (unsigned int j=0; j<N.n (); ++j)
+ N(i,j) = i+2.*j;
+ }
+
+ // otherwise reinitialise the rectangle matrix to a square one (use
+ // reinit (const unsigned int, const unsigned int))
+ else
+ {
+ // reinitialise the matrix and fill it with some numbers
+ M.reinit (size+2, size-2);
+
+ for (unsigned int i=0; i<M.m (); ++i)
+ for (unsigned int j=0; j<M.n (); ++j)
+ M(i,j) = i+2.*j;
+ }
+
+ // and now this should be true
+ Assert (N.m () == M.m (), ExcInternalError());
+ Assert (N.n () == M.n (), ExcInternalError());
+
+ // in fact, this should be true too, so check
+ for (unsigned int i=0; i<M.m (); ++i)
+ for (unsigned int j=0; j<M.n (); ++j)
+ Assert (M(i,j) == N(i,j), ExcInternalError());
+
+ deallog << "OK" << std::endl;
+}
+
+
+int main()
+{
+ const std::string logname = "output";
+ std::ofstream logfile(logname.c_str());
+
+ logfile.precision(3);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ // Test square matrix initialisation
+ test (4, true);
+ test (5, true);
+ test (6, true);
+
+ // Test rectangle matrix initialisation
+ test (4, false);
+ test (5, false);
+ test (6, false);
+
+
+}
--- /dev/null
+
+DEAL::OK
+DEAL::OK
+DEAL::OK
+DEAL::OK
+DEAL::OK
+DEAL::OK
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2009 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+
+// test DoFTools::extract_constant_modes with FE_Q_DG0
+
+#include "../tests.h"
+#include "coarse_grid_common.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/base/tensor.h>
+#include <deal.II/grid/tria.h>
+#include <deal.II/distributed/tria.h>
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/grid_out.h>
+#include <deal.II/dofs/dof_handler.h>
+#include <deal.II/dofs/dof_handler.h>
+#include <deal.II/dofs/dof_tools.h>
+#include <deal.II/dofs/dof_renumbering.h>
+#include <deal.II/grid/tria_accessor.h>
+#include <deal.II/grid/tria_iterator.h>
+#include <deal.II/dofs/dof_accessor.h>
+
+#include <deal.II/fe/fe_q_dg0.h>
+
+#include <fstream>
+
+
+template<int dim>
+void test()
+{
+ unsigned int myid = Utilities::MPI::this_mpi_process (MPI_COMM_WORLD);
+ parallel::distributed::Triangulation<dim> tr(MPI_COMM_WORLD);
+
+ std::vector<unsigned int> sub(2);
+ sub[0] = Utilities::MPI::n_mpi_processes (MPI_COMM_WORLD);
+ sub[1] = 1;
+ GridGenerator::subdivided_hyper_rectangle(static_cast<Triangulation<dim>&>(tr),
+ sub, Point<2>(0,0), Point<2>(1,1));
+
+ FE_Q_DG0<dim> fe(1);
+ DoFHandler<dim> dofh(tr);
+ dofh.distribute_dofs (fe);
+
+ if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0)
+ deallog << "Total dofs=" << dofh.n_dofs() << std::endl;
+
+ // extract constant modes and print
+ if (myid == 0)
+ {
+ std::vector<bool> mask(fe.n_components(), true);
+
+ std::vector<std::vector<bool> > constant_modes;
+ DoFTools::extract_constant_modes (dofh, mask, constant_modes);
+
+ for (unsigned int i=0; i<constant_modes.size(); ++i)
+ {
+ for (unsigned int j=0; j<constant_modes[i].size(); ++j)
+ deallog << (constant_modes[i][j] ? '1' : '0') << ' ';
+ deallog << std::endl;
+ }
+ }
+}
+
+
+int main(int argc, char *argv[])
+{
+ Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1);
+
+ unsigned int myid = Utilities::MPI::this_mpi_process (MPI_COMM_WORLD);
+
+ deallog.push(Utilities::int_to_string(myid));
+
+ if (myid == 0)
+ {
+ std::ofstream logfile("output");
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+
+ deallog.push("2d");
+ test<2>();
+ deallog.pop();
+ }
+ else
+ {
+ deallog.push("2d");
+ test<2>();
+ deallog.pop();
+ }
+}
--- /dev/null
+
+DEAL:0:2d::Total dofs=14
+DEAL:0:2d::1 1 1 1 0
+DEAL:0:2d::0 0 0 0 1
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2000 - 2013 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.
+//
+// ---------------------------------------------------------------------
+
+
+// test meshworker LoopControl
+// variation of mesh_worker_01 with more cpus and cells
+
+#include "../tests.h"
+#include <deal.II/meshworker/loop.h>
+#include <deal.II/meshworker/assembler.h>
+
+#include <deal.II/fe/fe_dgp.h>
+#include <deal.II/distributed/tria.h>
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/filtered_iterator.h>
+
+#include <fstream>
+#include <iomanip>
+
+using namespace dealii;
+
+
+template <int dim>
+class myIntegrator: public dealii::MeshWorker::LocalIntegrator<dim>
+{
+public:
+ typedef MeshWorker::IntegrationInfo<dim> CellInfo;
+
+ void cell(MeshWorker::DoFInfo<dim> &dinfo, CellInfo &info) const;
+ void boundary(MeshWorker::DoFInfo<dim> &dinfo, CellInfo &info) const;
+ void face(MeshWorker::DoFInfo<dim> &dinfo1, MeshWorker::DoFInfo<dim> &dinfo2,
+ CellInfo &info1, CellInfo &info2) const;
+
+
+};
+
+template <int dim>
+void
+myIntegrator<dim>::cell(MeshWorker::DoFInfo<dim> &info, CellInfo &) const
+{
+ deallog << "C " << info.cell->id() << std::endl;
+}
+
+
+template <int dim>
+void
+myIntegrator<dim>::boundary(MeshWorker::DoFInfo<dim> &info, CellInfo &) const
+{
+ //deallog << "B cell = " << info.cell->id() << " face = " << info.face_number << std::endl;
+}
+
+
+template <int dim>
+void
+myIntegrator<dim>::face(MeshWorker::DoFInfo<dim> &info1, MeshWorker::DoFInfo<dim> &info2,
+ CellInfo &, CellInfo &) const
+{
+ deallog << "F cell1 = " << info1.cell->id()
+ << " face = " << info1.face_number
+ << " cell2 = " << info2.cell->id()
+ << " face2 = " << info2.face_number
+ << std::endl;
+}
+
+
+class DoNothingAssembler
+{
+ public:
+ template <class DOFINFO>
+ void initialize_info(DOFINFO &info, bool face) const {}
+ template<class DOFINFO>
+ void assemble(const DOFINFO &info){}
+ template<class DOFINFO>
+ void assemble(const DOFINFO &info1,
+ const DOFINFO &info2) {}
+
+
+ };
+
+template <int dim>
+void
+test_simple(DoFHandler<dim> &dofs, MeshWorker::LoopControl &lctrl)
+{
+ myIntegrator<dim> local;
+ DoNothingAssembler assembler;
+ MeshWorker::IntegrationInfoBox<dim> info_box;
+
+ MeshWorker::DoFInfo<dim> dof_info(dofs.block_info());
+
+// integration_loop(ITERATOR begin,
+// typename identity<ITERATOR>::type end,
+// DOFINFO &dinfo,
+// INFOBOX &info,
+// const std_cxx1x::function<void (DOFINFO &, typename INFOBOX::CellInfo &)> &cell_worker,
+// const std_cxx1x::function<void (DOFINFO &, typename INFOBOX::CellInfo &)> &boundary_worker,
+// const std_cxx1x::function<void (DOFINFO &, DOFINFO &,
+// typename INFOBOX::CellInfo &,
+// typename INFOBOX::CellInfo &)> &face_worker,
+// ASSEMBLER &assembler,
+// const LoopControl &lctrl)
+//
+
+
+ MeshWorker::integration_loop<dim, dim, typename DoFHandler<dim>::active_cell_iterator, DoNothingAssembler>
+ (dofs.begin_active(), dofs.end(),
+ dof_info, info_box,
+ local,
+ assembler,
+ lctrl);
+
+// MeshWorker::loop<dim, dim, MeshWorker::DoFInfo<dim>, MeshWorker::IntegrationInfoBox<dim> >
+// (dofs.begin_active(), dofs.end(),
+// dof_info, info_box,
+// std_cxx1x::bind (&Integrator<dim>::cell, local, std_cxx1x::_1, std_cxx1x::_2),
+// std_cxx1x::bind (&Integrator<dim>::bdry, local, std_cxx1x::_1, std_cxx1x::_2),
+// std_cxx1x::bind (&Integrator<dim>::face, local, std_cxx1x::_1, std_cxx1x::_2, std_cxx1x::_3, std_cxx1x::_4),
+// local,
+// lctrl);
+}
+
+std::string id_to_string(const CellId &id)
+{
+ std::ostringstream ss;
+ ss << id;
+ return ss.str();
+}
+
+template<int dim>
+void test_loop(DoFHandler<dim> &dofs, MeshWorker::LoopControl &lctrl)
+{
+ deallog << "* own_cells=" << lctrl.own_cells
+ << " ghost_cells=" << lctrl.ghost_cells
+ << " own_faces=" << lctrl.own_faces
+ << " faces_to_ghost=" << lctrl.faces_to_ghost
+ << std::endl;
+ test_simple(dofs, lctrl);
+}
+
+template<int dim>
+void
+test()
+{
+ parallel::distributed::Triangulation<dim> tr(MPI_COMM_WORLD,
+ Triangulation<dim>::none/*,
+ parallel::distributed::Triangulation<dim>::construct_multigrid_hierarchy*/);
+ GridGenerator::hyper_cube(tr);
+ tr.refine_global(2);
+
+ FE_DGP<dim> fe(0);
+
+ DoFHandler<dim> dofs(tr);
+ dofs.distribute_dofs(fe);
+
+ dofs.initialize_local_block_info();
+ deallog << "DoFHandler ndofs=" << dofs.n_dofs() << std::endl;
+
+ MeshWorker::LoopControl lctrl;
+
+ deallog << "*** 1. CELLS ***" << std::endl;
+ /*
+ lctrl.own_faces = MeshWorker::LoopControl::never;
+ lctrl.faces_to_ghost = MeshWorker::LoopControl::never;
+
+ lctrl.own_cells = false; lctrl.ghost_cells = false;
+ test_loop(dofs, lctrl);
+
+ lctrl.own_cells = true; lctrl.ghost_cells = false;
+ test_loop(dofs, lctrl);
+
+ lctrl.own_cells = false; lctrl.ghost_cells = true;
+ test_loop(dofs, lctrl);
+
+ lctrl.own_cells = true; lctrl.ghost_cells = true;
+ test_loop(dofs, lctrl);
+ */
+ deallog << "*** 2. FACES ***" << std::endl;
+
+ lctrl.own_cells = false; lctrl.ghost_cells = false;
+
+ lctrl.own_faces = MeshWorker::LoopControl::one;
+ lctrl.faces_to_ghost = MeshWorker::LoopControl::never;
+ test_loop(dofs, lctrl);
+
+ lctrl.own_faces = MeshWorker::LoopControl::both;
+ lctrl.faces_to_ghost = MeshWorker::LoopControl::never;
+ test_loop(dofs, lctrl);
+
+ lctrl.own_faces = MeshWorker::LoopControl::never;
+ lctrl.faces_to_ghost = MeshWorker::LoopControl::one;
+ test_loop(dofs, lctrl);
+
+ lctrl.own_faces = MeshWorker::LoopControl::never;
+ lctrl.faces_to_ghost = MeshWorker::LoopControl::both;
+ test_loop(dofs, lctrl);
+
+//
+//
+// for (int gc=0;gc<2;gc++)
+// for (int oc=0;oc<2;oc++)
+// for (int of=0;of<3;of++)
+// {
+// lctrl.own_cells = !!oc;
+// lctrl.ghost_cells = !!gc;
+//
+// lctrl.own_faces = (MeshWorker::LoopControl::FaceOption)of;
+// test_loop(dofs, lctrl);
+// }
+}
+
+
+int main (int argc, char **argv)
+{
+ Utilities::MPI::MPI_InitFinalize mpi_initialization (argc, argv);
+ MPILogInitAll log;
+
+ test<2>();
+}
--- /dev/null
+
+DEAL:0::DoFHandler ndofs=16
+DEAL:0::*** 1. CELLS ***
+DEAL:0::*** 2. FACES ***
+DEAL:0::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=0
+DEAL:0::F cell1 = 0_2:00 face = 1 cell2 = 0_2:01 face2 = 0
+DEAL:0::F cell1 = 0_2:00 face = 3 cell2 = 0_2:02 face2 = 2
+DEAL:0::F cell1 = 0_2:01 face = 3 cell2 = 0_2:03 face2 = 2
+DEAL:0::F cell1 = 0_2:02 face = 1 cell2 = 0_2:03 face2 = 0
+DEAL:0::* own_cells=0 ghost_cells=0 own_faces=2 faces_to_ghost=0
+DEAL:0::F cell1 = 0_2:00 face = 1 cell2 = 0_2:01 face2 = 0
+DEAL:0::F cell1 = 0_2:00 face = 3 cell2 = 0_2:02 face2 = 2
+DEAL:0::F cell1 = 0_2:01 face = 0 cell2 = 0_2:00 face2 = 1
+DEAL:0::F cell1 = 0_2:01 face = 3 cell2 = 0_2:03 face2 = 2
+DEAL:0::F cell1 = 0_2:02 face = 1 cell2 = 0_2:03 face2 = 0
+DEAL:0::F cell1 = 0_2:02 face = 2 cell2 = 0_2:00 face2 = 3
+DEAL:0::F cell1 = 0_2:03 face = 0 cell2 = 0_2:02 face2 = 1
+DEAL:0::F cell1 = 0_2:03 face = 2 cell2 = 0_2:01 face2 = 3
+DEAL:0::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=1
+DEAL:0::F cell1 = 0_2:01 face = 1 cell2 = 0_2:10 face2 = 0
+DEAL:0::F cell1 = 0_2:02 face = 3 cell2 = 0_2:20 face2 = 2
+DEAL:0::F cell1 = 0_2:03 face = 1 cell2 = 0_2:12 face2 = 0
+DEAL:0::F cell1 = 0_2:03 face = 3 cell2 = 0_2:21 face2 = 2
+DEAL:0::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=2
+DEAL:0::F cell1 = 0_2:01 face = 1 cell2 = 0_2:10 face2 = 0
+DEAL:0::F cell1 = 0_2:02 face = 3 cell2 = 0_2:20 face2 = 2
+DEAL:0::F cell1 = 0_2:03 face = 1 cell2 = 0_2:12 face2 = 0
+DEAL:0::F cell1 = 0_2:03 face = 3 cell2 = 0_2:21 face2 = 2
+
+DEAL:1::DoFHandler ndofs=16
+DEAL:1::*** 1. CELLS ***
+DEAL:1::*** 2. FACES ***
+DEAL:1::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=0
+DEAL:1::F cell1 = 0_2:10 face = 1 cell2 = 0_2:11 face2 = 0
+DEAL:1::F cell1 = 0_2:10 face = 3 cell2 = 0_2:12 face2 = 2
+DEAL:1::F cell1 = 0_2:11 face = 3 cell2 = 0_2:13 face2 = 2
+DEAL:1::F cell1 = 0_2:12 face = 1 cell2 = 0_2:13 face2 = 0
+DEAL:1::F cell1 = 0_2:20 face = 1 cell2 = 0_2:21 face2 = 0
+DEAL:1::F cell1 = 0_2:20 face = 3 cell2 = 0_2:22 face2 = 2
+DEAL:1::F cell1 = 0_2:21 face = 3 cell2 = 0_2:23 face2 = 2
+DEAL:1::F cell1 = 0_2:22 face = 1 cell2 = 0_2:23 face2 = 0
+DEAL:1::* own_cells=0 ghost_cells=0 own_faces=2 faces_to_ghost=0
+DEAL:1::F cell1 = 0_2:10 face = 1 cell2 = 0_2:11 face2 = 0
+DEAL:1::F cell1 = 0_2:10 face = 3 cell2 = 0_2:12 face2 = 2
+DEAL:1::F cell1 = 0_2:11 face = 0 cell2 = 0_2:10 face2 = 1
+DEAL:1::F cell1 = 0_2:11 face = 3 cell2 = 0_2:13 face2 = 2
+DEAL:1::F cell1 = 0_2:12 face = 1 cell2 = 0_2:13 face2 = 0
+DEAL:1::F cell1 = 0_2:12 face = 2 cell2 = 0_2:10 face2 = 3
+DEAL:1::F cell1 = 0_2:13 face = 0 cell2 = 0_2:12 face2 = 1
+DEAL:1::F cell1 = 0_2:13 face = 2 cell2 = 0_2:11 face2 = 3
+DEAL:1::F cell1 = 0_2:20 face = 1 cell2 = 0_2:21 face2 = 0
+DEAL:1::F cell1 = 0_2:20 face = 3 cell2 = 0_2:22 face2 = 2
+DEAL:1::F cell1 = 0_2:21 face = 0 cell2 = 0_2:20 face2 = 1
+DEAL:1::F cell1 = 0_2:21 face = 3 cell2 = 0_2:23 face2 = 2
+DEAL:1::F cell1 = 0_2:22 face = 1 cell2 = 0_2:23 face2 = 0
+DEAL:1::F cell1 = 0_2:22 face = 2 cell2 = 0_2:20 face2 = 3
+DEAL:1::F cell1 = 0_2:23 face = 0 cell2 = 0_2:22 face2 = 1
+DEAL:1::F cell1 = 0_2:23 face = 2 cell2 = 0_2:21 face2 = 3
+DEAL:1::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=1
+DEAL:1::F cell1 = 0_2:12 face = 3 cell2 = 0_2:30 face2 = 2
+DEAL:1::F cell1 = 0_2:13 face = 3 cell2 = 0_2:31 face2 = 2
+DEAL:1::F cell1 = 0_2:21 face = 1 cell2 = 0_2:30 face2 = 0
+DEAL:1::F cell1 = 0_2:23 face = 1 cell2 = 0_2:32 face2 = 0
+DEAL:1::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=2
+DEAL:1::F cell1 = 0_2:10 face = 0 cell2 = 0_2:01 face2 = 1
+DEAL:1::F cell1 = 0_2:12 face = 0 cell2 = 0_2:03 face2 = 1
+DEAL:1::F cell1 = 0_2:12 face = 3 cell2 = 0_2:30 face2 = 2
+DEAL:1::F cell1 = 0_2:13 face = 3 cell2 = 0_2:31 face2 = 2
+DEAL:1::F cell1 = 0_2:20 face = 2 cell2 = 0_2:02 face2 = 3
+DEAL:1::F cell1 = 0_2:21 face = 1 cell2 = 0_2:30 face2 = 0
+DEAL:1::F cell1 = 0_2:21 face = 2 cell2 = 0_2:03 face2 = 3
+DEAL:1::F cell1 = 0_2:23 face = 1 cell2 = 0_2:32 face2 = 0
+
+
+DEAL:2::DoFHandler ndofs=16
+DEAL:2::*** 1. CELLS ***
+DEAL:2::*** 2. FACES ***
+DEAL:2::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=0
+DEAL:2::F cell1 = 0_2:30 face = 1 cell2 = 0_2:31 face2 = 0
+DEAL:2::F cell1 = 0_2:30 face = 3 cell2 = 0_2:32 face2 = 2
+DEAL:2::F cell1 = 0_2:31 face = 3 cell2 = 0_2:33 face2 = 2
+DEAL:2::F cell1 = 0_2:32 face = 1 cell2 = 0_2:33 face2 = 0
+DEAL:2::* own_cells=0 ghost_cells=0 own_faces=2 faces_to_ghost=0
+DEAL:2::F cell1 = 0_2:30 face = 1 cell2 = 0_2:31 face2 = 0
+DEAL:2::F cell1 = 0_2:30 face = 3 cell2 = 0_2:32 face2 = 2
+DEAL:2::F cell1 = 0_2:31 face = 0 cell2 = 0_2:30 face2 = 1
+DEAL:2::F cell1 = 0_2:31 face = 3 cell2 = 0_2:33 face2 = 2
+DEAL:2::F cell1 = 0_2:32 face = 1 cell2 = 0_2:33 face2 = 0
+DEAL:2::F cell1 = 0_2:32 face = 2 cell2 = 0_2:30 face2 = 3
+DEAL:2::F cell1 = 0_2:33 face = 0 cell2 = 0_2:32 face2 = 1
+DEAL:2::F cell1 = 0_2:33 face = 2 cell2 = 0_2:31 face2 = 3
+DEAL:2::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=1
+DEAL:2::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=2
+DEAL:2::F cell1 = 0_2:30 face = 0 cell2 = 0_2:21 face2 = 1
+DEAL:2::F cell1 = 0_2:30 face = 2 cell2 = 0_2:12 face2 = 3
+DEAL:2::F cell1 = 0_2:31 face = 2 cell2 = 0_2:13 face2 = 3
+DEAL:2::F cell1 = 0_2:32 face = 0 cell2 = 0_2:23 face2 = 1
+
--- /dev/null
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2014 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.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Guido Kanschat, Texas A&M University, 2009
+ */
+
+#include "../tests.h"
+#include <deal.II/lac/sparse_matrix.h>
+#include <deal.II/lac/compressed_sparsity_pattern.h>
+#include <deal.II/lac/solver_cg.h>
+#include <deal.II/lac/precondition.h>
+#include <deal.II/lac/precondition_block.h>
+#include <deal.II/lac/block_vector.h>
+#include <deal.II/lac/trilinos_sparse_matrix.h>
+#include <deal.II/lac/trilinos_precondition.h>
+
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/distributed/grid_refinement.h>
+#include <deal.II/grid/filtered_iterator.h>
+
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_dgp.h>
+#include <deal.II/fe/fe_dgq.h>
+#include <deal.II/dofs/dof_tools.h>
+#include <deal.II/multigrid/mg_dof_handler.h>
+
+#include <deal.II/meshworker/dof_info.h>
+#include <deal.II/meshworker/integration_info.h>
+#include <deal.II/meshworker/assembler.h>
+#include <deal.II/meshworker/loop.h>
+
+#include <deal.II/integrators/laplace.h>
+
+#include <deal.II/multigrid/mg_tools.h>
+#include <deal.II/multigrid/multigrid.h>
+#include <deal.II/multigrid/mg_matrix.h>
+#include <deal.II/multigrid/mg_transfer.h>
+#include <deal.II/multigrid/mg_coarse.h>
+#include <deal.II/multigrid/mg_smoother.h>
+
+#include <deal.II/base/function_lib.h>
+#include <deal.II/base/quadrature_lib.h>
+#include <deal.II/numerics/vector_tools.h>
+#include <deal.II/numerics/data_out.h>
+
+#include <iostream>
+#include <fstream>
+
+
+typedef parallel::distributed::Triangulation<2,3>::cell_iterator cell_iterator;
+DeclException1(ExcMissingCell,
+ cell_iterator,
+ << "Trying to find cell " << arg1 << " but it doesn't appear to be in the list");
+
+int main(int argc, char *argv[])
+{
+ dealii::Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv);
+ MPILogInitAll log;
+
+ if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0)
+ {
+ static std::ofstream logfile("output");
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+ deallog.threshold_double(1.e-10);
+ }
+
+ parallel::distributed::Triangulation<2,3> triangulation(MPI_COMM_WORLD,
+ typename Triangulation<2,3>::MeshSmoothing
+ (Triangulation<2,3>::smoothing_on_refinement |
+ Triangulation<2,3 >::smoothing_on_coarsening));
+ GridGenerator::torus(triangulation, 1, 0.2);
+
+ // create a set of all cells, and insert all cells into it
+ std::set<parallel::distributed::Triangulation<2,3>::cell_iterator> cells;
+ for (parallel::distributed::Triangulation<2,3>::cell_iterator cell= triangulation.begin(0);
+ cell!=triangulation.end(0);
+ ++cell)
+ {
+ cells.insert (cell);
+ if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0)
+ deallog << "Adding cell " << cell << std::endl;
+ }
+ if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0)
+ deallog << "List contains " << cells.size() << " items" << std::endl;
+
+ // verify that every cell is in there
+ for(parallel::distributed::Triangulation<2,3>::cell_iterator cell= triangulation.begin(0);
+ cell!=triangulation.end(0);
+ ++cell)
+ Assert (cells.find(cell)!=cells.end(),
+ ExcMissingCell(cell));
+
+ // refine triangulation and verify that every coarse mesh cell is in there
+ triangulation.refine_global(2);
+
+ if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0)
+ deallog << "List contains " << cells.size() << " items" << std::endl;
+ for(parallel::distributed::Triangulation<2,3>::cell_iterator cell= triangulation.begin(0);
+ cell!=triangulation.end(0);
+ ++cell)
+ Assert (cells.find(cell)!=cells.end(),
+ ExcMissingCell(cell));
+}
--- /dev/null
+
+DEAL:0::Adding cell 0.0
+DEAL:0::Adding cell 0.1
+DEAL:0::Adding cell 0.2
+DEAL:0::Adding cell 0.3
+DEAL:0::Adding cell 0.4
+DEAL:0::Adding cell 0.5
+DEAL:0::Adding cell 0.6
+DEAL:0::Adding cell 0.7
+DEAL:0::Adding cell 0.8
+DEAL:0::Adding cell 0.9
+DEAL:0::Adding cell 0.10
+DEAL:0::Adding cell 0.11
+DEAL:0::Adding cell 0.12
+DEAL:0::Adding cell 0.13
+DEAL:0::Adding cell 0.14
+DEAL:0::Adding cell 0.15
+DEAL:0::List contains 16 items
+DEAL:0::List contains 16 items
+
+