MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mgopt_mvt_normal_quadratique.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 //####// mgopt_mvt_normal_quadratique.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:57 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifndef mgoptmvtnormalquadratique_2H
23 #define mgoptmvtnormalquadratique_2H
24 
25 
26 
27 #include "tpl_map_entite.h"
28 #include "ot_mathematique.h"
29 #include "ot_parametres.h"
30 #include "mg_gestionnaire.h"
31 #include "opt_noeud.h"
32 #include "fem_triangle6.h"
33 class OPT_NOEUD;
35 class FEM_TRIANGLE6;
36 
37 
39 {
40 public :
41 
46 
47  virtual void active_affichage(void (*fonc)(char*));
48  virtual void init_parametre(void);
49  virtual void ecrire_fichier_params(char *fichierparam);
51  virtual void lissage_taubin_lambda(TPL_MAP_ENTITE<OPT_NOEUD*> lst_noeud);
52  virtual void lissage_taubin_nu(TPL_MAP_ENTITE<OPT_NOEUD*> lst_noeud);
53  virtual void filtre1(TPL_MAP_ENTITE<OPT_NOEUD*> lst_noeud);
54  virtual void filtre2(TPL_MAP_ENTITE<OPT_NOEUD*> lst_noeud);
55  virtual void lissage(TPL_MAP_ENTITE<OPT_NOEUD*> lst_noeud);
56  virtual void recentrage(TPL_MAP_ENTITE<OPT_TRIANGLE_QUADRATIQUE*> lst_triangle);
58  virtual void optimisation(char* fichierin, char* fichierout, char* fichierparam, char* fichierparamaster);
59 
60  // Correspondance entre opt_noeud et fem_noeud
62  class OPT_NOEUD* get_noeud(class FEM_NOEUD* fem_noeud);
63  std::map<unsigned long, std::pair<class OPT_NOEUD*,class FEM_NOEUD*> > correspondance_noeud;
64  void printf(const char* arg1);
65  std::ostream fem_tri6();
66 
67 protected:
68 
69  // Fonctions essentielles méthode du mouvement normal
70  virtual void lire_params(char *fichier);
71  virtual void change_liste_noeud_voisin(OPT_NOEUD* opt_noeud);
72  virtual void change_liste_noeud_filtre(OPT_NOEUD* opt_noeud,TPL_MAP_ENTITE<OPT_NOEUD*> lstnoeud);
73  virtual void calcul_normale_opt_noeud( OPT_NOEUD* noeud);
74  virtual double get_sigma_vm_max(MG_GESTIONNAIRE* gest, FEM_NOEUD* fem_noeud, int num_sol_inf, int num_sol_moy, int num_sol_sup);
75  virtual double get_ecart_type_sigma_vm(MG_GESTIONNAIRE* gest, TPL_MAP_ENTITE<OPT_NOEUD*> lstnoeud, double moyenne);
76  // Fonctions pour la gestion des déplacement virtuels et réels
77  virtual void change_deplacement_virtuel_opt_noeud(OPT_NOEUD* opt_noeud, double d);
78  virtual void deplace_opt_noeud(OPT_NOEUD* opt_noeud, double d);
79  // Fonctions de visualisation des déplacements
81  // Correspondance entre opt_triangle_2 et fem_triangle
84  std::map<unsigned long, std::pair<class OPT_TRIANGLE_QUADRATIQUE*,class FEM_TRIANGLE6*> > correspondance_triangle;
85 
86  class MG_MAILLAGE *mai;
87  class FEM_MAILLAGE *fem; // Maillage servant pour l'optimisation
88  class FEM_MAILLAGE* fem_visu; // Maillage servant pour la visualisation
89  class MG_GEOMETRIE *geo;
91 
92  void (*affiche)(char *mess);
95  char etude[5000];
96  char etudesortie[5000];
97 };
98 
99 #endif
MGOPT_MVT_NORMAL_QUADRATIQUE::params
OT_PARAMETRES params
Definition: mgopt_mvt_normal_quadratique.h:94
MGOPT_MVT_NORMAL_QUADRATIQUE::optimisation_maillage_quadratique
virtual void optimisation_maillage_quadratique(TPL_MAP_ENTITE< OPT_TRIANGLE_QUADRATIQUE * > lst_triangle)
Definition: mgopt_mvt_normal_quadratique.cpp:728
MGOPT_MVT_NORMAL_QUADRATIQUE::change_liste_noeud_filtre
virtual void change_liste_noeud_filtre(OPT_NOEUD *opt_noeud, TPL_MAP_ENTITE< OPT_NOEUD * > lstnoeud)
Definition: mgopt_mvt_normal_quadratique.cpp:243
MGOPT_MVT_NORMAL_QUADRATIQUE::listenoeud
TPL_MAP_ENTITE< class OPT_NOEUD * > listenoeud
Definition: mgopt_mvt_normal_quadratique.h:61
opt_noeud.h
FEM_SOLUTION
Definition: fem_solution.h:40
MGOPT_MVT_NORMAL_QUADRATIQUE::filtre2
virtual void filtre2(TPL_MAP_ENTITE< OPT_NOEUD * > lst_noeud)
Definition: mgopt_mvt_normal_quadratique.cpp:448
MGOPT_MVT_NORMAL_QUADRATIQUE::get_triangle
class OPT_TRIANGLE_QUADRATIQUE * get_triangle(class FEM_TRIANGLE6 *fem_tri6)
Definition: mgopt_mvt_normal_quadratique.cpp:112
TPL_MAP_ENTITE
Definition: tpl_map_entite.h:35
MGOPT_MVT_NORMAL_QUADRATIQUE
Definition: mgopt_mvt_normal_quadratique.h:38
mg_gestionnaire.h
MGOPT_MVT_NORMAL_QUADRATIQUE::change_deplacement_virtuel_opt_noeud
virtual void change_deplacement_virtuel_opt_noeud(OPT_NOEUD *opt_noeud, double d)
Definition: mgopt_mvt_normal_quadratique.cpp:353
MGOPT_MVT_NORMAL_QUADRATIQUE::correspondance_triangle
std::map< unsigned long, std::pair< class OPT_TRIANGLE_QUADRATIQUE *, class FEM_TRIANGLE6 * > > correspondance_triangle
Definition: mgopt_mvt_normal_quadratique.h:84
MGOPT_MVT_NORMAL_QUADRATIQUE::lissage_taubin_lambda
virtual void lissage_taubin_lambda(TPL_MAP_ENTITE< OPT_NOEUD * > lst_noeud)
Definition: mgopt_mvt_normal_quadratique.cpp:550
MGOPT_MVT_NORMAL_QUADRATIQUE::optimisation
virtual void optimisation(char *fichierin, char *fichierout, char *fichierparam, char *fichierparamaster)
Definition: mgopt_mvt_normal_quadratique.cpp:2107
OPT_NOEUD
Definition: opt_noeud.h:31
MG_GESTIONNAIRE
Definition: mg_gestionnaire.h:57
MGOPT_MVT_NORMAL_QUADRATIQUE::fem_tri6
std::ostream fem_tri6()
MGOPT_MVT_NORMAL_QUADRATIQUE::orientation
int orientation
Definition: mgopt_mvt_normal_quadratique.h:90
MGOPT_MVT_NORMAL_QUADRATIQUE::printf
void printf(const char *arg1)
MGOPT_MVT_NORMAL_QUADRATIQUE::init_parametre
virtual void init_parametre(void)
Definition: mgopt_mvt_normal_quadratique.cpp:125
MGOPT_MVT_NORMAL_QUADRATIQUE::recentrage
virtual void recentrage(TPL_MAP_ENTITE< OPT_TRIANGLE_QUADRATIQUE * > lst_triangle)
Definition: mgopt_mvt_normal_quadratique.cpp:596
OPT_NOEUD::fem_noeud
FEM_NOEUD * fem_noeud
Definition: opt_noeud.h:133
MGOPT_MVT_NORMAL_QUADRATIQUE::lire_params
virtual void lire_params(char *fichier)
Definition: mgopt_mvt_normal_quadratique.cpp:160
MGOPT_MVT_NORMAL_QUADRATIQUE::lissage_taubin_nu
virtual void lissage_taubin_nu(TPL_MAP_ENTITE< OPT_NOEUD * > lst_noeud)
Definition: mgopt_mvt_normal_quadratique.cpp:503
OPT_TRIANGLE_QUADRATIQUE
Definition: opt_triangle_quadratique.h:35
MGOPT_MVT_NORMAL_QUADRATIQUE::geo
class MG_GEOMETRIE * geo
Definition: mgopt_mvt_normal_quadratique.h:89
FEM_MAILLAGE
Definition: fem_maillage.h:66
ot_parametres.h
MGOPT_MVT_NORMAL_QUADRATIQUE::lissage
virtual void lissage(TPL_MAP_ENTITE< OPT_NOEUD * > lst_noeud)
Definition: mgopt_mvt_normal_quadratique.cpp:409
tpl_map_entite.h
MGOPT_MVT_NORMAL_QUADRATIQUE::ecrire_fichier_params
virtual void ecrire_fichier_params(char *fichierparam)
Definition: mgopt_mvt_normal_quadratique.cpp:155
MGOPT_MVT_NORMAL_QUADRATIQUE::etude
char etude[5000]
Definition: mgopt_mvt_normal_quadratique.h:95
MGOPT_MVT_NORMAL_QUADRATIQUE::deplace_opt_noeud
virtual void deplace_opt_noeud(OPT_NOEUD *opt_noeud, double d)
Definition: mgopt_mvt_normal_quadratique.cpp:367
OT_PARAMETRES
Definition: ot_parametres.h:31
MGOPT_MVT_NORMAL_QUADRATIQUE::get_noeud
class OPT_NOEUD * get_noeud(class FEM_NOEUD *fem_noeud)
Definition: mgopt_mvt_normal_quadratique.cpp:106
MGOPT_MVT_NORMAL_QUADRATIQUE::affiche
void(* affiche)(char *mess)
Definition: mgopt_mvt_normal_quadratique.h:92
MGOPT_MVT_NORMAL_QUADRATIQUE::listetriangle
TPL_MAP_ENTITE< class OPT_TRIANGLE_QUADRATIQUE * > listetriangle
Definition: mgopt_mvt_normal_quadratique.h:82
ot_mathematique.h
MGOPT_MVT_NORMAL_QUADRATIQUE::correspondance_noeud
std::map< unsigned long, std::pair< class OPT_NOEUD *, class FEM_NOEUD * > > correspondance_noeud
Definition: mgopt_mvt_normal_quadratique.h:63
FEM_NOEUD
Definition: fem_noeud.h:35
MGOPT_MVT_NORMAL_QUADRATIQUE::mai
class MG_MAILLAGE * mai
Definition: mgopt_mvt_normal_quadratique.h:86
MGOPT_MVT_NORMAL_QUADRATIQUE::affichageactif
int affichageactif
Definition: mgopt_mvt_normal_quadratique.h:93
MGOPT_MVT_NORMAL_QUADRATIQUE::active_affichage
virtual void active_affichage(void(*fonc)(char *))
Definition: mgopt_mvt_normal_quadratique.cpp:119
MGOPT_MVT_NORMAL_QUADRATIQUE::fem
class FEM_MAILLAGE * fem
Definition: mgopt_mvt_normal_quadratique.h:87
MGOPT_MVT_NORMAL_QUADRATIQUE::fem_visu
class FEM_MAILLAGE * fem_visu
Definition: mgopt_mvt_normal_quadratique.h:88
MGOPT_MVT_NORMAL_QUADRATIQUE::etudesortie
char etudesortie[5000]
Definition: mgopt_mvt_normal_quadratique.h:96
fem_triangle6.h
MGOPT_MVT_NORMAL_QUADRATIQUE::~MGOPT_MVT_NORMAL_QUADRATIQUE
~MGOPT_MVT_NORMAL_QUADRATIQUE()
Definition: mgopt_mvt_normal_quadratique.cpp:95
MGOPT_MVT_NORMAL_QUADRATIQUE::ecriture_fem_solution_deplacement
virtual void ecriture_fem_solution_deplacement(FEM_SOLUTION *sol, FEM_NOEUD *fem_noeud)
Definition: mgopt_mvt_normal_quadratique.cpp:394
MGOPT_MVT_NORMAL_QUADRATIQUE::get_ecart_type_sigma_vm
virtual double get_ecart_type_sigma_vm(MG_GESTIONNAIRE *gest, TPL_MAP_ENTITE< OPT_NOEUD * > lstnoeud, double moyenne)
Definition: mgopt_mvt_normal_quadratique.cpp:336
MG_GEOMETRIE
Definition: mg_geometrie.h:84
FEM_TRIANGLE6
Definition: fem_triangle6.h:33
MG_MAILLAGE
Definition: mg_maillage.h:62
MGOPT_MVT_NORMAL_QUADRATIQUE::change_liste_noeud_voisin
virtual void change_liste_noeud_voisin(OPT_NOEUD *opt_noeud)
Definition: mgopt_mvt_normal_quadratique.cpp:180
MGOPT_MVT_NORMAL_QUADRATIQUE::filtre1
virtual void filtre1(TPL_MAP_ENTITE< OPT_NOEUD * > lst_noeud)
Definition: mgopt_mvt_normal_quadratique.cpp:474
MGOPT_MVT_NORMAL_QUADRATIQUE::MGOPT_MVT_NORMAL_QUADRATIQUE
MGOPT_MVT_NORMAL_QUADRATIQUE()
Definition: mgopt_mvt_normal_quadratique.cpp:39
MGOPT_MVT_NORMAL_QUADRATIQUE::get_liste_noeud_deplacer_initiale
virtual void get_liste_noeud_deplacer_initiale(TPL_MAP_ENTITE< OPT_NOEUD * > listenoeud, TPL_MAP_ENTITE< OPT_NOEUD * > *lstnoeud_deplacer_initiale)
Definition: mgopt_mvt_normal_quadratique.cpp:166
MGOPT_MVT_NORMAL_QUADRATIQUE::get_sigma_vm_max
virtual double get_sigma_vm_max(MG_GESTIONNAIRE *gest, FEM_NOEUD *fem_noeud, int num_sol_inf, int num_sol_moy, int num_sol_sup)
Definition: mgopt_mvt_normal_quadratique.cpp:316
MGOPT_MVT_NORMAL_QUADRATIQUE::calcul_normale_opt_noeud
virtual void calcul_normale_opt_noeud(OPT_NOEUD *noeud)
Definition: mgopt_mvt_normal_quadratique.cpp:258