Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactoring mass fraction #2143

Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 22 additions & 3 deletions tardis/model/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,15 +76,19 @@ class Composition:
def __init__(
self,
density,
elemental_mass_fraction,
isotope_mass_fraction,
atomic_mass,
atomic_mass_unit=u.g,
):
self.density = density
self.elemental_mass_fraction = elemental_mass_fraction
self.isotope_mass_fraction = isotope_mass_fraction
self.atomic_mass_unit = atomic_mass_unit
self._atomic_mass = atomic_mass

@property
def elemental_mass_fraction(self):
return self.isotope_mass_fraction.as_atoms()

@property
def atomic_mass(self):
"""Atomic mass of elements in each shell"""
Expand Down Expand Up @@ -246,6 +250,21 @@ def __init__(
self.raw_abundance = self._abundance
self.raw_isotope_abundance = isotope_abundance

multi_index_tuples = []
for atomic_number in self.raw_abundance.index:
multi_index_tuples.append((atomic_number, -1))
multi_index = pd.MultiIndex.from_tuples(
multi_index_tuples, names=["atomic_number", "mass_number"]
)

raw_abundance = self.raw_abundance.set_index(multi_index)

isotope_mass_fraction = self.raw_isotope_abundance.decay(13).add(
raw_abundance, fill_value=0
)
norm_factor = isotope_mass_fraction.sum(axis=0)
isotope_mass_fraction /= norm_factor

atomic_mass = None
if elemental_mass is not None:
mass = {}
Expand Down Expand Up @@ -283,7 +302,7 @@ def __init__(

composition = Composition(
density=density,
elemental_mass_fraction=self.abundance,
isotope_mass_fraction=isotope_mass_fraction,
atomic_mass=atomic_mass,
)
geometry = Radial1DGeometry(
Expand Down
Loading