Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

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

Thermal Analysis of a Laser Weld Process 2

Status
Not open for further replies.

ankurnaik

Mechanical
Jun 28, 2005
8
Hello,

I am a new user of Abaqus and I was really amazed and happy to see this forum. I hope to get some help from it too and I promise to help people when I am in a position to do so.

I am trying to perform a Laser Weld Process Simulation on Titanium. I was wondering how to apply the loading. The laser parameters are
Weld Spot Size 0.015 inches
Power Average: 10 W
Frequency: 1/15
Pulse Width: 0.8 msec.

I tried to read through a laser weld tutorial
- basics of lasers
- details on the energy ,power etc.

and I thought of applying the loading as follows.
STEP 1:
*Step, name=Rise, nlgeom=YES, inc=10000
Rise
*Coupled Temperature-Displacement, creep=none, deltmx=10000.
0.0001, 0.0008, 6.66e-08, 0.0008

Load at this step: 833.33

Step 2:

*Step, name=Fall, nlgeom=YES
Fall
*Coupled Temperature-Displacement, creep=none, deltmx=10000.
0.0001, 0.0008, 8e-09, 0.0008

Load at this step = 0

The analysis ran and I got the results. However the temperatures that were reached were about 5000 deg C. I wanted to know if there was a way I could set a temperature boundary condition such that it would limit the rise of temperature of the nodes to 1600 which is the melting point of titanium. Also at this point the remaining energy should be transfered to the remaining portion of the structure. Was wondering how to do it.

Any help in this matter will be highly appreciated.

Thanks,
Ankur
 
Replies continue below

Recommended for you

Perhaps deactivate the elements at 1600

corus
 
Corus,

Thanks for the idea. But how do I do that. I mean if I use *MODEL CHANGE, then I have to define the elements which I need to deactivate. Is there some way that I can do it automatically as soon as the NT reach 1600.

I would have to run the analysis in various small steps and then find out the elements which are reaching the temperature and deactivate them in the next step. But this will be a cumbersome task.

Do you have any other idea. Essentially what I want to do is to set a boundary condition with a limit. Exactly the same way as we do for displacements. We can set limits for displacements, but the temperature boundary conditions gives the temp value to the nodes.

This is the problem.

Any suggestion would be highly appreciated.

Thanks,
Ankur
 
ankurnaik,

Ring ABAQUS support, they are very good.

 
ankurnaik,

have you had any progress regarding your problem?
I am modeling a laser powder deposition process in titanium and I have the exact same problem as you do.
Right now I am activating elements as the process goes along, but everything is predefined in the geometry of the input file, instead of activating them only if certain temperature conditions are met.
I've been looking for a way to do it but with no success so far...
Any progress, please share.
Thanks,

AntCrespo
 
Hello AntCrespo,

I rang up Abaqus support and they could not solve my problem either. Giving my problem a second thought, I just felt that I need not have to do anything.

I was trying to restrict the temperature of the nodes to 1600 which was the melting point. However in reality the material will undergo an increase in temperature as the input energy increases. And this increase in temp still exists. So I quit trying to restrict the temp increase. The only thing that I need to correctly define my model is to have temperature dependant properties for the material which you can do very easily. However I do not know how would I model phase change. ?????

Anyway, I know I did not answer your question but I just told you what I did in my model. May be it opens up a new line of thought for you too.

I am still working on temp activation / deactivation of elements. You should also try the UDR UVARM. It allows you to monitor temperature changes at the end of each iteration.

Thanks,
Ankur
 
Hi ankurnaik,

you're right, you shouldn't restrict the temperature to 1600ºC, because heat is still input into the melt pool. But you said you have temperatures of about 5000ºC and that is past the boiling temperature of titanium... so that could be a problem.
As for the phase change problem, by monitoring the temperature and cooling rates you are able to identify wich phase is present. You can create a variable to keep track of the phase.
Still, I think that temperature dependent activation/deactivation of elements is rather important in simulating a number of phenomena where you have addition or removal of material, but apparently that's not an easy task to accomplish using abaqus.
Best of lucks for your problem

AntCrespo
 
Hello AntCrespo,

Thanks for your inputs. I was able to reduce the temperature by just lowering the energy input. This is inline with the assumption that in a laser welding process depending upon the material and the surface being welded only a certain amount of energy is absorbed by the material and a high amount of it gets reflected. I found this in one of the research papers in my company. Infact I was surprised that for nickel clad copper which is one of the metals that we weld, the amount of energy absorbed by the material is only 30% of total energy. Now that's surprising !!!!!!

In order to deactivate the elements at a certain temperature I cam with this work around after discussing with Abaqus Support. Basically I have to write an abaqus script to do the following:
1) Identify nodes that are above a certain temperature range (let's assume 1500).
2) Identify the elements associated with the above nodes.
3) Put the above elements in a element set.
Then in the next step use this element set in *MODEL CHANGE and remove them from my analysis to simulate the process of annealing.

There are many things that are involved, one major thing being variation of thermal conductivity with temperature which is a very significant parameter in the welding process. However I do not have the data and I am assuming an effective value depending upon the shape of the weld pool.

Actually I could do with some help here. I am a new Abaqus CAE user and I have to learn the Python language for writing the script I was talking to you about. Abaqus support helped me with it a little bit btu I am still having a hard time. The basic script goes something like this. If you are conversant with the scripting language then here is how it goes

from odbAccess import *
from string import *
odb = openOdb('Analysis.odb')
FirstLoadStep = odb.steps['Rise']

print 'First Load Step',FirstLoadStep
lastFrame = FirstLoadStep.frames[-1]

#print 'lastFrame',lastFrame

#print 'AVailable output',lastFrame.fieldOutputs
tempData = lastFrame.fieldOutputs['TEMP']
print tempData
elementData=[]

for val in tempData.value:

#print val.data
#elementLabel=0

if val.data >=1500:
print 'max Element',val.elementLabel

Now at the end I somehow need to write these elements to a set. I do not know how to do it. I am reading the manual and trying but it is getting difficult and frustrating. Maybe you can help me with it.

Thanks,
Ankur

 
Hi Ankur!
Thank you for the information about the scripting. I've started reading the abaqus scripting manual, but just like you I'm new to both abaqus and python and at this point I'm afraid I'm not much help.
At this particular moment I'm going through the abaqus CAE tutorials because, up untill now, I was using an outside routine to generate the geometry and the mesh for my problem, and I think I may be able to do it more easily with CAE. Problem is, the tutorials focus on mechanical problems rather than thermal ones.
When you mention the variation of thermal conductivity with temperature, do you mean inside the melt pool? Because in the solid volume you can find that information in a materials handbook, and have that property defined as a function of temperature in your .inp file.
Anyway, any advance I may have regarding the temperature dependent activation/deactivation of elements, I'll be sure to post it here and share it with you.
Thanks again and good luck to you

Antonio
 
The Solution to my Problem :)

Temperature activation and deactivation of elements diretly in ABAQUS is not possible. The work around for that is:

1) Run your analysis in steps.
2) After first step is over, use abaqus scripting to create a script that will identify elements that have reached a temperature of greater than the desired the temperature. Put these elements in a set in a different inp file.
3) Call this file in your original .inp file using the *INCLUDE, INPUT=filename and run the analysis again with *MODEL CHANGE option and activate the element set created before.

The script for step 2 goes this way:

from odbAccess import *
from string import *
odb = openOdb('Analysis.odb')
FirstLoadStep = odb.steps['Rise']

print 'First Load Step',FirstLoadStep
lastFrame = FirstLoadStep.frames[-1]

#print 'lastFrame',lastFrame

#print 'AVailable outpu',lastFrame.fieldOutputs
f1 = open('output.inp','w')
f1.write('*Elset, elset=maxtemp\n')
tempData = lastFrame.fieldOutputs['TEMP']
print tempData
elementData=[]
maxElem=0
for val in tempData.value:

#print val.data
#elementLabel=0

if val.data >=600:
print 'max Element',val.elementLabel

maxElem = val.elementLabel

f1.write('%d,\n'%maxElem)

f1.close()
odb.close()
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor