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!

Impose thermal evolution from another analysis

Status
Not open for further replies.

dlassance

New member
Jul 29, 2005
6
Hello,

I would like to impose the thermal history from all the nodes of my mesh that result from another (non Abaqus) analysis. In other words, i've got a database with the temperature values of all the nodes at each time increments and i would loke to use it in order to run a mechanical analysis.
How can I do that?

Denis
 
Replies continue below

Recommended for you

It would have been easier just to run the thermal analysis in Abaqus, however, if you can cut and paste from the database then just use *temperature followed by node, temperature where the node, temperature values will be from the database.

corus
 
It is a magneto-thermal calculations that i could not run with Abaqus unfortunately! But by using the option *TEMPERATURE and then by fixing the temeprature of each node, how can i do that for every time increment?

*TEMPERATURE, INC=1
1, 25
2, 25
...
*TEMPERATURE, INC=2
1,25.5
2,25.1
...

????
 
Define a step for each time increment

corus
 
dlassance,

Have you considered the UTEMP user subroutine?

SUBROUTINE UTEMP(TEMP,MSECPT,KSTEP,KINC,TIME,NODE,COORDS)

You know the current ABAQUS time, so perhaps you can interpolate results from your database time to ABAQUS time.

MRG
 
Yes, it's probably what i will do while defining the temperature of each node at each time increment. The abaqus support told me that:

"It is actually not unworkable, you need to write a miniscule database which reads the time into an array
and loads the temperatures on demand or on startup. If the mesh is the same this is rather trivial."

but, i don't understand what they mean and how to realize that...

Denis
 
dlassance,

Let's assume the mesh is the same. You don't need to interpolate the coordinates from the thermal analysis to the ABAQUS mesh. However, you need to interpolate the temperature at a given time.

In the ABAQUS analysis you need:
*TEMPERATURE, USER
NALL

where NALL is the node set of all nodes in the mesh.

You need to write the subroutine UTEMP (see bare bones below) and submit the job accordingly:

abaqus j=job1 user=utemp.f

Lets say that UTEMP is called at node 101 at an ABAQUS time of t. You read in your database temperatures for node 101 at the two time increments from your thermal analysis that span that time. Say they are times t1 and t2, with corresponding temperature T1 and T2. It is now a simple matter to interpolate to find the nodal temperature at time t:

T = T1 + (t-t1)*(T2-T1)/(t2-t1) (I hope!)

Note that it would be sensible to set your ABAQUS step times to correspond to the times in your thermal analysis.

So, in each call to UTEMP you would:
* if not already open, open the file containing the thermal analysis results,
* loop through the file to search for the temperatures at the particular NODE that span the current ABAQUS step time or total time (stored in the array TIME),
* interpolate to find the temperature at that node at the current time,
* set the variable TEMP and return from the subroutine.

I hope this helps.

MRG

SUBROUTINE UTEMP(TEMP,MSECPT,KSTEP,KINC,TIME,NODE,COORDS)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION TEMP(MSECPT), TIME(2), COORDS(3)
C

user coding to define TEMP

RETURN
END
 
It may be better if you could convert the database into a .fil file then Abaqus could simply read in the values and interpolate at the same time. I'm not sure how the binary .fil file is formatted, however.

corus
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor