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

Allow volumes to be utilised by adjacent Components and Assemblies #67

Open
lukethehuman opened this issue Sep 3, 2024 · 0 comments
Open
Labels
enhancement New feature or request question Further information is requested

Comments

@lukethehuman
Copy link
Collaborator

There is currently no easy way for adjacent component/assembly objects to share volumes, which can lead to repeat operations in a workflow where multiple geometries depend upon common volumes.

As a simple example, consider an assembly describing a cylindrical pipe consisting of two components:

  1. The fluid region
  2. The pipe wall

Both components use the same cylindrical volume (the fluid region) in the construction, the wall using it as a subtract operation from a larger cylinder. Under the hood, both components independently create that volume as part of their make_geometry() method. For more complicated assemblies, there may be multiple times where such operations are repeated unnecessarily due to the independence of hypnos components.

I don't have a suggestion for the best way to resolve this, as it might simply be a required downside to maintaining the current modularity of component classes. Some ideas generated from discussion with @helen-brooks and @sid-mungale are:

  • It may make sense for certain components, such as a pipe wall, to be dependant on other components. They could then use the instantiated geometry directly. For such components, the benefit of being able to be instantiated without the dependant component might be minimal.
  • One workflow could see the creation of volumes outside of the components, e.g. within an Assembly class, which are then used by the various components in whatever way is required. However, this would make the components harder to instantiate as they require would volumes as inputs, not just numerical parameters.

Unless we're missing an elegant solution here, it might be that there's a trade-off between efficiency & modularity.

@lukethehuman lukethehuman added enhancement New feature or request question Further information is requested labels Sep 3, 2024
@lukethehuman lukethehuman changed the title Allow volumes to be utilised by adjacent Components and Assemblies. Allow volumes to be utilised by adjacent Components and Assemblies Sep 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant