This file is indexed.

/usr/include/MAdLib/MeshDataBaseParallelInterface.h is in libmadlib-dev 1.3.0-2.1.

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
// -*- C++ -*-
// -------------------------------------------------------------------
// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
//
// See the Copyright.txt and License.txt files for license information. 
// You should have received a copy of these files along with MAdLib. 
// If not, see <http://www.madlib.be/license/>
//
// Please report all bugs and problems to <contrib@madlib.be>
//
// Authors: J.-F. Remacle, C. Dobrzynski, K. Hillewaert, G. Compere
// -------------------------------------------------------------------

#ifndef H_MESHDATABASEPARALLELINTEFACE
#define H_MESHDATABASEPARALLELINTEFACE

#include "MeshDataBaseInterface.h"
#include "MeshDataBaseComm.h"
#include "MeshDataBaseCommPeriodic.h"

#include <vector>

namespace MAd {

  class MDB_DataExchanger;
  class MDB_DataExchangerPeriodic;

  // -------------------------------------------------------------------

#ifdef PARALLEL
  void M_writeParallel(pMesh, const char*, int version=2);
#endif 

  // -------------------------------------------------------------------

  /*! \brief Return true if on a parallel or periodic interface \ingroup internal */ 
  bool EN_isInterface(pEntity pv);

  /*! \brief Return true if on a parallel or periodic interface \ingroup parallel */ 
  bool V_isInterface(pVertex pv);

  /*! \brief Return true if pv is a (periodic) copy of vertex with tag id \ingroup parallel */
  bool V_corresponds(pVertex pv,int id);

  /*! \brief Return size of the list and list is an array containing 
    proc numbers where pv exist except calling proc \ingroup parallel */ 
  int  V_listInterface(pVertex pv, std::vector<int>* list);

  /*! \brief  Return true if edge is //possibly// on a parallel or periodic interface \ingroup internal */ 
  bool E_isPotentialInterface(pMesh, pEdge);

  /*! \brief  Return true if on a parallel or periodic interface \ingroup parallel */ 
  bool E_isInterface(pEdge);

  /*! \brief Return true if the edge corresponds either directly or periodically \ingroup parallel */
  bool E_corresponds(pEdge,int,int);

  /*! \brief  Return true if on a parallel interface, distProc is 
    (one of) the proc sharing the edge and distVt is a list 
    of the pointers to the vertices on the distProc mesh \ingroup parallel */ 
  bool E_isInterface(pMesh, pEdge, int * distProc,
                     std::vector<pVertex>* distVt);
  
  /*! \brief  Return true if face is potentially on a parallel interface \ingroup internal */ 
  bool F_isPotentialInterface(pMesh, pFace);

  /*! \brief  Return true if face is on a parallel interface \ingroup parallel */ 
  bool F_isInterface(pFace);

  /*! \brief  Return true if on a parallel interface, distProc is the 
    proc sharing the face and distVt is a list of the pointers 
    to the vertices on the distant mesh \ingroup parallel */ 
  bool F_isInterface(pMesh, pFace, int * distProc,
                     std::vector<pVertex>* distVt);
  /*! \brief  Return true if on a parallel interface (always false) \ingroup parallel */ 
  bool R_isInterface(pRegion pr);

  // -------------------------------------------------------------------

  /*! \brief Fill the attached pointer containing the distant proc
    numbers and the distant node pointers \ingroup parallel */ 
  void V_createInfoInterface(pMesh mesh, pMeshDataId tagVertex);

  /*! \brief Fill the attached pointer containing the distant proc
    numbers and the distant edge pointers \ingroup parallel */ 
  void E_createInfoInterface(pMesh mesh, pMeshDataId tagEdge);

  /*! \brief Fill the attached pointer containing the distant proc
    numbers and the distant face pointers \ingroup parallel */ 
  void F_createInfoInterface(pMesh mesh, pMeshDataId tagFace);

//   void UpdateIDGlobal(pMesh mesh, int IdGlobal);

  // -------------------------------------------------------------------
#ifdef PARALLEL

  // interface elt migration
  void Balance(pMesh mesh,MDB_DataExchanger &de);
  void Balance2(pMesh mesh,MDB_DataExchanger &de);
  void BalanceRandom(pMesh mesh,MDB_DataExchanger &de);
  int BalanceManifold(pMesh mesh,MDB_DataExchanger &de);

#ifdef _HAVE_PARMETIS_
  // load balancing with metis
  void BalanceMetis(pMesh mesh,MDB_DataExchanger &de);
  void BalanceMetis2(pMesh mesh,MDB_DataExchanger &de);
#endif

  // migration of elt tagged tagElt
  void loadBalancing(pMesh mesh,pMeshDataId tagElt, MDB_DataExchanger &de);  
  void loadBalancing2(pMesh mesh,pMeshDataId tagElt, MDB_DataExchanger &de);
#endif

  //Move periodic interfaces
  void BalancePeriodic(pMesh mesh,int dim,MDB_DataExchanger &de,
                       MDB_DataExchangerPeriodic &deperiodic,std::vector<std::vector<int> >& transfo);

// -------------------------------------------------------------------

//migration of periodic elt
void PeriodicInterfaceMigration(MAd::pMesh mesh,MAd::pMeshDataId tagElt,MAd::pMeshDataId tagMove,
                                MAd::pMeshDataId tagTransfo, MDB_DataExchanger &de,
                                MDB_DataExchangerPeriodic &deperiodic); 


void GroupPeriodicTetra(MAd::pMesh mesh, MDB_DataExchanger &de,
                        MDB_DataExchangerPeriodic &deperiodic);


// -------------------------------------------------------------------

}

#endif