tespy icon indicating copy to clipboard operation
tespy copied to clipboard

Implement calculated dissipative heat losses in pipe

Open HaSchneider opened this issue 7 months ago • 5 comments

General

The changes includes a component called "pipeline". It is a pipe component, where dissipative heat losses by forced convection by pipes over the ground and conduction through the soil by burried pipes is calculated.

Documentation

Not documented yet.

Testing

Basic test added to "test_piping.py"

Questions and Comments

The component needs several parameters to calculate the heat loss and they are grouped in a 'Q_ohc_group'. But depending on the case (pipes in ground/over ground) slightly different parameters are needed (pipe_depth/wind_velocity). Is there a way to subgroup those parameters?

HaSchneider avatar May 20 '25 08:05 HaSchneider

Hi @HaSchneider,

thank you for your contribution!

The component needs several parameters to calculate the heat loss and they are grouped in a 'Q_ohc_group'. But depending on the case (pipes in ground/over ground) slightly different parameters are needed (pipe_depth/wind_velocity). Is there a way to subgroup those parameters?

We could set up two different groups in this case. Depending on which parameters you pass either one or the other group would be active. Q_ohc_group_surface and Q_ohc_group_subsurface maybe? One of the groups would have:

  • Q_ohc_group_surface: insulation_m, insulation_tc, Tamb, material, pipe_thickness, environment_media, wind_velocity
  • Q_ohc_group_subsurface: insulation_m, insulation_tc, Tamb, material, pipe_thickness, environment_media, pipe_depth

Then, if you supply pipe_depth, the subsurface group will be active, if you supply wind_velocity the surface group will be active. Based on the choice, we an also add a consistency check after the super().preprocess() call.

I made a first commit and pushed it to your branch to format the code a little bit. I will add a couple of comments directly in the code :).

Have a good sunday!

Francesco

fwitte avatar May 25 '25 14:05 fwitte

Once we have sorted out of the comments I left inside the code, and split up the two groups (surface and subsurface group), we can go ahead an merge this. Thank you again!

fwitte avatar May 25 '25 14:05 fwitte

The commit a7e3b41d6187f598b2475d9143a8bfa78da45c58 raises an error for me:

AttributeError: 'Pipeline' object has no attribute 'dp'

I uncommented it in my last commit, for what is it needed?

HaSchneider avatar Jun 01 '25 20:06 HaSchneider

The commit a7e3b41 raises an error for me:

AttributeError: 'Pipeline' object has no attribute 'dp'

I uncommented it in my last commit, for what is it needed?

That is for postprocessing. The SimpleHeatExchanger postprocessing implements kA, which I deemed not relevant for this component. My thought was: Since one would specify so many details on the component here, you would not use the kA equation. For that reason, I removed the kA parameter also from the parameter list and then overwrote the postprocessing method.

dp is the pressure drop on the component. It should be available through the component's parameters as they are inherited from the SimpleHeatExchanger (or Pipe).

fwitte avatar Jun 02 '25 04:06 fwitte

Hi @HaSchneider,

sorry I kind of lost track of this as I was quite involved with the new version release of tespy (and somehow I did not receive a notification by github, that you updated the branch here...). Anyways: Thank you very much for updating it. I will look into it asap and then we can go ahead merge the feature and I will create a new release soon.

Have a nice weekend

Francesco

fwitte avatar Jun 27 '25 14:06 fwitte

@HaSchneider: Since I released version 0.9 with vast changes this Friday, there were a couple of merge conflicts. I resolved them and pushed to your branch. The tests seem to work for me, I had one sightly different result of .4 W on the second test and adjusted that.

fwitte avatar Jun 29 '25 19:06 fwitte

Completed! Thank you for your contribution @HaSchneider

fwitte avatar Jul 07 '25 06:07 fwitte