ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/mg_coquille.cpp
Revision: 876
Committed: Fri Mar 24 19:40:04 2017 UTC (8 years, 1 month ago) by francois
File size: 3911 byte(s)
Log Message:
ajouts des elements pentaedriques dans le mg_maillage et dans le fem_maillage (6 et 15 noeuds).
+notion sur les coquilles minces (incomplet)
+operations sur les fem_solution

-->a venir reste sur les coquilles minces + mailleur coquille mince

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     // mg_coquille.cpp
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 � 11H22
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24    
25     #include "gestionversion.h"
26     #include "mg_coquille.h"
27 gervaislavoie 329 #include "mg_coque.h"
28 francois 283 //#include "message.h"
29    
30 francois 876 MG_COQUILLE::MG_COQUILLE(unsigned long num,class MG_VOLUME* mgvol):MG_ELEMENT_COTOPOLOGIQUE(num),volume(mgvol),coque(NULL),mince(false)
31 francois 283 {
32     }
33    
34 francois 876 MG_COQUILLE::MG_COQUILLE(unsigned long num,class MG_COQUE* mgcoq):MG_ELEMENT_COTOPOLOGIQUE(num),volume(NULL),coque(mgcoq),mince(false)
35 francois 283 {
36     }
37    
38    
39 francois 876 MG_COQUILLE::MG_COQUILLE(class MG_VOLUME* mgvol):MG_ELEMENT_COTOPOLOGIQUE(),volume(mgvol),coque(NULL),mince(false)
40 francois 283 {
41     }
42    
43 francois 876 MG_COQUILLE::MG_COQUILLE(class MG_COQUE* mgcoq):MG_ELEMENT_COTOPOLOGIQUE(),volume(NULL),coque(mgcoq),mince(false)
44 francois 283 {
45     }
46    
47    
48 francois 876 MG_COQUILLE::MG_COQUILLE(MG_COQUILLE& mdd):MG_ELEMENT_COTOPOLOGIQUE(),volume(mdd.volume),lst_coface(mdd.lst_coface),coque(mdd.coque),mince(mdd.mince)
49 francois 283 {
50     }
51    
52    
53     MG_COQUILLE::~MG_COQUILLE()
54     {
55     }
56    
57    
58     void MG_COQUILLE::ajouter_mg_coface(class MG_COFACE* mgcoface)
59     {
60     lst_coface.insert(lst_coface.end(),mgcoface);
61     }
62    
63     int MG_COQUILLE::get_nb_mg_coface(void)
64     {
65     return lst_coface.size();
66     }
67    
68     MG_VOLUME* MG_COQUILLE::get_mg_volume(void)
69     {
70     return volume;
71     }
72    
73 gervaislavoie 329 MG_COQUE* MG_COQUILLE::get_mg_coque(void)
74     {
75     return coque;
76     }
77 francois 283 MG_COFACE* MG_COQUILLE::get_mg_coface(int num)
78     {
79     return lst_coface[num];
80     }
81    
82     void MG_COQUILLE::supprimer_mg_coface(class MG_COFACE* mgcoface)
83     {
84     std::vector<MG_COFACE*>::iterator i;
85     for (i=lst_coface.begin();i!=lst_coface.end();i++)
86     {
87     if ((*i)==mgcoface)
88     {
89     lst_coface.erase(i);
90     return;
91     }
92     }
93     }
94    
95    
96 francois 763 void MG_COQUILLE::enregistrer(std::ostream& o,double version)
97 francois 283 {
98 francois 876 if (volume!=NULL)
99     {
100     if (!mince) o << "%" << get_id() << "=COQUILLE($"<< volume->get_id() << ",(";
101     // else o << "%" << get_id() << "=COQUILLE_MINCE($"<< volume->get_id() << ",(";
102     else o << "%" << get_id() << "=COQUILLE($"<< volume->get_id() << ",(";
103     }
104 francois 283 if (coque!=NULL) o << "%" << get_id() << "=COQUILLE($"<< coque->get_id() << ",(";
105     for (unsigned int i=0;i<lst_coface.size();i++)
106     {
107     o << "$" << lst_coface[i]->get_id();
108     if (i!=lst_coface.size()-1) o << ",";
109     else o << ")";
110     }
111 francois 876 if (/*mince*/0==1)
112     {
113     o << ",(" ;
114     for (int i=0;i<get_nb_face_correspondante()-1;i++)
115     o << lst_base[i]->get_id() << "," << lst_extrude[i]->get_id() << "," ;
116     o << lst_base[get_nb_face_correspondante()-1]->get_id() << "," << lst_extrude[get_nb_face_correspondante()-1]->get_id();
117     o << ")" ;
118     }
119 francois 283 o << ");" << std::endl;
120     }
121    
122    
123    
124 francois 876 void MG_COQUILLE::ajouter_face_correspondante(MG_COFACE* face1,MG_COFACE* face2)
125     {
126     lst_base.push_back(face1);
127     lst_extrude.push_back(face2);
128     mince=true;
129     }
130 francois 283
131 francois 876 void MG_COQUILLE::get_face_correspondante(int num,MG_COFACE** face1,MG_COFACE** face2)
132     {
133     (*face1)=lst_base[num];
134     (*face2)=lst_extrude[num];
135     }
136    
137     int MG_COQUILLE::get_nb_face_correspondante(void)
138     {
139     return lst_base.size();
140     }
141    
142     bool MG_COQUILLE::est_mince(void)
143     {
144     return mince;
145     }