Skip to content

Reading of .fld files #134

@AnkitBarik

Description

@AnkitBarik

Hello,

It seems like pymech is based on reading of extension type .f01 and I have been unable to read my output files which have an extension type .fld01. Is this support already implemented? I tried reading one of my files and got an error as follows. I am using Nek5000 v19. Please let me know if you need any additional information.

In [1]: import pymech as pm

In [2]: pm.readnek('rb.fld01')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[2], line 1
----> 1 pm.readnek('rb.fld01')

File ~/.local/lib/python3.8/site-packages/pymech/neksuite/field.py:206, in readnek(fname, dtype, skip_vars)
    199     return -1
    200 #
    201 # ---------------------------------------------------------------------------
    202 # READ HEADER
    203 # ---------------------------------------------------------------------------
    204 #
    205 # read header
--> 206 h = read_header(infile)
    207 #
    208 # identify endian encoding
    209 etagb = infile.read(4)

File ~/.local/lib/python3.8/site-packages/pymech/neksuite/field.py:174, in read_header(path_or_file_obj)
    171     raise IOError("Header of the file was too short.")
    173 # Relying on attrs converter to type-cast. Mypy will complain
--> 174 return Header(header[1], header[2:5], *header[5:12])

File <attrs generated init pymech.neksuite.field.Header>:4, in __init__(self, wdsz, orders, nb_elems, nb_elems_file, time, istep, fid, nb_files, variables, realtype, nb_pts_elem, nb_dims, nb_vars)
      2 _setattr = _cached_setattr_get(self)
      3 _setattr('wdsz', __attr_converter_wdsz(wdsz))
----> 4 _setattr('orders', __attr_converter_orders(orders))
      5 _setattr('nb_elems', __attr_converter_nb_elems(nb_elems))
      6 _setattr('nb_elems_file', __attr_converter_nb_elems_file(nb_elems_file))

File ~/.local/lib/python3.8/site-packages/pymech/neksuite/field.py:26, in _as_tuple_of_ints(seq)
     25 def _as_tuple_of_ints(seq):
---> 26     return tuple(int(s) for s in seq)

File ~/.local/lib/python3.8/site-packages/pymech/neksuite/field.py:26, in <genexpr>(.0)
     25 def _as_tuple_of_ints(seq):
---> 26     return tuple(int(s) for s in seq)

ValueError: invalid literal for int() with base 10: b'1.0059306E-03'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions