×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

Macro for Retrieving Data in ABAQUS

Macro for Retrieving Data in ABAQUS

Macro for Retrieving Data in ABAQUS

(OP)
Hello,

After performing FEM Simulation in ABAQUS,I am trying to retrieve data like vonmisses stress,strain etc.

Below,I am describing the procedure,I used for retrieving the data using Graphical User Interface.

1)I have created a seperate set,which I named it as SET-4..This is my interested area.
2)For retrieving the data, I clicked on Tools->XY Data->Create
On this window,I just clicked on "ODB Field Output"
-->I just wanted to retrieve data for last timestep,so in my simulation,I used some 331 timesteps,so,I just selected on the 331st timestep.
-->Under Output Variables, I changed the position option from "Integratin Option" to "Element Nodal"
-->As of now,I just clicked on Vonmisses stress
-->Under Elements/Nodes tab, I clicked on Set-4(which consists of all elements/nodes of my interested area)
-->Then I clicked on "Save"..This created Vonmisses stress data for all my nodes


Can someone explain the macro to retrieve data like Nodaldata(X,Y,Z) ; Vonmisses stress data; plastic strain; ...etc. for all my nodes in set-4
Suppose I have some 80000 Nodes in my set-4..I want to retrieve matrices like Nodaldata,which has a size of 8000/3, i.e. each row correspnds to X,Y,Z data of each node.

I also want to retrieve data like Vonmisses and Plastic strain,which are matrices size of 8000/1


Waiting for reply!

Thanks in advance!

RE: Macro for Retrieving Data in ABAQUS

Add the field output variable COORD into your model and run the analysis again. In postprcessing you hide everything but your set. Then you use Report -> Field Output to create an ASCII file with your data. Select Position=Unique Nodal and activate COORD 1-3 and Mises. Or other variables as needed.

RE: Macro for Retrieving Data in ABAQUS

(OP)
Hi Mustaine3,

Could you please explain me the macro for achieving the above!
I basically want to retrieve data like Vonmisses stress, plastic strain for all the nodes in Set-4.
and then I need to append the data into .csv format


Waiting for your reply

RE: Macro for Retrieving Data in ABAQUS

You don't need a macro.

Mustaine just described, step by step, how to achieve this using Report -> Field Output.

This is very basic. Read the Abaqus CAE Users Guide for a more detailed description.

If you do actually need to script this you can use python. This is described in the Abaqus Scripting reference manual.

RE: Macro for Retrieving Data in ABAQUS

(OP)
Hi Dave442,

I basically need to write a macro,since I need to extract information for multiple job *.odb files.
Could you please send the macro for retrieving the Vonmisses data for all the nodes available in set-4.
If you can send that,I will try retrieving other data such as Elastic Strain etc.

Waiting for your reply

RE: Macro for Retrieving Data in ABAQUS

(OP)
Hello Dave,

I tried recording the macro,just to get an idea.
I got something like this:

def NewMacro():
import section
import regionToolset
import displayGroupMdbToolset as dgm
import part
import material
import assembly
import step
import interaction
import load
import mesh
import optimization
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
session.mdbData.summary()
o1 = session.openOdb(name='H:/MiniThessis/MaterialModelling/Job-2.odb')
session.viewports['Viewport: 1'].setValues(displayedObject=o1)
odbName=session.viewports[session.currentViewportName].odbDisplay.name
session.odbData[odbName].setValues(activeFrames=(('Step-1', (14, )), ))
odb = session.odbs['H:/MiniThessis/MaterialModelling/Job-2.odb']
session.xyDataListFromField(odb=odb, outputPosition=ELEMENT_NODAL, variable=((
'S', INTEGRATION_POINT, ((INVARIANT, 'Mises'), )), ), elementSets=(
'SET-1', ))
x0 = session.xyDataObjects['S:Mises PI: PART-1-1 E: 29560 N: 5803']
x1 = session.xyDataObjects['S:Mises PI: PART-1-1 E: 29560 N: 5807']
x2 = session.xyDataObjects['S:Mises PI: PART-1-1 E: 29560 N: 5878']
x3 = session.xyDataObjects['S:Mises PI: PART-1-1 E: 29560 N: 5879']
x4 = session.xyDataObjects['S:Mises PI: PART-1-1 E: 29560 N: 35627']
..............................................

