You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
The fluid region
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.
The text was updated successfully, but these errors were encountered:
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
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:
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:
Unless we're missing an elegant solution here, it might be that there's a trade-off between efficiency & modularity.
The text was updated successfully, but these errors were encountered: