Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

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

Moving temperature boundary condition subroutine 1

Status
Not open for further replies.

robidpra

Mechanical
Mar 24, 2020
12
BE
Hi all,

I'm trying to figure out something. I have a coupled temperature-displacement analysis with a UMAT & UMATHT subroutine. The UMAT describes the mechanical behaviour, and the UMATHT describes the heat conduction. I want to introduce a boundary condition for the temperature when certain conditions are met, at a specific location. In other words, each increment, Abaqus should check in which nodes, the conditions are met, and then apply a constant temperature to these nodes. The rest of the nodes should be unchanged (no boundary condition applied!, i.e. the temperature should be calculated based on the UMATHT information).

This final aspect is the problem. I tried to use a DISP subroutine that changed the temperature based on the conditions, but this causes the specific boundary condition to be active at all times (and I want no boundary condition in these cases!). The problem is that DISP is called every time, whereas I only want to call 'DISP' upon certain conditions...

Is there a solution for my specific problem? I also looked at UTEMP but that does not seem to work either. The rigorous alternative that I can think of is redo the simulation each increment with updated boundary conditions but that seems exorbitant.

Kind regards
 
Replies continue below

Recommended for you

What kind of process do you want to simulate ? Maybe you could use moving heat flux instead. For that there are two subroutines available - DFLUX and UMDFLUX. They are perfect for example in the case of AM process or welding simulations.
 
The process I want to simulate involves a fixed temperature boundary condition rather than a certain heat flux. I can try to calculate the corresponding heat flux for a certain temperature but this process could be complicated I guess.
 
Would it be possible to employ the MPC subroutine to give certain nodes a certain temperature?
 
Maybe this could work but I would stick to UTEMP here. You’ve mentioned that it doesn’t seem to work in this case. Can you say more about that ?
 
Sure,

The error encoutered was

***ERROR: *TEMPERATURE MAY NOT BE USED WITH ELEMENTS THAT POSSESS TEMPERATURE
DEGREES OF FREEDOM. USE *BOUNDARY TO PRESCRIBE BOUNDARY CONDITIONS
ON TEMPERATURE

I use a coupled temperature-displacement analysis, with corresponding continuum elements (C3D8T). These contain a temperature degree of freedom, and it seems that UTEMP can only prescribe temperature with elements that do not have this DOF.

For reference, the relevant part of my .inp file looks like:
*TEMPERATURE,USER
SET-22,
(following the documentation)
 
Right, I forgot that you use elements with temperature DOF and UTEMP is only for prescribed temperatures (those specified via predefined field in CAE). In such a case the default choice would be DISP subroutine since it can be used for temperature boundary conditions. Maybe it can work here but with some special handling.
 
Yes I tried DISP, but it did not work. The problem is that you cannot deactivate the DISP subroutine, you have to provide an amplitude.. I'm looking into MPC now
 
I have added a reference point, that is uncoupled from the model. Then I employed an MPC between this reference point (master) and all nodes (slave).
The reference point was held to a fixed temperature with a boundary condition.

The MPC user subroutine contained

IF([CONDITIONS]) THEN
JDOF(1,1) = 11
JDOF(1,2) = 11
A(1,1,1) = 1
A(1,1,2) = -1
LMPC = 1
ELSE
LMPC = 0
END IF

So when conditions are applied, the temperature DOF of reference point should be linked with the node. (constraint: T_node - T_ref = 0). However, this does not seem to work, the nodes are far from the same temperature as the reference point.

What am I doing wrong? Is it impossible to apply a constraint in this way?

edit: FYI this is defined in the input file
*MPC, user, mode=node
0, s_Set-22, m_Set-22
(with s corresponding to all nodes and m to the reference point)


edit2: I had to add UE, seems like it works for now...
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top