[MOAB-dev] h5m: class attribute in tags

Nico Schlömer nico.schloemer at gmail.com
Thu Nov 12 14:32:17 CST 2015


> data type, instead of being a 64-bit floating point, should be an array
of 64-bit floating-point
> (3), for your example

Ah, I missed that. A pity that MOAB enforces this for point data.

I'll dig around...

Cheers,
Nico




On Thu, Nov 12, 2015 at 5:23 PM Grindeanu, Iulian R. <iulian at mcs.anl.gov>
wrote:

> Hi Nico,
>
> moab stores dense tags in a hdf5 dataspace of dimension 1, not 2
>
> I do not understand in your code where you create the dataspace for tag A.
> I did not dig too much, and I still did not install it.
>
> So, dimension size should be the number of nodes (for dense node tags)
>
> data type, instead of being a 64-bit floating point, should be an array
> of  64-bit floating-point (3), for your example
>
> Coordinates, on the other hand, are stored in a 2 dimensional dataspace,
> and also connectivities
>
>
>
> ------------------------------
> *From:* Nico Schlömer [nico.schloemer at gmail.com]
> *Sent:* Thursday, November 12, 2015 4:10 AM
>
> *To:* Grindeanu, Iulian R.; moab-dev at mcs.anl.gov
> *Subject:* Re: [MOAB-dev] h5m: class attribute in tags
> > How do you install h5py? serial or parallel? I was trying to play with
> your meshio, but I need more stuff installed
>
> The `requirements.txt` should list ist all;
> ```
> pip install -r requirements.txt
> ```
> might also help. h5py is needed in serial.
>
> Thanks for the explanation about the tags. I'm now at another error
> message, namely
> ```
> [0]MOAB ERROR: Incorrect DataSpace for DataSet.!
> [0]MOAB ERROR: is_error() line 105 in ReadHDF5.hpp
> ```
> No idea what that wants to say. I'm getting it for the data at [1]. Any
> idea what might be going wrong?
> The respective code is at [2] btw.
>
> Cheers,
> Nico
>
> [1] http://chunk.io/f/2f94e4ab6bbe458fbdc1d3a3f7edb624
> [2] https://github.com/nschloe/meshio/blob/master/meshio/writer.py#L106
>
> On Wed, Nov 11, 2015 at 10:25 PM Grindeanu, Iulian R. <iulian at mcs.anl.gov>
> wrote:
>
>> How do you install h5py? serial or parallel? I was trying to play with
>> your meshio, but I need more stuff installed
>>
>> I was wrong before,
>> class attribute is an integer attribute, with a value corresponding to
>> the storage type
>>
>> /** \brief Was dense tag data in mesh database */
>> #define mhdf_DENSE_TYPE   2
>> /** \brief Was sparse tag data in mesh database */
>> #define mhdf_SPARSE_TYPE  1
>> /** \brief Was bit-field tag data in mesh database */
>> #define mhdf_BIT_TYPE     0
>> /** \brief Unused */
>> #define mhdf_MESH_TYPE    3
>>
>> the storage type is set here:
>> ./src/io/mhdf/src/tags.c
>> hid_t create_tag_common( mhdf_FileHandle file_handle,
>>                          const char* tag_name,
>>                          enum mhdf_TagDataType tag_type,
>>                          int size,
>>                          int storage,
>>                          const void* default_value,
>>                          int default_value_size_in,
>>                          const void* global_value,
>>                          int global_value_size_in,
>>                          hid_t hdf_type,
>>                          hid_t hdf_base_type,
>>                          mhdf_Status* status )
>>
>> about line 340:
>>   rval = mhdf_create_scalar_attrib( tag_id,
>>                                    TAG_TYPE_ATTRIB,  // this is "class"
>>                                    H5T_NATIVE_INT,
>>                                    &storage,
>>                                    status );
>>
>> tag_id is the group id associated with the tag
>>
>>
>>
>> the storage type is retrieved in the hdf5 writer with a code like this
>>
>>  // Get tag properties
>>   rval = iFace->tag_get_type(tag_data.tag_id,
>> mb_storage);CHK_MB_ERR_0(rval);
>>   switch (mb_storage) {
>>     case MB_TAG_DENSE:
>>       storage = mhdf_DENSE_TYPE;
>>       break;
>>     case MB_TAG_SPARSE:
>>       storage = mhdf_SPARSE_TYPE;
>>       break;
>>     case MB_TAG_BIT:
>>       storage = mhdf_BIT_TYPE;
>>       break;
>>     case MB_TAG_MESH:
>>       storage = mhdf_MESH_TYPE;
>>       break;
>>     default:
>>       return error(MB_FAILURE);
>>   }
>>
>>
>> ------------------------------
>> *From:* Nico Schlömer [nico.schloemer at gmail.com]
>> *Sent:* Wednesday, November 11, 2015 1:01 PM
>> *To:* Grindeanu, Iulian R.; moab-dev at mcs.anl.gov
>> *Subject:* Re: [MOAB-dev] h5m: class attribute in tags
>>
>> > Or do you try to understand how are the data / tags stored?
>>
>> Indeed. I've converted a bunch of files to h5m using MeshIO [1], but
>> found that they couldn't be read into MOAB because of a missing class
>> attribute.
>>
>> > class would correspond to the type of the tag (integer, double, opaque,
>> etc)
>>
>> Could you give more detail here?
>>
>> Cheers,
>> Nico
>>
>>
>> [1] https://pypi.python.org/pypi/meshio
>>
>> On Wed, Nov 11, 2015 at 7:55 PM Grindeanu, Iulian R. <iulian at mcs.anl.gov>
>> wrote:
>>
>>> Hi Nico,
>>>
>>> Not sure what are you trying to do here.
>>> Do you need to improve the h5m reader writer? Or do you try to
>>> understand how are the data / tags stored?
>>>
>>> Do you have a specific problem/bug ?
>>> Suggestions for improvement?
>>>
>>> All these attributes are part of specific moab conventions and hdf5
>>> format. Not much documentation, except what you already found.
>>>
>>> class would correspond to the type of the tag (integer, double, opaque,
>>> etc)
>>> default would be the default value
>>>
>>> global is used if the tag is "global", in the sense it refers to the
>>> whole mesh instance
>>>
>>> "The tag sub-group may have any or all of the following four attributes:
>>> default, global, is_handle, and variable_length. The default attribute,
>>> if present, must contain a single tag value that is to be considered the
>>> 'default' value of the tag. The global attribute, if present, must
>>> contain a single tag value that is the value of the tag as set on the mesh
>>> instance (MOAB terminology) or root set (ITAPS terminology.) The presence
>>> of the is_handle attribute (the value, if any, is meaningless)
>>> indicates that the tag values are to be considered entity IDs."
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> ------------------------------
>>> *From:* moab-dev-bounces at mcs.anl.gov [moab-dev-bounces at mcs.anl.gov] on
>>> behalf of Nico Schlömer [nico.schloemer at gmail.com]
>>> *Sent:* Wednesday, November 11, 2015 3:43 AM
>>> *To:* moab-dev at mcs.anl.gov
>>> *Subject:* [MOAB-dev] h5m: class attribute in tags
>>>
>>> Hi everyone,
>>>
>>> In h5m files [1], I see that tstt->tags typically have three attributes:
>>>
>>>  * class
>>>  * default
>>>  * global
>>>
>>> Where can I find documentation on these attributes?
>>>
>>> Cheers,
>>> Nico
>>>
>>> [1] https://trac.mcs.anl.gov/projects/ITAPS/wiki/MOAB/h5m
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/moab-dev/attachments/20151112/61cfe777/attachment.html>


More information about the moab-dev mailing list