<!-- source-page: 31 -->

# 1.1.2 DFLOW: User subroutine to define nonuniform pore fluid velocity in a consolidation analysis.

# Product: Abaqus/Standard

# References

• “Pore fluid flow,” Section 34.4.7 of the Abaqus Analysis User’s Guide   
• \*DFLOW   
• \*DSFLOW

# Overview

User subroutine DFLOW:

• can be used to define the variation of the seepage magnitude as a function of position, time, pore pressure, etc. in a soils consolidation analysis;   
• will be called at each flow integration point for each element-based or surface-based nonuniform flow definition in the analysis; and   
• ignores any amplitude references that may appear with the associated nonuniform flow definition.

# User subroutine interface

```txt
SUBROUTINE DFLOW(FLOW,U,KSTEP,KINC,TIME,NOEL,NPT,COORDS,1 JLTYP,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION TIME(2),COORDS(3)
CHARACTER*80 SNAME
user coding to define FLOW
RETURN
END 
```

<!-- source-page: 32 -->

# Variable to be defined

# FLOW

Effective velocity of pore fluid crossing the surface at this point from the inside of the region modeled to the outside of the region modeled. Units are LT−1 . Effective velocity is the volumetric flow rate per unit area (refer to “Permeability,” Section 26.6.2 of the Abaqus Analysis User’s Guide).

FLOW will be passed into the routine as the magnitude of the seepage specified as part of the element-based or surface-based flow definition. If the magnitude is not defined, FLOW will be passed in as zero.

The effective velocity is not available for output purposes.

# Variables passed in for information

# U

Estimated pore pressure at this time at this point.

# KSTEP

Step number.

# KINC

Increment number.

# TIME(1)

Current value of step time (defined only in transient analysis).

# TIME(2)

Current value of total time (defined only in transient analysis).

# NOEL

Element number.

# NPT

Integration point number on the element’s surface.

# COORDS

An array containing the coordinates of this point. These are the current coordinates if geometric nonlinearity is 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.

# JLTYP

Identifies the element face for which this call to DFLOW is being made through the element-based flow definition. This information is useful when several different nonuniform distributed flows are being imposed on an element at the same time. See Part VI, “Elements,” of the Abaqus Analysis User’s Guide for identification of element faces. The key is as follows:

<!-- source-page: 33 -->

<table><tr><td>JLTYP</td><td>Flow type</td></tr><tr><td>0</td><td>Surface-based load</td></tr><tr><td>11</td><td>S1NU</td></tr><tr><td>12</td><td>S2NU</td></tr><tr><td>13</td><td>S3NU</td></tr><tr><td>14</td><td>S4NU</td></tr><tr><td>15</td><td>S5NU</td></tr><tr><td>16</td><td>S6NU</td></tr></table>

# SNAME

Surface name for which this call to DFLOW is being made through the surface-based flow definition (JLTYP=0). For an element-based flow definition the surface name is passed in as a blank.

<!-- source-page: 34 -->

<!-- source-page: 35 -->

# 1.1.3 DFLUX: User subroutine to define nonuniform distributed flux in a heat transfer or mass diffusion analysis.

# Product: Abaqus/Standard

# References

• “Thermal loads,” Section 34.4.4 of the Abaqus Analysis User’s Guide   
• “Mass diffusion analysis,” Section 6.9.1 of the Abaqus Analysis User’s Guide   
• \*DFLUX   
• \*DSFLUX   
• “DFLUX,” Section 4.1.1 of the Abaqus Verification Guide

# Overview

User subroutine DFLUX:

• can be used to define a nonuniform distributed flux as a function of position, time, temperature, element number, integration point number, etc. in a heat transfer or mass diffusion analysis;   
• will be called at each flux integration point for each element-based or surface-based (heat transfer only) nonuniform distributed flux definition in the analysis;   
• ignores any amplitude references that may appear with the associated nonuniform distributed flux definition; and   
• uses the nodes as flux integration points for first-order heat transfer, first-order coupled temperaturedisplacement, first-order coupled thermal-electrical-structural, and mass diffusion elements.

# User subroutine interface

```txt
SUBROUTINE DFLUX (FLUX, SOL, KSTEP, KINC, TIME, NOEL, NPT, COORDS, 1 JLTYP, TEMP, PRESS, SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION FLUX(2), TIME(2), COORDS(3)
CHARACTER*80 SNAME
user coding to define FLUX(1) and FLUX(2)
RETURN
END 
```

<!-- source-page: 36 -->

# FLUX(1)

Magnitude of flux flowing into the model at this point. In heat transfer cases the units are $\mathrm { J } \mathrm { T } ^ { - 1 } \mathrm { L } ^ { - 2 }$ for surface fluxes and $\mathrm { J } \mathrm { T } ^ { - 1 } \mathrm { L } ^ { - 3 }$ for body flux. In transient heat transfer cases where a non-default amplitude is used to vary the applied fluxes, the time average flux over the time increment must be defined rather than the value at the end of the time increment. In mass diffusion cases the units are $\mathrm { P L T ^ { - 1 } }$ for surface fluxes and $\mathrm { P T } ^ { - 1 }$ for body flux.

FLUX(1) will be passed into the routine as the magnitude of the flux specified as part of the element-based or surface-based flux definition. If the magnitude is not defined, FLUX(1) will be passed in as zero.

This flux is not available for output purposes.

# FLUX(2)

In heat transfer cases: $d q / d \theta$ , the rate of change of the flux with respect to the temperature at this point. The units are $\mathrm { J } \mathrm { T } ^ { - 1 } \mathrm { L } ^ { - 2 } \theta ^ { - 1 }$ for surface fluxes and $\mathrm { J } \mathrm { T } ^ { - 1 } \mathrm { L } ^ { - 3 } \theta ^ { - 1 }$ for body flux.

