Files
AbaqusSubroutineDev/docs/AbaqusUserSubroutineManual/AbaqusUserSubroutineManual_008.md
T
2026-08-18 23:24:35 +09:00

301 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- source-page: 71 -->
# 1.1.11 GAPELECTR: User subroutine to define electrical conductance between surfaces in a coupled thermal-electrical or a coupled thermal-electrical-structural analysis.
Product: Abaqus/Standard
# References
• “Electrical contact properties,” Section 37.3.1 of the Abaqus Analysis Users Guide
• \*GAP ELECTRICAL CONDUCTANCE
# Overview
User subroutine GAPELECTR:
• assumes that the electrical current flowing between the interface surfaces is modeled as $J = \sigma _ { g } ( \varphi _ { A } - \varphi _ { B } )$ where J is the electrical current density flowing across the interface from point A (the slave surface) to point B (the master surface), $\varphi _ { A }$ and $\varphi _ { B }$ are the electrical potential on opposite points of the surfaces, and $\sigma _ { g }$ is the surface electrical conductance;
• is used to define $\sigma _ { g }$ , providing much greater flexibility than direct gap electrical conductance definition in specifying the dependencies of $\sigma _ { g }$ (for instance, it is not necessary to define the gap electrical conductance as a function of the average of the two surfaces temperatures and/or field variables);
• will be called at the slave nodes of a contact pair (“Defining contact pairs in Abaqus/Standard,” Section 36.3.1 of the Abaqus Analysis Users Guide) for which the gap electrical conductance is defined in a user subroutine; and
• ignores any dependencies or data specified for the gap electrical conductance outside the user subroutine.
# User subroutine interface
```txt
SUBROUTINE GAPELECTR(SIGMA, D, TEMP, PREDEF, TIME, CINAME, 1 SLNAME, MSNAME, COORDS, NODE, NPRED, KSTEP, KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CINAME, SLNAME, MSNAME
C
DIMENSION SIGMA(5), D(2), TEMP(2), PREDEF(2, *), TIME(2), 1 COORDS(2, 3)
user coding to define SIGMA(1) -- SIGMA(5)
RETURN
END
```
<!-- source-page: 72 -->
# SIGMA(1)
Gap electrical conductance, $\sigma _ { g } .$
# SIGMA(2)
$\partial \sigma _ { g } / \partial \theta _ { A } ,$ , derivative of the gap electrical conductance with respect to the temperature of point A. If the gap electrical conductance is not a function of $\theta _ { A }$ , SIGMA(2) = 0.0.
# SIGMA(3)
$\partial \sigma _ { g } / \partial \theta _ { B }$ , derivative of the gap electrical conductance with respect to the temperature of point B. If the gap electrical conductance is not a function of $\theta _ { B }$ , SIGMA(3) = 0.0.
# SIGMA(4)
$\partial \sigma _ { g } / \partial d ,$ derivative of the gap electrical conductance with respect to the clearance between the bodies. If the gap electrical conductance is not a function of gap clearance, SIGMA(4)= 0.0. This variable needs to be defined only for a fully coupled thermal-electrical-structural analysis.
# SIGMA(5)
$\partial \sigma _ { g } / \partial p ,$ derivative of the gap electrical conductance with respect to the pressure between the bodies. If the gap electrical conductance is not a function of the pressure, SIGMA(5)= 0.0. This variable needs to be defined only for a fully coupled thermal-electrical-structural analysis.
# Variables passed in for information
# D(1)
Separation between the interface surfaces, d.
# D(2)
Pressure transmitted across the surfaces, p.
# TEMP(2)
Current temperature at points A and B.
# PREDEF(2,NPRED)
An array containing pairs of values of all of the user-specified field variables at the end of the current increment at points A and B (initial values at the beginning of the analysis and current values during the analysis).
# TIME(1)
Value of step time at the end of the increment.
# TIME(2)
Value of total time at the end of the increment.
<!-- source-page: 73 -->
# CINAME
User-specified surface interaction name, left justified.
# SLNAME
Slave surface name.
# MSNAME
Master surface name.
# COORDS
An array containing the current coordinates of points A and B. COORDS(1,K1) are the coordinates at point A, and COORDS(2,K1) are the coordinates at point B.
# NODE
Slave node number (point A).
# NPRED
Number of predefined field variables.
# KSTEP
Step number.
# KINC
Increment number.
<!-- source-page: 74 -->
<!-- source-page: 75 -->
# 1.1.12 HARDINI: User subroutine to define initial equivalent plastic strain and initial backstress tensor.
# Product: Abaqus/Standard
# References
• “Initial conditions in Abaqus/Standard and Abaqus/Explicit,” Section 34.2.1 of the Abaqus Analysis Users Guide
• “Classical metal plasticity,” Section 23.2.1 of the Abaqus Analysis Users Guide
• “Models for metals subjected to cyclic loading,” Section 23.2.2 of the Abaqus Analysis Users Guide
• “Extended Drucker-Prager models,” Section 23.3.1 of the Abaqus Analysis Users Guide
• \*INITIAL CONDITIONS
• “HARDINI,” Section 4.1.8 of the Abaqus Verification Guide
# Overview
# User subroutine HARDINI:
• can be used only for material models that use metal plasticity or Drucker-Prager plasticity;
• can be used to provide initial equivalent plastic strain values as a function of element number, material point number, and/or material point coordinates for isotropic and combined hardening;
• enables you to specify initial conditions for the backstress tensor as a function of element number, material point number, and/or material point coordinates for kinematic and combined hardening;
• will be called to define the initial equivalent plastic strain and, if relevant, the initial backstresses at material points for which user-subroutine-defined initial hardening conditions are specified; and
• is intended for use when the initial equivalent plastic strain and/or backstress distributions are too complicated to specify directly as initial hardening conditions.
# Defining backstress components
The number of backstress components that must be defined depends on the element type for which this routine is being called. Part VI, “Elements,” of the Abaqus Analysis Users Guide describes the number of stress components for each element type; the number of backstress components is identical to the number of stress components. The order of the backstress components is the same as the order of the stress components. For example, in three-dimensional continuum elements six backstress components must be defined in the order $\alpha _ { 1 1 } , \alpha _ { 2 2 } , \alpha _ { 3 3 } , \alpha _ { 1 2 } , \alpha _ { 1 3 } , \alpha _ { 2 3 }$
<!-- source-page: 76 -->
User subroutine interface
```txt
SUBROUTINE HARDINI (ALPHA, EQPS, COORDS, NTENS, NCRDS, NOEL, NPT, 1 LAYER, KSPT, LREBAR, REBARN)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION ALPHA (NTENS, *), COORDS (NCRDS)
CHARACTER*80 REBARN
user coding to define EQPS and, if relevant, ALPHA (NTENS)
RETURN
END
```
Variables to be defined
```txt
The variables described below are element-type dependent.
EQPS
Equivalent plastic strain.
ALPHA (1,1)
First backstress component of the first backstress.
ALPHA (2,1)
Second backstress component of the first backstress.
ALPHA (3,1)
Third backstress component of the first backstress.
Etc.
NTENS backstress component values should be defined for each backstress.
```
Variables passed in for information
COORDS
An array containing the initial coordinates of this point.
NTENS
Number of backstress values to be defined. This number depends on the element type.
<!-- source-page: 77 -->
# NCRDS
Number of coordinates.
# NOEL
Element number.
# NPT
Integration point number.
# LAYER
Layer number (for composite shells and layered solids).
# KSPT
Section point number within the current layer.
# LREBAR
Rebar flag. If LREBAR=1, the current integration point is associated with element rebar. Otherwise, LREBAR=0.
# REBARN
Name of the rebar to which the current integration point belongs, which is the name given in the rebar or rebar layer definition (“Defining reinforcement,” Section 2.2.3 of the Abaqus Analysis Users Guide, or “Defining rebar as an element property,” Section 2.2.4 of the Abaqus Analysis Users Guide). If no name was given in the rebar or rebar layer definition, this variable will be blank. This variable is relevant only when LREBAR=1.
<!-- source-page: 78 -->
<!-- source-page: 79 -->
# 1.1.13 HETVAL: User subroutine to provide internal heat generation in heat transfer analysis.
# Product: Abaqus/Standard
# References
• “Uncoupled heat transfer analysis,” Section 6.5.2 of the Abaqus Analysis Users Guide
• “Fully coupled thermal-stress analysis,” Section 6.5.3 of the Abaqus Analysis Users Guide
• “Fully coupled thermal-electrical-structural analysis,” Section 6.7.4 of the Abaqus Analysis Users Guide
• \*HEAT GENERATION
• “HETVAL,” Section 4.1.9 of the Abaqus Verification Guide
# Overview
User subroutine HETVAL:
• can be used to define a heat flux due to internal heat generation in a material, for example, as might be associated with phase changes occurring during the solution;
• allows for the dependence of internal heat generation on state variables (such as the fraction of material transformed) that themselves evolve with the solution and are stored as solution-dependent state variables;
• will be called at all material calculation points for which the material definition contains volumetric heat generation during heat transfer, coupled temperature-displacement, coupled thermal-electrical, or coupled thermal-electrical-structural analysis procedures;
• can be useful if it is necessary to include a kinetic theory for a phase change associated with latent heat release (for example, in the prediction of crystallization in a polymer casting process);
• can be used in conjunction with user subroutine USDFLD if it is desired to redefine any field variables before they are passed in; and
• cannot be used with user subroutine UMATHT.
# User subroutine interface
```txt
SUBROUTINE HETVAL (CMNAME, TEMP, TIME, DTIME, STATEV, FLUX, 1 PREDEF, DPRED)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
C
```
<!-- source-page: 80 -->
DIMENSION TEMP(2),STATEV(\*),PREDEF(\*),TIME(2),FLUX(2), 1 DPRED(\*)
user coding to define FLUX and update STATEV
RETURN END
# Variables to be defined
# FLUX(1)
Heat flux, r (thermal energy per time per volume: $\mathrm { J } \mathrm { T } ^ { - 1 } \mathrm { L } ^ { - 3 } )$ , at this material calculation point.
# FLUX(2)
Rate of change of heat flux per temperature, . This variable is nonzero only if the heat flux depends on temperature. It is needed to define a correct Jacobian matrix.
# Variable that can be updated
# STATEV(\*)
An array containing the user-defined solution-dependent state variables at this point.
In an uncoupled heat transfer analysis STATEV is passed into subroutine HETVAL as the values of these variables at the beginning of the increment. However, any updating of STATEV in user subroutine USDFLD will be included in the values passed into subroutine HETVAL since this routine is called before HETVAL. In addition, if HETVAL is being used in a fully coupled temperature-displacement or coupled thermal-electrical-structural analysis and user subroutine UEXPAN, user subroutine CREEP, user subroutine UMAT, or user subroutine UTRS is used to define the mechanical behavior of the material, those routines are called before this routine; therefore, any updating of STATEV done in UEXPAN, CREEP, UMAT, or UTRS will be included in the values passed into this routine.
In all cases STATEV should be passed back from user subroutine HETVAL containing the values of the state variables at the end of the current increment.
# Variables passed in for information
# CMNAME
User-specified material name, left justified.
# TEMP(1)
Current temperature.
# TEMP(2)
Temperature increment.