- /* Combien de noeuds ? */
- nbNodes = myMesh->NbNodes();
-
- /* Combien de mailles, faces ou aretes ? */
- int nb_of_nodes, nb_of_edges, nb_of_faces, nb_of_volumes;
- nb_of_edges = myMesh->NbEdges();
- nb_of_faces = myMesh->NbFaces();
- nb_of_volumes = myMesh->NbVolumes();
- nbCells = nb_of_edges + nb_of_faces + nb_of_volumes;
-
- fprintf(stdout, "%d %d\n", nbNodes, nbCells);
-//fprintf(myFileId,"%d %d\n",nbNodes,nbCells);
-
- /****************************************************************************
- * ECRITURE DES NOEUDS *
- ****************************************************************************/
- fprintf(stdout, "\n(************************)\n");
- fprintf(stdout, "(* NOEUDS DU MAILLAGE : *)\n");
- fprintf(stdout, "(************************)\n");
-
-
- fprintf(myFileId, "%s\n", sUNV_SEPARATOR);
- fprintf(myFileId, "%s\n", sNODE_UNV_ID);
-
- SMDS_Iterator<const SMDS_MeshNode *> * itNodes=myMesh->nodesIterator();
- while(itNodes->more())
- {
- const SMDS_MeshNode * node = itNodes->next();
-
- fprintf(myFileId, sNODE_UNV_DESCR, node->GetID());
- fprintf(myFileId, "%25.16E%25.16E%25.16E\n", node->X(), node->Y(),
- node->Z());
- }
- delete itNodes;
- fprintf(myFileId, "%s\n", sUNV_SEPARATOR);
-
- /****************************************************************************
- * ECRITURE DES ELEMENTS *
- ****************************************************************************/
- fprintf(stdout, "\n(**************************)\n");
- fprintf(stdout, "(* ELEMENTS DU MAILLAGE : *)\n");
- fprintf(stdout, "(**************************)");
- /* Ecriture des connectivites, noms, numeros des mailles */
-
- fprintf(myFileId, "%s\n", sUNV_SEPARATOR);
- fprintf(myFileId, "%s\n", sELT_UNV_ID);
-
- SMDS_Iterator<const SMDS_MeshEdge *> * itEdges=myMesh->edgesIterator();
- while(itEdges->more())
- {
- const SMDS_MeshEdge * elem = itEdges->next();
- SMDS_Iterator<const SMDS_MeshElement*> *itn=elem->nodesIterator();
-
- switch (elem->NbNodes())
- {
- case 2:
- fprintf(myFileId, sELT_BEAM_DESC1, elem->GetID(), 21,
- elem->NbNodes());
- fprintf(myFileId, sELT_BEAM_DESC2);
- fprintf(myFileId, "%10d%10d\n", itn->next()->GetID(),
- itn->next()->GetID());
- break;
-
- case 3:
- fprintf(myFileId, sELT_BEAM_DESC1, elem->GetID(), 24,
- elem->NbNodes());
- fprintf(myFileId, sELT_BEAM_DESC2);
- fprintf(myFileId, "%10d%10d%10d\n", itn->next()->GetID(),
- itn->next()->GetID(), itn->next()->GetID());
- break;
- }
- delete itn;
- }
- delete itEdges;
-
- SMDS_Iterator<const SMDS_MeshFace*> * itFaces=myMesh->facesIterator();
- while(itFaces->more())
- {
- const SMDS_MeshElement * elem = itFaces->next();
-
- switch (elem->NbNodes())
- {
- case 3:
- // linear triangle
- fprintf(myFileId, sELT_SURF_DESC, elem->GetID(), 74,
- elem->NbNodes());
- break;
- case 4:
- // linear quadrilateral
- fprintf(myFileId, sELT_SURF_DESC, elem->GetID(), 71,
- elem->NbNodes());
- break;
- case 6:
- // parabolic triangle
- fprintf(myFileId, sELT_SURF_DESC, elem->GetID(), 72,
- elem->NbNodes());
- break;
- case 8:
- // parabolic quadrilateral
- fprintf(myFileId, sELT_SURF_DESC, elem->GetID(), 75,
- elem->NbNodes());
- break;
- default:
- fprintf(myFileId, "element not registered\n");
- }
-
- SMDS_Iterator<const SMDS_MeshElement*> *itn=elem->nodesIterator();
- while(itn->more()) fprintf(myFileId, "%10d", itn->next()->GetID());
- delete itn;
-
- fprintf(myFileId, "\n");
- }
- delete itFaces;
-
- SMDS_Iterator<const SMDS_MeshVolume*> * itVolumes=myMesh->volumesIterator();
- while(itVolumes->more())
- {
- const SMDS_MeshElement * elem = itVolumes->next();
-
- switch (elem->NbNodes())
- {
- case 4:
- // linear tetrahedron
- fprintf(myFileId, sELT_SURF_DESC, elem->GetID(), 111,
- elem->NbNodes());
- break;
- case 6:
- // linear tetrahedron
- fprintf(myFileId, sELT_SURF_DESC, elem->GetID(), 112,
- elem->NbNodes());
- break;
- case 8:
- // linear brick
- fprintf(myFileId, sELT_SURF_DESC, elem->GetID(), 115,
- elem->NbNodes());
- break;
- }
-
- SMDS_Iterator<const SMDS_MeshElement*> *itn=elem->nodesIterator();
- while(itn->more()) fprintf(myFileId, "%10d", itn->next()->GetID());
- delete itn;
-
- fprintf(myFileId, "\n");
- }
- delete itVolumes;
- fprintf(myFileId, "%s\n", sUNV_SEPARATOR);
-
- fclose(myFileId);
-}