def __init__(self, t=0.0, phi=0.0, temp=300.0, tol=1e-7, rxs=None, log=None, *args, **kwargs): """Parameters ---------- t : float Transmutations time [sec]. phi : float or array of floats Neutron flux vector [n/cm^2/sec]. Currently this must either be a scalar or match the group structure of EAF. temp : float, optional Temperature [K] of material, defaults to 300.0. tol : float Tolerance level for chain truncation. rxs : set of ints or strs Reaction ids or names to use in transmutation which produce well-defined children. This set should thus not include fission. If None, then the reactions from EAF are used. log : file-like or None The log file object should be written. A None imples the log is not desired. args : tuple, optional Other arguments ignored for compatibility with other Transmuters. kwargs : dict, optional Other keyword arguments ignored for compatibility with other Transmuters. """ eafds = EAFDataSource() eafds.load(temp=temp) gs = np.array([eafds.src_group_struct[0], eafds.src_group_struct[-1]]) eafds.dst_group_struct = gs self.xscache = XSCache(group_struct=gs, data_source_classes=(NullDataSource, )) self.xscache.data_sources.insert(0, eafds) self.t = t self._phi = None self.phi = phi self.temp = temp self.log = log self.tol = tol if rxs is None: rxs = [ 'gamma', 'gamma_1', 'gamma_2', 'p', 'p_1', 'p_2', 'd', 'd_1', 'd_2', 't', 't_1', 't_2', 'He3', 'He3_1', 'He3_2', 'a', 'a_1', 'a_2', 'z_2a', 'z_2p', 'z_2p_1', 'z_2p_2', 'z_2n', 'z_2n_1', 'z_2n_2', 'z_3n', 'z_3n_1', 'z_3n_2', 'na', 'na_1', 'na_2', 'z_2na', 'np', 'np_1', 'np_2', 'n2a', 'nd', 'nd_1', 'nd_2', 'nt', 'nt_1', 'nt_2', 'nHe3', 'nHe3_1', 'nHe3_2', 'z_4n', 'z_4n_1', 'n', 'n_1', 'n_2', 'z_3np' ] rxs = set([rxname.id(rx) for rx in rxs]) rxs.discard(rxname.id('fission')) self.rxs = rxs
def __init__(self, t=0.0, phi=0.0, temp=300.0, tol=1e-7, cwd='', base_tape9=origen22.BASE_TAPE9, xscache=None, o2exe='o2_therm_linux.exe', *args, **kwargs): """Parameters ---------- t : float Transmutations time [sec]. phi : float or array of floats Neutron flux vector [n/cm^2/sec]. Currently this must either be a scalar or match the group structure of EAF. temp : float, optional Temperature [K] of material, defaults to 300.0. tol : float Tolerance level for chain truncation. cwd : str, optional Current working directory for origen runs. Defaults to this dir. base_tape9 : str or dict, optional A base TAPE9.INP file. If this is a str it is interpreted as a path to a file, which is then read in and parsed. If this is a dict, it is assumed to be in the format described in the main origen22 module. xscache : XSCache, optional A cross section cache to generate cross sections with. o2exe : str, optional Name or path to ORIGEN 2.2 executable. args : tuple, optional Other arguments ignored for compatibility with other Transmuters. kwargs : dict, optional Other keyword arguments ignored for compatibility with other Transmuters. """ if not isinstance(base_tape9, Mapping): base_tape9 = origen22.parse_tape9(tape9=base_tape9) self.base_tape9 = base_tape9 if xscache is None: eafds = EAFDataSource() eafds.load(temp=temp) gs = np.array([eafds.src_group_struct[0], eafds.src_group_struct[-1]]) eafds.dst_group_struct = gs xscache = XSCache(group_struct=gs, data_source_classes=[SimpleDataSource, NullDataSource]) xscache.load(temp=temp) xscache.data_sources.insert(0, eafds) self.xscache = xscache self.t = t self._phi = None self.phi = phi self.temp = temp self.tol = tol self.cwd = os.path.abspath(cwd) self.o2exe = o2exe
def __init__(self, t=0.0, phi=0.0, temp=300.0, tol=1e-7, rxs=None, log=None, *args, **kwargs): """Parameters ---------- t : float Transmutations time [sec]. phi : float or array of floats Neutron flux vector [n/cm^2/sec]. Currently this must either be a scalar or match the group structure of EAF. temp : float, optional Temperature [K] of material, defaults to 300.0. tol : float Tolerance level for chain truncation. rxs : set of ints or strs Reaction ids or names to use in transmutation which produce well-defined children. This set should thus not include fission. If None, then the reactions from EAF are used. log : file-like or None The log file object should be written. A None imples the log is not desired. args : tuple, optional Other arguments ignored for compatibility with other Transmuters. kwargs : dict, optional Other keyword arguments ignored for compatibility with other Transmuters. """ eafds = EAFDataSource() eafds.load(temp=temp) gs = np.array([eafds.src_group_struct[0], eafds.src_group_struct[-1]]) eafds.dst_group_struct = gs self.xscache = XSCache(group_struct=gs, data_source_classes=(NullDataSource,)) self.xscache.data_sources.insert(0, eafds) self.t = t self._phi = None self.phi = phi self.temp = temp self.log = log self.tol = tol if rxs is None: rxs = ['gamma', 'gamma_1', 'gamma_2', 'p', 'p_1', 'p_2', 'd', 'd_1', 'd_2', 't', 't_1', 't_2', 'He3', 'He3_1', 'He3_2', 'a', 'a_1', 'a_2', 'z_2a', 'z_2p', 'z_2p_1', 'z_2p_2', 'z_2n', 'z_2n_1', 'z_2n_2', 'z_3n', 'z_3n_1', 'z_3n_2', 'na', 'na_1', 'na_2', 'z_2na', 'np', 'np_1', 'np_2', 'n2a', 'nd', 'nd_1', 'nd_2', 'nt', 'nt_1', 'nt_2', 'nHe3', 'nHe3_1', 'nHe3_2','z_4n', 'z_4n_1', 'n', 'n_1', 'n_2', 'z_3np'] rxs = set([rxname.id(rx) for rx in rxs]) rxs.discard(rxname.id('fission')) self.rxs = rxs