Marine Engineering Specialists -- Bentley Systems has acquired Ultramarine's MOSES Software [ Press Release ]
Free Standing Riser
This sample problem shows an analysis of a free-standing buoyant riser.

Most of our examples contain a common set of "beginning" commands as well as a common "ending" command. Click here to get documentation for these commands. They will not be discussed directly. The files which are discussed here are:

We begin this analysis by setting some variables, taking out a degree of freedom and setting the condition.

   &SET DRAFT  = 130
   &SET BOTTOM = 6000-20
   &DESCRIBE BODY BUOY -IGNORE RZ
   &INSTATE -CONDITION BUOY %DRAFT% 0.0 0.0
The first command sets the variable draft to 130 feet, and the second command sets the variable bottom to 5980 feet. You can anticipate that these two variables will be used to set the draft and define the bottom of the riser.

The buoy which was read in with the data file is a 180 foot cylinder with an average diameter of 23 feet. We have chosen to ignore yaw (RZ) because for a cylinder the numerics for yaw do not behave well. The condition of the buoy is set with the last command in this set. You can think of this command as reading "The state of the condition of the buoy is a draft of 130 feet, a 0 degree roll, and a 0 degree trim." Please notice that in this command we are using the variable draft which was defined three commands earlier.

Having placed the buoy at the desired condition we are ready to define the riser. This is done with the following commands.

   $
   $**************************************          define connectors
   $
   MEDIT
      &SET PROPS = -WTPL 1.789 -DISPL 1.769 -SECT 147.7 41865 41865 2*41865 \
                   -BUOY 0
      &SET l1 = 400
      &SET l3 = 200
      &SET l2 = &NUMBER(REAL %BOTTOM%-%DRAFT%-%L1%-%L3%)
      ~TUBEBP ROD 60 1 -REFINE 20 -LEN %L1 %PROPS -DEPAN %BOTTOM%
      ~TUBEBP ROD 60 1 -REFINE 50 -LEN %L2 %PROPS
      ~TUBEBP ROD 60 1 -REFINE 10 -LEN %L3 %PROPS
      CONNECTOR TUBE ~TUBEBP -ANCHOR 0.0 0.0 *PT1
   END_MEDIT
The command MEDIT enters us into Model Editing menu. Within this menu we set some more variables. It is worth noting that in MOSES you can set a variable to a string as is done with the variable PROPS. The variable PROPS contains the options and the values which will be used as material properties for the riser. It is also worth noting that you can set a variable to a command, in this case a string function, as is done with variable L2. The string function &NUMBER(REAL . . . ) returns the value of the arithmetic contained within the parentheses and after the word REAL. The word REAL here tells the program that the numerical quantity we are looking for is a member of the real number set. Doing the arithmetic by hand or later looking at the log file you will see the value of variable L2 is set to 5250. The variables L1, L2, and L3 set here are used in the class definition to define the rod segment lengths. The riser class is defined in the next three command lines. This is the first example in which we use a rod element, so if you have been reading all the other mooring examples most of the options will be familiar, however there are some options which are specific to the rod element.

The class name for the riser is ~TUBEBP and it is made of the class type ROD. It is 60 inches in diameter and 1 inch in thickness. If you have been reading the other mooring examples you might have noticed that the rod class type is the only flexible connector class type which requires a thickness. Three command lines are used to describe the class ~TUBEBP because it is made up of three segments. The three segments differ in the number of refinements, specified with the option -REFINE, and length, specified with the option -LEN. This option instructs MOSES to subdivide the segments into N elements, and thus create N + 1 nodes. The rod definition begins at ground with a length of 400 feet refined 20 times, the middle segment is 5250 feet and is refined 50 times, and the segment nearest mean water level is 200 feet and is refined 10 times. This makes a total of 80 elements and 81 nodes. The nodes are numbered from the ground to mean water level, this makes the node at the bottom node 1. This set of class segment definitions makes the elements at the ends of the riser approximately 20 feet long and the elements in the middle section 105 feet long.

In each of the three lines describing the class ~TUBEBP we have used the variable PROPS. Earlier, this variable was set to contain the options and the values needed for weight per length, displacement per length, the section properties, and the buoyancy diameter. Since the same variable is being used in each of the three segments the material properties are congruent. The first riser segment is connected to ground at an anchor depth equal to the variable bottom (5980 feet).

In the final command the connector named tube is defined as having class ~TUBEBP an anchor location directly under the fairlead and connecting to point *PT1 on the body buoy.

The command END_MEDIT exits the Model Editing menu.

The connector definition above still needs to be altered a bit to fit the purpose we want. The following command changes the attributes of the connector named tube.

   &CONNECTOR TUBE   -ST_ADDITION 2 1572.5 1572.5 0 \
                     -A_STIFF 600 60 60  \
                     -TOP_MOMENT YES
   &EQUI -OMEGA .25
