Skip to content

Commit

Permalink
Dilution factor fix (tardis-sn#956)
Browse files Browse the repository at this point in the history
* Replaced 'w' with 'dilution_factor' in csvy model

* Added Warning for unsupported CSVY columns

* Changed supported column checks to use Sets
  • Loading branch information
marxwillia authored and wkerzendorf committed Aug 8, 2019
1 parent e3d2eb2 commit 9d93598
Showing 1 changed file with 21 additions and 3 deletions.
24 changes: 21 additions & 3 deletions tardis/model/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
from tardis.io.util import HDFWriterMixin
from tardis.io.decay import IsotopeAbundances
from tardis.model.density import HomologousDensity
from pyne import nucname

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -498,6 +499,9 @@ def from_csvy(cls, config):
Radial1DModel
"""
CSVY_SUPPORTED_COLUMNS = {'velocity', 'density', 't_rad', 'dilution_factor'}


if os.path.isabs(config.csvy_model):
csvy_model_fname = config.csvy_model
else:
Expand All @@ -507,9 +511,23 @@ def from_csvy(cls, config):
base_dir = os.path.abspath(os.path.dirname(__file__))
schema_dir = os.path.join(base_dir, '..', 'io', 'schemas')
csvy_schema_file = os.path.join(schema_dir, 'csvy_model.yml')
csvy_model_config = Configuration(validate_dict(csvy_model_config,
csvy_model_config = Configuration(validate_dict(csvy_model_config,
schemapath=csvy_schema_file))

if hasattr(csvy_model_data, 'columns'):
abund_names = set([name for name in csvy_model_data.columns
if nucname.iselement(name) or nucname.isnuclide(name)])
unsupported_columns = set(csvy_model_data.columns) - abund_names - CSVY_SUPPORTED_COLUMNS

field_names = set([field['name'] for field in csvy_model_config.datatype.fields])
assert set(csvy_model_data.columns) - field_names == set(),\
'CSVY columns exist without field descriptions'
assert field_names - set(csvy_model_data.columns) == set(),\
'CSVY field descriptions exist without corresponding csv data'
if unsupported_columns != set():
logger.warning("The following columns are specified in the csvy"
"model file, but are IGNORED by TARDIS: %s"%(str(unsupported_columns)))

time_explosion = config.supernova.time_explosion.cgs

electron_densities = None
Expand Down Expand Up @@ -562,8 +580,8 @@ def from_csvy(cls, config):

dilution_factor = None
if hasattr(csvy_model_data, 'columns'):
if 'w' in csvy_model_data.columns:
dilution_factor = csvy_model_data['w'].iloc[0:].to_numpy()
if 'dilution_factor' in csvy_model_data.columns:
dilution_factor = csvy_model_data['dilution_factor'].iloc[0:].to_numpy()

elif config.plasma.initial_t_rad > 0 * u.K:
t_radiative = np.ones(no_of_shells) * config.plasma.initial_t_rad
Expand Down

0 comments on commit 9d93598

Please sign in to comment.