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
void printf(const char *arg1)
virtual void optimisation(char *fichierin, char *fichierout, char *fichierparam, char *fichierparamaster)
virtual double get_ecart_type_sigma_vm(MG_GESTIONNAIRE *gest, TPL_MAP_ENTITE< OPT_NOEUD * > lstnoeud, double moyenne)
virtual void optimisation_maillage_quadratique(TPL_MAP_ENTITE< OPT_TRIANGLE_QUADRATIQUE * > lst_triangle)
TPL_MAP_ENTITE< class OPT_NOEUD * > listenoeud
virtual void lissage(TPL_MAP_ENTITE< OPT_NOEUD * > lst_noeud)
virtual void lissage_taubin_lambda(TPL_MAP_ENTITE< OPT_NOEUD * > lst_noeud)
virtual void change_deplacement_virtuel_opt_noeud(OPT_NOEUD *opt_noeud, double d)
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)
virtual void change_liste_noeud_filtre(OPT_NOEUD *opt_noeud, TPL_MAP_ENTITE< OPT_NOEUD * > lstnoeud)
virtual void active_affichage(void(*fonc)(char *))
std::map< unsigned long, std::pair< class OPT_TRIANGLE_QUADRATIQUE *, class FEM_TRIANGLE6 * > > correspondance_triangle
virtual void filtre1(TPL_MAP_ENTITE< OPT_NOEUD * > lst_noeud)
virtual void change_liste_noeud_voisin(OPT_NOEUD *opt_noeud)
virtual void recentrage(TPL_MAP_ENTITE< OPT_TRIANGLE_QUADRATIQUE * > lst_triangle)
virtual void ecriture_fem_solution_deplacement(FEM_SOLUTION *sol, FEM_NOEUD *fem_noeud)
virtual void deplace_opt_noeud(OPT_NOEUD *opt_noeud, double d)
TPL_MAP_ENTITE< class OPT_TRIANGLE_QUADRATIQUE * > listetriangle
class OPT_TRIANGLE_QUADRATIQUE * get_triangle(class FEM_TRIANGLE6 *fem_tri6)
virtual void calcul_normale_opt_noeud(OPT_NOEUD *noeud)
virtual void ecrire_fichier_params(char *fichierparam)
virtual void lissage_taubin_nu(TPL_MAP_ENTITE< OPT_NOEUD * > lst_noeud)
virtual void filtre2(TPL_MAP_ENTITE< OPT_NOEUD * > lst_noeud)
std::map< unsigned long, std::pair< class OPT_NOEUD *, class FEM_NOEUD * > > correspondance_noeud
virtual void get_liste_noeud_deplacer_initiale(TPL_MAP_ENTITE< OPT_NOEUD * > listenoeud, TPL_MAP_ENTITE< OPT_NOEUD * > *lstnoeud_deplacer_initiale)
class OPT_NOEUD * get_noeud(class FEM_NOEUD *fem_noeud)
FEM_NOEUD * fem_noeud
Definition: opt_noeud.h:133