In mass diffusion cases: $d q / d c ,$ the rate of change of the flux with respect to the mass concentration at this point. The units are $\mathrm { L T ^ { - 1 } }$ for surface fluxes and $\mathrm { T } ^ { - 1 }$ for body flux.

The convergence rate during the solution of the nonlinear equations in an increment is improved by defining this value, especially when the flux is a strong function of temperature in heat transfer analysis or concentration in mass diffusion analysis.

# Variables passed in for information

# SOL

Estimated value of the solution variable (temperature in a heat transfer analysis or concentration in a mass diffusion analysis) at this time at this point.

# KSTEP

Step number.

# KINC

Increment number.

# TIME(1)

Current value of step time (defined only in transient analysis).

# TIME(2)

Current value of total time (defined only in transient analysis).

# NOEL

Element number.

<!-- source-page: 37 -->

# NPT

Integration point number in the element or on the element’s surface. The integration scheme depends on whether this is a surface or a body flux.

# COORDS

An array containing the coordinates of this point. These are the current coordinates if geometric nonlinearity is 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.

# JLTYP

Identifies the flux type for which this call to DFLUX is being made. The flux type may be a body flux, a surface-based flux, or an element-based surface flux. For element-based surface fluxes, this variable identifies the element face for which this call to DFLUX is being made. This information is useful when several different nonuniform distributed fluxes are being imposed on an element at the same time. See Part VI, “Elements,” of the Abaqus Analysis User’s Guide for element face identification. The key is as follows:

<table><tr><td>JLTYP</td><td>Flux type</td></tr><tr><td>0</td><td>Surface-based flux</td></tr><tr><td>1</td><td>BFNU</td></tr><tr><td>11</td><td>S1NU (SNEGNU for heat transfer shells)</td></tr><tr><td>12</td><td>S2NU (SPOSNU for heat transfer shells)</td></tr><tr><td>13</td><td>S3NU</td></tr><tr><td>14</td><td>S4NU</td></tr><tr><td>15</td><td>S5NU</td></tr><tr><td>16</td><td>S6NU</td></tr></table>

# TEMP

Current value of temperature at this integration point (defined only for a mass diffusion analysis). Temperature for a heat transfer analysis is passed in as variable SOL.

# PRESS

Current value of the equivalent pressure stress at this integration point (defined only for a mass diffusion analysis).

# SNAME

Surface name for a surface-based flux definition (JLTYP=0). For a body flux or an element-based surface flux the surface name is passed in as blank.

<!-- source-page: 38 -->

<!-- source-page: 39 -->

# 1.1.4 DISP: User subroutine to specify prescribed boundary conditions.

# Product: Abaqus/Standard

# References

• “Boundary conditions in Abaqus/Standard and Abaqus/Explicit,” Section 34.3.1 of the Abaqus Analysis User’s Guide   
• “Connector actuation,” Section 31.1.3 of the Abaqus Analysis User’s Guide   
• \*BOUNDARY   
• \*CONNECTOR MOTION   
• “Riser dynamics,” Section 12.1.2 of the Abaqus Example Problems Guide   
• “DISP,” Section 4.1.2 of the Abaqus Verification Guide   
• “Boundary conditions,” Section 5.1.5 of the Abaqus Verification Guide

# Overview

User subroutine DISP:

• can be used to define the magnitudes of prescribed boundary conditions or connector motions;   
• requires incremental values to be defined for prescribed rotation boundary conditions;   
• is called for all degrees of freedom listed in a user-subroutine-defined boundary condition or connector motion definition;   
• redefines any magnitudes that may be specified (and possibly modified by an amplitude) as part of the associated boundary condition or connector motion definition; and   
• ignores the specified type, if any, of the associated boundary condition or connector motion definition.

# User subroutine interface

SUBROUTINE DISP(U,KSTEP,KINC,TIME,NODE,NOEL,JDOF,COORDS)

```csv
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION U(3),TIME(3),COORDS(3)
C 
```

user coding to define U

<!-- source-page: 40 -->

# RETURN END

# Variable to be defined

# U(1)

All variable types except rotation: the total value of the prescribed variable at this point. The variable may be displacement, pore pressure, temperature, etc., depending on the degree of freedom constrained. U(1) will be passed into the user subroutine as the value defined by any magnitude and/or amplitude specification for the boundary condition or connector motion.

Rotation variable type: the incremental value of the prescribed rotation at this point. The time increment, passed into the user subroutine through TIME(3), should be used to calculate the incremental value. In addition, U(1) will be passed into user subroutine DISP as the value defined by any magnitude or amplitude specification for the boundary condition.

If the analysis procedure requires that the time derivatives of prescribed variables be defined (for example, in a dynamic analysis the velocity and acceleration, as well as the value of the variable, are needed), $d u / d t$ must be given in U(2) and $d ^ { 2 } u / d t ^ { 2 }$ in U(3). The total value of the variable (incremental value in the case of rotation) and its time derivatives must be given in user subroutine DISP, regardless of the type of boundary condition or connector motion.

# Variables passed in for information

# KSTEP

Step number.

# KINC

Increment number.

# TIME(1)

Current value of step time.

# TIME(2)

Current value of total time.

# TIME(3)

Current value of time increment.

# NODE

Node number. This variable cannot be used if user subroutine DISP is used to prescribe connector motions.

# NOEL

Element number. This variable cannot be used if user subroutine DISP is used to prescribe boundary conditions.
