Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 122 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
122
Dung lượng
5,27 MB
Nội dung
Đại Học Quốc Gia Tp Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA - DƯƠNG QUỐC HÙNG Đề Tài ỨNG DỤNG PHƯƠNG PHÁP ELEMENT FREE GALERKIN GIẢI BÀI TOÁN PHẲNG LÝ THUYẾT ĐÀN HỒI Chuyên Ngành: Xây Dựng Dân Dụng Công Nghiệp Mã Số Ngành: 23.04.10 LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng 12 năm 2006 CÔNG TRÌNH ĐƯC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH Cán hướng dẫn khoa học : PGS.TS.CHU QUỐC THẮNG Cán chấm nhận xét :……………………………………………………………………………………… Cán chấm nhận xét :……………………………………………………………………………………… Luận văn thạc só bảo vệ : HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày ………… tháng …… năm 200… TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM PHÒNG ĐÀO TẠO SĐH ĐỘC LẬP – TỰ DO – HẠNH PHÚC Tp HCM, ngày tháng……….năm 200… NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên : DƯƠNG QUỐC HÙNG Phái : Nam Ngày, tháng, năm sinh : 24 - 01 - 1975 Nơi sinh : Hà Nội Chuyên ngành : Xây dựng dân dụng & công nghiệp MSHV Khóa : 14 ( Năm học 2003 – 2005) Mã Ngành : 23.04.10 : 02103526 I TÊN ĐỀ TÀI : ỨNG DỤNG PHƯƠNG PHÁP ELEMENT FREE GALERKIN GIẢI BÀI TOÁN PHẲNG LÝ THUYẾT ĐÀN HỒI II NHIỆM VỤ : Giới thiệu lý thuyết phương pháp Element Free Galerkin Áp dụng lý thuyết phương pháp Element Free Galerkin cho toán phẳng lý thuyết đàn hồi qua ví dụ cụ thể, giải ngôn ngữ lập trình Matlab, so sánh kết với lời giải xác, phần mềm Sap2000, Prokon Từ rút kết luận phương pháp Element Free Galerkin III NGÀY GIAO NHIỆM VỤ : 03 - 07 - 2006 IV NGÀY HOÀN THÀNH NHIỆM VỤ : 03 -12 -2006 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : PGS.TSõ CHU QUỐC THẮNG CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM NGÀNH BỘ MÔN QUẢN LÝ CHUYÊN NGÀNH Nội dung đề cương luận văn thạc só Hội Đồng Chuyên Ngành thông qua Ngày……… tháng……năm 200… PHÒNG ĐÀO TẠO SĐH KHOA QUẢN LÝ NGÀNH LỜI CẢM ƠN Em xin chân thành cảm ơn tất thầy cô giáo truyền đạt cho chúng em nhiều kiến thức quý giá thời gian qua Em xin chân thành cảm ơn Thầy Phó giáo sư Tiến sỹ Chu Quốc Thắng, người tận tình hướng dẫn em suốt thời gian thực luận văn Chính kiến thức mà em có từ truyền đạt hướng dẫn tận tụy Thầy giúp em hoàn thành luận văn Em xin chân thành cám ơn Tiến sỹ Nguyễn Hoài Sơn Trưởng khoa Kỹ thuật sở Trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM, người hướng dẫn em nhiều suốt trình làm luận văn Tôi xin trân thành cảm ơn người bạn chân tình động viên giúp đỡ suốt thời gian học giúp hoàn thành luận văn Cuối cùng, xin cảm ơn ba mẹ, anh chị em người thân, gia đình luôn quan tâm, giúp đỡ, động viên suốt trình học tập nghiên cứu TÓM TẮT LUẬN VĂN Luận văn thực với nội dung trình bày chương sau Chương : Trình bày tổng quan phương pháp Element free Galerkin , tình hình phát triển phương pháp Element free Galerkin giới Việt Nam, phạm vi nghiên cứu mục tiêu luận văn Chương : Chương thể nội dung phương pháp Element free Galerkin, trình bày lý thuyết phương pháp Element free Galerkin, phép xấp xỉ bình phương cực tiểu động, hàm trọng số, dạng hàm trọng số Chương : Trình bày tổng quan toán phẳng lý thuyết đàn hồi, phép tính tích phân Gauss, trình tự phân tích trình tự tính toán toán theo phương pháp Element free Galerkin, xây dựng sơ đồ so sánh với phương pháp phần tử hữu hạn, thiết lập sơ đồ khối cho toán Chương : Trình bày ví dụ tính toán kết tính toán, áp dụng ngôn ngữ lập trình Matlab để tính toán, với số liệu tính toán, hình học cụ thể cho toán, sau so sánh kết với lời giải xác, với kết chương trình Sap 2000 kết chương trình Prokon Chương : Nhận xét, kết luận, kiến nghị hướng phát triển cho phương pháp Element free Galerkin Phần tài liệu tham khảo Giới thiệu tài liệu phương pháp không lưới, phương pháp Element free Galerkin, số tài liệu khác hỗ trợ cho luận văn Phụ lục tính toán cho ví dụ Trình bày chi tiết chương trình cho ví dụ cụ thể, sử dụng ngôn ngữ Matlab MỤC LỤC TÓM TẮT LUẬN VĂN MUÏC LUÏC CÁC KÝ HIỆU Chương : Tổng quan phương pháp Element free Galerkin (EFG)– mục tiêu luận văn 1.1.Tình hình phát triển phương pháp EFG giới 1.2 Tình hình phát triển phương pháp EFG việt Nam 10 1.3 Mục tiêu luận văn 10 1.4 Phạm vi nghiên cứu 10 Chương : Lý thuyết phương pháp Element free Galerkin 11 2.1 Phép xấp xỉ bình phương cực tiểu động 11 2.2 Hàm trọng số 17 2.3 EFG với hàm nhân tử Lagrange 20 2.3.1 Phương pháp Lagrange Multipliers 20 2.3.2 Dạng yếu Galerkin với nhân tử Lagrange 20 2.3.3 Xây dựng EFG với nhân tử Lagrange 22 Chương : Các bước phân tích trình tự tính toán 32 3.1 Bài toán phẳng lý thuyết đàn hồi 32 3.1.1 Bài toán ứng suất phẳng 32 3.1.2 Baøi toán biến dạng phẳng 34 3.2 Tích phân Gauss 35 3.2.1 Tích phân Gauss chiều 35 3.2.2 Tích phân Gauss hai chiều 36 3.3 Lưới phương pháp EFG 37 3.4.Trình tự phân tích toán 39 3.5.Trình tự tính toán toán 40 3.6 Thiết lập sơ đồ khối 53 Chương : Ví dụï tính toaùn 54 4.1.Ví dụ 54 4.1.1 Trường hợp toán chia 4x11 = 44 nút 55 4.1.2 Kết toán điểm theo số nút 57 4.2.Ví dụ 61 4.2.1 Trường hợp toán chia 5x13 = 65 nút 62 4.2.2 Kết toán điểm theo số nút 64 4.3.Ví dụ 67 4.3.1 Trường hợp toán chia 5x13 = 65 nút 68 4.3.2 Kết toán điểm theo số nút 70 4.4.Ví dụ 75 chương : Kết luận kiến nghị 82 5.1 Nhaän xeùt 82 5.2.Kết luận 82 5.3 Kiến nghị – hướng phát triển 84 Tài liệu tham khảo 85 Phuï luïc 87 CÁC KÍ HIỆU EFG Element free Galerkin FEM Phương pháp phần tử hữu hạn MLPG Phương pháp không lưới Petrov-Galerkin MLS Bình phương cực tiểu động PT Hàm sở đơn thức 1-D Một chiều 2-D Hai chiều 3-D Ba chiều A, B Các ma trận phép nội suy MLS hàm sở, hàm trọng số E Modul đàn hồi J, L2, H Chuẩn sai số có trọng ( ),i đạo hàm δ( )/δxi W Hàm trọng số φ Hàm dạng phép xấp xỉ MLS di Khoảng cách từ nút xi đến nút x dmax Khoảng cách xa miền theo phương Δx Khoảng cách hai nút ci Tham số điều khiển dạng hàm trọng số ^ ui Giá trị chuyển vị giả định nút i Γ Biên miền tổng thể Ω Γu − Biên u Chuyển vị giả định α Tham số phạt Δ ma trận vi phân BI Ma trận tính biến dạng cho nút I λ Nhân tử Lagrange KIJ Ma trận cứng nút K Ma trận cứng tổng thể U Vec tơ tham số chuyển vị tổng thể F Vec tơ tải tổng thể fI Vec tơ tải nút δjk Kronecker delta Ω Miền tổng thể toán B Phụ Luïc P = -100; Dmat = (young/(1-nu^2))*[1 nu 0; nu 0; 0 (1-nu)/2];%Plane stress Dmatrix Dmat1=(young/((1-nu^2)*(1+nu)))*[1 nu 0; nu 1-nu 0; 0 (1-2*nu)/2];%Plane Strain Dmatrix %================== So Nut Theo Phuong X, Y (ndivl+1) va (ndivw+1)=================== ndivl = 24; ndivw = 4; [x, conn1, conn2, numnod] = mesh2(Lb, D, ndivl, ndivw); figure(1); plot(x(1,:),x(2,:),'ro') grid %====== Xac Dinh Ban Kinh Mien anh Huong ( khoang cach xa nhat giua nut )=============== dmax = 1.5; xspac = Lb/ndivl; yspac = D/ndivw; dm(1,1:numnod) = dmax*xspac*ones(1,numnod); dm(2,1:numnod) = dmax*yspac*ones(1,numnod); %============================== Chia O Luoi Nen ============================= ndivlq =ndivl; ndivwq = ndivw; [xc, conn, numcell, numq] = mesh2(Lb, D, ndivlq, ndivwq); %============ Tinh Toa Nut Theo so Diem Gauss Trong so gauss, Jacobin ================= quado = 2; % Chon So Diem Gauss Tinh Toan [gauss] = gauss2_10(quado); numq2 = numcell*quado^2; % nq =ng x nx x ny [gs] = egauss(xc,conn,gauss,numcell); %==================== Lap Ghep Matran K theo so Diem Gauss ======================= k = sparse(numnod*2, numnod*2); for gg = gs gpos = gg(1:2); weight = gg(3); jac = gg(4); v = domain(gpos, x, dm, numnod); L = length(v); en = zeros(1, 2*L); [phi, dphix, dphiy] = shape(gpos, dmax, x, v, dm); Bmat = zeros(3, 2*L); for j=1:L Bmat(1:3,(2*j-1):(2*j)) = [dphix(j) 0; dphiy(j); dphiy(j) dphix(j)]; end for i=1:L en(2*i-1) = 2*v(i) - 1; en(2*i) = 2*v(i); end k(en,en) = k(en,en) + sparse((weight*jac)*Bmat'*Dmat*Bmat); end %============ Xac dinh Cac Nut Tren Bien Chinh, Ap dat Dieu Kien Bien ================== ind1 = 0; ind2 = 0; ind3 = 0; for j=1:numnod if (x(1,j) == Lb) ind1 = ind1 + 1; nnu(1,ind1) = x(1,j); 104 Phuï Luïc nnu(2,ind1) = x(2,j); % BIEN CHINH PHAI end if (x(1,j) == 0.0) ind3 = ind3 + 1; nnu1(1,ind3) = x(1,j); nnu1(2,ind3) = x(2,j); % BIEN CHINH TRAI end if (x(2,j) == D/2) %BIEN TAI TRONG ind2 = ind2 + 1; nt(1,ind2) = x(1,j); nt(2,ind2) = x(2,j); end end lthu = length(nnu); % BIEN PHAI lthu1 = length(nnu1); % BIEN TRAI ltht = length(nt); % BIEN TAI TRONG ng=[nnu, nnu1]; %===================Tinh Cac Diem Gauss Tren bien phai======================= ind = 0; gauss = gauss2_10(quado); for i=1:(lthu-1) ycen = (nnu(2,i+1) + nnu(2,i))/2; jcob = abs((nnu(2,i+1) - nnu(2,i))/2); for j=1:quado mark(j) = ycen - gauss(1,j)*jcob; ind = ind + 1; gsu(1,ind) = nnu(1,i); gsu(2,ind) = mark(j); gsu(3,ind) = gauss(2,j); gsu(4,ind) = jcob; end end gst = gsu; gst(1,1:ind) = zeros(1,ind); %========================Tinh Cac Diem Gauss Tren Bien Trai ======================= ind = 0; gauss = gauss2_10(quado); for i=1:(lthu1-1) ycen = (nnu1(2,i+1) + nnu1(2,i))/2; jcob = abs((nnu1(2,i+1) - nnu1(2,i))/2); for j=1:quado mark(j) = ycen - gauss(1,j)*jcob; ind = ind + 1; gsu1(1,ind) = nnu1(1,i); gsu1(2,ind) = mark(j); gsu1(3,ind) = gauss(2,j); gsu1(4,ind) = jcob; end end gst1 = gsu1; gst1(1,1:ind) = zeros(1,ind); gut= [gst,gst1]; %==================== Tinh Cac Diem Gauss Tren bien tai ======================= 105 Phuï Luïc ind=0; gauss=gauss2_10(quado); for i=1:(ltht-1) ycenr=(nt(1,i+1)+nt(1,i))/2; jcobr=abs((nt(1,i+1)-nt(1,i))/2); for j=1:quado markr(j)=ycenr+gauss(1,j)*jcobr; ind=ind+1; gst(1,ind)=markr(j); gst(2,ind)=nt(2,i); gst(3,ind)=gauss(2,j); gst(4,ind)=jcobr; end end %============================== Noi Suy Tai Trong Tren Bien ===================== Imo = (t/12)*D^3; f = zeros(2*numnod,1); for gt=gst gpos = gt(1:2); weight = gt(3); jac = gt(4); v = domain(gpos,x,dm,numnod); L = length(v); en = zeros(1,2*L); force = zeros(1,2*L); [phi,dphix,dphiy] = shape(gpos,dmax,x,v,dm); tx = 0; ty = P; for i=1:L en(2*i-1) = 2*v(i)-1; en(2*i) = 2*v(i); force(2*i-1)=tx*phi(i); force(2*i)=ty*phi(i); end f(en) = f(en) + weight*jac*force'; end %============== Tinh Toan Ma Tran G Va Vec To q Cho Bien Phai ======================= GG1 = zeros(numnod*2,lthu*2); qk1 = zeros(1,2*lthu); ind1=0; ind2=0; for i=1:(lthu-1) ind1 = ind1 + 1; m1 = ind1; % m1=1,2,3,4 m2 = m1+1; % m2=2,3,4,5 y1 = nnu(2,m1); y2 = nnu(2,m2); len = y1 - y2; for j=1:quado ind2 = ind2+1; gpos = gsu(1:2,ind2); weight= gsu(3,ind2); jac = gsu(4,ind2); 106 Phuï Luïc xp1 = gpos(1,1); yp1 = gpos(2,1); fac1 = 0; fac2 = P/(young*Imo) ; uxex1 = 0; uxex1 = uxex1*fac1; uyex1 = -Lb^4/8+Lb^3*xp1/6-xp1^4/24+(0.1-nu*0.1)*xp1^2*D^2-(0.2-nu/16)*Lb*xp1*D^2+ (0.1+nu/16)*Lb^2*D^2; uyex1 = uyex1*fac2; N1 = (gpos(2,1)-y2)/len; N2 = - N1; qk1(2*m1-1) = qk1(2*m1-1)-weight*jac*N1*uxex1; qk1(2*m1) = qk1(2*m1)-weight*jac*N1*uyex1; qk1(2*m2-1) = qk1(2*m2-1)-weight*jac*N2*uxex1; qk1(2*m2) = qk1(2*m2)-weight*jac*N2*uyex1; v = domain(gpos,x,dm,numnod); [phi,dphix,dphiy] = shape(gpos,dmax,x,v,dm); L = length(v); for n=1:L G1 = -weight*jac*phi(n)*[N1 0; N1]; G2 = -weight*jac*phi(n)*[N2 0; N2]; c1 = 2*v(n)-1; c2 = 2*v(n); c3 = 2*m1-1; % C3=1,2,3,4, c4 = 2*m1; % C4=2,3,4,5, c5 = 2*m2-1; % C5=3,4,5,6, c6 = 2*m2; % C4=4,5,6,7, GG1(c1:c2,c3:c4) = GG1(c1:c2,c3:c4) + G1; GG1(c1:c2,c5:c6) = GG1(c1:c2,c5:c6) + G2; end end end %=========== Tinh Toan Ma Tran G Va Vec To q Cho Bien Trai ======================= GG2 = zeros(numnod*2,lthu1*2); qk2 = zeros(1,2*lthu1); ind1=0; ind2=0; for i=1:(lthu1-1) ind1 = ind1 + 1; m1 = ind1; % m1=1,2,3,4 m2 = m1+1; % m2=2,3,4,5 y1 = nnu1(2,m1); y2 = nnu1(2,m2); len = y1 - y2; for j=1:quado ind2 = ind2+1; gpos = gsu1(1:2,ind2); weight= gsu1(3,ind2); jac = gsu1(4,ind2); xp1 = gpos(1,1); yp1 = gpos(2,1); fac1 = 0; fac2 = P/(young*Imo) ; 107 Phuï Luïc uxex1 = 0; uxex1 = uxex1*fac1; uyex1 = -Lb^4/8+Lb^3*xp1/6-xp1^4/24+(0.1-nu*0.1)*xp1^2*D^2-(0.2-nu/16)*Lb*xp1*D^2+ (0.1+nu/16)*Lb^2*D^2; uyex1 = uyex1*fac2; N1 = (gpos(2,1)-y2)/len; N2 = - N1; qk2(2*m1-1) = qk2(2*m1-1)-weight*jac*N1*uxex1; qk2(2*m1) = qk2(2*m1)-weight*jac*N1*uyex1; qk2(2*m2-1) = qk2(2*m2-1)-weight*jac*N2*uxex1; qk2(2*m2) = qk2(2*m2)-weight*jac*N2*uyex1; v = domain(gpos,x,dm,numnod); [phi,dphix,dphiy] = shape(gpos,dmax,x,v,dm); L = length(v); for n=1:L G1 = -weight*jac*phi(n)*[N1 0; N1]; G2 = -weight*jac*phi(n)*[N2 0; N2]; c1 = 2*v(n)-1; c2 = 2*v(n); c3 = 2*m1-1; % C3=1,2,3,4, c4 = 2*m1; % C4=2,3,4,5, c5 = 2*m2-1; % C5=3,4,5,6, c6 = 2*m2; % C4=4,5,6,7, GG2(c1:c2,c3:c4) = GG2(c1:c2,c3:c4) + G1; GG2(c1:c2,c5:c6) = GG2(c1:c2,c5:c6) + G2; end end end %========================================================= f = [f; zeros(lthu*2,1); zeros(lthu1*2,1)]; m = sparse([k GG1 GG2; GG1' zeros(lthu*2) zeros(lthu1*2); GG2' zeros(lthu*2) zeros(lthu1*2)]); d = m\f; u = d(1:numnod*2); for i=1:numnod u2(1,i) = d(i*2-1); u2(2,i) = d(i*2); end %=========================== KET QUA CUA BAI TOAN ========================= %========================================================================== %====================== Tinh Toan Chuyen Vi That Cua Cho Bai Toan ================== %========================================================================== displ = zeros(1,2*numnod); ind = 0; for gg = x ind = ind+1; gpos = gg(1:2); v = domain(gpos,x,dm,numnod); [phi,dphix,dphiy] = shape(gpos,dmax,x,v,dm); displ(2*ind-1) = phi*u2(1,v)'; displ(2*ind) = phi*u2(2,v)'; end 108 Phuï Luïc for i=1:numnod displX(i)=displ(2*i-1); displY(i)=displ(2*i); end %========================================================================== %=============== Tnh Toan Chuyen Vi Doc truc Y cho loi Giai EFG Tai Y = =============== %========================================================================== X_nodes = [0:xspac:Lb]; Y_nodes = zeros(1,length(X_nodes))*Lb; % tai Y =0 ind_nod=0; for i=1:length(X_nodes) gpos(1,1)=X_nodes(i); gpos(2,1)=Y_nodes(i); ind_nod =ind_nod+1; v = domain(gpos,x,dm,numnod); [phi,dphix,dphiy]=shape(gpos,dmax,x,v,dm); displ_midx(ind_nod) = phi*u2(1,v)'; displ_midY(ind_nod) = phi*u2(2,v)'; end %========================================================================== %==================== Tnh Toan Chuyen Vi iem A cho loi Giai EFG = =================== %========================================================================== nodeA=zeros(2,1); nodeA(1,1) = Lb/4; nodeA(2,1) = D/2; v=domain(nodeA,x,dm,numnod); [phi,dphix,dphiy]=shape(nodeA,dmax,x,v,dm); dispA(1,1) = phi*u2(1,v)' dispA(2,1) = phi*u2(2,v)' %========================================================================== %====================== Tinh Ung Suat Cho Loi Giai EFG =========================== %========================================================================== ind = 0; for gg = x ind = ind+1; v = domain(gg,x,dm,numnod); L = length(v); en = zeros(1,2*L); [phi,dphix,dphiy] = shape(gg,dmax,x,v,dm); Bmat = zeros(3,2*L); for j=1:L Bmat(1:3,(2*j-1):2*j)=[dphix(j) 0; dphiy(j); dphiy(j) dphix(j)]; end for i=1:L en(i*2-1) = 2*v(i)-1; en(i*2) = 2*v(i); end stress(1:3,ind) = Dmat*Bmat*u(en); end %========================================================================== %================== Tinh Ung Suat EFG TAI MAT CAT GIUA DAM Lb/2 =============== %========================================================================== Ynodes=[-D/2:yspac:D/2]; 109 Phuï Luïc Xnodes=ones(1,length(Ynodes))*Lb/2; ind_nod=0; for i=1:length(Ynodes) gpos(1,1)=Xnodes(i); gpos(2,1)=Ynodes(i); v = domain(gpos,x,dm,numnod); L = length(v); en = zeros(1,2*L); [phi,dphix,dphiy] = shape(gpos,dmax,x,v,dm); Bmat = zeros(3,2*L); for j=1:L Bmat(1:3,(2*j-1):2*j)=[dphix(j) 0; dphiy(j); dphiy(j) dphix(j)]; end for i=1:L en(i*2-1) = 2*v(i)-1; en(i*2) = 2*v(i); end ind_nod=ind_nod+1; stressMid(1:3,ind_nod) = Dmat*Bmat*u(en); end %========================================================================== %=================== Tinh Ung Suat EFG TAI MAT CAT GIUA DAM Lb/4 ============== %========================================================================== Ynodes=[-D/2:yspac:D/2]; Xnodes=ones(1,length(Ynodes))*Lb/4; ind_nod=0; for i=1:length(Ynodes) gpos(1,1)=Xnodes(i); gpos(2,1)=Ynodes(i); v = domain(gpos,x,dm,numnod); L = length(v); en = zeros(1,2*L); [phi,dphix,dphiy] = shape(gpos,dmax,x,v,dm); Bmat = zeros(3,2*L); for j=1:L Bmat(1:3,(2*j-1):2*j)=[dphix(j) 0; dphiy(j); dphiy(j) dphix(j)]; end for i=1:L en(i*2-1) = 2*v(i)-1; en(i*2) = 2*v(i); end ind_nod=ind_nod+1; stressMidAC(1:3,ind_nod) = Dmat*Bmat*u(en); end %========================================================================== %============================= Ve Do Thi CHo Bai Toan ========================== %========================================================================== %=============================== Plot Chuyen Vi UY ============================ figure(2) subplot(2,1,1) hold on plot(X_nodes,displ_midY(1,:),'or','LineWidth',1.5) % Chuyen vi Loi Giai EFG title('CHUYEN VI THEO PHUONG Y','color','k','fontsize',14); 110 Phuï Luïc xlabel('x ','color','k','fontsize',14); ylabel('Chuyen Vi UY','color','k','fontsize',12); legend('EFG solution','Sap2000 solution','Prokon solution'); grid %=========================== Ve Chuyen Vi UX ============================== figure(2) subplot(2,1,2) hold on plot(x(1,:),displX(1,:),'or','LineWidth',1.5) % Chuyen vi Loi Giai EFG title('CHUYEN VI THEO PHUONG X','color','k','fontsize',14') xlabel('x ','color','k','fontsize',14); ylabel('Chuyen Vi UX','color','k','fontsize',12); legend('EFG method'); grid %========================================================================== %======================= Ve Chuyen Ung Suat X Tai Lb/2=========================== figure(3) subplot(2,1,1) hold on plot(Ynodes,stressMid(1,:),'or','LineWidth',1.5) title('Ung Suat XX Tai Lb/2') xlabel('Y'); legend('Exact solution','EFG solution '); %========================================================================== %========================= Ve Chuyen Truong Chuyen Vi Uy======================== %========================================================================== figure(4) subplot(2,1,1) hold on for i=1:conn2 coord = zeros(2,length(conn1(:,i))); U = zeros(2,length(conn1(:,i))); for j=1:length(conn1(:,i)) coord(1,j) = x(1,conn1(j,i)); coord(2,j) = x(2,conn1(j,i)); U(1,j) = displ(conn1(j,i)*2-1); U(2,j) = displ(conn1(j,i)*2); end fill(coord(1,:),coord(2,:),U(2,:)); plot(coord(1,:),coord(2,:),'ro'); end axis('equal'); xlabel('X','fontsize',12); ylabel('Y','fontsize',12); Title('CHUYEN VI UY LOI GIAI EFG','color','k','fontsize',14); colorbar('vert'); hold off %===================== Ve Chuyen Truong Chuyen Vi Ux ===================== figure(4) subplot(2,1,2) hold on for i=1:conn2 coord = zeros(2,length(conn1(:,i))); 111 Phuï Luïc U = zeros(2,length(conn1(:,i))); for j=1:length(conn1(:,i)) coord(1,j) = x(1,conn1(j,i)); coord(2,j) = x(2,conn1(j,i)); U(1,j) = displ(conn1(j,i)*2-1); U(2,j) = displ(conn1(j,i)*2); end fill(coord(1,:),coord(2,:),U(1,:)); plot(coord(1,:),coord(2,:),'ro'); end axis('equal'); xlabel('X','fontsize',12); ylabel('Y','fontsize',12); Title('CHUYEN VI UX LOI GIAI EFG','color','k','fontsize',14); colorbar('vert'); hold off %============ Plot truong Ung suat XX Phuong Phap EFG ============================== figure(5) subplot(2,1,1) hold on for i=1:conn2 coord = zeros(2,length(conn1(:,i))); S = zeros(3,length(conn1(:,i))); for j=1:length(conn1(:,i)) coord(1,j) = x(1,conn1(j,i)); coord(2,j) = x(2,conn1(j,i)); S(1,j) = stress(1,conn1(j,i)); S(2,j) = stress(2,conn1(j,i)); S(3,j) = stress(3,conn1(j,i)); end fill(coord(1,:),coord(2,:),S(1,:)); plot(coord(1,:),coord(2,:),'ro'); end axis('equal'); xlabel('Y'); ylabel('Ung suat X'); Title('Stress XX of EFG'); colorbar('vert'); hold off %=================== Plot Truong Ung suat XY Phuong Phap EFG====================== figure(5) subplot(2,1,2) hold on for i=1:conn2 coord = zeros(2,length(conn1(:,i))); S = zeros(3,length(conn1(:,i))); for j=1:length(conn1(:,i)) coord(1,j) = x(1,conn1(j,i)); coord(2,j) = x(2,conn1(j,i)); S(1,j) = stress(1,conn1(j,i)); S(2,j) = stress(2,conn1(j,i)); S(3,j) = stress(3,conn1(j,i)); end 112 Phuï Luïc fill(coord(1,:),coord(2,:),S(3,:)); plot(coord(1,:),coord(2,:),'ro'); end axis('equal'); xlabel('Y'); ylabel('Ung suat X'); Title('Stress XY of EFG'); colorbar('vert'); hold off 4.Ví dụ %===============================Vi DU====================================== %===Vi Du 6-4 Sach Co So Co Hoc Moi Truong Lien Tuc Va Ly Thuyet Dan Hoi Trang 169 ======= %========================================================================== clear all; clc; close all; format long %========================= Dac Trung Hinh Hoc, Vat Lieu ========================= Lb = 40; D=2; t =1; % chieu day tam young = 1500; nu = 0.25; P = -0.24; Dmat = (young/(1-nu^2))*[1 nu 0; nu 0; 0 (1-nu)/2];%Plane stress Dmatrix Dmat1=(young/((1-nu^2)*(1+nu)))*[1 nu 0; nu 1-nu 0; 0 (1-2*nu)/2];%Plane Strain Dmatrix %=============== So Nut Theo Phuong X, Y (ndivl+1) va (ndivw+1)================== ndivl = 125; ndivw = 8; [x, conn1, conn2, numnod] = mesh2(Lb, D, ndivl, ndivw); figure(1); plot(x(1,:),x(2,:),'ro') grid %================= Xac Dinh Ban Kinh Mien anh Huong ========================== dmax = 1.5; xspac = Lb/ndivl; yspac = D/ndivw; dm(1,1:numnod) = dmax*xspac*ones(1,numnod); dm(2,1:numnod) = dmax*yspac*ones(1,numnod); %===========================Chia O Luoi Nen=============================== ndivlq =ndivl; ndivwq = ndivw; [xc, conn, numcell, numq] = mesh2(Lb, D, ndivlq, ndivwq); %========= Tinh Toa Nut Theo so Diem Gauss Trong so gauss, Jacobin =================== quado = 2; % Chon So Diem Gauss Tinh Toan [gauss] = gauss2_10(quado); numq2 = numcell*quado^2; % nq =ng x nx x ny [gs] = egauss(xc,conn,gauss,numcell); %===================== Lap Ghep Matran K theo so Diem Gauss===================== k = sparse(numnod*2, numnod*2); for gg = gs gpos = gg(1:2); weight = gg(3); 113 Phuï Luïc jac = gg(4); v = domain(gpos, x, dm, numnod); L = length(v); en = zeros(1, 2*L); [phi, dphix, dphiy] = shape(gpos, dmax, x, v, dm); Bmat = zeros(3, 2*L); for j=1:L Bmat(1:3,(2*j-1):(2*j)) = [dphix(j) 0; dphiy(j); dphiy(j) dphix(j)]; end for i=1:L en(2*i-1) = 2*v(i) - 1; en(2*i) = 2*v(i); end k(en,en) = k(en,en) + sparse((weight*jac)*Bmat'*Dmat*Bmat); end %==== Xac dinh Cac Nut Tren Bien Chinh, Ap dat Dieu Kien Bien ====================== ind1 = 0; ind2 = 0; for j=1:numnod if (x(1,j) == Lb) ind1 = ind1 + 1; nnu(1,ind1) = x(1,j); nnu(2,ind1) = x(2,j); % BIEN CHINH PHAI end if (x(2,j) == D/2) %BIEN TAI TRONG ind2 = ind2 + 1; nt(1,ind2) = x(1,j); nt(2,ind2) = x(2,j); end end lthu = length(nnu); % BIEN PHAI ltht = length(nt); % BIEN TAI TRONG %===================== Tinh Cac Diem Gauss Tren BIEN ========================== ind = 0; gauss = gauss2_10(quado); for i=1:(lthu-1) ycen = (nnu(2,i+1) + nnu(2,i))/2; jcob = abs((nnu(2,i+1) - nnu(2,i))/2); for j=1:quado mark(j) = ycen - gauss(1,j)*jcob; ind = ind + 1; gsu(1,ind) = nnu(1,i); gsu(2,ind) = mark(j); gsu(3,ind) = gauss(2,j); gsu(4,ind) = jcob; end end gst = gsu; gst(1,1:ind) = zeros(1,ind); %============= Tinh Cac Diem Gauss Tren BIEN TAI TRONG========================= ind=0; 114 Phuï Luïc gauss=gauss2_10(quado); for i=1:(ltht-1) ycenr=(nt(1,i+1)+nt(1,i))/2; jcobr=abs((nt(1,i+1)-nt(1,i))/2); for j=1:quado markr(j)=ycenr+gauss(1,j)*jcobr; ind=ind+1; gst(1,ind)=markr(j); gst(2,ind)=nt(2,i); gst(3,ind)=gauss(2,j); gst(4,ind)=jcobr; end end %================================================ Imo = (t/12)*D^3; f = zeros(2*numnod,1); for gt=gst gpos = gt(1:2); weight = gt(3); jac = gt(4); v = domain(gpos,x,dm,numnod); L = length(v); en = zeros(1,2*L); force = zeros(1,2*L); [phi,dphix,dphiy] = shape(gpos,dmax,x,v,dm); tx = 0; ty=P; for i=1:L en(2*i-1) = 2*v(i)-1; en(2*i) = 2*v(i); force(2*i-1)=tx*phi(i); force(2*i)=ty*phi(i); end f(en) = f(en) + weight*jac*force'; end %============ Tinh Toan Ma Tran G Va Vec To q BIEN ============================== GG1 = zeros(numnod*2,lthu*2); qk1 = zeros(1,2*lthu); ind1=0; ind2=0; for i=1:(lthu-1) ind1 = ind1 + 1; m1 = ind1; % m1=1,2,3,4 m2 = m1+1; % m2=2,3,4,5 y1 = nnu(2,m1); y2 = nnu(2,m2); len = y1 - y2; for j=1:quado ind2 = ind2+1; gpos = gsu(1:2,ind2); weight= gsu(3,ind2); jac = gsu(4,ind2); xp1 = gpos(1,1); 115 Phuï Luïc yp1 = gpos(2,1); fac1 = 0; fac2 = P/(young*Imo) ; uxex1 = 0; uxex1 = uxex1*fac1; uyex1 = -Lb^4/8+Lb^3*xp1/6-xp1^4/24+(0.1-nu*0.1)*xp1^2*D^2-(0.2-nu/16)*Lb*xp1*D^2+ (0.1+nu/16)*Lb^2*D^2; uyex1 = uyex1*fac2; N1 = (gpos(2,1)-y2)/len; N2 = - N1; qk1(2*m1-1) = qk1(2*m1-1)-weight*jac*N1*uxex1; qk1(2*m1) = qk1(2*m1)-weight*jac*N1*uyex1; qk1(2*m2-1) = qk1(2*m2-1)-weight*jac*N2*uxex1; qk1(2*m2) = qk1(2*m2)-weight*jac*N2*uyex1; v = domain(gpos,x,dm,numnod); [phi,dphix,dphiy] = shape(gpos,dmax,x,v,dm); L = length(v); for n=1:L G1 = -weight*jac*phi(n)*[N1 0; N1]; G2 = -weight*jac*phi(n)*[N2 0; N2]; c1 = 2*v(n)-1; c2 = 2*v(n); c3 = 2*m1-1; % C3=1,2,3,4, c4 = 2*m1; % C4=2,3,4,5, c5 = 2*m2-1; % C5=3,4,5,6, c6 = 2*m2; % C4=4,5,6,7, GG1(c1:c2,c3:c4) = GG1(c1:c2,c3:c4) + G1; GG1(c1:c2,c5:c6) = GG1(c1:c2,c5:c6) + G2; end end end %========================================================= f =[f; qk1']; m = sparse([k GG1 ; GG1' zeros(lthu*2)]); d = m\f; u = d(1:numnod*2); for i=1:numnod u2(1,i) = d(i*2-1); u2(2,i) = d(i*2); end %=========================== KET QUA CUA BAI TOAN ========================= %========================================================================== %================ Tinh Toan Chuyen Vi That Cua Cho Bai Toan =============== %========================================================================== displ = zeros(1,2*numnod); ind = 0; for gg = x ind = ind+1; gpos = gg(1:2); v = domain(gpos,x,dm,numnod); [phi,dphix,dphiy] = shape(gpos,dmax,x,v,dm); displ(2*ind-1) = phi*u2(1,v)'; displ(2*ind) = phi*u2(2,v)'; 116 Phuï Luïc end for i=1:numnod displX(i)=displ(2*i-1); displY(i)=displ(2*i); end %========================================================================== %============= Tnh Toan Chuyen Vi Doc truc Y cho loi Giai EFG Tai Y = ================ %========================================================================== X_nodes = [0:5:Lb]; Y_nodes = ones(1,length(X_nodes))*D/2; % tai Y =1 %Y_nodes = zeros(1,length(X_nodes))*Lb; % tai Y =0 ind_nod=0; for i=1:length(X_nodes) gpos(1,1)=X_nodes(i); gpos(2,1)=Y_nodes(i); ind_nod =ind_nod+1; v = domain(gpos,x,dm,numnod); [phi,dphix,dphiy]=shape(gpos,dmax,x,v,dm); displ_midx(ind_nod) = phi*u2(1,v)'; displ_midY(ind_nod) = phi*u2(2,v)'; end %========================================================================== %==================== Tnh Toan Chuyen Vi iem A cho loi Giai EFG = =================== %========================================================================== nodeA=zeros(2,1); nodeA(1,1) = 0; nodeA(2,1) = D/2; v=domain(nodeA,x,dm,numnod); [phi,dphix,dphiy]=shape(nodeA,dmax,x,v,dm); dispA(1,1) = phi*u2(1,v)' dispA(2,1) = phi*u2(2,v)' %========================================================================== %====================== Tinh Ung Suat Cho Loi Giai EFG =========================== %========================================================================== ind = 0; for gg = x ind = ind+1; v = domain(gg,x,dm,numnod); L = length(v); en = zeros(1,2*L); [phi,dphix,dphiy] = shape(gg,dmax,x,v,dm); Bmat = zeros(3,2*L); for j=1:L Bmat(1:3,(2*j-1):2*j)=[dphix(j) 0; dphiy(j); dphiy(j) dphix(j)]; end for i=1:L en(i*2-1) = 2*v(i)-1; en(i*2) = 2*v(i); end stress(1:3,ind) = Dmat*Bmat*u(en); end %========================================================================== %=================== Tinh Ung Suat EFG TAI MAT CAT GIUA DAM Lb/2 ============== 117 Phuï Luïc %========================================================================== %Ynodes=0.5; %diem B %Xnodes=32.5; %diem B %Ynodes=[-0.8:0.4:0.8] ; Ynodes=[-D/2:yspac:D/2]; Xnodes=ones(1,length(Ynodes))*Lb/2; ind_nod=0; for i=1:length(Ynodes) gpos(1,1)=Xnodes(i); gpos(2,1)=Ynodes(i); v = domain(gpos,x,dm,numnod); L = length(v); en = zeros(1,2*L); [phi,dphix,dphiy] = shape(gpos,dmax,x,v,dm); Bmat = zeros(3,2*L); for j=1:L Bmat(1:3,(2*j-1):2*j)=[dphix(j) 0; dphiy(j); dphiy(j) dphix(j)]; end for i=1:L en(i*2-1) = 2*v(i)-1; en(i*2) = 2*v(i); end ind_nod=ind_nod+1; stressMid(1:3,ind_nod) = Dmat*Bmat*u(en) end %========================================================================== %============= Tnh Toan Chuyen Vi Doc truc Y cho loi Giai Chinh Xac Tai Y=0 ============= %========================================================================== X=[0:5:Lb]; Y = 0; for i=1:length(X) displex_midY(1,i)=(-P/(young*Imo))*(-Lb^4/8+Lb^3*X(i)/6-X(i)^4/24+(0.1-nu*0.1)*X(i)^2*D^2(0.2-nu/16)*Lb*X(i)*D^2+ (0.1+nu/16)*Lb^2*D^2); end %=========================Ung Suat Cho Loi Giai Exact Tai Lb/2=================== Xs = Lb/2; Ys =[-D/2:yspac:D/2]; %Ys =[-0.8:0.4:0.8]; %Xs = 32.5; %diem B %Ys =0.5; %diem B for i=1:length(Ys) stress_exMid(1,i) = -(6*P*Xs^2*Ys(i)/D^3)*(1+0.5*D^2/Xs^2-2*Ys(i)^2/(3*Xs^2)); stress_exMid(2,i) = (P/2)*(1+Ys(i)/D-4*Ys(i)^3/D^3); stress_exMid(3,i) = -(3*P*Xs/(2*D))*(1-4*Ys(i)^2/D^2); end 118 ... NHIỆM VỤ : Giới thiệu lý thuyết phương pháp Element Free Galerkin Áp dụng lý thuyết phương pháp Element Free Galerkin cho toán phẳng lý thuyết đàn hồi qua ví dụ cụ thể, giải ngôn ngữ lập trình... Sử dụng phương pháp EFG khảo sát chuyển vị, ứng suất, cho toán phẳng lý thuyết đàn hồi, thông qua ví dụ tính toán 10 Chương : Lý thuyết phương pháp EFG Chương Lý thuyết phương pháp Element free. .. quan tâm đến phương pháp EFG 1.3 Mục tiêu luận văn Nghiên cứu lý thuyết phương pháp EFG p dụng phương pháp EFG giải toán phẳng lý thuyết đàn hồi, tính toán cho ví dụ cụ thể, sử dụng ngôn ngữ