Thermomechanical Models

Coupled thermal-mechanical constitutive models with temperature-dependent properties and thermal expansion.

void umat_elasticity_iso_T(const arma::vec&, const arma::vec&, arma::vec&, double&, arma::mat&, arma::mat&, arma::mat&, arma::mat&, const arma::mat&, const int&, const arma::vec&, const int&, arma::vec&, const double&, const double&, const double&, const double&, double&, double&, double&, double&, double&, double&, double&, const int&, const int&, const bool&, double&)

The elastic UMAT requires 2 constants:

props[0] : Young modulus

props[1] : Poisson ratio

props[2] : CTE

No statev is required for thermoelastic constitutive law

void umat_elasticity_ortho_T(const arma::vec&, const arma::vec&, arma::vec&, double&, arma::mat&, arma::mat&, arma::mat&, arma::mat&, const arma::mat&, const int&, const arma::vec&, const int&, arma::vec&, const double&, const double&, const double&, const double&, double&, double&, double&, double&, double&, double&, double&, const int&, const int&, const bool&, double&)

The elastic UMAT requires 2 constants:

props[0] : Young modulus

props[1] : Poisson ratio

props[2] : CTE

No statev is required for thermoelastic constitutive law

void umat_elasticity_trans_iso_T(const arma::vec&, const arma::vec&, arma::vec&, double&, arma::mat&, arma::mat&, arma::mat&, arma::mat&, const arma::mat&, const int&, const arma::vec&, const int&, arma::vec&, const double&, const double&, const double&, const double&, double&, double&, double&, double&, double&, double&, double&, const int&, const int&, const bool&, double&)

The elastic UMAT requires 2 constants:

props[0] : Young modulus

props[1] : Poisson ratio

props[2] : CTE

No statev is required for thermoelastic constitutive law

void umat_plasticity_iso_CCP_T(const arma::vec&, const arma::vec&, arma::vec&, double&, arma::mat&, arma::mat&, arma::mat&, arma::mat&, const arma::mat&, const int&, const arma::vec&, const int&, arma::vec&, const double&, const double&, const double&, const double&, double&, double&, double&, double&, double&, double&, double&, const int&, const int&, const bool&, double&)

The elastic-plastic UMAT with isotropic hardening requires 8 constants for a full thermomechanical coupling:

props[0] : density

props[1] : specific heat capacity

props[2] : Young modulus

props[3] : Poisson ratio

props[4] : CTE

props[5] : J2 equivalent yield stress limit : sigmaY

props[6] : hardening parameter k

props[7] : exponent m

The elastic-plastic UMAT with isotropic hardening requires 8 statev:

statev[0] : T_init : Initial temperature

statev[1] : Accumulative plastic parameter: p

statev[2] : Plastic strain 11: EP(0,0)

statev[3] : Plastic strain 22: EP(1,1)

statev[4] : Plastic strain 33: EP(2,2)

statev[5] : Plastic strain 12: EP(0,1) (*2)

statev[6] : Plastic strain 13: EP(0,2) (*2)

statev[7] : Plastic strain 23: EP(1,2) (*2)

void umat_plasticity_kin_iso_CCP_T(const arma::vec&, const arma::vec&, arma::vec&, double&, arma::mat&, arma::mat&, arma::mat&, arma::mat&, const arma::mat&, const int&, const arma::vec&, const int&, arma::vec&, const double&, const double&, const double&, const double&, double&, double&, double&, double&, double&, double&, double&, const int&, const int&, const bool&, double&)

The thermomechanical elastic-plastic UMAT with kinematic + isotropic hardening requires 9 constants:

props[0] : density

props[1] : specific heat capacity

props[2] : Young modulus

props[3] : Poisson ratio

props[4] : CTE

props[5] : J2 equivalent yield stress limit : sigmaY

props[6] : hardening parameter k

props[7] : exponent m

props[8] : linear kinematical hardening h

The elastic-plastic UMAT with kinematic + isotropic hardening requires 14 statev:

statev[0] : T_init : Initial temperature

statev[1] : Accumulative plastic parameter: p

statev[2] : Plastic strain 11: EP(0,0)

statev[3] : Plastic strain 22: EP(1,1)

statev[4] : Plastic strain 33: EP(2,2)

statev[5] : Plastic strain 12: EP(0,1) (*2)

statev[6] : Plastic strain 13: EP(0,2) (*2)

statev[7] : Plastic strain 23: EP(1,2) (*2)

statev[8] : Backstress 11: X(0,0)

statev[9] : Backstress 11: X(1,1)

statev[10] : Backstress 11: X(2,2)

statev[11] : Backstress 11: X(0,1)

statev[12] : Backstress 11: X(0,2)

statev[13] : Backstress 11: X(1,2)

void umat_sma_unified_T_T(const std::string &umat_name, const arma::vec &Etot, const arma::vec &DEtot, arma::vec &sigma, double &r, arma::mat &dSdE, arma::mat &dSdT, arma::mat &drdE, arma::mat &drdT, const arma::mat &DR, const int &nprops, const arma::vec &props, const int &nstatev, arma::vec &statev, const double &T, const double &DT, const double &Time, const double &DTime, double &Wm, double &Wm_r, double &Wm_ir, double &Wm_d, double &Wt, double &Wt_r, double &Wt_ir, const int &ndi, const int &nshr, const bool &start, double &tnew_dt)

Unified thermomechanical SMA model with coupled phase transformation and heat equation.

This function implements the fully coupled thermomechanical version of the unified phenomenological SMA model. Compared to the mechanical-only version (umat_sma_unified_T), this adds thermal coupling through the heat equation, requiring density and specific heat capacity as additional material parameters, and producing thermal tangent operators as output.

Elastic Symmetry and Criteria Selection:

The elastic behavior and transformation criteria are determined by the umat_name parameter:

umat_name

Elasticity

Criteria

Number of props

SMADI

Isotropic

Drucker

31

SMADC

Cubic

Drucker

33

SMAAI

Isotropic

Anisotropic Drucker (DFA)

38

SMAAC

Cubic

Anisotropic Drucker (DFA)

40

Material Parameters (props):

SMADI (Isotropic elasticity, Drucker criteria) — 31 props:

Index

Symbol

Description

Units

0

\( \rho \)

Density

kg/m^3

1

\( c_{pA} \)

Specific heat capacity of Austenite

J/(kg.K)

2

\( c_{pM} \)

Specific heat capacity of Martensite

J/(kg.K)

3

flagT

Temperature extrapolation (0=linear, 1=smooth)

-

4

\( E_A \)

Young’s modulus of Austenite

MPa

5

\( E_M \)

Young’s modulus of Martensite

MPa

6

\( \nu_A \)

Poisson’s ratio of Austenite

-

7

\( \nu_M \)

Poisson’s ratio of Martensite

-

8

\( \alpha_A \)

CTE of Austenite

1/K

9

\( \alpha_M \)

CTE of Martensite

1/K

10

\( H_{min} \)

Minimal transformation strain magnitude

-

11

\( H_{max} \)

Maximal transformation strain magnitude

-

12

\( k_1 \)

Exponential evolution parameter for \( H^{cur} \)

-

13

\( \sigma_{crit} \)

Critical stress for \( H^{cur} \) evolution

MPa

14

\( C_A \)

Clausius-Clapeyron slope (M \( \rightarrow \) A)

MPa/K

15

\( C_M \)

Clausius-Clapeyron slope (A \( \rightarrow \) M)

MPa/K

16

\( M_{s0} \)

Martensite start temperature at zero stress

K

17

\( M_{f0} \)

Martensite finish temperature at zero stress

K

18

\( A_{s0} \)

Austenite start temperature at zero stress

K

19

\( A_{f0} \)

Austenite finish temperature at zero stress

K

20

\( n_1 \)

Martensite start smooth exponent

-

21

\( n_2 \)

Martensite finish smooth exponent

-

22

\( n_3 \)

Austenite start smooth exponent

-

23

\( n_4 \)

Austenite finish smooth exponent

-

24

\( \sigma_{caliber} \)

Calibration stress for \( C_A \) / \( C_M \)

MPa

25

\( b \)

Tension-compression asymmetry parameter (Prager)

-

26

\( n \)

Tension-compression asymmetry exponent (Prager)

-

27

\( c_\lambda \)

Penalty function exponent start point

-

28

\( p_{0\lambda} \)

Penalty function limit value

-

29

\( n_\lambda \)

Penalty function power law exponent

-

30

\( \alpha_\lambda \)

Penalty function power law parameter

-

SMADC (Cubic elasticity, Drucker criteria) — 33 props:

Index

Symbol

Description

Units

0

\( \rho \)

Density

kg/m^3

1

\( c_{pA} \)

Specific heat capacity of Austenite

J/(kg.K)

2

\( c_{pM} \)

Specific heat capacity of Martensite

J/(kg.K)

3

flagT

Temperature extrapolation (0=linear, 1=smooth)

-

4

\( E_A \)

Young’s modulus of Austenite ([100] direction)

MPa

5

\( E_M \)

Young’s modulus of Martensite ([100] direction)

MPa

6

\( \nu_A \)

Poisson’s ratio of Austenite

-

7

\( \nu_M \)

Poisson’s ratio of Martensite

-

8

\( G_A \)

Shear modulus of Austenite

MPa

9

\( G_M \)

Shear modulus of Martensite

MPa

10–32

Same as SMADI props[8–30] (common SMA parameters)

SMAAI (Isotropic elasticity, anisotropic Drucker criteria) — 38 props:

Same as SMADI (props[0–30]) followed by 7 DFA parameters:

Index

Symbol

Description

31

\( F_{dfa} \)

F parameter of DFA criteria

32

\( G_{dfa} \)

G parameter of DFA criteria

33

\( H_{dfa} \)

H parameter of DFA criteria

34

\( L_{dfa} \)

L parameter of DFA criteria

35

\( M_{dfa} \)

M parameter of DFA criteria

36

\( N_{dfa} \)

N parameter of DFA criteria

37

\( K_{dfa} \)

K parameter of DFA criteria

SMAAC (Cubic elasticity, anisotropic Drucker criteria) — 40 props:

Same as SMADC (props[0–32]) followed by 7 DFA parameters (props[33–39]).

State Variables (statev) — 17 variables:

Index

Symbol

Description

Units

0

\( T_{init} \)

Initial/reference temperature

K

1

\( \xi \)

Martensitic volume fraction

-

2

\( \varepsilon^{tr}_{11} \)

Transformation strain component 11

-

3

\( \varepsilon^{tr}_{22} \)

Transformation strain component 22

-

4

\( \varepsilon^{tr}_{33} \)

Transformation strain component 33

-

5

\( \gamma^{tr}_{12} \)

Transformation strain component 12 (engineering)

-

6

\( \gamma^{tr}_{13} \)

Transformation strain component 13 (engineering)

-

7

\( \gamma^{tr}_{23} \)

Transformation strain component 23 (engineering)

-

8

\( \xi_F \)

Forward martensitic volume fraction

-

9

\( \xi_R \)

Reverse martensitic volume fraction

-

10

\( \rho \Delta s_0 \)

Entropy difference between phases (M - A)

MPa/K

11

\( \rho \Delta E_0 \)

Internal energy difference between phases (M - A)

MPa

12

\( D \)

Stress dependence parameter for transformation limits

-

13

\( a_1 \)

Forward hardening parameter

MPa

14

\( a_2 \)

Reverse hardening parameter

MPa

15

\( a_3 \)

Equilibrium hardening parameter

MPa

16

\( Y_{0t} \)

Initial transformation critical value

MPa

References:

  • Chatziathanasiou, D. (2016). Ph.D. Thesis — Phenomenological constitutive modeling of shape memory alloys.

  • Chemisky, Y., Chatziathanasiou, D., Kumar, P., & Lagoudas, D. C. (2014). “A constitutive model for cyclic actuation of high-temperature shape memory alloys.” Mechanics of Materials, 68, 120-136.

See also

umat_sma_unified_T() for the mechanical-only version (no thermal coupling)

See also

L_iso() for isotropic stiffness tensor (SMADI, SMAAI)

See also

L_cubic() for cubic stiffness tensor (SMADC, SMAAC)

Note

Elastic convention: isotropic uses “Enu”, cubic uses “EnuG” for L_iso / L_cubic

Note

The flagT parameter controls temperature extrapolation: 0 for linear, 1 for smooth

Note

Legacy aliases SMAUT and SMANI map to SMADI and SMAAI respectively

Parameters:
  • umat_name – Model variant (SMADI, SMADC, SMAAI, SMAAC)

  • Etot – Total strain tensor at beginning of increment (Voigt notation: 6x1)

  • DEtot – Strain increment tensor (Voigt notation: 6x1)

  • sigma – Cauchy stress tensor (Voigt notation: 6x1) [output]

  • r – Heat source rate [output]

  • dSdE – Mechanical tangent modulus \( \partial \sigma / \partial \varepsilon \) (6x6) [output]

  • dSdT – Thermal stress tangent \( \partial \sigma / \partial T \) (6x1) [output]

  • drdE – Thermal-mechanical tangent \( \partial r / \partial \varepsilon \) (1x6) [output]

  • drdT – Thermal tangent \( \partial r / \partial T \) (scalar) [output]

  • DR – Rotation increment matrix (3x3) for objective integration

  • nprops – Number of material properties

  • props – Material properties vector (layout depends on umat_name)

  • nstatev – Number of state variables (17)

  • statev – State variables vector [input/output]

  • T – Temperature at beginning of increment

  • DT – Temperature increment

  • Time – Time at beginning of increment

  • DTime – Time increment

  • Wm – Total mechanical work [output]

  • Wm_r – Recoverable (elastic) mechanical work [output]

  • Wm_ir – Irrecoverable mechanical work stored in transformation [output]

  • Wm_d – Dissipated mechanical work (hysteresis) [output]

  • Wt – Total thermal work [output]

  • Wt_r – Recoverable thermal work [output]

  • Wt_ir – Irrecoverable thermal work [output]

  • ndi – Number of direct stress components (typically 3)

  • nshr – Number of shear stress components (typically 3)

  • start – Flag indicating first increment (true) or continuation (false)

  • tnew_dt – Suggested new time step ratio for adaptive time stepping [output]