Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

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

Access labels of elements in specific element sets in odb with python 1

Status
Not open for further replies.

plz83

Bioengineer
Joined
Jan 14, 2011
Messages
2
Location
US
Hello,

A few of the tet elements (2 specifically) in my model database have a volume near zero and cause my analysis submission to fail. An abaqus error message informs me that these elements have been placed in the element set ErrElemVolSmallNegZero.

I'd like to open the aborted job odb file and access the element labels so that I may delete them from my input file and resubmit using a python script.

The area of the mesh that is faulty is not critical and has proven difficult to mesh without a few collapsed tetrahedrals.

I've attempted to access these bad elements with the following command:

openOdb(r'odbFilePath').rootAssembly.elementSets['ErrElemVolSmallNegZero'].elements

but while the erroneous element set exists it doesn't seem to contain any element label information. The object doesn't seem to contain any members or keys.

When I open the odb file in the visualization module i can select the element set from the odb model tree, right click on it and "replace" to see the bad triangles. I can then do a tool>>query>>element to get the element label. This is great but I'd like to be able to automate this process using a python script.

I'd appreciate your help.
 
Just figured this out.

the object

openOdb(r'odbFilePath').rootAssembly.elementSets['ErrElemVolSmallNegZero'].elements

is a tuple.

Since the elementSet ErrElemVolSmallNegZero may contain elements from different parts abaqus needs two subscripts to identify each element it contains. The first for the part and the second for the actual element.

the object
openOdb(r'odbFilePath').rootAssembly.elementSets['ErrElemVolSmallNegZero'].elements[k][j]

is an OdbMeshElementArray object that does indeed contain a 'label' member which is easily accessed.

Hope I'm not talking to myself and this will help someone else out there.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top