% This layout is for the MUCE inflection test
% Set length and set up initial float locations
% 9/15/11 modified to use as-built values for floated cable section. Static
% loads for orginal calculated values were 450 lbs. too light compared to
% actual load cell data.
% 9/26/11 Changed snubber node spec. to match as-built.

water_depth = 1820; %Increased from 1800 to reflect as-built water depth


x = (scope-1)*water_depth/2; %calculate 1/2 catenary length
%lcb_length = cat_bot+x; %lower cable length is caternary height above bottom + 1/2 catenary length
lcb_length = 390 %As-built length

%fc_buoyancy = 600-72;  %entry for total cable float buoyancy in lbs. For MUCE = 600
%fc_specific_buoyancy = 24;  %lbs/meter

%fc_length = fc_buoyancy/fc_specific_buoyancy;  %meters
fc_length = 40*1.1; % As-built length = 40 meters ALSO increase floats by 20% for test
%fc_density = 700;  %kg/m^3 (approximate for syntactic foam)
%fc_buoyancy = (fc_buoyancy/2.2)*9.8;  %conversion from lbs to Newtons


uc_length = water_depth*scope-lcb_length-fc_length; %upper cable length is total cable - lower cable and floated length

sw_density = 1025;

%compute diameter and mass per meter.
%fc_diameter = sqrt((4*fc_buoyancy)/(pi*fc_length*9.8*(1025-fc_density)))  %meters
fc_diameter = 0.26 % As-built float diameter
%fc_mass = fc_density*pi*fc_diameter*fc_diameter/4  %kg per meter
fc_mass = 27.15 % As-built mass kg per meter
%neutral_mass = sw_density*pi*fc_diameter*fc_diameter/4  %kg per meter

%fc_length = fc_length + neutral_length;  %Add neutral length, keeping total buoyancy and diam the same.

last_anchor_node = 24;

fprintf('Last Anchor Node = %d\n',last_anchor_node)

 %Create .spec file
 fid = fopen('Lower_Cable.spec','w');
 fprintf(fid,'#define WATER_DEPTH %6.3f \n',water_depth);
 
 fprintf(fid,'#define AMP %6.3f \n',wave_amp);
 fprintf(fid,'#define PER %6.3f \n',wave_per);
 fprintf(fid,'#define WIND %6.3f \n',wind_spd);
 
 fprintf(fid,'#define CURR_0 %6.3f \n',curr_profile(1));
 fprintf(fid,'#define CURR_50 %6.3f \n',curr_profile(2));
 fprintf(fid,'#define CURR_100 %6.3f \n',curr_profile(3));
 fprintf(fid,'#define CURR_150 %6.3f \n',curr_profile(4));
 fprintf(fid,'#define CURR_200 %6.3f \n',curr_profile(5));
 fprintf(fid,'#define CURR_500 %6.3f \n',curr_profile(6));
 fprintf(fid,'#define CURR_1000 %6.3f \n',curr_profile(7));
 fprintf(fid,'#define CURR_1500 %6.3f \n',curr_profile(8));
 fprintf(fid,'#define CURR_1750 %6.3f \n',curr_profile(9));
 
 fprintf(fid,'#define SNUB_LENGTH %6.3f \n',snub_length);
 
 fprintf(fid,'#define LCB_LENGTH %8.2f \n',lcb_length);
 fprintf(fid,'#define LCB_NODE_SPEC (%d, 0.05) (%d, .90) (%d, 0.05) \n',round(4*0.05*lcb_length/node_sp),round(0.90*lcb_length/node_sp),round(4*0.05*lcb_length/node_sp));

 first_FC_node = last_anchor_node + round(4*0.05*lcb_length/node_sp) + round(0.90*lcb_length/node_sp) + round(4*0.05*lcb_length/node_sp) + 1;
 
 fprintf('First Floated Cable Node = %d\n',first_FC_node)
 
 fprintf(fid,'#define FC_LENGTH %8.2f \n',fc_length);
 fprintf(fid,'#define FC_NODE_SPEC (%d, 1.0)\n',4*round(fc_length/node_sp));
 fprintf(fid,'#define FC_MASS %8.2f \n',fc_mass);
 fprintf(fid,'#define FC_DIAM %6.3f \n',fc_diameter);
 
 
 last_FC_node = first_FC_node +  4*round(fc_length/node_sp) - 1;
 fprintf('Last Floated Cable Node = %d\n',last_FC_node)
 
  
  first_UC_node = last_FC_node + 1;
  fprintf('First Upper Cable Node = %d\n',first_UC_node)  
 
 fprintf(fid,'#define UC_LENGTH %8.2f \n',uc_length);
 fprintf(fid,'#define UC_NODE_SPEC (%d, 0.05) (%d, .9) (%d, .05) \n',4*round(0.05*uc_length/node_sp),round(0.9*uc_length/node_sp),4*round(0.05*uc_length/node_sp));
 
 %first snubber node is upper cable nodes + 13 for bending strain relief and termination
 first_SNUB_node = first_UC_node + 4*round(0.05*uc_length/node_sp) + round(0.9*uc_length/node_sp) + 4*round(0.05*uc_length/node_sp)+ 13;
 fprintf('First Snubber Node = %d\n',first_SNUB_node)
 
 n_snub_nodes = 4*round(snub_length/node_sp); % This is the number of nodes for each snubber
  fprintf(fid,'#define SNUB_NODE_SPEC (%d, 1.0) \n',n_snub_nodes);

 
 fclose(fid);
 clear fid
 
nodes_of_interest = [1:last_anchor_node+10 first_FC_node-10:first_UC_node+150 first_UC_node+1000 first_UC_node+2000 first_UC_node+3000 first_UC_node+4000 first_SNUB_node-30:first_SNUB_node+3*(n_snub_nodes)+7];
%nodes_of_interest = The first 31 nodes above the anchor, the floated cable nodes
%including an extra 10 on the bottom side and extra 150 on the upper side,
%four nodes in the middle of the upper cable and all of the three snubber nodes + 7 for the SST connector pipes.  
cmd = ['save ',results_filenm,'-SPEC.mat last_anchor_node first_FC_node last_FC_node first_UC_node first_SNUB_node nodes_of_interest'];
eval(cmd);   
