Poor meshing of near-vertical yarns

General discussion about TexGen.

Moderators: Martin, Developers

Post Reply
mdgiovinazzo
Posts: 6
Joined: Thu Apr 22, 2010 10:03 pm
Location: New Hampshire, USA

Poor meshing of near-vertical yarns

Post by mdgiovinazzo »

I regret that I haven't been able to prepare any scripts yet to illustrate this bug. Hopefully my description is helpful for the time being.

Consider the following geometry (0°/90° stacked):
Image



which produces the following reasonable mesh (matrix hidden):
Image



When we add a z-binder yarn (note: the full unit cell is not shown; this is a reduced boundary)...:
Image


Image

(This is a 0.15 power-ellipse cross section, with the major axes touching)
Image


We produce a mesh with what I believe are two separate (related?) problems. The first one is illustrated in this picture:
Image

In the image above, we see an excessive amount of elements being generated along the width-axis of the yarn. This is a big problem for FEA because the tiny elements perpetuate throughout the thickness of the model (and this isn't even the full unit cell). Note that this does not appear to be an artifact related to tolerance. The tolerance in the image above is visibly crude (overlapping yarns fully touch until the last element-length), and refining the tolerance causes even more elements to be generated.

Here is an unrealistically crude tolerance case where most of the stuffer is voided by matrix, yet the tiny elements still exist along the width-axis of the yarn (matrix not shown):
Image

Next, examine the elements along the path of the binder yarn:

Image

Notice that the element lengths along the outside face of the binder yarn are much longer than the typical length. It appears as if the mesher steps along in the global coordinate direction when generating nodes, rather than the local centerline tangent direction. This becomes less pronounced as the angle of the binder yarn drops down.


Here is another geometry that exhibits only the second problem, to a lesser extent (but still undesirable):
Image

and mesh:

Image

Note the very long elements along the face of the binders.
louisepb
Project Leader
Posts: 998
Joined: Tue Dec 08, 2009 2:27 pm
Location: Nottingham

Post by louisepb »

Hi,

The poor meshing of near-vertical yarns is a known issue. It's a product of the way the meshes are generated in TexGen: the yarn areas are projected onto a single plane which is then triangulated. Vertcal lines are then dropped from the node points generated and the intersection points with the yarns calculated. The vertical columns are then subdivided. The algorithm is fine until the angle is near vertical, the projected triangles then cover a large section of the surface of the yarn. I need to think of a better way to address this problem.

I haven't seen the issue with the tiny sections before. It looks like it is a problem with the initial triangulation which would then be projected through the thickness of the yarn.

Best regards,
Louise
mdgiovinazzo
Posts: 6
Joined: Thu Apr 22, 2010 10:03 pm
Location: New Hampshire, USA

Post by mdgiovinazzo »

Fortunately, I'm able to provide a script this time, but it seems like this is same issue that you're already aware of.

For a non-eccentric cross section such as in:
Image

We end up with a good mesh everywhere except at the width-edges:

Image

I don't see of a good way to fix this problem if the mesher is projecting the top down area on to a plane, triangulating, then drawing lines up. Possibly, another way to mesh an individual yarn would be to look at the area of each cross sectional slice (on planes normal to the local centerline tangent vector, to get the full area). Then, step forward along the centerline by the seed size arc length, mesh that section, and connect the two. I've sketched it below:

Image

I think this technique would be able to solve the problem of elongated near-vertical yarns. However, I think it might be difficult from here to mesh the matrix and deal with adjacent yarns. Admittedly, I'm not expert in this, just some thoughts.
mdgiovinazzo
Posts: 6
Joined: Thu Apr 22, 2010 10:03 pm
Location: New Hampshire, USA

Post by mdgiovinazzo »

Louise,

I've realized I might be able to solve my particular problem by changing the normal vector of the projection plane. Is it hard coded in or is this something I can change via python?
louisepb
Project Leader
Posts: 998
Joined: Tue Dec 08, 2009 2:27 pm
Location: Nottingham

Post by louisepb »

Unfortunately changing the projection plane isn't something you can alter. The algorithm finds the edges of the yarns and then sets the z coordinate to 0 to give the lines on the plane for triangulation. Not easily changed therefore, although it's an interesting idea - food for thought!

Louise
mdgio
Posts: 3
Joined: Fri Jul 23, 2010 6:02 pm

Post by mdgio »

Hello again,

I've taken particular interest in this statement:
For applications where a conformal mesh is required, TexGen's python interface enables a textile model to be accessible from within the Abaqus/CAE FE preprocessor. Scripting methods have been developed to reconstruct the textile geometry in native Abaqus/CAE objects, permitting the automated use of advanced functionality within Abaqus. A typical model generated using this technique is shown in Figure 2.
Do you have any details on such scripting methods? Is there an elegant way to import TexGen geometry and yarn orientation to Abaqus for its own meshing?
m_azodi
Posts: 6
Joined: Mon Oct 17, 2011 11:49 am

Re: Poor meshing of near-vertical yarns

Post by m_azodi »

Hi there,

I am new to TexGen, and Abaqus. I saw the first two meshed images from the top of this page. And I am looking to have an option or piece of script to get it for mine as well.
here is my python script for my desired textile in texgen:

# Create a textile
Textile = CTextile()
# Create a python list containing 4 yarns
Yarns = [CYarn(), CYarn(), CYarn(), CYarn()]
# Add nodes to the yarns to describe their paths
Yarns[0].AddNode(CNode(XYZ(0, 0, 0)))
Yarns[0].AddNode(CNode(XYZ(0.22, 0, 0.05)))
Yarns[0].AddNode(CNode(XYZ(0.44, 0, 0)))
Yarns[1].AddNode(CNode(XYZ(0, 0.22, 0.05)))
Yarns[1].AddNode(CNode(XYZ(0.22, 0.22, 0)))
Yarns[1].AddNode(CNode(XYZ(0.44, 0.22, 0.05)))
Yarns[2].AddNode(CNode(XYZ(0, 0, 0.05)))
Yarns[2].AddNode(CNode(XYZ(0, 0.22, 0)))
Yarns[2].AddNode(CNode(XYZ(0, 0.44, 0.05)))
Yarns[3].AddNode(CNode(XYZ(0.22, 0, 0)))
Yarns[3].AddNode(CNode(XYZ(0.22, 0.22, 0.05)))
Yarns[3].AddNode(CNode(XYZ(0.22, 0.44, 0)))
# Loop over all the yarns in the list
for Yarn in Yarns:
# Set the interpolation function
Yarn.AssignInterpolation(CInterpolationCubic())
# Assign a constant cross-section all along the yarn of elliptical shape
Yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(0.18, 0.04)))
# Set the resolution of the surface mesh created
Yarn.SetResolution(20)
# Add repeat vectors to the yarn
Yarn.AddRepeat(XYZ(0.44, 0, 0))
Yarn.AddRepeat(XYZ(0, 0.44, 0))
# Add the yarn to our textile
Textile.AddYarn(Yarn)
# Create a domain and assign it to the textile
Textile.AssignDomain(CDomainPlanes(XYZ(0, 0, -0.02), XYZ(0.66, 0.44, 0.07)))
# Add the textile with the name "polyester"
AddTextile("polyester", Textile)
# Saving to TG3 file format
SaveToXML("textile.tg3")

I want to get the mesh of this textile inside the TexGen with the help of any python script or any option in GUI of texGen (if not, anyhow) and then be able to change the size and dimensions of the meshed cells.
And how can I save this mesh inorther to be able to reuse it or feed it into Abaqus for applying forces and...

Appreciate your fast reply in advance.
louisepb
Project Leader
Posts: 998
Joined: Tue Dec 08, 2009 2:27 pm
Location: Nottingham

Re: Poor meshing of near-vertical yarns

Post by louisepb »

See reply in Hexahedral Meshing thread.
Post Reply