You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It appears that the following configuration error in ControlVolume0D (and similarly for 1D) will not be called when time_units is set to None while instantiating a Flowsheet:
if self.config.dynamic:
f_time_units = self.flowsheet().time_units
if (f_time_units is None) ^ (units("time") is None):
raise ConfigurationError(
"{} incompatible time unit specification between "
"flowsheet and property package. Either both must use "
"units, or neither.".format(self.name)
)
Instead, the ConfigurationError from FlowsheetBlockData will be raised:
elif self.config.time_units is None and self.config.dynamic:
raise ConfigurationError(
f"{self.name} - no units were specified for the time domain. "
f"Units must be be specified for dynamic models."
So it seems the first ConfigurationError that I mentioned will only be raised if time_units are set appropriately and no units are specified for the property model. Notably, there seems to be no testing to ensure the config error occurs.
Additionally, there is no safeguard in the case where the user might provide dimensionless units for the flowsheet and units for the property model. For example, setting time_units to dimensionless for the Flowsheet while using units in the property package will result in a InconsistentUnitsError for material_balances: InconsistentUnitsError: Error in convert: units not compatible.: mole not compatible with mole / second.
The text was updated successfully, but these errors were encountered:
For clarity, this is something that I can fix, but it is not at the top of my list of things to do yet. So I am posting this issue here for awareness and in case someone else has time to address it before I can (or in case the team votes that it is low enough priority not to pursue).
@adam-a-a, says this is mostly just a notice/reminder for the idaes dev team. It's a low priority for him, if someone on the idaes teams wants to tackle this go for it, otherwise he won't get to this by Nov.
It appears that the following configuration error in
ControlVolume0D
(and similarly for 1D) will not be called whentime_units
is set toNone
while instantiating aFlowsheet
:Instead, the ConfigurationError from
FlowsheetBlockData
will be raised:So it seems the first ConfigurationError that I mentioned will only be raised if time_units are set appropriately and no units are specified for the property model. Notably, there seems to be no testing to ensure the config error occurs.
Additionally, there is no safeguard in the case where the user might provide dimensionless units for the flowsheet and units for the property model. For example, setting
time_units
todimensionless
for theFlowsheet
while using units in the property package will result in aInconsistentUnitsError
formaterial_balances
:InconsistentUnitsError: Error in convert: units not compatible.: mole not compatible with mole / second.
The text was updated successfully, but these errors were encountered: