Replies: 1 comment 4 replies
-
Hi @carowjp, first of all, thank you for the offer to help; we have a relatively small team dedicated to general model development so we welcome any help we can get. For your specific questions, the answer is actually at least partially yes to all of those but there are some caveats. Firstly, the IDAES Helmholtz equation of state package now supports specifying new parameter sets for additional components. We already have a number of common refrigerants here: https://github.com/IDAES/idaes-pse/tree/main/idaes/models/properties/general_helmholtz/components. For brines and the like, we have another associated project called WaterTAP (https://github.com/watertap-org/watertap) which has been doing work on treatment of brines, and they have some property packages for those systems, including prototype interfaces to OLI (and we are looking to expand to include open-source tools like Phreeqc). On the topic of CoolProp, we do already have a prototype interface for Cubic equations of state, but anything more than that is more challenging. Whilst we can use balck-box (or grey-box) wrappers to access external tools, we need these to be able to return at least the first partial derivative of the output with respect to the inputs, which many tools do not support. We do however have tools for interfacing with Modelica that can provide this. One of the big things about the way we have structured IDAES is that we have kept properties separate from unit models as much as possible, and at least so far all the unit operation models (baring some very case specific examples) are general, thus we do not need to create new unit models for different feeds/materials. We have a list of standard names for all the properties we could think of (and it is easy to add new ones), and whenever a unit model requires a property it just asks the associated property package for the required variable and assumes that the property package will handle the necessary constraints (i.e. the unit model doesn't care how the value is calculated, just that it exists). Thus, we basically push off most of the hard part (i.e., all the thermodynamics) to the property packages. As I alluded to earlier, this is where the hard part starts, as getting the thermodynamics right is not easy, and whilst there are external tools that already do this they don't provide all the information we need. Thus, we have tried to do as much as possible within Pyomo itself which means writing out all the equations ourselves. If you have the time and interest to help us continue expanding the properties we can support, we would greatly welcome the input. If you want, we can try to find some time to discuss this further and try to give some pointers on where to start. |
Beta Was this translation helpful? Give feedback.
-
I was excited to find IDAES and Pyomo and appreciate the development effort.
Can someone please tell me if there are other property packages available or in the works for refrigerant mixtures, incompressible fluids (brines), or moist air? From my initial digging, I think the answers are no, no, and no.
An interface to CoolProp's high-level interface could be a possible path (somewhat related discussion here #428), and would be a path to REFPROP as well.
I have seen the super-critical CO2 work and the CoolProp cubic EOS wrapper. As a side-note CoolProp's refrigerant calculations seem to typically be done using Helmholtz equations of state. I am doing mechanical engineering R&D and need to be able to work with many refrigerant mixtures, as well as components such as heat exchangers with secondary fluids like glycols, and fin-tube heat exchangers with moist air for dehumidification applications.
Also, I assume that if such packages were developed for let's say moist air, then unit models would also have to be developed for new feed, product, and mixer blocks, as well as components such as fans/blowers and heat exchangers.
I have developed custom media models and full model libraries in Modelica so I have an idea of how much effort all this takes, but am willing to help. Getting started is a bit overwhelming.
Any input welcomed!
Beta Was this translation helpful? Give feedback.
All reactions