<commit_before>// ---------------------------------------------------------------------
//
// Copyright (C) 2006 - 2015 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.
//
// ---------------------------------------------------------------------

#ifndef dealii__dof_faces_h
#define dealii__dof_faces_h


#include <deal.II/base/config.h>
#include <deal.II/base/exceptions.h>
#include <deal.II/dofs/dof_objects.h>
#include <vector>

DEAL_II_NAMESPACE_OPEN

namespace internal
{
  /**
   * A namespace for internal data structures of the DoFHandler group of
   * classes.
   *
   * @ingroup dofs
   */
  namespace DoFHandler
  {

    /**
     *
     * <h4>DoFFaces</h4>
     *
     * These classes are similar to the DoFLevel classes. We here store
     * information that is associated with faces, rather than cells, as this
     * information is independent of the hierarchical structure of cells,
     * which are organized in levels. In 2D we store information on degrees of
     * freedom located on lines whereas in 3D we store information on degrees
     * of freedom located on quads and lines. In 1D we do nothing, as the
     * faces of lines are vertices which are treated separately.
     *
     * Apart from the DoFObjects object containing the data to store (degree
     * of freedom indices) we do not store any data or provide any
     * functionality. However, we do implement a function to determine an
     * estimate of the memory consumption of the contained DoFObjects
     * object(s).
     *
     * The data contained isn't usually directly accessed. Rather, except for
     * some access from the DoFHandler class, access is usually through the
     * DoFAccessor::set_dof_index() and DoFAccessor::dof_index() functions or
     * similar functions of derived classes that in turn access the member
     * variables using the DoFHandler::get_dof_index() and corresponding
     * setter functions. Knowledge of the actual data format is therefore
     * encapsulated to the present hierarchy of classes as well as the
     * dealii::DoFHandler class.
     *
     * @author <NAME>, 2006
     */
    template <int dim>
    class DoFFaces
    {
      /**
       * Make the constructor private to prevent the use of this template,
       * only the specializations should be used
       */
    private:
      DoFFaces();
    };

    /**
     * Store the indices of degrees of freedom on faces in 1D. As these would
     * be vertices, which are treated separately, don't do anything.
     *
     * @author <NAME>, 2006
     */
    template <>
    class DoFFaces<1>
    {
    public:
      /**<commit_msg>Delete a constructor instead of making it private.<commit_after>// ---------------------------------------------------------------------
//
// Copyright (C) 2006 - 2015 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.
//
// ---------------------------------------------------------------------

#ifndef dealii__dof_faces_h
#define dealii__dof_faces_h


#include <deal.II/base/config.h>
#include <deal.II/base/exceptions.h>
#include <deal.II/dofs/dof_objects.h>
#include <vector>

DEAL_II_NAMESPACE_OPEN

namespace internal
{
  /**
   * A namespace for internal data structures of the DoFHandler group of
   * classes.
   *
   * @ingroup dofs
   */
  namespace DoFHandler
  {

    /**
     *
     * <h4>DoFFaces</h4>
     *
     * These classes are similar to the DoFLevel classes. We here store
     * information that is associated with faces, rather than cells, as this
     * information is independent of the hierarchical structure of cells,
     * which are organized in levels. In 2D we store information on degrees of
     * freedom located on lines whereas in 3D we store information on degrees
     * of freedom located on quads and lines. In 1D we do nothing, as the
     * faces of lines are vertices which are treated separately.
     *
     * Apart from the DoFObjects object containing the data to store (degree
     * of freedom indices) we do not store any data or provide any
     * functionality. However, we do implement a function to determine an
     * estimate of the memory consumption of the contained DoFObjects
     * object(s).
     *
     * The data contained isn't usually directly accessed. Rather, except for
     * some access from the DoFHandler class, access is usually through the
     * DoFAccessor::set_dof_index() and DoFAccessor::dof_index() functions or
     * similar functions of derived classes that in turn access the member
     * variables using the DoFHandler::get_dof_index() and corresponding
     * setter functions. Knowledge of the actual data format is therefore
     * encapsulated to the present hierarchy of classes as well as the
     * dealii::DoFHandler class.
     *
     * @author <NAME>, 2006
     */
    template <int dim>
    class DoFFaces
    {
    public:
      /**
       * Constructor. This constructor is deleted to prevent the use of this template,
       * as only the specializations should be used
       */
      DoFFaces() = delete;
    };

    /**
     * Store the indices of degrees of freedom on faces in 1D. As these would
     * be vertices, which are treated separately, don't do anything.
     *
     * @author <NAME>, 2006
     */
    template <>
    class DoFFaces<1>
    {
    public:
      /**
{'fraction_non_alphanumeric': 0.11366601435094585, 'fraction_numerical': 0.008153946510110893, 'mean_word_length': 2.3331521739130436, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 25, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5754902', 'n_tokens_mistral': 1653, 'n_tokens_neox': 1584, 'n_words': 730}