<!-- source-page: 641 -->

# 2.1.17 ACCESSING Abaqus MATERIALS

Product: Abaqus/Standard

# References

• “UELMAT,” Section 1.1.29   
• “UELMAT,” Section 4.1.15 of the Abaqus Verification Guide

# Overview

Utility routine MATERIAL\_LIB\_MECH returns the stress and the material Jacobian at the element material point.

The routine can be called only from Abaqus/Standard user subroutine UELMAT.

# Interface

```matlab
dimension stress(*),ddsdde(ntens,*,stran(*),dstran(*), * defGrad(3,3),predef(npredf),dpredef(npredf),coords(3) ... call material_lib_mech(materialllib,stress,ddsdde,stran,dstran, * npt,dvdv0,dvmat,dfgrd,predef,dpredef,npredf,celent,coords) ... 
```

# Variables to be provided to the utility routine

materiallib

Variable containing information about the Abaqus material. This variable is passed into user subroutine UELMAT.

stran

Strain at the beginning of the increment.

dstran

Strain increment.

npt

Integration point number.

dvdv0

Ratio of the current volume to the reference volume at the integration point.

<!-- source-page: 642 -->

# dvmat

Volume at the integration point.

# dfgrd

Array containing the deformation gradient at the end of the increment.

# predef

Array of interpolated values of predefined field variables at the integration point at the start of the increment.

# dpredef

Array of increments of predefined field variables.

# npredf

Number of predefined field variables, including temperature.

# celent

Characteristic element length.

# coords

An array containing the coordinates of this point. These are the current coordinates if geometric nonlinearities are accounted for during the step (see “Defining an analysis,” Section 6.1.2 of the Abaqus Analysis User’s Guide); otherwise, the array contains the original coordinates of the point.

# Variables returned from the utility routine

# stress

Stress tensor at the end of the increment.

# ddsdde

Jacobian matrix of the constitutive model, $\partial \Delta \sigma / \partial \Delta \varepsilon$ , where $\Delta \sigma$ are the stress increments and $\Delta \varepsilon$ are the strain increments. ddsdde(i,j) defines the change in the ith stress component at the end of the time increment caused by an infinitesimal perturbation of the jth component of the strain increment array.

<!-- source-page: 643 -->

# 2.1.18 ACCESSING Abaqus THERMAL MATERIALS

Product: Abaqus/Standard

# References

• “UELMAT,” Section 1.1.29   
• “UELMAT,” Section 4.1.15 of the Abaqus Verification Guide

# Overview

Utility routine MATERIAL\_LIB\_HT returns heat fluxes, internal energy time derivative, volumetric heat generation rate, and their derivatives at the element material point.

The routine can be called only from Abaqus/Standard user subroutine UELMAT.

# Interface

```txt
dimension predef(npredef), dpredef(npredef), dtemdx(*),
* rhodUdg(*), flux(*), dfdt(*), dfdg(ndim, *), drpldt(*),
* coords(3)
...
call material_lib_ht(materialllib, rhoUdot, rhodUdt, rhodUdg,
* flux, dfdt, dfdg, rpl, drpldt, npt, dvmat, predef,
* dpredef, npredf, temp, dtemp, dtemdx, celent, coords)
... 
```

# Variables to be provided to the utility routine

materiallib

Variable containing information about the Abaqus material. This variable is passed into user subroutine UELMAT.

npt

Integration point number.

dvmat

Volume at the integration point.

predef

Array of interpolated values of predefined field variables at the integration point at the start of the increment.

<!-- source-page: 644 -->

# dpredef

Array of increments of predefined field variables.

# npredf

Number of predefined field variables, including temperature.

# temp

Temperature at the integration point at the start of the increment, .

# dtemp

Increment of temperature.

# dtemdx

Spatial gradients of temperature, , at the end of the increment.

# celent

Characteristic element length.

# coords

The array containing the original coordinates of this point.

# Variables returned from the utility routine

# rhoUdot

Time derivative of the internal thermal energy per unit mass, U, multiplied by density at the end of increment.

# rhodUdt

Variation of internal thermal energy per unit mass with respect to temperature multiplied by density evaluated at the end of the increment.

# rhodUdg

Variation of internal thermal energy per unit mass with respect to the spatial gradients of temperature, , multiplied by density at the end of the increment.

# flux

Heat flux vector, , at the end of the increment.

# dfdt

Variation of the heat flux vector with respect to temperature, , evaluated at the end of the increment.

# dfdg

Variation of the heat flux vector with respect to the spatial gradients of temperature, , at the end of the increment

<!-- source-page: 645 -->

rpl

Volumetric heat generation per unit time at the end of the increment.

drpldt

Variation of rpl with respect to temperature.

<!-- source-page: 646 -->

<!-- source-page: 647 -->

# 2.1.19 OBTAINING SCALAR STATE INFORMATION IN AN Abaqus/CFD ANALYSIS

# Product: Abaqus/CFD

# References

• “SMACfdUserPressureBC,” Section 1.3.1   
• “SMACfdUserVelocityBC,” Section 1.3.2

# Overview

Utility routine SMACfdUserSubroutineGetScalar can be called from a user subroutine to access selected output variables for elements or surface facets that are part of a boundary condition definition.

# Interface

```txt
#include <SMACfdUserSubroutines.h>
const double* scalars = SMACfdUserSubroutineGetScalar("VAR"); 
```

# Variable to be provided to the utility routine

# VAR

Output variable key. The available variables are listed in “Available output variable keys.”

# Variable returned from the utility routine

# scalars

Real array containing scalar values of the output variable.

# Available output variable keys

The following output variable keys are supported:

• AREA: Area of the surface facet.   
• DENSITY: Element density.   
• DIV: Element divergence.   
• EVOL: Element volume.   
• TEMP: Element temperature.   
• TURBEPS: Element energy dissipation rate.   
• TURBKE: Element turbulent kinetic energy.   
• TURBNU: Element turbulent eddy viscosity.

<!-- source-page: 648 -->

• TURBOMEGA: Element-specific energy dissipation rate.

A requested output variable must be valid for the energy equation setting or turbulence model for the request to be successful.

The returned array scalars corresponds to the real-valued variable that can be associated with the request output variable key VAR. If the surface associated with an output variable does not have any facets on the current processor, the pointer returned from the method will be 0. The method will throw an exception and terminate the analysis if an output variable is not available for the current model.

# Analysis time for which values are returned

Utility subroutine SMACfdUserSubroutineGetScalar returns values of the requested variable that correspond to the beginning of the current increment.

<!-- source-page: 649 -->

# 2.1.20 OBTAINING VECTOR STATE INFORMATION IN AN Abaqus/CFD ANALYSIS

# Product: Abaqus/CFD

# References

• “SMACfdUserPressureBC,” Section 1.3.1   
• “SMACfdUserVelocityBC,” Section 1.3.2

# Overview

Utility routine SMACfdUserSubroutineGetVector can be called from a user subroutine to access selected output variables for elements and surface facets that are part of a boundary condition definition.

# Interface

```c
#include <SMACfdUserSubroutines.h>
const double* vcomp = SMACfdUserSubroutineGetVector("VAR", comp); 
```

# Variables to be provided to the utility routine

# VAR

Output variable key. The available variables are listed in “Available output variable keys.”

# comp

Output variable vector component number; i.e., 1, 2, or 3.

# Variable returned from the utility routine

# vcomp

Real array containing the values of the vector component for the output variable.

# Available output variable keys

The following output variable keys are supported:

• NORMAL: Surface facet normal direction cosines.   
• V: Surface facet normal velocity.

The returned array component corresponds to the real-valued variable that can be associated with the request output variable key VAR’s component. If the surface associated with an output variable does not have any facets on the current processor, the pointer returned from the method will be 0. The method

<!-- source-page: 650 -->

will throw an exception and terminate the analysis if an output request is not available for the current model.

# Analysis time for which values are returned

Utility subroutine SMACfdUserSubroutineGetVector returns values of the requested variable that correspond to the beginning of the current increment.
