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

Dilution factor fix #956

Merged
merged 3 commits into from
Aug 8, 2019
Merged
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
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)))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"model file, but are IGNORED by TARDIS: %s"%(str(unsupported_columns)))
"model file, but are IGNORED by TARDIS: {0}".format(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:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wkerzendorf is this what you meant by "shifting the dilution factor into the code?" This is the change that loads the given dilution factor profile into the csvy model.

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