# 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 ``` 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. # 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). # UFLUIDLEAKOFF # NOEL Element number. # NPT Integration point number. # KSTEP Step number. # KINC Increment number. # 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 ``` ```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. 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. # 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.
| Element type | Force and moment components |
| Three-dimensional shells (S4R, S8R, S8R5, etc.) and axisymmetric shells with asymmetric deformation (SAXA1N, SAXA2N) | $N_{11}, N_{22}, N_{12}, M_{11}, M_{22}, M_{12}$ |
| Axisymmetric shells (SAX1, SAX2, etc) | $N_{11}, N_{22}, M_{11}, M_{22}$ |