Voxel Mesh - only generates part of yarn
Moderators: Martin, Developers
Voxel Mesh - only generates part of yarn
Hi,
I've created a textile in TexGen which models tows that are stitched together. When I export this as an Abaqus voxel file and use HyperMesh to transform this into a fluent .cas file for use in Ansys I have an issue where part of the stitching yarns are missing.
I've attached images of the top and bottom of the model in TexGen and the mesh in Ansys which shows the differences in the thin stitching yarn used.
Increasing the size of the stitching yarns didn't stop parts of them missing.
The export options are:
X voxel count: 200
Y voxel count: 200
Z voxel count: 100
Output Matrix
Periodic Boundary Conditions: Material Continuum
Element Type: C3D8R
Any help would be much appreciated.
Thanks,
I've created a textile in TexGen which models tows that are stitched together. When I export this as an Abaqus voxel file and use HyperMesh to transform this into a fluent .cas file for use in Ansys I have an issue where part of the stitching yarns are missing.
I've attached images of the top and bottom of the model in TexGen and the mesh in Ansys which shows the differences in the thin stitching yarn used.
Increasing the size of the stitching yarns didn't stop parts of them missing.
The export options are:
X voxel count: 200
Y voxel count: 200
Z voxel count: 100
Output Matrix
Periodic Boundary Conditions: Material Continuum
Element Type: C3D8R
Any help would be much appreciated.
Thanks,
- Attachments
-
- TexGenBottom.PNG (193.32 KiB) Viewed 22543 times
-
- AnsysTop.PNG (216.36 KiB) Viewed 22543 times
-
- AnsysBottom.PNG (207.47 KiB) Viewed 22543 times
Re: Voxel Mesh - only generates part of yarn
Hi,
Apologies for the delay in replying - I wasn't at work last week.
The most likely reason for part of the stitching yarn being missing is that the number of voxels is not large enough. When the voxels are generated the voxel is assigned to a particular yarn/matrix based on the centre point of the voxel. The number of voxels needs to be high enough to guarantee that enough of the voxel centres are within the thin yarn to give a continuous yarn. Have you tried viewing the input file in abaqus to see which of the voxels have been assigned to which yarn/matrix? (You may also be able to do this in Hypermesh but I'm not a user so am not sure about that).
Let me know if changing the voxel resolution doesn't solve the problem.
Best regards,
Louise
Apologies for the delay in replying - I wasn't at work last week.
The most likely reason for part of the stitching yarn being missing is that the number of voxels is not large enough. When the voxels are generated the voxel is assigned to a particular yarn/matrix based on the centre point of the voxel. The number of voxels needs to be high enough to guarantee that enough of the voxel centres are within the thin yarn to give a continuous yarn. Have you tried viewing the input file in abaqus to see which of the voxels have been assigned to which yarn/matrix? (You may also be able to do this in Hypermesh but I'm not a user so am not sure about that).
Let me know if changing the voxel resolution doesn't solve the problem.
Best regards,
Louise
Re: Voxel Mesh - only generates part of yarn
Hi Louise,
I wish to ask regarding exporting the voxel mesh.When i generate a voxel file it generates an orientation file.In this file the element number are written directly written as 1,2,3 and so on.When i try to run this in abaqus it does not find this numbering as it asks me to enter the elements numbers as Part-1-1.1,Part-1-1.2,Part-1-1.3...(Where Part-1-1 is the instance name).Is there a way around it as i might have to change this everytime i export .Secondly is .eld file only for information as i have not seen it being used by abaqus .
Thanks in advance
Regards,
Varun
I wish to ask regarding exporting the voxel mesh.When i generate a voxel file it generates an orientation file.In this file the element number are written directly written as 1,2,3 and so on.When i try to run this in abaqus it does not find this numbering as it asks me to enter the elements numbers as Part-1-1.1,Part-1-1.2,Part-1-1.3...(Where Part-1-1 is the instance name).Is there a way around it as i might have to change this everytime i export .Secondly is .eld file only for information as i have not seen it being used by abaqus .
Thanks in advance
Regards,
Varun
Re: Voxel Mesh - only generates part of yarn
Hi Varun,
I'm not sure why abaqus is asking for element numbers to be entered. I haven't come across this before. The .ori and.eld files will only be loaded if you run from the command line not from CAE so could this be the problem?
The volume fractions in the eld file will only be used if you have set up a user subroutine specifying material properties for different volume fractions.
Hope that helps,
Louise
I'm not sure why abaqus is asking for element numbers to be entered. I haven't come across this before. The .ori and.eld files will only be loaded if you run from the command line not from CAE so could this be the problem?
The volume fractions in the eld file will only be used if you have set up a user subroutine specifying material properties for different volume fractions.
Hope that helps,
Louise
Re: Voxel Mesh - only generates part of yarn
Hi Louise,
I don't know how to run it from command line with the orientation files could you help me with that .Actually there are no section assignments to my model as well in abaqus may be because i assign the material properties in abaqus.I am not sure whether i am doing everything right or not with voxel generation.
Thanks,
Varun
I don't know how to run it from command line with the orientation files could you help me with that .Actually there are no section assignments to my model as well in abaqus may be because i assign the material properties in abaqus.I am not sure whether i am doing everything right or not with voxel generation.
Thanks,
Varun
Re: Voxel Mesh - only generates part of yarn
Hi Varun,
There is a tutorial on the TexGen webpage here: http://texgen.sourceforge.net/workshop/ ... alysis.pdf
There are also several other threads on the forum which discuss this.
Best regards,
Louise
There is a tutorial on the TexGen webpage here: http://texgen.sourceforge.net/workshop/ ... alysis.pdf
There are also several other threads on the forum which discuss this.
Best regards,
Louise
Re: Voxel Mesh - only generates part of yarn
Hi,
thanks a lot for the reply i will go through the forum then once
Regards
Varun
thanks a lot for the reply i will go through the forum then once
Regards
Varun
Re: Voxel Mesh - only generates part of yarn
Hi Louise,
I have submitted a python script for voxel mesh generation of an RVE of the size (50,50,50) using Abaqus Python 6.14 in linux .Currently it shows it is running for almost 70 hours and counting.The input file generated till now is of 70 kb odd and was updated as soon as i ran the script and since then there has been no update to the input file. I feel confused as earlier when i was generating voxel meshes for a simpler model it used to atleast update the input file sporadically even for refined mesh of the size(200,200,200) till it was finished.
What I wish to know is it normal,as I feel that may be texgen is stuck.Is there a way to know the progress of the job.Maybe it would be handy if you could give a brief idea on what could be the flow of savetoabaqus() function in texgen.
Sorry the query seems to be vague but i just wish confirm the normalcy of the stuff going on.
Thanks in advance
Regards
R Varun Raj
I have submitted a python script for voxel mesh generation of an RVE of the size (50,50,50) using Abaqus Python 6.14 in linux .Currently it shows it is running for almost 70 hours and counting.The input file generated till now is of 70 kb odd and was updated as soon as i ran the script and since then there has been no update to the input file. I feel confused as earlier when i was generating voxel meshes for a simpler model it used to atleast update the input file sporadically even for refined mesh of the size(200,200,200) till it was finished.
What I wish to know is it normal,as I feel that may be texgen is stuck.Is there a way to know the progress of the job.Maybe it would be handy if you could give a brief idea on what could be the flow of savetoabaqus() function in texgen.
Sorry the query seems to be vague but i just wish confirm the normalcy of the stuff going on.
Thanks in advance
Regards
R Varun Raj
Re: Voxel Mesh - only generates part of yarn
Hi Varun,
A 50x50x50 voxel mesh should be generated in a few minutes depending on how many yarns there are in your model. The thing which takes the time is interrogating the model to get the orientation and other yarn information. I think it must have got stuck. You could try isolating the yarns and running your script to see if you can work out which part of your model is causing a problem.
If you're happy reading a bit of C++ code you can see what SaveToAbaqus does here: http://texgen.sourceforge.net/api/_voxe ... tml#l00265 (even if not you should be able to get the gist of what it's doing)
If you narrow it down to one yarn and still can't see what the issue is send me your script and I'll run it in debug to try and work out where it's getting stuck.
Hope that helps,
Louise
A 50x50x50 voxel mesh should be generated in a few minutes depending on how many yarns there are in your model. The thing which takes the time is interrogating the model to get the orientation and other yarn information. I think it must have got stuck. You could try isolating the yarns and running your script to see if you can work out which part of your model is causing a problem.
If you're happy reading a bit of C++ code you can see what SaveToAbaqus does here: http://texgen.sourceforge.net/api/_voxe ... tml#l00265 (even if not you should be able to get the gist of what it's doing)
If you narrow it down to one yarn and still can't see what the issue is send me your script and I'll run it in debug to try and work out where it's getting stuck.
Hope that helps,
Louise
Re: Voxel Mesh - only generates part of yarn
Hi Louise ,
As we discussed last time for generating voxel meshes faster i should reduce the number of points and take care of the up vector when the yarn moves in the z direction .I did that for a simpler and symmetric hexagonal model i am working on right now and i see an under representation of loop feature in the voxel mesh.
Here is the input file for the Voxel mesh size 200X200X100
https://gigamove.rz.rwth-aachen.de/d/id/5RgWp7HzC5J9hU
and Here are the images of the same knit but of the size 300X300X150
https://gigamove.rz.rwth-aachen.de/d/id/yufJTM5E3icVXo
https://gigamove.rz.rwth-aachen.de/d/id/4vmg34YQCwGdxV
Here is the Tg3 file of the knit
https://gigamove.rz.rwth-aachen.de/d/id/zxtUXgrQbbVQ52
I think it is because of my upvector implementation which i did this way:
def upvector(node1,node2,node3):
uvector = XYZ(0,0,1)
gradx = node2.x - node1.x
grady = node2.y - node1.y
gradz = node2.z - node1.z
# Checking For assigning the upvector based on the code sent by louise brown
# If gradz is the max
if (math.fabs(gradz) > math.fabs(gradx)) or (math.fabs(gradz)>math.fabs(grady)) : # Checking for the First horizontal vector so in this case Y vector becomes the
if math.fabs(gradx) > math.fabs(grady) : # Checking for the second horizontal vector so in this case Y vector becomes the
if gradz>= 0:
uvector.x = 0
uvector.y = -1
uvector.z = 0
else :
uvector.x = 0
uvector.y = 1
uvector.z = 0
else :
if gradz>= 0:
uvector.x =-1
uvector.y = 0
uvector.z = 0
else :
uvector.x = 1
uvector.y = 0
uvector.z = 0
return uvector
It would be great help again as always if you show me the way ahead on this
Thanks a lot in Advance
Regards Varun
As we discussed last time for generating voxel meshes faster i should reduce the number of points and take care of the up vector when the yarn moves in the z direction .I did that for a simpler and symmetric hexagonal model i am working on right now and i see an under representation of loop feature in the voxel mesh.
Here is the input file for the Voxel mesh size 200X200X100
https://gigamove.rz.rwth-aachen.de/d/id/5RgWp7HzC5J9hU
and Here are the images of the same knit but of the size 300X300X150
https://gigamove.rz.rwth-aachen.de/d/id/yufJTM5E3icVXo
https://gigamove.rz.rwth-aachen.de/d/id/4vmg34YQCwGdxV
Here is the Tg3 file of the knit
https://gigamove.rz.rwth-aachen.de/d/id/zxtUXgrQbbVQ52
I think it is because of my upvector implementation which i did this way:
def upvector(node1,node2,node3):
uvector = XYZ(0,0,1)
gradx = node2.x - node1.x
grady = node2.y - node1.y
gradz = node2.z - node1.z
# Checking For assigning the upvector based on the code sent by louise brown
# If gradz is the max
if (math.fabs(gradz) > math.fabs(gradx)) or (math.fabs(gradz)>math.fabs(grady)) : # Checking for the First horizontal vector so in this case Y vector becomes the
if math.fabs(gradx) > math.fabs(grady) : # Checking for the second horizontal vector so in this case Y vector becomes the
if gradz>= 0:
uvector.x = 0
uvector.y = -1
uvector.z = 0
else :
uvector.x = 0
uvector.y = 1
uvector.z = 0
else :
if gradz>= 0:
uvector.x =-1
uvector.y = 0
uvector.z = 0
else :
uvector.x = 1
uvector.y = 0
uvector.z = 0
return uvector
It would be great help again as always if you show me the way ahead on this
Thanks a lot in Advance
Regards Varun
Re: Voxel Mesh - only generates part of yarn
Hi Varun,
Sorry to have taken a while to reply, I've been on holiday. I'm afraid that I'm still looking into this one. I don't think that it's an issue with the up vectors. I changed one of them so that the apparent twist in the surface mesh is eliminated at one of the places where the mesh is missing but the problem is still there. I think it must be a bug in the function which calculates whether the mid-point of the voxel is inside the yarn (and therefore whether it outputs it as a yarn voxel). I need to narrow it down to a small area which I can then try and debug.
I'll let you know when I make some progress.
Best wishes,
Louise
Sorry to have taken a while to reply, I've been on holiday. I'm afraid that I'm still looking into this one. I don't think that it's an issue with the up vectors. I changed one of them so that the apparent twist in the surface mesh is eliminated at one of the places where the mesh is missing but the problem is still there. I think it must be a bug in the function which calculates whether the mid-point of the voxel is inside the yarn (and therefore whether it outputs it as a yarn voxel). I need to narrow it down to a small area which I can then try and debug.
I'll let you know when I make some progress.
Best wishes,
Louise
Re: Voxel Mesh - only generates part of yarn
Hi Louise,
Sure, thanks a lot for your reply and time .
I am surprised it is not because of the Up vectors .
Regards
Varun
Sure, thanks a lot for your reply and time .
I am surprised it is not because of the Up vectors .
Regards
Varun
Re: Voxel Mesh - only generates part of yarn
Hi Louise,
I was wondering was there a solution to the missing parts of the yarn problem . I am really looking forward to use it . I could probably try to implement any suggestion if there from your side .
Thanks in Advance
With Best Regards
Varun
I was wondering was there a solution to the missing parts of the yarn problem . I am really looking forward to use it . I could probably try to implement any suggestion if there from your side .
Thanks in Advance
With Best Regards
Varun
Re: Voxel Mesh - only generates part of yarn
Hi Varun,
I have just had another look at this and think it may be an issue with the function which finds whether a point is inside a yarn. This uses the node normals and I think that there may be a problem with the normals pointing in different directions. I tried adding an extra node in the problem area and this seems to cure the problem (node 3 in the attached file). Hopefully this will give you a solution in the short term and, in the meantime, I'll try and work out what the issue is.
Hope that helps,
Louise
I have just had another look at this and think it may be an issue with the function which finds whether a point is inside a yarn. This uses the node normals and I think that there may be a problem with the normals pointing in different directions. I tried adding an extra node in the problem area and this seems to cure the problem (node 3 in the attached file). Hopefully this will give you a solution in the short term and, in the meantime, I'll try and work out what the issue is.
Hope that helps,
Louise
- Attachments
-
- Hexagonal KnitSectionExtraNode.zip
- (1.22 KiB) Downloaded 190 times
Re: Voxel Mesh - only generates part of yarn
Hi Louise,
I see what you did.It seems much better but, there is still a cup shaped notch at the root of the loop.I am attaching the image with this post
https://gigamove.rz.rwth-aachen.de/down ... rLXPY2GLjz
I also checked the UP vectors for the nodes near this problematic area and they had kind of an arbitrary UP Vectors.I thought it is easiest to assign UP Vectors to one of the canonical vectors 0 0 1,0 1 0 or 0 0 1.
I chose the mesh to be really fine so that I could rule out the artificats observed due to coarse meshes in voxel assignment to the yarns.
Thanks Again in Advance!
Regards,
Varun
I see what you did.It seems much better but, there is still a cup shaped notch at the root of the loop.I am attaching the image with this post
https://gigamove.rz.rwth-aachen.de/down ... rLXPY2GLjz
I also checked the UP vectors for the nodes near this problematic area and they had kind of an arbitrary UP Vectors.I thought it is easiest to assign UP Vectors to one of the canonical vectors 0 0 1,0 1 0 or 0 0 1.
I chose the mesh to be really fine so that I could rule out the artificats observed due to coarse meshes in voxel assignment to the yarns.
Thanks Again in Advance!
Regards,
Varun