[MOAB-dev] read polygon mesh from vtk file

Huayi Wei huayiwei1984 at gmail.com
Sun Jun 29 18:26:15 CDT 2014


Hi, Lulian

Thanks for your reply. The vtk file was generated by a simple matlab 
script wrote by myself . It is very simple, and just includes the points 
and the polygons.

I think moab support such kind of vtk format, but maybe there exist some 
bugs in its reading code. Please see function 
`moab::ReadVtk::vtk_read_polygons` in `ReadVtk.cpp` file.

Best

Huayi

```
# vtk DataFile Version 3.0
MOAB 4.7.0pre
ASCII
DATASET POLYDATA
POINTS 26 double
3.073901530231682e-06 2.977455744718462e-01 0.000000000000000e+00
-7.071067811865476e-01 7.071067811865475e-01 0.000000000000000e+00
-1.715691137876366e-01 3.536798274750831e-01 0.000000000000000e+00
-4.719776146377113e-01 1.857355490854607e-01 0.000000000000000e+00
-8.508854127205038e-01 3.599944589578263e-01 0.000000000000000e+00
2.775557561562891e-16 1.000000000000000e+00 0.000000000000000e+00
-3.406715072241552e-01 8.588892413936710e-01 0.000000000000000e+00
1.715662369808998e-01 3.536768053562428e-01 0.000000000000000e+00
4.719754417201190e-01 1.857347459630188e-01 0.000000000000000e+00
-4.719756118732749e-01 -1.857348097293946e-01 0.000000000000000e+00
-1.000000000000000e+00 1.110223024625157e-16 0.000000000000000e+00
-8.508847507623047e-01 -3.599960570662885e-01 0.000000000000000e+00
7.071067811865476e-01 7.071067811865476e-01 0.000000000000000e+00
3.406701269292776e-01 8.588898131305294e-01 0.000000000000000e+00
8.508845922027242e-01 3.599964398629780e-01 0.000000000000000e+00
-7.071067811865476e-01 -7.071067811865476e-01 0.000000000000000e+00
4.719777412790575e-01 -1.857356073815120e-01 0.000000000000000e+00
7.071067811865472e-01 -7.071067811865477e-01 0.000000000000000e+00
-3.051853356210140e-16 -1.000000000000000e+00 0.000000000000000e+00
1.715687253344436e-01 -3.536802010232855e-01 0.000000000000000e+00
-3.319925237351595e-06 -2.977459818644166e-01 0.000000000000000e+00
-1.715662714497118e-01 -3.536770586038507e-01 0.000000000000000e+00
-3.406707216059742e-01 -8.588895668073767e-01 0.000000000000000e+00
3.406712167592965e-01 -8.588893617081550e-01 0.000000000000000e+00
1.000000000000000e+00 -2.775557561562891e-17 0.000000000000000e+00
8.508853951409249e-01 -3.599945013986841e-01 0.000000000000000e+00
POLYGONS 10 64
6 21 22 18 23 19 20
6 20 0 7 8 16 19
5 10 4 3 9 11
5 12 13 7 8 14
5 24 14 8 16 25
5 21 9 11 15 22
6 7 0 2 6 5 13
5 19 23 17 25 16
5 3 4 1 6 2
6 21 9 3 2 0 20
```
On 2014年06月29日 23:38, Grindeanu, Iulian R. wrote:
> Hi,
> How was the file generated?
> our vtk reader is very simple, it does not support all vtk formats, and there is no plan to.
> For general vtk files, you would need to configure with vtk , I think (I am not sure, I would have to try).
> Vijay
>
> What was your configure command?
>
> Iulian
>
> ________________________________________
> From: moab-dev-bounces at mcs.anl.gov [moab-dev-bounces at mcs.anl.gov] on behalf of Huayi Wei [huayiwei1984 at gmail.com]
> Sent: Saturday, June 28, 2014 11:08 PM
> To: MOAB Dev
> Subject: [MOAB-dev] read polygon mesh from vtk file
>
> Hi, Moab Dev,
>
> I have a polygon mesh saved in vtk format, see attachment. I can show it
> by paraview. But when loading it into moab, I meet `Segmentation fault
> (core dumped)`
> error. I don't know how to fixed it. Please help me, thanks very much.
>
> Here is the cpp file.
> ```
> #include "moab/Core.hpp"
> #include <iostream>
> #include <assert.h>
>
> using namespace moab;
> using namespace std;
>
> int main(int argc, char ** argv)
> {
>       string file = s"/poly8-10.vtk";
>       Interface * imesh = new Core;
>
>       ErrorCode rval =  imesh->load_mesh(file.c_str());
>       assert(rval == MB_SUCCESS);
>
>       return 0;
> }
> ```
>
> And here is the information of core:
> ```
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> Core was generated by `./readpolygon_test'.
> Program terminated with signal SIGSEGV, Segmentation fault.
> #0  0x00007f3fee79cd3b in moab::Range::front (this=0xffffffffffffffe0)
>       at ./moab/Range.hpp:824
> 824      { return mHead.mNext->first; }
> (gdb) list
> 819    inline Range::const_iterator
> Range::const_iterator::start_of_block() const
> 820      { return Range::const_iterator( mNode, mNode->first ); }
> 821
> 822      //! get first entity in range
> 823    inline const EntityHandle& Range::front() const
> 824      { return mHead.mNext->first; }
> 825      //! get last entity in range
> 826    inline const EntityHandle& Range::back() const
> 827      { return mHead.mPrev->second; }
> 828
> ```
>
> Best
>
> Huayi



More information about the moab-dev mailing list