/[ff3d]/ff3d/solver/MeshWriter.cpp
ViewVC logotype

Diff of /ff3d/solver/MeshWriter.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by delpinux, Fri Aug 8 08:39:56 2003 UTC revision 1.3 by delpinux, Thu Sep 25 08:37:08 2003 UTC
# Line 24  Line 24 
24  #include <fstream>  #include <fstream>
25  #include <Structured3DMesh.hpp>  #include <Structured3DMesh.hpp>
26  #include <MeshOfTetrahedra.hpp>  #include <MeshOfTetrahedra.hpp>
27    #include <MeshOfHexahedra.hpp>
28    
29  void  #include <SurfaceMeshOfTriangles.hpp>
30  MeshWriter::__proceed()  #include <SurfaceMeshOfQuadrangles.hpp>
31    
32    template <typename MeshType>
33    void MeshWriter::__saveElements()
34    {
35      const MeshType& m = dynamic_cast<const MeshType&>(*__mesh);
36      typedef typename MeshType::ElementsGeometry CellType;
37    
38      __os << m.numberOfCells() << __cr;
39    
40      for (typename MeshType::const_iterator i = m.begin();
41           i != m.end(); ++i) {
42        const CellType& c = *i;
43    
44        for (size_t j=0; j<CellType::NumberOfVertices; ++j) {
45          __os << m.vertexNumber(c(j))+1 << ' ';
46        }
47    
48        __os << c.reference() << __cr;
49      }
50    }
51    
52    
53    void MeshWriter::__proceed()
54  {  {
55    __os << "MeshVersionFormatted 1" << __cr;    __os << "MeshVersionFormatted 1" << __cr;
56    __os << "Dimension" << __cr;    __os << "Dimension" << __cr;
# Line 63  MeshWriter::__proceed() Line 87  MeshWriter::__proceed()
87          __os << C.reference() << __cr;          __os << C.reference() << __cr;
88        }        }
89      }      }
90        __os << "Hexahedra ";
91        this->__saveElements<Structured3DMesh>();
92        break;
93    }    }
94    case Mesh::hexahedraMesh: {    case Mesh::hexahedraMesh: {
95      __os << "Hexahedra ";      __os << "Hexahedra ";
96        this->__saveElements<MeshOfHexahedra>();
97      break;      break;
98    }    }
99    case Mesh::tetrahedraMesh: {    case Mesh::tetrahedraMesh: {
# Line 91  MeshWriter::__proceed() Line 119  MeshWriter::__proceed()
119  //       }  //       }
120  //     }  //     }
121      __os << "Tetrahedra ";      __os << "Tetrahedra ";
122        this->__saveElements<MeshOfTetrahedra>();
123      break;      break;
124    }    }
125    case Mesh::surfaceMeshTriangles: {    case Mesh::surfaceMeshTriangles: {
126      __os << "Triangles ";      __os << "Triangles ";
127        this->__saveElements<SurfaceMeshOfTriangles>();
128      break;      break;
129    }    }
130    case Mesh::surfaceMeshQuadrangles: {    case Mesh::surfaceMeshQuadrangles: {
131      __os << "Quadrangles ";      __os << "Quadrangles ";
132        this->__saveElements<SurfaceMeshOfQuadrangles>();
133      break;      break;
134    }    }
135    default: {    default: {
# Line 106  MeshWriter::__proceed() Line 137  MeshWriter::__proceed()
137      std::exit(1);      std::exit(1);
138    }    }
139    }    }
   
   
   __os << (*__mesh).numberOfCells() << __cr;  
   
   const size_t numberOfVertices = (*(*__mesh).begin()).numberOfVertices();  
   
   for (Mesh::const_iterator i = (*__mesh).begin();  
        i != (*__mesh).end(); ++i) {  
     const Cell& C = *i;  
   
     for (size_t j=0; j<numberOfVertices; ++j) {  
       __os << (*__mesh).vertexNumber(C(j))+1 << ' ';  
     }  
   
     __os << C.reference() << __cr;  
   }  
140  }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26