Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor pipes module #120

Open
MassimoCimmino opened this issue May 31, 2021 · 0 comments
Open

Refactor pipes module #120

MassimoCimmino opened this issue May 31, 2021 · 0 comments

Comments

@MassimoCimmino
Copy link
Owner

#36 / #79 showed that the current structure of the pipes is not versatile enough to allow the convenient implementation (and most importantly, the usage) of new GHE types (in this case coaxial pipes but we could foresee other use cases like groundwater-filled boreholes).

It is inconvenient to have the users provide the values of the film+pipe wall resistances as inputs, especially now with the new media module which provides easy access to fluid properties.

This issue is thus to refactor the structure and interface of pipe classes to facilitate their use and increase their capabilities.

The final interface should only require geometrical properties of the pipes, physical properties of materials and the fluid. All resistances would be calculated internally. This provides an opportunity to increase the capabilities of these objects. Right now, thermal properties are static, i.e. resistances do not change after initialization. Options could be added to re-evaluate film resistances when mass flow changes (or even when temperature changes).

In terms of structure of the module, an option to facilitate different pipe types is to add an additional pipe class that takes care of fluid flow calculations, which would be called by the current _BasePipe class (probably to be renamed, _BaseHeatExchanger ?). The resulting structure would then be:

_BasePipe --┐
            ├--> _BaseHeatExchanger --> Network
Borehole  --┘    (Former _BasePipe)

The first task is to settle on how to interact with these objects, e.g. how would existing examples change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant