Notifications
Clear all

Meshing Tools

21 Posts
5 Users
2 Reactions
12.8 K Views
Posts: 24
Topic starter
(@jhaley)
Paid Intern
Joined: 6 years ago

Hello,

I'm working on moving from Abaqus to LS-Dyna for a particular simulation series. I've grown accustomed to being able to use the Abaqus meshing tools for pretty advanced partitioning and seeding to create custom meshes. I'm trying to essentially recreate a mesh as shown in the attachment. I've spent hours in LS-Dyna's prepost and documentation trying to understand their meshing tools but I can't seem to figure it out. In Abaqus, I can partition the part circumferentially in half and then cut it axially. Then I assign seeds to the axial edges, thickness edges, and radial edges. 

I would hope that LS-Dyna as at least something of the similar. When I import the part as an IGS into pre-post, these partitioned "edges" exist in a similar orientation but I cannot discover how to assign edge seeds. I know in the 2D mesher that I can define edges and number of elements per edge but how is this done in the 3D mesher? I'm really trying to avoid having to write a python script that turns my Abaqus nodes and mesh from my .inp to an LS-Dyna compatible node/element .k format. 

 Thanks in advance.

Mesh 3
20 Replies




Negative Volume
Posts: 665
Admin
(@negativevolume)
CEO
Joined: 6 years ago

I normally wouldn't recommend prepost for meshing, however, I believe it should be able to handle geometric shapes like this. I've never done this, but I tinkered around and found what I think you are looking for. You will first need to 2D mesh the "source" (the hollow circular face) and then use it as a guide to pull through the rest of the geometry. Careful to save your work because my Prepost crashed while I was doing this so RIP any pictures for me to explain.

Try using the NLineM function in the Mesh tab, Type: 2 Lines Shell, Element Size, specify an approximate size element for each box in the first column, and Mesh it. An interactive window will then pop up allowing you to determine the seeds along each of the edges. You will probably have to do this twice since the geometry is split. You can keep the two sets of mesh in separate parts for now which it will do automatically. 

The go to SolidM in the Mesh tab, Meshing, Volume by Closed Faces and click your first Volume (either the top or bottom), Target Surface and select the end surface opposite to the side with the 2D mesh, Mesh on Sources select the 2d mesh on the corresponding side, and provide an element size. Mine crashed when I clicked mesh but I would assume another interactive option will appear allowing you to determine the number of elements along the geometry which I would make the same for both sides and both volumes.

Once you have your two parts with 3D hex meshes, you can consolidate them by going to the Element Tool tab, MovCop, Move, select the part id (PID) that you want to move to, and then on the little selection box that pops up select bypart and click the hex mesh for the part that you want to move to the other part and click apply. 

Now the last step is the merge the duplicate nodes along the midline where the separate meshes were. Do this in Element Tool, DupNode, define the tolerance for finding duplicate nodes (can be pretty small in this case), click the Area button in the little selection box and then drag over all of the nodes (you can also use the same ByPart method). Click Show dup nodes and then merge dup nodes and hit accept. Now you should be good to go barring any crashes. Again make sure to save any progress that you make. 

Reply
4 Replies
(@jhaley)
Joined: 6 years ago

Paid Intern
Posts: 24

Thank you very much. I'll give that a shot and try to document any work along the way and reply for future users to see. 

Reply
Negative Volume
Admin
(@negativevolume)
Joined: 6 years ago

CEO
Posts: 665
Posted by: jhaley

Thank you very much. I'll give that a shot and try to document any work along the way and reply for future users to see. 

Were you able to get it to work? I'm curious as this could be a useful tool for people who don't want to pay for designated meshing software. 

Reply
(@jhaley)
Joined: 6 years ago

Paid Intern
Posts: 24

I actually haven't had a chance to get it working until yesterday. So far, I'm stuck on the N-Line-Mesher because it seems that the "2 lines shell" won't work properly based on me trying to recreate your steps. Also, I'm assuming (based on Dyna pre-post's language) will be making my mesh out of shell elements. I can't seem to find anything to make my mesh "solid" elements. I also don't have access to 3rd party meshing software (I'm a university grad student). 

Reply
Negative Volume
Admin
(@negativevolume)
Joined: 6 years ago

CEO
Posts: 665

Right, it will create 3D hex elements using the 2D shell elements as a starting point. The 2 lines shell function worked for me, you just have to make sure that you are selecting the inner and outer lines of your surface. You can also use the geometry tree in the top left portion of the screen to select geometries. Let me know if that helps. 

Reply




Posts: 24
Topic starter
(@jhaley)
Paid Intern
Joined: 6 years ago

This is my current dilemma with the N-Line-Mesher: There is no edge or line along the thickness and for that reason, I can't assign a seed to it. There also isn't a way to partition or create edges as there is in Abaqus, that I know of. 

mesh dyna 1
Reply
1 Reply
Negative Volume
Admin
(@negativevolume)
Joined: 6 years ago

CEO
Posts: 665
Posted by: jhaley

This is my current dilemma with the N-Line-Mesher: There is no edge or line along the thickness and for that reason, I can't assign a seed to it. There also isn't a way to partition or create edges as there is in Abaqus, that I know of. 

Sorry I didn't see this response before. You will need to split the geometry with a plane. So you need to fist create a plane in Surf -> Plane, position it to the middle of the geometry (not sure the best way for this), then go to GeoTol -> Trim, and mess around with the trimming tools there to split the solid down the middle. That should allow you to use the edges to seed elements. 

Reply




Posts: 24
Topic starter
(@jhaley)
Paid Intern
Joined: 6 years ago

I never really figured out the best way to use Dyna's mesher but I did end up caving and writing a short python script that takes ABAQUS node list and element connectivity format and puts it into the correct format for use in LS-Dyna. Once you "convert" the mesh, you can drag and drop the new .k file into Dyna and begin working with the solid part. 

I know this is probably useless to people with Hypermesh and it doesn't make much sense to have access to both Dyna and ABAQUS but not Hypermesh. I'm just a university student and I couldn't convince my research adviser to buy Hypermesh for this one-time use. If there is anyone out there that would like this code, comment in this thread and I can send it your way (and try to explain it to you because it's certainly not the most elegantly written code).

 

Thanks for your help in the meantime!

Reply
9 Replies
(@venkateshmd)
Joined: 5 years ago

Unpaid Intern
Posts: 6

@jhaley

Hello,

Can you please send me the python script which can help me import my mesh from Abaqus to LS DYNA? Thank you.

Reply
(@jhaley)
Joined: 6 years ago

Paid Intern
Posts: 24

@venkateshmd

Hi,

Yes I will gladly send you the script with a description of how it works. I meant to do so today but I’ve been very, very busy and haven’t had a chance. Be on the lookout tomorrow for a reply. 

 

 

Reply
(@venkateshmd)
Joined: 5 years ago

Unpaid Intern
Posts: 6

@jhaley

Thank you. My email id is venkateshmdeshpande@gmail.com.

Reply
(@jhaley)
Joined: 6 years ago

Paid Intern
Posts: 24

@venkateshmd

Here is the python script. I will upload the python file and leave a description here so that anyone is welcome to download and use it. 

A couple of notes on it, but please reply and ask questions if you have trouble using it. 

1.) It is a bit manual, I didn't spend the time to have it be a fully automated, one-click converter. You need to copy and paste the node/element info from the ABAQUS input file to a new txt file. See the code notes at the top. You need a txt file for the nodes that begins with *NODE and a txt file for the elements that begins with *ELEMENT. Make sure you don't leave any blank spaces at the beginning or end of the text file. The first line of the text file should have *NODE, the second line should start the node location information. Same for the element connectivity. 

2.) The txt files need to be in the same directory as the python script (you can always edit this in the code, of course)

3.) See line 67 where the string "ELEMENT_SOLID is written". I'm converting 8-node solid elements. You may need to change this to whatever element type you are converting to. You might also need to edit the writing format a bit if you are not converting 8 node solid elements. 

In my simulation, I have 4 rigid parts. In order to be able to copy/paste the node element information directly to another template/blank .k file with no complications or interference with existing parts and nodes, I do two things:

4.) Line 82, in the string, I have the part number as writing to Part 5 as to not interfere with other part numbers when I load in the file. 

5.) Line 36, I simply add some integer to the existing node number so that the node numbers don't overlap. i.e. Node 1 won't exist twice, rather it will be node 1 of the rigid part and node 1000001 from the new part I'm importing. 

If you are converting to a k.file with only one single part, then you can set the node_shift = 0 and change the part number to 1, although leaving it how it is won't really affect your results.

 

Depending on the number of nodes/elements you are converting, I have it set to display progress for everything 10000 nodes/elements converted. It's just a simple check to let me know it's working. You can edit or remove this around line 57-59 and 90-93.  It usually runs pretty quickly though. I can convert a part with 300k elements and 450k nodes in about 4-5 seconds. 

 

The end result should be a .k file that you can open in LS-Dyna and copy/paste in your other cards as needed. 

Let me know if you have any questions. 

Here is a link to download: https://utexas.box.com/s/a3z0xwi3fagqzgwcfvzir4227fcra8t0

Reply
Negative Volume
Admin
(@negativevolume)
Joined: 6 years ago

CEO
Posts: 665

@jhaley

Wow this is awesome nice job! I'm sure this will be extremely helpful for users. 

Reply
(@venkateshmd)
Joined: 5 years ago

Unpaid Intern
Posts: 6

@jhaley

Thank you. I will go through the script and see how it works.

Reply
(@djsburra)
Joined: 4 years ago

Student
Posts: 9

@jhaley

 

Hi Would you mind uploading the script again? The link is no-longer active.

 

Thanks

Reply
(@jhaley)
Joined: 6 years ago

Paid Intern
Posts: 24

@djsburra hi. Here is a new active link. It has been quite a while since I've used/updated this. I'm not 100% sure that it will work without any tweaking to the strings for the filenames/file paths. Hopefully it can at least serve as a guide. https://drive.google.com/file/d/1ZS7qagz_G8xidhohoOCfoTRdXchj0Qx6/view?usp=sharing

Reply
(@djsburra)
Joined: 4 years ago

Student
Posts: 9

@jhaley

Thank you very much, I'm more than happy to adapt the code.

Reply




Negative Volume
Posts: 665
Admin
(@negativevolume)
CEO
Joined: 6 years ago

Ah, yeah PrePost isn't really know for it's meshing capabilities and there's not much documentation for it. Wow sorry to hear that you had to create an entire python script for that, but awesome that you'd be willing to share with others in a similar predicament! This may be a little late, but Altair offers a free student version of hyperworks including hypermesh. It has restrictions on the number of nodes that you are able to use but it still may be worth looking into for smaller projects in the future: https://altairuniversity.com/free-altair-student-edition/

Let me know if you need any help with setting up your simulations. 

Reply




Page 1 / 2




Share: