This file is indexed.

/usr/include/rheolef/band.h is in librheolef-dev 6.6-1build2.

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
#ifndef _RHEOLEF_BAND_H
#define _RHEOLEF_BAND_H
///
/// This file is part of Rheolef.
///
/// Copyright (C) 2000-2009 Pierre Saramito <Pierre.Saramito@imag.fr>
///
/// Rheolef is free software; you can redistribute it and/or modify
/// it under the terms of the GNU General Public License as published by
/// the Free Software Foundation; either version 2 of the License, or
/// (at your option) any later version.
///
/// Rheolef 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 General Public License for more details.
///
/// You should have received a copy of the GNU General Public License
/// along with Rheolef; if not, write to the Free Software
/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
/// 
/// =========================================================================
/// Banded level set routines 
///
/// Authors: Lara Aborm, Jocelyn Etienne, Pierre Saramito
///
#include "rheolef/field.h"
#include "rheolef/level_set.h"

namespace rheolef {

/*Class:
NAME: @code{band} - compute the band arround a level set
@findex  level_set
@clindex field
@clindex geo

DESCRIPTION:
  Given a function @code{fh} defined in a domain @code{Lambda},
  compute the band of elements intersecting the
  level set defined by @{x in Lambda, fh(x) = 0@}. 
  This class is used for solving problems defined on a 
  surface described by a level set function (See @ref{level_set algorithm}).

ACCESSORS:
  Each side in the surface mesh, as returned by the @code{level_set} member
  function, is included into an element of the band mesh, as returned by the
  @code{band} member function. Moreover, in the distributed memory environment,
  this correspondance is on the same process, so local indexes can be used
  for this correspondance: this is the @code{sid_ie2bnd_ie} member functions.

BAND TOPOLOGY AND DOMAINS:
  For the direct resolution of systems posed on the band, the mesh returned
  by the @code{band()} provides some domains of vertices.
  The @code{"zero"} vertex domain lists all vertices @code{xi} such that @code{fh(xi)=0}.
  The @code{"isolated"} vertex domain lists all vertices @code{xi}
  such that @code{fh(xi)!=0} and @code{xi} is contained by only one element @code{K}
  and all vertices @code{xj!=xi} of @code{K} satifies @code{fh(xj)=0}.
  Others vertices of the band, separated by the zero and isolated ones,
  are organizd by connected components:
  the @code{n_connex_component} member function returns its number.
  Corresponding vertex domains of the band are named @code{"cc<i>"}
  where @code{<i>} should be replaced
  by any number between 0 and @code{n_connex_component-1}.
End: */

//<band:
template <class T, class M = rheo_default_memory_model>
class band_basic {
public:

  typedef typename geo_basic<T,M>::size_type size_type;

// allocators:

  band_basic();
  band_basic(const field_basic<T,M>& fh,
    const level_set_option_type& opt = level_set_option_type());

/// accessors:

  const geo_basic<T,M>& band() const { return _band; }
  const geo_basic<T,M>& level_set() const { return _gamma; }
  size_type sid_ie2bnd_ie (size_type sid_ie) const { return _sid_ie2bnd_ie [sid_ie]; }
  size_type n_connected_component() const { return _ncc; }

// data:
protected:
  geo_basic<T,M>     _gamma;
  geo_basic<T,M>     _band;
  array<size_type,M> _sid_ie2bnd_ie;
  size_type          _ncc;
};
typedef band_basic<Float> band;
//>band:

// ----------------------------------------------------------------------------
// inlined
// ----------------------------------------------------------------------------
template<class T, class M>
inline
band_basic<T,M>::band_basic ()
  : _gamma(),
    _band(),
    _sid_ie2bnd_ie(),
    _ncc(0)
{
}

} // namespace
#endif // _RHEOLEF_BAND_H