diff --git a/src/sink.cc b/src/sink.cc index bb7894e5a..98d2b2189 100644 --- a/src/sink.cc +++ b/src/sink.cc @@ -14,6 +14,7 @@ Sink::Sink(cyclus::Context* ctx) capacity(std::numeric_limits::max()), latitude(0.0), longitude(0.0), + keep_packaging(1), coordinates(latitude, longitude) { SetMaxInventorySize(std::numeric_limits::max());} @@ -43,6 +44,8 @@ void Sink::EnterNotify() { cyclus::Facility::EnterNotify(); LOG(cyclus::LEV_INFO4, "SnkFac") << " using random behavior " << random_size_type; + inventory.keep_packaging(keep_packaging); + if (in_commod_prefs.size() == 0) { for (int i = 0; i < in_commods.size(); ++i) { in_commod_prefs.push_back(cyclus::kDefaultPref); diff --git a/src/sink.h b/src/sink.h index 8de16975d..ea1ae1732 100644 --- a/src/sink.h +++ b/src/sink.h @@ -255,6 +255,18 @@ class Sink "frequency of the request, this is the upper bound. Default 1e299"} int random_frequency_max; + #pragma cyclus var { \ + "default": 1, \ + "tooltip": "Whether to persist packaging in the sink.", \ + "doc": "Boolean value about whether to keep packaging. If true, " \ + "packaging will not be stripped upon acceptance into the " \ + "sink. If false, package type will be stripped immediately " \ + "upon acceptance. Has no effect if the incoming material is not " \ + "packaged.", \ + "uilabel": "Keep Packaging", \ + "uitype": "bool"} + bool keep_packaging; + #pragma cyclus var { \ "default": 0.0, \ "uilabel": "Geographical latitude in degrees as a double", \