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, 4 months 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

# Content
1 //------------------------------------------------------------
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 MAILLEUR::MAILLEUR(bool save,OT_CPU* comp):affichageactif(0),compteur(comp),savedbg(save),pas(32),priorite_metrique(0.65)
34 {
35 ini_param();
36
37 }
38
39 MAILLEUR::MAILLEUR(MAILLEUR &mdd):affichageactif(mdd.affichageactif),compteur(mdd.compteur),savedbg(mdd.savedbg),pas(mdd.pas)
40 {
41 ini_param();
42 }
43
44
45 MAILLEUR::~MAILLEUR()
46 {
47 }
48
49
50 void MAILLEUR::refresh(void)
51 {
52 }
53
54 void MAILLEUR::change_priorite_metrique(double val)
55 {
56 priorite_metrique=val;
57 }
58
59
60
61 void MAILLEUR::affiche(char *mess)
62 {
63 if (affichageactif==1) affiche2(mess);
64 }
65
66
67 void MAILLEUR::active_affichage(fonction_affiche *fonc)
68 {
69 affiche2=fonc;
70 affichageactif=1;
71 }
72
73 void MAILLEUR::ajouter_etape_cpu(std::string nom)
74 {
75 if (compteur!=NULL) compteur->ajouter_etape(nom);
76 }
77
78
79 void MAILLEUR::change_nom_fichierdbg(char *nom)
80 {
81 strcpy(nomfichierdbg,nom);
82 }
83
84 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 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 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 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 char fichier[500];
94 sprintf(fichier,"%s/.magic",getenv("HOME"));
95 param.lire(fichier);
96 param.enregistrer(fichier);
97
98 }
99
100 void MAILLEUR::change_pas_integration(int val)
101 {
102 pas=val;
103 }