<!-- source-page: 1101 -->

# 32.16.2 FLUID PIPE CONNECTOR ELEMENT LIBRARY

Product: Abaqus/Standard

# References

• \*FLUID PIPE CONNECTOR SECTION   
• \*FLUID PIPE CONNECTOR LOSS

# Overview

This section provides a reference to the fluid pipe connector elements available in Abaqus/Standard.

# Element types

# Element for use in 2D models

FPC2D2

2-node linear

Active degrees of freedom

8

Additional solution variables

None.

# Element for use in 3D models

FPC3D2

2-node linear

Active degrees of freedom

8

Additional solution variables

None.

# Nodal coordinates required

2D: X, Y

3D: X, Y, Z

# Element property definition

Both available fluid pipe connector elements (FPC2D2 and FPC3D2) are defined by two nodes, which can be coincident. If the nodes are not coincident, the length of the fluid pipe connector element is ignored in the viscous loss computations. You must associate the fluid pipe connector section with a set of fluid pipe connector elements.

<!-- source-page: 1102 -->

Input File Usage: \*FLUID PIPE CONNECTOR SECTION, ELSET=name

# Element-based loading

None.

# Element output

FPMFL

Pressure drop across the element.

# Node ordering on elements

# 2D and 3D

![](images/page-1102_e473ee03dd764aca0452fe0b330a6cb6907ec2a3774f39ffd28d22781cc46f7c.jpg)

<!-- source-page: 1103 -->

# 32.17 User-defined elements

• “User-defined elements,” Section 32.17.1   
• “User-defined element library,” Section 32.17.2

<!-- source-page: 1104 -->

<!-- source-page: 1105 -->

# 32.17.1 USER-DEFINED ELEMENTS

Products: Abaqus/Standard Abaqus/Explicit

# References

• “User-defined element library,” Section 32.17.2   
• “UEL,” Section 1.1.28 of the Abaqus User Subroutines Reference Guide   
• “UELMAT,” Section 1.1.29 of the Abaqus User Subroutines Reference Guide   
• “VUEL,” Section 1.2.14 of the Abaqus User Subroutines Reference Guide   
• “Accessing Abaqus thermal materials,” Section 2.1.18 of the Abaqus User Subroutines Reference Guide   
• “Accessing Abaqus materials,” Section 2.1.17 of the Abaqus User Subroutines Reference Guide   
• \*MATRIX   
• \*UEL PROPERTY  
• \*USER ELEMENT

# Overview

User-defined elements:

• can be finite elements in the usual sense of representing a geometric part of the model;   
• can be feedback links, supplying forces at some points as functions of values of displacement, velocity, etc. at other points in the model;   
• can be used to solve equations in terms of nonstandard degrees of freedom;   
• can be linear or nonlinear; and   
• can access selected materials from the Abaqus material library.

# Assigning an element type key to a user-defined element

You must assign an element type key to a user-defined element. The element type key must be of the form Un in Abaqus/Standard and VUn in Abaqus/Explicit, where n is a positive integer that identifies the element type uniquely. For example, you can define element types U1, U2, U3, VU1, VU7, etc. In Abaqus/Standard n must be less than 10000; while in Abaqus/Explicit n must be less than 9000.

The element type key is used to identify the element in the element definition. For general user elements the integer part of the identifier is provided in user subroutines UEL, UELMAT and VUEL so that you can distinguish between different element types.

Input File Usage: \*USER ELEMENT, TYPE=element\_type

<!-- source-page: 1106 -->

# Invoking user-defined elements

User-defined elements are invoked in the same way as native Abaqus elements: you specify the element type, Un or VUn, and define element numbers and nodes associated with each element (see “Defining a model in Abaqus,” Section 1.3.1). User elements can be assigned to element sets in the usual way, for cross-reference to element property definitions, output requests, distributed load specifications, etc.

Material definitions (“Material data definition,” Section 21.1.2) are relevant only to user-defined elements in Abaqus/Standard. If a material is assigned to a user-defined element (“Assigning an Abaqus material to the user element”), user subroutine UELMAT will be used to define the element response. User subroutine UELMAT allows access to selected Abaqus materials. If no material definition is specified, all material behavior must be defined in user subroutines UEL and VUEL, based on user-defined material constants and on solution-dependent state variables associated with the element and calculated in the same subroutines. For linear user elements all material behavior must be defined through a user-defined stiffness matrix.

Input File Usage: Use the following options to invoke a user-defined element:

\*USER ELEMENT, TYPE=element\_type

\*ELEMENT, TYPE=element\_type

# Defining the active degrees of freedom at the nodes

Any number of user element types can be defined and used in a model. Each user element can have any number of nodes, at each of which a specified set of degrees of freedom is used by the element. The activated degrees of freedom should follow the Abaqus convention (“Conventions,” Section 1.2.2). In Abaqus/Standard this is important because the convergence criteria are based on the degrees of freedom numbers. In Abaqus/Explicit the activated degrees of freedom must follow the Abaqus convention because these are the only degrees of freedom that can be updated.

Abaqus always works in the global system when passing information to or from a user element. Therefore, the user element’s stiffness, mass, etc. should always be defined with respect to global directions at its nodes, even if local transformations (“Transformed coordinate systems,” Section 2.1.5) are applied to some of these nodes.

You define the ordering of the variables on a user element. The standard and recommended ordering is such that the degrees of freedom at the first node appear first, followed by the degrees of freedom at the second node, etc. For example, suppose that the user-defined element type is a planar beam with three nodes. The element uses degrees of freedom 1, 2, and $6 ( u _ { x } , u _ { y }right.$ , and $\phi _ { z } )$ at its first and last node and degrees of freedom 1 and 2 at its second (middle) node. In this case the ordering of variables on the element is:

<table><tr><td>Element variable number</td><td>Node</td><td>Degree of freedom</td></tr><tr><td>1</td><td>1</td><td>1</td></tr><tr><td>2</td><td>1</td><td>2</td></tr><tr><td>3</td><td>1</td><td>6</td></tr></table>

<!-- source-page: 1107 -->

<table><tr><td>Element variable number</td><td>Node</td><td>Degree of freedom</td></tr><tr><td>4</td><td>2</td><td>1</td></tr><tr><td>5</td><td>2</td><td>2</td></tr><tr><td>6</td><td>3</td><td>1</td></tr><tr><td>7</td><td>3</td><td>2</td></tr><tr><td>8</td><td>3</td><td>6</td></tr></table>

This ordering will be used in most cases. However, if you define an element matrix that does not have its degrees of freedom ordered in this way, you can change the ordering of the degrees of freedom as outlined below.

You specify the active degrees of freedom at each node of the element. If the degrees of freedom are the same at all of the element’s nodes, you specify the list of degrees of freedom only once. Otherwise, you specify a new list of degrees of freedom each time the degrees of freedom at a node are different from those at previous nodes. Thus, different nodes of the element can use different degrees of freedom; this is especially useful when the element is being used in a coupled field problem so that, for example, some of its nodes have displacement degrees of freedom only, while others have displacement and temperature degrees of freedom. This method will produce an ordering of the element variables such that all of the degrees of freedom at the first node appear first, followed by the degrees of freedom at the second node, etc.

In Abaqus/Standard there are two ways to define element variable numbers that order the degrees of freedom on the element differently.

Since the user element can accept repeated node numbers when defining the nodal connectivity for the element, the element can be declared to have one node per degree of freedom on the element. For example, if the element is a planar, 3-node triangle for stress analysis, it has three nodes, each of which has degrees of freedom 1 and 2. If all degrees of freedom 1 are to appear first in the element variables, the element can be defined with six nodes, the first three of which have degree of freedom 1, while nodes 4–6 have degree of freedom 2. The element variables would be ordered as follows:

<table><tr><td>Element variable number</td><td>Node</td><td>Degree of freedom</td></tr><tr><td>1</td><td>1</td><td>1</td></tr><tr><td>2</td><td>2</td><td>1</td></tr><tr><td>3</td><td>3</td><td>1</td></tr><tr><td>4</td><td>4</td><td>2</td></tr><tr><td>5</td><td>5</td><td>2</td></tr><tr><td>6</td><td>6</td><td>2</td></tr></table>

<!-- source-page: 1108 -->

Alternatively, the user element variables can be defined so as to order the degrees of freedom on the element in any arbitrary fashion. You specify a list of degrees of freedom for the first node on the element. All nodes with a nodal connectivity number that is less than the next connectivity number for which a list of degrees of freedom is specified will have the first list of degrees of freedom. The second list of degrees of freedom will be used for all nodes until a new list is defined, etc. If a new list of degrees of freedom is encountered with a nodal connectivity number that is less than or equal to that given with the previous list, the previous list’s degrees of freedom will be assigned through the last node of the element. This generation of degrees of freedom can be stopped before the last node on the element by specifying a nodal connectivity number with an empty (blank) list of degrees of freedom.

# Example

The above procedure continues using this new list to define additional degrees of freedom in accordance with the new node and degrees of freedom. For example, consider a 3-node beam that has degrees of freedom 1, 2, and 6 at nodes 1 and 3 and degrees of freedom 1 and 2 at node 2 (middle node). To order degrees of freedom 1 first, followed by 2, followed by 6, the following input could be used:

<table><tr><td colspan="2">*USER ELEMENT</td></tr><tr><td>1</td><td></td></tr><tr><td>1, 2</td><td></td></tr><tr><td>1, 6</td><td></td></tr><tr><td>2,</td><td></td></tr><tr><td>3, 6</td><td></td></tr></table>

In this case the ordering of the variables on the element is:

<table><tr><td>Element variable number</td><td>Node</td><td>Degree of freedom</td></tr><tr><td>1</td><td>1</td><td>1</td></tr><tr><td>2</td><td>2</td><td>1</td></tr><tr><td>3</td><td>3</td><td>1</td></tr><tr><td>4</td><td>1</td><td>2</td></tr><tr><td>5</td><td>2</td><td>2</td></tr><tr><td>6</td><td>3</td><td>2</td></tr><tr><td>7</td><td>1</td><td>6</td></tr><tr><td>8</td><td>3</td><td>6</td></tr></table>

# Requirements for activated degrees of freedom in Abaqus/Explicit

There are the following additional requirements with respect to activated degrees of freedom on a user element of type VUn:

<!-- source-page: 1109 -->

• Only degrees of freedom 1 through 6, 8, and 11 can be activated because these are the only degrees of freedom numbers that can be updated in Abaqus/Explicit. (In Abaqus/Standard degrees of freedom 1 through 30 can be used.)   
• If one translational degree of freedom is activated at a node, all translational degrees of freedom up to the specified maximum number of coordinates must be activated at that node; moreover, the translational degrees of freedom at the node must be in consecutive order.   
• In three-dimensional analyses, if one rotational degree of freedom is activated at a node, all three rotational degrees of freedom must be activated in consecutive order.

For example, if you define a 4-node three-dimensional user element that has translations and rotations active at the first and fourth nodes, temperature only at the second node, and translations and temperature at the third node, the following input could be used:

```csv
*USER ELEMENT
1, 2, 3, 4, 5, 6
2, 11
3, 1, 2, 3, 11
4, 1, 2, 3, 4, 5, 6 
```

# Rotation update in geometrically nonlinear analyses

If all three rotational degrees of freedom (4, 5, and 6) are used at a node in a geometrically nonlinear analysis, Abaqus assumes that these rotations are finite rotations. In this case the incremental values of these degrees of freedom are not simply added to the total values: the quaternion update formulae are used instead. Similarly, the corrections are not simply added to the incremental values. The update procedure is described in “Rotation variables,” Section 1.3.1 of the Abaqus Theory Guide, and is mentioned in “Conventions,” Section 1.2.2.

To avoid the rotation update in a geometrically nonlinear analysis in Abaqus/Standard, you may define repeated node numbers in the nodal connectivity of the element such that at least one of the degrees of freedom 4, 5, or 6 is missing from the degree of freedom list at each node.

# Visualizing user-defined elements in Abaqus/CAE

Plotting of user elements is not supported in Abaqus/CAE. However, if the user elements contain displacement degrees of freedom, they can be overlaid with standard elements; and model plots of these standard elements can be displayed, allowing you to see the shape of the user elements. If deformed mesh plots of the user elements are required, the material properties of the overlaying standard elements must be chosen so that the solution is not changed by including them. If this technique is used, nodes of the user element will be tied to nodes of the standard elements. Therefore, degrees of freedom 1, 2, and 3 in the user element must correspond to the displacement degrees of freedom at the nodes of the standard elements.

<!-- source-page: 1110 -->

Linear user elements can be defined only in Abaqus/Standard. In the simplest case a linear user element can be defined as a stiffness matrix and, if required, a mass matrix. These matrices can be read from a results file or defined directly.

# Reading the element matrices from an Abaqus/Standard results file

To read the element matrices from an Abaqus/Standard results file, you must have written the stiffness and/or mass matrices in a previous analysis to the results file as element matrix output (“Element matrix output in Abaqus/Standard” in “Output,” Section 4.1.1) or substructure matrix output (“Writing the recovery matrix, reduced stiffness matrix, mass matrix, load case vectors, and gravity vectors to a file” in “Defining substructures,” Section 10.1.2).

You must specify the element number, n, or substructure identifier, Zn, to which the matrices correspond. For models defined in terms of an assembly of part instances (“Defining an assembly,” Section 2.10.1), the element numbers written to the results file are internal numbers generated by Abaqus/Standard (see “Output,” Section 4.1.1). A map between these internal numbers and the original element numbers and part instance names is provided in the data file of the analysis from which the element matrix output was written.

In addition, for element matrix output you must specify the step number and increment number at which the element matrix was written. These items are not required if a substructure whose matrix was output during its generation is used.

Input File Usage: \*USER ELEMENT, FILE=name, OLD ELEMENT=n or Zn, STEP=n, INCREMENT=n

# Defining the linear user element by specifying the matrices directly

If you define the stiffness and/or mass matrix directly, you must specify the number of nodes associated with the element.

Input File Usage: \*USER ELEMENT, LINEAR, NODES=n

Defining whether or not the element matrices are symmetric

If the element matrices are not symmetric, you can request that Abaqus/Standard use its nonsymmetric equation solution capability (see “Defining an analysis,” Section 6.1.2).

Input File Usage: \*USER ELEMENT, LINEAR, NODES=n, UNSYMM

Defining the mass or stiffness matrix

You define the element mass matrix and the element stiffness matrix separately. If the element is a heat transfer element, the “stiffness matrix” is the conductivity matrix and the “mass matrix” is the specific heat matrix.

You can define either one matrix for the element (mass or stiffness) or both types of matrices.
