This file is indexed.

/usr/include/ug/fegeom.h is in libug-dev 3.12.1-2.

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
// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
// vi: set et ts=4 sw=2 sts=2:
/****************************************************************************/
/*                                                                          */
/* File:      fegeom.h                                                      */
/*                                                                          */
/* Purpose:   Finite--Element geometry related data                         */
/*                        dimension independent, general elmement                                               */
/*                                                                          */
/* Author:        Peter Bastian                                                                                         */
/*                        Institut fuer Computeranwendungen III                                                 */
/*                        Universitaet Stuttgart                                                                                */
/*                        Pfaffenwaldring 27                                                                                    */
/*                        70569 Stuttgart                                                                                               */
/*                        email: peter@ica3.uni-stuttgart.de                                                    */
/*                        fon: 0049-(0)711-685-7003                                                                             */
/*                        fax: 0049-(0)711-685-7000                                                                             */
/*                                                                                                                                                      */
/* History:   06.05.96 begin, ug version 3.2                                                            */
/*            02.07.96 begin, adapted from FV to FE                                                     */
/*                                                                          */
/* Remarks:                                                                 */
/*                                                                          */
/****************************************************************************/


/* RCS_ID
   $Header$
 */

/****************************************************************************/
/*                                                                          */
/* include files                                                            */
/*            system include files                                          */
/*            application include files                                     */
/*                                                                          */
/****************************************************************************/

#ifndef __FEGEOM__
#define __FEGEOM__

#include <cstdio>
#include <cstring>
#include <ctype.h>
#include <cmath>

#include "ugdevices.h"
#include "enrol.h"
#include "ugtypes.h"
#include "misc.h"
#include "gm.h"
#include "ugenv.h"
#include "ugm.h"
#include "algebra.h"
#include "cmdint.h"
#include "commands.h"
#include "helpmsg.h"
#include "evm.h"
#include "domain.h"
#include "quadrature.h"

#include "namespace.h"

START_UGDIM_NAMESPACE


#ifndef MAXNC
#define MAXNC           MAX_CORNERS_OF_ELEM             /* just to make it more readable*/
#endif

#define MAXCON          (MAXNC*(MAXNC-1))/2             /* need also internal edges !   */

#ifndef MAXS
#define MAXS            MAX_SIDES_OF_ELEM               /* just to make it more readable*/
#endif

#define MAXGP MAX_INT_POINTS

/****************************************************************************/
/*                                                                                                                                                      */
/* definition of exported data structures                                                                       */
/*                                                                                                                                                      */
/****************************************************************************/

typedef struct {
  DOUBLE weight;                                        /* weight for that gauss point                  */
  DOUBLE local[DIM];                                    /* position of gp in local coordinates  */
  DOUBLE N[MAXNC];                                      /* value of basis functions at gp               */
  DOUBLE gradN[MAXNC][DIM];                     /* grad of basis functions at gp                */
  DOUBLE Jinv[DIM][DIM];                        /* inverse of Jacobian of trafo at gp   */
  DOUBLE AbsdetJ;                                       /* determinant of jacobian of trafo gp  */
} GaussPoint;

typedef struct {
  INT i,j;                                                      /* edge between node i and j                    */
  DOUBLE edge[DIM];                                     /* edge vector pointing from i to j             */
  DOUBLE local[DIM];                                    /* mid point in local coords                    */
  DOUBLE Jinv[DIM][DIM];                        /* inverse of Jacobian of trafo at em   */
  DOUBLE detJ;                                          /* determinant of jacobian of trafo em  */
} Edge;

typedef struct {
  DOUBLE weight;                                        /* weight for gauss points                              */
  DOUBLE local[DIM];                                    /* local coordinates of gauss point             */
  DOUBLE param[DIM];                                    /* parameter for bgp on patch                   */
  DOUBLE surfel;                                        /* surface element at gauss point               */
  DOUBLE N[MAXNC];                                      /* basis function of corner at bgp              */
} BoundaryGaussPoint;

typedef struct {
  INT side;                                         /* side id                                      */
  INT nc;                                                       /* number of corners                                    */
  INT corners[MAXNC];                                   /* at most four corners...                              */
  INT nbgp;                                                     /* number of boundary gauss points              */
  BoundaryGaussPoint bgp[MAXGP];        /* boundary gauss points of this side   */
} BoundarySide;

typedef struct {
  ELEMENT *e;                                                   /* data for this element                                */
  INT tag;                                                      /* element type                                                 */

  INT nc;                                                       /* number of corners                                    */
  INT ngp;                                                      /* number of Gauss points in quadrature */
  INT ned;                                                      /* number of edges including internal   */
  INT nbs;                                                      /* number of boundary sides                             */

  DOUBLE co_global[MAXNC][DIM];         /* points in global space, corners      */
  DOUBLE co_local[MAXNC][DIM];          /* points in local space, corners       */
  INT node_property[MAXNC];                     /* subdomain info for corner                    */

  GaussPoint gp[MAXGP];                         /* quantities at gauss points                   */
  Edge ed[MAXCON];                                      /* quantities on edges                                  */
  BoundarySide bs[MAXS];                        /* element sides on domain boundary             */

} FEElementGeometry;                            /* geometry data for a general element  */

/****************************************************************************/
/*                                                                                                                                                      */
/* definition of exported functions                                                                                     */
/*                                                                                                                                                      */
/****************************************************************************/

INT EvaluateFEGeometry (ELEMENT *e, FEElementGeometry *geo);

END_UGDIM_NAMESPACE

#endif