Node Conformity for Multilayer Composite Matrix (Crossply) Fiber Mesh
Here's my metagoal: Develop a transfinite meshing model for a multilayer, crossply composites matrix-fiber rectangular specimen that specifically has node conformity at the assembly contact interfaces.
I've been able to develop a single layer meshing model for this crossply composite structure. I took a bottom-up approach, which splits up the matrix-fiber geometry into a bunch of separate volumetric segments to reach the transfinite meshing condition. Here what a full layer looks like:
Each of the smaller volumetric segments have the same general pattern (apart from the edges and central regions, but those are edge cases), and here's what each of the smaller segments look like:
Lastly, I took a Butterfly-Mesh approach in meshing the almost-cylindrical crossply fibers. For reference, crossply refers to the orientation of the fibers. In this case, these fibers are oriented 30 degrees relative to the far left edge, and in each layer, the orientation of the single-layer composites are opposite relative to one another. So, in this model the two layers on top and bottom are flipped over such that the rectangular boundaries are preserved in the multilayer structure. Here are what the fibers look like:
My problem now is going from a single layer composites structure to a multilayer composites structure. Because the layers are oriented opposite to one another, I can't create another layer and superimpose it onto the top or bottom of this single layer because I need the nodes to fully conform to each other between the layers for contact FEA reasons.
Given this, does GMSH offer any methods which gets transfinite nodes to conform to one another (gmsh.model.mesh.embed(dim, tags, inDim, inTag)???)? I imagine not, so is there a method to directly transform and/or place nodes to a desired location? With this functionality, ideally, I'd be able to transform the nodes on the top and bottom surface of this single layer structure to be able to conform to a multilayer structure.
On a completely separate note, is it possible to boolean edit mesh structures after fully 3D meshing them (similar to the fuse, intersect, etc...)? This might also be another approach I'd want to take if the previous method doesn't work out.
As a reference, here's my code (it's very dense): generalized_solution.py