The following is a list of the attributes changes with the options in the above command:
  • add diagonal stiffness to the matrix, done with -ST_ADDITION. Here we added 1572.5 kip/feet in the global X and Y direction to node number 2,
  • redefine the anchor stiffness in the global X direction to 600 kip/feet, and in the global Y and Z direction to 60 kip/feet, done with the -A_STIFF, and
  • change the connection behavior at the top to take moment as well as force, done with -TOP_MOMENT.

An equilibrium position is found with the command &EQUI -OMEGA which, when issued, asks the program to iterate until either the residual is less than the default convergence tolerance or until the default maximum iterations are taken. The option is used to augment the stiffness of the system equations with a fraction of the inertia. This concept is addressed in detail in the MOSES reference manual.

In the next set of commands we define the environment.

   $
   $**************************************        Define  environment
   $
   &DATA ENV
       PROFILE LOOPCUR     0.0  6.10 \
                         300.0  6.10 \
                         500.0  5.30 \
                        1000.0  2.00 \
                        2000.0  0.50 \
                        6000.0  0.50
      ENV GOMLOOP -SEA ISSC 0 39.0 15.2/1.289 -CURRENT LOOPCUR 0 \
                  -TIME 100 .25
   END_&DATA
   &ENV GOMLOOP
The first command shown above enters us into the MOSES &Data menu. The current profile named LOOPCUR is described with pairs of numbers. The first number is the water depth and the second number is the corresponding current velocity in feet/second. This current definition is used in the environment named GOMLOOP. The GOMLOOP environment is described by an ISSC wave spectrum of heading 0 degrees, a significant wave height of 39 feet, and a mean period of 15.2/1.289 seconds. The current of the environment GOMLOOP has a heading of 0 degrees and the characteristics just defined with the profile named LOOPCUR. An observation time of 100 seconds and a recording time of every .25 seconds is to be used for a time domain synthesis.

The last command invokes the environment just defined as GOMLOOP. By invoking the environment we have altered the forces on the system. This means that the equilibrium position found earlier probably does not hold true anymore. The following commands show that we are not at equilibrium, then find equilibrium, and finally show that equilibrium has been found.

   $
   $**************************************         find equi
   $
   &STATUS FORCE
   &INSTATE -LOCATE BUOY  -173.09 .00   -135   0 0 0
   &EQUI -OMEGA .25
   &STATUS FORCE
   &STATUS G_ROD
   &STATUS S_ROD
   &STATUS F_ROD
Surveying the above seven commands one notices that five of the seven begin with the command &STATUS. This command reports the current status of the system. There are many report types that are available for this command. In the above set of commands we see four types: FORCE, G_ROD, S_ROD, and F_ROD. These correspond to reports of the forces acting on the buoy, the geometry of the rod element, the stresses on the rod element, and the rod element internal forces. These reports will be channeled to the screen during the analysis and will be available in the log file.

The report of the forces acting on the buoy is separated into drag, buoyancy, and weight forces. This report also sums the forces for each degree of freedom. The first report of the forces acting on the buoy will show that the forces in the X direction are rather large. The fact that the forces do not sum to near zero implies that the system is not in equilibrium. The buoy is then placed in a state where its location is global coordinates X = -173.09, Y = 0, and Z = -135 feet. This position is near equilibrium. Refinements to this location are done with the same command, &EQUI -OMEGA, which was also used earlier to find equilibrium. The report of the forces acting on the buoy which follows will show that the sum of the forces is now within an acceptable tolerance. The reports created with other report types with the &STATUS command are for this equilibrium position.

The analysis that follows consists of both time and frequency domain simulations. Both of these are relative standard and are dealt with in other sections. To look at the frequency domain simulation, click here, and to look at the time domain simulation, click here.

There is one set of commands which is contained in the frequency domain post-processing of the free standing riser which is not addressed in the section "Common Frequency Response Commands". The following is the section.

      FR_CFORCE
      REPORT
      END
The above commands compute frequency response of the connector forces. At the conclusion the user is placed in the Disposition menu, as with the other commands in the frequency response menu.

There are two sets of time domain post-processing commands, R_ENVELOPE and R_VIEW, which are only for post-processing of rods and pipes and therefore were not included in the general discussion for time domain post-processing. The section of the time domain analysis containing these commands is shown below.

        R_ENVELOPE TUBE
           REPORT
           END
        R_VIEW  TUBE -EVENTS 0 900 .5
           REPORT
           END
The first command computes the behavior of the rod during the process. This command computes the minimum and maximum values, the envelope of the internal forces in the rod, and the stresses in the rod over all events selected as a function of the distance from the end of the rod. The second command is used to obtain the behavior of the rod during the process, it lets you view the behavior. This command finds the maximum absolute value of the six internal forces in the rod, the stresses in and along the rod, and its active length at each event selected. As with the other commands used for post-processing these commands conclude in the disposition menu.