BioSTEAMDevelopmentGroup / Bioindustrial-Park

BioSTEAM's Premier Repository for Biorefinery Models and Results
MIT License
38 stars 18 forks source link

Consultation on liquid-liquid extraction #166

Open zasddsgg opened 1 week ago

zasddsgg commented 1 week ago

@yoelcortes, @yalinli2, @sarangbhagwat Hello, could I ask you some questions about the liquid-liquid extraction unit? Thanks for your help.

a) Does the partition coefficients in the tutorial refer to the octanol-water partition coefficients (https://biosteam.readthedocs.io/en/latest/API/units/liquid_liquid_extraction.html#biosteam.units.liquid_liquid_extraction.MixerSettler:~:text=MS1%20%3D%20bst.MixerSettler(%27MS1%27%2C%0A...,%27Methanol%27%2C%20%27Octanol%27)%2C%0A...%20%20%20%20%7D%2C%0A...%20))? The partition coefficients of methanol in the tutorial (1.38) is different from the partition coefficients found in the paper (-0.82). What does the partition coefficient of water and n-octanol mean (https://biosteam.readthedocs.io/en/latest/API/units/liquid_liquid_extraction.html#biosteam.units.liquid_liquid_extraction.MixerSettler:~:text=MS1%20%3D%20bst.MixerSettler(%27MS1%27%2C%0A...,%27Methanol%27%2C%20%27Octanol%27)%2C%0A...%20%20%20%20%7D%2C%0A...%20))? Does it also refer to the octanol-water partition coefficient? Whether it took the logarithm or not?

b) If I use a custom substance (as in the following code) instead of a substance in the database, when performing liquid-liquid extraction, if I want to use MixerSettler unit, do I need to add other physical properties besides the partition coefficient? When I customize the partition coefficient, is it OK to define the n-octanol/water partition coefficient for each substance as it did in the tutorial (https://biosteam.readthedocs.io/en/latest/API/units/liquid_liquid_extraction.html#biosteam.units.liquid_liquid_extraction.MixerSettler:~:text=MS1%20%3D%20bst.MixerSettler(%27MS1%27%2C%0A...,%27Methanol%27%2C%20%27Octanol%27)%2C%0A...%20%20%20%20%7D%2C%0A...%20))?

Sugar_model=bst.Chemical('Sugar_model',
                  default=True,
                  search_db=False,
                  formula='C10H15O3',
                  Tb=350.7+273.15, 
                  Hvap=82035.54660,
                  phase_ref="l", 
                  Tm=70+273.15,
                  Hfus=29600,
                  Hf=-790760,
                  Tc=580,
                  Pc=2500002,
                  Vc=0.0005)
zasddsgg commented 1 week ago

@yoelcortes, @yalinli2, @sarangbhagwat I looked up the relevant materials, but did not find 1.38 (partition coefficient of methanol), may I ask you where the source of this value is?

zasddsgg commented 1 week ago

@yoelcortes, @yalinli2, @sarangbhagwat I tried to separate several custom substances (just as in the following code) by liquid-liquid extraction, but it seems that all the custom substances are in the extractant, which is inconsistent with the experimental phenomenon, is it because I did not input the corresponding partition coefficient? Could I consult you what are the partition coefficient entered in the tutorial (https://biosteam.readthedocs.io/en/latest/API/units/liquid_liquid_extraction.html#biosteam.units.liquid_liquid_extraction.MixerSettler:~:text=MS1%20%3D%20bst.MixerSettler(%27MS1%27%2C%0A...,%27Methanol%27%2C%20%27Octanol%27)%2C%0A...%20%20%20%20%7D%2C%0A...%20)? Is it the water-n-octanol partition coefficient?

Sugar_model=bst.Chemical('Sugar_model',
                  default=True,
                  search_db=False,
                  formula='C10H15O3',
                  Tb=350.7+273.15, 
                  Hvap=82035.54660,
                  phase_ref="l", 
                  Tm=70+273.15,
                  Hfus=29600,
                  Hf=-790760,
                  Tc=580,
                  Pc=2500002,
                  Vc=0.0005)
zasddsgg commented 1 week ago

The patition coefficient in BioSTEAM refers to Patition coefficients in mol fraction in top stream over mol fraction in bottom stream. For custom substance, I don't know Patition coefficients in mol fraction in top stream over mol fraction in bottom stream (K), I just know the partition coefficient of substance in water-octanol, i.e. LogP. Could I ask you how to relate LogP to K? Because now the default is to extract all the custom substances into the extractant, which seems unreasonable.

zasddsgg commented 1 week ago

@yoelcortes, @yalinli2, @sarangbhagwat Hello, could someone help with this issue. Now the custom substances are all in the extractant. That doesn't make sense. I think I need to manually enter something like logP, but I don't know what code to enter it in, and I haven't found any tutorials or examples.

zasddsgg commented 1 week ago

@sarangbhagwat Hello, could I consult you how to get the partition coefficient in https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/BDO/separation_systems.py#L150-L155 and https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/BDO/separation_systems.py#L352-L359.

zasddsgg commented 1 week ago

@yoelcortes, @yalinli2, @sarangbhagwat It seems that because of the activity coefficient cannot be calculated for the custom substances (due to the lack of 'Dortmund','UNIFAC', 'PSRK'), could I ask you how to solve this problem?

Sugar_model.copy_models_from(tmo.Chemical('Sucrose')) cannot copy 'Dortmund','UNIFAC', 'PSRK' from 'Sucrose', And if I add 'Dortmund','UNIFAC', 'PSRK' when customizing chemicals in the following way, KeyError: 'CH2' when performing liquid-liquid extraction will also report.

Sugar_model=bst.Chemical('Sugar_model',
                  default=True,
                  search_db=False,
                  formula='C10H15O3',
                  Tb=350.7+273.15, 
                  Hvap=82035.54660,
                  phase_ref="l", 
                  Tm=70+273.15,
                  Hfus=29600,
                  Hf=-790760,
                  Tc=580,
                  Pc=2500002,
                  Vc=0.0005,
                  Dortmund = {'CH3': 2, 'CH2': 3})

This question has been bothering me for several days. Thanks for your help.

zasddsgg commented 6 days ago

@yoelcortes, @yalinli2, @sarangbhagwat Hello, could you help with #166 and #167, these two problems are very critical to the simulation, if not solved, it is impossible to continue to build the model and ensure the accuracy of the simulation. Thanks for your help again.