MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
fem_solution.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 //####// fem_solution.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:55 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifndef __FEMSOLUTION_
23 #define __FEMSOLUTION_
24 
25 
26 
27 
28 #include <map>
29 #include <set>
30 #include <vector>
31 
32 
33 #include "mg_identificateur.h"
34 #include "mg_definition.h"
35 
36 
37  std::ostream& operator << (std::ostream& o,class MG_SOLUTION& sol);
38 
39 
41 {
42 public:
43  FEM_SOLUTION(class FEM_MAILLAGE *mai,int nb,char* chemin,int code,std::string nomsol,int entite=MAGIC::ENTITE_SOLUTION::ENTITE_NOEUD,int type_solution=MAGIC::TYPE_SOLUTION::SCALAIRE);
44  FEM_SOLUTION(unsigned long num,FEM_MAILLAGE *mai,int nb,char* chemin,int code,std::string nomsol,int entite=MAGIC::ENTITE_SOLUTION::ENTITE_NOEUD,int type_solution=MAGIC::TYPE_SOLUTION::SCALAIRE);
45  virtual ~FEM_SOLUTION();
46  double lire(int i,int j,int coord=0,int num_no=0);
47  void ecrire(double val,int i,int j,int coord=0,int num_no=0);
48  void change_nb_gauss(int i,int num);
49  int get_nb_gauss(int i);
50  void active_solution(int num);
51  void change_legende(int num,std::string val);
52  std::string get_legende(int num);
53  int get_nb_champ(void);
55  double get_legende_min(int num=0);
56  double get_legende_max(int num=0);
57  void efface(void);
58  std::string get_nom(void);
59  std::string get_nom_fichier(void);
60 
61  virtual void enregistrer(std::ostream& o,double version);
62  virtual void get_fichier_dependant(std::vector<std::string> &liste_fichier);
63 
64 
65  friend std::ostream& operator << (std::ostream& o,FEM_SOLUTION& maillage);
66  int get_entite_solution(void);
67  int get_dim_solution(void);
68 
69  double get_moyenne_volumique_champs(class MG_VOLUME* vol,int numchamps,int coord=0);
70  double get_moyenne_volumique_champs(class BOITE_3D &boite_analyse,class MG_VOLUME* vol,int numchamps,int coord=0);// pour les solutions aux point de gauss
71  double get_moyenne_surfacique_champs(class MG_FACE* face,int numchamps,int coord=0);
72  double get_moyenne_lineique_champs(class MG_ARETE* are,int numchamps,int coord);
73  double get_moyenne_volumique_elementaire_champs(int numchamps,class FEM_ELEMENT3* ele,int num,int coord=0);// pour les solutions aux point de gauss
74  double get_moyenne_volumique_elementaire_champs(int numchamps,class FEM_ELEMENT3* ele,int num,double& volume,int coord=0);
75  double get_moyenne_surfacique_elementaire_champs(int numchamps,class FEM_ELEMENT2* ele,int num,int coord);
76  double get_moyenne_lineique_elementaire_champs(int numchamps,class FEM_ELEMENT1* ele,int num,int coord);
77  double get_volume_element(class FEM_ELEMENT3* ele,int num);
78 private:
79  void inisolution(char* chemin,int code);
80  char *nom_fichier;
81  int nb_champs;
82  FILE* in;
86  std::string* legende;
87  std::string nomsolution;
89  std::vector<unsigned long> hash;
92 };
93 
94 
95 
96 #endif
97 
98 
FEM_SOLUTION::get_nb_champ
int get_nb_champ(void)
Definition: fem_solution.cpp:467
FEM_SOLUTION
Definition: fem_solution.h:40
FEM_SOLUTION::get_legende_max
double get_legende_max(int num=0)
Definition: fem_solution.cpp:482
FEM_SOLUTION::legende
std::string * legende
Definition: fem_solution.h:86
FEM_SOLUTION::get_legende
std::string get_legende(int num)
Definition: fem_solution.cpp:462
FEM_SOLUTION::femmai
FEM_MAILLAGE * femmai
Definition: fem_solution.h:83
FEM_SOLUTION::ecrire
void ecrire(double val, int i, int j, int coord=0, int num_no=0)
Definition: fem_solution.cpp:411
FEM_SOLUTION::nomsolution
std::string nomsolution
Definition: fem_solution.h:87
MG_SOLUTION
Definition: mg_solution.h:46
FEM_ELEMENT3
Definition: fem_element3.h:34
FEM_SOLUTION::get_nom_fichier
std::string get_nom_fichier(void)
Definition: fem_solution.cpp:839
FEM_SOLUTION::get_dim_solution
int get_dim_solution(void)
Definition: fem_solution.cpp:486
MG_VOLUME
Definition: mg_volume.h:33
FEM_SOLUTION::get_maillage
FEM_MAILLAGE * get_maillage(void)
Definition: fem_solution.cpp:472
FEM_ELEMENT2
Definition: fem_element2.h:34
FEM_SOLUTION::solmin
double solmin[MAX_TYPE_SOLUTION]
Definition: fem_solution.h:84
FEM_SOLUTION::in
FILE * in
Definition: fem_solution.h:82
FEM_SOLUTION::nb_champs
int nb_champs
Definition: fem_solution.h:81
FEM_SOLUTION::change_gauss
bool change_gauss
Definition: fem_solution.h:91
FEM_SOLUTION::efface
void efface(void)
Definition: fem_solution.cpp:386
FEM_SOLUTION::FEM_SOLUTION
FEM_SOLUTION(class FEM_MAILLAGE *mai, int nb, char *chemin, int code, std::string nomsol, int entite=MAGIC::ENTITE_SOLUTION::ENTITE_NOEUD, int type_solution=MAGIC::TYPE_SOLUTION::SCALAIRE)
Definition: fem_solution.cpp:44
FEM_SOLUTION::solmax
double solmax[MAX_TYPE_SOLUTION]
Definition: fem_solution.h:85
FEM_SOLUTION::inisolution
void inisolution(char *chemin, int code)
Definition: fem_solution.cpp:55
FEM_SOLUTION::active_solution
void active_solution(int num)
Definition: fem_solution.cpp:490
FEM_MAILLAGE
Definition: fem_maillage.h:66
MAX_TYPE_SOLUTION
const int MAX_TYPE_SOLUTION
Definition: mg_definition.h:42
FEM_ELEMENT1
Definition: fem_element1.h:34
FEM_SOLUTION::dim_solution
int dim_solution
Definition: fem_solution.h:90
FEM_SOLUTION::get_moyenne_lineique_elementaire_champs
double get_moyenne_lineique_elementaire_champs(int numchamps, class FEM_ELEMENT1 *ele, int num, int coord)
Definition: fem_solution.cpp:785
FEM_SOLUTION::~FEM_SOLUTION
virtual ~FEM_SOLUTION()
Definition: fem_solution.cpp:372
FEM_SOLUTION::change_nb_gauss
void change_nb_gauss(int i, int num)
Definition: fem_solution.cpp:423
FEM_SOLUTION::get_moyenne_lineique_champs
double get_moyenne_lineique_champs(class MG_ARETE *are, int numchamps, int coord)
Definition: fem_solution.cpp:674
FEM_SOLUTION::get_legende_min
double get_legende_min(int num=0)
Definition: fem_solution.cpp:477
FEM_SOLUTION::lire
double lire(int i, int j, int coord=0, int num_no=0)
Definition: fem_solution.cpp:398
FEM_SOLUTION::get_moyenne_surfacique_champs
double get_moyenne_surfacique_champs(class MG_FACE *face, int numchamps, int coord=0)
Definition: fem_solution.cpp:638
FEM_SOLUTION::get_moyenne_surfacique_elementaire_champs
double get_moyenne_surfacique_elementaire_champs(int numchamps, class FEM_ELEMENT2 *ele, int num, int coord)
Definition: fem_solution.cpp:760
FEM_SOLUTION::get_nom
std::string get_nom(void)
Definition: fem_solution.cpp:834
FEM_SOLUTION::nom_fichier
char * nom_fichier
Definition: fem_solution.h:80
BOITE_3D
Definition: ot_boite_3d.h:27
FEM_SOLUTION::operator<<
friend std::ostream & operator<<(std::ostream &o, FEM_SOLUTION &maillage)
Definition: fem_solution.cpp:863
FEM_SOLUTION::get_moyenne_volumique_champs
double get_moyenne_volumique_champs(class MG_VOLUME *vol, int numchamps, int coord=0)
Definition: fem_solution.cpp:564
operator<<
std::ostream & operator<<(std::ostream &o, class MG_SOLUTION &sol)
Definition: mg_solution.cpp:490
mg_definition.h
FEM_SOLUTION::get_volume_element
double get_volume_element(class FEM_ELEMENT3 *ele, int num)
Definition: fem_solution.cpp:811
FEM_SOLUTION::get_nb_gauss
int get_nb_gauss(int i)
Definition: fem_solution.cpp:443
FEM_SOLUTION::hash
std::vector< unsigned long > hash
Definition: fem_solution.h:89
FEM_SOLUTION::get_fichier_dependant
virtual void get_fichier_dependant(std::vector< std::string > &liste_fichier)
Definition: fem_solution.cpp:857
FEM_SOLUTION::typeentite
int typeentite
Definition: fem_solution.h:88
MG_ARETE
Definition: mg_arete.h:36
MG_FACE
Definition: mg_face.h:34
MAGIC::TYPE_SOLUTION::SCALAIRE
@ SCALAIRE
Definition: mg_definition.h:93
mg_identificateur.h
MG_IDENTIFICATEUR
Definition: mg_identificateur.h:34
FEM_SOLUTION::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: fem_solution.cpp:843
FEM_SOLUTION::change_legende
void change_legende(int num, std::string val)
Definition: fem_solution.cpp:457
FEM_SOLUTION::get_entite_solution
int get_entite_solution(void)
Definition: fem_solution.cpp:393
FEM_SOLUTION::get_moyenne_volumique_elementaire_champs
double get_moyenne_volumique_elementaire_champs(int numchamps, class FEM_ELEMENT3 *ele, int num, int coord=0)
Definition: fem_solution.cpp:709
MAGIC::ENTITE_SOLUTION::ENTITE_NOEUD
@ ENTITE_NOEUD
Definition: mg_definition.h:86