[MOAB-dev] Tag values problem,
Lukasz Kaczmarczyk
Lukasz.Kaczmarczyk at glasgow.ac.uk
Mon Jul 15 05:44:30 CDT 2013
> I would like to be able to compile your code; it seems you depend on PETSc; any other dependencies?
PETSc and boost.
If you need test mesh refinement,
./test_mesh_refinment -my_file ../meshes/cub_with_interface.cub -my_out_file "out.vtk"
How it works with elastic mechanics problem, see example simple_elastic_interface. Look to the code is there how you can only split and refine or just split mesh.
This is code at very early stage, approx. 3 months.
Regards,
Lukasz
On 15 Jul 2013, at 00:00, Iulian Grindeanu <iulian at mcs.anl.gov> wrote:
>
> On 13 Jul 2013, at 23:52, Iulian Grindeanu <iulian at mcs.anl.gov> wrote:
>
> > Hello Lukasz,
> >
> > Hello,
> >
> > I storing entity handle on tags. I use that to store handle to parent element in edge mesh refine algorithm. To create tag I use,
> >
> > //CASE 1
> > rval = moab.tag_get_handle("_RefParentHandle",sizeof(EntityHandle),
> > MB_TYPE_OPAQUE,th_RefParentHandle,MB_TAG_CREAT|MB_TAG_SPARSE|MB_TAG_BYTES,&no_handle); CHKERR(rval); CHKERR_THROW(rval);
> >
> > or
> >
> > //CASE 2
> > rval = moab.tag_get_handle("_RefParentHandle",1,
> > MB_TYPE_HANDLE,th_RefParentHandle,MB_TAG_CREAT|MB_TAG_SPARSE,&no_handle); CHKERR(rval); CHKERR_THROW(rval);
> >
> > I think the issue is "no_handle" definition in your code. EntityHandle is basically unsigned long int. (-1) will be probably converted to 0xfff...fff, but I think it depends on compiler.
> > for type MB_ENTITY_HANDLE, during writing, it will try to map with an actual handle, and it will not be able to.
> > It should probably give some warning at least.
> It was my intention to have impossible tag. However in that case root_mesh is also impossible, to be parent and will do work.
>
> It is funny, that no_hanle(-1) working without warning, problems is when I read file. In other words I can create tag and use it without problems. However when I restart calculations and read file I have error.
>
> well, we use ~(EntityHandle)0 in our tests, and it would be the same problem during saving to an h5m file.
> > It is not advisable to use OPAQUE type, because it will just set the handle in bytes. If some reordering is involved, you could get a different handle than you expect.
> > Would it be difficult to use 0 as default in your code? (root set?) Nobody should have as "parent" the root set, but I am not understanding your code enough;
> > Or create an actual entity (or an entity set) that you know that you will never use, and use that for default. I assume that you need a default, but maybe you don't.
> I was not aware of that tags which has type ENTITYHANDLE are automatically updated in case of reordering. I was thinking that Handle is given to Entity for its life in database and no other, dead or alive entity can share the same handle.
>
> Yes, entity handle is unique per moab instance. But the tag of type MB_TYPE_HANDLE can point to any entity handle;
> Of course, if you delete that entity handle, all bets are off, we do not keep track. It would be like a pointer to deleted memory.
>
> The entities are mapped to hdf5 file entity ids during writing, and during reading they are mapped back to moab entity handles.
>
> If you want to know more about h5m format, you can find here some info
> http://trac.mcs.anl.gov/projects/ITAPS/wiki/MOAB/h5m
>
> Ok mesh merging is a problem.
>
> yes, it would be; if you use handle tag, you would have no problems. Please report if you find any bugs.
> > I looked a little at your h5m files, there are a lot of tags, nice and elaborate work :) I hope you keep track of them :)
> I hope as well, tags content is controlled by boost multi-index containers.
> I would like to be able to compile your code; it seems you depend on PETSc; any other dependencies?
> We want to add more support for mesh refinement, and your experience would help us.
>
> Thanks,
> Iulian
>
> > I did not compile your code, are there any instructions? I see that for cmake you need some file to be defined. (for PETSc?)
>
> Yes, mesh is serial, calculations are parallel and I use PETSc to do that.
>
> > Best regards,
> > Iulian
> >
> > I save mesh in native moab format and read it once again.
> >
> > In CASE 1, moab works as expected, no problem. See example file restart_case1.h5m.
> > In CASE 2, moab generate error,
> > Error code 10 at /Users/likask/MyBuild/mofem-bitbucket/mofem_v0.0.1/do_not_blink/moabField_Core.cpp:46
> > See example file restart_case2.h5m
> >
> > I don't know if error is result of my ignorance about moab, or problem is somewhere in moab implementation. I using version moab-4.6.0.
> >
> >
> > If you need more details about my code, you can find code here,
> > https://bitbucket.org/likask/mofem-joseph/overview
> > Tag:
> > v0.0.1.1_moab_problem_with_tag
> >
> > Thanks for help,
> > Regards,
> > Lukasz Kaczmarczyk
> > Lecturer
> > School of Engineering,
> > University of Glasgow,
> > GLASGOW, G12 8LT
> > Tel: +44 141 3308113
> > email: likask at civil.gla.ac.uk
> > web: http://userweb.eng.gla.ac.uk/lukasz.kaczmarczyk
More information about the moab-dev
mailing list