Esempio n. 1
0
    def write(self, cycle=None, time=None):
        """ Routine to invoke the datafile genration.

        :param cycle: int cycle
        :param time: float time
        """

        # TODO: iterate through fields and check if the process needs todo io!

        filename = self.__prefix+self.__identifier

        if cycle is None and time is not None:
            cycle = self.__cycle
            self.__cycle += 1

        if cycle is not None:
            filename += "_%07d" % cycle

        base = None

        if hasattr(context, 'comm'):
            if not self.__local_only:
                base = h5.File(filename+'.vsh5', 'w', driver='mpio', comm=context.comm)
            else:
                if not self.__omit:
                    base = h5.File(filename+'.vsh5', 'w', driver='sec2')
        else:
            base = h5.File(filename+'.vsh5', 'w')

        base_name = '/'

        if not self.__omit:
            write_time(base, cycle, time)
            write_provenance_data(base)

            for writer in self.__writer:
                writer.write(base, base_name)
  
            base.close()
            del base
            if not hasattr(context, 'comm') or self.__local_only or context.rank is 0:
                kv.finalize(filename)
Esempio n. 2
0
# -*- coding: utf-8 -*-

import kv
import h5py as h5

base = h5.File("file"+'.vsh5', 'w', driver='sec2')
a_group = h5.Group.create_group(base, "time")
kv.set_attrs(a_group.name, "aa", str.encode("utf8"))
kv.set_attrs(a_group.name, "vsType1", str.encode("utf8"))
a_group = h5.Group.create_group(base, "time1")
kv.set_attrs(a_group.name, "vsType", str.encode("utf8"))
kv.set_attrs(a_group.name, "vsType1", str.encode("utf8"))
a_group = h5.Group.create_group(base, "abc")
kv.set_attrs(a_group.name, "vsType1", str.encode("utf8"))
a_group = h5.Group.create_group(base, "qabc")
kv.set_attrs(a_group.name, "vsType1", str.encode("utf8"))
base.close
kv.finalize("file")