%read residual stress from Moldflow
close all
clear all
clc
format bank
%selected input datasets (intergration point)
ext_=[1 20];
for ii_= 1:length(ext_)
fe_res_stress_input_file_name = ['plate_strain_.ele.' num2str(ext_(ii_), '%3.3d')];
%open file
res_file_in = fopen(fe_res_stress_input_file_name);
%read header
text_line_in=fgetl(res_file_in);
text_line_in=fgetl(res_file_in);
text_line_in=fgetl(res_file_in);
%
id_element = 1;
%
while true
%read
text_line_in=fgetl(res_file_in);
%EOF
if ~ischar(text_line_in)
break
end %if
element_strain(id_element,1,ii_)=str2num(text_line_in(1:8)); %ID
element_strain(id_element,2,ii_)=str2num(text_line_in(9:22)); %exx
element_strain(id_element,3,ii_)=str2num(text_line_in(22:35)); %eyy
element_strain(id_element,4,ii_)=str2num(text_line_in(36:48)); %ezz
element_strain(id_element,5,ii_)=str2num(text_line_in(49:61)); %exy
element_strain(id_element,6,ii_)=str2num(text_line_in(62:74)); %eyz
element_strain(id_element,7,ii_)=str2num(text_line_in(75:86)); %ezx
id_element = id_element + 1;
end
fclose(res_file_in);
end
%
thk_point = [-0.969 -0.901 -0.8215 -0.732 -0.634 -0.5285 -0.417 -0.3015 -0.183 -0.0615 ...
0.0615 0.183 0.3015 0.417 0.5285 0.634 0.7320 0.8215 0.901 0.969];
%corespondence table
load corespondence_table.dat
c_t_=corespondence_table;
%
fe_res_stress_output_file_name = 'plate_tria_residual_strain_.key';
res_file_out = fopen(fe_res_stress_output_file_name,'w');
%
fprintf(res_file_out,'*INITIAL_STRAIN_SHELL'); fprintf(res_file_out,'\r'); fprintf(res_file_out,'\n');
%
for ii_=1:length(c_t_)
for jj_=1:length(ext_)
output_stress_(ii_,1)=c_t_(ii_,2);
c_elem_=c_t_(ii_,2);
kk_=find(element_strain(:,1,jj_)==c_elem_);
Sxx=element_strain(kk_,2,jj_); Syy=element_strain(kk_,3,jj_); Szz=element_strain(kk_,4,jj_);
Sxy=element_strain(kk_,5,jj_); Syz=element_strain(kk_,7,jj_); Szx=element_strain(kk_,6,jj_);
output_strain_(ii_,2) = Sxx; output_strain_(ii_,3) = Syy; output_strain_(ii_,4) = Szz;
output_strain_(ii_,5) = Sxy; output_strain_(ii_,6) = Syz; output_strain_(ii_,7) = Szx;
%export results
if jj_==1
fprintf(res_file_out,'%10.0f',output_stress_(ii_,1));
fprintf(res_file_out,'%10.0f',1);
fprintf(res_file_out,'%10.0f',length(ext_));
fprintf(res_file_out,'%10.0f',0);
fprintf(res_file_out,'\r'); fprintf(res_file_out,'\n');
end
esf_=1;
fprintf(res_file_out,'%10.5f',thk_point(ext_(jj_)));
fprintf(res_file_out,'%10.5f',output_strain_(ii_,2)/esf_);
fprintf(res_file_out,'%10.5f',output_strain_(ii_,3)/esf_);
fprintf(res_file_out,'%10.5f',output_strain_(ii_,4)/esf_);
fprintf(res_file_out,'%10.5f',output_strain_(ii_,5)/esf_);
fprintf(res_file_out,'%10.5f',output_strain_(ii_,6)/esf_);
fprintf(res_file_out,'%10.5f',output_strain_(ii_,7)/esf_);
fprintf(res_file_out,'\r'); fprintf(res_file_out,'\n');
end
for jj_=1:length(ext_)
output_strain_(ii_,1)=c_t_(ii_,3);
c_elem_=c_t_(ii_,3);
kk_=find(element_strain(:,1,jj_)==c_elem_);
Sxx=element_strain(kk_,2,jj_); Syy=element_strain(kk_,3,jj_); Szz=element_strain(kk_,4,jj_);
Sxy=element_strain(kk_,5,jj_); Syz=element_strain(kk_,7,jj_); Szx=element_strain(kk_,6,jj_);
output_strain_(ii_,2) = Sxx; output_strain_(ii_,3) = Syy; output_strain_(ii_,4) = Szz;
output_strain_(ii_,5) = Sxy; output_strain_(ii_,6) = Syz; output_strain_(ii_,7) = Szx;
%export results
if jj_==1
fprintf(res_file_out,'%10.0f',output_strain_(ii_,1));
fprintf(res_file_out,'%10.0f',1);
fprintf(res_file_out,'%10.0f',length(ext_));
fprintf(res_file_out,'%10.0f',0);
fprintf(res_file_out,'\r'); fprintf(res_file_out,'\n');
end
esf_=1; %MPa
fprintf(res_file_out,'%10.5f',thk_point(ext_(jj_)));
fprintf(res_file_out,'%10.5f',output_strain_(ii_,2)/esf_);
fprintf(res_file_out,'%10.5f',output_strain_(ii_,3)/esf_);
fprintf(res_file_out,'%10.5f',output_strain_(ii_,4)/esf_);
fprintf(res_file_out,'%10.5f',output_strain_(ii_,5)/esf_);
fprintf(res_file_out,'%10.5f',output_strain_(ii_,6)/esf_);
fprintf(res_file_out,'%10.5f',output_strain_(ii_,7)/esf_);
fprintf(res_file_out,'\r'); fprintf(res_file_out,'\n');
end
end
fclose(res_file_out);