MOSES provides for several ways to flexibly connect bodies to one another or to ground. These range from simple springs to assemblies of elements such as lifting slings and pipe assemblies. MOSES bases the definition of a connection on the type of class defined for it.

To define an element with properties which vary along the length, one should define multiple class commands with the same name. In contrast to beam and pile classes,
every segment's length *must* be defined for flexible classes. Also, the order of the segments can be thought of as starting at the fairlead, moving toward the anchor.

There are three classes which define connectors with zero length, FOUNDATIONs, LMUs, and GSPRs. The class definition of these is:

~CLASS,FOUNDATION, SENSE, DF(1), SPV(1), AF(1) ... \ DF(n), SPV(n), AF(n), \ -OPTIONS~CLASS,GSPR, SENSE, DF(1), SPV(1), AF(1) ... \ DF(n), SPV(n), AF(n), \-LEN, L, -OPTIONS~CLASS,LMU, LEN, OD(1), OD(2), \ DF(1), SPV(1), AF(1) ... \ DF(n), SPV(n), AF(n), \ -OPTIONS

In addition to the standard class options discussed above, the following are, in general, available:

-SYMMETRIC, YES/NO-IG_STIFF-CONVOLUTION, DF, CVL_NAME-X_PY, P(1), Y(1), P(2), Y(2), ......., P(n), Y(n)-Y_PY, P(1), Y(1), P(2), Y(2), ......., P(n), Y(n)-Z_PY, P(1), Y(1), P(2), Y(2), ......., P(n), Y(n)-X_DAMPING, Co, Ex, Fo-Y_DAMPING, Co, Ex, Fo-Z_DAMPING, Co, Ex, Fo-FRICTION, MU

Here DF(i) is the name of the degrees of freedom (in the element system) which will be restrained and must be chosen from the list: **X**, **Y**, **Z**, **RX**, **RY**, **RZ**. By default,
the element system is aligned with the body system of the first node defining a connection. More will be said about this when defining elements are discussed. SPV(i)
is the value of the spring (bforce/blength for degrees of freedom X, Y, and Z, and bforce-blength/radian for degrees of freedom RX, RY, and RZ) and AF(i) is the
allowable force in this direction. For GSPRs and FOUNDATION elements, SENSE defines the direction in which the element will act; i.e. if SENSE is **TENSION**, then the
connector will have no load (in any degree of freedom) when the element X displacement is negative. If SENSE is **COMPRESSION** then it will have no load when the element
X displacement is positive. The length here defines an element X offset from the nominal beginning of the element to the spring. In reality, a FOUNDATION is simply a
GSPR (generalized spring) which has zero length, and will be checked in a FOUNDATION check. The **-SYMMETRIC** option can be used with connectors
which are symmetric about the element X axis. If this option is used, then one should only define the "Y" properties and MOSES will automatically take care of the
rest. By default YES/NO is NO for GSPR and FOUNDATION connectors and YES for LMU connectors.

A LMU has geometry - a length and two diameters and is intended to model a pin in a cone. The cone and pin geometry are illustrated in Figure 7. Here, all three numbers are in inches or mm. It too is a GSPR with a SENSE of COMPRESSION, but the deformation is not measured from the two points. It is best to think of the two point for the connector as the tip (bottom) of the pin and the "top" of the cone. Let us define

T = ( OD(2) - OD(1) ) / ( 2 LEN )

Which is the tangent of the cone angle. Now, if the pin tip is above the cone top, then there will be no force. Now let D_v be the distance the pin tip is below the cone top and D_h be the horizontal distance that the pin tip is away from the cone center. If D_v is less than LEN, then we will have a horizontal deformation given by:

Delta_h = D_h - T * ( LEN - D_v )

If we assume that the force between the sides of the cone and the pin is perpendicular to the surface, then horizontal deformation will produce a vertical deformation

Delta_v = -Delta_h * T

Finally, if D_v is greater than LEN the two deformations are

Delta_v = D_v - LEN - ( D_h * T ) Delta_h = D_h

Now, the force in the connector is computed from the two deformations and the two spring constants.

The **-IG_STIFF** option is applicable for flexible connector classes as well as restraint classes. With this option, the stiffness of connectors
attached to other bodies will not influence the structural results of the desired body. Additional springs can be combined in series with the basic springs by
including either (or both) of the options **-X_PY** or **-CONVOLUTION**. The first of these defines **-X_PY**, **-Y_PY** and **-Z_PY** options define nonlinear springs in series with the basic x, y or z stiffness. Here, the letter following the - defines
the "element" degree of freedom to which the extra stiffness will be applied. The **-CONVOLUTION** option allows one to add an additional spring,
but the behavior here is defined by a convolution curve specified with CVL_NAME. This allows one to define springs that are viscoelastic as well as elastic. When
using the convolution option, DF is the name of the degree of freedom on which the convolution acts. DF must be chosen from the list: **X**, **Y**, **Z**, **RX**, **RY**, **RZ**. Note also
that CVL_NAME must be the name of a curve defined elsewhere with the **&DATA CONVOLUTION** command. See the documentation of that command for further details on
specifying convolution curves.

All of these options define points on the force/deflection curve of a spring. Here, P(i) is the force in bforce, and Y(i) is the resulting deflection in feet or meters. The curve defined must have the deflection being a function of the force. In other words, there can be no two points with the same P, and the points must be defined in increasing P. Also, MOSES assumes that the tension/compression behavior of the spring is the same so that the values should all be positive. Also, to avoid mathematical difficulties, Y should be a monotone increasing function of P.

The **-X_DAMPING**, **-Y_DAMPING**, and **-Z_DAMPING** options defines a nonlinear dashpot at the end of the element.
As with the PY options discussed above, the letter following the - defines the degree of freedom in which these dashpots act. Here, the force is given by:

F = Co * ( v **Ex )

for F <= Fo (bforce). Here v is the relative velocity and Co is in (bforce-(sec/ft)**Ex or bforce-(sec/meter)**Ex). This dashpot is only active when the spring will have a force in it.

The **-FRICTION** option can be used to limit the force in the element y and z directions based on the element x force, and the precise behavior
depends on the stiffness data. If either of the Y or Z stiffnesses are non zero, then friction is used as follows. After the force components Fx and Fz have been
computed, they are checked against the product of Fx and MU; i.e. we compute

Fh = sqrt ( Fy*Fy + Fz*Fz ) Fm = MU * abs ( Fx ) / Fh FACT = min ( Fm, 1)

and then actually apply FACT * Fy and FACT * Fz. If both lateral stiffnesses are zero then the lateral force applied will be Fm and it will be applied in the
direction *opposite* the relative velocity.

Three classes are used to define the constituents of slings and pipe assemblies:

~CLASS,SLING, OD,-LEN, L, -OPTIONS~CLASS,DAVIT, OD,-LEN, L, -OPTIONS~CLASS,ROLLER, SENSE, DF(1), SPV(1), AF(1) ... \ DF(n), SPV(n), AF(n), \ -OPTIONS

Slings and davits are similar in that they are really lines whose force depends only upon the distance between the ends. The cross-sectional area of these elements is
computed from OD (inches or mm) assuming that the section is circular. The stiffness is then given by AE and L (feet or meters). The only other option available for
this class is **-EMODULUS**.

A **ROLLER** is a limited GSPR element. It is limited in that all of the options discussed above are not available. Here the available options are:

-Y_PY, P(1), Y(1), P(2), Y(2), ......., P(n), Y(n)-Z_PY, P(1), Y(1), P(2), Y(2), ......., P(n), Y(n)-Y_ROLLER, Y-, Y+-Z_ROLLER, Z-, Z+

If neither the **-Y_ROLLER** nor the **-Z_ROLLER** is specified, then the roller will automatically restrain lateral motion and prevent the pipe from going below the roller.
The values Y-, Y+, Z- and Z+ (inches or mm) define "gaps" for the roller. Here a roller is assumed to consist of four physical rollers. A pair of these restrain
motion in each of the pipe system Y and Z directions. The Y- and Y+ values are the dimension from the end of the connector to the physical roller. The same can be
said for the Z dimensions. To get a one sided constraint, use Z- equal 0 and Z+ equal 10000. This says that the "bottom" roller is at the connector node and the "top"
roller is 10000 above the node. Since the pipe is unlikely to move this much, the top roller will never be active. All of these elements must have a single node, and
the second end will be taken care of in the assembly itself.

There are four classes which can be used to define a connector with finite length.

~CLASS,ROD, OD, T,-LEN, L, \-REFINE, N, -OPTIONS~CLASS,B_CAT, OD, FLAG,-LEN, L, \-DEPANCHOR, DEPTH -OPTIONS~CLASS,H_CAT, OD, FLAG,-LEN, L, \ -OPTIONS~CLASS,SL_ELEM, OD, FLAG,-LEN, L, \ -OPTIONS

Here, OD and T are the outside diameter and thickness (inches or mm). In reality, a ROD is the accurate solution to the problem (including local dynamics) and the
others are different levels of approximation. Also, a ROD can have temperature, pressure, and contents as specified with **-T_PRESSURE** option on the **&ENV** command and an
**T_PRESSURE** command. A SL_ELEM is an element whose force depends only upon the distance between the ends and acts in the direction of the vector from one end to the
other. By default, an SL_ELEM can have both tension and compression. If, however, a value of **TENSION** is specified for FLAG, then is can have only tension. A B_CAT is
a catenary to ground and a H_CAT is a hanging catenary. Both of the catenaries employ restrictions and assumptions and FLAG controls a second level of approximation:

- The only force which is assumed to act is the weight (in air weight for a H_CAT and in water weight for a B_CAT).
- A B_CAT can only connect a body to ground and DEPTH is the depth at the anchor.
- By default,a B_CAT tabulates the force vs horizontal distance at the initial depth. If one uses a value of
**EXACT**for FLAG, then the table will not be used. This should be done when changes in depth are important. - A H_CAT ignores both the bottom and the water line, so a spring buoy cannot be used here.
- By default, a H_CAT ignores the weight of the element so that it is really a tension only SL_ELEM. A value of
**EXACT**for FLAG considers the weight.

The following are, in general, available:

-REFINE, N,-IG_STIFF-SEND, KE(1), KE(2)-X_PY, P(1), Y(1), P(2), Y(2), ......., P(n), Y(n)-X_DAMPING, Co, Ex, Fo-SPGRAVITY, SPGR-DENSITY, RHO-CONVOLUTION, CVL_NAME-EMODULUS, EMOD-POI_RAT, POIRAT-ALPHA, ALPHA-FYIELD, FYIELD-WTPLEN, WTPFT-DISPLEN, DPFT-PISTON, TYPE, LT, LD, VLONG, VSHORT, TMAX, TMIN-B_TENSION, BTEN-C_SN, CSN-TAB_LIM, TABLE_LIMIT-DEPANCHOR, DEPTH-CLUMP, CW, CLEN-BUOYDIAMETER, BOD-DRAGDIAMETER, D_DIAMETER-WINDDIAMETER, WOD-AMASDIAMETER, AMOD-FRICTION, BOTMU-SLOPE, SLOP

A **ROD** is the *only* connector which can have forces, other than buoyancy and weight, which act along its length. It is also the *only* connector which is assumed to
respond dynamically. MOSES treats rods as an assembly of large deflection tubular beam elements with inertia. The option **-LEN** is used to define the length of each
segment of the rod, with L being the length (feet or meters). The option **-REFINE** is important for ROD elements. This option instructs MOSES to
subdivide the segment into N elements, and thus create N+1 nodes. *If this option is omitted, a single element will be used for the entire segment*. The maximum number
of elements (for all segments) of a rod is 300. Since a rod is nonlinear, the number of elements influences the accuracy of the solution. Any of the "material"
options can be used to define the properties of the rod, and **-WTPLEN**, **-DISPLEN**, **-BUOYDIA**, **-WINDDIA**, **-DRAGDIA** and **-AMASDIA** can be
used to change the force computations as for a beam.

The remainder of the flexible connectors, are in essence, a set of springs in series, a dashpot, and a hydraulic tension control device. All of these elements have
linear stress-strain behavior, but they all can be combined with three additional springs (defined with -SEND, -CONVOLUTION, or -X_PY) which have nonlinear
force-deflection or viscoelastic behavior. Here, in contrast to the above "GSPR" connectors, damping and py curves can only be defined in the element X direction. A
ROD cannot have a convolution. An **B_CAT** can *only* be used to connect a body to ground, while the other types of connectors can connect a body to ground or to another
body.

The **-PISTON** option is used to define a hydraulic piston that is used to control the tension. Here TYPE must be either **MAX** or **MINMAX**, Lt and Ld
(inches or mm) are the total stroke and the nominal position of the piston, VLONG and VSHORT (feet or meters/sec) are the lengthening and shortening velocities of the
piston, and TMAX and TMIN (bforce) are the minimum and maximum tensions desired. The details of the behavior depend on TYPE. If type is MINMAX, then the piston starts
at Ld and stays there until the tension exceeds TMAX or is less than TMIN. If the max is exceeded, the piston moves to increase the length with a velocity of VLONG
and the tension is kept at TMAX. If the position wants to exceed LT, motion stops and the tension can exceed TMAX. If the tension is less than the minimum, then the
piston moves to make the the decrease the length with a velocity of VSHORT and the tension is kept at TMIN. If the position wants to be less than zero, the motion
stops and the tension constraint is removed. For values of tension between, there is no piston motion.

With a TYPE of MAX, the piston behaves as above when the tension exceeds Tmax. When the tension becomes smaller than Tmax, then the piston moves to shorten the device with a velocity Vshort until the position is at Ld. For both values of TYPE, there is no stiffness in the connector when the tension is being set at one its limits.

The **-B_TENSION** option is used to define a breaking tension, BTEN (bforce), for each segment of the connector. If this option is not specified,
then one will be computed based on the area of the element and the ultimate tensile stress. This value is used to normalize the tension, to report a unity check, and
in some cases to compute fatigue.

The option **-C_SN** defines the curve used to compute fatigue for an element. Here, CSN can be the name of any defined SN curve. The definition of SN
curves is addressed with the &REP_SELECT command. Most of the time, CSN will be either **CHAIN** or **WIRE**. If this is true, then the API curves will be used for computing
the fatigue. These curves are not really SN curves, but curves of tension ratios to cycles. For a multi segment connector of different materials, it is not obvious
which segment will have the most fatigue. What is done is that the segment with the largest t/tb ratio is used when this segment has a tension type SN curve, and the
segment with the largest stress is used when the critical t/tb segment has a normal SN curve. Nothing prohibits one from using a normal SN curve such as X for the
fatigue.

If one has not used an EXACT FLAG for a B_CAT, MOSES will tabulate the force-distance properties of each line. The values required during execution are then
interpolated from this table. This table will consist of thirty points for each line, and will start at zero horizontal force and increase up to some maximum value.
This maximum is set to the maximum breaking tension over all segments, or it can be set by the user with the inclusion of **-TAB_LIM**, where
TABLE_LIMIT (bforce) will be the maximum tension in the table. For values which exceed the range of the table, extrapolation will be used.

An **B_CAT** class describes a catenary line with possibly more than one segment. The depth at the anchor is defined with the **-DEPANCHOR** option where
DEPTH (feet or meters) is the vertical distance (feet or meters) from the waterplane to the anchor. The length of the segment, L, (feet or meters) is defined with the
**-LEN** option. The area of the cross-section is computed from the OD (inches or mm) assuming that the section is circular. The stretch in the line is computed based on
the sectional area and Young's Modulus defined with the **-EMODULUS** option. The submerged weight per unit length of the catenary is computed from the area and the
density, and the density of water. The weight per length can be changed with any combination of **-WTPLEN**, **-DISPLEN**, and **-BUOYDIA**. For example,

-WTPLEN 10 -BUOYDIA 0

will set the submerged weight per length to 10, and

-WTPLEN 15 -DISPLEN 5 -BUOYDIA 0

will accomplish the same purpose. The **-CLUMP** options adds a "clump weight" of weight CW (bforce) at the end of the current segment. If CW is less than
zero, then it is the negative of the maximum buoy displacement and CLEN is the length of the pendent. A spring buoy cannot be part of the last segment where the
segment attaches to ground. Thus, the connection will be constrained to lie on CLEN feet or meters below the water surface until the load that the lines exert on the
buoy is equal to the maximum displacement. The buoy will then sink, so that the connection is in equilibrium. The solution for the catenary is exact *except* that the
water depth is ignored for the first segment; i.e. MOSES does not consider the possibility of grounding between the spring buoy and the fairlead.

MOSES will assume that there is no friction between the seafloor and an **B_CAT** and that the sea bottom is flat, unless altered by one of the options: **-FRICTION** or **-SLOPE**. Here, BOTMU is the coefficient of friction between the line and the bottom, and SLOP is the slope of the bottom,
from the vessel toward the anchor, positive if the depth increases from vessel to anchor, (vertical distance / horizontal distance).

Consider the following example for the description of a typical mooring line:

~WIRE B_CAT 4.625 -LEN 500 -BUOY 0 -WTPL 37.51/1000 \ -EMOD 29000*0.1 -CLUMP -100 ~WIRE B_CAT 4.625 -LEN 4000 -BUOY 0 -WTPL 37.51/1000 \ -EMOD 29000*0.1 ~WIRE B_CAT 4.375 -LEN 2000 -BUOY 0 -WTPL 158.2/1000 \ -EMOD 29000*0.15 ~WIRE B_CAT 4.625 -LEN 2000 -BUOY 0 -WTPL 37.51/1000 \ -EMOD 29000*0.1 -DEPANCHOR 3000

Here, effort is saved by using minimum uniqueness and arithmetic in the input. Four line segments are described, with a spring buoy at the end of the first segment. The first, second and fourth segments share the same material properties, except for length. Notice the BUOYDIA is set to zero; therefore, the weight per length specified is the weight in water.