/usr/include/gmsh/Levy3D.h is in libgmsh-dev 2.8.5+dfsg-1.1+b1.
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 | // Gmsh - Copyright (C) 1997-2014 C. Geuzaine, J.-F. Remacle
//
// See the LICENSE.txt file for license information. Please report all
// bugs and problems to the public mailing list <gmsh@geuz.org>.
//
// Contributor(s):
// Tristan Carrier
#ifndef _LEVY3D_H_
#define _LEVY3D_H_
#include <list>
#include "SVector3.h"
#include "fullMatrix.h"
#include "GRegion.h"
#include "MElementOctree.h"
class VoronoiVertex{
private:
SPoint3 point;
int category;
int index1;
int index2;
int index3;
int index4;
SVector3 normal1;
SVector3 normal2;
double h;
public:
VoronoiVertex();
~VoronoiVertex();
SPoint3 get_point();
int get_category();
int get_index1();
int get_index2();
int get_index3();
int get_index4();
SVector3 get_normal1();
SVector3 get_normal2();
double get_h();
void set_point(SPoint3);
void set_category(int);
void set_index1(int);
void set_index2(int);
void set_index3(int);
void set_index4(int);
void set_normal1(SVector3);
void set_normal2(SVector3);
void set_h(double);
};
class Tensor{
private:
double t11,t21,t31,t12,t22,t32,t13,t23,t33;
public:
Tensor();
~Tensor();
void set_t11(double);
void set_t21(double);
void set_t31(double);
void set_t12(double);
void set_t22(double);
void set_t32(double);
void set_t13(double);
void set_t23(double);
void set_t33(double);
double get_t11();
double get_t21();
double get_t31();
double get_t12();
double get_t22();
double get_t32();
double get_t13();
double get_t23();
double get_t33();
};
class VoronoiElement{
private:
VoronoiVertex v1;
VoronoiVertex v2;
VoronoiVertex v3;
VoronoiVertex v4;
double jacobian;
double dh_dx;
double dh_dy;
double dh_dz;
Tensor t;
public:
VoronoiElement();
~VoronoiElement();
VoronoiVertex get_v1();
VoronoiVertex get_v2();
VoronoiVertex get_v3();
VoronoiVertex get_v4();
double get_jacobian();
double get_dh_dx();
double get_dh_dy();
double get_dh_dz();
Tensor get_tensor();
void set_v1(VoronoiVertex);
void set_v2(VoronoiVertex);
void set_v3(VoronoiVertex);
void set_v4(VoronoiVertex);
void set_tensor(Tensor);
double get_h(double,double,double);
void deriv_h();
void compute_jacobian();
double T(double,double,double,double,double,double,double);
void swap();
double get_quality();
};
class LpSmoother{
private:
int max_iter;
int norm;
static std::vector<MVertex*> interior_vertices;
public:
LpSmoother(int,int);
~LpSmoother();
void improve_model();
void improve_region(GRegion*);
static int get_nbr_interior_vertices();
static MVertex* get_interior_vertex(int);
};
#endif
|