1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| %%%%%%%%%% Matlab code for RTM study case using LIMS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% FEM MESH GENERATOR FOR An L-shaped DOMAIN
clear all; close , clc,
Lx = 400; Nx = 40; hx = Lx / (Nx);
Ly = 400; Ny = 40; hy = Ly / (Ny);
H = 0.005000;
Vf = 0.500000;
Kxx = 1.0e-010;
Kxy = 0;
Kyy = 1.0e-010;
mu = 0.10;
Number_nodes = ((Nx+1) * ((Ny/2)+1))+((Nx/2)+1) * ((Ny/2));
Number_elem = (Nx * (Ny/2))+((Nx/2) * (Ny/2));
fid = fopen('Crazymesh.dmp','w');
fprintf(fid,'Number of nodes : %5.0f\r\n',Number_nodes);
fprintf(fid,'#Unit System Information:\r\n');
fprintf(fid,'#!SI\r\n');
fprintf(fid,'#Check for orphans: OK\r\n');
fprintf(fid,'#Check for duplicates: OK\r\n');
fprintf(fid,'#User Origin x:0 y:0 z:0 unit:\r\n');
fprintf(fid,'\r\n');
fprintf(fid,'Number of nodes : %5.0f\r\n',Number_nodes);
fprintf(fid,' Index x y z\r\n');
fprintf(fid,'===================================================\r\n');
for j = 1:Ny/2+1;
for i = 1:Nx+1;
node_id = (j-1)*(Nx+1)+i;
x = (i-1)*hx;
y = (j-1)*hy;
z = 0;
NODE(node_id,:) = [node_id x y z];
fprintf(fid,' %5d %14.6f %14.6f %14.6f\r\n',NODE(node_id,:));
end
end
I=i
J=j
NODE((I*J+1):(I*J+1)+Nx/2,:)=NODE(I*J-Nx:I*J-Nx/2,:);
l=(I*J+1)+Nx/2;
for j = (Ny/2)+2:Ny+1;
for i = 1:Nx/2+1;
l=l+1;
node_id = (j-(Ny/2)-2)*(Nx/2+1)+i+I*J;
x = (i-1)*hx;
y = (j-1)*hy;
z = 0;
NODE(l,:) = [node_id x y z];
fprintf(fid,' %5d %14.6f %14.6f %14.6f\r\n',NODE(node_id,:));
end
end
fprintf(fid,'Number of elements : %5.0f\r\n',Number_elem);
fprintf(fid,' Index NNOD N1 N2 N3 (N4) (N5) (N6) (N7) (N8) h Vf Kxx Kxy Kyy Kzz Kzx Kyz\r\n');
fprintf(fid,'==============================================================================================================================================================================\r\n');
for j = 1:Ny/2;
for i = 1:Nx ;
elem_id = (j-1)*(Nx)+i;
k1 = (j-1)*(Nx+1)+i;
k2 = k1+1;
k3 = k1+(Nx+1)+1;
k4 = k3-1;
ELEMENTS1(elem_id,:) = [elem_id 4 k1 k2 k3 k4 H Vf Kxx Kxy Kyy];
ELEMENTS(elem_id,:) = [elem_id 4 k1 k2 k3 k4 H Vf Kxx Kxy Kyy];
fprintf(fid,' %5d %4d %5d %5d %5d %5d %14.6f %15.6f %13.4e %13.4e %13.4e\r\n',ELEMENTS(elem_id,:));
end
end
II=i
JJ=j
for j = (Ny/2+1):Ny;
for i = 1:(Nx/2);
elem_id = (j-(Ny/2)-1)*(Nx/2)+i+II*JJ;
k1 = (j-(Ny/2)-1)*(Nx/2+1)+i+I*J;
k2 = k1+1;
k3 = k2+(Nx/2)+1;
k4 = k3-1;
ELEMENTS1(elem_id,:) = [elem_id 4 k1 k2 k3 k4 H Vf Kxx Kxy Kyy];
ELEMENTS(elem_id,:) = [elem_id 4 NODE(k1,1) NODE(k2,1) NODE(k3,1) NODE(k4,1) H Vf Kxx Kxy Kyy];
fprintf(fid,' %5d %4d %5d %5d %5d %5d %14.6f %15.6f %13.4e %13.4e %13.4e\r\n',ELEMENTS(elem_id,:));
end
end
fprintf(fid,'Resin Viscosity model NEWTON\r\n');
fprintf(fid,'Viscosity : %15.6f\r\n',mu);
fclose(fid);
plot(NODE(ELEMENTS1(:,3:6),2),NODE(ELEMENTS1(:,3:6),3),'*') |
Partager