This file is indexed.

/usr/include/libmesh/xdr_mhead.h is in libmesh-dev 0.7.1-2ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
// $Id: xdr_mhead.h 3874 2010-07-02 21:57:26Z roystgnr $

// The libMesh Finite Element Library.
// Copyright (C) 2002-2008 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
  
// This library is free software; you can 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.
  
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// Lesser General Public License for more details.
  
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

#ifndef __xdr_mhead_h__
#define __xdr_mhead_h__

// C++ includes
#include <vector>

// Local includes
#include "xdr_head.h" // for base class
#include "xdr_mesh.h" // for friend
#include "enum_elem_type.h" // for ElemType

namespace libMesh
{

/**
 * The \p XdrMHEAD class.
 * This class is responsible
 * for reading/writing \p xdr mesh file headers.
 *
 * @author Bill Barth, Robert McLay.  Modified: John W. Peterson
 */
class XdrMHEAD : public XdrHEAD
{
  friend class XdrMESH;
public:
  /**
   * Constructor.  Initializes the number of blocks in the mesh to 1
   * and the number of levels to zero.
   */
  XdrMHEAD() : _n_blocks(1) {}

  /**
   * Destructor.
   */
  ~XdrMHEAD()                          {}

  /**
   * Set the number of
   * elements in the mesh.
   */
  void setNumEl(int numel)             { m_numel = numel; }

  /**
   * Get the number of
   * elements in the mesh.
   */
  int  getNumEl() const                { return m_numel; }

  /**
   * Set the mesh weighting.
   * You probably shouldn't
   * set this yourself ...
   */
  void setSumWghts(int sumWghts)       { m_sumWghts = sumWghts; }

  /**
   * Get the mesh weighting.
   *
   * @sect2{DEAL mesh specific get/set functions}
   */
  int  getSumWghts() const             { return m_sumWghts; }

  /**
   * A mesh block by definition contains
   * only a single type of element.
   *
   * @return The number of mesh blocks.
   */
  unsigned int get_n_blocks() const { return _n_blocks; }

  /**
   * Sets the number of mesh blocks.
   */
  void set_n_blocks(const unsigned int nb) { this->_n_blocks = nb; }

  /**
   * Element block types are defined in elem_type.h.
   * They may be for example TRI3, TRI6, QUAD4, etc.
   *
   * @return A writeable reference to the vector of element block types.
   */
  void get_block_elt_types(std::vector<ElemType>& bet) const { bet = block_elt_types; }

  /**
   * Set the vector of element block types
   */
  void set_block_elt_types(const std::vector<ElemType>& bet) { block_elt_types = bet; }

  /**
   * The size of each element block is
   * the total number of a given type of
   * element in the mesh.
   *
   * @return The vector of block sizes
   */
  void get_num_elem_each_block(std::vector<unsigned int>& neeb) const { neeb = num_elem_each_block; }

  /**
   * Set the vector of block sizes
   */
  void set_num_elem_each_block(const std::vector<unsigned int>& neeb) { num_elem_each_block = neeb; }

    
private:
    
  /**
   * DEAL mesh specific variables:
   *
   *
   * Tells the total number of element
   * blocks.  An element block is
   * contains only a single type of
   * element.
   */
  unsigned int _n_blocks;


  /**
   * A vector of length n_blocks
   * which describes the elemnt type
   * in each block e.g. TRI, QUAD, etc.
   * Note: The element type uniquely
   * defines the number of nodes for
   * that element.
   * @see elem_type.h for more
   */
  std::vector<ElemType> block_elt_types;

  /**
   * A vector of length n_blocks
   * containing the number of elements
   * in each block.
   */
  std::vector<unsigned int> num_elem_each_block;

};

} // namespace libMesh

#endif // #ifndef __xdr_mhead_h__