% This layout is for the MSE inflection test
% Set length and set up initial float locations
% 9/26/11 Changed snubber node spec. to match as-built.
% 10/02/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.

water_depth = 3150;


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 = 688 %As-built length

%fc_buoyancy = 800-72;  %entry for total cable float buoyancy in lbs. For MSE = 800
%fc_specific_buoyancy = 24;  %lbs/meter

%fc_length = fc_buoyancy/fc_specific_buoyancy;  %meters
fc_length = 48 % As-built length = 48 meters
%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_90 %6.3f \n',curr_profile(2));
 fprintf(fid,'#define CURR_180 %6.3f \n',curr_profile(3));
 fprintf(fid,'#define CURR_270 %6.3f \n',curr_profile(4));
 fprintf(fid,'#define CURR_360 %6.3f \n',curr_profile(5));
 fprintf(fid,'#define CURR_900 %6.3f \n',curr_profile(6));
 fprintf(fid,'#define CURR_1800 %6.3f \n',curr_profile(7));
 fprintf(fid,'#define CURR_2700 %6.3f \n',curr_profile(8));
 fprintf(fid,'#define CURR_3150 %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_UC_node+5000 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, five nodes in the middle of the upper cable and all of the termination and snubber nodes  
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);   
