353 lines
11 KiB
Markdown
353 lines
11 KiB
Markdown
<!-- 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)
|