MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_fast_marching.h
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
2 //####//------------------------------------------------------------
3 //####// MAGiC
4 //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5 //####// Departement de Genie Mecanique - UQTR
6 //####//------------------------------------------------------------
7 //####// MAGIC est un projet de recherche de l equipe ERICCA
8 //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9 //####// http://www.uqtr.ca/ericca
10 //####// http://www.uqtr.ca/
11 //####//------------------------------------------------------------
12 //####//------------------------------------------------------------
13 //####//
14 //####// mg_fast_marching.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:56 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifndef _MGFASTMARCHING_
23 #define _MGFASTMARCHING_
24 #include <vector>
25 #include <mg_definition.h>
26 #include "fem_maillage.h"
27 #include "tpl_octree.h"
28 #include "magic_affiche.h"
29 
30 class FEM_SOLUTION;
31 class FEM_MAILLAGE;
32 class FEM_NOEUD;
33 class FEM_ELEMENT3;
34 class FEM_ELEMENT2;
35 class MG_GESTIONNAIRE;
36 
37 
38 namespace MAGIC
39 {
40 
43 
45 {
46 public :
47  MG_FAST_MARCHING(FEM_SOLUTION* solu,int numchamp);
49  virtual ~MG_FAST_MARCHING();
50 
51  //virtual void init(int versiongrad,int versiondistance);
52  virtual void init(void);
53  virtual void init_noeud(std::vector<FEM_NOEUD*> &lst);
54  virtual void init_noeud(char* entite);
55  virtual void init_coord(double x,double y,double z)=0;
56  virtual void propage(double vitesse=1.0)=0;
57  virtual void finalise(void);
58  virtual double get_valeur(double x,double y,double z)=0;
59 protected:
60  //virtual void propage2(double vitesse);
61  //virtual bool traite_particulier2(FEM_ELEMENT2 *ele,FEM_NOEUD* no,double v,double *res);
62  //virtual void propage3(double vitesse);
64  //virtual int resoudgradTtriangle(FEM_ELEMENT2* ele,double v,FEM_NOEUD** noupdate,double *res);
65  //virtual int resoudgradTtriangle_sethian(FEM_ELEMENT2* ele,double v,FEM_NOEUD** noupdate,double *res);
66  //virtual int resoudgradTtriangle_perso(FEM_ELEMENT2* ele,double v,FEM_NOEUD** noupdate,double *res);
67  //bool noeud_est_dans_espace_element(FEM_ELEMENT2* ele,FEM_NOEUD* noele,FEM_NOEUD* no);
68 
69  virtual int sign ( double x );
70  virtual double fdiv ( double a, double b );
71  virtual double dt2d ( double xi,double xb,double yb,double zb,double xd,double yd,double zd,double tb,double v );
72  virtual int Solve_dt2d ( double ax,double ay,double az,double bx,double by,double bz,double dx,double dy,double dz,double at,double bt,double v,double &dt,double &alpha );
73  virtual int val2d ( double ax,double ay,double az,double bx,double by,double bz,double dx,double dy,double dz,double at,double bt,double v,double& dt,double &alpha );
74  virtual double dt3d ( double xi,double eta,double xb,double yb,double zb,double xc,double yc,double zc,double xd,double yd,double zd,double tb,double tc,double v );
75  virtual int Solve_dt3d ( double ax,double ay,double az,double bx,double by,double bz,double cx,double cy,double cz,double dx,double dy,double dz,double at,double bt,double ct,double v,double &dt,double &alpha,double &beta );
76  virtual int val3d ( double ax,double ay,double az,double bx,double by,double bz,double cx,double cy,double cz,double dx,double dy,double dz,double at,double bt,double ct,double v,double& dt,double &alpha,double &beta );
77 
78 
79 
80 
81 
83  int num;
86 
87 
88  //int versiongradTtriangle;
89  //int respectgrad;
91 };
92 
93 
94 };
95 
96 
97 #endif
MAGIC::MG_FAST_MARCHING::Solve_dt3d
virtual int Solve_dt3d(double ax, double ay, double az, double bx, double by, double bz, double cx, double cy, double cz, double dx, double dy, double dz, double at, double bt, double ct, double v, double &dt, double &alpha, double &beta)
Definition: mg_fast_marching.cpp:838
MAGIC::MG_FAST_MARCHING::fdiv
virtual double fdiv(double a, double b)
Definition: mg_fast_marching.cpp:718
MAGIC::VERSION_CONSERVE_GRADT
const int VERSION_CONSERVE_GRADT
Definition: mg_fast_marching.h:41
FEM_SOLUTION
Definition: fem_solution.h:40
MAGIC::MG_FAST_MARCHING::MG_FAST_MARCHING
MG_FAST_MARCHING(FEM_SOLUTION *solu, int numchamp)
Definition: mg_fast_marching.cpp:46
fem_maillage.h
a
#define a(i, j)
MAGIC::MG_FAST_MARCHING::init_noeud
virtual void init_noeud(std::vector< FEM_NOEUD * > &lst)
Definition: mg_fast_marching.cpp:75
FEM_ELEMENT3
Definition: fem_element3.h:34
MAGIC::MG_FAST_MARCHING::sol
FEM_SOLUTION * sol
Definition: mg_fast_marching.h:63
MG_GESTIONNAIRE
Definition: mg_gestionnaire.h:57
MAGIC::MG_FAST_MARCHING::oc
TPL_OCTREE< FEM_ELEMENT2 *, FEM_NOEUD * > oc
Definition: mg_fast_marching.h:90
MAGIC::MG_FAST_MARCHING::sign
virtual int sign(double x)
Definition: mg_fast_marching.cpp:712
MAGIC::MG_FAST_MARCHING::fem
FEM_MAILLAGE * fem
Definition: mg_fast_marching.h:82
FEM_ELEMENT2
Definition: fem_element2.h:34
MAGIC::MG_FAST_MARCHING::last
FEM_NOEUD * last
Definition: mg_fast_marching.h:85
MAGIC
Definition: mg_fast_marching.cpp:40
MAGIC::MG_FAST_MARCHING::val3d
virtual int val3d(double ax, double ay, double az, double bx, double by, double bz, double cx, double cy, double cz, double dx, double dy, double dz, double at, double bt, double ct, double v, double &dt, double &alpha, double &beta)
Definition: mg_fast_marching.cpp:1013
MAGIC::MG_FAST_MARCHING::val2d
virtual int val2d(double ax, double ay, double az, double bx, double by, double bz, double dx, double dy, double dz, double at, double bt, double v, double &dt, double &alpha)
Definition: mg_fast_marching.cpp:823
MAGIC::MG_FAST_MARCHING::nbnoeudinit
int nbnoeudinit
Definition: mg_fast_marching.h:84
MAGIC::MG_FAST_MARCHING::Solve_dt2d
virtual int Solve_dt2d(double ax, double ay, double az, double bx, double by, double bz, double dx, double dy, double dz, double at, double bt, double v, double &dt, double &alpha)
Definition: mg_fast_marching.cpp:767
FEM_MAILLAGE
Definition: fem_maillage.h:66
MAGIC_AFFICHE
Definition: magic_affiche.h:30
magic_affiche.h
MAGIC::MG_FAST_MARCHING::dt3d
virtual double dt3d(double xi, double eta, double xb, double yb, double zb, double xc, double yc, double zc, double xd, double yd, double zd, double tb, double tc, double v)
Definition: mg_fast_marching.cpp:828
tpl_octree.h
MAGIC::MG_FAST_MARCHING::propage
virtual void propage(double vitesse=1.0)=0
MAGIC::MG_FAST_MARCHING::~MG_FAST_MARCHING
virtual ~MG_FAST_MARCHING()
Definition: mg_fast_marching.cpp:55
FEM_NOEUD
Definition: fem_noeud.h:35
MAGIC::MG_FAST_MARCHING::get_valeur
virtual double get_valeur(double x, double y, double z)=0
MAGIC::MG_FAST_MARCHING::finalise
virtual void finalise(void)
Definition: mg_fast_marching.cpp:240
MAGIC::VERSION_CONSERVE_DISTANCE
const int VERSION_CONSERVE_DISTANCE
Definition: mg_fast_marching.h:42
mg_definition.h
MAGIC::MG_FAST_MARCHING::init
virtual void init(void)
Definition: mg_fast_marching.cpp:61
MAGIC::MG_FAST_MARCHING::dt2d
virtual double dt2d(double xi, double xb, double yb, double zb, double xd, double yd, double zd, double tb, double v)
Definition: mg_fast_marching.cpp:757
MAGIC::MG_FAST_MARCHING
Definition: mg_fast_marching.h:44
MAGIC::MG_FAST_MARCHING::num
int num
Definition: mg_fast_marching.h:83
MAGIC::MG_FAST_MARCHING::init_coord
virtual void init_coord(double x, double y, double z)=0
TPL_OCTREE< FEM_ELEMENT2 *, FEM_NOEUD * >