コード例 #1
0
    def create_hdf5_data_sample_pspace(self, filename, schema_val, datas,
                                       time_list):
        """
        Create particle-space sample data using lattice-space data.
        CAUTION: The coordinate of particle-space data is different 
        from lattices-space data slightly. 
        """
        hdf5_file = h5py.File(filename, 'w')

        # calculate world size
        hcp = HCPLattice()
        hcp.load_schema_value(schema_val)
        wsize = hcp.get_world_sizes()

        voxelRadius = 1.0e-10
        sca = voxelRadius * 2.0

        # particle schema for paricle space.
        pschema = \
            [
                ('id', 'u8',),
                ('species_id', 'u8',),
                ('position', 'f8', (3,))
            ]

        # set data
        data_group = hdf5_file.create_group('data')
        data_group.attrs['world_size'] = max(wsize)
        for time, data in zip(time_list, datas):
            time_group = data_group.create_group(str(time))
            time_group.attrs['t'] = time

            # pattern 1
            time_dset = time_group.create_dataset('particles', (len(data), ),
                                                  pschema)
            for i, record in enumerate(data):
                nindex = record[0] + hcp.get_theStartCoord()
                co = hcp.coord2point(nindex)
                wrec = (nindex, record[1], (co[0] * sca, co[1] * sca,
                                            co[2] * sca))
                time_dset[i] = wrec

        # set species
        self.create_species_pspace(hdf5_file)

        hdf5_file.close()
コード例 #2
0
    def create_hdf5_data_sample_pspace(self, filename, schema_val, datas, time_list):
        """
        Create particle-space sample data using lattice-space data.
        CAUTION: The coordinate of particle-space data is different 
        from lattices-space data slightly. 
        """
        hdf5_file = h5py.File(filename, "w")

        # calculate world size
        hcp = HCPLattice()
        hcp.load_schema_value(schema_val)
        wsize = hcp.get_world_sizes()

        voxelRadius = 1.0e-10
        sca = voxelRadius * 2.0

        # particle schema for paricle space.
        pschema = [("id", "u8"), ("species_id", "u8"), ("position", "f8", (3,))]

        # set data
        data_group = hdf5_file.create_group("data")
        data_group.attrs["world_size"] = max(wsize)
        for time, data in zip(time_list, datas):
            time_group = data_group.create_group(str(time))
            time_group.attrs["t"] = time

            # pattern 1
            time_dset = time_group.create_dataset("particles", (len(data),), pschema)
            for i, record in enumerate(data):
                nindex = record[0] + hcp.get_theStartCoord()
                co = hcp.coord2point(nindex)
                wrec = (nindex, record[1], (co[0] * sca, co[1] * sca, co[2] * sca))
                time_dset[i] = wrec

        # set species
        self.create_species_pspace(hdf5_file)

        hdf5_file.close()