So,like the above, almost 10000 lines are getting generated for 10000 nodes,which are present in 'SET-1'
Could you please let me know,how can I loop through all nodes in Set-1,and find the vonmisses data for each node and append each value into a Matrix

Waiting for your reply

RE: Macro for Retrieving Data in ABAQUS

In the Scripting Users Manual is explained how you can access sets.
But you should consider using the mentioned Report and just automate that with a script. I guess that will be much faster than what you do currently.

RE: Macro for Retrieving Data in ABAQUS

(OP)
Hi Mustaine3,

I could not understand it clearly.
Could you briefly explain me regarding this.
I would be really glad,if you can roughlt provide me the idea of the script

RE: Macro for Retrieving Data in ABAQUS

The Scripting User Guide explains it at an example. I don't see why I should repeat that.

RE: Macro for Retrieving Data in ABAQUS

(OP)
Hi Mustaine,

I have written the following:

odb = openOdb('H:\MiniThessis\MaterialModelling\Job-2.odb')
assembly = odb.rootAssembly
elsetName = 'SET-3'
elemset = assembly.elementSets[elsetName]
frame = odb.steps['Step-1'].frames[13]
allFields = frame.fieldOutputs
stressSet = allFields['S']
stressSet = stressSet.getSubset(region=elemset)
stressValue = stressSet.values
length = len(stressValue)


Is the length here returning the number of elements available in the set-3?? I want to retrieve the nodes available in the Set-3 and thereafter,I want to loop through each node,find the stress values on each node

RE: Macro for Retrieving Data in ABAQUS

A regular sets definition leada to an element and node set with that name.

You want to have stresses at nodes. By default stresses are not stored at nodes, but integration points. So you have to request before the analysis, that you want it differently. See *Element Output in the Keyword Reference Manual.

Then you can access the nodal results as shown in the Scripting Manual with displacements.

RE: Macro for Retrieving Data in ABAQUS

(OP)
Hi Mustaine,

Finding stresses at nodes is another issue.
Please let me know,how can I retrieve the elements and node numbers available in a particular element set.
I have searched a lot in the python scripting reference,but I could not find the functions:

I am posting the script again,which I wrote:

odb = openOdb('H:\MiniThessis\MaterialModelling\Job-2.odb')
assembly = odb.rootAssembly
elsetName = 'SET-3'
elemset = assembly.elementSets[elsetName]


As you can see, in the above code,I am able to retrieve the elemset object..Please help me determine the node numbers and element numbers.
I already have the code to determine the stress and strain,if I can given element numbers and node numbers as inputs

Waiting for your reply

RE: Macro for Retrieving Data in ABAQUS

Use the Python Interpreter below the viewport to check the next options. So after you run that script, enter "print elemset" so see the suboptions. Then you'll see there is a suboption "elements, which contains a repository and a list with all the elements in there. So "print elemset.elements[0][0]" shows you the information you'll find when accessing the first element.

RE: Macro for Retrieving Data in ABAQUS

(OP)
Hi Mustaine3,

Thanks a lot for your help regarding, retrieving of element labels and node labels.
Could you please let me know,if I can retrieve an element label based on a node label.

For e.g: A node,labelled as "5" can be common for element 1 as well as 2.
So,is there any way if I can retrieve the labels 1 and 2 based on the value 5(i.e. node number)

Waiting for your reply

RE: Macro for Retrieving Data in ABAQUS

You can find connected nodes by accessing elements, but I think there is data that provide the elements that are connected to a node.

You could write a script that scans the .odb or .inp and creates such a dictionary.

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources