ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/microstructure/src/mstruct_ves.h
Revision: 919
Committed: Tue Mar 6 17:51:54 2018 UTC (7 years, 2 months ago) by couturad
Content type: text/plain
File size: 3457 byte(s)
Log Message:
Correction des bugs lors de l'execution en mode RELWITHDEBINFO.
Ajouts de fichiers pour la librairie MICROSTRUCTURE

File Contents

# User Rev Content
1 couturad 919 #ifndef _MSTRUCT_VES_
2     #define _MSTRUCT_VES_
3     #include <map>
4     #include <vector>
5     #include "tpl_map_entite.h"
6     #include "mstruct_groupe_forme.h"
7     #include "fem_solution.h"
8     #include "ot_parametres.h"
9     #include "ot_mathematique.h"
10     class MG_VOLUME;
11     class MG_GESTIONNAIRE;
12     class MG_GEOMETRIE;
13     class MG_MAILLAGE;
14     class FEM_MAILLAGE;
15     class MG_CG_MODELE;
16     class MG_CG_ASSEMBLAGE;
17     class FCT_TAILLE_FEM_SOLUTION;
18     namespace MICROSTRUCTURE
19     {
20     typedef void fonction_affiche(char *);
21    
22     class VES
23     {
24     public:
25     enum TYPE_ETUDE{MECANIQUE=0,THERMIQUE=1};
26     enum TYPE_CHARGEMENT{SPHERIQUE=0,DEVIATORIQUE=1};
27     enum TYPE_CONDITIONS_LIMITES{DEFORMATION_HOMOGENE=0,CONTRAINTE_HOMOGENE=1,GRADIENT_TEMPERATURE_HOMOGENE=2,FLUX_CHALEUR_HOMOGENE=3};
28     VES(void);
29     VES(char* fichier);
30     ~VES(void);
31     MG_GESTIONNAIRE* get_mg_gestionnaire(void);
32     MG_GEOMETRIE* get_mg_geometrie(void);
33     void change_mg_geometrie(MG_GEOMETRIE* mg_geometrie);
34     MG_CG_MODELE* get_mgcg_modele(void);
35     void change_mgcg_modele(MG_CG_MODELE* mgcg_modele);
36     MG_CG_ASSEMBLAGE* get_mgcg_assemblage(void);
37     void change_mgcg_assemblage(MG_CG_ASSEMBLAGE* mgcg_assemblage);
38     MG_MAILLAGE* get_mg_maillage(void);
39     void change_mg_maillage(MG_MAILLAGE* mg_maillage);
40     FEM_MAILLAGE* get_fem_maillage(void);
41     void change_fem_maillage(FEM_MAILLAGE* fem_maillage);
42     TPL_MAP_ENTITE<FEM_SOLUTION*> get_tpl_map_fem_solution(void);
43     long get_nb_groupe_forme(void);
44     void ajouter_groupe_forme(GROUPE_FORME* groupe_forme);
45     GROUPE_FORME* get_premier_groupe_forme(std::vector<GROUPE_FORME*>::iterator &it);
46     GROUPE_FORME* get_suivant_groupe_forme(std::vector<GROUPE_FORME*>::iterator &it);
47     GROUPE_FORME* get_groupe_forme(std::string nom);
48     BOITE_3D get_boite3d_ves(void);
49    
50     int generer_geometrie(std::vector<OT_PARAMETRES*> &vector_params_geometrie);
51     int generer_materiau(std::vector<OT_PARAMETRES*> &vector_params_materiau);
52     int generer_carte(OT_PARAMETRES *param);
53     int generer_maillage(OT_PARAMETRES *param,FCT_TAILLE_FEM_SOLUTION* carte);
54     int generer_fem_maillage(OT_PARAMETRES *param);
55     int generer_etude(OT_PARAMETRES *param);
56     int calcul(OT_PARAMETRES *param,char* param_aster);
57     int homogeneisation(OT_PARAMETRES *param,char* fichier_resultats);
58    
59     int enregistrer(char *fichier_ves,char* fichier_magic);
60     int importer(char* fichier);
61    
62     void active_affichage(fonction_affiche *fonc);
63     void affiche(char *message);
64    
65     protected:
66    
67     int appliquer_conditions_limites_plan(TPL_MAP_ENTITE<MG_FACE*> *plan, char *condition, double valeur,bool topo_sous_jacente);
68     int appliquer_conditions_limites_plan(TPL_MAP_ENTITE<MG_FACE*> *plan, char *condition, std::string formule,std::vector<std::string> &listvariable,bool topo_sous_jacente);
69    
70     MG_GESTIONNAIRE* m_mg_gestionnaire;
71     MG_CG_MODELE* m_mgcg_modele;
72     MG_CG_ASSEMBLAGE* m_mgcg_assemblage;
73     MG_GEOMETRIE* m_mg_geometrie;
74     MG_MAILLAGE *m_mg_maillage;
75     FEM_MAILLAGE *m_fem_maillage;
76     std::vector<GROUPE_FORME*> m_vector_groupe_forme;
77     BOITE_3D m_boite3D_ves;
78     double m_eps;
79     double m_temps_generation_geometrie;
80     double m_temps_generation_materiau;
81     double m_temps_generation_carte;
82     double m_temps_generation_maillage;
83     double m_temps_generation_fem_maillage;
84     double m_temps_generation_etude;
85     double m_temps_calcul;
86     int affichageactif;
87     fonction_affiche *fonc_affiche;
88     };
89    
90     }
91    
92     #endif