-
Notifications
You must be signed in to change notification settings - Fork 4
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
Draft: Add FD generation with interwoven option #115
base: main
Are you sure you want to change the base?
Conversation
Wip interwooven fd
48146b5
to
e5f0146
Compare
Since the specific "flow diverter" geometry is added to mehspy, in my opinion it would make sense to briefly describe what a flow diverter actually is or for what this geometry is intended? As a person who has no additional knowledge on this type of geometry it would be very helpful (also regarding the abbreviation The interwoven feature sounds very interesting! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @knarfnitram for the contribution.
Two general remarks:
-
If is difficult to draw a sharp line on whether or not to include geometry into MeshPy itself or leave it in the calling scripts. Currently the FD geometry is simply two nested loops that create a helix. I personally would not check that into MeshPy at the moment. However, since this will likely become more complex in the future, I am fine with adding this also now.
-
I assume this
interwove
functionality is to create some sort of "webbing" between the FD wires. What you are doing now is to modify the reference configuration so you can initialise beam-to-beam contact, correct? I think that is a bad idea, as even very small modifications of the reference geometry of a thin structure will change that structures overall behaviour in a significant way. In my opinion you have two options here: i. move the nodes apart via a non-homogeneous DBC or ii. apply loads that will separate the beams (as is done in Chapter 4.5.3.3 in Christoph Meier's dissertation). Then you can add beam-to-beam contact and remove the initial BC.
@@ -632,6 +642,100 @@ def couple_nodes( | |||
for node_list in partner_nodes: | |||
self.add(coupling_factory(node_list, coupling_type, coupling_dof_type)) | |||
|
|||
def interwove_nodes_of_z_cylinder(self, *, nodes=None, fibers, beam_radius=None): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a highly problem specific function and does not belong as a member of Mesh
.
import numpy as np | ||
|
||
|
||
def create_beam_flow_diverter( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we add additional geometry we have to make sure to document this.
To generate the flow diverter, I have added a simple function to back up how this can done.
Additionally, I started drafting interwoven feature. This allows to move the intersection wires just slightly above such that the wires do not intersect anymore.
In the following picture you can clearly see it, the first node is inside and at the next intersection it has moved outside.
The question is, can we generalize this algorithm a little bit more?
Also, for high element numbers it's not yet quite optimal, since it adjusts only the intersecting elements, but not the position of the surrounding neighbors. Therefore, the curvature is not optimal anymore.