Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Node co-ordinates and connectivity for Vumat. 2

Status
Not open for further replies.

jithus

Mechanical
Mar 28, 2010
13
Hello all,

I'l looking for some suggestions on how to get the node co-ordinate data and element connectivity for use in a Vumat routine. I need to perform some integration with this data in my routine. The keyword list gives the coordinate of the material points and characteristic length of the element but this is not sufficient for my purpose. I would like to have lets say..the height/length of the element in z-dir.
Is it possible to get this through some keyword in Vumat? If anybody has an idea pls share.

Im using 3d brick elements with reduced integration.
 
Replies continue below

Recommended for you

Seems as though we're both trying to do something very similar! I've been trying to do this for a good while now..best I can come up with is reading in the element and nodal connectivity from the INP the first time the VUMAT is called and storing the info in a common block. Its not a very nice approach but can't seem to find any other way of doing it. Would be very interested in hearing if someone else has a better idea...
 
Yeah..that is one way of doing it but as you said not ideal. Can you share how you are doing this but? I'm sorry I know only as much Fortran as just to make my routine work. I'm learning more about it on the fly.
 
Yeah no problem. I'll attach a copy of the subroutine, its not so well commented so I'll give a brief run-through of what it does. The subroutine is only called once in the whole analysis (first integration point, first increment) so expensive calls like 'vgetinternal' aren't a big deal.

1) Open input file for reading
2) Skip down to *Element in input file
3) Read in list of nodes for each element
4) Loop through each element and store the number of nodes common to each element (e.g. if two elements share four nodes then they are beside each other...based on C3D8R element).
5) Store the resulting element map in a common block.

The code returns an element map for use in the main program. This means that I know which elements are beside each other from within my VUMAT. I'm using it at the moment for non-local damage but with a small bit of modification you could use it to store nodal co-ordinates too.

Using common blocks like this are a last resort for me (aside from looking into coding a UEL). They can result in some nasty bugs and the code doesn't work so well over multiple processors. Let me know of you want more details.

BTW I'm fairly new to Fortran coding too so if anyone sees anything that can be improved on in the attached routine let me know!
 
 http://files.engineering.com/getfile.aspx?folder=ab5ef683-2ca8-4a05-aac9-3574e8f19619&file=ele_con.for
Many thanks for sharing the routine MechIrl. Really appreciate it!
I was away for a while so couldn't reply earlier. I'm looking at a different formulation insead of using the node details..so waiting to see if the reults are good enough.
So it might happen that I finally don't have to use the element and node connectivity for my calculations.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor