<!-- source-page: 251 -->

# 1.1.36 UFLUIDLEAKOFF: User subroutine to define the fluid leak-off coefficients for pore pressure cohesive elements.

# Product: Abaqus/Standard

# References

• “Defining the constitutive response of fluid within the cohesive element gap,” Section 32.5.7 of the Abaqus Analysis User’s Guide   
• \*FLUID LEAKOFF   
• “Propagation of hydraulically driven fracture,” Section 3.3.2 of the Abaqus Verification Guide

# Overview

User subroutine UFLUIDLEAKOFF:

• can be used to define the fluid leak-off coefficients for pore pressure cohesive elements;   
• is called at all material calculation points of elements for which the material definition contains user-defined leak-off coefficients; and   
• can include material behavior dependent on field variables or state variables.

# User subroutine interface

```fortran
SUBROUTINE UFLUIDLEAKOFF (PERM, PGRAD, DN, P_INT, P_BOT, P_TOP, 1 ANM, TANG, TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED, C_BOT, C_TOP, 2 DC_BOT, DC_TOP, STATEV, NSTATV, NOEL, NPT, KSTEP, KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION PERM(2), PGRAD(2), ANM(3), TANG(3, 2), TIME(2), PREDEF(1), 1 DPRED(1), DC_BOT(3), DC_TOP(3), STATEV(NSTATV)
user coding to define C_BOT, C_TOP, DC_BOT, and DC_TOP
RETURN
END 
```

<!-- source-page: 252 -->

Variables to be defined   
C_BOT $C_{bot}$ , fluid leak-off coefficient on the bottom side of a pore pressure cohesive element.

C_TOP $C_{top}$ , fluid leak-off coefficient on the top side of a pore pressure cohesive element.

DC_BOT(1) $\partial C_{bot}/\partial d$ , where d=DN.

DC_BOT(2) $\partial C_{bot}/\partial p_{int}$ , where $p_{int}=P\_INT$ .

DC_BOT(3) $\partial C_{bot}/\partial p_{bot}$ , where $p_{bot}=P\_BOT$ .

DC_TOP(1) $\partial C_{top}/\partial d$ , where d=DN.

DC_TOP(2) $\partial C_{top}/\partial p_{int}$ , where $p_{int}=P\_INT$ .

DC_TOP(3) $\partial C_{top}/\partial p_{top}$ , where $p_{top}=P\_TOP$ .

# STATEV(NSTATV)

An array containing the values of the solution-dependent state variables. You define the meaning of these variables. These are passed in as the values at the beginning of the increment and must be returned as the values at the end of the increment. The size of the array is defined as described in “Allocating space” in “User subroutines: overview,” Section 18.1.1 of the Abaqus Analysis User’s Guide.

Variables passed in for information   
PERM (1)
Fluid permeability.

PERM (2)
The derivative of fluid permeability with regard to the opening.

PGRAD (1)
The first component of internal pressure gradient.

PGRAD (2)
The second component of internal pressure gradient.

<!-- source-page: 253 -->

# DN

The relative opening of the element.

# P\_INT

Internal pressure.

# P\_BOT

Bottom pressure.

# P\_TOP

Top pressure.

# ANM

Normal vector directed from the bottom face toward the top face.

# TANG

Tangent direction vectors.

# TIME(1)

Value of step time at the beginning of the current increment.

# TIME(2)

Value of total time at the beginning of the current increment.

# DTIME

Time increment.

# TEMP

Temperature at the start of the increment.

# DTEMP

Increment of temperature.

# PREDEF

Array of interpolated values of predefined field variables at this point at the start of the increment, based on the values read in at the nodes.

# DPRED

Array of increments of predefined field variables.

# NSTATV

Number of solution-dependent state variables that are associated with this material type (defined as described in “Allocating space” in “User subroutines: overview,” Section 18.1.1 of the Abaqus Analysis User’s Guide).

<!-- source-page: 254 -->

# UFLUIDLEAKOFF

# NOEL

Element number.

# NPT

Integration point number.

# KSTEP

Step number.

# KINC

Increment number.

<!-- source-page: 255 -->

# 1.1.37 UFLUIDPIPEFRICTION: User subroutine to define the frictional coefficient for fluid flow in fluid pipe elements.

Product: Abaqus/Standard

# Reference

• \*FLUID PIPE FLOW LOSS

# Overview

User subroutine UFLUIDPIPEFRICTION:

• can be used to define the frictional coefficient for fluid flow to determine the pipe loss;   
• corresponds to the Darcy-Weisbach equation for pressure loss; and   
• can be used with the fluid pipe elements.

# User subroutine interface

```txt
subroutine ufluidpipefriction (
C Write only -
* friction
C Read only -
* flow, rho, visc, rough,
* dia, area,
* ndim, jelno, kstep, kinc,
* time, coords,
* niarray,
* i_array,
* nrarray,
* r_array,
* ncarray,
* c_array)
include 'aba_param.inc'
C
    dimension time(2),
* coords(2*ndim),
* i_array(niarray),
* r_array(nrarray)
C
    character*80 c_array(ncarray)
C 
```

<!-- source-page: 256 -->

```lua
user coding to define friction
return
end 
```

# Variable to be defined

# friction

This value must be updated to the current value of the friction coefficient.

# Variables passed in for information

# flow

Current flow rate through the element.

# rho

Current density of fluid flowing through the pipe.

# visc

Current viscosity of fluid flowing through the pipe.

# rough

User-specified pipe roughness.

# dia

User-specified hydraulic diameter.

# area

User-specified hydraulic area.

# ndim

Dimension of the element.

# jelno

User element number for which friction coefficient is required.

# kstep

Step number.

# kinc

Increment number.

# time(1)

Current step time.

# time(2)

Total time.

<!-- source-page: 257 -->

coords(2\*ndim)

Array containing original coordinates of the element. coords(1:ndim) is the coordinate of the first node, and coords(ndim+1:2\*ndim) is the coordinate of the second node.

niarray

Size of array i\_array.

i\_array

Integer array for future expansion.

nrarray

Size of array r\_array.

r\_array

Real array for future expansion.

ncarray

Size of array c\_array.

c\_array

Character array for future expansion.

<!-- source-page: 258 -->

<!-- source-page: 259 -->

# 1.1.38 UGENS: User subroutine to define the mechanical behavior of a shell section.

# Product: Abaqus/Standard

# References

• “Using a general shell section to define the section behavior,” Section 29.6.6 of the Abaqus Analysis User’s Guide   
• \*SHELL GENERAL SECTION

# Overview

User subroutine UGENS:

• is used to define the (nonlinear) mechanical behavior of a shell section directly in terms of generalized section quantities;   
• requires you to define the section behavior of the shell directly in terms of membrane stresses and forces, curvature changes, and bending moments;   
• will be called at all integration points in all shell elements with a general, arbitrary, elastic shell section and a user-subroutine-defined shell section stiffness; and   
• can be used with all static or dynamic procedures other than the quasi-static procedure, since that procedure uses automatic time stepping based on the techniques used by Abaqus/Standard to integrate standard creep laws.

# Storage of membrane and bending components

In the force and strain arrays and in the matrix DDNDDE, direct membrane terms are stored first, followed by the shear membrane term, and then the direct and shear bending terms. Only active components are stored, so the number of entries depends on the element type (see Table 1.1.38–1).

Table 1.1.38–1 Active section force/moment components. 

<table><tr><td>Element type</td><td>Force and moment components</td></tr><tr><td>Three-dimensional shells (S4R, S8R, S8R5, etc.) and axisymmetric shells with asymmetric deformation (SAXA1N, SAXA2N)</td><td> $N_{11}, N_{22}, N_{12}, M_{11}, M_{22}, M_{12}$ </td></tr><tr><td>Axisymmetric shells (SAX1, SAX2, etc)</td><td> $N_{11}, N_{22}, M_{11}, M_{22}$ </td></tr></table>

There are NDI direct membrane and NSHR shear membrane components and NDI direct bending and NSHR shear bending components: a total of NSECV components. The order of the components is defined in “Using a general shell section to define the section behavior,” Section 29.6.6 of the Abaqus Analysis User’s Guide.

Engineering measures of shear membrane strain $( \gamma _ { 1 2 } )$ and twist $\left( \mathrm { K } _ { 1 2 } \right)$ are used.

<!-- source-page: 260 -->

# Increments for which only the section stiffness can be defined

Abaqus/Standard passes zero strain increments into user subroutine UGENS to start the first increment of all the steps and all increments of steps for which you have suppressed extrapolation in time from the previous incremental solution (“Defining an analysis,” Section 6.1.2 of the Abaqus Analysis User’s Guide). In this case you can define only the section stiffness (DDNDDE).

# Stability

You should ensure that the integration scheme coded in this routine is stable—no direct provision is made to include a stability limit in the time stepping scheme based on the calculations in UGENS.

# Convergence rate

DDNDDE must be defined accurately if rapid convergence of the overall Newton scheme is to be achieved. In most cases the accuracy of this definition is the most important factor governing the convergence rate. Unsymmetric equation solution is as much as four times as expensive as the corresponding symmetric system. Therefore, if the section stiffness matrix (DDNDDE) is only slightly unsymmetric, it may be computationally less expensive to use a symmetric approximation and accept a slightly slower rate of convergence.

# Use with shells that have transverse shear and/or hourglass stiffness

If user subroutine UGENS is used to describe the section behavior of shells with transverse shear, you must define the transverse shear stiffness (see “Defining the transverse shear stiffness” in “Using a general shell section to define the section behavior,” Section 29.6.6 of the Abaqus Analysis User’s Guide).

If user subroutine UGENS is used to describe the section behavior of shells with hourglass stiffness, you must define the hourglass stiffness parameter for hourglass control based on total stiffness (see “Specifying nondefault hourglass control parameters for reduced-integration shell elements” in “Using a general shell section to define the section behavior,” Section 29.6.6 of the Abaqus Analysis User’s Guide). The hourglass stiffness parameter is not required for enhanced hourglass control, but you can define a scaling factor for the stiffness associated with the drill degree of freedom (rotation about the surface normal).

# Use with continuum shell elements

User subroutine UGENS cannot be used to describe the section behavior of continuum shell elements.

# User subroutine interface

SUBROUTINE UGENS(DDNDDE,FORCE,STATEV,SSE,SPD,PNEWDT,STRAN,   
1 DSTRAN,TSS,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CENAME,NDI,   
2 NSHR,NSECV,NSTATV,PROPS,JPROPS,NPROPS,NJPROP,COORDS,CELENT,  
3 THICK,DFGRD,CURV,BASIS,NOEL,NPT,KSTEP,KINC,NIT,LINPER)
