MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
fct_taille_fem_solution_generateur_fichier.cpp
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 //####// fct_taille_fem_solution_generateur_fichier.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:52 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #include "gestionversion.h"
24 #include <string.h>
25 #include <math.h>
27 
28 
30  int nytmp,int nztmp,char *nomsolution,char* nomfich,double ind1,double ind2):
31  FCT_TAILLE_FEM_SOLUTION_ECHANTILLONNAGE_ESTIMATION(gesttmp, geotmp, dg,fechantillon,nxtmp,
32 nytmp, nztmp, nomsolution, ind1, ind2),nomficher(nomfich)
33 {
34 
35 }
38 {
39 
40 }
41 
43 {
46  delete PT;
47 }
48 
49 
50 
52 {
53  double dng;
54  double xmin,ymin,zmin,xmax,ymax,zmax;
55  FILE *in =fopen(nomficher,"rt");
56  if (in!=NULL)
57  {
58  char message[500];
59  char* res=fgets(message,255,in);
60  sscanf(message,"%lf %lf %lf %lf %lf %lf ",&xmin,&ymin,&zmin,&xmax,&ymax,&zmax);
61  res=fgets(message,255,in);
62  sscanf(message,"%lf ",&dng);
63  ecart_nodal=dng;
64  while (!feof(in))
65  {
66  double x,y,z,dn;
67  res=fgets(message,255,in);
68  double lambda=zonezoom;
69  int n=sscanf(message,"%lf %lf %lf %lf %lf",&x,&y,&z,&dn,&lambda);
70  if (n>=4)
71  {
72  double dist=dng*(1.-dn)*lambda;
73  if (!(OPERATEUR::egal(dist,0.0,1e-8)))
74  {
75  BOITE_3D boite(x-dist,y-dist,z-dist,x+dist,y+dist,z+dist);
76  double ecart=dn*dng;
77  CT_POINT_ECHANTILLONNAGE* pt=new CT_POINT_ECHANTILLONNAGE(x,y,z,ecart,boite);
78  lstpoint.ajouter(pt);
79 
80 
81  }
82  }
83 
84  }
85 
86  fclose(in);
88  BOITE_3D boi(xmin,ymin,zmin,xmax,ymax,zmax);
90  xmin=boi.get_xmin();
91  ymin=boi.get_ymin();
92  zmin=boi.get_zmin();
93  xmax=boi.get_xmax();
94  ymax=boi.get_ymax();
95  zmax=boi.get_zmax();
98  {
99  double xyz[3];
100  PT->evaluer(xyz);
101  double ecart=PT->get_valeur();
102  BOITE_3D boite(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
103  CT_POINT_ECHANTILLONNAGE* pt=new CT_POINT_ECHANTILLONNAGE(xyz[0],xyz[1],xyz[2],ecart,boite);
104  lstpoint2.ajouter(pt);
105  }
106  octre.initialiser(&lstpoint2,1,xmin,ymin,zmin,xmax, ymax, zmax);
107  for(CT_POINT_ECHANTILLONNAGE* PT=lstpoint2.get_premier(it);PT!=NULL;PT=lstpoint2.get_suivant(it))
108  delete PT;
109  int nb_point=lstpoint.get_nb();
111  {
112  octre.inserer(PT);
113  }
114  }
115 
116  }
TPL_MAP_ENTITE::get_premier
virtual X get_premier(ITERATEUR &it)
Definition: tpl_map_entite.h:112
gestionversion.h
TPL_MAP_ENTITE
Definition: tpl_map_entite.h:35
BOITE_3D::get_xmin
double get_xmin(void)
Definition: ot_boite_3d.cpp:104
FCT_TAILLE_FEM_SOLUTION_ECHANTILLONNAGE_ESTIMATION::lstpoint
TPL_MAP_ENTITE< CT_POINT_ECHANTILLONNAGE * > lstpoint
Definition: fct_taille_fem_solution_echantillonnage_estimation.h:46
FCT_TAILLE_FEM_SOLUTION_ECHANTILLONNAGE_ESTIMATION::octre
TPL_OCTREE< CT_POINT_ECHANTILLONNAGE *, CT_POINT_ECHANTILLONNAGE * > octre
Definition: fct_taille_fem_solution_echantillonnage_estimation.h:47
FCT_TAILLE_FEM_SOLUTION_GENERATEUR_FICHIER::FCT_TAILLE_FEM_SOLUTION_GENERATEUR_FICHIER
FCT_TAILLE_FEM_SOLUTION_GENERATEUR_FICHIER(MG_GESTIONNAIRE *gesttmp, MG_GEOMETRIE *geotmp, double dg, int fechantillon, int nxtmp, int nytmp, int nztmp, char *nomsolution, char *nomfich, double ind1=4, double ind2=0.25)
Definition: fct_taille_fem_solution_generateur_fichier.cpp:29
MG_GESTIONNAIRE
Definition: mg_gestionnaire.h:57
FCT_TAILLE_FEM_SOLUTION_GENERATEUR_FICHIER::echantillonnage
void echantillonnage(void)
Definition: fct_taille_fem_solution_generateur_fichier.cpp:51
TPL_OCTREE::inserer
virtual void inserer(BOITE_3D &boite, A a, TPL_CELLULE_OCTREE< A, CONDITION > *cellule)
Definition: tpl_octree.h:897
BOITE_3D::get_zmax
double get_zmax(void)
Definition: ot_boite_3d.cpp:129
BOITE_3D::get_ymin
double get_ymin(void)
Definition: ot_boite_3d.cpp:114
fct_taille_fem_solution_generateur_echantillon_frontiere.h
CT_POINT_ECHANTILLONNAGE
Definition: ct_point_echantillonnage.h:28
FCT_TAILLE_FEM_SOLUTION_GENERATEUR_FICHIER::~FCT_TAILLE_FEM_SOLUTION_GENERATEUR_FICHIER
~FCT_TAILLE_FEM_SOLUTION_GENERATEUR_FICHIER()
Definition: fct_taille_fem_solution_generateur_fichier.cpp:42
BOITE_3D::get_xmax
double get_xmax(void)
Definition: ot_boite_3d.cpp:109
OPERATEUR::egal
static int egal(double a, double b, double eps)
Definition: ot_mathematique.cpp:1629
TPL_MAP_ENTITE::get_nb
virtual int get_nb(void)
Definition: tpl_map_entite.h:83
FCT_TAILLE_FEM_SOLUTION_ECHANTILLONNAGE_ESTIMATION::zonezoom
double zonezoom
Definition: fct_taille_fem_solution_echantillonnage_estimation.h:44
FCT_TAILLE_FEM_SOLUTION_GENERATEUR_ISOTROPE::facteur_grossissement
double facteur_grossissement
Definition: fct_taille_fem_solution_generateur_isotrope.h:57
BOITE_3D::get_ymax
double get_ymax(void)
Definition: ot_boite_3d.cpp:119
FCT_TAILLE_FEM_SOLUTION_GENERATEUR_ISOTROPE::ecart_nodal
double ecart_nodal
Definition: fct_taille_fem_solution_generateur_isotrope.h:53
TPL_MAP_ENTITE::ajouter
virtual void ajouter(X x)
Definition: tpl_map_entite.h:55
fct_taille_fem_solution_generateur_fichier.h
BOITE_3D
Definition: ot_boite_3d.h:27
FCT_TAILLE_FEM_SOLUTION_ECHANTILLONNAGE_ESTIMATION
Definition: fct_taille_fem_solution_echantillonnage_estimation.h:31
FCT_TAILLE_FEM_SOLUTION_GENERATEUR_FICHIER::nomficher
char * nomficher
Definition: fct_taille_fem_solution_generateur_fichier.h:42
BOITE_3D::get_zmin
double get_zmin(void)
Definition: ot_boite_3d.cpp:124
MG_GEOMETRIE
Definition: mg_geometrie.h:84
res
#define res(i, j)
BOITE_3D::change_grosseur
void change_grosseur(double f)
Definition: ot_boite_3d.cpp:176
TPL_MAP_ENTITE::get_suivant
virtual X get_suivant(ITERATEUR &it)
Definition: tpl_map_entite.h:120
FCT_TAILLE_FEM_SOLUTION_GENERATEUR_FICHIER
Definition: fct_taille_fem_solution_generateur_fichier.h:31
TPL_OCTREE::initialiser
virtual void initialiser(TPL_LISTE_ENTITE< CONDITION > *lst_entite, int nombre, double xmin, double ymin, double zmin, double xmax, double ymax, double zmax)
Definition: tpl_octree.h:366