def __init__(self, filename, autolink=True): self._f = h5py.File(filename, 'r') self._meshes = {} self._filters = {} self._tallies = {} self._derivs = {} # Check filetype and version cv.check_filetype_version(self._f, 'statepoint', _VERSION_STATEPOINT) # Set flags for what data has been read self._meshes_read = False self._filters_read = False self._tallies_read = False self._summary = None self._global_tallies = None self._sparse = False self._derivs_read = False # Automatically link in a summary file if one exists if autolink: path_summary = os.path.join(os.path.dirname(filename), 'summary.h5') if os.path.exists(path_summary): su = openmc.Summary(path_summary) self.link_with_summary(su) path_volume = os.path.join(os.path.dirname(filename), 'volume_*.h5') for path_i in glob.glob(path_volume): if re.search(r'volume_\d+\.h5', path_i): vol = openmc.VolumeCalculation.from_hdf5(path_i) self.add_volume_information(vol)
def __init__(self, filename): if not filename.endswith(('.h5', '.hdf5')): msg = 'Unable to open "{0}" which is not an HDF5 summary file' raise ValueError(msg) self._f = h5py.File(filename, 'r') cv.check_filetype_version(self._f, 'summary', _VERSION_SUMMARY) self._geometry = openmc.Geometry() self._fast_materials = {} self._fast_surfaces = {} self._fast_cells = {} self._fast_universes = {} self._fast_lattices = {} self._materials = openmc.Materials() self._nuclides = {} self._macroscopics = [] self._read_nuclides() self._read_macroscopics() with warnings.catch_warnings(): warnings.simplefilter("ignore", openmc.IDWarning) self._read_geometry()
def from_hdf5(cls, filename): """Load stochastic volume calculation results from HDF5 file. Parameters ---------- filename : str Path to volume.h5 file Returns ------- openmc.VolumeCalculation Results of the stochastic volume calculation """ with h5py.File(filename, 'r') as f: cv.check_filetype_version(f, "volume", _VERSION_VOLUME) domain_type = f.attrs['domain_type'].decode() samples = f.attrs['samples'] lower_left = f.attrs['lower_left'] upper_right = f.attrs['upper_right'] volumes = {} atoms = {} ids = [] for obj_name in f: if obj_name.startswith('domain_'): domain_id = int(obj_name[7:]) ids.append(domain_id) group = f[obj_name] volume = tuple(group['volume'].value) nucnames = group['nuclides'].value atoms_ = group['atoms'].value atom_dict = OrderedDict() for name_i, atoms_i in zip(nucnames, atoms_): atom_dict[name_i.decode()] = tuple(atoms_i) volumes[domain_id] = volume atoms[domain_id] = atom_dict # Instantiate some throw-away domains that are used by the constructor # to assign IDs with warnings.catch_warnings(): warnings.simplefilter('ignore', openmc.IDWarning) if domain_type == 'cell': domains = [openmc.Cell(uid) for uid in ids] elif domain_type == 'material': domains = [openmc.Material(uid) for uid in ids] elif domain_type == 'universe': domains = [openmc.Universe(uid) for uid in ids] # Instantiate the class and assign results vol = cls(domains, samples, lower_left, upper_right) vol.volumes = volumes vol.atoms = atoms return vol
def __init__(self, filename): with h5py.File(filename, 'r') as f: # Ensure filetype and version are correct cv.check_filetype_version(f, 'particle restart', _VERSION_PARTICLE_RESTART) self.current_batch = f['current_batch'][()] self.current_generation = f['current_generation'][()] self.energy = f['energy'][()] self.generations_per_batch = f['generations_per_batch'][()] self.id = f['id'][()] self.type = f['type'][()] self.n_particles = f['n_particles'][()] self.run_mode = f['run_mode'][()].decode() self.uvw = f['uvw'][()] self.weight = f['weight'][()] self.xyz = f['xyz'][()]
def from_hdf5(cls, filename): """Load in depletion results from a previous file Parameters ---------- filename : str Path to depletion result file Returns ------- new : ResultsList New instance of depletion results """ with h5py.File(str(filename), "r") as fh: cv.check_filetype_version(fh, 'depletion results', VERSION_RESULTS[0]) new = cls() # Get number of results stored n = fh["number"][...].shape[0] for i in range(n): new.append(Results.from_hdf5(fh, i)) return new
def __init__(self, filename): openmc.reset_auto_ids() if not filename.endswith(('.h5', '.hdf5')): msg = 'Unable to open "{0}" which is not an HDF5 summary file' raise ValueError(msg) self._f = h5py.File(filename, 'r') cv.check_filetype_version(self._f, 'summary', _VERSION_SUMMARY) self._geometry = openmc.Geometry() self._fast_materials = {} self._fast_surfaces = {} self._fast_cells = {} self._fast_universes = {} self._fast_lattices = {} self._materials = openmc.Materials() self._nuclides = {} self._read_nuclides() self._read_geometry()
def __init__(self, filename): self._f = h5py.File(filename, 'r') # Ensure filetype and version are correct cv.check_filetype_version(self._f, 'particle restart', _VERSION_PARTICLE_RESTART)