image thumbnail
from Ls-DYNA to MOLDFLOW by Stefan TABACU
The code allows model conversion from Ls-Dyna to MOLDFLOW and import of simulation results

input_residual_stress_for_tria_rev1.m
%read residual stress from Moldflow
close all
clear all
clc
format bank
%selected input datasets (intergration point)
ext_=[1 6 10 11 15 20];
for ii_= 1:length(ext_)
  fe_res_stress_input_file_name = ['plate_stress_.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
    %input
    text_line_in=fgetl(res_file_in);
    %EOF
    if ~ischar(text_line_in)
       break
    end %if
    element_stress(id_element,1,ii_)=str2num(text_line_in(1:8));    %ID
    element_stress(id_element,2,ii_)=str2num(text_line_in(9:22));   %Sxx
    element_stress(id_element,3,ii_)=str2num(text_line_in(22:35));  %Syy
    element_stress(id_element,4,ii_)=str2num(text_line_in(36:48));  %Szz
    element_stress(id_element,5,ii_)=str2num(text_line_in(49:61));  %Sxy
    element_stress(id_element,6,ii_)=str2num(text_line_in(62:74));  %Syz
    element_stress(id_element,7,ii_)=str2num(text_line_in(75:86));  %Szx
    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_stress_.key';
res_file_out = fopen(fe_res_stress_output_file_name,'w');
%
fprintf(res_file_out,'*INITIAL_STRESS_SHELL'); fprintf(res_file_out,'\r'); fprintf(res_file_out,'\n');
%
for ii_=1:length(c_t_)
  clear output_stress_  
  for jj_=1:length(ext_)  
    output_stress_(ii_,1)=c_t_(ii_,2);
    c_elem_=c_t_(ii_,2);
    kk_=find(element_stress(:,1,jj_)==c_elem_);
    Sxx=element_stress(kk_,2,jj_); Syy=element_stress(kk_,3,jj_); Szz=element_stress(kk_,4,jj_);
    Sxy=element_stress(kk_,5,jj_); Syz=element_stress(kk_,7,jj_); Szx=element_stress(kk_,6,jj_);
    output_stress_(ii_,2) = Sxx; output_stress_(ii_,3) = Syy; output_stress_(ii_,4) = Szz;
    output_stress_(ii_,5) = Sxy; output_stress_(ii_,6) = Syz; output_stress_(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  
    Ssf_=1e6; %MPa
    fprintf(res_file_out,'%10.5f',thk_point(ext_(jj_)));
    fprintf(res_file_out,'%10.5f',output_stress_(ii_,2)/Ssf_);
    fprintf(res_file_out,'%10.5f',output_stress_(ii_,3)/Ssf_);
    fprintf(res_file_out,'%10.5f',output_stress_(ii_,4)/Ssf_);
    fprintf(res_file_out,'%10.5f',output_stress_(ii_,5)/Ssf_);
    fprintf(res_file_out,'%10.5f',output_stress_(ii_,6)/Ssf_);
    fprintf(res_file_out,'%10.5f',output_stress_(ii_,7)/Ssf_);
    fprintf(res_file_out,'\r'); fprintf(res_file_out,'\n'); 
  end
  for jj_=1:length(ext_)  
    output_stress_(ii_,1)=c_t_(ii_,3);
    c_elem_=c_t_(ii_,3);
    kk_=find(element_stress(:,1,jj_)==c_elem_);
    Sxx=element_stress(kk_,2,jj_); Syy=element_stress(kk_,3,jj_); Szz=element_stress(kk_,4,jj_);
    Sxy=element_stress(kk_,5,jj_); Syz=element_stress(kk_,7,jj_); Szx=element_stress(kk_,6,jj_);
    output_stress_(ii_,2) = Sxx; output_stress_(ii_,3) = Syy; output_stress_(ii_,4) = Szz;
    output_stress_(ii_,5) = Sxy; output_stress_(ii_,6) = Syz; output_stress_(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  
    Ssf_=1e6; %MPa
    fprintf(res_file_out,'%10.5f',thk_point(ext_(jj_)));
    fprintf(res_file_out,'%10.5f',output_stress_(ii_,2)/Ssf_);
    fprintf(res_file_out,'%10.5f',output_stress_(ii_,3)/Ssf_);
    fprintf(res_file_out,'%10.5f',output_stress_(ii_,4)/Ssf_);
    fprintf(res_file_out,'%10.5f',output_stress_(ii_,5)/Ssf_);
    fprintf(res_file_out,'%10.5f',output_stress_(ii_,6)/Ssf_);
    fprintf(res_file_out,'%10.5f',output_stress_(ii_,7)/Ssf_);
    fprintf(res_file_out,'\r'); fprintf(res_file_out,'\n'); 
  end
end  
fclose(res_file_out);

Contact us