ktongue's picture
download
raw
4.3 kB
% clc;
% clear all;
Forces=zeros(11,1);
Deplacements=zeros(11,1);
% for j=0:10
% Lire les fichiers NODE et ELEMENT
nodeData = importdata('NODE.txt');
elementData = importdata('ELEMENT.txt');
% Extraire les coordonnées des nœuds
nodes = nodeData(:, 7:8);
ne=size(nodes,1);
% Extraire les éléments (triangles)
elements = elementData(:, 6:8);
% Stiffness matrix
K=zeros(2*ne,2*ne);
F=zeros(2*ne,1);
% Behaviour matrix (plane stress)
E=210000;
NU=0.3;
C = E/((1+NU)*(1-2*NU))*[(1-NU) NU 0; NU (1-NU) 0; 0 0 (1-2*NU)/2];
% Assembling process
for i=1:size(elements,1)
% Elementary stiffness matrix + assembling
Be=calBe(nodes(elements(i,:),:));
Ke=Be'*C*Be*calDet(nodes(elements(i,:),:))/2;
ind1=(elements(i,1)-1)*2+1;
ind2=(elements(i,1)-1)*2+2;
ind3=(elements(i,2)-1)*2+1;
ind4=(elements(i,2)-1)*2+2;
ind5=(elements(i,3)-1)*2+1;
ind6=(elements(i,3)-1)*2+2;
IndiceGlobal = [ind1 ind2 ind3 ind4 ind5 ind6];
K(IndiceGlobal,IndiceGlobal) = K(IndiceGlobal,IndiceGlobal) + Ke;
end
Kreac=K;
Freac=F;
% Dans un premier temps on impose les déplacements et l'on recherche le critère de rupture de la pièce
% Dans un premier temps on évalue G qui est la caractéristique globale de la strucutre qui depend de l'énergie de fissuration du materiau
% on le calcule dans le cadre d'un deplacement imposé puis on le calcule dans le cas d'une force imposée
P=max(max(K))*10;
% for i=1:size(nodes,1)
% if ((nodes(i,1)==12.5)&&(nodes(i,2)==13.75))
% ind1=(i-1)*2+1;
% ind2=(i-1)*2+2;
% % K(ind1,ind1) = K(ind1,ind1) + P;
% % K(ind2,ind2) = K(ind2,ind2) + P;
% % F(ind2,1) = F(ind2,1) + P * 0.05;
% F(ind2,1) = F(ind2,1) + 1000;
% end
% if ((nodes(i,1)==12.5)&&(nodes(i,2)==-13.75))
% ind1=(i-1)*2+1;
% ind2=(i-1)*2+2;
% % K(ind1,ind1) = K(ind1,ind1) + P;
% % K(ind2,ind2) = K(ind2,ind2) + P;
% % F(ind2,1) = F(ind2,1) - P * 0.05;
% F(ind2,1) = F(ind2,1) - 1000;
% end
% if ((nodes(i,1)>23.75+j)&&(abs(nodes(i,2))<.01))
% ind1=(i-1)*2+1;
% ind2=(i-1)*2+2;
% % K(ind1,ind1) = K(ind1,ind1) + P;
% K(ind2,ind2) = K(ind2,ind2) + P;
% end
% end
% % Fermer la fissure - Conditions corrigées
% U=K^(-1)*F;
% Reac=Kreac*U-Freac;
% Forces(j+1,1)=abs(Reac(2,1));%historique des effforts issus des déplacements imposés
% Deplacements(j+1,1)=abs(U(2,1)); % historique des déplacements isssus des efforts imposés
% end
% L=zeros(10,1);
% G=zeros(10,1);%deplacement imposé
% G_D=zeros(10,1);% effort imposé
% for j=1:10
% G(j,1)=(-Forces(j+1,1)+Forces(j,1))*.05; % deplacement imposée
% G_D(j,1)=(Deplacements(j+1,1)-Deplacements(j,1))*1000; % effort imposé
% L(j,1)=j-1;
% end
% hold on
% plot(L,G,"*")
% plot(L,G_D,"-")
%% Constat
% on constate que pour une structure à deplacement imposé, la fissure peut s'arrêter car elle pourra
% pour une structure à effort il y a aucune chance que la structure ne va s'arrêter
% surfaces=zeros(size(elements,1),1);
% for i=1:size(elements,1)
% % Elementary stiffness matrix + assembling
% Be=calBe(nodes(elements(i,:),:));
% ind1=(elements(i,1)-1)*2+1;
% ind2=(elements(i,1)-1)*2+2;
% ind3=(elements(i,2)-1)*2+1;
% ind4=(elements(i,2)-1)*2+2;
% ind5=(elements(i,3)-1)*2+1;
% ind6=(elements(i,3)-1)*2+2;
% IndiceGlobal = [ind1 ind2 ind3 ind4 ind5 ind6];
% Epsil = Be*U(IndiceGlobal,1);
% Sigma = C*Be*U(IndiceGlobal,1);
% Sigmazz = E*NU/((1+NU)*(1-2*NU))*(Epsil(1,1)+Epsil(2,1));
% Sig = [Sigma(1,1) Sigma(3,1) 0;Sigma(3,1) Sigma(2,1) 0; 0 0 Sigmazz];
% PP=(Sig(1,1)+Sig(2,2)+Sig(3,3))/3;
% Dev=Sig-PP*[1 0 0;0 1 0; 0 0 1];
% surfaces(i,1)=sqrt(3/2*(trace(Dev*Dev)));
% end
% Depl=[U(1:2:end) U(2:2:end)];
% % Afficher le maillage avec des couleurs basées sur les surfaces
% %figure;
% patch('Faces', elements, 'Vertices', nodes+10*Depl, ...
% 'FaceVertexCData', surfaces, ...
% 'FaceColor', 'flat', ...
% 'EdgeColor', 'blue');
% % patch('Faces', elements, 'Vertices', nodes, ...
% % 'FaceColor', 'none', ...
% % 'EdgeColor', 'blue');
% colorbar;
% title('Eprouvette CT');
% xlabel('X (mm)');
% ylabel('Y (mm)');
% grid on;
% axis equal;

Xet Storage Details

Size:
4.3 kB
·
Xet hash:
4aaa0c2d8324d216bc1f2e486ae677a8230827361d75bec5f03492698852b5a6

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.