×
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

RF of nodeSet over all frames

RF of nodeSet over all frames

RF of nodeSet over all frames

(OP)
dear all,

i produced a python script for a model of a connection (timber piece with dowel through it) that is loaded statically - timber pieced fixed and dowel displacing. i need the sum of reaction forces of the timber (created via a nodeSet) over all frames and the displacement of the dowel (again a nodeSet) over all frames to create a load-slip graph.

accessing the output is rather tricky however as abaqus obviously needs nodeLabels when manipulating XY-data with the "combine"-command and nodeSets are not sufficient anymore. at least that is what the macro is doing (i tried with history and field output) and also in the examples, they always know which nodeLabels they are dealing with. Also in the manuals, i didn't succeed in finding anything.

i cannot figure out how to write the script without the need to actually LIST all the nodeLabels. I do not know the labels - whenever i change my mesh, my nodeLabels are also changing!

How can i automate this? i'm trying with for-loops using len and list-commands, of course - but it is rather cumbersome and still there a bugs. how can a get the reaction forces of a certain nodeSet over all frames?

This must be such a common problem!!

cheers and thanks a lot!

Silvia

RE: RF of nodeSet over all frames

(OP)
Hello all,

i got a bit further - here the script until now; i left the names for the step, instances, sets etc as they are in my model (they are easy to identify):

------------------------------------------------------------
from abaqus import *
from abaqusConstants import *
from math import *
import displayGroupOdbToolset as dgo

numFrames=len(result.steps['loading'].frames)
numNodes = len(result.rootAssembly.instances['TIMBER-1'].nodeSets['REACTION_FORCES'].nodes)
leaf = dgo.LeafFromNodeSets(nodeSets=('TIMBER-1.REACTION_FORCES',))
session.viewports['Viewport: 1'].odbDisplay.displayGroup.replace(leaf=leaf)
mygroup = session.viewports['Viewport: 1'].odbDisplay.displayGroup
mygroup = session.DisplayGroup(name = 'nodes_RF',objectToCopy=mygroup)
session.viewports['Viewport: 1'].odbDisplay.setValues(visibleDisplayGroups=(mygroup,))
nodelabels = session.viewports['Viewport: 1'].odbDisplay.displayGroupInstances['nodes_RF'].nodes()
del nodelabels['DOWEL-1']
del nodelabels['STEELPLATE-1']
nodelabels = nodelabels.values()
------------------------------------------------------------

if i say now "print nodelabels", it prints exactly the nodes i am interested in using the following syntax:
[(3, ..., 978)]; in total 128 nodes

so now the "only" thing i need is python to iterate over all my frames collecting the data i need by summing the RF1 (!) of all nodes during one frame - which maybe looks like this:

------------------------------------------------------------
sumRF = 0
for i in range(numFrames):
   for j in range(nodelabels):
      RF = result.steps['loading'].frames[i].fieldOutputs['RF']
      U = result.steps['loading'].frames[i].fieldOutputs['U']
   sumRF = sumRF + RF
------------------------------------------------------------

BUT....of course i fear it will not run through nodelabels as it has not the right syntax. furthermore i still need to tell python that it's values i want to collect -  the values of the components RF1 for instance. and i am not sure whether abaqus sums up the values for all nodes in "nodelabels" during one frame. and..is it keeping the summed-up values for each step in the end?
How must i write the loop in order to get it right?

is anyone out there who can help me at bit further? i know i ask a lot, but i'm just stuck here - maybe there's an old thread on this?; it's getting too complex for me...i'm too dumb for it smile
i hope my problem is clear!

cheers,

Silvia

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