$
$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
$
$           Sample of Side Lift - no mooring
$
$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
$
&dimen  -dimen feet kips
&device -g_default file -oecho no
$
$*********************************************      read model
$
inmodel
$ &env
&describe part jacket -move 0 0 0 *j0501 *j1001 *j0503 *j1003
&instate -locate barge    0   0 -20 0   0 0 \
         -locate jacket 143 200   1 0  -9 0
medit
    ~sling sling  3 -length 200
    ~boom sling   3 -length 200
    ~airt tug_boat  10
$                                      connections small tug to jacket
    connector airt1  ~airt -tug   0 10  *j0501
    connector airt2  ~airt -tug  90 10  *j0501
$                                        sling assembly
    connector boom ~boom *b1
    connector sling1 ~sling *j0602
    connector sling2 ~sling *j0604
    connector sling3 ~sling *j1002
    connector sling4 ~sling *j1004
    assembly t-h_definition boom sling1 sling2 sling3 sling4 -initial
end
$
$                                        report jacket weighs 1190 kips
&status b_w
$
$  change boom length until tension equals 1000 kips (not jacket weight)
&connector &boom -l_tension  1000
$
$        report forces on the connectors (boom should be very near 1000)
&status f_connector
$
$         after medit menu system is barge, jacket, and tip-hook assmbly
$      changing the weight of the barge only to put barge in equilibrium
&weight -compute barge 10 50 150 150
$
$                  report barge in equilibrium jacket not in equilibrium
&status config
$
$                                    report geometry of tip-hook assembly
&status tip-hook
$                      report forces in all elements of tip-hook assembly
&status f_connector
$
$          *** let's check the location of the lowest point on the jacket
$                             from the -move option above, that is *j1001
$
&type
&type location of *j1001 = &point(coordinate *j1001 -g) $ use -g for global location
&type
$
$               *** so the lowest point is at 1 foot above the water line
$                                               so let's find equilibrium
$
$                                                turn off the air tuggers
&select :air -select airt@
&connector :air -inactive
$
$                           ignore barge.  we just want to move the jacket
$                                     once done, we again look at all dofs
$
&describe body barge -ignore x y z rx ry rz
&equi
$
$                                             *** check location of *j1001
$                                             notice same routine as above
&type
&type location of *j1001 = &point(coordinate *j1001 -g) $ use -g for global location
&type
$
$            damn, the jacket is under water.  we want it out of the water.
$                                       let's reel in 8 feet of  boom line.
$
&connector &boom -l_delta -8
&status tip-hook     $                report geometry of tip-hook assembly
&status f_connector  $  report forces in all elements of tip-hook assembly
&equi
$
$                                     *** again - check location of *j1001
$
&type
&type location of *j1001 = &point(coordinate *j1001 -g) $ use -g for global location
&type
$
$                                  *** ok.  the jacket is out of the water
$                            we reactivate all dofs and get status reports
$
&describe body barge -ignore
&equi   $                    does change in jacket effect barge condition?
&status config  $                                     now barge has a list
&status b_w
$
$                                                  turn on the air tuggers
&connector :air -active
$
$                       report forces in all elements of tip-hook assembly
&status f_connector
$
$                                                  get pictures of system
&picture starb
&picture bow
&picture top
$
$                                                   compute hydrodynamics
hydrodynamics
   g_pressure barge -head 90 -period 5 6 7 8 9 10 11
end
$
$                                                linear response analysis
freq_response
   rao           $                                           compute RAOS
    &describe body barge
    fr_point
       report    $      report motion RAOS for barge at local body origin
       end
    &describe body jacket
    fr_point
       report    $     report motion RAOS for jacket at local body origin
       end
$
$                                slings and booms do not belong to a body
$           these reports could have been done just after the RAO command
$                                       do not need to designate the body
    fr_cforce sling1
       report    $                 report connector force RAOS for sling1
       end
    fr_cforce boom
       report    $                   report connector force RAOS for boom
       end
$                             report conector force response for sea state
$                                       report response for sea state with
$                                                       mean period 4 to 9
    st_cforce @ -sea issc 90 10 4 -e_period 5 6 7 8 9
       report
       end
end
$
$                                  same sea description as linear analysis
$                                  added time option
&env sea -sea issc 90 5 8 -time 100 .2
$
$                                               compute in the time domain
$                                               there is no mooring system
$                           so system will wander in the -90 deg direction
tdom
$
$                  look for slams before 40 sec (this was project request)
&select :lower -select jacket
&type SLAM 1 to 50 seconds .2 sec increments
&type &slam(:lower 1 50  .2)
$
$              save time of slam events to be used for structural analysis
&set f_time =  &slam(:lower 0 40  .2)
$                         pick the 2nd slam event for structural analaysis
$                                               (this was project request)
&set f_time =  &token(2 %f_time)
$
$                                                   results of time domain
prcpost
$
$                                   sling and boom connector force results
   conforce
      vlist
      plot 1 8 -rax 16 -t_main "Air tuggers" -no
      plot 1 24 -rax 32 40 48 56 -t_main "Boom and Slings" -no
      report
   end
$
$                                           trajectory of jacket and barge
   trajectory
      vlist
$                                                    plot x and y location
      plot 1 5  -rax 6  -t_main "Barge Position " -no
      plot 1 27 -rax 28 -t_main "Jacket Position " -no
   end
$                          Want to know if the jacket bangs into the barge
   &set bang = .false.   $             start off assuming it does not bang
   &loop edge (edge1 edge2 edge3) $ loop on the 3 points on the barge edge
      rel_motion *%edge *j1003 -mag  x y $ distance will be measured in x-y plane
         vlist
         set c%edge -min 5 5    $          pick minimum value of magnitude
         set r%edge -column 5   $ save the distance between the two points
         set event  -column 1   $  save the events for each distance value
$                                setting value for 'event' is done 3 times
$                         because I am too lazy to make it do it only once
$
$                   can only check for negative distance if bang is .false.
         &if .not. %bang &then
$                so if value from minimum is negative change bang to .true.
            &set bang = &logical(%(c%(edge)) .lt. 0)
         &endif
$                                    plot the relative motion individually
         plot 1 5 -t_main "Relative Position" -no
      end
   &endloop
end
$                                                      a note to ourselves
&type ******************************
&type Jacket Crashed into Barge %bang
&type Edge1 %cedge1 Edge2 %cedge2 Edge3 %cedge3
&type ******************************
$
$       Now plot the relative motion for all three points on the same graph
&set n = &token(n %event)
$                                                  use the build graph menu
&buildg -brief
$                                              these are the column headers
   event
   edg1
   edg2
   edg3
 
$           This loop populates the table.  Each row corresponds to an event
   &loop jjj 1 %n 1
      &token(%jjj %event) &token(%jjj %redge1) &token(%jjj %redge2) &token(%jjj %redge3)
   &endloop
 
   vlist  $       this should give us the same column headers we input above
   plot 1 2 3 4 -t_main 'Relative Position' -no
end
&type &info(menu)   $                  make sure we are back in the Main Menu
$
$
&summary
  rest
end
structural
$                                          Project wants load case at event 5
$                   make a loadcase for f_time determined earlier and event 5
   lcase -process %f_time  5
   s_rest //sling
$                            only use sling restraints in structural solution
$                                        boom is also classified as restraint
   s_body jacket      $      only do structural analysis of jacket
   ssolve -nonlinear  $      this is where the structural analysis actually takes place
end
$
$                                Now Post Process the results just calculated
strpost
   beam code
   restraint load
end
&finish
