BioSTEAMDevelopmentGroup / biosteam

The Biorefinery Simulation and Techno-Economic Analysis Modules; Life Cycle Assessment; Chemical Process Simulation Under Uncertainty
Other
180 stars 35 forks source link

Problem with some components properties in Pump and Flash units #124

Closed luizmartinocosta closed 2 years ago

luizmartinocosta commented 2 years ago

Hello,

I am having a problem with some properties calculations, like liquid viscosity method and apparently a Gas_Enthalpy_Ref_Solid, for some components in the Pump and Flash units depending on their phases. If I don't specify the phase, I get a Gas_Enthalpy_Ref_Solid error in the Flash, but if I specify the phase as liquid or solid, I get a liquid viscosity method error in the Pump. I am also sending an ipython notebook that can show my problema in a clearer way.

Fructose_test.zip

I already tried to change the viscosity properties to being the default, but it didn't work for me, so I don't really know what I could do besides trying to build the components from the ground up. If there is no other way, in the case of the component 'TAG', what properties should I specify for a distillation operation in which it is the heavy-key component?

Thanks!

yoelcortes commented 2 years ago

Hi Luiz,

Thanks for submitting the issue. The following should work for now:

chemicals = bst.Chemicals(
    ['Water',
     bst.Chemical('Fructose',
                  phase='l'),
     bst.Chemical('TAG', Hfus=0,
                  search_ID='122-32-7',  
                  phase='l')]
)
# At 20 C, 60% wt sucrose is 56.7 cP while pur water is 1 cP
# 56.7 = x * 0.6 + 1 * 0.4
# x = (56.7 - 0.4) / 0.6
water_mu = chemicals.Water.mu.l(293.15, 101325)
fructose_mu = (56.7 - 0.4) / 0.6 * water_mu 
chemicals.Fructose.mu.add_method(fructose_mu) # Only one phase, so use Fructose.mu (not Fructose.mu.l)
bst.settings.set_thermo(chemicals)

If you'd like to have TAG as the heavy-key for distillation, make sure to use vacuum distillation (set a low pressure) and you test/define the following properties:

Once you have those setup, run chemical.reset_free_energies() to reload enthalpy and entropy algorithms (to use the new Cn/Hvap/Hfus models you defined).

You might need to make sure other models like mu, and sigma are working well for your temperature ranges of operation.

Here is workflow that might be useful for you:

Let me know if you run into any more trouble, Thanks!

luizmartinocosta commented 2 years ago

The problem with fructose was fixed with your insight and now I will have to look for some models for TAG, but I think that it is not going to appear new problems.

Thanks a lot for your help!

yoelcortes commented 2 years ago

My pleasure, please feel free to submit more issues if you run into anything.

Thanks!