Writing a UMAT subr...
Clear all

Writing a UMAT subroutine for thermo-metallurgical model

Posts: 2
Topic starter
New Member
Joined: 6 months ago
This topic is not strictly related to polymers but I hope I'll receive some help.
I intend to write a UMAT subroutine in order to perform a heat treatment simulation using CalculiX (the residual sytresses generated during quenching are my major subject of interest).
I will most probably use the CalculiX native UMAT subroiutine rather than writing an Abaqus UMAT code and using it later with CalculiX.
My plan is to write a UMAT code for a thermo-elasto-plastic model first (combined isotropic and kinematic hardening). After verifying that everything works fine I will extend the code by adding the phase evolution kinetics and proper dependence of the elastic and plastic constants (on the percantage of anayzed phases).
There are some issues that remain unclear for me. I will list them below.
1) If I used Abaqus, it would be possible for me to perform a coupled thermo-mechanical analysis. In that case my Abaqus UMAT code should contain the definitions of the tangent operator (DDSDDE matrix) and a matrix defining stress dependence on temperature (DDSDDT).
However, I am using CalculiX (not Abaqus) and to my best knowledge the official release of CalculiX does not support the coupled thermo-mechanical analysis while using UMAT. Thus, I will have to utilize the uncoupled thermo-mechanical analysis (the step is called "uncoupled temperature-displacement"). I understand that in this case all I need to define in my UMAT subroutine is the mechanical tangent operator (the stiff matrix in CalculiX UMAT or DDSDDE in Abaqus UMAT). Of course, I will include in my tangent operator the terms which yield from the thermal expansion and the phase/temperature dependence of the elastic and plastic constants. But that is basically it. No need to define DDSDDT since I perform an uncoupled thermo-mechanical analysis and all I need to define is the mechanical tangent operator (DDSDDE or stiff matrix) and update the stress vector (STRESS or stre).
Please correct me if I'm wrong in this reasoning.
2) In order to obtain a realistic simulation of the quenching process I want to take into account the existance of latent heat. I understand that a proper user subroutine to achieve this is DEFLUX where I can define the heat generated per unit volume during each increment. 
In order to calculate the latent heat generated during a given time increment, I need to know the volume fraction of the transformed phase. Suppose that I used the UMAT subroutine to define the kinetics of phase evolution. The volume fractions (of each analysed phase) are defined as separate state variables (STATEV) within UMAT. Here is a question: will I be able to use the state variables (STATEVs) defined in UMAT subroutine for further calculations of latent heat preformed in DEFLUX subroutine? 
3)  The documentation of the CalculiX UMAT native interface says that the "emec" vector contains the components of the Lagrange mechanical strain. I understand that if I do not utilize the nonlinear geometry (NLGEOM option) "emec" will simply contain the components of the small strain tensor. Is that correct?
Furthermore, the documentation states that at each increment the thermal strains are automatically subtracted from the total strain to obtain the strain components collected in the "emec" vector. Does this also apply if I define the thermal strains all by mhyself in UMAT?
Any help much appreciated,
Best regards,

Cyprian Suchocki

2 Replies
Posts: 16
Joined: 1 year ago

Here are a few comments:

1. Yes. That sounds right to me.

2. I'm not sure about that. You will have to study the documentation for the DEFLUX subroutine carefully to see if it has access to the state variables. If not, you may be able to create a workaround.

3. I don't  know CalculiX enough to answer that.


Posts: 2
Topic starter
New Member
Joined: 6 months ago

Alright, thanks for the hints!