I tried out the 'Shell&Tube Rating' method by switching from the 'CalcBothTemp UA' but the Flash claculation does not converge:
Calculation mode: ShellandTube_Rating
Validating inlet stream 1...
Validating inlet stream 2...
Water_In is the cold stream.
NH3_In is the hot stream.
Maximum possible heat exchange is 0.234510221530842 kW.
ERROR: exception raised on file , method Flash_PT, line 0:
Flash calculation error.
I used a simple single pass (2 tubes in a concentric arrangement) shell & tube heat exchanger about a 1m long with an inner tube OD/ID 9.54/7.34mm and no baffles (100% cut). Outer tube ID=25.4mm.
Also if I change the 'CounterCurrent' flow to 'CoCurrent' in the 'CalcBothTemp UA' method the flash calculation fails.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Is the flash calculation 'touchy' to changing from 'CounterCurrent' to 'CoCurrent'? Any suggestions or hints for what I can try, or do you need more time to investigate this?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you for the reply. Do you have any estimate on when you will be able to delve into this problem and fix it? I realize that all of this work is voluntary and other tasks and responsibilities take precedence, but your reply would be very useful in establishing a time scale for a project that I am working on. Thank you for your work and diligent efforts at building and maintaining this excellent software suite!
Do you want me to open a ticket for it?
Regards, JMB
Last edit: JMB 2016-01-19
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
i had a look into this algorithm and identified the root cause of the problem. This heatexchanger is much too small for this task and therefore the hot stream is reaching the temperature of the cold stream. I have to figure out a new iterations approach for that case which still needs some experimentation.
Regards
Gregor
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi JMB,
it took a while, but as i promised, I developed a new algorithm for that unit operation. You can fetch this either from GitHub or you have to wait for the next release on SourceForge.
This new approach is much faster and handles even problematic cases without trouble: very small and very large exchange area phase changes in one or both streams
But keep in mind this heat exchanger only does a global calculation. Which means that phase changes in a stream will cause an approximated result only. To get an exacte result would need to adopt a more extensive algorithm where the heat exchanger is segmented into many slices which are to be calculated separately.
Regards
Gregor
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
After some investigation, I found that the algorithm is ok. The problem is that U is too big, far from reality. If you change the calculation mode to CalcBothTemp, you'll find that you'll be able to transfer ~ 0.11 kW in cocurrent mode with a corresponding value of 2.55 W/m2.K for U. When you input this value in CalcBothTempUA mode, then it will converge. 1000 W/m2.K seems too far from the solution for the convergence algorithm to work.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The UA method converges to a solution now! Excellent work ...
I will test the 'Shell&Tube Rating' as well and report back.
I tried out the 'Shell&Tube Rating' method by switching from the 'CalcBothTemp UA' but the Flash claculation does not converge:
Calculation mode: ShellandTube_Rating
Validating inlet stream 1...
Validating inlet stream 2...
Water_In is the cold stream.
NH3_In is the hot stream.
Maximum possible heat exchange is 0.234510221530842 kW.
ERROR: exception raised on file , method Flash_PT, line 0:
Flash calculation error.
I used a simple single pass (2 tubes in a concentric arrangement) shell & tube heat exchanger about a 1m long with an inner tube OD/ID 9.54/7.34mm and no baffles (100% cut). Outer tube ID=25.4mm.
Also if I change the 'CounterCurrent' flow to 'CoCurrent' in the 'CalcBothTemp UA' method the flash calculation fails.
It doesn't always converge, but this is not necessarily a bug.
Is the flash calculation 'touchy' to changing from 'CounterCurrent' to 'CoCurrent'? Any suggestions or hints for what I can try, or do you need more time to investigate this?
The only difference is in the initial outlet temperature estimates. I'll let Gregor handle this since he's the author of this calculation mode.
Hello Daniel / Gregor,
Thank you for the reply. Do you have any estimate on when you will be able to delve into this problem and fix it? I realize that all of this work is voluntary and other tasks and responsibilities take precedence, but your reply would be very useful in establishing a time scale for a project that I am working on. Thank you for your work and diligent efforts at building and maintaining this excellent software suite!
Do you want me to open a ticket for it?
Regards, JMB
Last edit: JMB 2016-01-19
Hi,
i had a look into this algorithm and identified the root cause of the problem. This heatexchanger is much too small for this task and therefore the hot stream is reaching the temperature of the cold stream. I have to figure out a new iterations approach for that case which still needs some experimentation.
Regards
Gregor
OK. Thank you for the reply. I await your results ... eagerly!
I woud like you to look at:
https://sourceforge.net/p/dwsim/tickets/107/
as well ...
Last edit: JMB 2016-01-19
Hi JMB,
it took a while, but as i promised, I developed a new algorithm for that unit operation. You can fetch this either from GitHub or you have to wait for the next release on SourceForge.
This new approach is much faster and handles even problematic cases without trouble:
very small and very large exchange area
phase changes in one or both streams
But keep in mind this heat exchanger only does a global calculation. Which means that phase changes in a stream will cause an approximated result only. To get an exacte result would need to adopt a more extensive algorithm where the heat exchanger is segmented into many slices which are to be calculated separately.
Regards
Gregor
After some investigation, I found that the algorithm is ok. The problem is that U is too big, far from reality. If you change the calculation mode to CalcBothTemp, you'll find that you'll be able to transfer ~ 0.11 kW in cocurrent mode with a corresponding value of 2.55 W/m2.K for U. When you input this value in CalcBothTempUA mode, then it will converge. 1000 W/m2.K seems too far from the solution for the convergence algorithm to work.