IDAES / idaes-pse

The IDAES Process Systems Engineering Framework
https://idaes-pse.readthedocs.io/
Other
206 stars 228 forks source link

Add custom term in Heat Exchanger model? #1426

Closed Zhuoran29 closed 1 month ago

Zhuoran29 commented 1 month ago

Currently the heat exchanger models (I'm using 0D HX model) consider only heat transfer in the overall enthalpy balance, and it'd be very helpful if this model could inherit the custom_term from control_volume0d.

In my case, it helps when liquid-liquid separation heat (or other types of latent heat) is involved.

Or is there any way to temporarily get around this issue?

andrewlee94 commented 1 month ago

@Zhuoran29 I am not exactly sure what you are asking for in this case, but in general I do not think the heat exchanger models want to support the custom terms as those are very situational (and thus much harder to test). If you want to have those terms, then I would suggest the best approach would be for you to create a custom model (probably by copying the existing HX model) and add the terms you want.

I am also curious as to why you want a custom term for dealing with latent heat. Custom terms were intended for cases where you might have some additional forms of energy transfer, but heat of separation is not an energy transfer. Normally, that is something that should be handled by the property package as part of the definition of enthalpy - i.e. the correct approach is normally to include all relevant forms of heat in the enthalpy term so that they get included in the energy balances automatically.

Zhuoran29 commented 1 month ago

@andrewlee94 Thanks a lot for your response. Yes I was using a customized model instead. I agree that the custom terms are very situational and may not be suitable for a general heat exchanger model.

The reason that I didn't implement the associated term in the property package is because I don't have enough data to describe the separation heat vs. temperature and pressure relationships and would like to assign the value externally when needed. I also agree that the correct approach is to adjust the enthalpy flow term in the property package, and maybe I should try some 'if-else' conditions there. Thanks again!