Files
2026-08-18 23:24:35 +09:00

353 lines
11 KiB
Markdown
Raw Permalink 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: 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 Users 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 Users 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 Users 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 Users 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.381).
Table 1.1.381 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 Users 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 Users 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 Users 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 Users 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)