ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mailleur/src/mailleur.cpp
Revision: 883
Committed: Thu Apr 20 13:38:18 2017 UTC (8 years ago) by francois
File size: 3231 byte(s)
Log Message:
Creation d'un mailleur FEM pour pouvoir avoir des stratégies paramétrées de maillage. L'ancienne méthode construit disparait et est remplacée par l'utilisation d'un MAILLEUR_FEM.
Stratégie de quadratisation mise en place : déplacer les noeuds pour s'assurer que les tetras quadratiques présentent une distortion au dessu d'une borne inférieure. Mais ces noeuds quittent la géométrie.

Les paramètres dans ~/.magic.

File Contents

# User Rev Content
1 francois 283 //------------------------------------------------------------
2     //------------------------------------------------------------
3     // MAGiC
4     // Jean Christophe Cuilli�re et Vincent FRANCOIS
5     // D�partement de G�nie M�canique - UQTR
6     //------------------------------------------------------------
7     // Le projet MAGIC est un projet de recherche du d�partement
8     // de g�nie m�canique de l'Universit� du Qu�bec �
9     // Trois Rivi�res
10     // Les librairies ne peuvent �tre utilis�es sans l'accord
11     // des auteurs (contact : francois@uqtr.ca)
12     //------------------------------------------------------------
13     //------------------------------------------------------------
14     //
15     // mailleur.cpp
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 � 11H23
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24    
25     #include "gestionversion.h"
26     #include "mailleur.h"
27     #include "ot_cpu.h"
28    
29    
30    
31    
32    
33 francois 558 MAILLEUR::MAILLEUR(bool save,OT_CPU* comp):affichageactif(0),compteur(comp),savedbg(save),pas(32),priorite_metrique(0.65)
34 francois 283 {
35 francois 632 ini_param();
36    
37 francois 283 }
38    
39 francois 532 MAILLEUR::MAILLEUR(MAILLEUR &mdd):affichageactif(mdd.affichageactif),compteur(mdd.compteur),savedbg(mdd.savedbg),pas(mdd.pas)
40 francois 425 {
41 francois 632 ini_param();
42 francois 425 }
43 francois 283
44 francois 425
45 francois 283 MAILLEUR::~MAILLEUR()
46     {
47     }
48    
49    
50     void MAILLEUR::refresh(void)
51     {
52     }
53    
54 francois 558 void MAILLEUR::change_priorite_metrique(double val)
55     {
56     priorite_metrique=val;
57     }
58 francois 283
59 francois 558
60    
61 francois 425 void MAILLEUR::affiche(char *mess)
62     {
63     if (affichageactif==1) affiche2(mess);
64     }
65 francois 283
66 francois 425
67 francois 445 void MAILLEUR::active_affichage(fonction_affiche *fonc)
68 francois 283 {
69 francois 425 affiche2=fonc;
70 francois 283 affichageactif=1;
71     }
72    
73     void MAILLEUR::ajouter_etape_cpu(std::string nom)
74     {
75     if (compteur!=NULL) compteur->ajouter_etape(nom);
76     }
77 francois 494
78    
79     void MAILLEUR::change_nom_fichierdbg(char *nom)
80     {
81     strcpy(nomfichierdbg,nom);
82 francois 532 }
83    
84 francois 632 void MAILLEUR::ini_param(void)
85     {
86     param.ajouter("Convergence_mailleur3d_frontal",200,OT_PARAMETRES::DOUBLE,"Nombre de front restant à partir duquel la destruction est obligatoire");
87     param.ajouter("Echantillon_face",20,OT_PARAMETRES::DOUBLE,"Nombre d'échantillon pour le calcul de la boite englobante des faces");
88 francois 645 param.ajouter("Verification_coin_face_mailleur2D",0,OT_PARAMETRES::DOUBLE,"0. Ne fais pas la vérification 1. Fait la vérification qu'un sommet de face partage au moins deux triangles");
89 francois 696 param.ajouter("Optimisation_2D","1",OT_PARAMETRES::STRING,"Nombre de bits = nombre de passe d'optimisation. Pour chaque bit 1=bouge de noeud 2=inverse diagonale 3=bouge de noeud inserse diagonale simultane 4=inverse diagonale bouge de noeud simulatane");
90 francois 883 param.ajouter("Quadratisation_jmin",1.,OT_PARAMETRES::DOUBLE,"Garantir des tetras quadratiques avec jaconien minimum positif : 1=oui 2=non");
91     param.ajouter("Quadratisation_pas",100.,OT_PARAMETRES::DOUBLE,"Nombre de pas pour recaler les noeuds et obtenir un jmin positif");
92     param.ajouter("Quadratisation_dis",0.1,OT_PARAMETRES::DOUBLE,"Valeur de la distortion du jacobien minimale à atteindre");
93 francois 632 char fichier[500];
94     sprintf(fichier,"%s/.magic",getenv("HOME"));
95     param.lire(fichier);
96     param.enregistrer(fichier);
97    
98     }
99 francois 532
100     void MAILLEUR::change_pas_integration(int val)
101     {
102     pas=val;
103 francois 494 }