57 param_aster.
ajouter(
"Memoire",128.,
OT_PARAMETRES::DOUBLE,
"Proprietes aster : Memoire maximale disponible pour le calcul en MWord. Word : taille d'un entier 4 octets en 32 bits et 8 octets en 64 bits");
61 param_aster.
ajouter(
"Noeud_ele",0,
OT_PARAMETRES::DOUBLE,
"Proprietes elasticite : 0 Calcul des tenseurs aux noeud 1 calcul des tenseurs aux noeuds par element 2. calcul des tenseurs aux point de gauss");
71 param_aster.
ajouter(
"Incr_mat_tan_pred",1,
OT_PARAMETRES::DOUBLE,
"Proprietes statique non lineaire : La matrice tangente de prediction est reevaluee a tous les «Incr_mat_tan_pred» increment d'instant");
72 param_aster.
ajouter(
"It_mat_tan_coh",0,
OT_PARAMETRES::DOUBLE,
"Proprietes statique non lineaire : La matrice tangente coherente est reevaluee a tous les «It_mat_tan_coh» iterarions de newton");
73 param_aster.
ajouter(
"It_resultat",0,
OT_PARAMETRES::DOUBLE,
"Proprietes statique non lineaire : Enregistre un nombre donné d'instant de calcul, excluant le dernier instant qui est enregistre par defaut");
137 static std::map<long,int,std::less<long > > tab;
139 if (ele==NULL)
return 0;
142 for (
int k=0;k<nbccf;k++)
151 unsigned char *p=(
unsigned char*)&val;
157 std::map<long,int,std::less<long > >::iterator it=tab.find(
couleur);
160 std::pair<long,int> tmp(
couleur,num);
165 int valeur=(*it).second+1+((*it).second+1)/20;
174 f <<
"$ElementData" << std::endl;
176 f<<
"\"Partition\""<<std::endl;
183 f << nbele << std::endl;
187 f << segment->get_nouveau_numero()<<
" ";
188 unsigned long numpart=(
unsigned long)(0.1*(segment->get_origine()-1000)+1);
189 f << numpart << std::endl;
194 f << tri->get_nouveau_numero()<<
" ";
195 unsigned long numpart=(
unsigned long)(0.1*(tri->get_origine()-1000)+1);
196 f << numpart << std::endl;
201 f << quad->get_nouveau_numero()<<
" ";
202 unsigned long numpart=(
unsigned long)(0.1*(quad->get_origine()-1000)+1);
203 f << numpart << std::endl;
208 f << tet->get_nouveau_numero()<<
" ";
209 unsigned long numpart=(
unsigned long)(0.1*(tet->get_origine()-1000)+1);
210 f << numpart << std::endl;
215 f << hex->get_nouveau_numero()<<
" ";
216 unsigned long numpart=(
unsigned long)(0.1*(hex->get_origine()-1000)+1);
217 f << numpart << std::endl;
222 f << pen->get_nouveau_numero() <<
" ";
223 unsigned long numpart=(
unsigned long)(0.1*(pen->get_origine()-1000)+1);
224 f << numpart << std::endl;
229 f << pyr->get_nouveau_numero() <<
" ";
230 unsigned long numpart=(
unsigned long)(0.1*(pyr->get_origine()-1000)+1);
231 f << numpart << std::endl;
233 f <<
"$EndElementData" << std::endl;
239 f <<
"$Entities"<< std::endl;
241 LISTE_MG_SOMMET::iterator its;
245 if (!som->est_une_topo_element())
246 som->get_point()->evaluer(xyz);
254 f<< som->get_id() <<
" " << xyz[0] <<
" " << xyz[1] <<
" " << xyz[2] <<
" 0" << std::endl;
256 LISTE_MG_ARETE::iterator ita;
260 if (!are->est_une_topo_element())
262 double xyz1[3],xyz2[3];
263 are->get_cosommet1()->get_sommet()->get_point()->evaluer(xyz1);
264 are->get_cosommet2()->get_sommet()->get_point()->evaluer(xyz2);
265 BOITE_3D b1(xyz1[0],xyz1[1],xyz1[2],xyz1[0],xyz1[1],xyz1[2]);
266 BOITE_3D b2(xyz2[0],xyz2[1],xyz2[2],xyz2[0],xyz2[1],xyz2[2]);
276 BOITE_3D b1(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
277 if (i==0) b=b1;
else b=b+b1;
280 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
286 LISTE_MG_FACE::iterator itf;
290 if (!fac->est_une_topo_element())
293 fac->get_topologie_sousjacente(&lst);
297 if (ele->get_type()==MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::SOMMET)
302 BOITE_3D b1(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
303 if (ini==
false) {ini=
true;b=b1;}
else b=b+b1;
317 BOITE_3D b1(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
318 if (i==0) b=b1;
else b=b+b1;
321 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
325 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
333 BOITE_3D b1(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
334 if (i==0) b=b1;
else b=b+b1;
337 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
341 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
345 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
352 LISTE_MG_VOLUME::iterator itv;
356 if (!vol->est_une_topo_element())
359 vol->get_topologie_sousjacente(&lst);
363 if (ele->get_type()==MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::SOMMET)
368 BOITE_3D b1(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
369 if (ini==
false) {ini=
true;b=b1;}
else b=b+b1;
383 BOITE_3D b1(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
384 if (i==0) b=b1;
else b=b+b1;
387 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
391 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
395 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
403 BOITE_3D b1(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
404 if (i==0) b=b1;
else b=b+b1;
407 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
411 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
415 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
419 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
423 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
427 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
431 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
439 BOITE_3D b1(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
440 if (i==0) b=b1;
else b=b+b1;
443 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
447 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
451 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
455 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
459 b1.reinit(xyz[0],xyz[1],xyz[2],xyz[0],xyz[1],xyz[2]);
469 f <<
"$EndEntities"<< std::endl;
475 f <<
"$MeshFormat"<< std::endl;
476 f <<
"4.1 0 " <<
sizeof(double) << std::endl;
477 f <<
"$EndMeshFormat"<< std::endl;
478 std::map<unsigned long,std::vector<MG_ELEMENT_MAILLAGE*> > entiteno,entiteel,partition;
479 std::map<unsigned long,std::vector<std::pair<int,MG_ELEMENT_MAILLAGE*> > > entiteelno;
480 LISTE_MG_NOEUD::iterator it;
484 noeud->change_nouveau_numero(i+1);
487 if (noeud->get_lien_topologie()!=NULL)
id=noeud->get_lien_topologie()->get_id();
489 entiteno[id].push_back(noeud);
498 if (no->get_lien_topologie()!=NULL)
id=no->get_lien_topologie()->get_id();
499 std::pair<int,MG_ELEMENT_MAILLAGE*> tmp(i,no);
500 entiteelno[id].push_back(tmp);
501 unsigned long numpart=(
unsigned long)(0.1*(no->get_origine()-1000)+1);
502 partition[numpart].push_back(no);
509 if (segment->get_lien_topologie()!=NULL)
id=segment->get_lien_topologie()->get_id();
510 entiteel[id].push_back(segment);
511 segment->change_nouveau_numero(i);
512 unsigned long numpart=(
unsigned long)(0.1*(segment->get_origine()-1000)+1);
513 partition[numpart].push_back(segment);
520 tri->change_nouveau_numero(i);
521 if (tri->get_lien_topologie()!=NULL)
id=tri->get_lien_topologie()->get_id();
522 entiteel[id].push_back(tri);
523 unsigned long numpart=(
unsigned long)(0.1*(tri->get_origine()-1000)+1);
524 partition[numpart].push_back(tri);
531 if (quad->get_lien_topologie()!=NULL)
id=quad->get_lien_topologie()->get_id();
532 quad->change_nouveau_numero(i);
533 entiteel[id].push_back(quad);
534 unsigned long numpart=(
unsigned long)(0.1*(quad->get_origine()-1000)+1);
535 partition[numpart].push_back(quad);
542 if (tet->get_lien_topologie()!=NULL)
id=tet->get_lien_topologie()->get_id();
543 tet->change_nouveau_numero(i);
544 entiteel[id].push_back(tet);
545 unsigned long numpart=(
unsigned long)(0.1*(tet->get_origine()-1000)+1);
546 partition[numpart].push_back(tet);
553 if (hex->get_lien_topologie()!=NULL)
id=hex->get_lien_topologie()->get_id();
554 hex->change_nouveau_numero(i);
555 entiteel[id].push_back(hex);
556 unsigned long numpart=(
unsigned long)(0.1*(hex->get_origine()-1000)+1);
557 partition[numpart].push_back(hex);
564 if (pen->get_lien_topologie()!=NULL)
id=pen->get_lien_topologie()->get_id();
565 pen->change_nouveau_numero(i);
566 entiteel[id].push_back(pen);
567 unsigned long numpart=(
unsigned long)(0.1*(pen->get_origine()-1000)+1);
568 partition[numpart].push_back(pen);
575 if (pyr->get_lien_topologie()!=NULL)
id=pyr->get_lien_topologie()->get_id();
576 pyr->change_nouveau_numero(i);
577 entiteel[id].push_back(pyr);
578 unsigned long numpart=(
unsigned long)(0.1*(pyr->get_origine()-1000)+1);
579 partition[numpart].push_back(pyr);
590 f <<
"$Nodes"<< std::endl;
592 f << entiteno.size() <<
" " << nbnoeud<<
" 1 "<< nbnoeud << std::endl;
593 for (std::map<
unsigned long,std::vector<MG_ELEMENT_MAILLAGE*> >::iterator itn=entiteno.begin();itn!=entiteno.end();itn++)
596 if (topo!=NULL)
f << topo->
get_dimension() <<
" " << itn->first <<
" 0 " << itn->second.size() << std::endl;
598 for (
int i=0;i<itn->second.size();i++)
599 f << itn->second[i]->get_nouveau_numero() << std::endl;
600 for (
int i=0;i<itn->second.size();i++)
606 f<<
"$EndNodes"<< std::endl;
607 f<<
"$Elements"<< std::endl;
609 f<<entiteelno.size()+entiteel.size()<<
" " << nbele <<
" 1 " << nbele << std::endl;
610 for (std::map<
unsigned long,std::vector<std::pair<int,MG_ELEMENT_MAILLAGE*> > >::iterator itn=entiteelno.begin();itn!=entiteelno.end();itn++)
613 if (itn->second[0].second->get_lien_topologie()!=NULL) dim=itn->second[0].second->get_lien_topologie()->get_dimension();
614 f<< dim <<
" " << itn->first <<
" 15 " << itn->second.size() << std::endl;
615 for (
int i=0;i<itn->second.size();i++)
616 f<< itn->second[i].first <<
" " << itn->second[i].second->get_nouveau_numero() << std::endl;
618 for (std::map<
unsigned long,std::vector<MG_ELEMENT_MAILLAGE*> >::iterator itn=entiteel.begin();itn!=entiteel.end();itn++)
621 if (itn->second[0]->get_lien_topologie()!=NULL) dim=itn->second[0]->get_lien_topologie()->get_dimension();
632 int identite=itn->first;
633 if (geo==NULL) identite=1;
634 f<< dim <<
" " << identite <<
" " << typegmsh <<
" " << itn->second.size() << std::endl;
635 for (
int i=0;i<itn->second.size();i++)
638 f<< itn->second[i]->get_nouveau_numero() <<
" " ;
639 std::vector<int> tabnoeud;
700 for (
int j=0;j<tabnoeud.size();j++)
701 f << tabnoeud[j] <<
" ";
706 f<<
"$EndElements"<< std::endl;
707 if (partition.size()>1)
gmsh41partition(
f,mai,lstnoeud,lstsegment,lsttriangle,lstquadrangle,lsttetra,lsthexa,lstpenta,lstpyramide);
713 f <<
"$MeshFormat"<< std::endl;
714 f <<
"2 0 " <<
sizeof(double) << std::endl;
715 f <<
"$EndMeshFormat"<< std::endl;
716 f <<
"$Nodes"<< std::endl;
719 LISTE_MG_NOEUD::iterator it;
720 f << nbnoeud<< std::endl;
723 double facteur_unite=1.;
726 noeud->change_nouveau_numero(i+1);
727 double *coord=noeud->get_coord();
728 f << i+1 <<
" " << coord[0]*facteur_unite <<
" " << coord[1]*facteur_unite <<
" " << coord[2]*facteur_unite << std::endl;
731 f<<
"$EndNodes"<< std::endl;
732 f<<
"$Elements"<< std::endl;
734 f << nbelement << std::endl;
740 if (no->get_lien_topologie()!=NULL)
id=no->get_lien_topologie()->get_id();
741 f << ++i <<
" 15 3 " <<
couleur(no->get_lien_topologie()) <<
" " <<
id <<
" " << (int)(0.1*(no->get_origine()-1000)+1) <<
" " << no->get_nouveau_numero() << std::endl;
748 if (segment->get_lien_topologie()!=NULL)
id=segment->get_lien_topologie()->get_id();
749 f << ++i <<
" 1 3 " <<
couleur(segment->get_lien_topologie()) <<
" " <<
id <<
" " << (int)(0.1*(segment->get_origine()-1000)+1) <<
" " << segment->get_noeud1()->get_nouveau_numero() <<
" " << segment->get_noeud2()->get_nouveau_numero() << std::endl;
750 segment->change_nouveau_numero(i);
756 if (tri->get_lien_topologie()!=NULL)
id=tri->get_lien_topologie()->get_id();
757 f << ++i <<
" 2 3 " <<
couleur(tri->get_lien_topologie()) <<
" " <<
id <<
" " << (int)(0.1*(tri->get_origine()-1000)+1) <<
" " << tri->get_noeud1()->get_nouveau_numero() <<
" " << tri->get_noeud2()->get_nouveau_numero() <<
" " << tri->get_noeud3()->get_nouveau_numero() << std::endl;
758 tri->change_nouveau_numero(i);
764 if (quad->get_lien_topologie()!=NULL)
id=quad->get_lien_topologie()->get_id();
765 f << ++i <<
" 3 3 " <<
couleur(quad->get_lien_topologie()) <<
" " <<
id <<
" " << (int)(0.1*(quad->get_origine()-1000)+1) <<
" " << quad->get_noeud1()->get_nouveau_numero() <<
" " << quad->get_noeud2()->get_nouveau_numero() <<
" " << quad->get_noeud3()->get_nouveau_numero() <<
" " << quad->get_noeud4()->get_nouveau_numero() << std::endl;
766 quad->change_nouveau_numero(i);
772 if (tet->get_lien_topologie()!=NULL)
id=tet->get_lien_topologie()->get_id();
773 f << ++i <<
" 4 3 " <<
couleur(tet->get_lien_topologie()) <<
" "<<
id <<
" " << (int)(0.1*(tet->get_origine()-1000)+1) <<
" " << tet->get_noeud1()->get_nouveau_numero() <<
" " << tet->get_noeud2()->get_nouveau_numero() <<
" " << tet->get_noeud3()->get_nouveau_numero() <<
" " << tet->get_noeud4()->get_nouveau_numero()<< std::endl;
774 tet->change_nouveau_numero(i);
780 if (hex->get_lien_topologie()!=NULL)
id=hex->get_lien_topologie()->get_id();
781 f << ++i <<
" 5 3 " <<
couleur(hex->get_lien_topologie()) <<
" "<<
id <<
" " << (int)(0.1*(hex->get_origine()-1000)+1) <<
" " << hex->get_noeud1()->get_nouveau_numero() <<
" " << hex->get_noeud2()->get_nouveau_numero() <<
" " << hex->get_noeud3()->get_nouveau_numero() <<
" " << hex->get_noeud4()->get_nouveau_numero()<<
" " << hex->get_noeud5()->get_nouveau_numero() <<
" " << hex->get_noeud6()->get_nouveau_numero() <<
" " << hex->get_noeud7()->get_nouveau_numero() <<
" " << hex->get_noeud8()->get_nouveau_numero() << std::endl;
782 hex->change_nouveau_numero(i);
788 if (pen->get_lien_topologie()!=NULL)
id=pen->get_lien_topologie()->get_id();
789 f << ++i <<
" 6 3 " <<
couleur(pen->get_lien_topologie()) <<
" "<<
id <<
" " << (int)(0.1*(pen->get_origine()-1000)+1) <<
" " << pen->get_noeud1()->get_nouveau_numero() <<
" " << pen->get_noeud2()->get_nouveau_numero() <<
" " << pen->get_noeud3()->get_nouveau_numero() <<
" " << pen->get_noeud4()->get_nouveau_numero()<<
" " << pen->get_noeud5()->get_nouveau_numero() <<
" " << pen->get_noeud6()->get_nouveau_numero() << std::endl;
790 pen->change_nouveau_numero(i);
796 if (pyr->get_lien_topologie()!=NULL)
id=pyr->get_lien_topologie()->get_id();
797 f << ++i <<
" 7 3 " <<
couleur(pyr->get_lien_topologie()) <<
" "<<
id <<
" " << (int)(0.1*(pyr->get_origine()-1000)+1) <<
" " << pyr->get_noeud1()->get_nouveau_numero() <<
" " << pyr->get_noeud2()->get_nouveau_numero() <<
" " << pyr->get_noeud3()->get_nouveau_numero() <<
" " << pyr->get_noeud4()->get_nouveau_numero()<<
" " << pyr->get_noeud5()->get_nouveau_numero() << std::endl;
798 pyr->change_nouveau_numero(i);
800 f<<
"$EndElements"<< std::endl;
813 decompose_maillage(mai,lstnoeud,lstsegment,lsttriangle,lstquadrangle,lsttetra,lsthexa,lstpenta,lstpyramide);
815 std::string file=nomfichier+
".msh";
816 f.open(file.c_str(),std::ios::out);
818 f.setf(std::ios::showpoint);
821 if (versiongmsh<4.)
gmsh2(
f,mai,lstnoeud,lstsegment,lsttriangle,lstquadrangle,lsttetra,lsthexa,lstpenta,lstpyramide);
822 else gmsh41(
f,mai,lstnoeud,lstsegment,lsttriangle,lstquadrangle,lsttetra,lsthexa,lstpenta,lstpyramide);
831 for (
int i=0;i<nbsol;i++)
839 for (
int i=0;i<nbsol;i++)
844 for (
int j=0;j<nb_champs;j++)
856 for (
int k=0;k<nom.length();k++)
if (nom[k]==
' ') nom[k]=
'_';
857 f<<
"\""+nom+
"\""<<std::endl;
870 f<< noeud->get_nouveau_numero() <<
" " ;
872 f <<
" " << sol->
lire(k,j,coord);
886 f<< tet->get_nouveau_numero() <<
" " ;
888 f <<
" " << sol->
lire(k,j,coord);
895 f<< hex->get_nouveau_numero() <<
" " ;
897 f <<
" " << sol->
lire(k,j,coord);
910 f<< tri->get_nouveau_numero() <<
" ";
912 f <<
" " << sol->
lire(k,j,coord);
919 f<< quad->get_nouveau_numero() <<
" ";
921 f <<
" " << sol->
lire(k,j,coord);
929 int nb3=lstsegment.
get_nb();
934 f<< segment->get_nouveau_numero() <<
" ";
936 f <<
" " << sol->
lire(k,j,coord);
945 LISTE_MG_SEGMENT::iterator it;
950 f<<ele->get_nouveau_numero()<<
" " << num <<
" ";
951 for (
int l=0;l<num;l++)
953 f << sol->
lire(k,j,coord,l) <<
" ";
963 LISTE_MG_TRIANGLE::iterator it;
967 f<<ele->get_nouveau_numero()<<
" " << num <<
" ";
968 for (
int l=0;l<num;l++)
970 f << sol->
lire(k,j,coord,l) <<
" ";
974 LISTE_MG_QUADRANGLE::iterator itq;
978 f<<ele->get_nouveau_numero()<<
" " << num <<
" ";
979 for (
int l=0;l<num;l++)
981 f << sol->
lire(k,j,coord,l) <<
" ";
991 LISTE_MG_TETRA::iterator it;
995 f<<ele->get_nouveau_numero()<<
" " << num <<
" ";
996 for (
int l=0;l<num;l++)
998 f << sol->
lire(k,j,coord,l) <<
" ";
1002 LISTE_MG_HEXA::iterator ith;
1006 f<<ele->get_nouveau_numero()<<
" " << num <<
" ";
1007 for (
int l=0;l<num;l++)
1009 f << sol->
lire(k,j,coord,l) <<
" ";
1035 std::string file=fichier+
".cormsh";
1036 f.open(file.c_str(),std::ios::out);
1038 f.setf(std::ios::showpoint);
1041 LISTE_FEM_NOEUD::iterator it;
1044 if (noeud->get_numero_opt()!=-1)
1047 f <<
"NO-" << noeud->get_numero() <<
"::" << noeud->get_id() <<
"::" << noeud->get_numero_opt() << std::endl;
1049 f <<
"NO-" << noeud->get_numero() <<
"::" << noeud->get_id() << std::endl;
1052 LISTE_FEM_ELEMENT0::iterator itelementnoeud;
1054 f <<
"NL-" << noeud->get_numero() <<
"::" << noeud->get_id() << std::endl;;
1055 LISTE_FEM_ELEMENT1::iterator itsegment;
1057 f <<
"E1-" << segment->get_numero() <<
"::" << segment->get_id() << std::endl;;
1058 LISTE_FEM_ELEMENT2::iterator ittriangle;
1060 f <<
"E2-" << triangle->get_numero() <<
"::" << triangle->get_id() << std::endl;;
1061 LISTE_FEM_ELEMENT3::iterator ittetra;
1063 f <<
"E3-" << tetra->get_numero() <<
"::" << tetra->get_id() << std::endl;;
1064 LISTE_XFEM_ELEMENT0::iterator itxelementnoeud;
1066 f <<
"X0-" << noeud->get_numero() <<
"::" << noeud->get_id() << std::endl;;
1067 LISTE_XFEM_ELEMENT1::iterator itxsegment;
1069 f <<
"X1-" << segment->get_numero() <<
"::" << segment->get_id() << std::endl;;
1070 LISTE_XFEM_ELEMENT2::iterator itxtriangle;
1072 f <<
"X2-" << triangle->get_numero() <<
"::" << triangle->get_id() << std::endl;;
1073 LISTE_XFEM_ELEMENT3::iterator itxtetra;
1075 f <<
"X3-" << xtetra->get_numero() <<
"::" << xtetra->get_id() << std::endl;
1084 std::string file=fichier+
".cormsh";
1085 f.open(file.c_str(),std::ios::out);
1087 f.setf(std::ios::showpoint);
1088 LISTE_MG_NOEUD::iterator it;
1090 f <<
"NO-" << noeud->get_nouveau_numero() <<
"::" << noeud->get_id() << std::endl;;
1091 LISTE_MG_SEGMENT::iterator its;
1093 f <<
"SG-" << seg->get_nouveau_numero() <<
"::" << seg->get_id() << std::endl;;
1094 LISTE_MG_TRIANGLE::iterator itt;
1096 f <<
"TR-" << tri->get_nouveau_numero() <<
"::" << tri->get_id() << std::endl;;
1097 LISTE_MG_QUADRANGLE::iterator itq;
1099 f <<
"QR-" << quad->get_nouveau_numero() <<
"::" << quad->get_id() << std::endl;;
1100 LISTE_MG_TETRA::iterator itte;
1102 f <<
"TE-" << tet->get_nouveau_numero() <<
"::" << tet->get_id() << std::endl;;
1103 LISTE_MG_HEXA::iterator ith;
1105 f <<
"HX-" << hex->get_nouveau_numero() <<
"::" << hex->get_id() << std::endl;;
1114 f <<
"$MeshFormat"<< std::endl;
1115 f <<
"2 0 " <<
sizeof(double) << std::endl;
1116 f <<
"$EndMeshFormat"<< std::endl;
1117 f <<
"$Nodes"<< std::endl;
1119 LISTE_FEM_NOEUD::iterator it;
1120 f << nbnoeud<< std::endl;
1124 noeud->change_numero(i+1);
1125 double *coord=noeud->get_coord();
1126 f << i+1 <<
" " << coord[0] <<
" " << coord[1] <<
" " << coord[2] << std::endl;
1129 f<<
"$EndNodes"<< std::endl;
1130 f<<
"$Elements"<< std::endl;
1132 f << nbelement << std::endl;
1134 LISTE_FEM_ELEMENT0::iterator itelementnoeud;
1137 unsigned long idref=0;
1138 if (noeud->get_lien_topologie()!=NULL) idref=noeud->get_lien_topologie()->get_id();
1139 f << ++i <<
" 15 2 1 " << idref <<
" " << noeud->get_fem_noeud(0)->get_numero() << std::endl;
1141 LISTE_FEM_ELEMENT1::iterator itsegment;
1144 unsigned long idref=0;
1145 if (segment->get_lien_topologie()!=NULL) idref=segment->get_lien_topologie()->get_id();
1146 if (mai->
get_degre()==1)
f << ++i <<
" 1 2 1 " << idref <<
" " << segment->get_fem_noeud(0)->get_numero() <<
" " << segment->get_fem_noeud(1)->get_numero() << std::endl;
1147 if (mai->
get_degre()==2)
f << ++i <<
" 8 2 1 " << idref <<
" " << segment->get_fem_noeud(0)->get_numero() <<
" " << segment->get_fem_noeud(2)->get_numero() <<
" " << segment->get_fem_noeud(1)->get_numero() << std::endl;
1148 segment->change_numero(i);
1150 LISTE_FEM_ELEMENT2::iterator ittriangle;
1153 unsigned long idref=0;
1154 if (triangle->get_lien_topologie()!=NULL) idref=triangle->get_lien_topologie()->get_id();
1155 int nb=triangle->get_nb_fem_noeud();
1156 if (nb==3)
f << ++i <<
" 2 2 1 " << idref <<
" " << triangle->get_fem_noeud(0)->get_numero() <<
" " << triangle->get_fem_noeud(1)->get_numero() <<
" " << triangle->get_fem_noeud(2)->get_numero() << std::endl;
1157 if (nb==6)
f << ++i <<
" 9 2 1 " << idref <<
" " << triangle->get_fem_noeud(0)->get_numero() <<
" " << triangle->get_fem_noeud(2)->get_numero() <<
" " << triangle->get_fem_noeud(4)->get_numero() <<
" " << triangle->get_fem_noeud(1)->get_numero() <<
" " << triangle->get_fem_noeud(3)->get_numero() <<
" " << triangle->get_fem_noeud(5)->get_numero() << std::endl;
1158 if (nb==4)
f << ++i <<
" 3 2 1 " << idref <<
" " << triangle->get_fem_noeud(0)->get_numero() <<
" " << triangle->get_fem_noeud(1)->get_numero() <<
" " << triangle->get_fem_noeud(2)->get_numero() <<
" " << triangle->get_fem_noeud(3)->get_numero() << std::endl;
1159 if (nb==8)
f << ++i <<
" 16 2 1 " << idref <<
" " << triangle->get_fem_noeud(0)->get_numero() <<
" " << triangle->get_fem_noeud(2)->get_numero() <<
" " << triangle->get_fem_noeud(4)->get_numero() <<
" " << triangle->get_fem_noeud(6)->get_numero() <<
" " << triangle->get_fem_noeud(1)->get_numero() <<
" " << triangle->get_fem_noeud(3)->get_numero()<<
" " << triangle->get_fem_noeud(5)->get_numero()<<
" " << triangle->get_fem_noeud(7)->get_numero() << std::endl;
1160 triangle->change_numero(i);
1162 LISTE_FEM_ELEMENT3::iterator ittetra;
1165 unsigned long idref=0;
1166 if (tetra->get_lien_topologie()!=NULL) idref=tetra->get_lien_topologie()->get_id();
1167 int nb=tetra->get_nb_fem_noeud();
1168 if (nb==4)
f << ++i <<
" 4 3 1 " << idref <<
" " << tetra->get_etat(0) <<
" " << tetra->get_fem_noeud(0)->get_numero() <<
" " << tetra->get_fem_noeud(1)->get_numero() <<
" " << tetra->get_fem_noeud(2)->get_numero() <<
" " << tetra->get_fem_noeud(3)->get_numero() << std::endl;
1169 if (nb==10)
f << ++i <<
" 11 3 1 " << idref <<
" " << tetra->get_etat(0) <<
" " << tetra->get_fem_noeud(0)->get_numero() <<
" " << tetra->get_fem_noeud(2)->get_numero() <<
" " << tetra->get_fem_noeud(4)->get_numero() <<
" " << tetra->get_fem_noeud(9)->get_numero() <<
" " << tetra->get_fem_noeud(1)->get_numero() <<
" " << tetra->get_fem_noeud(3)->get_numero() <<
" " << tetra->get_fem_noeud(5)->get_numero() <<
" " << tetra->get_fem_noeud(6)->get_numero() <<
" " << tetra->get_fem_noeud(8)->get_numero() <<
" " << tetra->get_fem_noeud(7)->get_numero() << std::endl;
1170 if (nb==8)
f << ++i <<
" 5 3 1 " << idref <<
" " << tetra->get_etat(0) <<
" " << tetra->get_fem_noeud(0)->get_numero() <<
" " << tetra->get_fem_noeud(1)->get_numero() <<
" " << tetra->get_fem_noeud(2)->get_numero() <<
" " << tetra->get_fem_noeud(3)->get_numero()<<
" " << tetra->get_fem_noeud(4)->get_numero()<<
" " << tetra->get_fem_noeud(5)->get_numero()<<
" " << tetra->get_fem_noeud(6)->get_numero()<<
" " << tetra->get_fem_noeud(7)->get_numero()<< std::endl;
1171 if (nb==20)
f << ++i <<
" 17 3 1 " << idref <<
" " << tetra->get_etat(0) <<
" " << tetra->get_fem_noeud(0)->get_numero() <<
" " << tetra->get_fem_noeud(2)->get_numero() <<
" " << tetra->get_fem_noeud(4)->get_numero() <<
" " << tetra->get_fem_noeud(6)->get_numero() <<
" " << tetra->get_fem_noeud(12)->get_numero() <<
" " << tetra->get_fem_noeud(14)->get_numero() <<
" " << tetra->get_fem_noeud(16)->get_numero() <<
" " << tetra->get_fem_noeud(18)->get_numero() <<
" " << tetra->get_fem_noeud(1)->get_numero() <<
" " << tetra->get_fem_noeud(7)->get_numero()<<
" " << tetra->get_fem_noeud(8)->get_numero()<<
" " << tetra->get_fem_noeud(3)->get_numero()<<
" " << tetra->get_fem_noeud(9)->get_numero()<<
" " << tetra->get_fem_noeud(5)->get_numero()<<
" " << tetra->get_fem_noeud(10)->get_numero()<<
" " << tetra->get_fem_noeud(11)->get_numero()<<
" " << tetra->get_fem_noeud(13)->get_numero()<<
" " << tetra->get_fem_noeud(19)->get_numero()<<
" " << tetra->get_fem_noeud(15)->get_numero()<<
" " << tetra->get_fem_noeud(
1172 17)->get_numero() << std::endl;
1173 tetra->change_numero(i);
1175 f<<
"$EndElements"<< std::endl;
1180 f <<
"$MeshFormat"<< std::endl;
1181 f <<
"4.1 0 " <<
sizeof(double) << std::endl;
1182 f <<
"$EndMeshFormat"<< std::endl;
1183 std::map<unsigned long,std::map<unsigned long,std::vector<FEM_ELEMENT_MAILLAGE*> > > entiteno;
1184 LISTE_FEM_NOEUD::iterator it;
1195 if (noeud->get_lien_topologie()!=NULL)
1197 id=noeud->get_lien_topologie()->get_id();
1198 dim=noeud->get_lien_topologie()->get_dimension();
1200 entiteno[dim][id].push_back(noeud);
1201 noeud->change_numero(i+1);
1205 for (std::map<
unsigned long,std::map<
unsigned long,std::vector<FEM_ELEMENT_MAILLAGE*> > >::iterator it=entiteno.begin();it!=entiteno.end();it++)
1206 nbblocnoeud=nbblocnoeud+it->second.size();
1210 f <<
"$Nodes"<< std::endl;
1211 f << nbblocnoeud <<
" " << nbnoeud <<
" 1 " << nbnoeud << std::endl;
1212 for (std::map<
unsigned long,std::map<
unsigned long,std::vector<FEM_ELEMENT_MAILLAGE*> > >::iterator it=entiteno.begin();it!=entiteno.end();it++)
1213 for (std::map<
unsigned long,std::vector<FEM_ELEMENT_MAILLAGE*> > ::iterator it2=it->second.begin();it2!=it->second.end();it2++)
1215 f << it->first <<
" " << it2->first <<
" 0 " << it2->second.size() << std::endl;
1216 for (
int i=0;i<it2->second.size();i++)
1217 f << it2->second[i]->get_numero() << std::endl;
1218 for (
int i=0;i<it2->second.size();i++)
1225 f<<
"$EndNodes"<< std::endl;
1226 std::map<unsigned long,std::map<unsigned long,std::vector<FEM_ELEMENT_MAILLAGE*> > > entiteel;
1228 LISTE_FEM_ELEMENT0::iterator itelementnoeud;
1232 if (noeud->get_lien_topologie()!=NULL)
id=noeud->get_lien_topologie()->get_id();
1233 entiteel[15][id].push_back(noeud);
1235 noeud->change_numero(i);
1237 LISTE_FEM_ELEMENT1::iterator itsegment;
1241 if (segment->get_lien_topologie()!=NULL)
id=segment->get_lien_topologie()->get_id();
1242 int nb=segment->get_nb_fem_noeud();
1243 if (nb==2) entiteel[1][id].push_back(segment);
1244 if (nb==3) entiteel[8][id].push_back(segment);
1246 segment->change_numero(i);
1248 LISTE_FEM_ELEMENT2::iterator ittriangle;
1252 if (triangle->get_lien_topologie()!=NULL)
id=triangle->get_lien_topologie()->get_id();
1253 int nb=triangle->get_nb_fem_noeud();
1254 if (nb==3) entiteel[2][id].push_back(triangle);
1255 if (nb==4) entiteel[3][id].push_back(triangle);
1256 if (nb==6) entiteel[9][id].push_back(triangle);
1257 if (nb==8) entiteel[16][id].push_back(triangle);
1259 triangle->change_numero(i);
1261 LISTE_FEM_ELEMENT3::iterator ittetra;
1265 if (tetra->get_lien_topologie()!=NULL)
id=tetra->get_lien_topologie()->get_id();
1266 int nb=tetra->get_nb_fem_noeud();
1267 if (nb==4) entiteel[4][id].push_back(tetra);
1268 if (nb==8) entiteel[5][id].push_back(tetra);
1269 if (nb==6) entiteel[6][id].push_back(tetra);
1270 if (nb==10) entiteel[11][id].push_back(tetra);
1271 if (nb==20) entiteel[17][id].push_back(tetra);
1272 if (nb==15) entiteel[18][id].push_back(tetra);
1274 tetra->change_numero(i);
1276 f<<
"$Elements"<< std::endl;
1278 for (std::map<
unsigned long,std::map<
unsigned long,std::vector<FEM_ELEMENT_MAILLAGE*> > >:: iterator itmap1=entiteel.begin();itmap1!=entiteel.end();itmap1++)
1279 nbbloc=nbbloc+itmap1->second.size();
1280 f << nbbloc <<
" " << i <<
" 1 " << i << std::endl;
1281 for (std::map<
unsigned long,std::map<
unsigned long,std::vector<FEM_ELEMENT_MAILLAGE*> > >:: iterator itmap1=entiteel.begin();itmap1!=entiteel.end();itmap1++)
1282 for (std::map<
unsigned long,std::vector<FEM_ELEMENT_MAILLAGE*> > :: iterator itmap2=itmap1->second.begin();itmap2!=itmap1->second.end();itmap2++)
1285 if (itmap1->first==15) dim=0;
1286 if (itmap1->first==1) dim=1;
1287 if (itmap1->first==8) dim=1;
1288 if (itmap1->first==2) dim=2;
1289 if (itmap1->first==3) dim=2;
1290 if (itmap1->first==9) dim=2;
1291 if (itmap1->first==16) dim=2;
1292 if (itmap1->first==4) dim=3;
1293 if (itmap1->first==5) dim=3;
1294 if (itmap1->first==6) dim=3;
1295 if (itmap1->first==11) dim=3;
1296 if (itmap1->first==17) dim=3;
1297 if (itmap1->first==18) dim=3;
1298 f << dim <<
" "<< itmap2->first <<
" " << itmap1->first <<
" " << itmap2->second.size() << std::endl;
1299 for (
int i=0;i<itmap2->second.size();i++)
1301 f << itmap2->second[i]->get_numero() <<
" " ;
1302 if (itmap1->first==15)
1307 if (itmap1->first==1)
1313 if (itmap1->first==8)
1320 if (itmap1->first==2)
1327 if (itmap1->first==3)
1335 if (itmap1->first==9)
1345 if (itmap1->first==16)
1357 if (itmap1->first==4)
1365 if (itmap1->first==5)
1377 if (itmap1->first==6)
1387 if (itmap1->first==11)
1401 if (itmap1->first==17)
1427 if (itmap1->first==18)
1450 f<<
"$EndElements"<< std::endl;
1455 char fichierparam[300];
1456 FILE *
f=popen(
"gmsh -version 2>&1 | cut -b 1",
"r");
1457 double versioninstalle;
1458 fscanf(
f,
"%lf",&versioninstalle);
1459 sprintf(fichierparam,
"%s/.magic",getenv(
"HOME"));
1462 param.
lire(fichierparam);
1464 double versiongmsh=param.
get_valeur((
char*)
"Version_gmsh");
1474 std::string file=fichier+
".msh";
1475 f.open(file.c_str(),std::ios::out);
1477 f.setf(std::ios::showpoint);
1479 if (versiongmsh<4.)
gmsh2(
f,carte);
1484 f <<
"$NodeData"<< std::endl;
1487 for (
int k=0;k<nom.length();k++)
if (nom[k]==
' ') nom[k]=
'_';
1488 f<<
"\""+nom+
"\""<<std::endl;
1490 f<<
"0.0"<<std::endl;
1496 LISTE_FEM_NOEUD::iterator itn;
1499 f<< noeud->get_numero();
1501 f <<
" " << sol->
lire(k,0,coord);
1505 f <<
"$EndNodeData"<< std::endl;
1508 f <<
"$NodeData"<< std::endl;
1510 std::string nom=sol->
get_nom()+
"_ecart nodal";
1511 for (
int k=0;k<nom.length();k++)
if (nom[k]==
' ') nom[k]=
'_';
1512 f<<
"\""+nom+
"\""<<std::endl;
1514 f<<
"0.0"<<std::endl;
1520 LISTE_FEM_NOEUD::iterator itn;
1523 f<< noeud->get_numero();
1524 double val=sol->
lire(k,0,0);
1525 f <<
" " << 1./
sqrt(val);
1529 f <<
"$EndNodeData"<< std::endl;
1533 for (
int i=0;i<3;i++)
1535 f <<
"$NodeData"<< std::endl;
1538 if (i==0) nom=sol->
get_nom()+
"_ecart nodal_x";
1539 if (i==1) nom=sol->
get_nom()+
"_ecart nodal_y";
1540 if (i==2) nom=sol->
get_nom()+
"_ecart nodal_z";
1541 for (
int k=0;k<nom.length();k++)
if (nom[k]==
' ') nom[k]=
'_';
1542 f<<
"\""+nom+
"\""<<std::endl;
1544 f<<
"0.0"<<std::endl;
1550 LISTE_FEM_NOEUD::iterator itn;
1553 f<< no->get_numero();
1555 metrique[0]=no->get_solution(0);
1556 metrique[1]=no->get_solution(1);
1557 metrique[2]=no->get_solution(2);
1558 metrique[3]=no->get_solution(3);
1559 metrique[4]=no->get_solution(4);
1560 metrique[5]=no->get_solution(5);
1561 metrique[6]=no->get_solution(6);
1562 metrique[7]=no->get_solution(7);
1563 metrique[8]=no->get_solution(8);
1564 double valeur_propre[3],vecteur_propre[9];
1566 f <<
" " << 1./
sqrt(valeur_propre[i]);
1570 f <<
"$EndNodeData"<< std::endl;
1579 f <<
"$MeshFormat"<< std::endl;
1580 f <<
"2 0 " <<
sizeof(double) << std::endl;
1581 f <<
"$EndMeshFormat"<< std::endl;
1582 f <<
"$Nodes"<< std::endl;
1584 LISTE_FEM_NOEUD::iterator it;
1585 f << nbnoeud<< std::endl;
1589 noeud->change_numero(i+1);
1590 double *coord=noeud->get_coord();
1591 f << noeud->get_numero() <<
" " << coord[0] <<
" " << coord[1] <<
" " << coord[2] << std::endl;
1594 f<<
"$EndNodes"<< std::endl;
1595 f<<
"$Elements"<< std::endl;
1597 f << nbelement << std::endl;
1599 LISTE_FEM_ELEMENT0::iterator itelementnoeud;
1602 unsigned long idref=0;
1603 if (noeud->get_lien_topologie()!=NULL) idref=noeud->get_lien_topologie()->get_id();
1604 f << ++i <<
" 15 2 1 " << idref <<
" " << noeud->get_fem_noeud(0)->get_numero() << std::endl;
1606 LISTE_FEM_ELEMENT1::iterator itsegment;
1609 unsigned long idref=0;
1610 if (segment->get_lien_topologie()!=NULL) idref=segment->get_lien_topologie()->get_id();
1611 if (mai->
get_degre()==1)
f << ++i <<
" 1 2 1 " << idref <<
" " << segment->get_fem_noeud(0)->get_numero() <<
" " << segment->get_fem_noeud(1)->get_numero() << std::endl;
1612 if (mai->
get_degre()==2)
f << ++i <<
" 8 2 1 " << idref <<
" " << segment->get_fem_noeud(0)->get_numero() <<
" " << segment->get_fem_noeud(2)->get_numero() <<
" " << segment->get_fem_noeud(1)->get_numero() << std::endl;
1613 segment->change_numero(i);
1615 LISTE_FEM_ELEMENT2::iterator ittriangle;
1618 unsigned long idref=0;
1619 if (triangle->get_lien_topologie()!=NULL) idref=triangle->get_lien_topologie()->get_id();
1620 int nb=triangle->get_nb_fem_noeud();
1621 if (nb==3)
f << ++i <<
" 2 2 1 " << idref <<
" " << triangle->get_fem_noeud(0)->get_numero() <<
" " << triangle->get_fem_noeud(1)->get_numero() <<
" " << triangle->get_fem_noeud(2)->get_numero() << std::endl;
1622 if (nb==6)
f << ++i <<
" 9 2 1 " << idref <<
" " << triangle->get_fem_noeud(0)->get_numero() <<
" " << triangle->get_fem_noeud(2)->get_numero() <<
" " << triangle->get_fem_noeud(4)->get_numero() <<
" " << triangle->get_fem_noeud(1)->get_numero() <<
" " << triangle->get_fem_noeud(3)->get_numero() <<
" " << triangle->get_fem_noeud(5)->get_numero() << std::endl;
1623 if (nb==4)
f << ++i <<
" 3 2 1 " << idref <<
" " << triangle->get_fem_noeud(0)->get_numero() <<
" " << triangle->get_fem_noeud(1)->get_numero() <<
" " << triangle->get_fem_noeud(2)->get_numero() <<
" " << triangle->get_fem_noeud(3)->get_numero() << std::endl;
1624 if (nb==8)
f << ++i <<
" 16 2 1 " << idref <<
" " << triangle->get_fem_noeud(0)->get_numero() <<
" " << triangle->get_fem_noeud(2)->get_numero() <<
" " << triangle->get_fem_noeud(4)->get_numero() <<
" " << triangle->get_fem_noeud(6)->get_numero() <<
" " << triangle->get_fem_noeud(1)->get_numero() <<
" " << triangle->get_fem_noeud(3)->get_numero()<<
" " << triangle->get_fem_noeud(5)->get_numero()<<
" " << triangle->get_fem_noeud(7)->get_numero() << std::endl;
1625 triangle->change_numero(i);
1627 LISTE_FEM_ELEMENT3::iterator ittetra;
1630 unsigned long idref=0;
1631 if (tetra->get_lien_topologie()!=NULL) idref=tetra->get_lien_topologie()->get_id();
1632 int nb=tetra->get_nb_fem_noeud();
1633 if (nb==4)
f << ++i <<
" 4 3 1 " << idref <<
" " << tetra->get_etat(0) <<
" " << tetra->get_fem_noeud(0)->get_numero() <<
" " << tetra->get_fem_noeud(1)->get_numero() <<
" " << tetra->get_fem_noeud(2)->get_numero() <<
" " << tetra->get_fem_noeud(3)->get_numero() << std::endl;
1634 if (nb==10)
f << ++i <<
" 11 3 1 " << idref <<
" " << tetra->get_etat(0) <<
" " << tetra->get_fem_noeud(0)->get_numero() <<
" " << tetra->get_fem_noeud(2)->get_numero() <<
" " << tetra->get_fem_noeud(4)->get_numero() <<
" " << tetra->get_fem_noeud(9)->get_numero() <<
" " << tetra->get_fem_noeud(1)->get_numero() <<
" " << tetra->get_fem_noeud(3)->get_numero() <<
" " << tetra->get_fem_noeud(5)->get_numero() <<
" " << tetra->get_fem_noeud(6)->get_numero() <<
" " << tetra->get_fem_noeud(8)->get_numero() <<
" " << tetra->get_fem_noeud(7)->get_numero() << std::endl;
1635 if (nb==8)
f << ++i <<
" 5 3 1 " << idref <<
" " << tetra->get_etat(0) <<
" " << tetra->get_fem_noeud(0)->get_numero() <<
" " << tetra->get_fem_noeud(1)->get_numero() <<
" " << tetra->get_fem_noeud(2)->get_numero() <<
" " << tetra->get_fem_noeud(3)->get_numero()<<
" " << tetra->get_fem_noeud(4)->get_numero()<<
" " << tetra->get_fem_noeud(5)->get_numero()<<
" " << tetra->get_fem_noeud(6)->get_numero()<<
" " << tetra->get_fem_noeud(7)->get_numero()<< std::endl;
1636 if (nb==20)
f << ++i <<
" 17 3 1 " << idref <<
" " << tetra->get_etat(0) <<
" " << tetra->get_fem_noeud(0)->get_numero() <<
" " << tetra->get_fem_noeud(2)->get_numero() <<
" " << tetra->get_fem_noeud(4)->get_numero() <<
" " << tetra->get_fem_noeud(6)->get_numero() <<
" " << tetra->get_fem_noeud(12)->get_numero() <<
" " << tetra->get_fem_noeud(14)->get_numero() <<
" " << tetra->get_fem_noeud(16)->get_numero() <<
" " << tetra->get_fem_noeud(18)->get_numero() <<
" " << tetra->get_fem_noeud(1)->get_numero() <<
" " << tetra->get_fem_noeud(7)->get_numero()<<
" " << tetra->get_fem_noeud(8)->get_numero()<<
" " << tetra->get_fem_noeud(3)->get_numero()<<
" " << tetra->get_fem_noeud(9)->get_numero()<<
" " << tetra->get_fem_noeud(5)->get_numero()<<
" " << tetra->get_fem_noeud(10)->get_numero()<<
" " << tetra->get_fem_noeud(11)->get_numero()<<
" " << tetra->get_fem_noeud(13)->get_numero()<<
" " << tetra->get_fem_noeud(19)->get_numero()<<
" " << tetra->get_fem_noeud(15)->get_numero()<<
" " << tetra->get_fem_noeud(
1637 17)->get_numero() << std::endl;
1638 if (nb==6)
f << ++i <<
" 6 3 1 " << idref <<
" " << tetra->get_etat(0) <<
" " << tetra->get_fem_noeud(0)->get_numero() <<
" " << tetra->get_fem_noeud(1)->get_numero() <<
" " << tetra->get_fem_noeud(2)->get_numero() <<
" " << tetra->get_fem_noeud(3)->get_numero()<<
" " << tetra->get_fem_noeud(4)->get_numero()<<
" " << tetra->get_fem_noeud(5)->get_numero()<< std::endl;
1639 if (nb==15)
f << ++i <<
" 18 3 1 " << idref <<
" " << tetra->get_etat(0) <<
" " << tetra->get_fem_noeud(0)->get_numero() <<
" " << tetra->get_fem_noeud(2)->get_numero() <<
" " << tetra->get_fem_noeud(4)->get_numero() <<
" " << tetra->get_fem_noeud(9)->get_numero() <<
" " << tetra->get_fem_noeud(11)->get_numero() <<
" " << tetra->get_fem_noeud(13)->get_numero() <<
" " << tetra->get_fem_noeud(1)->get_numero() <<
" " << tetra->get_fem_noeud(5)->get_numero() <<
" " << tetra->get_fem_noeud(6)->get_numero() <<
" " << tetra->get_fem_noeud(3)->get_numero()<<
" " << tetra->get_fem_noeud(7)->get_numero()<<
" " << tetra->get_fem_noeud(8)->get_numero()<<
" " << tetra->get_fem_noeud(10)->get_numero()<<
" " << tetra->get_fem_noeud(14)->get_numero()<<
" " << tetra->get_fem_noeud(12)->get_numero()<< std::endl;
1641 tetra->change_numero(i);
1643 LISTE_XFEM_ELEMENT0::iterator itxelementnoeud;
1646 unsigned long idref=0;
1647 if (noeud->get_lien_topologie()!=NULL) idref=noeud->get_lien_topologie()->get_id();
1648 f << ++i <<
" 15 3 1 " << idref <<
" " << noeud->get_etat() <<
" " << noeud->get_fem_noeud(0)->get_numero() << std::endl;
1650 LISTE_XFEM_ELEMENT1::iterator itxsegment;
1653 unsigned long idref=0;
1654 if (segment->get_lien_topologie()!=NULL) idref=segment->get_lien_topologie()->get_id();
1655 if (mai->
get_degre()==1)
f << ++i <<
" 1 3 1 " << idref <<
" " << segment->get_etat() <<
" " << segment->get_fem_noeud(0)->get_numero() <<
" " << segment->get_fem_noeud(1)->get_numero() << std::endl;
1656 if (mai->
get_degre()==2)
f << ++i <<
" 8 3 1 " << idref <<
" " << segment->get_etat() <<
" " << segment->get_fem_noeud(0)->get_numero() <<
" " << segment->get_fem_noeud(2)->get_numero() <<
" " << segment->get_fem_noeud(1)->get_numero() << std::endl;
1657 segment->change_numero(i);
1660 LISTE_XFEM_ELEMENT2::iterator itxtriangle;
1663 unsigned long idref=0;
1664 if (triangle->get_lien_topologie()!=NULL) idref=triangle->get_lien_topologie()->get_id();
1665 int nb=triangle->get_nb_fem_noeud();
1666 if (nb==3)
f << ++i <<
" 2 3 1 " << idref <<
" " << triangle->get_etat() <<
" " << triangle->get_fem_noeud(0)->get_numero() <<
" " << triangle->get_fem_noeud(1)->get_numero() <<
" " << triangle->get_fem_noeud(2)->get_numero() << std::endl;
1667 if (nb==6)
f << ++i <<
" 9 3 1 " << idref <<
" " << triangle->get_etat() <<
" " << triangle->get_fem_noeud(0)->get_numero() <<
" " << triangle->get_fem_noeud(2)->get_numero() <<
" " << triangle->get_fem_noeud(4)->get_numero() <<
" " << triangle->get_fem_noeud(1)->get_numero() <<
" " << triangle->get_fem_noeud(3)->get_numero() <<
" " << triangle->get_fem_noeud(5)->get_numero() << std::endl;
1668 if (nb==4)
f << ++i <<
" 3 3 1 " << idref <<
" " << triangle->get_etat() <<
" " << triangle->get_fem_noeud(0)->get_numero() <<
" " << triangle->get_fem_noeud(1)->get_numero() <<
" " << triangle->get_fem_noeud(2)->get_numero() <<
" " << triangle->get_fem_noeud(3)->get_numero() << std::endl;
1669 if (nb==8)
f << ++i <<
" 16 3 1 " << idref <<
" " << triangle->get_etat() <<
" " << triangle->get_fem_noeud(0)->get_numero() <<
" " << triangle->get_fem_noeud(2)->get_numero() <<
" " << triangle->get_fem_noeud(4)->get_numero() <<
" " << triangle->get_fem_noeud(6)->get_numero() <<
" " << triangle->get_fem_noeud(1)->get_numero() <<
" " << triangle->get_fem_noeud(3)->get_numero()<<
" " << triangle->get_fem_noeud(5)->get_numero()<<
" " << triangle->get_fem_noeud(7)->get_numero() << std::endl;
1670 triangle->change_numero(i);
1672 LISTE_XFEM_ELEMENT3::iterator itxtetra;
1675 unsigned long idref=0;
1676 if (xtetra->get_lien_topologie()!=NULL) idref=xtetra->get_lien_topologie()->get_id();
1677 int nb=xtetra->get_nb_fem_noeud();
1678 if (nb==4)
f << ++i <<
" 4 3 1 " << idref <<
" " << xtetra->get_etat() <<
" " << xtetra->get_fem_noeud(0)->get_numero() <<
" " << xtetra->get_fem_noeud(1)->get_numero() <<
" " << xtetra->get_fem_noeud(2)->get_numero() <<
" " << xtetra->get_fem_noeud(3)->get_numero() << std::endl;
1679 if (nb==10)
f << ++i <<
" 11 3 1 " << idref <<
" " << xtetra->get_etat() << xtetra->get_fem_noeud(0)->get_numero() <<
" " << xtetra->get_fem_noeud(2)->get_numero() <<
" " << xtetra->get_fem_noeud(4)->get_numero() <<
" " << xtetra->get_fem_noeud(9)->get_numero() <<
" " << xtetra->get_fem_noeud(1)->get_numero() <<
" " << xtetra->get_fem_noeud(3)->get_numero() <<
" " << xtetra->get_fem_noeud(5)->get_numero() <<
" " << xtetra->get_fem_noeud(6)->get_numero() <<
" " << xtetra->get_fem_noeud(8)->get_numero() <<
" " << xtetra->get_fem_noeud(7)->get_numero() << std::endl;
1680 if (nb==8)
f << ++i <<
" 5 3 1 " << idref <<
" " << xtetra->get_etat() << xtetra->get_fem_noeud(0)->get_numero() <<
" " << xtetra->get_fem_noeud(1)->get_numero() <<
" " << xtetra->get_fem_noeud(2)->get_numero() <<
" " << xtetra->get_fem_noeud(3)->get_numero()<<
" " << xtetra->get_fem_noeud(4)->get_numero()<<
" " << xtetra->get_fem_noeud(5)->get_numero()<<
" " << xtetra->get_fem_noeud(6)->get_numero()<<
" " << xtetra->get_fem_noeud(7)->get_numero()<< std::endl;
1681 if (nb==20)
f << ++i <<
" 17 3 1 " << idref <<
" " << xtetra->get_etat() << xtetra->get_fem_noeud(0)->get_numero() <<
" " << xtetra->get_fem_noeud(2)->get_numero() <<
" " << xtetra->get_fem_noeud(4)->get_numero() <<
" " << xtetra->get_fem_noeud(6)->get_numero() <<
" " << xtetra->get_fem_noeud(12)->get_numero() <<
" " << xtetra->get_fem_noeud(14)->get_numero() <<
" " << xtetra->get_fem_noeud(16)->get_numero() <<
" " << xtetra->get_fem_noeud(18)->get_numero() <<
" " << xtetra->get_fem_noeud(1)->get_numero() <<
" " << xtetra->get_fem_noeud(7)->get_numero()<<
" " << xtetra->get_fem_noeud(8)->get_numero()<<
" " << xtetra->get_fem_noeud(3)->get_numero()<<
" " << xtetra->get_fem_noeud(9)->get_numero()<<
" " << xtetra->get_fem_noeud(5)->get_numero()<<
" " << xtetra->get_fem_noeud(10)->get_numero()<<
" " << xtetra->get_fem_noeud(11)->get_numero()<<
" " << xtetra->get_fem_noeud(13)->get_numero()<<
" " << xtetra->get_fem_noeud(19)->get_numero()<<
" " << xtetra->get_fem_noeud(15)->get_numero()<<
" "
1682 << xtetra->get_fem_noeud(17)->get_numero() << std::endl;
1683 xtetra->change_numero(i);
1687 f<<
"$EndElements"<< std::endl;
1695 std::string file=fichier+
".msh";
1696 f.open(file.c_str(),std::ios::out);
1698 f.setf(std::ios::showpoint);
1701 if (versiongmsh<4.)
gmsh2(
f,mai);
1708 for (
int i=0;i<nbsol;i++)
1716 for (
int i=0;i<nbsol;i++)
1721 for (
int j=0;j<nb_champs;j++)
1740 bool avectimestep=
false;
1741 for (
int k=0;k<nom.length();k++)
1743 if (nom[k]==
' ') nom[k]=
'_';
1744 if (nom[k]==
'%') {nom[k]=
' ';avectimestep=
true;}
1749 sscanf(nom.c_str(),
"%s %d",message,×tep);
1753 f<<
"\""+nom+
"\""<<std::endl;
1755 f<<
"0.0"<<std::endl;
1757 f<<timestep<<std::endl;
1763 LISTE_FEM_NOEUD::iterator itn;
1766 f<< noeud->get_numero();
1768 f <<
" " << sol->
lire(k,j,coord);
1778 LISTE_FEM_ELEMENT3::iterator ite;
1781 f<<ele->get_numero();
1783 f<<
" " << sol->
lire(k,j,coord);
1794 LISTE_FEM_ELEMENT3::iterator ite;
1797 f<<ele->get_numero();
1814 LISTE_FEM_ELEMENT2::iterator ite;
1817 f<<ele->get_numero();
1834 LISTE_FEM_ELEMENT1::iterator ite;
1837 f<<ele->get_numero();
1839 if (nbgauss!=5) std::cout <<j <<
" " << k <<
" " << nbgauss<<std::endl;
1855 LISTE_FEM_ELEMENT2::iterator ite;
1858 f<<ele->get_numero();
1860 f<<
" " << sol->
lire(k,j,coord);
1870 LISTE_FEM_ELEMENT1::iterator ite;
1873 f<<ele->get_numero();
1875 f<<
" " << sol->
lire(k,j,coord);
1885 LISTE_FEM_ELEMENT1::iterator ite;
1888 f<<ele->get_numero();
1890 f<<
" " << sol->
lire(k,j,coord);
1894 LISTE_FEM_ELEMENT2::iterator ite2;
1897 f<<ele->get_numero();
1899 f<<
" " << sol->
lire(k,j,coord);
1903 LISTE_FEM_ELEMENT3::iterator ite3;
1906 f<<ele->get_numero();
1908 f<<
" " << sol->
lire(k,j,coord);
1917 LISTE_FEM_ELEMENT3::iterator ite;
1921 int num=ele->get_nb_fem_noeud();
1922 f<<ele->get_numero()<<
" " << num <<
" ";
1923 for (
int l=0;l<num;l++)
1925 f << sol->
lire(k,j,coord,l) <<
" ";
1934 LISTE_FEM_ELEMENT2::iterator ite;
1938 int num=ele->get_nb_fem_noeud();
1939 f<<ele->get_numero()<<
" " << num <<
" ";
1940 for (
int l=0;l<num;l++)
1942 f << sol->
lire(k,j,coord,l) <<
" ";
1951 LISTE_FEM_ELEMENT1::iterator ite;
1955 int num=ele->get_nb_fem_noeud();
1956 f<<ele->get_numero()<<
" " << num <<
" ";
1957 for (
int l=0;l<num;l++)
1959 f << sol->
lire(k,j,coord,l) <<
" ";
1969 LISTE_FEM_ELEMENT1::iterator ite;
1972 int num=ele->get_nb_fem_noeud();
1973 f<<ele->get_numero()<<
" " << num <<
" ";
1974 for (
int l=0;l<num;l++)
1976 f << sol->
lire(k,j,coord,l) <<
" ";
1980 LISTE_FEM_ELEMENT2::iterator ite2;
1983 int num=ele->get_nb_fem_noeud();
1984 f<<ele->get_numero()<<
" " << num <<
" ";
1985 for (
int l=0;l<num;l++)
1987 f << sol->
lire(k,j,coord,l) <<
" ";
1991 LISTE_FEM_ELEMENT3::iterator ite3;
1994 int num=ele->get_nb_fem_noeud();
1995 f<<ele->get_numero()<<
" " << num <<
" ";
1996 for (
int l=0;l<num;l++)
1998 f << sol->
lire(k,j,coord,l) <<
" ";
2018 LISTE_FEM_NOEUD::iterator it;
2021 f<<
"$NodeData"<< std::endl;
2025 f<<
"0.0"<<std::endl;
2031 f<< noeud->get_numero() <<
" " << noeud->get_dx() <<
" " << noeud->get_dy() <<
" " << noeud->get_dz() << std::endl;
2032 f <<
"$EndNodeData"<< std::endl;
2036 f<<
"$NodeData"<< std::endl;
2038 f<<
"\"reaction\""<<std::endl;
2040 f<<
"0.0"<<std::endl;
2046 f<< noeud->get_numero() <<
" " << noeud->get_rx() <<
" " << noeud->get_ry() <<
" " << noeud->get_rz() << std::endl;
2047 f <<
"$EndNodeData"<< std::endl;
2059 std::string fichierexport=fichier+
".export";
2060 FILE *in=fopen(fichierexport.c_str(),
"wt");
2062 char *chaine = getcwd(path,255);
2065 char memjeveux[500];
2068 sprintf(memjeveux,
"%.1lf",mem);
2072 sprintf(tpmax,
"%d",tps);
2074 fprintf(in,
"P version %s\n",version);
2075 fprintf(in,
"P mode interactif\n");
2076 fprintf(in,
"A memjeveux %s\n",memjeveux);
2077 fprintf(in,
"A tpmax %s\n",tpmax);
2078 fprintf(in,
"P ncpus %d\n",nbcpu);
2079 fprintf(in,
"A args -max_base %d\n",maxbase*1024);
2080 fprintf(in,
"P actions make_etude\n");
2081 fprintf(in,
"F comm %s/%s.comm D 1\n",chaine,fichier.c_str());
2082 fprintf(in,
"F mail %s/%s.mail D 20\n",chaine,fichier.c_str());
2083 fprintf(in,
"F mess %s/%s.mess R 6\n",chaine,fichier.c_str());
2085 fprintf(in,
"F m %s/%s.m R 29\n",chaine,fichier.c_str());
2086 else fprintf(in,
"F resu %s/%s.resu R 8\n",chaine,fichier.c_str());
2094 void MG_EXPORT::aster_ecrire_mail(
TPL_MAP_ENTITE<FEM_ELEMENT1*> &minipresent,
int dim,
TPL_LISTE_ENTITE<MG_COFACE*> *lstcoface,
class FEM_MAILLAGE* mai,std::string fichier,
int typeetude,
int niveaumax,std::vector<FEM_ELEMENT3*> *lst,std::map<std::string,std::string> &listegroupedemaillexy,std::map<unsigned long,unsigned long> &gnexistant)
2109 std::string fichiermaillage=fichier+
".mail";
2110 FILE* file_in=fopen(fichiermaillage.c_str(),
"wt");
2112 sprintf(in,
"TITRE\n" );ot.
mg_fprintf(file_in,in);
2113 sprintf(in,
" AUTEUR=MAGiC\n" );ot.
mg_fprintf(file_in,in);
2114 sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);
2115 sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);
2118 if (dim==3) {sprintf(in,
"%%FORMAT=(1*NOM_DE_NOEUD,3*COORD)\n" );ot.
mg_fprintf(file_in,in);}
2119 if (dim==2) {sprintf(in,
"%%FORMAT=(1*NOM_DE_NOEUD,2*COORD)\n" );ot.
mg_fprintf(file_in,in);}
2121 LISTE_FEM_NOEUD::iterator it;
2128 std::map<unsigned long,FEM_NOEUD*> listenoeud;
2131 unsigned long num=noeud->
get_id();
2133 std::pair<unsigned long,FEM_NOEUD*> tmp(num,noeud);
2134 listenoeud.insert(tmp);
2139 for (std::map<unsigned long,FEM_NOEUD*>::iterator it=listenoeud.begin();it!=listenoeud.end();it++)
2143 if (dim==3) {sprintf(in,
" N%s %18.11E %18.11E %18.11E\n",ot.
get_base(noeud->
get_numero(),base).c_str(),coord[0]*facteur_unite,coord[1]*facteur_unite,coord[2]*facteur_unite);ot.
mg_fprintf(file_in,in);}
2144 if (dim==2) {sprintf(in,
" N%s %18.11E %18.11E\n",ot.
get_base(noeud->
get_numero(),base).c_str(),coord[0]*facteur_unite,coord[1]*facteur_unite);ot.
mg_fprintf(file_in,in);}
2147 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2148 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2152 LISTE_FEM_ELEMENT1::iterator itsegment;
2155 LISTE_FEM_ELEMENT2::iterator ittriangle;
2157 if ((triangle->get_nb_fem_noeud()==3) || (triangle->get_nb_fem_noeud()==6)) nbtriangle++;
2158 LISTE_FEM_ELEMENT2::iterator itquad;
2160 if ((quad->get_nb_fem_noeud()==4) || (quad->get_nb_fem_noeud()==8)) nbquad++;
2164 if (mai->
get_degre()==1) {sprintf(in,
"SEG2 NOM=INDEFINI NBOBJ=%d\n",nbsegment);ot.
mg_fprintf(file_in,in);}
2165 if (mai->
get_degre()==2) {sprintf(in,
"SEG3 NOM=INDEFINI NBOBJ=%d\n",nbsegment);ot.
mg_fprintf(file_in,in);}
2166 LISTE_FEM_ELEMENT1::iterator itsegment;
2169 segment->change_numero(i);
2170 if (segment->est_un_mini_element1()==
true) minipresent.
ajouter(segment);
2171 if (mai->
get_degre()==1) {sprintf(in,
" M%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(segment->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(segment->get_fem_noeud(1)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2172 if (mai->
get_degre()==2) {sprintf(in,
" M%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(segment->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(segment->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(segment->get_fem_noeud(1)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2175 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2176 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2180 if (mai->
get_degre()==1) {sprintf(in,
"TRIA3 NOM=INDEFINI NBOBJ=%d\n",nbtriangle);ot.
mg_fprintf(file_in,in);}
2181 if (mai->
get_degre()==2) {sprintf(in,
"TRIA6 NOM=INDEFINI NBOBJ=%d\n",nbtriangle);ot.
mg_fprintf(file_in,in);}
2182 LISTE_FEM_ELEMENT2::iterator ittriangle;
2185 if ((triangle->get_nb_fem_noeud()!=3) && (triangle->get_nb_fem_noeud()!=6))
continue;
2186 triangle->change_numero(i);
2187 int nbcoface=((
MG_FACE*)(triangle->get_lien_topologie()))->get_nb_mg_coface();
2190 bool multicoface=
false;
2191 while (icof<nbcoface)
2193 MG_COFACE* coftmp=((
MG_FACE*)(triangle->get_lien_topologie()))->get_mg_coface(icof);
2195 if (cof==NULL) cof=coftmp;
else multicoface=
true;
2200 if (multicoface) signe=1;
2203 if (mai->
get_degre()==1) {sprintf(in,
" M%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(triangle->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(1)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2204 if (mai->
get_degre()==2) {sprintf(in,
" M%s N%s N%s N%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(triangle->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(4)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(5)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(3)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(1)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2209 if (mai->
get_degre()==1) {sprintf(in,
" M%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(triangle->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(1)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(2)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2210 if (mai->
get_degre()==2) {sprintf(in,
" M%s N%s N%s N%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(triangle->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(4)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(1)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(3)->get_numero(),base).c_str(),ot.
get_base(triangle->get_fem_noeud(5)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2215 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2216 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2220 if (mai->
get_degre()==1) {sprintf(in,
"QUAD4 NOM=INDEFINI NBOBJ=%d\n",nbquad);ot.
mg_fprintf(file_in,in);}
2221 if (mai->
get_degre()==2) {sprintf(in,
"QUAD8 NOM=INDEFINI NBOBJ=%d\n",nbquad);ot.
mg_fprintf(file_in,in);}
2222 LISTE_FEM_ELEMENT2::iterator itquad;
2225 if ((quad->get_nb_fem_noeud()!=4) && (quad->get_nb_fem_noeud()!=8))
continue;
2226 quad->change_numero(i);
2227 int nbcoface=((
MG_FACE*)(quad->get_lien_topologie()))->get_nb_mg_coface();
2231 while (icof<nbcoface)
2233 MG_COFACE* coftmp=((
MG_FACE*)(quad->get_lien_topologie()))->get_mg_coface(icof);
2235 if (cof==NULL) cof=coftmp;
else multicoface=
true;
2242 if (mai->
get_degre()==1) {sprintf(in,
" M%s N%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(quad->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(3)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(1)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2243 if (mai->
get_degre()==2) {sprintf(in,
" M%s N%s N%s N%s N%s N%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(quad->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(6)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(4)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(7)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(5)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(3)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(1)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2248 if (mai->
get_degre()==1) {sprintf(in,
" M%s N%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(quad->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(1)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(3)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2249 if (mai->
get_degre()==2) {sprintf(in,
" M%s N%s N%s N%s N%s N%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(quad->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(4)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(6)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(1)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(3)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(5)->get_numero(),base).c_str(),ot.
get_base(quad->get_fem_noeud(7)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2254 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2255 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2263 LISTE_FEM_ELEMENT3::iterator ittetra;
2265 if ((tet->get_nb_fem_noeud()==4) || ((tet->get_nb_fem_noeud()==10)))
2267 tet->change_numero(i);
2268 if (mai->
get_degre()==1) {sprintf(in,
" M%s N%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(tet->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(1)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(3)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2269 if (mai->
get_degre()==2) {sprintf(in,
" M%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(tet->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(4)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(9)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(1)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(3)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(5)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(6)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(7)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(8)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2272 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2273 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2279 LISTE_FEM_ELEMENT3::iterator ittetra;
2281 if ((tet->get_nb_fem_noeud()==8) || ((tet->get_nb_fem_noeud()==20)))
2283 tet->change_numero(i);
2284 if (mai->
get_degre()==1) {sprintf(in,
" M%s N%s N%s N%s N%s N%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(tet->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(1)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(3)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(4)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(5)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(6)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(7)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2285 if (mai->
get_degre()==2) {sprintf(in,
" M%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(tet->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(4)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(6)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(12)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(14)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(16)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(18)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(1)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(3)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(5)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(7)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(8)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(9)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(10)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(11)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(13)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(15)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(17)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(19)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2288 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2289 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2295 LISTE_FEM_ELEMENT3::iterator ittetra;
2297 if ((tet->get_nb_fem_noeud()==6) || ((tet->get_nb_fem_noeud()==15)))
2299 tet->change_numero(i);
2300 if (mai->
get_degre()==1) {sprintf(in,
" M%s N%s N%s N%s N%s N%s N%s \n" ,ot.
get_base(i,base).c_str(),ot.
get_base(tet->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(1)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(3)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(4)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(5)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2301 if (mai->
get_degre()==2) {sprintf(in,
" M%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s N%s\n" ,ot.
get_base(i,base).c_str(),ot.
get_base(tet->get_fem_noeud(0)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(2)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(4)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(9)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(11)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(13)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(1)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(3)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(5)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(6)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(7)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(8)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(10)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(12)->get_numero(),base).c_str(),ot.
get_base(tet->get_fem_noeud(14)->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2304 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2305 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2310 LISTE_MG_SOMMET::iterator itsom;
2313 if ((som->est_une_topo_element()) && (!geo->
est_virtuelle()))
2320 LISTE_FEM_NOEUD::iterator it;
2322 if (notmp->get_mg_element_maillage()==no) {femno=notmp;
break;}
2324 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2325 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2329 std::multimap<unsigned long,FEM_NOEUD*,std::less<unsigned long> > noeudclasse;
2330 LISTE_FEM_NOEUD::iterator itn;
2333 if (no->get_lien_topologie()==NULL)
continue;
2334 std::pair<unsigned long,FEM_NOEUD*> tmp(no->get_lien_topologie()->get_id(),no);
2335 noeudclasse.insert(tmp);
2337 unsigned long old_id=0;
2338 int nbelementreel=0;
2340 for (std::multimap<
unsigned long,
FEM_NOEUD*,std::less<unsigned long> >::iterator noeudclasseit=noeudclasse.begin();noeudclasseit!=noeudclasse.end();noeudclasseit++)
2342 unsigned long id=(*noeudclasseit).first;
2349 if ((nbelementreel%8)!=0) {sprintf(in,
"\n");ot.
mg_fprintf(file_in,in);}
2350 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2351 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2358 {sprintf(in,
"GROUP_NO NOM=GN%c%lu \n ",c,
id);ot.
mg_fprintf(file_in,in);}
2359 std::pair<unsigned long,unsigned long> tmp(
id,
id);
2360 gnexistant.insert(tmp);
2367 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2369 if ((nbelementreel%8)!=0) {sprintf(in,
"\n");ot.
mg_fprintf(file_in,in);}
2370 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2371 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2378 LISTE_MG_ARETE::iterator itare;
2382 if (are->est_une_topo_element())
2386 for (
int i=0;i<nbele;i++)
2397 int nbelementreel=0;
2398 {sprintf(in,
"GROUP_NO NOM=GNA%lu \n ",are->get_id());ot.
mg_fprintf(file_in,in);}
2399 std::pair<unsigned long,unsigned long> tmp(are->get_id(),are->get_id());
2400 gnexistant.insert(tmp);
FEM_NOEUD *femno;
2401 LISTE_FEM_NOEUD::iterator it;
2405 if ((
MG_NOEUD*)notmp->get_mg_element_maillage()!=0)
2407 if (lstnoeud.
existe((
MG_NOEUD*)notmp->get_mg_element_maillage()))
2410 {sprintf(in,
" N%s",ot.
get_base(notmp->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2411 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2414 else if(notmp->get_lien_topologie()==are)
2417 {sprintf(in,
" N%s",ot.
get_base(notmp->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2418 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2422 if ((nbelementreel%8)!=0) {sprintf(in,
"\n");ot.
mg_fprintf(file_in,in);}
2423 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2424 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2427 LISTE_MG_FACE::iterator itfac;
2431 if (fac->est_une_topo_element())
2435 for (
int i=0;i<nbele;i++)
2459 int nbelementreel=0;
2460 {sprintf(in,
"GROUP_NO NOM=GNF%lu \n ",fac->get_id());ot.
mg_fprintf(file_in,in);}
2461 std::pair<unsigned long,unsigned long> tmp(fac->get_id(),fac->get_id());
2462 gnexistant.insert(tmp);
2464 LISTE_FEM_NOEUD::iterator it;
2467 if ((
MG_NOEUD*)notmp->get_mg_element_maillage()!=0)
2469 if (lstnoeud.
existe((
MG_NOEUD*)notmp->get_mg_element_maillage()))
2472 {sprintf(in,
" N%s",ot.
get_base(notmp->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2473 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2476 else if(notmp->get_lien_topologie()==fac)
2479 {sprintf(in,
" N%s",ot.
get_base(notmp->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2480 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2483 if ((nbelementreel%8)!=0) {sprintf(in,
"\n");ot.
mg_fprintf(file_in,in);}
2484 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2485 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2490 if (minipresent.
get_nb()>0)
2492 int nbelementreel=0;
2493 sprintf(in,
"GROUP_MA NOM=GMMINI\n ");ot.
mg_fprintf(file_in,in);
2498 {sprintf(in,
" M%s",ot.
get_base(seg->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2499 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2501 if ((nbelementreel%8)!=0) {sprintf(in,
"\n");ot.
mg_fprintf(file_in,in);}
2502 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2503 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2507 for (
int j=0;j<nbarete;j++)
2511 int nbelementreel=0;
2512 {sprintf(in,
"GROUP_MA NOM=GMA%lu \n ",arete->
get_id());ot.
mg_fprintf(file_in,in);}
2513 for (
int k=0;k<nbelement;k++)
2519 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2521 if ((nbelementreel%8)!=0) {sprintf(in,
"\n");ot.
mg_fprintf(file_in,in);}
2522 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2523 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2529 for (
int j=0;j<nbface;j++)
2533 int nbelementreel=0;
2534 {sprintf(in,
"GROUP_MA NOM=GMF%lu \n ",face->
get_id());ot.
mg_fprintf(file_in,in);}
2539 for (
int k=0;k<nbelement;k++)
2557 if (fabs(fabs(normale*dirx)-1.)<0.0000000001)
2577 if (fabs(fabs(normale*dirx)-1.)<0.0000000001)
2585 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2587 if ((nbelementreel%8)!=0) {sprintf(in,
"\n");ot.
mg_fprintf(file_in,in);}
2588 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2589 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2593 if ( (nbx!=0) && (nbcoque!=0))
2595 char nomgroupex[500];
2596 sprintf(nomgroupex,
"GMF%luX",face->
get_id());
2597 std::pair<std::string,std::string> tmp(nomgroupex,nomgroupex);
2598 listegroupedemaillexy.insert(tmp);
2599 {sprintf(in,
"GROUP_MA NOM=GMF%luX \n ",face->
get_id());ot.
mg_fprintf(file_in,in);}
2605 {sprintf(in,
" M%s",ot.
get_base(tri->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2606 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2608 if ((nbelementreel%8)!=0) {sprintf(in,
"\n");ot.
mg_fprintf(file_in,in);}
2609 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2610 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2615 if ((nby!=0) && (nbcoque!=0))
2617 char nomgroupey[500];
2618 sprintf(nomgroupey,
"GMF%luY",face->
get_id());
2619 std::pair<std::string,std::string> tmp(nomgroupey,nomgroupey);
2620 listegroupedemaillexy.insert(tmp);
2621 {sprintf(in,
"GROUP_MA NOM=GMF%luY \n ",face->
get_id());ot.
mg_fprintf(file_in,in);}
2627 {sprintf(in,
" M%s",ot.
get_base(tri->get_numero(),base).c_str());ot.
mg_fprintf(file_in,in);}
2628 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2630 if ((nbelementreel%8)!=0) {sprintf(in,
"\n");ot.
mg_fprintf(file_in,in);}
2631 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2632 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2635 for (
int j=0;j<nbpoutre;j++)
2638 {sprintf(in,
"GROUP_MA NOM=GMP%lu \n ",poutre->
get_id());ot.
mg_fprintf(file_in,in);}
2639 int nbelementreel=0;
2643 for (
int m=0;
m<nbelement;
m++)
2646 LISTE_FEM_ELEMENT1::iterator it;
2649 if (eletmp->get_mg_element_maillage()==mgele) ele=eletmp;
2652 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2658 for (
int k=0;k<nbboucle;k++)
2662 for (
int l=0;l<nbarete;l++)
2666 for (
int m=0;
m<nbelement;
m++)
2672 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2679 if (((nbelementreel)%8)!=0) {sprintf(in,
"\n");ot.
mg_fprintf(file_in,in);}
2680 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2681 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2683 for (
int j=0;j<nbcoque;j++)
2686 {sprintf(in,
"GROUP_MA NOM=GMC%lu \n ",coque->
get_id());ot.
mg_fprintf(file_in,in);}
2687 int nbelementreel=0;
2691 for (
int m=0;
m<nbelement;
m++)
2694 LISTE_FEM_ELEMENT2::iterator it;
2697 if (eletmp->get_mg_element_maillage()==mgele) ele=eletmp;
2700 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2706 for (
int k=0;k<nbcoquille;k++)
2710 for (
int l=0;l<nbface;l++)
2714 for (
int m=0;
m<nbelement;
m++)
2720 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2727 if (((nbelementreel)%8)!=0) {sprintf(in,
"\n");ot.
mg_fprintf(file_in,in);}
2728 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2729 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2732 for (
int j=0;j<nbvol;j++)
2735 {sprintf(in,
"GROUP_MA NOM=GMV%lu \n ",vol->
get_id());ot.
mg_fprintf(file_in,in);}
2737 int nbelementreel=0;
2738 for (
int k=0;k<nbelement;k++)
2745 if ((nbelementreel%8)==0) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2748 if (((nbelementreel)%8)!=0) {sprintf(in,
"\n");ot.
mg_fprintf(file_in,in);}
2749 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2750 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2754 for (
int i=1;i<=niveaumax;i++)
2756 int nbelement=lst[i].size();
2757 if (nbelement==0)
continue;
2758 {sprintf(in,
"GROUP_MA NOM=GM_%d \n ",i);ot.
mg_fprintf(file_in,in);}
2759 for (
int k=0;k<nbelement;k++)
2763 if ((k%8)==7) {sprintf(in,
"\n ");ot.
mg_fprintf(file_in,in);}
2765 if (((nbelement)%8)!=0) {sprintf(in,
"\n");ot.
mg_fprintf(file_in,in);}
2766 {sprintf(in,
"FINSF\n" );ot.
mg_fprintf(file_in,in);}
2767 {sprintf(in,
"%%\n" );ot.
mg_fprintf(file_in,in);}
2771 {sprintf(in,
"%%\nFIN\n" );ot.
mg_fprintf(file_in,in);}
2778 LISTE_MG_VOLUME::iterator itvol;
2779 LISTE_MG_COQUE::iterator itcoq;
2782 for (
int i=0;i<vol->get_nb_mg_coquille();i++)
2783 for (
int j=0;j<vol->get_mg_coquille(i)->get_nb_mg_coface();j++)
2784 lstcoface.
ajouter(vol->get_mg_coquille(i)->get_mg_coface(j));
2786 for (
int i=0;i<coq->get_nb_mg_coquille();i++)
2787 for (
int j=0;j<coq->get_mg_coquille(i)->get_nb_mg_coface();j++)
2788 lstcoface.
ajouter(coq->get_mg_coquille(i)->get_mg_coface(j));
2789 aster(&lstcoface,mai,fichier,typeetude,coderesu,penal,niveaumax,lst);
2797 std::map<std::string,std::string> listegroupedemaillexy;
2798 std::map<unsigned long,unsigned long> gnexistant;
2802 aster_ecrire_mail(minipresent,2,lstcoface,mai,fichier,typeetude,niveaumax,lst,listegroupedemaillexy,gnexistant);
2804 aster_ecrire_mail(minipresent,3,lstcoface,mai,fichier,typeetude,niveaumax,lst,listegroupedemaillexy,gnexistant);
2873 bool desactiveerreur=
false;
2879 std::vector<std::string> chargepresente;
2894 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
false,
true,
false,
true,chargepresente,gnexistant);
2914 bool estortho=
false;
2921 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
false,
true,
false,
true,chargepresente,gnexistant);
2946 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
false,
false,
true,
true,chargepresente,gnexistant);
2972 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
false,
false,
true,
true,chargepresente,gnexistant);
2997 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
false,
true,
false,
true,chargepresente,gnexistant);
3010 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
false,
false,
false,
false,chargepresente,gnexistant);
3034 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
false,
false,
false,
false,chargepresente,gnexistant);
3058 aster_ecrire_comm_condition_limite(in,geo,
false,
false,
true,
false,
true,
false,
true,chargepresente,gnexistant);
3092 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
true,
true,
false,
true,chargepresente,gnexistant);
3093 aster_ecrire_comm_statique_non_lineaire(version,in,geo,
true,
false,
false,
false,chargepresente,coderesu,
"ELAS",
"GROT_GDEP");
3103 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
true,
true,
false,
true,chargepresente,gnexistant);
3106 aster_ecrire_comm_statique_non_lineaire(version,in,geo,
true,
false,
false,
false,chargepresente,coderesu,
"ELAS_VMIS_TRAC",
"GROT_GDEP");
3117 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
true,
true,
false,
true,chargepresente,gnexistant);
3120 aster_ecrire_comm_statique_non_lineaire(version,in,geo,
true,
false,
false,
false,chargepresente,coderesu,
"ELAS_VMIS_TRAC",
"GROT_GDEP");
3134 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
true,
false,
true,
true,chargepresente,gnexistant);
3135 aster_ecrire_comm_statique_non_lineaire(version,in,geo,
false,
true,
false,
false,chargepresente,coderesu,
"ELAS",
"GROT_GDEP");
3147 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
true,
true,
false,
true,chargepresente,gnexistant);
3148 aster_ecrire_comm_statique_non_lineaire(version,in,geo,
true,
false,
false,
false,chargepresente,coderesu,
"VMIS_ISOT_LINE",
"SIMO_MIEHE");
3161 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
true,
false,
true,
true,chargepresente,gnexistant);
3162 aster_ecrire_comm_statique_non_lineaire(version,in,geo,
false,
true,
false,
false,chargepresente,coderesu,
"VMIS_ISOT_LINE",
"PETIT");
3177 aster_ecrire_comm_condition_limite(in,geo,
true,
true,
false,
true,
true,
false,
true,chargepresente,gnexistant);
3178 aster_ecrire_comm_statique_non_lineaire(version,in,geo,
true,
false,
false,
false,chargepresente,coderesu,
"VMIS_ISOT_TRAC",
"SIMO_MIEHE");
3191 std::string fichiercomm=fichier+
".comm";
3192 *in=fopen(fichiercomm.c_str(),
"wt");
3193 fprintf(*in,
"################################################################################\n");
3194 fprintf(*in,
"# Transfert MAGiC %s vers code ASTER %.1lf\n",
MAGIC_VERSION,version);
3195 fprintf(*in,
"################################################################################\n\n");
3196 fprintf(*in,
"DEBUT();\n\n");
3202 fprintf(in,
"\n\nFIN();\n\n");
3203 fprintf(in,
"################################################################################\n\n");
3209 fprintf(in,
"# LECTURE DU MAILLAGE-----------------------------------------------------------\n");
3210 fprintf(in,
"MAIL=LIRE_MAILLAGE(FORMAT='ASTER');\n\n");
3216 fprintf(in,
"# DEFINITION DES ELEMENTS FINIS UTILISES----------------------------------------\n");
3217 fprintf(in,
"MODCAL=AFFE_MODELE(MAILLAGE = MAIL, AFFE =_F(TOUT = 'OUI', PHENOMENE = '%s', MODELISATION = '%s' ,),);\n\n",phenomene.c_str(),modelisation.c_str());
3224 fprintf(in,
"# DEFINITION DES ELEMENTS FINIS UTILISES----------------------------------------\n");
3225 fprintf(in,
"MODCAL=AFFE_MODELE(MAILLAGE = MAIL, AFFE =(\n");
3228 fprintf(in,
"_F(GROUP_MA=(");
3229 LISTE_MG_VOLUME::iterator itv;
3230 LISTE_MG_FACE::iterator itf;
3231 LISTE_MG_ARETE::iterator ita;
3233 fprintf(in,
"'GMV%lu',",vol->get_id());
3235 fprintf(in,
"'GMF%lu',",face->get_id());
3237 fprintf(in,
"'GMA%lu',",are->get_id());
3238 fprintf(in,
"), PHENOMENE = 'MECANIQUE', MODELISATION = '3D' ,),\n");
3242 fprintf(in,
"_F(GROUP_MA=(");
3243 LISTE_MG_POUTRE::iterator itp;
3245 fprintf(in,
"'GMP%lu',",pou->get_id());
3246 fprintf(in,
"'GMMINI',), PHENOMENE = 'MECANIQUE', MODELISATION = 'POU_D_E' ,),\n");
3248 fprintf(in,
"),);\n\n");
3254 fprintf(in,
"MAIL2=CREA_MAILLAGE(MAILLAGE=MAIL,MODI_MAILLE=(_F(TOUT='OUI',OPTION='TRIA6_7',),),);\n\n");
3255 fprintf(in,
"MODCAL=AFFE_MODELE(MAILLAGE = MAIL2, AFFE =_F(TOUT = 'OUI', PHENOMENE = 'MECANIQUE', MODELISATION = 'COQUE_3D',),);\n\n");
3256 fprintf(in,
"MODORI=AFFE_MODELE(MAILLAGE = MAIL, AFFE =_F(TOUT = 'OUI', PHENOMENE = 'MECANIQUE', MODELISATION = '3D' ,),);\n\n");
3261 fprintf(in,
"# CALCUL DE LA MATRICE DE RIGIDITE------------------\n");
3262 if (!coque) fprintf(in,
"mel = CALC_MATR_ELEM(OPTION = 'RIGI_MECA', MODELE = MODCAL,CHAM_MATER=CHMAT );\n");
3263 else fprintf(in,
"mel = CALC_MATR_ELEM(OPTION = 'RIGI_MECA', MODELE = MODCAL,CHAM_MATER=CHMAT , CARA_ELEM=CARA_COQ, );\n");
3264 fprintf(in,
"nu = NUME_DDL(MATR_RIGI = mel);\n");
3265 fprintf(in,
"matas = ASSE_MATRICE (NUME_DDL = nu, MATR_ELEM = mel,);\n");
3271 fprintf(in,
"# DEFINITION DES CARACTERISTIQUES DES ELEMENTS DE POUTRES\n");
3272 fprintf(in,
"CARA_POU=AFFE_CARA_ELEM(MODELE=MODCAL,POUTRE=(\n");
3274 for (
int i=0;i<nbpoutre;i++)
3279 if (resrr) {fprintf(in,
"_F(GROUP_MA='GMP%lu',SECTION='CERCLE',CARA='R',VALE=%lf,),\n",pou->
get_id(),rr);dimcar=dimcar+rr;
continue;}
3283 if ((reshx) && (reshy)) {fprintf(in,
"_F(GROUP_MA='GMP%lu',SECTION='RECTANGLE',CARA=('Hx','Hy'),VALE=(%lf,%lf),),\n",pou->
get_id(),hx,hy);dimcar=dimcar+0.5*hx+0.5*hy;
continue;}
3285 dimcar=dimcar/nbpoutre;
3289 int num=ele->get_numero();
3290 fprintf(in,
"_F(MAILLE='M%d',SECTION='CERCLE',CARA='R',VALE=%lf,),\n",num,dimcar);
3293 fprintf(in,
"),\nORIENTATION=(\n");
3294 for (
int i=0;i<nbpoutre;i++)
3309 fprintf(in,
"_F(GROUP_MA='GMP%lu',CARA='VECT_Y', VALE=(%lf,%lf,%lf),),\n",pou->
get_id(),vecyy.
get_x(),vecyy.
get_y(),vecyy.
get_z());
3313 int num=ele->get_numero();
3326 fprintf(in,
"_F(MAILLE='M%d',CARA='VECT_Y', VALE=(%lf,%lf,%lf),),\n",num,vecyy.
get_x(),vecyy.
get_y(),vecyy.
get_z());
3329 fprintf(in,
"),);\n\n");
3335 fprintf(in,
"# DEFINITION DES CARACTERISTIQUES DES ELEMENTS DE COQUES (EPAISSEUR, REPERE LOCAL (POST-TRAIT) ET NB DE COUCHES (1 EN ELASTICITE LINEAIRE))\n");
3336 fprintf(in,
"CARA_COQ=AFFE_CARA_ELEM(MODELE=MODCAL,COQUE=(\n");
3338 for (
int i=0;i<nbcoque;i++)
3344 std::map<unsigned long,unsigned long> facetraitee;
3345 for (
int l=0;l<nbelement;l++)
3349 long unsigned id=face->
get_id();
3350 if (facetraitee.find(
id)!=facetraitee.end())
continue;
3354 char nomgroupex[500];
3355 char nomgroupey[500];
3356 sprintf(nomgroupex,
"GMF%luX",
id);
3357 sprintf(nomgroupey,
"GMF%luY",
id);
3358 std::map<std::string,std::string>::iterator it=listegroupedemaillexy.find(nomgroupex);
3360 if (it!=listegroupedemaillexy.end())
3362 fprintf(in,
"_F(GROUP_MA='GMF%luX',EPAIS=%lf,VECTEUR=(1,0,0),),\n",
id,epais);
3364 it=listegroupedemaillexy.find(nomgroupey);
3365 if (it!=listegroupedemaillexy.end())
3367 fprintf(in,
"_F(GROUP_MA='GMF%luY',EPAIS=%lf,VECTEUR=(0,1,0),),\n",
id,epais);
3374 for (
int k=0;k<nbcoquille;k++)
3378 for (
int l=0;l<nbface;l++)
3381 long unsigned id=face->
get_id();
3385 char nomgroupex[500];
3386 char nomgroupey[500];
3387 sprintf(nomgroupex,
"GMF%luX",
id);
3388 sprintf(nomgroupey,
"GMF%luY",
id);
3389 std::map<std::string,std::string>::iterator it=listegroupedemaillexy.find(nomgroupex);
3391 if (it!=listegroupedemaillexy.end())
3393 fprintf(in,
"_F(GROUP_MA='GMF%luX',EPAIS=%lf,VECTEUR=(1,0,0),),\n",
id,epais);
3395 it=listegroupedemaillexy.find(nomgroupey);
3396 if (it!=listegroupedemaillexy.end())
3398 fprintf(in,
"_F(GROUP_MA='GMF%luY',EPAIS=%lf,VECTEUR=(0,1,0),),\n",
id,epais);
3406 fprintf(in,
"),);\n\n");
3413 std::string aafficher=
"# DEFINITION DES CARACTERISTIQUES DES ELEMENTS DE VOLUMES\n";
3414 aafficher=aafficher +
"CARA_VOL=AFFE_CARA_ELEM(MODELE=MODCAL,MASSIF=(\n";
3415 for (
int i=0;i<nbvolume;i++)
3426 sprintf(message,
"_F(GROUP_MA='GMV%lu',ANGL_EULER=(%lf,%lf,%lf),),\n",vol->
get_id(),a1,a2,a3);
3427 aafficher=aafficher+message;
3429 aafficher=aafficher+
"),);\n\n";
3431 fprintf(in,
"%s",aafficher.c_str());
3438 fprintf(in,
"# DEFINITION DU MATERIAU UTILISE------------------------------------------------\n");
3440 for (
int j=0;j<nbvol;j++)
3443 if (estortho==
false)
3451 fprintf(in,
"P%s=DEFI_MATERIAU(ELAS=_F(E = %le, NU = %lf, RHO= %lf,),);\n",ot.
get_base(vol->
get_id(),base).c_str(),E,nu,rho);
3455 double E1,E2,E3,G1,G2,G3,n1,n2,n3;
3465 fprintf(in,
"P%s=DEFI_MATERIAU(ELAS_ORTH=_F(E_L=%lf,E_T=%lf,E_N=%lf,G_LT=%lf,G_TN=%lf,G_LN=%lf,NU_LT=%lf,NU_TN=%lf,NU_LN=%lf,),);\n",ot.
get_base(vol->
get_id(),base).c_str(),E1,E2,E3,G1,G2,G3,n1,n2,n3);
3469 for (
int j=0;j<nbcoque;j++)
3478 fprintf(in,
"P%s=DEFI_MATERIAU(ELAS=_F(E = %le, NU = %lf, RHO= %lf,),);\n",ot.
get_base(coq->
get_id(),base).c_str(),E,nu,rho);
3480 for (
int j=0;j<nbpoutre;j++)
3489 fprintf(in,
"P%s=DEFI_MATERIAU(ELAS=_F(E = %le, NU = %lf, RHO= %lf,),);\n",ot.
get_base(pou->
get_id(),base).c_str(),E,nu,rho);
3491 if ((nbvol>0) && (nbpoutre>0))
3494 fprintf(in,
"MA_MINI=DEFI_MATERIAU(ELAS=_F(E = %le, NU = 0.3, RHO= 1000,),);\n",valinifini);
3504 fprintf(in,
"# DEFINITION DU MATERIAU UTILISE------------------------------------------------\n");
3506 for (
int j=0;j<nbvol;j++)
3515 for (
int i=1;i<=niveaumax;i++)
3516 fprintf(in,
"P%s=DEFI_MATERIAU(ELAS=_F(E = %le, NU = %lf, RHO= %le,),);\n",ot.
get_base(i,base).c_str(),E*pow(i*1./niveaumax,penal),nu,rho*i*1.0/niveaumax);
3524 fprintf(in,
"# DEFINITION DU MATERIAU UTILISE------------------------------------------------\n");
3527 for (
int j=0;j<nbvol;j++)
3539 if(formulation==
'N')
3540 fprintf(in,
"P%s=DEFI_MATERIAU(THER=_F(LAMBDA = %le, RHO_CP= %lf,),);\n\n",ot.
get_base(vol->
get_id(),base).c_str(),corr*LAMBDA,corr*RHO*CP);
3541 if(formulation==
'I')
3546 char chr_nom_fonction[8];
3547 sprintf(chr_nom_fonction,
"%d",(
int)val_Cond);
3548 std::string str_nom_fonction = chr_nom_fonction;
3550 fprintf(in,
"CONST=DEFI_CONSTANTE(VALE=%lf);\n\n",corr*RHO*CP);
3552 fprintf(in,
"P%s=DEFI_MATERIAU(THER_NL=_F(LAMBDA = F%s, RHO_CP= CONST,),);\n\n",ot.
get_base(vol->
get_id(),base).c_str(),str_nom_fonction.c_str());
3554 fprintf(in,
"P%s=DEFI_MATERIAU(THER_FO=_F(LAMBDA = F%s, RHO_CP= CONST,),);\n\n",ot.
get_base(vol->
get_id(),base).c_str(),str_nom_fonction.c_str());
3562 fprintf(in,
"# DEFINITION DU MATERIAU UTILISE------------------------------------------------\n");
3564 for (
int j=0;j<nbvol;j++)
3568 for (
int i=1;i<=niveaumax;i++)
3571 char chr_nom_fonction[8];
3572 sprintf(chr_nom_fonction,
"%d",(
int)val_CM);
3573 std::string str_nom_fonction = chr_nom_fonction;
3574 str_nom_fonction =
"cm" + str_nom_fonction;
3576 fprintf(in,
"\%s = DEFI_FONCTION(NOM_PARA = 'EPSI',\n\
3577 NOM_RESU = 'SIGM',\n\
3578 INTERPOL = 'LIN',\n\
3579 PROL_DROITE = 'LINEAIRE',\n\
3580 PROL_GAUCHE = 'CONSTANT',\n\
3581 VALE = (",str_nom_fonction.c_str());
3584 fprintf(in,
"%lf,%lf,\n",coo[0],coo[1]);
3588 fprintf(in,
" %lf,%lf,\n",coo[0],coo[1]);
3590 fprintf(in,
" ),);\n\n");
3598 fprintf(in,
"MA_%d=DEFI_MATERIAU(ELAS=_F(E = %le, NU = %lf, RHO= %lf,),\n\
3599 TRACTION = _F(SIGM = %s,),);\n\n",i,E,nu,rho,str_nom_fonction.c_str());
3612 fprintf(in,
"# DEFINITION DU MATERIAU UTILISE------------------------------------------------\n");
3613 for (
int j=0;j<nbvol;j++)
3627 DEFI_MATERIAU(ELAS=_F(E = %le, NU = %lf, RHO= %lf,),\n\
3628 ECRO_LINE = _F(D_SIGM_EPSI = %lf,SY = %lf,),);\n\n",ot.
get_base(vol->
get_id(),base).c_str(),E,nu,rho,Et,Re);
3631 for (
int j=0;j<nbcoque;j++)
3645 DEFI_MATERIAU(ELAS=_F(E = %le, NU = %lf, RHO= %lf,),\n\
3646 ECRO_LINE = _F(D_SIGM_EPSI = %lf,SY = %lf,),);\n\n",ot.
get_base(coq->
get_id(),base).c_str(),E,nu,rho,Et,Re);
3655 fprintf(in,
"# DEFINITION DU MATERIAU UTILISE------------------------------------------------\n");
3658 for (
int j=0;j<nbvol;j++)
3667 char chr_nom_fonction[8];
3668 sprintf(chr_nom_fonction,
"%d",(
int)val_CM);
3669 std::string str_nom_fonction = chr_nom_fonction;
3670 str_nom_fonction =
"cm" + str_nom_fonction;
3679 DEFI_MATERIAU(ELAS=_F(E = %le, NU = %lf, RHO= %lf,),\n\
3680 TRACTION = _F(SIGM = %s,),);\n\n",ot.
get_base(vol->
get_id(),base).c_str(),E,nu,rho,str_nom_fonction.c_str());
3689 fprintf(in,
"# AFFECTATION DU MATERIAU AU MAILLAGE-------------------------------------------\n");
3690 fprintf(in,
"CHMAT=AFFE_MATERIAU(MAILLAGE=%s, AFFE = (\n",maillage.c_str());
3691 for (
int j=0;j<nbvol;j++)
3694 fprintf(in,
"_F(GROUP_MA='GMV%lu',MATER= %s%s ),\n",vol->
get_id(),carac.c_str(),ot.
get_base(vol->
get_id(),base).c_str());
3696 for (
int j=0;j<nbcoque;j++)
3699 fprintf(in,
"_F(GROUP_MA='GMC%lu',MATER= %s%s ),\n",coq->
get_id(),carac.c_str(),ot.
get_base(coq->
get_id(),base).c_str());
3701 for (
int j=0;j<nbpoutre;j++)
3704 fprintf(in,
"_F(GROUP_MA='GMP%lu',MATER= %s%s ),\n",pou->
get_id(),carac.c_str(),ot.
get_base(pou->
get_id(),base).c_str());
3706 if ((nbvol>0) && (nbpoutre>0))
3707 fprintf(in,
"_F(GROUP_MA='GMMINI',MATER= MA_MINI ),\n");
3709 fprintf(in,
"),);\n\n");
3718 fprintf(in,
"# AFFECTATION DU MATERIAU AU MAILLAGE-------------------------------------------\n");
3719 fprintf(in,
" CHMAT=AFFE_MATERIAU(MAILLAGE=%s, AFFE = (\n",maillage.c_str());
3720 for (
int j=0;j<nbvol;j++)
3725 char chr_nom_fonction[8];
3726 sprintf(chr_nom_fonction,
"%d",(
int)val_Cond);
3727 std::string str_nom_fonction = chr_nom_fonction;
3728 fprintf(in,
" _F(GROUP_MA='GMV%lu',MATER= P%s ),),AFFE_VARC=(_F(TOUT='OUI',EVOL=temp1,NOM_VARC='TEMP',VALE_REF=%lf,),)\n",vol->
get_id(),ot.
get_base(vol->
get_id(),base).c_str(),VALE);
3731 fprintf(in,
" );\n\n");
3738 fprintf(in,
"# AFFECTATION DU MATERIAU AU MAILLAGE-------------------------------------------\n");
3739 fprintf(in,
"CHMAT=AFFE_MATERIAU(MAILLAGE=MAIL, AFFE = (\n");
3740 for (
int i=1;i<=niveaumax;i++)
3742 int nbelement=lst[i].size();
3743 if (nbelement==0)
continue;
3744 fprintf(in,
"_F(GROUP_MA='GM_%d',MATER= P%s ),\n",i,ot.
get_base(i,base).c_str());
3746 fprintf(in,
"),);\n\n");
3752 void MG_EXPORT::aster_ecrire_comm_condition_limite(FILE *in,
MG_GEOMETRIE* geo,
bool effort,
bool blocage,
bool thermique,
bool stat_non_line,
bool volume,
bool coque,
bool avec3d,std::vector<std::string> &chargepresente,std::map<unsigned long,unsigned long> &gnexistant)
3754 fprintf(in,
"# DEFINITION DES CONDITIONS AUX LIMITES----------------------------------------\n\n");
3757 fprintf(in,
"# ----- EFFORTS -------------------------\n");
3767 fprintf(in,
"\n# ----- DEPLACEMENTS IMPOSES ----------\n");
3780 std::vector<std::string> listccf_group_noeud;
3781 std::vector<std::string> listccf_f_group_noeud;
3782 std::vector<std::string> list_fonction;
3784 LISTE_MG_SOMMET::iterator it_som;
3785 fprintf(in,
"# ----- FORCE PONCTUELLE-------------------\n");
3788 std::string strlistccf;
3789 std::string strlistccf_f;
3790 std::string strfonction;
3791 double valx,valy,valz;
3792 bool resx=som->get_valeur_ccf((
char*)
"Fx",valx);
3793 bool resy=som->get_valeur_ccf((
char*)
"Fy",valy);
3794 bool resz=som->get_valeur_ccf((
char*)
"Fz",valz);
3803 if ((resz) && (avec3d))
3807 bool somnoeud=
false;
3808 if (som->est_une_topo_element())
3818 sprintf(chr_id,
"%ld",som->get_id());
3819 std::string str_id = chr_id;
3820 if(strlistccf.size()!=0)
3822 strlistccf =
"_F(GROUP_NO='GNS" + str_id +
"'," + strlistccf +
"),";
3823 listccf_group_noeud.insert(listccf_group_noeud.end(),strlistccf);
3825 if(strfonction.size()!=0)
3827 strlistccf_f =
"_F(GROUP_NO='GNS" + str_id +
"'," + strlistccf_f +
"),";
3828 listccf_f_group_noeud.insert(listccf_f_group_noeud.end(),strlistccf_f);
3829 list_fonction.insert(list_fonction.end(),strfonction);
3836 std::string str_id = chr_id;
3837 if(strlistccf.size()!=0)
3839 strlistccf =
"_F(GROUP_NO='GNN" + str_id +
"'," + strlistccf +
"),";
3840 listccf_group_noeud.insert(listccf_group_noeud.end(),strlistccf);
3842 if(strfonction.size()!=0)
3844 strlistccf_f =
"_F(GROUP_NO='GNN" + str_id +
"'," + strlistccf_f +
"),";
3845 listccf_f_group_noeud.insert(listccf_f_group_noeud.end(),strlistccf_f);
3846 list_fonction.insert(list_fonction.end(),strfonction);
3850 if(list_fonction.size()!=0)
3852 for(
int k=0;k<list_fonction.size();k++) fprintf(in,
"%s\n",list_fonction[k].c_str());
3855 if(listccf_f_group_noeud.size()!=0)
3857 chargepresente.push_back(
"FORCE_PF");
3858 fprintf(in,
"FORCE_PF = AFFE_CHAR_MECA_F (MODELE = MODCAL, FORCE_NODALE = (\n");
3859 for(
int k=0;k<listccf_f_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_f_group_noeud[k].c_str());
3860 fprintf(in,
"),);\n\n");
3862 if(listccf_group_noeud.size()!=0)
3864 chargepresente.push_back(
"FORCE_P");
3865 fprintf(in,
"FORCE_P = AFFE_CHAR_MECA (MODELE = MODCAL, FORCE_NODALE = (\n");
3866 for(
int k=0;k<listccf_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_group_noeud[k].c_str());
3867 fprintf(in,
"),);\n\n");
3873 fprintf(in,
"# ----- FORCE LINEIQUE-------------------\n");
3874 std::vector<std::string> listccf_group_noeud;
3875 std::vector<std::string> listccf_f_group_noeud;
3876 std::vector<std::string> list_fonction;
3878 LISTE_MG_ARETE::iterator it_arete;
3881 std::string strlistccf;
3882 std::string strlistccf_f;
3883 std::string strfonction;
3884 double valx,valy,valz;
3885 bool resx=arete->get_valeur_ccf((
char*)
"Px",valx);
3886 bool resy=arete->get_valeur_ccf((
char*)
"Py",valy);
3887 bool resz=arete->get_valeur_ccf((
char*)
"Pz",valz);
3896 if ((resz) && (avec3d))
3901 sprintf(chr_id,
"%ld",arete->get_id());
3902 std::string str_id = chr_id;
3903 if(strlistccf.size()!=0)
3905 strlistccf =
"_F(GROUP_MA='GMA" + str_id +
"'," + strlistccf +
"),";
3906 listccf_group_noeud.insert(listccf_group_noeud.end(),strlistccf);
3908 if(strfonction.size()!=0)
3910 strlistccf_f =
"_F(GROUP_MA='GMA" + str_id +
"'," + strlistccf_f +
"),";
3911 listccf_f_group_noeud.insert(listccf_f_group_noeud.end(),strlistccf_f);
3912 list_fonction.insert(list_fonction.end(),strfonction);
3915 if(list_fonction.size()!=0)
3917 for(
int k=0;k<list_fonction.size();k++) fprintf(in,
"%s\n",list_fonction[k].c_str());
3920 if(listccf_f_group_noeud.size()!=0)
3924 chargepresente.push_back(
"FORCE_LF");
3925 fprintf(in,
"FORCE_LF = AFFE_CHAR_MECA_F (MODELE = MODCAL, FORCE_ARETE = (\n");
3926 for(
int k=0;k<listccf_f_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_f_group_noeud[k].c_str());
3927 fprintf(in,
"),);\n\n");
3931 chargepresente.push_back(
"FORCE_CF");
3932 fprintf(in,
"FORCE_CF = AFFE_CHAR_MECA_F (MODELE = MODCAL, FORCE_CONTOUR = (\n");
3933 for(
int k=0;k<listccf_f_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_f_group_noeud[k].c_str());
3934 fprintf(in,
"),);\n\n");
3937 if(listccf_group_noeud.size()!=0)
3941 chargepresente.push_back(
"FORCE_L");
3942 fprintf(in,
"FORCE_L = AFFE_CHAR_MECA (MODELE = MODCAL, FORCE_ARETE = (\n");
3943 for(
int k=0;k<listccf_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_group_noeud[k].c_str());
3944 fprintf(in,
"),);\n\n");
3948 chargepresente.push_back(
"FORCE_C");
3949 fprintf(in,
"FORCE_C = AFFE_CHAR_MECA (MODELE = MODCAL, FORCE_CONTOUR = (\n");
3950 for(
int k=0;k<listccf_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_group_noeud[k].c_str());
3951 fprintf(in,
"),);\n\n");
3961 fprintf(in,
"# ----- FORCE SURFACIQUE-------------------\n");
3962 std::vector<std::string> listccf_group_noeud;
3963 std::vector<std::string> listccf_f_group_noeud;
3964 std::vector<std::string> list_fonction;
3966 LISTE_MG_FACE::iterator it_face;
3969 std::string strlistccf;
3970 std::string strlistccf_f;
3971 std::string strfonction;
3972 double valx,valy,valz;
3973 bool resx=face->get_valeur_ccf((
char*)
"Px",valx);
3974 bool resy=face->get_valeur_ccf((
char*)
"Py",valy);
3975 bool resz=face->get_valeur_ccf((
char*)
"Pz",valz);
3989 sprintf(chr_id,
"%ld",face->get_id());
3990 std::string str_id = chr_id;
3991 if(strlistccf.size()!=0)
3993 strlistccf =
"_F(GROUP_MA='GMF" + str_id +
"'," + strlistccf +
"),";
3994 listccf_group_noeud.insert(listccf_group_noeud.end(),strlistccf);
3996 if(strfonction.size()!=0)
3998 strlistccf_f =
"_F(GROUP_MA='GMF" + str_id +
"'," + strlistccf_f +
"),";
3999 listccf_f_group_noeud.insert(listccf_f_group_noeud.end(),strlistccf_f);
4000 list_fonction.insert(list_fonction.end(),strfonction);
4003 if(list_fonction.size()!=0)
4005 for(
int k=0;k<list_fonction.size();k++) fprintf(in,
"%s\n",list_fonction[k].c_str());
4008 if(listccf_f_group_noeud.size()!=0)
4010 chargepresente.push_back(
"FORCE_FF");
4011 fprintf(in,
"FORCE_FF = AFFE_CHAR_MECA_F (MODELE = MODCAL, FORCE_FACE = (\n");
4012 for(
int k=0;k<listccf_f_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_f_group_noeud[k].c_str());
4013 fprintf(in,
"),);\n\n");
4015 if(listccf_group_noeud.size()!=0)
4017 chargepresente.push_back(
"FORCE_F");
4018 fprintf(in,
"FORCE_F = AFFE_CHAR_MECA (MODELE = MODCAL, FORCE_FACE = (\n");
4019 for(
int k=0;k<listccf_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_group_noeud[k].c_str());
4020 fprintf(in,
"),);\n\n");
4026 fprintf(in,
"# ----- FORCE SURFACIQUE-------------------\n");
4027 std::vector<std::string> listccf_group_noeud;
4028 std::vector<std::string> listccf_f_group_noeud;
4029 std::vector<std::string> list_fonction;
4031 LISTE_MG_FACE::iterator it;
4034 std::vector<std::string> listccf;
4035 double valx,valy,valz;
4036 bool resx=face->get_valeur_ccf((
char*)
"Px",valx);
4037 bool resy=face->get_valeur_ccf((
char*)
"Py",valy);
4038 bool resz=face->get_valeur_ccf((
char*)
"Pz",valz);
4039 std::string strlistccf;
4040 std::string strlistccf_f;
4041 std::string strfonction;
4055 sprintf(chr_id,
"%ld",face->get_id());
4056 std::string str_id = chr_id;
4057 if(strlistccf.size()!=0)
4059 strlistccf =
"_F(GROUP_MA='GMF" + str_id +
"'," + strlistccf +
"),";
4060 listccf_group_noeud.insert(listccf_group_noeud.end(),strlistccf);
4062 if(strfonction.size()!=0)
4064 strlistccf_f =
"_F(GROUP_MA='GMF" + str_id +
"'," + strlistccf_f +
"),";
4065 listccf_f_group_noeud.insert(listccf_f_group_noeud.end(),strlistccf_f);
4066 list_fonction.insert(list_fonction.end(),strfonction);
4070 if(list_fonction.size()!=0)
4072 for(
int k=0;k<list_fonction.size();k++) fprintf(in,
"%s\n",list_fonction[k].c_str());
4075 if(listccf_f_group_noeud.size()!=0)
4077 chargepresente.push_back(
"F_COF");
4078 fprintf(in,
"F_COF = AFFE_CHAR_MECA_F (MODELE = MODCAL, FORCE_COQUE = (\n");
4079 for(
int k=0;k<listccf_f_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_f_group_noeud[k].c_str());
4080 fprintf(in,
"),);\n\n");
4082 if(listccf_group_noeud.size()!=0)
4084 chargepresente.push_back(
"FORCE_CO");
4085 fprintf(in,
"FORCE_CO = AFFE_CHAR_MECA (MODELE = MODCAL, FORCE_COQUE = (\n");
4086 for(
int k=0;k<listccf_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_group_noeud[k].c_str());
4087 fprintf(in,
"),);\n\n");
4093 fprintf(in,
"# ----- FORCE NORMALE-------------------\n");
4094 std::vector<std::string> listccf_group_noeud;
4095 std::vector<std::string> listccf_f_group_noeud;
4096 std::vector<std::string> list_fonction;
4098 LISTE_MG_FACE::iterator it;
4101 std::string strlistccf;
4102 std::string strlistccf_f;
4103 std::string strfonction;
4105 bool res=face->get_valeur_ccf((
char*)
"Pn",val);
4111 sprintf(chr_id,
"%ld",face->get_id());
4112 std::string str_id = chr_id;
4113 if(strlistccf.size()!=0)
4115 strlistccf =
"_F(GROUP_MA='GMF" + str_id +
"'," + strlistccf +
"),";
4116 listccf_group_noeud.insert(listccf_group_noeud.end(),strlistccf);
4118 if(strfonction.size()!=0)
4120 strlistccf_f =
"_F(GROUP_MA='GMF" + str_id +
"'," + strlistccf_f +
"),";
4121 listccf_f_group_noeud.insert(listccf_f_group_noeud.end(),strlistccf_f);
4122 list_fonction.insert(list_fonction.end(),strfonction);
4126 if(list_fonction.size()!=0)
4128 for(
int k=0;k<list_fonction.size();k++) fprintf(in,
"%s\n",list_fonction[k].c_str());
4131 if(listccf_f_group_noeud.size()!=0)
4133 chargepresente.push_back(
"PRES_F");
4134 if (coque) fprintf(in,
"PRES_F = AFFE_CHAR_MECA_F (MODELE = MODCAL, FORCE_COQUE = (\n");
4135 else fprintf(in,
"PRES_F = AFFE_CHAR_MECA_F (MODELE = MODCAL, PRES_REP = (\n");
4136 for(
int k=0;k<listccf_f_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_f_group_noeud[k].c_str());
4137 fprintf(in,
"),);\n\n");
4139 if(listccf_group_noeud.size()!=0)
4141 chargepresente.push_back(
"PRES");
4142 if (coque) fprintf(in,
"PRES = AFFE_CHAR_MECA (MODELE = MODCAL, FORCE_COQUE = (\n");
4143 else fprintf(in,
"PRES = AFFE_CHAR_MECA (MODELE = MODCAL, PRES_REP = (\n");
4144 for(
int k=0;k<listccf_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_group_noeud[k].c_str());
4145 fprintf(in,
"),);\n\n");
4158 LISTE_MG_ARETE::iterator it;
4159 fprintf(in,
"# ----- FORCE NORMALE-------------------\n");
4160 std::vector<std::string> listccf_group_noeud;
4161 std::vector<std::string> listccf_f_group_noeud;
4162 std::vector<std::string> list_fonction;
4166 std::string strlistccf;
4167 std::string strlistccf_f;
4168 std::string strfonction;
4169 std::vector<std::string> listccf;
4171 bool res=are->get_valeur_ccf((
char*)
"Pn",val);
4177 sprintf(chr_id,
"%ld",are->get_id());
4178 std::string str_id = chr_id;
4179 if(strlistccf.size()!=0)
4181 strlistccf =
"_F(GROUP_MA='GMA" + str_id +
"'," + strlistccf +
"),";
4182 listccf_group_noeud.insert(listccf_group_noeud.end(),strlistccf);
4184 if(strfonction.size()!=0)
4186 strlistccf_f =
"_F(GROUP_MA='GMA" + str_id +
"'," + strlistccf_f +
"),";
4187 listccf_f_group_noeud.insert(listccf_f_group_noeud.end(),strlistccf_f);
4188 list_fonction.insert(list_fonction.end(),strfonction);
4191 if(list_fonction.size()!=0)
4193 for(
int k=0;k<list_fonction.size();k++) fprintf(in,
"%s\n",list_fonction[k].c_str());
4196 if(listccf_f_group_noeud.size()!=0)
4198 chargepresente.push_back(
"PRES_F");
4199 fprintf(in,
"PRES_F = AFFE_CHAR_MECA_F (MODELE = MODCAL, PRES_REP = (\n");
4200 for(
int k=0;k<listccf_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_group_noeud[k].c_str());
4201 fprintf(in,
"),);\n\n");
4203 if(listccf_group_noeud.size()!=0)
4205 chargepresente.push_back(
"PRES");
4206 fprintf(in,
"PRES = AFFE_CHAR_MECA (MODELE = MODCAL, PRES_REP = (\n");
4207 for(
int k=0;k<listccf_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_group_noeud[k].c_str());
4208 fprintf(in,
"),);\n\n");
4217 std::string &strlistccf,
4218 std::string &strlistccf_f,
4219 std::string &strfonction,
4225 double valdx,valdy,valdz,valrx,valry,valrz,valda,valdt,valrt,valdr,valdax;
4240 resdx=
true;resdy=
true;resdz=
true;resrx=
true;resry=
true;resrz=
true;
4241 valdx=0.;valdy=0.;valdz=0.;valrx=0;valry=0.;valrz=0.;
4245 resdx=
true;resdy=
true;resdz=
true;
4246 valdx=0.;valdy=0.;valdz=0.;
4250 resrx=
true;resry=
true;resrz=
true;
4251 valrx=0;valry=0.;valrz=0.;
4259 else if(resdt==
true)
4274 else if(resdt==
true)
4283 if ((resdz) && (avec3d))
4289 else if(resdt==
true)
4298 if ((coque) && (resrx))
4304 else if(resdt==
true)
4313 if ((coque) && (resry))
4319 else if(resdt==
true)
4328 if ((coque) && (resrz))
4334 else if(resdt==
true)
4357 std::vector<std::string> listccf_group_noeud;
4358 std::vector<std::string> listccf_f_group_noeud;
4359 std::vector<std::string> list_fonction;
4360 std::vector<std::string> list_face_impo;
4361 std::vector<std::string> list_face_impo_f;
4362 std::vector<std::string> list_liaison_oblique;
4363 std::vector<std::string> list_liaison_oblique_f;
4365 LISTE_MG_SOMMET::iterator it_som;
4366 LISTE_MG_ARETE::iterator it_arete;
4367 LISTE_MG_FACE::iterator it_face;
4374 std::string strlistccf;
4375 std::string strlistccf_f;
4376 std::string strfonction;
4378 bool somnoeud=
false;
4379 if (som->est_une_topo_element())
4389 sprintf(chr_id,
"%ld",som->get_id());
4390 std::string str_id = chr_id;
4391 if((strlistccf.size()!=0)&&!(som->get_valeur_ccf((
char*)
"DA",val))&&!(som->get_valeur_ccf((
char*)
"DR",val)))
4393 strlistccf =
"_F(GROUP_NO = 'GNS" + str_id +
"'," + strlistccf +
"),";
4394 listccf_group_noeud.insert(listccf_group_noeud.end(),strlistccf);
4396 if((strfonction.size()!=0)&&!(som->get_valeur_ccf((
char*)
"DA",val))&&!(som->get_valeur_ccf((
char*)
"DR",val)))
4398 strlistccf_f =
"_F(GROUP_NO = 'GNS" + str_id +
"'," + strlistccf_f +
"),";
4399 listccf_f_group_noeud.insert(listccf_f_group_noeud.end(),strlistccf_f);
4400 list_fonction.insert(list_fonction.end(),strfonction);
4407 std::string str_id = chr_id;
4408 if(strlistccf.size()!=0)
4410 strlistccf =
"_F(GROUP_NO = 'GNN" + str_id +
"'," + strlistccf +
"),";
4411 listccf_group_noeud.insert(listccf_group_noeud.end(),strlistccf);
4413 if(strfonction.size()!=0)
4415 strlistccf_f =
"_F(GROUP_NO = 'GNN" + str_id +
"'," + strlistccf_f +
"),";
4416 listccf_f_group_noeud.insert(listccf_f_group_noeud.end(),strlistccf_f);
4417 list_fonction.insert(list_fonction.end(),strfonction);
4424 std::string strlistccf;
4425 std::string strlistccf_f;
4426 std::string strfonction;
4429 sprintf(chr_id,
"%ld",arete->get_id());
4430 if (gnexistant.find(arete->get_id())==gnexistant.end())
continue;
4431 std::string str_id = chr_id;
4432 if((strlistccf.size()!=0)&&!(arete->get_valeur_ccf((
char*)
"DA",val))&&!(arete->get_valeur_ccf((
char*)
"DR",val)))
4434 strlistccf =
"_F(GROUP_NO = 'GNA" + str_id +
"'," + strlistccf +
"),";
4435 listccf_group_noeud.insert(listccf_group_noeud.end(),strlistccf);
4437 if((strfonction.size()!=0)&&!(arete->get_valeur_ccf((
char*)
"DA",val))&&!(arete->get_valeur_ccf((
char*)
"DR",val)))
4439 strlistccf_f =
"_F(GROUP_NO = 'GNA" + str_id +
"'," + strlistccf_f +
"),";
4440 listccf_f_group_noeud.insert(listccf_f_group_noeud.end(),strlistccf_f);
4441 list_fonction.insert(list_fonction.end(),strfonction);
4447 std::string strlistccf;
4448 std::string strlistccf_f;
4449 std::string strfonction;
4454 sprintf(chr_id,
"%ld",face->get_id());
4455 if (gnexistant.find(face->get_id())==gnexistant.end())
continue;
4456 std::string str_id = chr_id;
4457 if(strlistccf.size()!=0)
4461 std::string strccf =
"'GMF" + str_id +
"',";
4462 face->get_valeur_ccf((
char*)
"DR",val);
4465 if(list_face_impo.size()!=0)
4468 for(
int k=0;k<list_face_impo.size();k++)
4469 if(list_face_impo[k].find(std::to_string(face->get_id()))!=-1) exist=
true;
4470 if(!exist) list_face_impo.insert(list_face_impo.end(),strccf);
4473 list_face_impo.insert(list_face_impo.end(),strccf);
4475 if((face->get_valeur_ccf((
char*)
"DA",val))&&((strlistccf.find(
"DX")!=-1))&&(face->get_surface()->get_type_geometrique(param)==
GEOMETRIE::CONST::Co_CYLINDRE))
4478 list_liaison_oblique.insert(list_liaison_oblique.end(),strccf);
4480 if(!(face->get_valeur_ccf((
char*)
"DR",val))&&!(face->get_valeur_ccf((
char*)
"DA",val)))
4482 strlistccf =
"_F(GROUP_NO = 'GNF" + str_id +
"'," + strlistccf +
"),";
4483 listccf_group_noeud.insert(listccf_group_noeud.end(),strlistccf);
4486 if(strlistccf_f.size()!=0)
4490 std::string strccf_f =
"'GMF" + str_id +
"',";
4491 face->get_valeur_ccf((
char*)
"DR",val);
4494 strccf_f =
"_F(GROUP_MA = (" + strccf_f +
"),DNOR = " + strfonction +
"),";
4495 if(list_face_impo_f.size()!=0)
4499 for(
int k=0;k<list_face_impo_f.size();k++)
4500 if(list_face_impo_f[k].find(std::to_string(face->get_id()))!=-1) exist=
true;
4503 list_face_impo_f.insert(list_face_impo_f.end(),strccf_f);
4504 list_fonction.insert(list_fonction.end(),strfonction);
4509 list_face_impo_f.insert(list_face_impo_f.end(),strccf_f);
4511 list_fonction.insert(list_fonction.end(),strfonction);
4514 if((face->get_valeur_ccf((
char*)
"DA",val))&&((strlistccf_f.find(
"DX")!=-1))&&(face->get_surface()->get_type_geometrique(param)==
GEOMETRIE::CONST::Co_CYLINDRE))
4517 std::string strccf_f =
"_F(GROUP_MA = 'GMF" + str_id +
"',DX = " + strfonction +
"," +
get_string_angles_nautiques(param,precision) +
",),";
4518 list_liaison_oblique_f.insert(list_liaison_oblique_f.end(),strccf_f);
4520 list_fonction.insert(list_fonction.end(),strfonction);
4522 if(!(face->get_valeur_ccf((
char*)
"DR",val))&&!(face->get_valeur_ccf((
char*)
"DA",val)))
4524 strlistccf_f =
"_F(GROUP_NO = 'GNF" + str_id +
"'," + strlistccf_f +
"),";
4525 listccf_f_group_noeud.insert(listccf_f_group_noeud.end(),strlistccf_f);
4526 list_fonction.insert(list_fonction.end(),strfonction);
4531 if(list_fonction.size()!=0)
4533 for(
int k=0;k<list_fonction.size();k++) fprintf(in,
"%s",list_fonction[k].c_str());
4536 if((listccf_f_group_noeud.size()!=0)||(list_face_impo_f.size()!=0)||(list_liaison_oblique_f.size()!=0))
4538 chargepresente.push_back(
"BLOCAGEF");
4539 fprintf(in,
"BLOCAGEF = AFFE_CHAR_MECA_F (MODELE = MODCAL,\n");
4540 if(listccf_f_group_noeud.size()!=0)
4542 fprintf(in,
"DDL_IMPO = (\n");
4543 for(
int k=0;k<listccf_f_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_f_group_noeud[k].c_str());
4546 if(list_face_impo_f.size()!=0)
4548 fprintf(in,
"FACE_IMPO = (\n");
4549 for(
int k=0;k<list_face_impo_f.size();k++) fprintf(in,
"%s\n",list_face_impo_f[k].c_str());
4552 if(list_liaison_oblique_f.size()!=0)
4554 fprintf(in,
"LIAISON_OBLIQUE = (\n");
4555 for(
int k=0;k<list_liaison_oblique_f.size();k++) fprintf(in,
"%s\n",list_liaison_oblique_f[k].c_str());
4558 fprintf(in,
");\n\n");
4560 if((listccf_group_noeud.size()!=0)||(list_face_impo.size()!=0)||(list_liaison_oblique.size()!=0))
4562 chargepresente.push_back(
"BLOCAGE");
4563 fprintf(in,
"BLOCAGE = AFFE_CHAR_MECA (MODELE = MODCAL,\n");
4564 if(listccf_group_noeud.size()!=0)
4566 fprintf(in,
"DDL_IMPO = (\n");
4567 for(
int k=0;k<listccf_group_noeud.size();k++) fprintf(in,
"%s\n",listccf_group_noeud[k].c_str());
4570 if(list_face_impo.size()!=0)
4572 fprintf(in,
"FACE_IMPO = (\n");
4573 for(
int k=0;k<list_face_impo.size();k++) fprintf(in,
"%s\n",list_face_impo[k].c_str());
4576 if(list_liaison_oblique.size()!=0)
4578 fprintf(in,
"LIAISON_OBLIQUE = (\n");
4579 for(
int k=0;k<list_liaison_oblique.size();k++) fprintf(in,
"%s\n",list_liaison_oblique[k].c_str());
4582 fprintf(in,
");\n\n");
4588 fprintf(in,
"# ----- temperature imposée -------------------------\n");
4590 LISTE_MG_SOMMET::iterator it;
4593 std::vector<std::string> listccf;
4595 bool res=som->get_valeur_ccf((
char*)
"Tn",val);
4599 sprintf(valchar,
"%le",val);
4600 std::string valstr=valchar;
4601 std::string chaine=
"TEMP="+valstr;
4602 listccf.insert(listccf.end(),chaine);
4604 if (listccf.size()!=0)
4608 fprintf(in,
"TEMPE = AFFE_CHAR_THER (MODELE = MODCAL, TEMP_IMPO = (\n");
4609 chargepresente.push_back(
"TEMPE");
4612 if ((!som->est_une_topo_element()) || (geo->
est_virtuelle()))
4613 fprintf(in,
"_F(GROUP_NO='GNS%lu',",som->get_id());
4619 for (
int k=0;k<listccf.size();k++)
4620 fprintf(in,
"%s,",listccf[k].c_str());
4624 LISTE_MG_ARETE::iterator it2;
4627 std::vector<std::string> listccf;
4629 bool res=arete->get_valeur_ccf((
char*)
"Tn",val);
4630 if (gnexistant.find(arete->get_id())==gnexistant.end())
continue;
4634 sprintf(valchar,
"%le",val);
4635 std::string valstr=valchar;
4636 std::string chaine=
"TEMP="+valstr;
4637 listccf.insert(listccf.end(),chaine);
4640 if (listccf.size()!=0)
4644 fprintf(in,
"TEMPE = AFFE_CHAR_THER (MODELE = MODCAL, TEMP_IMPO = (\n");
4645 chargepresente.push_back(
"TEMPE");
4648 fprintf(in,
"_F(GROUP_NO='GNA%lu',",arete->get_id());
4649 for (
int k=0;k<listccf.size();k++)
4650 fprintf(in,
"%s,",listccf[k].c_str());
4656 LISTE_MG_FACE::iterator it3;
4659 std::vector<std::string> listccf;
4661 if (gnexistant.find(face->get_id())==gnexistant.end())
continue;
4662 bool res=face->get_valeur_ccf((
char*)
"Tn",val);
4666 sprintf(valchar,
"%le",val);
4667 std::string valstr=valchar;
4668 std::string chaine=
"TEMP="+valstr;
4669 listccf.insert(listccf.end(),chaine);
4671 if (listccf.size()!=0)
4675 fprintf(in,
"TEMPE = AFFE_CHAR_THER (MODELE = MODCAL, TEMP_IMPO = (\n");
4676 chargepresente.push_back(
"TEMPE");
4679 fprintf(in,
"_F(GROUP_NO='GNF%lu',",face->get_id());
4680 for (
int k=0;k<listccf.size();k++)
4681 fprintf(in,
"%s,",listccf[k].c_str());
4685 if (
existe) fprintf(in,
"),);\n\n");
4689 fprintf(in,
"# ----- flux imposé -------------------------\n");
4691 LISTE_MG_FACE::iterator it3;
4694 std::vector<std::string> listccf;
4696 bool res=face->get_valeur_ccf((
char*)
"fn",val);
4700 sprintf(valchar,
"%le",val);
4701 std::string valstr=valchar;
4702 std::string chaine=
"FLUN="+valstr;
4703 listccf.insert(listccf.end(),chaine);
4705 if (listccf.size()!=0)
4709 fprintf(in,
"FLUX = AFFE_CHAR_THER (MODELE = MODCAL, FLUX_REP = (\n");
4710 chargepresente.push_back(
"FLUX");
4713 fprintf(in,
"_F(GROUP_MA='GMF%lu',",face->get_id());
4714 for (
int k=0;k<listccf.size();k++)
4715 fprintf(in,
"%s,",listccf[k].c_str());
4719 if (
existe) fprintf(in,
"),);\n\n");
4727 fprintf(in,
"# CALCUL MECANIQUE--------------------------------------------------------------\n\n");
4728 if (coque) fprintf(in,
"RESU=MECA_STATIQUE(MODELE=MODCAL, CHAM_MATER=CHMAT, CARA_ELEM=CARA_COQ,\n%s,\n EXCIT=(\n",
aster_ecrire_comm_solveur().c_str());
4729 if (poutre) fprintf(in,
"RESU=MECA_STATIQUE(MODELE=MODCAL, CHAM_MATER=CHMAT, CARA_ELEM=CARA_POU,\n%s,\n EXCIT=(\n",
aster_ecrire_comm_solveur().c_str());
4730 if ((vol)&&(estortho)) fprintf(in,
"RESU=MECA_STATIQUE(MODELE=MODCAL, CHAM_MATER=CHMAT, CARA_ELEM=CARA_VOL,\n%s,\n EXCIT=(\n",
aster_ecrire_comm_solveur().c_str());
4731 if ((vol)&&(!poutre)&&(!estortho)) fprintf(in,
"RESU=MECA_STATIQUE(MODELE=MODCAL, CHAM_MATER=CHMAT,\n%s,\n EXCIT=(\n",
aster_ecrire_comm_solveur().c_str());
4732 for (
int i=0;i<chargepresente.size();i++)
4733 fprintf(in,
"_F(CHARGE=%s,),\n",chargepresente[i].c_str());
4734 fprintf(in,
"),);\n\n");
4736 fprintf(in,
"# REACTION NODALE\n");
4737 if (coque) fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU,RESULTAT=RESU,TOUT_ORDRE='OUI', CARA_ELEM=CARA_COQ,FORCE='REAC_NODA',);\n");
4738 if (poutre) fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU,RESULTAT=RESU,TOUT_ORDRE='OUI', CARA_ELEM=CARA_POU,FORCE='REAC_NODA',);\n");
4739 else fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU,RESULTAT=RESU,TOUT_ORDRE='OUI', FORCE='REAC_NODA',);\n");
4741 std::string lieu =
"NOEU";
4743 if (val==1) lieu=
"ELNO";
4744 if (val==2) lieu=
"ELGA";
4745 if (coque) lieu=
"ELNO";
4746 char* plieu=(
char*)lieu.c_str();
4749 std::string tout1d=
"TOUT='OUI'";
4750 std::string tout3d=
"TOUT='OUI'";
4753 tout1d=
"GROUP_MA=(";
4754 tout3d=
"GROUP_MA=(";
4755 LISTE_MG_POUTRE::iterator itp;
4759 sprintf(mess,
"'GMP%lu',",pou->get_id());
4763 LISTE_MG_COQUE::iterator itc;
4767 sprintf(mess,
"'GMC%lu',",coq->get_id());
4770 LISTE_MG_VOLUME::iterator itv;
4774 sprintf(mess,
"'GMV%lu',",vol->get_id());
4780 if ((coderesu)[5]==
'1')
4782 fprintf(in,
"\n# DEFORMATIONS AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
4783 fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU, RESULTAT=RESU, %s, DEFORMATION='EPSI_%s',);\n",tout3d.c_str(),plieu);
4785 if (((coderesu[4]==
'1') || (coderesu[6]==
'1')) && (val!=2))
4787 fprintf(in,
"\n# CONTRAINTES AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
4788 fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU, RESULTAT=RESU, %s, CONTRAINTE='SIEF_%s',);\n",tout3d.c_str(),plieu);
4789 if (poutre) fprintf(in,
"\n# EFFORTS AUX NOEUDS PAR ELEMENT A PARTIR DES DEPLACEMENTS\n");
4790 if (poutre) fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU, RESULTAT=RESU, %s, CONTRAINTE='EFGE_ELNO',);\n",tout1d.c_str());
4791 if (poutre) fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU, RESULTAT=RESU, %s, CONTRAINTE='SIPM_ELNO',);\n",tout1d.c_str());
4792 if (poutre) fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU, RESULTAT=RESU, %s, CONTRAINTE='SIPO_ELNO',);\n",tout1d.c_str());
4794 if (coderesu[6]==
'1')
4796 fprintf(in,
"\n# CONTRAINTES DE VON MISES AUX NOEUDS A PARTIR DES CONTRAINTES AUX NOEUDS\n");
4797 fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU, RESULTAT=RESU, %s, CRITERES='SIEQ_%s',);\n",tout3d.c_str(),plieu);
4799 if (coderesu[7]==
'1')
4801 fprintf(in,
"\n# ENERGIE DE DEFORMATION PAR ELEMENT A DES PARTIR DES DEPLACEMENTS\n");
4802 fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU, RESULTAT=RESU, TOUT='OUI', ENERGIE='EPOT_ELEM',);\n");
4804 if (!desactiveerreur)
4806 fprintf(in,
"RESU=CALC_ERREUR(reuse=RESU, RESULTAT=RESU, TOUT='OUI', OPTION='ERZ1_ELEM',); \n");
4813 double DEBUT,JUSQU_A;
4814 double VALE,PRECISION,INST_INIT,PARM_THETA;
4824 fprintf(in,
"\n# Transitoire : liste de temps------------------------------------------------\n");
4825 fprintf(in,
"list1=DEFI_LIST_REEL(DEBUT=%lf,INTERVALLE=(_F(JUSQU_A=%lf,NOMBRE=%d,),),);\n\n",DEBUT,JUSQU_A,PAS);
4827 std::string str_archive;
4828 std::string str_inst_calc_champ;
4830 if(NB_PAS_ARCHIVE!=0)
4833 fprintf(in,
"\n# Liste d'instants d'archivage------------------------------------------------\n");
4834 fprintf(in,
"lst_arch=DEFI_LIST_REEL(DEBUT=%lf,INTERVALLE=(_F(JUSQU_A=%lf,NOMBRE=%d,),),);\n\n",DEBUT,JUSQU_A,NB_PAS_ARCHIVE);
4836 fprintf(in,
"# CALCUL THERMIQUE--------------------------------------------------------------\n\n");
4839 fprintf(in,
"TEMP=THER_LINEAIRE(MODELE=MODCAL,\n%s,\n CHAM_MATER=CHMAT, ETAT_INIT=_F(VALE=%lf,PRECISION=%le,),EXCIT=(\n",
aster_ecrire_comm_solveur().c_str(),VALE,PRECISION);
4845 for (
int i=0;i<chargepresente.size();i++)
4846 fprintf(in,
"_F(CHARGE=%s,),\n",chargepresente[i].c_str());
4847 if(PAS!=0) fprintf(in,
"),INCREMENT=_F(LIST_INST=list1,INST_INIT=%lf,),PARM_THETA=%lf,);\n\n",INST_INIT,PARM_THETA);
4848 else fprintf(in,
"),);\n");
4849 fprintf(in,
"FLUX_C=CALC_CHAMP(RESULTAT=TEMP,TOUT_ORDRE='OUI', THERMIQUE='FLUX_ELGA',);\n");
4855 int PAS,division,taille,PASVAR,PASVAR1,corr;
4856 double VALE,PRECISION,JUSQU_A,DEBUT,TEMP_INIT,FLUX_INIT,coef,Rho_cp,PARM_THETA;
4859 std::string maillage;
4869 LISTE_MG_ARETE::iterator it;
4870 LISTE_MG_FACE::iterator it1;
4871 for (
int j=0;j<nbvol;j++)
4879 val_Cond1=3+val_Cond2+val_Cond3+val_Cond4;
4884 fprintf(in,
"# CALCUL THERMIQUE stationnaire--------------------------------------------------------------\n\n");
4885 fprintf(in,
"sol=[0]*%d;\n",PAS+1);
4886 fprintf(in,
"TEMP_ST = AFFE_CHAR_THER (MODELE = MODCAL, TEMP_IMPO = (\n");
4894 if (gnexistant.find(face->get_id())==gnexistant.end())
continue;
4895 fprintf(in,
"_F(GROUP_NO='GNF%lu',TEMP=0.000000,),",face->get_id());
4897 fprintf(in,
"),);\n\n");
4899 fprintf(in,
"MA_%lu=DEFI_MATERIAU(THER=_F(LAMBDA=%le,RHO_CP=%lf,),);\n\n",vol->
get_id(),coef,Rho_cp);
4901 fprintf(in,
"sol[0]=THER_LINEAIRE(MODELE=MODCAL,\n%s,\n CHAM_MATER=CHMAT, ETAT_INIT=_F(STATIONNAIRE='OUI',),EXCIT=(\n",
aster_ecrire_comm_solveur().c_str());
4902 fprintf(in,
"_F(CHARGE=TEMP_ST,),\n");
4903 fprintf(in,
"),PARM_THETA=%lf,);\n\n",PARM_THETA);
4906 fprintf(in,
"temp=CREA_CHAMP(OPERATION='EXTR',RESULTAT=sol[0],NUME_ORDRE=0,NOM_CHAM='TEMP',TYPE_CHAM='NOEU_TEMP_R');\n\n");
4907 fprintf(in,
"temp1=CREA_RESU(TYPE_RESU='EVOL_VARC',NOM_CHAM='TEMP',OPERATION='AFFE',AFFE=(_F(CHAM_GD=temp,INST=%lf,),),);\n\n",DEBUT);
4908 fprintf(in,
"IMPR_RESU(MODELE=MODCAL,FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=sol[0], NOM_CHAM='TEMP', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE TEMPERATURE',),);\n");
4909 fprintf(in,
"DETRUIRE(CONCEPT=(_F(NOM=CHMAT,),),);\n");
4911 fprintf(in,
"# CALCUL THERMIQUE itératif--------------------------------------------------------------\n\n");
4915 val_Cond1=4+val_Cond2+val_Cond3+val_Cond4;
4918 fprintf(in,
"list1=DEFI_LIST_REEL(DEBUT=%lf,\n\n",DEBUT);
4919 fprintf(in,
"INTERVALLE=(\n\n");
4923 fprintf(in,
"_F(JUSQU_A=%lf,NOMBRE=%d,),\n\n",col[1],PASVAR1);
4926 fprintf(in,
"_F(JUSQU_A=%lf,NOMBRE=%d,),\n\n",col[1],PASVAR1);
4927 fprintf(in,
"),);\n\n");
4932 fprintf(in,
"list1=DEFI_LIST_REEL(DEBUT=%lf,INTERVALLE=(_F(JUSQU_A=%lf,NOMBRE=%d,),),);\n\n",DEBUT,JUSQU_A,PAS);
4934 fprintf(in,
"for n in range (1,(%d+1)):\n\n",PAS);
4936 fprintf(in,
" sol[n]=THER_LINEAIRE(MODELE=MODCAL,\n %s,\n CHAM_MATER=CHMAT, ETAT_INIT=_F(EVOL_THER=sol[n-1],),EXCIT=(\n",
aster_ecrire_comm_solveur().c_str());
4937 for (
int i=0;i<chargepresente.size();i++)
4939 fprintf(in,
" _F(CHARGE=%s,),\n",chargepresente[i].c_str());
4941 fprintf(in,
" ),INCREMENT=_F(LIST_INST=list1,NUME_INST_INIT=(n-1),NUME_INST_FIN=n,),PARM_THETA=%lf,);\n\n",PARM_THETA);
4943 fprintf(in,
" if n%% %d==0:\n\n",division);
4944 fprintf(in,
" IMPR_RESU(MODELE=MODCAL,FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=sol[n],NUME_ORDRE=1, NOM_CHAM='TEMP',\n");
4945 fprintf(in,
" SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE TEMPERATURE',),);\n");
4946 fprintf(in,
" DETRUIRE(CONCEPT=(_F(NOM=temp,),),);\n");
4947 fprintf(in,
" temp=CREA_CHAMP(OPERATION='EXTR',RESULTAT=sol[n],NUME_ORDRE=1,NOM_CHAM='TEMP',TYPE_CHAM='NOEU_TEMP_R');\n\n");
4948 fprintf(in,
" DETRUIRE(CONCEPT=(_F(NOM=temp1,),),);\n");
4949 fprintf(in,
" temp1=CREA_RESU(TYPE_RESU='EVOL_VARC',NOM_CHAM='TEMP',OPERATION='AFFE',AFFE=(_F(CHAM_GD=temp,INST=n,),),);\n\n");
4950 fprintf(in,
" DETRUIRE(CONCEPT=(_F(NOM=CHMAT,),),);\n");
4951 fprintf(in,
" print ('ITERATION: ',n) \n");
4968 int PAS,division,taille,PASVAR,PASVAR1,corr;
4969 double VALE,PRECISION,JUSQU_A,DEBUT,TEMP_INIT,FLUX_INIT,coef,Rho_cp,PARM_THETA,N1,N2,N3,CONV1,CONV2,CONV3;
4972 std::string maillage;
4988 LISTE_MG_ARETE::iterator it;
4989 LISTE_MG_FACE::iterator it1;
4990 for (
int j=0;j<nbvol;j++)
4998 val_Cond1=3+val_Cond2+val_Cond3+val_Cond4;
5003 fprintf(in,
"# CALCUL THERMIQUE stationnaire--------------------------------------------------------------\n\n");
5004 fprintf(in,
"sol=[0]*%d;\n",PAS+1);
5005 fprintf(in,
"TEMP_ST = AFFE_CHAR_THER (MODELE = MODCAL, TEMP_IMPO = (\n");
5013 if (gnexistant.find(face->get_id())==gnexistant.end())
continue;
5014 fprintf(in,
"_F(GROUP_NO='GNF%lu',TEMP=0.000000,),",face->get_id());
5016 fprintf(in,
"),);\n\n");
5017 fprintf(in,
"MA_%lu=DEFI_MATERIAU(THER=_F(LAMBDA=%le,RHO_CP=%lf,),);\n\n",vol->
get_id(),coef,Rho_cp);
5019 fprintf(in,
"sol[0]=THER_LINEAIRE(MODELE=MODCAL,\n%s,\n CHAM_MATER=CHMAT, ETAT_INIT=_F(STATIONNAIRE='OUI',),EXCIT=(\n",
aster_ecrire_comm_solveur().c_str());
5020 fprintf(in,
"_F(CHARGE=TEMP_ST,),\n");
5021 fprintf(in,
"),PARM_THETA=%lf,);\n\n",PARM_THETA);
5024 fprintf(in,
"temp=CREA_CHAMP(OPERATION='EXTR',RESULTAT=sol[0],NUME_ORDRE=0,NOM_CHAM='TEMP',TYPE_CHAM='NOEU_TEMP_R');\n\n");
5025 fprintf(in,
"temp1=CREA_RESU(TYPE_RESU='EVOL_VARC',NOM_CHAM='TEMP',OPERATION='AFFE',AFFE=(_F(CHAM_GD=temp,INST=%lf,),),);\n\n",DEBUT);
5026 fprintf(in,
"IMPR_RESU(MODELE=MODCAL,FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=sol[0], NOM_CHAM='TEMP', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE TEMPERATURE',),);\n");
5027 fprintf(in,
"DETRUIRE(CONCEPT=(_F(NOM=CHMAT,),),);\n");
5029 fprintf(in,
"# CALCUL THERMIQUE itératif--------------------------------------------------------------\n\n");
5033 val_Cond1=4+val_Cond2+val_Cond3+val_Cond4;
5036 fprintf(in,
"list1=DEFI_LIST_REEL(DEBUT=%lf,\n\n",DEBUT);
5037 fprintf(in,
"INTERVALLE=(\n\n");
5041 fprintf(in,
"_F(JUSQU_A=%lf,NOMBRE=%d,),\n\n",col[1],PASVAR1);
5044 fprintf(in,
"_F(JUSQU_A=%lf,NOMBRE=%d,),\n\n",col[1],PASVAR1);
5045 fprintf(in,
"),);\n\n");
5050 fprintf(in,
"list1=DEFI_LIST_REEL(DEBUT=%lf,INTERVALLE=(_F(JUSQU_A=%lf,NOMBRE=%d,),),);\n\n",DEBUT,JUSQU_A,PAS);
5052 fprintf(in,
"for n in range (1,(%d+1)):\n\n",PAS);
5054 fprintf(in,
" sol[n]=THER_NON_LINE(MODELE=MODCAL,\n %s,\n CHAM_MATER=CHMAT, ETAT_INIT=_F(EVOL_THER=sol[n-1],),EXCIT=(\n",
aster_ecrire_comm_solveur().c_str());
5055 for (
int i=0;i<chargepresente.size();i++)
5057 fprintf(in,
" _F(CHARGE=%s,),\n",chargepresente[i].c_str());
5059 fprintf(in,
" ),NEWTON=_F(REAC_ITER=%lf,RESI_LINE_RELA=%lf,ITER_LINE_MAXI=%lf,),\n\n",N1,N2,N3);
5060 fprintf(in,
" CONVERGENCE=_F(RESI_GLOB_RELA=%lf,RESI_GLOB_MAXI=%lf,ITER_GLOB_MAXI=%lf,\n\n",CONV1,CONV2,CONV3);
5061 fprintf(in,
" ),INCREMENT=_F(LIST_INST=list1,NUME_INST_INIT=(n-1),NUME_INST_FIN=n,),PARM_THETA=%lf,);\n\n",PARM_THETA);
5063 fprintf(in,
" if n%% %d==0:\n\n",division);
5064 fprintf(in,
" IMPR_RESU(MODELE=MODCAL,FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=sol[n],NUME_ORDRE=1, NOM_CHAM='TEMP',\n");
5065 fprintf(in,
" SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE TEMPERATURE',),);\n");
5066 fprintf(in,
" DETRUIRE(CONCEPT=(_F(NOM=temp,),),);\n");
5067 fprintf(in,
" temp=CREA_CHAMP(OPERATION='EXTR',RESULTAT=sol[n],NUME_ORDRE=1,NOM_CHAM='TEMP',TYPE_CHAM='NOEU_TEMP_R');\n\n");
5068 fprintf(in,
" DETRUIRE(CONCEPT=(_F(NOM=temp1,),),);\n");
5069 fprintf(in,
" temp1=CREA_RESU(TYPE_RESU='EVOL_VARC',NOM_CHAM='TEMP',OPERATION='AFFE',AFFE=(_F(CHAM_GD=temp,INST=n,),),);\n\n");
5070 fprintf(in,
" DETRUIRE(CONCEPT=(_F(NOM=CHMAT,),),);\n");
5071 fprintf(in,
" print ('ITERATION: ',n)\n");
5078 std::string lieu =
"NOEU";
5079 std::string champ=
"AUX NOEUDS";
5084 champ=
"PAR ELEMENT AUX NOEUDS" ;
5089 champ=
"PAR ELEMENT AUX POINTS DE GAUSS" ;
5091 char* plieu=(
char*)lieu.c_str();
5092 char* pchamp=(
char*)champ.c_str();
5093 fprintf(in,
"\n# IMPRESSION DES RESULTATS------------------------------------------------------\n");
5094 if (coderesu[3]==
'1')
5096 fprintf(in,
"\n# DEPLACEMENTS\n");
5097 if (avec3d) fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='DEPL', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE DEPL',),);\n");
5098 else fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='DEPL', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE DEPL_2D',),);\n");
5099 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='REAC_NODA', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE FORCE_REACTION',),);\n");
5101 if (coderesu[5]==
'1')
5103 fprintf(in,
"\n# DEFORMATIONS AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
5104 if (avec3d) fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='EPSI_%s',SOUS_TITRE='CHAMP %s DE NOM SYMBOLIQUE TENSEUR_EPS',),);\n",plieu,pchamp);
5105 else fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='EPSI_%s',SOUS_TITRE='CHAMP %s DE NOM SYMBOLIQUE TENSEUR_EPS_2D',),);\n",plieu,pchamp);
5107 if (coderesu[4]==
'1')
5109 fprintf(in,
"\n# CONTRAINTES AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
5111 if (poutre) fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CMP=('SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ',),NOM_CHAM='SIEF_%s',SOUS_TITRE='CHAMP %s DE NOM SYMBOLIQUE TENSEUR_SIGMA',),);\n",plieu,pchamp);
5112 else fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='SIEF_%s',SOUS_TITRE='CHAMP %s DE NOM SYMBOLIQUE TENSEUR_SIGMA',),);\n",plieu,pchamp);
5113 else fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='SIEF_%s',SOUS_TITRE='CHAMP %s DE NOM SYMBOLIQUE TENSEUR_SIGMA_2D',),);\n",plieu,pchamp);
5116 fprintf(in,
"\n# EFFORTS AUX NOEUDS PAR ELEMENT A PARTIR DES DEPLACEMENTS\n");
5117 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='EFGE_ELNO',SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE EFFORT_NOEUD',),);\n");
5118 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='SIPM_ELNO',SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE CONTRAINTE_MAX_POUTRE',),);\n");
5119 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='SIPO_ELNO',SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE CONTRAINTE_POUTRE',),);\n");
5123 if (coderesu[6]==
'1')
5125 fprintf(in,
"\n# CONTRAINTES DE VON MISES AUX NOEUDS A PARTIR DES CONTRAINTES AUX NOEUDS\n");
5126 if (avec3d) fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='SIEQ_%s',SOUS_TITRE='CHAMP %s DE NOM SYMBOLIQUE CONTRAINTE_EQUI2',),);\n",plieu,pchamp);
5127 else fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='SIEQ_%s',SOUS_TITRE='CHAMP %s DE NOM SYMBOLIQUE CONTRAINTE_EQUI2_2D',),);\n",plieu,pchamp);
5129 if (coderesu[7]==
'1')
5131 fprintf(in,
"\n# ENERGIE DE DEFORMATION PAR ELEMENT A DES PARTIR DES DEPLACEMENTS\n");
5132 if (avec3d) fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='EPOT_ELEM',SOUS_TITRE='CHAMP PAR ELEMENT CONSTANT SUR ELEMENT DE NOM SYMBOLIQUE ENERGIE',),);\n");
5133 else fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='EPOT_ELEM',SOUS_TITRE='CHAMP PAR ELEMENT CONSTANT SUR ELEMENT DE NOM SYMBOLIQUE ENERGIE_2D',),);\n");
5134 if (!desactiveerreur)
5136 if (avec3d) fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='ERZ1_ELEM',SOUS_TITRE='CHAMP PAR ELEMENT CONSTANT SUR ELEMENT DE NOM SYMBOLIQUE ERREUR',),);\n");
5137 else fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='ERZ1_ELEM',SOUS_TITRE='CHAMP PAR ELEMENT CONSTANT SUR ELEMENT DE NOM SYMBOLIQUE ERREUR_2D',),);\n");
5149 fprintf(in,
"\n# IMPRESSION DES RESULTATS------------------------------------------------------\n");
5151 if (coderesu[3]==
'1')
5153 fprintf(in,
"\n# DEPLACEMENTS\n");
5154 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='DEPL', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE DEPL',),);\n");
5155 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='REAC_NODA', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE FORCE_REACTION',),);\n");
5157 if (coderesu[4]==
'1')
5159 fprintf(in,
"\n# CONTRAINTES AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
5160 if (coderesu[1]==
'1')
5162 fprintf(in,
"REUINFCO=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO', NUME_COUCHE=1, NIVE_COUCHE='INF',),);\n");
5163 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=REUINFCO, NOM_CHAM='SIEF_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_SIGMA_INF',),);\n");
5165 if (coderesu[0]==
'1')
5167 fprintf(in,
"RESMOYCO=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO', NUME_COUCHE=1, NIVE_COUCHE='MOY',),);\n");
5168 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESMOYCO, NOM_CHAM='SIEF_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_SIGMA_MOY',),);\n");
5170 if (coderesu[2]==
'1')
5172 fprintf(in,
"RESSUPCO=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO', NUME_COUCHE=1, NIVE_COUCHE='SUP',),);\n");
5173 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESSUPCO, NOM_CHAM='SIEF_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_SIGMA_SUP',),);\n");
5176 if (coderesu[5]==
'1')
5178 fprintf(in,
"\n# DEFORMATIONS AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
5179 if (coderesu[1]==
'1')
5181 fprintf(in,
"RESINFDE=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='EPSI_ELNO', NUME_COUCHE=1, NIVE_COUCHE='INF',),);\n");
5182 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESINFDE, NOM_CHAM='EPSI_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_EPS_INF',),);\n");
5184 if (coderesu[0]==
'1')
5186 fprintf(in,
"RESMOYDE=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='EPSI_ELNO', NUME_COUCHE=1, NIVE_COUCHE='MOY',),);\n");
5187 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESMOYDE, NOM_CHAM='EPSI_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_EPS_MOY',),);\n");
5189 if (coderesu[2]==
'1')
5191 fprintf(in,
"RESSUPDE=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='EPSI_ELNO', NUME_COUCHE=1, NIVE_COUCHE='SUP',),);\n");
5192 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESSUPDE, NOM_CHAM='EPSI_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_EPS_SUP',),);\n");
5195 if (coderesu[6]==
'1')
5197 fprintf(in,
"\n# CONTRAINTES DE VON MISES AUX NOEUDS A PARTIR DES CONTRAINTES AUX NOEUDS\n");
5198 if (coderesu[1]==
'1')
5200 fprintf(in,
"RESINFCQ=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO', NUME_COUCHE=1, NIVE_COUCHE='INF',),);\n");
5201 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESINFCQ, NOM_CHAM='SIEQ_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE CONTRAINTE_EQUI2_INF',),);\n");
5203 if (coderesu[0]==
'1')
5205 fprintf(in,
"RESMOYCQ=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO', NUME_COUCHE=1, NIVE_COUCHE='MOY',),);\n");
5206 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESMOYCQ, NOM_CHAM='SIEQ_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE CONTRAINTE_EQUI2_MOY',),);\n");
5208 if (coderesu[0]==
'1')
5210 fprintf(in,
"RESSUPCQ=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO', NUME_COUCHE=1, NIVE_COUCHE='SUP',),);\n");
5211 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESSUPCQ, NOM_CHAM='SIEQ_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE CONTRAINTE_EQUI2_SUP',),);\n");
5214 if (coderesu[7]==
'1')
5216 fprintf(in,
"\n# ENERGIE DE DEFORMATION PAR ELEMENT A DES PARTIR DES DEPLACEMENTS\n");
5217 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='EPOT_ELEM',SOUS_TITRE='CHAMP PAR ELEMENT CONSTANT SUR ELEMENT DE NOM SYMBOLIQUE ENERGIE',),);\n");
5225 fprintf(in,
"\n# PROJECTION DES RESULTATS------------------------------------------------------\n");
5227 if (coderesu[3]==
'1')
5229 fprintf(in,
"\n# PROJECTION DEPLACEMENTS \n");
5230 fprintf(in,
"RESU1=PROJ_CHAMP(RESULTAT=RESU,MODELE_1=MODCAL,MODELE_2=MODORI,);\n\n");
5232 if (coderesu[5]==
'1')
5234 fprintf(in,
"\n# PROJECTION DEFORMATIONS AUX NOEUDS \n");
5235 if (coderesu[0]==
'1')
5237 fprintf(in,
"RESMOYDE=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='EPSI_ELNO', NUME_COUCHE=1, NIVE_COUCHE='MOY',),);\n");
5238 fprintf(in,
"RESMOYDE=CALC_CHAMP(reuse=RESMOYDE, RESULTAT=RESMOYDE, TOUT='OUI', DEFORMATION='EPSI_NOEU',);\n");
5239 fprintf(in,
"RESUMOY1=PROJ_CHAMP(RESULTAT=RESMOYDE,NOM_CHAM='EPSI_NOEU',MODELE_1=MODCAL,MODELE_2=MODORI,);\n");
5241 if (coderesu[1]==
'1')
5243 fprintf(in,
"RESINFDE=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='EPSI_ELNO', NUME_COUCHE=1, NIVE_COUCHE='INF',),);\n");
5244 fprintf(in,
"RESINFDE=CALC_CHAMP(reuse=RESINFDE, RESULTAT=RESINFDE, TOUT='OUI', DEFORMATION='EPSI_NOEU',);\n");
5245 fprintf(in,
"RESUINF1=PROJ_CHAMP(RESULTAT=RESINFDE,NOM_CHAM='EPSI_NOEU',MODELE_1=MODCAL,MODELE_2=MODORI,);\n");
5247 if (coderesu[2]==
'1')
5249 fprintf(in,
"RESSUPDE=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='EPSI_ELNO', NUME_COUCHE=1, NIVE_COUCHE='SUP',),);\n");
5250 fprintf(in,
"RESSUPDE=CALC_CHAMP(reuse=RESSUPDE, RESULTAT=RESSUPDE, TOUT='OUI', DEFORMATION='EPSI_NOEU',);\n");
5251 fprintf(in,
"RESUSUP1=PROJ_CHAMP(RESULTAT=RESSUPDE,NOM_CHAM='EPSI_NOEU',MODELE_1=MODCAL,MODELE_2=MODORI,);\n");
5254 if (coderesu[4]==
'1')
5256 fprintf(in,
"\n# PROJECTION DES CONTRAINTES AUX NOEUDS \n");
5257 if (coderesu[0]==
'1')
5259 fprintf(in,
"RESMOYCO=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO', NUME_COUCHE=1, NIVE_COUCHE='MOY',),);\n");
5260 fprintf(in,
"RESMOYCO=CALC_CHAMP(reuse=RESMOYCO, RESULTAT=RESMOYCO, TOUT='OUI', CONTRAINTE='SIEF_NOEU',);\n");
5261 fprintf(in,
"RESUMOY2=PROJ_CHAMP(RESULTAT=RESMOYCO,NOM_CHAM='SIEF_NOEU',MODELE_1=MODCAL,MODELE_2=MODORI,);\n");
5263 if (coderesu[1]==
'1')
5265 fprintf(in,
"RESINFCO=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO', NUME_COUCHE=1, NIVE_COUCHE='INF',),);\n");
5266 fprintf(in,
"RESINFCO=CALC_CHAMP(reuse=RESINFCO, RESULTAT=RESINFCO, TOUT='OUI', CONTRAINTE='SIEF_NOEU',);\n");
5267 fprintf(in,
"RESUINF2=PROJ_CHAMP(RESULTAT=RESINFCO,NOM_CHAM='SIEF_NOEU',MODELE_1=MODCAL,MODELE_2=MODORI,);\n");
5269 if (coderesu[2]==
'1')
5271 fprintf(in,
"RESSUPCO=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO', NUME_COUCHE=1, NIVE_COUCHE='SUP',),);\n");
5272 fprintf(in,
"RESSUPCO=CALC_CHAMP(reuse=RESSUPCO, RESULTAT=RESSUPCO, TOUT='OUI', CONTRAINTE='SIEF_NOEU',);\n");
5273 fprintf(in,
"RESUSUP2=PROJ_CHAMP(RESULTAT=RESSUPCO,NOM_CHAM='SIEF_NOEU',MODELE_1=MODCAL,MODELE_2=MODORI,);\n");
5276 if (coderesu[6]==
'1')
5278 fprintf(in,
"\n# PROJECTION DES CONTRAINTES EQUIVALENTES AUX NOEUDS \n");
5279 if (coderesu[0]==
'1')
5281 fprintf(in,
"RESMOYCQ=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO', NUME_COUCHE=1, NIVE_COUCHE='MOY',),);\n");
5282 fprintf(in,
"RESMOYCQ=CALC_CHAMP(reuse=RESMOYCQ, RESULTAT=RESMOYCQ, TOUT='OUI', CRITERES='SIEQ_NOEU',);\n");
5283 fprintf(in,
"RESUMOY3=PROJ_CHAMP(RESULTAT=RESMOYCQ,NOM_CHAM='SIEQ_NOEU',MODELE_1=MODCAL,MODELE_2=MODORI,);\n");
5285 if (coderesu[1]==
'1')
5287 fprintf(in,
"RESINFCQ=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO', NUME_COUCHE=1, NIVE_COUCHE='INF',),);\n");
5288 fprintf(in,
"RESINFCQ=CALC_CHAMP(reuse=RESINFCQ, RESULTAT=RESINFCQ, TOUT='OUI', CRITERES='SIEQ_NOEU',);\n");
5289 fprintf(in,
"RESUINF3=PROJ_CHAMP(RESULTAT=RESINFCQ,NOM_CHAM='SIEQ_NOEU',MODELE_1=MODCAL,MODELE_2=MODORI,);\n");
5291 if (coderesu[2]==
'1')
5293 fprintf(in,
"RESSUPCQ=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO', NUME_COUCHE=1, NIVE_COUCHE='SUP',),);\n");
5294 fprintf(in,
"RESSUPCQ=CALC_CHAMP(reuse=RESSUPCQ, RESULTAT=RESSUPCQ, TOUT='OUI', CRITERES='SIEQ_NOEU',);\n");
5295 fprintf(in,
"RESUSUP3=PROJ_CHAMP(RESULTAT=RESSUPCQ,NOM_CHAM='SIEQ_NOEU',MODELE_1=MODCAL,MODELE_2=MODORI,);\n");
5298 if (coderesu[7]==
'1')
5300 fprintf(in,
"\n# PROJECTION ENERGIE DE DEFORMATION \n");
5301 fprintf(in,
"RESU2=PROJ_CHAMP(METHODE='COLLOCATION',RESULTAT=RESU,NOM_CHAM='EPOT_ELEM',TYPE_CHAM='NOEU',MODELE_1=MODCAL,MODELE_2=MODORI,);\n\n");
5304 fprintf(in,
"\n# IMPRESSION DES RESULTATS------------------------------------------------------\n");
5306 if (coderesu[3]==
'1')
5308 fprintf(in,
"\n# DEPLACEMENTS\n");
5309 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU1, NOM_CHAM='DEPL', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE DEPL',),);\n");
5310 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU1, NOM_CHAM='REAC_NODA', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE FORCE_REACTION',),);\n");
5312 if (coderesu[5]==
'1')
5314 fprintf(in,
"\n# DEFORMATIONS AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
5315 if (coderesu[1]==
'1') fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESUINF1, NOM_CHAM='EPSI_NOEU', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_EPS_INF',),);\n");
5316 if (coderesu[0]==
'1') fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESUMOY1, NOM_CHAM='EPSI_NOEU', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_EPS_MOY',),);\n");
5317 if (coderesu[2]==
'1') fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESUSUP1, NOM_CHAM='EPSI_NOEU', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_EPS_SUP',),);\n");
5319 if (coderesu[4]==
'1')
5321 fprintf(in,
"\n# CONTRAINTES AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
5322 if (coderesu[1]==
'1') fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESUINF2, NOM_CHAM='SIEF_NOEU', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_SIGMA_INF',),);\n");
5323 if (coderesu[0]==
'1') fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESUMOY2, NOM_CHAM='SIEF_NOEU', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_SIGMA_MOY',),);\n");
5324 if (coderesu[2]==
'1') fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESUSUP2, NOM_CHAM='SIEF_NOEU', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_SIGMA_SUP',),);\n");
5326 if (coderesu[6]==
'1')
5328 fprintf(in,
"\n# CONTRAINTES DE VON MISES AUX NOEUDS A PARTIR DES CONTRAINTES AUX NOEUDS\n");
5329 if (coderesu[1]==
'1') fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESUINF3, NOM_CHAM='SIEQ_NOEU', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE CONTRAINTE_EQUI2_INF',),);\n");
5330 if (coderesu[0]==
'1') fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESUMOY3, NOM_CHAM='SIEQ_NOEU', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE CONTRAINTE_EQUI2_MOY',),);\n");
5331 if (coderesu[2]==
'1') fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESUSUP3, NOM_CHAM='SIEQ_NOEU', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE CONTRAINTE_EQUI2_SUP',),);\n");
5333 if (coderesu[7]==
'1')
5335 fprintf(in,
"\n# ENERGIE DE DEFORMATION \n");
5336 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='EPOT_ELEM',SOUS_TITRE='CHAMP PAR ELEMENT CONSTANT SUR ELEMENT DE NOM SYMBOLIQUE ENERGIE',),);\n");
5344 fprintf(in,
"\n# IMPRESSION DES RESULTATS------------------------------------------------------\n");
5346 fprintf(in,
"# POST-TRAITMENTS--------------------------------------------------------------\n\n");
5349 fprintf(in,
"IMPR_RESU(MODELE=MODCAL,FORMAT='RESULTAT', RESU=_F(RESULTAT=TEMP,NOM_CHAM='TEMP',SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE TEMPERATURE',LIST_INST = lst_arch),);");
5352 fprintf(in,
"IMPR_RESU(MODELE=MODCAL,FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=TEMP,NOM_CHAM='TEMP',SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE TEMPERATURE'),);\n");
5353 fprintf(in,
"IMPR_RESU(MODELE=MODCAL,FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=FLUX_C,NOM_CHAM='FLUX_ELGA',SOUS_TITRE='CHAMP PAR ELEMENT AUX POINTS DE GAUSS DE NOM SYMBOLIQUE FLUX'),);\n");
5357 void MG_EXPORT::aster_ecrire_comm_statique_non_lineaire(
double version,FILE* in,
MG_GEOMETRIE* geo,
bool vol,
bool coque,
bool poutre,
bool desactiveerreur,std::vector< std::string >& chargepresente,
char* coderesu, std::string relation, std::string deformation)
5360 double DEBUT,JUSQU_A;
5362 int INCR_MAT_TAN_PRED,IT_MAT_TAN_COH;
5368 fprintf(in,
"\n# Liste d'instants de calculs------------------------------------------------\n");
5369 fprintf(in,
"lst_reel=DEFI_LIST_REEL(DEBUT=%lf,INTERVALLE=(_F(JUSQU_A=%lf,NOMBRE=%d,),",DEBUT,JUSQU_A,PAS);
5375 fprintf(in,
"_F(JUSQU_A=%lf,NOMBRE=%d,),",JUSQU_A+palier*1.0/PAS*(JUSQU_A-DEBUT),palier);
5376 fprintf(in,
"_F(JUSQU_A=%lf,NOMBRE=%d,),",JUSQU_A+(palier+decharge)*1.0/PAS*(JUSQU_A-DEBUT),decharge);
5379 fprintf(in,
");\n\n");
5383 fprintf(in,
"lst_inst=DEFI_LIST_INST(DEFI_LIST= _F(LIST_INST = lst_reel), ECHEC = _F(SUBD_NIVEAU =%d , SUBD_PAS=%d ),);\n\n",niv,passub);
5385 fprintf(in,
"lst_inst=DEFI_LIST_INST(DEFI_LIST= _F(LIST_INST = lst_reel),);\n\n");
5387 std::string str_archive;
5388 std::string str_inst_calc_champ;
5389 if(NB_PAS_ARCHIVE!=0)
5391 fprintf(in,
"\n# Liste d'instants d'archivage------------------------------------------------\n");
5392 fprintf(in,
"lst_arch=DEFI_LIST_REEL(DEBUT=%lf,INTERVALLE=(_F(JUSQU_A=%lf,NOMBRE=%d,),",DEBUT,JUSQU_A,NB_PAS_ARCHIVE);
5394 fprintf(in,
"_F(JUSQU_A=%lf,NOMBRE=1,),",JUSQU_A+(palier+decharge)*1.0/PAS*(JUSQU_A-DEBUT));
5395 fprintf(in,
"),);\n\n");
5396 str_archive =
"ARCHIVAGE = _F(LIST_INST = lst_arch,),";
5397 str_inst_calc_champ =
"LIST_INST = lst_arch";
5401 char chr_jusqu_a[100]; sprintf(chr_jusqu_a,
"%lf",JUSQU_A+(palier+decharge)*1.0/PAS*(JUSQU_A-DEBUT));
5402 std::string str_jusqu_a = chr_jusqu_a;
5403 str_archive =
"ARCHIVAGE = _F(INST = " + str_jusqu_a +
",),";
5404 str_inst_calc_champ =
"INST = " + str_jusqu_a;
5406 fprintf(in,
"# CALCUL STATIQUE NON LINEAIRE ELASTIQUE--------------------------------------------------------------\n\n");
5407 std::string comportement=
"COMP_INCR";
5408 if (version>12) comportement=
"COMPORTEMENT";
5411 "RESU=STAT_NON_LINE(MODELE=MODCAL,\n\
5413 CHAM_MATER=CHMAT,\n\
5414 %s =_F(RELATION='%s', DEFORMATION ='%s'),\n\
5415 INCREMENT =_F(LIST_INST=lst_inst,),\n\
5416 NEWTON=_F(REAC_INCR=%d,REAC_ITER=%d,),\n",
aster_ecrire_comm_solveur().c_str(),comportement.c_str(),relation.c_str(),deformation.c_str(),INCR_MAT_TAN_PRED,IT_MAT_TAN_COH);
5417 if (coque) fprintf(in,
" CARA_ELEM=CARA_COQ,\n");
5418 fprintf(in,
" EXCIT=(");
5420 "_F(CHARGE=%s,),",chargepresente[0].c_str());
5421 for (
int i=1;i<chargepresente.size();i++)
5423 "\n _F(CHARGE=%s,),",chargepresente[i].c_str());
5426 " %s\n",str_archive.c_str());
5427 fprintf(in,
");\n\n");
5429 fprintf(in,
"# REACTION NODALE\n");
5430 if (coque) fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU,RESULTAT=RESU,TOUT='OUI', CARA_ELEM=CARA_COQ, FORCE='REAC_NODA',%s,);",str_inst_calc_champ.c_str());
5431 else fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU,RESULTAT=RESU,TOUT='OUI', FORCE='REAC_NODA',%s,);",str_inst_calc_champ.c_str());
5433 std::string lieu =
"NOEU";
5435 if (val==1) lieu=
"ELNO";
5436 if (val==2) lieu=
"ELGA";
5437 if (coque) lieu=
"ELNO";
5438 char* plieu=(
char*)lieu.c_str();
5439 if ((coderesu)[5]==
'1')
5441 fprintf(in,
"\n# DEFORMATIONS AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
5442 if (coque) fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU, RESULTAT=RESU, TOUT='OUI', CARA_ELEM=CARA_COQ, DEFORMATION='EPSI_%s',%s,);\n",plieu,str_inst_calc_champ.c_str());
5443 else fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU, RESULTAT=RESU, TOUT='OUI', DEFORMATION='EPSI_%s',%s,);\n",plieu,str_inst_calc_champ.c_str());
5445 if ((coderesu[4]==
'1') || (coderesu[6]==
'1'))
5449 fprintf(in,
"\n# CONTRAINTES AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
5450 if (coque) fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU, RESULTAT=RESU, TOUT='OUI', CARA_ELEM=CARA_COQ, CONTRAINTE='SIEF_%s',%s,);\n",plieu,str_inst_calc_champ.c_str());
5451 else fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU, RESULTAT=RESU, TOUT='OUI', CONTRAINTE='SIEF_%s',%s,);\n",plieu,str_inst_calc_champ.c_str());
5454 if (coderesu[6]==
'1')
5456 fprintf(in,
"\n# CONTRAINTES DE VON MISES AUX NOEUDS A PARTIR DES CONTRAINTES AUX NOEUDS\n");
5457 if (coque) fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU, RESULTAT=RESU, TOUT='OUI', CARA_ELEM=CARA_COQ, CRITERES='SIEQ_%s',%s,);\n",plieu,str_inst_calc_champ.c_str());
5458 else fprintf(in,
"RESU=CALC_CHAMP(reuse=RESU, RESULTAT=RESU, TOUT='OUI', CRITERES='SIEQ_%s',%s,);\n",plieu,str_inst_calc_champ.c_str());
5470 std::string lieu =
"NOEU";
5471 std::string champ=
"AUX NOEUDS";
5476 champ=
"PAR ELEMENT AUX NOEUDS" ;
5481 champ=
"PAR ELEMENT AUX POINTS DE GAUSS" ;
5483 char* plieu=(
char*)lieu.c_str();
5484 char* pchamp=(
char*)champ.c_str();
5485 std::string archivage;
5494 char chr_jusqu_a[100]; sprintf(chr_jusqu_a,
"%lf",JUSQU_A+(palier+decharge)*1.0/PAS*(JUSQU_A-DEBUT));
5495 std::string str_jusqu_a = chr_jusqu_a;
5496 archivage =
"INST = " + str_jusqu_a;
5498 fprintf(in,
"\n# IMPRESSION DES RESULTATS------------------------------------------------------\n");
5499 if (coderesu[3]==
'1')
5501 fprintf(in,
"\n# DEPLACEMENTS\n");
5502 if (avec3d) fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='DEPL', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE DEPL',%s,),);\n",archivage.c_str());
5503 else fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='DEPL', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE DEPL_2D',%s,),);\n",archivage.c_str());
5504 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='REAC_NODA', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE FORCE_REACTION',%s,),);\n",archivage.c_str());
5506 if (coderesu[5]==
'1')
5508 fprintf(in,
"\n# DEFORMATIONS AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
5509 if (avec3d) fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='EPSI_%s',SOUS_TITRE='CHAMP %s DE NOM SYMBOLIQUE TENSEUR_EPS',%s,),);\n",plieu,pchamp,archivage.c_str());
5510 else fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='EPSI_%s',SOUS_TITRE='CHAMP %s DE NOM SYMBOLIQUE TENSEUR_EPS_2D',%s,),);\n",plieu,pchamp,archivage.c_str());
5512 if (coderesu[4]==
'1')
5514 fprintf(in,
"\n# CONTRAINTES AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
5515 if (avec3d) fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='SIEF_%s',SOUS_TITRE='CHAMP %s DE NOM SYMBOLIQUE TENSEUR_SIGMA',%s,),);\n",plieu,pchamp,archivage.c_str());
5516 else fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='SIEF_%s',SOUS_TITRE='CHAMP %s DE NOM SYMBOLIQUE TENSEUR_SIGMA_2D',%s,),);\n",plieu,pchamp,archivage.c_str());
5518 if (coderesu[6]==
'1')
5520 fprintf(in,
"\n# CONTRAINTES DE VON MISES AUX NOEUDS A PARTIR DES CONTRAINTES AUX NOEUDS\n");
5521 if (avec3d) fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='SIEQ_%s',SOUS_TITRE='CHAMP %s DE NOM SYMBOLIQUE CONTRAINTE_EQUI2',%s,),);\n",plieu,pchamp,archivage.c_str());
5522 else fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='SIEQ_%s',SOUS_TITRE='CHAMP %s DE NOM SYMBOLIQUE CONTRAINTE_EQUI2_2D',%s,),);\n",plieu,pchamp,archivage.c_str());
5528 std::string archivage;
5538 char chr_jusqu_a[100]; sprintf(chr_jusqu_a,
"%lf",JUSQU_A+(palier+decharge)*1.0/PAS*(JUSQU_A-DEBUT));
5539 std::string str_jusqu_a = chr_jusqu_a;
5540 archivage =
"INST = " + str_jusqu_a;
5542 fprintf(in,
"\n# IMPRESSION DES RESULTATS------------------------------------------------------\n");
5544 if (coderesu[3]==
'1')
5546 fprintf(in,
"\n# DEPLACEMENTS\n");
5547 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='DEPL', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE DEPL',%s,),);\n",archivage.c_str());
5548 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESU, NOM_CHAM='REAC_NODA', SOUS_TITRE='CHAMP AUX NOEUDS DE NOM SYMBOLIQUE FORCE_REACTION',%s,),);\n",archivage.c_str());
5550 if (coderesu[4]==
'1')
5552 fprintf(in,
"\n# CONTRAINTES AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
5553 if (coderesu[1]==
'1')
5555 fprintf(in,
"REUINFCO=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO', NUME_COUCHE=1, NIVE_COUCHE='INF',),);\n");
5556 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=REUINFCO, NOM_CHAM='SIEF_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_SIGMA_INF',%s,),);\n",archivage.c_str());
5558 if (coderesu[0]==
'1')
5560 fprintf(in,
"RESMOYCO=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO', NUME_COUCHE=1, NIVE_COUCHE='MOY',),);\n");
5561 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESMOYCO, NOM_CHAM='SIEF_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_SIGMA_MOY',%s,),);\n",archivage.c_str());
5563 if (coderesu[2]==
'1')
5565 fprintf(in,
"RESSUPCO=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO', NUME_COUCHE=1, NIVE_COUCHE='SUP',),);\n");
5566 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESSUPCO, NOM_CHAM='SIEF_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_SIGMA_SUP',%s,),);\n",archivage.c_str());
5569 if (coderesu[5]==
'1')
5571 fprintf(in,
"\n# DEFORMATIONS AUX NOEUDS A PARTIR DES DEPLACEMENTS\n");
5572 if (coderesu[1]==
'1')
5574 fprintf(in,
"RESINFDE=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='EPSI_ELNO', NUME_COUCHE=1, NIVE_COUCHE='INF',),);\n");
5575 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESINFDE, NOM_CHAM='EPSI_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_EPS_INF',%s,),);\n",archivage.c_str());
5577 if (coderesu[0]==
'1')
5579 fprintf(in,
"RESMOYDE=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='EPSI_ELNO', NUME_COUCHE=1, NIVE_COUCHE='MOY',),);\n");
5580 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESMOYDE, NOM_CHAM='EPSI_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_EPS_MOY',%s,),);\n",archivage.c_str());
5582 if (coderesu[2]==
'1')
5584 fprintf(in,
"RESSUPDE=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='EPSI_ELNO', NUME_COUCHE=1, NIVE_COUCHE='SUP',),);\n");
5585 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESSUPDE, NOM_CHAM='EPSI_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE TENSEUR_EPS_SUP',%s,),);\n",archivage.c_str());
5588 if (coderesu[6]==
'1')
5590 fprintf(in,
"\n# CONTRAINTES DE VON MISES AUX NOEUDS A PARTIR DES CONTRAINTES AUX NOEUDS\n");
5591 if (coderesu[1]==
'1')
5593 fprintf(in,
"RESINFCQ=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO', NUME_COUCHE=1, NIVE_COUCHE='INF',),);\n");
5594 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESINFCQ, NOM_CHAM='SIEQ_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE CONTRAINTE_EQUI2_INF',%s,),);\n",archivage.c_str());
5596 if (coderesu[0]==
'1')
5598 fprintf(in,
"RESMOYCQ=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO', NUME_COUCHE=1, NIVE_COUCHE='MOY',),);\n");
5599 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESMOYCQ, NOM_CHAM='SIEQ_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE CONTRAINTE_EQUI2_MOY',%s,),);\n",archivage.c_str());
5601 if (coderesu[0]==
'1')
5603 fprintf(in,
"RESSUPCQ=POST_CHAMP(RESULTAT=RESU, TOUT_ORDRE='OUI', EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO', NUME_COUCHE=1, NIVE_COUCHE='SUP',),);\n");
5604 fprintf(in,
"IMPR_RESU(FORMAT='RESULTAT', UNITE=8, RESU=_F(RESULTAT=RESSUPCQ, NOM_CHAM='SIEQ_ELNO', SOUS_TITRE='CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE CONTRAINTE_EQUI2_SUP',%s,),);\n",archivage.c_str());
5607 if (coderesu[7]==
'1')
5630 char chr_nom_fonction[8];
5631 sprintf(chr_nom_fonction,
"%d",(
int)val_CM);
5632 std::string str_nom_fonction = chr_nom_fonction;
5633 str_nom_fonction =
"cm" + str_nom_fonction;
5635 fprintf(in,
"\%s = DEFI_FONCTION(NOM_PARA = 'EPSI',\n\
5636 NOM_RESU = 'SIGM',\n\
5637 INTERPOL = 'LIN',\n\
5638 PROL_DROITE = 'LINEAIRE',\n\
5639 PROL_GAUCHE = 'CONSTANT',\n\
5640 VALE = (",str_nom_fonction.c_str());
5643 fprintf(in,
"%lf,%lf,\n",coo[0],coo[1]);
5647 fprintf(in,
" %lf,%lf,\n",coo[0],coo[1]);
5650 fprintf(in,
" %lf,%lf,),);\n\n",coo[0],coo[1]);
5665 char chr_nom_fonction[8];
5666 sprintf(chr_nom_fonction,
"%d",(
int)val_Cond);
5667 std::string str_nom_fonction = chr_nom_fonction;
5669 fprintf(in,
"F%s = DEFI_FONCTION(NOM_PARA = 'TEMP',\n\
5670 NOM_RESU = 'LAMBDA',\n\
5671 INTERPOL = 'LIN',\n\
5672 PROL_DROITE = 'LINEAIRE',\n\
5673 PROL_GAUCHE = 'CONSTANT',\n\
5674 VALE = (",str_nom_fonction.c_str());
5678 fprintf(in,
"%le,%le,\n",col[0],corr*col[1]);
5682 fprintf(in,
" %le,%le,\n",col[0],corr*col[1]);
5685 fprintf(in,
" %le,%le,),);\n\n",col[0],corr*col[1]);
5696 sprintf(valchar,
"%le",val);
5697 std::string valstr=valchar;
5698 std::string chaine=ccf +
" = " + valstr +
",";
5704 std::string chaine = ccf +
" = " + nom_fonction +
",";
5713 sprintf(idchar,
"%ld",
id);
5714 std::string chaine = prefixe+idchar;
5720 std::string idbase=ot.
get_base(
id,base);
5721 std::string chaine = prefixe+idbase;
5729 char char_inst_ini[100], char_inst_fin[100],char_val_ini[100],char_val_fin[100];
5730 std::string str_inst_ini, str_inst_fin, str_val_ini, str_val_fin;
5731 sprintf(char_inst_ini,
"%le",inst_ini); str_inst_ini = char_inst_ini;
5732 sprintf(char_inst_fin,
"%le",inst_fin); str_inst_fin = char_inst_fin;
5733 sprintf(char_val_ini,
"%le",val_ini); str_val_ini = char_val_ini;
5734 sprintf(char_val_fin,
"%le",val_fin); str_val_fin = char_val_fin;
5735 chaine = nom_fonction +
"=" +
5736 " DEFI_FONCTION(NOM_PARA='INST', \n " +
5737 "VALE = ("+ str_inst_ini +
"," + str_val_ini+
"," + str_inst_fin +
"," + str_val_fin +
",),\n " +
5738 "PROL_GAUCHE = 'CONSTANT', \n PROL_DROITE = 'CONSTANT',);\n";
5745 chaine = nom_fonction +
"=" +
"FORMULE(NOM_PARA = (";
5757 char char_inst_ini[100], char_inst_fin[100],char_val_ini[100],char_val_fin[100];
5758 std::string str_inst_ini, str_inst_fin, str_val_ini, str_val_fin;
5759 sprintf(char_inst_ini,
"%le",inst_ini); str_inst_ini = char_inst_ini;
5760 sprintf(char_inst_fin,
"%le",inst_fin); str_inst_fin = char_inst_fin;
5761 sprintf(char_val_ini,
"%le",val_ini); str_val_ini = char_val_ini;
5762 sprintf(char_val_fin,
"%le",val_fin); str_val_fin = char_val_fin;
5764 chaine = nom_fonction +
" = DEFI_FONCTION(NOM_PARA = 'INST',INTERPOL = 'LIN',PROL_DROITE = 'LINEAIRE',PROL_GAUCHE = 'LINEAIRE',\n VALE = (" + str_inst_ini +
"," + str_val_ini +
"," + str_inst_fin +
"," + str_val_fin;
5770 double DEBUT,JUSQU_A;
5774 char char_inst_plus[100], char_val_plus[100];
5775 std::string str_inst_plus, str_val_plus;
5778 sprintf(char_inst_plus,
"%le",inst_fin+palier*1.0/PAS*(JUSQU_A-DEBUT)); str_inst_plus = char_inst_plus;
5779 str_val_plus = str_val_fin;
5780 chaine=chaine+
","+str_inst_plus+
","+str_val_plus;
5782 sprintf(char_inst_plus,
"%le",inst_fin+(palier+decharge)*1.0/PAS*(JUSQU_A-DEBUT)); str_inst_plus = char_inst_plus;
5783 sprintf(char_val_plus,
"0"); str_val_plus = char_val_plus;
5784 chaine=chaine+
","+str_inst_plus+
","+str_val_plus;
5786 chaine=chaine+
"),);\n";
5793 char char_inst_ini[100], char_inst_fin[100],char_val_ini[100],char_val_fin[100];
5794 std::string str_inst_ini, str_inst_fin, str_val_ini, str_val_fin;
5795 sprintf(char_inst_ini,
"%le",inst_ini); str_inst_ini = char_inst_ini;
5796 sprintf(char_inst_fin,
"%le",inst_fin); str_inst_fin = char_inst_fin;
5797 chaine = nom_fonction +
"=" +
"FORMULE(NOM_PARA = (";
5803 chaine +=
"), VALE = 'INST*(("+ele->
get_formule_ccf(num)+
")/("+str_inst_fin+
"-"+str_inst_ini+
"))');\n";
5814 if(formulation==
'N')
5824 if(fabs(valeur_ccf)<precision)
5836 else if(formulation==
'F')
5851 else if(formulation==
'I')
5861 std::string solveur=
"SOLVEUR=_F(";
5865 solveur=solveur+
"METHODE='MULT_FRONT',";
5867 if (renum==1) solveur=solveur+
"RENUM='METIS',";
5868 if (renum==2) solveur=solveur+
"RENUM='MD',";
5869 if (renum==3) solveur=solveur+
"RENUM='MDA',";
5873 solveur=solveur+
"METHODE='LDLT',";
5875 if (renum==1) solveur=solveur+
"RENUM='RCMK',";
5876 if (renum==2) solveur=solveur+
"RENUM='SANS',";
5880 solveur=solveur+
"METHODE='MUMPS',";
5882 if (renum==1) solveur=solveur+
"RENUM='AUTO',";
5883 if (renum==2) solveur=solveur+
"RENUM='AMD',";
5884 if (renum==3) solveur=solveur+
"RENUM='AMF',";
5885 if (renum==4) solveur=solveur+
"RENUM='QAMD',";
5886 if (renum==5) solveur=solveur+
"RENUM='PORD',";
5887 if (renum==6) solveur=solveur+
"RENUM='METIS',";
5888 if (renum==7) solveur=solveur+
"RENUM='SCOTCH',";
5890 if (gestmem==1) solveur=solveur+
"GESTION_MEMOIRE='AUTO',";
5891 if (gestmem==2) solveur=solveur+
"GESTION_MEMOIRE='IN_CORE',";
5892 if (gestmem==3) solveur=solveur+
"GESTION_MEMOIRE='OUT_OF_CORE',";
5893 if (gestmem==4) solveur=solveur+
"GESTION_MEMOIRE='EVAL',";
5897 solveur=solveur+
"METHODE='GCPC',";
5899 if (pre==1) solveur=solveur+
"PRE_COND='LDLT_INC',RENUM='SANS',";
5900 if (pre==2) solveur=solveur+
"PRE_COND='LDLT_INC',RENUM='RCMK',";
5901 if (pre==3) solveur=solveur+
"PRE_COND='LDLT_SP',";
5903 solveur=solveur+
")";
5930 LISTE_MG_TETRA::iterator it4;
5933 int nbtet=lsttetra.
get_nb();
5934 LISTE_MG_HEXA::iterator it42;
5937 int nbhexa=lsthexa.
get_nb();
5938 LISTE_MG_PENTA::iterator it43;
5941 int nbpenta=lstpenta.
get_nb();
5942 LISTE_MG_PYRAMIDE::iterator it44;
5945 int nbpyramide=lstpyramide.
get_nb();
5946 LISTE_MG_TRIANGLE::iterator it3;
5949 if (tri->get_lien_topologie()!=NULL)
5951 if (tri->get_lien_topologie()->get_dimension()==2) lsttriangle.
ajouter(tri);
5955 int nbtri=lsttriangle.
get_nb();
5956 LISTE_MG_QUADRANGLE::iterator it32;
5959 if (quad->get_lien_topologie()!=NULL)
5961 if (quad->get_lien_topologie()->get_dimension()==2) lstquadrangle.
ajouter(quad);
5965 int nbquad=lstquadrangle.
get_nb();
5966 LISTE_MG_SEGMENT::iterator it2;
5969 if (seg->get_lien_topologie()!=NULL)
5971 if (seg->get_lien_topologie()->get_dimension()==1) lstsegment.
ajouter(seg);
5978 LISTE_MG_NOEUD::iterator it;
5981 if (noeud->get_lien_topologie()!=NULL)
5982 if (noeud->get_lien_topologie()->get_dimension()==0) lstnoeud.
ajouter(noeud);
5993 for (
int i=0;i<strlen(version);i++)
5994 if ((version[i]!=
'0') && (version[i]!=
'1') && (version[i]!=
'2') && (version[i]!=
'3') && (version[i]!=
'4') && (version[i]!=
'5') && (version[i]!=
'6') && (version[i]!=
'7') && (version[i]!=
'8') && (version[i]!=
'9') && (version[i]!=
'.'))
5997 sscanf(version,
"%lf",&ver);
6003 std::string fichiermaillage=fichier+
".stl";
6004 FILE* in=fopen(fichiermaillage.c_str(),
"wt");
6005 fprintf(in,
"solid MAGiC\n");
6006 LISTE_MG_TRIANGLE::iterator it;
6009 double *xyz1=tri->get_noeud1()->get_coord();
6010 double *xyz2=tri->get_noeud2()->get_coord();
6011 double *xyz3=tri->get_noeud3()->get_coord();
6016 fprintf(in,
" facet normal %le %le %le\n",nor.
get_x(),nor.
get_y(),nor.
get_z());
6017 fprintf(in,
" outer loop\n");
6018 fprintf(in,
" vertex %le %le %le\n",xyz1[0],xyz1[1],xyz1[2]);
6019 fprintf(in,
" vertex %le %le %le\n",xyz2[0],xyz2[1],xyz2[2]);
6020 fprintf(in,
" vertex %le %le %le\n",xyz3[0],xyz3[1],xyz3[2]);
6021 fprintf(in,
" endloop\n");
6022 fprintf(in,
" endfacet\n");
6024 fprintf(in,
"endsolid MAGiC\n");
6030 std::string fichiermaillage=fichier+
".off";
6031 FILE* in=fopen(fichiermaillage.c_str(),
"wt");
6032 fprintf(in,
"OFF\n");
6035 LISTE_MG_NOEUD::iterator it;
6038 noeud->change_nouveau_numero(i);
6039 double *coord=noeud->get_coord();
6040 fprintf(in,
"%lf %lf %lf\n",coord[0],coord[1],coord[2]);
6043 LISTE_MG_TRIANGLE::iterator itt;
6046 fprintf(in,
"3 %d %d %d\n",tri->get_noeud2()->get_nouveau_numero(),tri->get_noeud1()->get_nouveau_numero(),tri->get_noeud3()->get_nouveau_numero());
6048 LISTE_MG_QUADRANGLE::iterator itq;
6051 fprintf(in,
"4 %d %d %d %d\n",qua->get_noeud1()->get_nouveau_numero(),qua->get_noeud2()->get_nouveau_numero(),qua->get_noeud3()->get_nouveau_numero(),qua->get_noeud4()->get_nouveau_numero());
6061 double x=param.
get(6), y=param.
get(7), z=param.
get(8);
6062 double alpha=0., beta=0., gamma=0.;
6064 if((fabs(x)>precision)||(fabs(y)>precision))
6067 if(fabs(
cos(alpha))>=fabs(
sin(alpha))) beta =
acos(x/
cos(alpha));
6068 else beta =
acos(y/
sin(alpha));
6069 if (z>0.) beta=-beta;
6074 if(z>0.) beta=-M_PI/2.;
6079 sprintf(valchar,
"ANGL_NAUT = (%le,%le,%le)",alpha*180/M_PI,beta*180/M_PI,gamma);
6080 std::string valstr=valchar;
6088 int id_face=face->
get_id();
6091 for (
int i=0;i<nb_face;i++)
6094 int id_face_i=face_i->
get_id();
6099 double cen1[3]={param.
get(0),param.
get(1),param.
get(2)};
6100 double cen2[3]={param_i.
get(0),param_i.
get(1),param_i.
get(2)};
6105 if((vec3.
get_longueur()<precision)&&(fabs(param.
get(9)-param_i.
get(9))<precision)) strlistccf = strlistccf +
"'GMF" + std::to_string(id_face_i) +
"',";
6109 if((fabs((param.
get(0)-param_i.
get(0)))<precision)&&(fabs((param.
get(1)-param_i.
get(1)))<precision)&&(fabs((param.
get(2)-param_i.
get(2)))<precision)&&(fabs((param.
get(3)-param_i.
get(3)))<precision))
6110 strlistccf = strlistccf +
"'GMF" + std::to_string(id_face_i) +
"',";
6119 double facteur_unite = 1.;
6121 std::string fichiermaillage=fichier+
".inp";
6122 FILE* out=fopen(fichiermaillage.c_str(),
"wt");
6124 fprintf(out,
"** Exportation MAGIC->ABAQUS\n");
6125 fprintf(out,
"**=**DEFINITION DES NOEUDS DU MAILLAGE\n");
6126 fprintf(out,
"*NODE,SYSTEM=R\n");
6127 LISTE_FEM_NOEUD::iterator it;
6132 noeud->change_numero(i);
6133 double *coord=noeud->get_coord();
6134 fprintf(out,
"%d,%+0.15E,%+0.15E,%+0.15E\n",noeud->get_numero(),coord[0]*facteur_unite,coord[1]*facteur_unite,coord[2]*facteur_unite);
6138 fprintf(out,
"**==** DEFINITION DES ELEMENTS\n");
6145 LISTE_FEM_ELEMENT3::iterator itele;
6148 if (ele->get_nb_fem_noeud()==4) lstc3d4.
ajouter(ele);
6149 if (ele->get_nb_fem_noeud()==6) lstc3d6.
ajouter(ele);
6150 if (ele->get_nb_fem_noeud()==8) lstc3d8.
ajouter(ele);
6151 if (ele->get_nb_fem_noeud()==10) lstc3d10.
ajouter(ele);
6152 if (ele->get_nb_fem_noeud()==15) lstc3d15.
ajouter(ele);
6153 if (ele->get_nb_fem_noeud()==20) lstc3d20.
ajouter(ele);
6158 fprintf(out,
"*ELEMENT,TYPE=C3D4,ELSET=EF_C3D4\n");
6159 for (
int i=0;i<lstc3d4.
get_nb();i++)
6164 fprintf(out,
"%d,%d,%d,%d,%d,\n",nbele,ele->
get_fem_noeud(0)->
get_numero(),ele->
get_fem_noeud(1)->
get_numero(),ele->
get_fem_noeud(2)->
get_numero(),ele->
get_fem_noeud(3)->
get_numero());
6169 fprintf(out,
"*ELEMENT,TYPE=C3D4,ELSET=EF_C3D6\n");
6170 for (
int i=0;i<lstc3d6.
get_nb();i++)
6175 fprintf(out,
"%d,%d,%d,%d,%d,%d,%d,\n",nbele,ele->
get_fem_noeud(0)->
get_numero(),ele->
get_fem_noeud(1)->
get_numero(),ele->
get_fem_noeud(2)->
get_numero(),ele->
get_fem_noeud(3)->
get_numero(),ele->
get_fem_noeud(4)->
get_numero(),ele->
get_fem_noeud(5)->
get_numero());
6180 fprintf(out,
"*ELEMENT,TYPE=C3D8,ELSET=EF_C3D8\n");
6181 for (
int i=0;i<lstc3d8.
get_nb();i++)
6186 fprintf(out,
"%d,%d,%d,%d,%d,%d,%d,%d,%d,\n",nbele,ele->
get_fem_noeud(0)->
get_numero(),ele->
get_fem_noeud(1)->
get_numero(),ele->
get_fem_noeud(2)->
get_numero(),ele->
get_fem_noeud(3)->
get_numero(),ele->
get_fem_noeud(4)->
get_numero(),ele->
get_fem_noeud(5)->
get_numero(),ele->
get_fem_noeud(6)->
get_numero(),ele->
get_fem_noeud(7)->
get_numero());
6189 if (lstc3d10.
get_nb()!=0)
6191 fprintf(out,
"*ELEMENT,TYPE=C3D10,ELSET=EF_C3D10\n");
6192 for (
int i=0;i<lstc3d10.
get_nb();i++)
6197 fprintf(out,
"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\n",nbele,ele->
get_fem_noeud(0)->
get_numero(),ele->
get_fem_noeud(2)->
get_numero(),ele->
get_fem_noeud(4)->
get_numero(),ele->
get_fem_noeud(9)->
get_numero(),ele->
get_fem_noeud(1)->
get_numero(),ele->
get_fem_noeud(3)->
get_numero(),ele->
get_fem_noeud(5)->
get_numero(),ele->
get_fem_noeud(6)->
get_numero(),ele->
get_fem_noeud(7)->
get_numero(),ele->
get_fem_noeud(8)->
get_numero());
6200 if (lstc3d15.
get_nb()!=0)
6202 fprintf(out,
"*ELEMENT,TYPE=C3D15,ELSET=EF_C3D15\n");
6203 for (
int i=0;i<lstc3d15.
get_nb();i++)
6208 fprintf(out,
"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\n",nbele,ele->
get_fem_noeud(0)->
get_numero(),ele->
get_fem_noeud(2)->
get_numero(),ele->
get_fem_noeud(4)->
get_numero(),ele->
get_fem_noeud(9)->
get_numero(),ele->
get_fem_noeud(11)->
get_numero(),ele->
get_fem_noeud(13)->
get_numero(),ele->
get_fem_noeud(1)->
get_numero(),ele->
get_fem_noeud(3)->
get_numero(),ele->
get_fem_noeud(5)->
get_numero(),ele->
get_fem_noeud(6)->
get_numero(),ele->
get_fem_noeud(7)->
get_numero(),ele->
get_fem_noeud(8)->
get_numero(),ele->
get_fem_noeud(10)->
get_numero(),ele->
get_fem_noeud(12)->
get_numero(),ele->
get_fem_noeud(14)->
get_numero());
6212 if (lstc3d20.
get_nb()!=0)
6214 fprintf(out,
"*ELEMENT,TYPE=C3D20,ELSET=EF_C3D20\n");
6215 for (
int i=0;i<lstc3d20.
get_nb();i++)
6220 fprintf(out,
"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\n%d,%d,%d,%d,%d,\n",nbele,ele->
get_fem_noeud(0)->
get_numero(),ele->
get_fem_noeud(2)->
get_numero(),ele->
get_fem_noeud(4)->
get_numero(),ele->
get_fem_noeud(6)->
get_numero(),ele->
get_fem_noeud(12)->
get_numero(),ele->
get_fem_noeud(14)->
get_numero(),ele->
get_fem_noeud(16)->
get_numero(),ele->
get_fem_noeud(18)->
get_numero(),ele->
get_fem_noeud(1)->
get_numero(),ele->
get_fem_noeud(3)->
get_numero(),ele->
get_fem_noeud(5)->
get_numero(),ele->
get_fem_noeud(7)->
get_numero(),ele->
get_fem_noeud(8)->
get_numero(),ele->
get_fem_noeud(9)->
get_numero(),ele->
get_fem_noeud(10)->
get_numero(),ele->
get_fem_noeud(11)->
get_numero(),ele->
get_fem_noeud(13)->
get_numero(),ele->
get_fem_noeud(15)->
get_numero(),ele->
get_fem_noeud(17)->
get_numero(),ele->
get_fem_noeud(19)->
get_numero());
6227 fprintf(out,
"**_** DEFINITION DES GROUPES D ELEMENTS\n");
6229 LISTE_MG_VOLUME::iterator it;
6233 fprintf(out,
"*ELSET,ELSET=Elt_%04d\n",numvol);
6234 for (
int j=0;j<vol->get_lien_fem_maillage()->get_nb();j++)
6236 fprintf(out,
"%d,",vol->get_lien_fem_maillage()->get(j)->get_numero());
6237 if ( ((j+1)%16==0) && (j<vol->get_lien_fem_maillage()->get_nb()-1) )fprintf(out,
"\n");
6248 double facteur_unite = 1.;
6250 std::string fichiermaillage=fichier+
".mai";
6251 FILE* out=fopen(fichiermaillage.c_str(),
"wt");
6252 LISTE_FEM_NOEUD::iterator it;
6258 noeud->change_numero(i);
6259 double *coord=noeud->get_coord();
6260 fprintf(out,
"%d %lf %lf %lf\n",noeud->get_numero(),coord[0]*facteur_unite,coord[1]*facteur_unite,coord[2]*facteur_unite);
6262 LISTE_FEM_ELEMENT2::iterator itele;
6265 if (ele->get_nb_fem_noeud()==3)
6266 fprintf(out,
"T3 %d %d %d\n",ele->get_fem_noeud(0)->get_numero(),ele->get_fem_noeud(1)->get_numero(),ele->get_fem_noeud(2)->get_numero());
6267 if (ele->get_nb_fem_noeud()==4)
6268 fprintf(out,
"Q4 %d %d %d %d\n",ele->get_fem_noeud(0)->get_numero(),ele->get_fem_noeud(1)->get_numero(),ele->get_fem_noeud(2)->get_numero(),ele->get_fem_noeud(3)->get_numero());
6269 if (ele->get_nb_fem_noeud()==6)
6270 fprintf(out,
"T6 %d %d %d %d %d %d\n",ele->get_fem_noeud(0)->get_numero(),ele->get_fem_noeud(2)->get_numero(),ele->get_fem_noeud(4)->get_numero(),ele->get_fem_noeud(1)->get_numero(),ele->get_fem_noeud(3)->get_numero(),ele->get_fem_noeud(5)->get_numero());
6271 if (ele->get_nb_fem_noeud()==8)
6272 fprintf(out,
"Q8 %d %d %d %d %d %d %d %d\n",ele->get_fem_noeud(0)->get_numero(),ele->get_fem_noeud(2)->get_numero(),ele->get_fem_noeud(4)->get_numero(),ele->get_fem_noeud(6)->get_numero(),ele->get_fem_noeud(1)->get_numero(),ele->get_fem_noeud(3)->get_numero(),ele->get_fem_noeud(5)->get_numero(),ele->get_fem_noeud(7)->get_numero());
6274 LISTE_FEM_ELEMENT3::iterator itele2;
6277 if (ele->get_nb_fem_noeud()==4)
6278 fprintf(out,
"T4 %d %d %d %d\n",ele->get_fem_noeud(0)->get_numero(),ele->get_fem_noeud(1)->get_numero(),ele->get_fem_noeud(2)->get_numero(),ele->get_fem_noeud(3)->get_numero());
6279 if (ele->get_nb_fem_noeud()==8)
6280 fprintf(out,
"H8 %d %d %d %d %d %d %d %d\n",ele->get_fem_noeud(0)->get_numero(),ele->get_fem_noeud(1)->get_numero(),ele->get_fem_noeud(2)->get_numero(),ele->get_fem_noeud(3)->get_numero(),ele->get_fem_noeud(4)->get_numero(),ele->get_fem_noeud(4)->get_numero(),ele->get_fem_noeud(6)->get_numero(),ele->get_fem_noeud(7)->get_numero());
6281 if (ele->get_nb_fem_noeud()==10)
6282 fprintf(out,
"T10 %d %d %d %d %d %d %d %d %d %d\n",ele->get_fem_noeud(0)->get_numero(),ele->get_fem_noeud(2)->get_numero(),ele->get_fem_noeud(4)->get_numero(),ele->get_fem_noeud(1)->get_numero(),ele->get_fem_noeud(3)->get_numero(),ele->get_fem_noeud(5)->get_numero(),ele->get_fem_noeud(6)->get_numero(),ele->get_fem_noeud(7)->get_numero(),ele->get_fem_noeud(8)->get_numero(),ele->get_fem_noeud(9)->get_numero());
6283 if (ele->get_nb_fem_noeud()==20)
6284 fprintf(out,
"H20 %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",ele->get_fem_noeud(0)->get_numero(),ele->get_fem_noeud(2)->get_numero(),ele->get_fem_noeud(4)->get_numero(),ele->get_fem_noeud(6)->get_numero(),ele->get_fem_noeud(12)->get_numero(),ele->get_fem_noeud(14)->get_numero(),ele->get_fem_noeud(16)->get_numero(),ele->get_fem_noeud(18)->get_numero(),ele->get_fem_noeud(1)->get_numero(),ele->get_fem_noeud(7)->get_numero(),ele->get_fem_noeud(8)->get_numero(),ele->get_fem_noeud(3)->get_numero(),ele->get_fem_noeud(9)->get_numero(),ele->get_fem_noeud(5)->get_numero(),ele->get_fem_noeud(10)->get_numero(),ele->get_fem_noeud(11)->get_numero(),ele->get_fem_noeud(13)->get_numero(),ele->get_fem_noeud(19)->get_numero(),ele->get_fem_noeud(15)->get_numero(),ele->get_fem_noeud(17)->get_numero());