Skip to content

Commit

Permalink
Merge pull request #25 from wkerzendorf/simulation/run_single_simulation
Browse files Browse the repository at this point in the history
Simulation/run single simulation
  • Loading branch information
wkerzendorf committed Mar 7, 2013
2 parents 2946d2c + 0216c96 commit bc35f13
Show file tree
Hide file tree
Showing 8 changed files with 629 additions and 389 deletions.
35 changes: 16 additions & 19 deletions tardis/atomic.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,17 +52,17 @@ def read_hdf5_data(fname, dset_name):
h5_file = h5py.File(fname)
dataset = h5_file[dset_name]
data = np.asarray(dataset)
data_units = dataset.attrs['units']
# data_units = dataset.attrs['units']

data_table = table.Table(data)

for i, col_unit in enumerate(data_units):
if col_unit == 'n':
data_table.columns[i].units = None
elif col_unit == '1':
data_table.columns[i].units = units.Unit(1)
else:
data_table.columns[i].units = units.Unit(col_unit)
# for i, col_unit in enumerate(data_units):
# if col_unit == 'n':
# data_table.columns[i].units = None
# elif col_unit == '1':
# data_table.columns[i].units = units.Unit(1)
# else:
# data_table.columns[i].units = units.Unit(col_unit)

h5_file.close()

Expand All @@ -86,7 +86,7 @@ def read_basic_atom_data(fname=None):
"""

data_table = read_hdf5_data(fname, 'basic_atom_data')
data_table.columns['mass'].convert_units_to('g')
# data_table.columns['mass'] = units.Unit('u').to('g', data_table['mass'])

return data_table

Expand All @@ -110,7 +110,7 @@ def read_ionization_data(fname=None):
"""

data_table = read_hdf5_data(fname, 'ionization_data')
data_table.columns['ionization_energy'].convert_units_to('erg')
#data_table.columns['ionization_energy'] = units.Unit('eV').to('erg', data_table.columns['ionization_energy'])

return data_table

Expand All @@ -133,8 +133,9 @@ def read_levels_data(fname=None):
"""

data_table = read_hdf5_data(fname, 'levels_data')
data_table.columns['energy'].convert_units_to('erg')
#data_table.columns['ionization_energy'].convert_units_to('erg')
#data_table.columns['energy'].convert_units_to('erg')
#data_table.columns['energy'] = units.Unit('eV').to('erg', data_table.columns['energy'])


return data_table

Expand Down Expand Up @@ -365,11 +366,14 @@ def __init__(self, atom_data, ionization_data, levels_data, lines_data, macro_at

self.atom_data = DataFrame(atom_data.__array__())
self.atom_data.set_index('atomic_number', inplace=True)
self.atom_data.mass = units.Unit('u').to('g', self.atom_data.mass.values)

self.ionization_data = DataFrame(ionization_data.__array__())
self.ionization_data.set_index(['atomic_number', 'ion_number'], inplace=True)
self.ionization_data.ionization_energy = units.Unit('eV').to('erg', self.ionization_data.ionization_energy.values)

self.levels_data = DataFrame(levels_data.__array__())
self.levels_data.energy = units.Unit('eV').to('erg', self.levels_data.energy.values)

self.lines_data = DataFrame(lines_data.__array__())
self.lines_data.set_index('line_id', inplace=True)
Expand Down Expand Up @@ -439,13 +443,6 @@ def prepare_atom_data(self, selected_atomic_numbers, line_interaction_type='scat
self.atom_ion_index = None
self.levels_index2atom_ion_index = None

einstein_coeff = (4 * np.pi ** 2 * constants.e.gauss.value ** 2) / (
constants.m_e.cgs.value * constants.c.cgs.value)

self.lines['B_lu'] = self.lines['f_lu'] * einstein_coeff / (constants.h.cgs.value * self.lines['nu'])
self.lines['B_ul'] = self.lines['f_ul'] * einstein_coeff / (constants.h.cgs.value * self.lines['nu'])
self.lines['A_ul'] = einstein_coeff * 2 * self.lines['nu'] ** 2 / constants.c.cgs.value ** 2 * self.lines[
'f_ul']

if self.has_macro_atom and not (line_interaction_type == 'scatter'):
self.macro_atom_data = self.macro_atom_data_all[
Expand Down
Loading

0 comments on commit bc35f13

Please sign in to comment.