Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

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

How to assgin properties to elements?

Status
Not open for further replies.

vinston1

Materials
Jul 11, 2006
12
Hi,
I have an ABAQUS input file and would like to convert that in to ANSYS input file. The problem I am facing is, in ABAQUS after the nodes and elements are defined, the different elements can be assigned to different phasee just by giving element no's, but where as in ANSYS, along with the element number, it's connectivity should be given. So is there any command in ANSYS that assigns materials to the given elements (whose connectivity is defined already)?
Hope I explained my problem well enough
Thanks in advance
Vinston
 
Replies continue below

Recommended for you

Hi,
in ANSYS, the element definition incorporates: the element number, the connectivity, the attributes. Among the attributes, you find the elem type, the real constant set (if any), the section number (if any), the material number.
I don't remember exactly in which order these declarations are ordered; if you have troubles in finding your way, I'll try to give a look at this.

Regards
 
Thanks for the reply cbrn,
yea I know, there are two commands e and en to define elements but they need connectivity. My question is there any other command or procedure by which one can assign the material number to selected elements just by giving their no's?
My input file has:
material properties,
nodes,
elements,
mat,1
2,3,5,etc
mat,2
6,8,9,etc
mat,3
35,24,1,11,etc
but from the line mat,1 it's not the ansys format, so how do you change it to suit ANSYS? as it is a big file it's difficult to change it manually.
Thank you
vinston
 
Hi,
ah, OK, I misunderstood. The first method that comes to my mind is to transform each ABAQUS' material attribution section into a selection command followed by a material attribution ANSYS command:

<nodes>
<elements>

*DIM,elem_num_array,ARRAY,x !where "x" is the number of elems which have to receive material 1

elem_num_array(1)=2,3,5,... !as in your example; WARNING: if x>10, split the definition:
elem_num_array(1)=2,3,5,7,11,12,13,20,21,84
elem_num_array(11)=85,86,87,90,100,101,etc...

ESEL,s,,,elem_num_array(1)
*DO,i,2,x,1
ESEL,a,,,elem_num_array(i)
*ENDDO
! now you have a selection group
EMODIF,all,MAT,1 !changes material attribute "material" to the value of "1"

...etc...

The second method needs a complete transformation from a file format to the other, in the sense that you may first create a node file and then an element file, in which the data description of each record would be: I, J, K, L, M, N, O, P, MAT, TYPE, REAL, SECNUM, ESYS, IEL, where I...P are the definition nodes, MAT, TYPE, REAL, and ESYS are attribute numbers, SECNUM is the beam section number, and IEL is the element number.
I don't know which would be the preferable way for you, though...

Regards

 
Hi

You can use the EMODIF commando. So you can modify your elements by number, and change the materials of these elements.
Is this what you are looking for?

Grtz Garry
 
Hi cbrn,

I have three types of materials in my model, so do you mean that elem_num_array(1),elem_num_array(2)and elem_num_array(3) can store elements(only numbers) of three materials respectively? If so I have more than 4000 elements for each material then how do I store these element numbers in each array? could you please write it for 3 materials bit more clearly?
In case I was not clear enough in my previous post.....I have all the nodes and more than 12000 elements defined with node connectivity. But I have only element numbers for each material seprated. So I want ANSYS to know which set of elements belongs which material number.
Thanks for your time cbrn & Garry
Vinston

 
Hi,
unfortunately I think your operation will be extremely tedious...
Let's see what you should do in order to assign materials directly from the ABAQUS file:
You can "recycle" the elem_num_array three times; however the index of the array is not the material number, it's the index of the element; for example, elem_num_array(1) is the first element which has the current material, elem...(2) is the second, elem...(11) is the eleventh, and so on. Should Ansys accept arbitrary-length declarations, you'd only have to add some characters to the ABAQUS' row where the elements are listed. Unfortunately, you can declare at most 10 elements at a time for an array. That's why you have to split the declaration. If you have, say, 4000 elements, you will have to write 400 declarations of 10 elements each... The syntax "elem(y)=..." in fact means, when it is followed by more than one item, that the items will be passed to the array STARTING FROM "y". In your case, this would give:
elem_array(1)=11,14,20,4,7,22,23,8,9,33 !the first 10 elem numbers to receive the current material
elem_array(11)=24,25,26,27,28,29,30,31,32,33 !following 10 elements, starting from position 11
!...
elem_array(3990)=96,98,99,100,101,102,564,697,874,888 !last 10 elements of the example

I do believe that it is not conceivable to perform this task by hand. I'd write a macro in Excel which opens the ABAQUS file, performs all the necessary processing, and then writes the result as a text file. This is a very easy task indeed.

Another way might be the following: IF the elements can be properly identified in some way AFTER they have been imported, then select them graphically and "EMODIF" them directly with the GUI.

Regards
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor