Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 205 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
205
Dung lượng
7,8 MB
Nội dung
-i- MỤC LỤC MỤC LỤC i MỤC LỤC HÌNH VẼ iv MỤC LỤC BẢNG BIỂU ix KÝ HIỆU VIẾT TẮT MỘT SỐ THUẬT NGỮ THƯỜNG DÙNG xii MỞ ĐẦU 1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI MỤC ĐÍCH NGHIÊN CỨU 3 ĐỐI TƯỢNG, PHẠM VI NGHIÊN CỨU 3.1 Đối tượng nghiên cứu 3.2 Phạm vi nghiên cứu NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 4.1 Nội dung nghiên cứu 4.2 Phương pháp nghiên cứu NHỮNG ĐÓNG GÓP MỚI CỦA LUẬN ÁN Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CẤU TRÚC CỦA LUẬN ÁN CHƯƠNG TỔNG QUAN VẤN ĐỀ NGHIÊN CỨU 1.1 GIỚI THIỆU CHUNG 1.1.1 Tình hình nghiên cứu ứng dụng đập Xà lan Việt Nam 1.1.2 Nguyên lý, cấu tạo kỹ thuật đập Xà lan 1.1.3 Tình hình ứng dụng ĐXL nước 10 1.2 NỀN ĐẤT YẾU VÙNG ĐBSCL 12 1.3 HÌNH THỨC MẤT ỔN ĐỊNH CƠNG TRÌNH TRÊN NỀN ĐẤT YẾU 13 1.4 BÀI TOÁN ỔN ĐỊNH ĐXL TRÊN NỀN ĐẤT YẾU 15 1.5 TỔNG QUAN NGHIÊN CỨU ĐƯỜNG BAO TẢI TRỌNG GIỚI HẠN 20 1.5.2 Móng chịu tải trọng đứng 21 1.5.3 Móng chịu đồng thời tải trọng đứng, ngang 22 1.5.4 Móng chịu đồng thời tải trọng đứng mô men .24 1.5.5 Móng chịu đồng thời tải trọng đứng, ngang mô men 25 1.5.6 Đặc trưng đường bao tải trọng giới hạn 27 1.6 KẾT LUẬN CHƯƠNG 34 CHƯƠNG CƠ SỞ KHOA HỌC VÀ PHƯƠNG PHÁP XÂY DỰNG ĐƯỜNG BAO TẢI TRỌNG GIỚI HẠN 36 2.1 ĐẶT VẤN ĐỀ 36 - ii - 2.2 CÁC NHÂN TỐ ẢNH HƯỞNG ĐẾN ĐƯỜNG BAO TẢI TRỌNG GIỚI HẠN 36 2.2.1 Góc ma sát tiếp xúc 36 2.2.2 Phần tử tiếp xúc 36 2.3 NGHIÊN CỨU ẢNH HƯỞNG CỦA GÓC MSTX TỚI ĐƯỜNG BAO TTGH 40 2.3.1 Mô hình tính tốn .40 2.3.2 Thông số chia lưới mơ hình tính tốn 41 2.3.3 Phương pháp xác định tải trọng giới hạn 42 2.3.4 Ảnh hưởng góc MSTX tới tải trọng đứng giới hạn 42 2.3.5 Ảnh hưởng góc MSTX tới đường bao TTGH đứng ngang 45 2.3.6 Ảnh hưởng góc MSTX tới quan hệ tải trọng đứng mơ men .46 2.4 THỰC NGHIỆM MƠ HÌNH XÁC ĐỊNH GÓC MSTX 48 2.4.1 Mục đích nội dung thí nghiệm 48 2.4.2 Thiết kế mơ hình thí nghiệm 49 2.4.3 Công tác xây dựng lắp đặt thiết bị thí nghiệm 54 2.4.4 Các tiêu vật liệu mơ hình 55 2.4.5 Quy trình thí nghiệm kết thí nghiệm 57 2.5 THÍ NGHIỆM HIỆN TRƯỜNG 62 2.6 KẾT LUẬN CHƯƠNG 67 CHƯƠNG XÂY DỰNG ĐƯỜNG BAO TẢI TRỌNG GIỚI HẠN 68 3.1 TỔNG QUÁT 68 3.1.1 Mục đích xây dựng 68 3.1.2 Phương pháp xây dựng 68 3.2 XÂY DỰNG MƠ HÌNH TỐN 68 3.2.1 Biên mô hình tốn 68 3.2.2 Mơ hình vật liệu tính tốn 68 3.2.3 Lựa chọn phần tử cho đất 70 3.2.4 Điểm đặt lực tính tốn 71 3.2.5 Phương pháp xây dựng đường bao từ mơ hình tốn 71 3.3 XÂY DỰNG MÔ ĐUN PHẦN MỀM 77 3.3.1 Lưu đồ phân tích 77 3.3.2 Giao diện lựa chọn phân tích .78 3.4 KIỂM ĐỊNH MÔ HÌNH BÀI TỐN PHẲNG 81 3.4.1 Móng chịu tải trọng đứng 81 3.4.2 Móng chịu tải trọng đứng ngang 82 3.4.3 Móng chịu tải trọng đứng mô men 83 3.4.4 Móng chịu tải trọng đứng, ngang mơ men 84 - iii - 3.5 KIỂM ĐỊNH MƠ HÌNH BÀI TỐN KHƠNG GIAN BA CHIỀU 89 3.5.1 Mơ hình tốn khơng gian 89 3.5.2 Kết tính tốn 93 3.6 XÂY DỰNG ĐƯỜNG BAO TTGH CHO BÀI TỐN KHƠNG GIAN 97 3.6.1 Móng chịu tải trọng đứng 97 3.6.2 Móng chịu tải trọng đứng ngang 99 3.6.3 Móng chịu tải trọng đứng mơ men 100 3.6.4 Móng chịu tải trọng đứng, ngang mô men 102 3.7 KẾT LUẬN CHƯƠNG 106 CHƯƠNG ỨNG DỤNG KẾT QUẢ NGHIÊN CỨU VÀO TÍNH TỐN, KIỂM TRA CHO CƠNG TRÌNH THỰC TẾ 108 4.1 CÔNG THỨC KIỂM TRA ỔN ĐỊNH ĐXL THEO ĐƯỜNG BAO TTGH 108 4.2 XÂY DỰNG BIỂU ĐỒ XÁC ĐỊNH SƠ BỘ KÍCH THƯỚC ĐXL 109 4.2.1 Mục đích phương pháp xây dựng 109 4.2.2 Sơ đồ tải trọng tác dụng 110 4.2.3 Điều kiện ổn định thấm 112 4.2.4 Tổng hợp tải trọng tác dụng 113 4.2.5 Xây dựng biểu đồ 116 4.3 KẾT LUẬN CHƯƠNG 123 KẾT LUẬN VÀ KIẾN NGHỊ 124 KẾT LUẬN 124 HƯỚNG NGHIÊN CỨU 125 KIẾN NGHỊ 126 DANH MỤC CÁC CƠNG TRÌNH KHOA HỌC ĐÃ CƠNG BỐ CỦA TÁC GIẢ CĨ LIÊN QUAN ĐẾN LUẬN ÁN 127 DANH MỤC TÀI LIỆU THAM KHẢO 128 PHẦN PHỤ LỤC 134 PHỤ LỤC 1: TỔNG HỢP MỘT SỐ CÔNG TRÌNH ĐẬP XÀ LAN ĐÃ XÂY DỰNG 134 PHỤ LỤC 2: TỔNG HỢP PHÂN TÍCH THIẾT KẾ SƠ BỘ ĐXL 136 PHỤ LỤC 3: HÌNH ẢNH THÍ NGHIỆM MƠ HÌNH VÀ HIỆN TRƯỜNG 152 PHỤ LỤC 4: CODE CHƯƠNG TRÌNH FAILURE ENVELOPE FOR DAM 159 - iv - MỤC LỤC HÌNH VẼ Hình 1.1 - Bố trí kết cấu ĐXLLH Hình 1.2 - Bố trí kết cấu ĐXL tháo lắp hàng năm Hình 1.3 - Mơ hình ĐXL hộp Hình 1.4 - ĐXL hộp cơng trình cống Phước Long .9 Hình 1.5 - Mơ hình ĐXL dầm .10 Hình 1.6 - Cơng trình ĐXL dầm thực tế .10 Hình 1.7 - Cắt ngang cống LiDo, Malamocco, Chioggia Italia .10 Hình 1.8 - Xử lý cơng trình Vinece .10 Hình 1.9 - Phương án xử lý đập Brad dock 11 Hình 1.10 : Sơ đồ phá hoại cắt (trượt) tổng thể [34, 56] 14 Hình 1.11 : Sơ đồ Phá hoại cắt (trượt) cục [34, 56] 14 Hình 1.12 : Sơ đồ phá hoại cắt (trượt) kiểu xuyên [34, 56] 14 Hình 1.13 : Mơ hình tốn móng chịu đồng thời V:H;M 15 Hình 1.14 - Sơ đồ tổ hợp tải trọng tác dụng lên ĐXL 15 Hình 1.15 - Ký hiệu kích thước ĐXL 16 Hình 1.16 : Quy ước chiều tải trọng 16 Hình 1.17 - Quy đổi tải trọng xiên thành tải theo phương 17 Hình 1.18 - Sơ đồ tính trượt hỗn hợp 19 Hình 1.19 - Đồ thị quan hệ t gh ~ pgh 19 Hình 1.20 : Hình thức móng nông .20 Hình 1.21 : Sơ đồ ổn định ĐXL chịu trải trọng phức tạp 21 Hình 1.22 : Đường bao TTGH ( V V0 , H V0 ) móng băng M=0 24 Hình 1.23 - Đường cong quan hệ V/Vo M/BVo trạng thái (H = 0) .25 Hình 1.24 : Chuyển đổi tải trọng tương đương 26 Hình 1.25 : Diện tích móng hiệu Meyerhof [49] 26 Hình 1.26 Móng trịn chân giàn khoan dầu 29 Hình 1.27 Đường bao phá hoại theo Buterfield and Ticof, 1979 29 Hình 1.28 : Đường bao phá hoại Martin, 1994 30 Hình 1.29 : Lưới PTHH, (a) móng vng L=B, (b) móng chữ nhật L=5B 31 Hình 1.30 Hình dạng biểu đồ bao TTGH [52] 32 Hình 1.31 : Biểu đồ đường bao TTGH V/Vo 0,5, Ngo Tran [50] 33 Hình 1.32 : Biểu đồ đường bao TTGH V/Vo 0,5, Ngo Tran [50] 33 Hình 1.33 : Biểu đồ đẳng M/BVo, (M>0), Ngo Tran [50] 34 Hình 2.1 - Sơ đồ phần tử tiếp xúc Goodman (14 nút) 37 -v- Hình 2.2 - Quan hệ ứng suất pháp tiếp với biến dạng pháp tuyến (a) biến dạng trượt (b) .38 Hình 2.3 - Mơ hình tử tiếp xúc độ dày khơng phần tử tiếp xúc liên tục 39 Hình 2.4 - Vùng trượt với giới hạn ứng suất cắt cực hạn .39 Hình 2.5 - Phương trình mặt tiếp xúc theo Ngo Tran (1996) 40 Hình 2.6 - Mơ hình tốn phẳng .41 Hình 2.7 - Chia lưới toán phẳng 41 Hình 2.8 – Quan hệ tải trọng chuyển vị với bốn loại đất .42 Hình 2.9 – Quan hệ w/B ~ Nc với góc MSTX 15 .43 Hình 2.10 – Quan hệ w/B ~ Nc với góc MSTX 20 .43 Hình 2.11 – Quan hệ w/B ~ Nc với góc MSTX 25 .44 Hình 2.12 – Quan hệ w/B ~ Nc với góc MSTX 30 .44 Hình 2.13 – Quan hệ góc MSTX hệ số Nc 45 Hình 2.14 – Quan hệ V/V0 H/V0 với w/u=0,4 46 Hình 2.15 – Quan hệ V/Vo H/Vo với w/u=1,0 46 Hình 2.16 – Quan hệ V/Vo M/BVo với w/B = 0,1 .47 Hình 2.17 – Quan hệ V/Vo M/BVo với w/B=0,33 .47 Hình 2.18 – Quan hệ V/Vo M/BVo với w/B=1,0 47 Hình 2.19 – Quan hệ V/Vo M/BVo với w/B= 3,0 48 Hình 2.20 : Bố trí máng thí nghiệm .49 Hình 2.21 Tấm nén bê tơng thí nghiệm 0,2m 0,3m 50 Hình 2.22 Tấm nén bê tơng thí nghiệm 0,4m .51 Hình 2.23 Tấm thép dùng để gia tải đứng 51 Hình 2.24 Bể nước dùng để gia tải ngang 52 Hình 2.25 Đồng hồ đo chuyển vị 52 Hình 2.26 Bố trí đồng hồ đo chuyển vị đứng ngang .53 Hình 2.27 - Chụp ảnh chuyển vị bên máng 53 Hình 2.28 - Sơ đồ thí nghiệm tải trọng đứng, ngang 54 Hình 2.29 - Tiến hành gia tải đứng nén thép .58 Hình 2.30 - Tiến hành gia tải ngang kéo móng đến trượt 59 Hình 2.31 – Tấm nén tách bị trượt 59 Hình 2.32 - Quan hệ H/Vo - Chuyển vị ngang u(mm) với B=0,2m .60 Hình 2.33 - Quan hệ H/Vo - Chuyển vị ngang u(mm) với B=0,3m .60 Hình 2.34 - Quan hệ H/Vo - Chuyển vị ngang u(mm) với B=0,4m .61 Hình 2.35 - Quan hệ V / V0 ~ H / V0 ứng với trường hợp thí nghiệm 62 Hình 2.36 - Sơ đồ thí nghiệm tải trọng V, H 63 - vi - Hình 2.37 - Bố trí tổ chức thí nghiệm trường 63 Hình 2.38 - Quan hệ tải trọng ngang - chuyển vị ngang với B=0,7m 65 Hình 2.39 - Quan hệ tải trọng ngang - chuyển vị ngang với B=1,0m 66 Hình 3.1 - Mơ hình tốn khơng gian ba chiều .69 Hình 3.2 - Mặt chảy mặt phẳng kinh tuyến (a) mặt phẳng vng góc trục thủy tĩnh (b) 69 Hình 3.3 - Phần tử phẳng Abaqus (a) Phần tử phẳng nút (b) phần tử phẳng nút (c) phần tử phẳng nút 70 (a) Phần tử khối nút (b) phần tử khối 20 nút (c) phần tử chóp 10 nút .70 Hình 3.4 - Phần tử khối Abaqus (a) Phần tử khối nút (b) phần tử khối 20 nút (c) phần tử chóp 10 nút (d) ký hiệu quy ước 71 Hình 3.5 - Sơ đồ điểm đặt tải tính tốn 71 Hình 3.6 - Tập hợp quan hệ a) (V,M) a) (V/ H) thử nghiệm .72 Hình 3.7 - Phân tích theo tỷ lệ chuyển vị .73 Hình 3.8 - Phân tích theo tải trọng bao .74 Hình 3.9 - Trình tự gia tải xác định đường bao V-H V-M [37] 75 Hình 3.10 - Chuyển vị tổng hợp mặt H - V .75 Hình 3.11 - Xác định quỹ đạo điểm TTGH V - H 76 Hình 3.12 - Chuyển vị ngang chuyển vị xoay với cấp tải trọng đứng .77 Hình 3.13 - Trình tự thí nghiệm xây dựng biểu đồ bao V-H, V-M [37] 77 Hình 3.14 - Lưu đồ phân tích .78 Hình 3.15 - Lưu đồ xây dựng đường bao TTGH 79 Hình 3.16 - Giao diện phần mềm 80 Hình 3.17 - Tổng hợp kết từ số liệu xuất Abaqus 81 Hình 3.18 - Thiết lập thông số biểu đồ cần vẽ .81 Hình 3.19 - Trình tự gia tải đứng (w) ngang (u) 82 Hình 3.20 - Đường bao tải trọng V-H với =300 83 Hình 3.21 - Trình tự gia tải đứng (w) xoay (B) 83 Hình 3.22 - Đường bao tải trọng V-M với =300 84 Hình 3.23 - So sánh đường bao tải trọng V-M với lời giải Ngo Tran 84 Hình 3.24 - Trình tự gia tải theo phương pháp tỷ lệ chuyển vị 85 Hình 3.25 - Phương pháp phân tích tải trọng bao ứng với u- B theo cấp wi(Vi) 85 Hình 3.26 - Biểu đồ bao TTGH với V/Vo=0.35, =300 .86 Hình 3.27 - Biểu đồ bao TTGH với V/Vo=0.45, =300 .87 Hình 3.28 - Đường bao TTGH với V/Vo=0,05-0,5 với =300 87 - vii - Hình 3.29 - So sánh đường bao TTGH với V/Vo=0,3 so với kết Ngo Tran 88 Hình 3.30 - So sánh đường bao TTGH với kết Ngo Tran [50] .89 Hình 3.31 - Mơ hình tính tốn .90 Hình 3.32 - Chia lưới mơ hình tính tốn .90 Hình 3.33 - Chuyển vị tổng sau gia tải đứng với móng B=1,0m 91 Hình 3.34 - Chuyển vị tổng ứng với bước gia tải ngang với móng B=1,0m .91 Hình 3.35 - Ứng suất Von-mises đất phá hoại với móng B=1,0m 92 Hình 3.36 - Mặt trượt đáy móng khơng gian ba chiều 92 Hình 3.37 - Mặt trượt đáy móng nhìn từ mặt bên với móng B=1,0m 92 Hình 3.38 - Kiểm định mơ hình tốn với B= 1,0m, cấp V1 94 Hình 3.39 - So sánh thí nghiệm mơ hình với B= 1,0m, cấp V2 .94 Hình 3.40 - So sánh thí nghiệm mơ hình với B= 1,0m, cấp V3 94 Hình 3.41 - So sánh thí nghiệm mơ hình với B= 0,7m, cấp V1 .95 Hình 3.42 - So sánh thí nghiệm mơ hình với B= 0,7m, cấp V2 .96 Hình 3.43 – Quan hệ tỷ lệ B/L hệ số Nc 98 Hình 3.44 - Biểu đồ bao TTGH V V0 H V0 với =300 99 Hình 3.45 - Biểu đồ bao TTGH V V0 H V0 với =24,30 100 Hình 3.46 - So sánh đường TTGH V V0 H V0 với =300 24,30 100 Hình 3.47 - Trình tự gia tải đứng (w) xoay (B) 101 Hình 3.48 - Biểu đồ bao TTGH V V0 M BV0 với =300 101 Hình 3.49 - Biểu đồ bao TTGH V V0 M BV0 với =24,30 102 Hình 3.50 - So sánh đường bao TTGH V V0 M BV0 102 Hình 3.51 - Biểu đồ bao TTGH với V V0 =0.3, 300 103 Hình 3.52 - Biểu đồ bao TTGH với V/Vo=0.45, =300 104 Hình 3.53 - Đường bao TTGH V V0 , H V0 , M BV0 với góc =300 104 Hình 3.54 - Đường bao TTGH V V0 , H V0 , M BV0 với góc =300 105 Hình 3.55 - Đường bao TTGH V V0 , H V0 , M BV0 với góc =24,30 105 Hình 3.56 - Biểu đồ bao TTGH V V0 , H V0 , M BV0 với góc =24,30 106 Hình 4.1 - Chính diện ĐXL dầm 110 Hình 4.2 - Cắt ngang ĐXL dầm 110 Hình 4.3 - Chính diện ĐXL phao hộp 110 Hình 4.4 - Cắt ngang ĐXL phao hộp 10m 111 Hình 4.5 - Tải trọng tác dụng lên ĐXL dầm theo phương dòng chảy 111 - viii - Hình 4.6 - Tải trọng tác dụng lên ĐXL theo phương vng góc dịng chảy 111 Hình 4.7 - Tải trọng tác dụng lên ĐXL phao hộp theo phương dịng chảy 112 Hình 4.8 – Biểu đồ quan hệ B/L - H (m) với ĐXL có Lt=5,0 (m) 117 Hình 4.9 – Biểu đồ quan hệ B/L - H (m) với ĐXL có Lt=6,0 (m) 117 Hình 4.10 – Biểu đồ quan hệ B/L - H (m) với ĐXL có Lt=7,0 (m) 118 Hình 4.11 – Biểu đồ quan hệ B/L - H (m) với ĐXL có Lt=8,0 (m) 118 Hình 4.12 – Biểu đồ quan hệ B/Ld - H (m) với ĐXL có Lt=9,0 (m) 118 Hình 4.13 – Biểu đồ quan hệ B/Ld - H (m) với ĐXL có Lt=10,0 (m) 118 Hình 4.14 – Tổng hợp quan hệ B/L - H (m) với ĐXL có Lt=5-:-10 (m) 119 Hình 4.15 – Biểu đồ quan hệ V/V0 - H (m) với ĐXL có Lt=5,0 (m) 120 Hình 4.16 – Biểu đồ quan hệ V/V0 -H (m) với ĐXL có Lt=6,0 (m) 120 Hình 4.17 – Biểu đồ quan hệ V/V0 - H (m) với ĐXL có Lt= 7,0 (m) 121 Hình 4.18 – Biểu đồ quan hệ V/V0 - H (m) với ĐXL có Lt=8,0 (m) 121 Hình 4.19 – Biểu đồ quan hệ V/V0 - H (m) với ĐXL có Lt=9,0 (m) 122 Hình 4.20 – Biểu đồ quan hệ V/V0 - H (m) với ĐXL có Lt=10,0 (m) 122 Hình 4.21 - Biểu đồ quan hệ V/V0 - H ứng với ĐXL có Lt=5,0-:-10 (m) 122 - ix - MỤC LỤC BẢNG BIỂU Bảng 1.1 - Đặc trưng lý đất yếu tỉnh An Giang tỉnh Bến Tre [4] 12 Bảng 1.2 - Đặc trưng lý đất yếu tỉnh Trà Vinh tỉnh Bạc Liêu [4], [15] 13 Bảng 1.3 - Đặc trưng lý đất yếu tỉnh Cà Mau tỉnh Kiên Giang [4] 13 Bảng 1.4 - Tổng hợp nghiên cứu cơng bố hệ số hình dạng sc 22 Bảng 2.1 - Thơng số mơ hình .49 Bảng 2.2 - Tổng hợp tiêu lý đất 55 Bảng 2.3 – So sánh số tiêu đất yếu mơ hình Nam Bộ .55 Bảng 2.4 – Độ cứng nén bê tơng thí nghiệm 57 Bảng 2.5 - Tổng hợp kết thí nghiệm 62 Bảng 2.6 - Tổng hợp kết thí nghiệm trường với B= 0,7m .64 Bảng 2.7 - Tổng hợp kết thí nghiệm trường với B= 1,0m .64 Bảng 2.8 – Góc tiếp xúc theo TN trường so sánh với TN mơ hình 66 Bảng 3.1 - Tổng hợp kết mơ hình tốn với B= 1,0m 93 Bảng 3.2 - Tổng hợp kết tính tốn mơ hình với móng 0,7m 95 Bảng 3.3 - Tổng hợp so sánh kết tính tốn mơ hình với thí nghiệm .96 Bảng 3.4 - Tổng hợp nghiên cứu hệ số sức chịu tải hệ số hình dạng .98 Bảng 4.1 - Tổng hợp tải trọng hệ số với Lt= 5m 113 Bảng 4.2 - Tổng hợp tải trọng hệ số với Lt= 10m 115 -x- DANH MỤC CÁC KÝ HIỆU VÀ VIẾT TẮT TRONG LUẬN ÁN Ký hiệu Đơn vị Tên gọi ký hiệu A m2 Diện tích móng A’ m2 Diện tích móng hiệu B m Bề rộng móng (theo chiều dịng chảy) B’ m Bề rộng móng hiệu Bs m Bề rộng mơ hình tính tốn BV0 kNm Tích bề rộng móng với tải trọng đứng giới hạn c kPa Lực dính đơn vị D m E0 kPa Mô đun tổng biến dạng đất Eoed kPa Mô đun nén trục Ep kPa Mô đun biến dạng e0 ko G kPa Mô đun chống cắt H kN Tải trọng ngang tác dụng H0 kN Tải trọng ngang giới hạn Hs m Chiều cao mơ hình tính tốn Ht m Chiều cao đập xà lan H/V0 ko Hệ số tải trọng ngang không thứ ngun L m Chiều dài móng (theo phương vng góc dịng chảy) Ls m Chiều dài mơ hình tính tốn Lt m Chiều rộng thơng nước đập xà lan M kNm Mô men tác dụng M0 kNm Mô men giới hạn M/BV0 ko Hệ số mô men không thứ nguyên Nc ko Hệ số sức chịu tải theo lực dính Nq ko Hệ số sức chịu tải theo áp lực bên N ko Hệ số sức chịu tải theo dung trọng Độ sâu chơn móng Độ rỗng ban đầu đất - 179 - sketchUpEdge=mdb.models['FootingModel'].parts['soil3'].edges[20], sketchOrientation=BOTTOM, origin=(4.0, -1.25, 1.25))) mdb.models['FootingModel'].parts['soil3'].projectReferencesOntoSketch(filter= COPLANAR_EDGES, sketch=mdb.models['FootingModel'].sketches[' profile ']) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(-0.25, 0.25), point2=(-1.25, 0.25)) mdb.models['FootingModel'].sketches[' profile '].HorizontalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[6]) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[8], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[2]) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(-1.25, 0.25), point2=(-1.25, -1.25)) mdb.models['FootingModel'].sketches[' profile '].VerticalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[7]) mdb.models['FootingModel'].sketches[' profile '].PerpendicularConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].geometry[6], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[7]) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(-1.25, -1.25), point2=(1.25, -1.25)) mdb.models['FootingModel'].sketches[' profile '].HorizontalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[8]) mdb.models['FootingModel'].sketches[' profile '].PerpendicularConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].geometry[7], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[8]) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(1.25, -1.25), point2=(-0.25, 0.25)) mdb.models['FootingModel'].parts['soil3'].CutExtrude(flipExtrudeDirection=OFF, sketch=mdb.models['FootingModel'].sketches[' profile '], sketchOrientation=BOTTOM, sketchPlane= mdb.models['FootingModel'].parts['soil3'].faces[6], sketchPlaneSide=SIDE1, sketchUpEdge=mdb.models['FootingModel'].parts['soil3'].edges[20]) del mdb.models['FootingModel'].sketches[' profile '] mdb.models['FootingModel'].ConstrainedSketch(gridSpacing=0.43, name= ' profile ', sheetSize=17.49, transform= mdb.models['FootingModel'].parts['soil3'].MakeSketchTransform( sketchPlane=mdb.models['FootingModel'].parts['soil3'].faces[8], sketchPlaneSide=SIDE1, sketchUpEdge=mdb.models['FootingModel'].parts['soil3'].edges[16], sketchOrientation=BOTTOM, origin=(0.0, 0.0, 1.117647))) mdb.models['FootingModel'].parts['soil3'].projectReferencesOntoSketch(filter= COPLANAR_EDGES, sketch=mdb.models['FootingModel'].sketches[' profile ']) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(-4.0, 1.117647) , point2=(-1.5, -0.382353)) - 180 - mdb.models['FootingModel'].sketches[' profile '].Line(point1=(-1.5, -0.382353), point2=(-1.5, -1.382353)) mdb.models['FootingModel'].sketches[' profile '].VerticalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[11]) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[11], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[2]) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(-1.5, -1.382353), point2=(-4.0, -1.382353)) mdb.models['FootingModel'].sketches[' profile '].HorizontalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[12]) mdb.models['FootingModel'].sketches[' profile '].PerpendicularConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].geometry[11], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[12]) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(-4.0, -1.382353), point2=(-4.0, 1.117647)) mdb.models['FootingModel'].sketches[' profile '].VerticalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[13]) mdb.models['FootingModel'].sketches[' profile '].PerpendicularConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].geometry[12], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[13]) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(1.5, -0.382353) , point2=(4.0, 1.117647)) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[13], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[3]) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(4.0, 1.117647), point2=(4.0, -1.382353)) mdb.models['FootingModel'].sketches[' profile '].VerticalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[15]) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(4.0, -1.382353) , point2=(1.5, -1.382353)) mdb.models['FootingModel'].sketches[' profile '].HorizontalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[16]) mdb.models['FootingModel'].sketches[' profile '].PerpendicularConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].geometry[15], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[16]) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(1.5, -1.382353) , point2=(1.5, -0.382353)) mdb.models['FootingModel'].sketches[' profile '].VerticalConstraint( - 181 - addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[17]) mdb.models['FootingModel'].sketches[' profile '].PerpendicularConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].geometry[16], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[17]) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[14], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[3]) mdb.models['FootingModel'].parts['soil3'].CutExtrude(flipExtrudeDirection=OFF, sketch=mdb.models['FootingModel'].sketches[' profile '], sketchOrientation=BOTTOM, sketchPlane= mdb.models['FootingModel'].parts['soil3'].faces[8], sketchPlaneSide=SIDE1, sketchUpEdge=mdb.models['FootingModel'].parts['soil3'].edges[16]) del mdb.models['FootingModel'].sketches[' profile '] # Save mdb.models['FootingModel'].rootAssembly.DatumCsysByDefault(CARTESIAN) mdb.models['FootingModel'].rootAssembly.Instance(dependent=ON, name='soil1-1', part=mdb.models['FootingModel'].parts['soil1']) mdb.models['FootingModel'].rootAssembly.Instance(dependent=ON, name='soil2-1', part=mdb.models['FootingModel'].parts['soil2']) mdb.models['FootingModel'].rootAssembly.Instance(dependent=ON, name='soil3-1', part=mdb.models['FootingModel'].parts['soil3']) mdb.models['FootingModel'].rootAssembly.Instance(dependent=ON, name='soil4-1', part=mdb.models['FootingModel'].parts['soil4']) mdb.models['FootingModel'].rootAssembly.translate(instanceList=('soil1-1', ), vector=(0.0, 0.0, 1.5)) mdb.models['FootingModel'].ConstrainedSketch(name=' profile ', sheetSize= 25.0) del mdb.models['FootingModel'].sketches[' profile '] mdb.models['FootingModel'].ConstrainedSketch(name=' profile ', sheetSize= 10.0) mdb.models['FootingModel'].sketches[' profile '].rectangle(point1=(-0.5, 0.0) , point2=(0.5, 0.1)) mdb.models['FootingModel'].Part(dimensionality=THREE_D, name='footing', type= DISCRETE_RIGID_SURFACE) mdb.models['FootingModel'].parts['footing'].BaseSolidExtrude(depth=0.5, sketch= mdb.models['FootingModel'].sketches[' profile ']) del mdb.models['FootingModel'].sketches[' profile '] mdb.models['FootingModel'].parts['footing'].ReferencePoint(point= mdb.models['FootingModel'].parts['footing'].InterestingPoint( mdb.models['FootingModel'].parts['footing'].edges[10], MIDDLE)) mdb.models['FootingModel'].parts['footing'].RemoveCells(cellList= mdb.models['FootingModel'].parts['footing'].cells.getSequenceFromMask( mask=('[#1 ]', ), )) mdb.models['FootingModel'].parts['footing'].Surface(name='master', side1Faces= mdb.models['FootingModel'].parts['footing'].faces.getSequenceFromMask(( '[#8 ]', ), )) mdb.models['FootingModel'].parts['footing'].setElementType(elemTypes=(ElemType( - 182 - elemCode=R3D4, elemLibrary=STANDARD), ElemType(elemCode=R3D3, elemLibrary=STANDARD)), regions=( mdb.models['FootingModel'].parts['footing'].faces.getSequenceFromMask(( '[#1a ]', ), ), )) mdb.models['FootingModel'].parts['footing'].seedEdgeByNumber(constraint=FINER, edges= mdb.models['FootingModel'].parts['footing'].edges.getSequenceFromMask(( '[#c4e ]', ), ), number=10) mdb.models['FootingModel'].parts['footing'].generateMesh() mdb.models['FootingModel'].parts['footing'].deleteMesh(regions= mdb.models['FootingModel'].parts['footing'].faces.getSequenceFromMask(( '[#35 ]', ), )) mdb.models['FootingModel'].parts['footing'].seedEdgeByNumber(constraint=FINER, edges= mdb.models['FootingModel'].parts['footing'].edges.getSequenceFromMask(( '[#285 ]', ), ), number=1) mdb.models['FootingModel'].parts['footing'].generateMesh() mdb.models['FootingModel'].parts['footing'].deleteMesh(regions= mdb.models['FootingModel'].parts['footing'].faces.getSequenceFromMask(( '[#3a ]', ), )) mdb.models['FootingModel'].parts['footing'].seedEdgeByNumber(constraint=FINER, edges= mdb.models['FootingModel'].parts['footing'].edges.getSequenceFromMask(( '[#c50 ]', ), ), number=10) mdb.models['FootingModel'].parts['footing'].deleteMesh(regions= mdb.models['FootingModel'].parts['footing'].faces.getSequenceFromMask(( '[#5 ]', ), )) mdb.models['FootingModel'].parts['footing'].seedEdgeByNumber(constraint=FINER, edges= mdb.models['FootingModel'].parts['footing'].edges.getSequenceFromMask(( '[#12a ]', ), ), number=5) mdb.models['FootingModel'].parts['footing'].generateMesh() mdb.models['FootingModel'].ConstrainedSketch(name=' edit ', objectToCopy= mdb.models['FootingModel'].parts['soil1'].features['Solid extrude-1'].sketch) mdb.models['FootingModel'].parts['soil1'].projectReferencesOntoSketch(filter= COPLANAR_EDGES, sketch=mdb.models['FootingModel'].sketches[' edit '], upToFeature= mdb.models['FootingModel'].parts['soil1'].features['Solid extrude-1']) del mdb.models['FootingModel'].sketches[' edit '] mdb.models['FootingModel'].parts['soil1'].DatumPointByCoordinate(coords=(-1.5, 0.0, 2.5)) mdb.models['FootingModel'].parts['soil1'].DatumPointByCoordinate(coords=(-1.5, 0.0, 0.0)) mdb.models['FootingModel'].parts['soil1'].DatumPointByCoordinate(coords=(-1.5, 0.0, 1.0)) mdb.models['FootingModel'].parts['soil1'].DatumPointByCoordinate(coords=(-0.5, 0.0, 1.0)) mdb.models['FootingModel'].parts['soil1'].DatumPointByCoordinate(coords=(1.5, 0.0, 1.0)) mdb.models['FootingModel'].parts['soil1'].DatumPointByCoordinate(coords=(0.5, - 183 - 0.0, 1.0)) mdb.models['FootingModel'].ConstrainedSketch(gridSpacing=0.16, name= ' profile ', sheetSize=6.63, transform= mdb.models['FootingModel'].parts['soil1'].MakeSketchTransform( sketchPlane=mdb.models['FootingModel'].parts['soil1'].faces[4], sketchPlaneSide=SIDE1, sketchUpEdge=mdb.models['FootingModel'].parts['soil1'].edges[10], sketchOrientation=BOTTOM, origin=(0.0, -0.5, 1.0))) mdb.models['FootingModel'].parts['soil1'].projectReferencesOntoSketch(filter= COPLANAR_EDGES, sketch=mdb.models['FootingModel'].sketches[' profile ']) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(-0.5, 0.5), point2=(-0.5, -0.5)) mdb.models['FootingModel'].sketches[' profile '].VerticalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[6]) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[11], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[5]) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(0.5, 0.5), point2=(0.5, -0.5)) mdb.models['FootingModel'].sketches[' profile '].VerticalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[7]) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[13], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[5]) mdb.models['FootingModel'].parts['soil1'].PartitionFaceBySketch(faces= mdb.models['FootingModel'].parts['soil1'].faces.getSequenceFromMask(( '[#10 ]', ), ), sketch=mdb.models['FootingModel'].sketches[' profile '], sketchOrientation=BOTTOM, sketchUpEdge= mdb.models['FootingModel'].parts['soil1'].edges[10]) del mdb.models['FootingModel'].sketches[' profile '] mdb.models['FootingModel'].ConstrainedSketch(gridSpacing=0.16, name= ' profile ', sheetSize=6.63, transform= mdb.models['FootingModel'].parts['soil1'].MakeSketchTransform( sketchPlane=mdb.models['FootingModel'].parts['soil1'].faces[3], sketchPlaneSide=SIDE1, sketchUpEdge=mdb.models['FootingModel'].parts['soil1'].edges[17], sketchOrientation=BOTTOM, origin=(0.0, 0.0, 0.5))) mdb.models['FootingModel'].parts['soil1'].projectReferencesOntoSketch(filter= COPLANAR_EDGES, sketch=mdb.models['FootingModel'].sketches[' profile ']) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(-0.5, 0.5), point2=(-0.5, -0.5)) mdb.models['FootingModel'].sketches[' profile '].VerticalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[8]) mdb.models['FootingModel'].sketches[' profile '].PerpendicularConstraint( addUndoState=False, entity1= - 184 - mdb.models['FootingModel'].sketches[' profile '].geometry[3], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[8]) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[12], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[3]) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[13], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[7]) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(0.5, 0.5), point2=(0.5, -0.5)) mdb.models['FootingModel'].sketches[' profile '].VerticalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[9]) mdb.models['FootingModel'].sketches[' profile '].PerpendicularConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].geometry[2], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[9]) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[14], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[2]) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[15], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[7]) mdb.models['FootingModel'].parts['soil1'].PartitionFaceBySketch(faces= mdb.models['FootingModel'].parts['soil1'].faces.getSequenceFromMask(( '[#8 ]', ), ), sketch=mdb.models['FootingModel'].sketches[' profile '], sketchOrientation=BOTTOM, sketchUpEdge= mdb.models['FootingModel'].parts['soil1'].edges[17]) del mdb.models['FootingModel'].sketches[' profile '] mdb.models['FootingModel'].ConstrainedSketch(gridSpacing=0.16, name= ' profile ', sheetSize=6.63, transform= mdb.models['FootingModel'].parts['soil1'].MakeSketchTransform( sketchPlane=mdb.models['FootingModel'].parts['soil1'].faces[9], sketchPlaneSide=SIDE1, sketchUpEdge=mdb.models['FootingModel'].parts['soil1'].edges[21], sketchOrientation=BOTTOM, origin=(0.0, -0.5, 0.0))) mdb.models['FootingModel'].parts['soil1'].projectReferencesOntoSketch(filter= COPLANAR_EDGES, sketch=mdb.models['FootingModel'].sketches[' profile ']) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(-0.5, 0.5), point2=(-0.5, -0.5)) mdb.models['FootingModel'].sketches[' profile '].VerticalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[8]) mdb.models['FootingModel'].sketches[' profile '].PerpendicularConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].geometry[5], entity2= - 185 - mdb.models['FootingModel'].sketches[' profile '].geometry[8]) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[12], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[5]) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[13], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[2]) mdb.models['FootingModel'].sketches[' profile '].Line(point1=(0.5, 0.5), point2=(0.5, -0.5)) mdb.models['FootingModel'].sketches[' profile '].VerticalConstraint( addUndoState=False, entity= mdb.models['FootingModel'].sketches[' profile '].geometry[9]) mdb.models['FootingModel'].sketches[' profile '].PerpendicularConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].geometry[4], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[9]) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[14], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[4]) mdb.models['FootingModel'].sketches[' profile '].CoincidentConstraint( addUndoState=False, entity1= mdb.models['FootingModel'].sketches[' profile '].vertices[15], entity2= mdb.models['FootingModel'].sketches[' profile '].geometry[2]) mdb.models['FootingModel'].parts['soil1'].PartitionFaceBySketch(faces= mdb.models['FootingModel'].parts['soil1'].faces.getSequenceFromMask(( '[#200 ]', ), ), sketch=mdb.models['FootingModel'].sketches[' profile '], sketchOrientation=BOTTOM, sketchUpEdge= mdb.models['FootingModel'].parts['soil1'].edges[21]) del mdb.models['FootingModel'].sketches[' profile '] mdb.models['FootingModel'].parts['soil1'].Surface(name='slave', side1Faces= mdb.models['FootingModel'].parts['soil1'].faces.getSequenceFromMask(( '[#80 ]', ), )) mdb.models['FootingModel'].parts['soil1'].setElementType(elemTypes=(ElemType( elemCode=C3D8H, elemLibrary=STANDARD), ElemType(elemCode=C3D6, elemLibrary=STANDARD), ElemType(elemCode=C3D4, elemLibrary=STANDARD)), regions=( mdb.models['FootingModel'].parts['soil1'].cells.getSequenceFromMask(( '[#1 ]', ), ), )) mdb.models['FootingModel'].parts['soil1'].setElementType(elemTypes=(ElemType( elemCode=C3D8H, elemLibrary=STANDARD), ElemType(elemCode=C3D6, elemLibrary=STANDARD), ElemType(elemCode=C3D4, elemLibrary=STANDARD)), regions=( mdb.models['FootingModel'].parts['soil1'].cells.getSequenceFromMask(( '[#1 ]', ), ), )) mdb.models['FootingModel'].parts['soil1'].seedEdgeByBias(biasMethod=DOUBLE, - 186 - constraint=FINER, endEdges= mdb.models['FootingModel'].parts['soil1'].edges.getSequenceFromMask(( '[#3600000 ]', ), ), number=10, ratio=5.0) mdb.models['FootingModel'].parts['soil1'].seedEdgeByBias(biasMethod=DOUBLE, constraint=FINER, endEdges= mdb.models['FootingModel'].parts['soil1'].edges.getSequenceFromMask(( '[#3600000 ]', ), ), number=20, ratio=5.0) mdb.models['FootingModel'].parts['soil1'].seedEdgeByBias(biasMethod=SINGLE, constraint=FINER, end1Edges= mdb.models['FootingModel'].parts['soil1'].edges.getSequenceFromMask(( '[#80002 ]', ), ), end2Edges= mdb.models['FootingModel'].parts['soil1'].edges.getSequenceFromMask(( '[#408 ]', ), ), number=10, ratio=5.0) mdb.models['FootingModel'].parts['soil1'].seedEdgeByBias(biasMethod=SINGLE, constraint=FINER, end1Edges= mdb.models['FootingModel'].parts['soil1'].edges.getSequenceFromMask(( '[#1020 ]', ), ), end2Edges= mdb.models['FootingModel'].parts['soil1'].edges.getSequenceFromMask(( '[#8080 ]', ), ), number=10, ratio=5.0) mdb.models['FootingModel'].parts['soil1'].seedEdgeByBias(biasMethod=SINGLE, constraint=FINER, end1Edges= mdb.models['FootingModel'].parts['soil1'].edges.getSequenceFromMask(( '[#900 ]', ), ), end2Edges= mdb.models['FootingModel'].parts['soil1'].edges.getSequenceFromMask(( '[#902200 ]', ), ), number=10, ratio=5.0) mdb.models['FootingModel'].parts['soil1'].seedEdgeByBias(biasMethod=SINGLE, constraint=FINER, end1Edges= mdb.models['FootingModel'].parts['soil1'].edges.getSequenceFromMask(( '[#34051 ]', ), ), end2Edges= mdb.models['FootingModel'].parts['soil1'].edges.getSequenceFromMask(( '[#40004 ]', ), ), number=10, ratio=5.0) mdb.models['FootingModel'].parts['soil1'].generateMesh() mdb.models['FootingModel'].parts['soil2'].setElementType(elemTypes=(ElemType( elemCode=C3D8H, elemLibrary=STANDARD), ElemType(elemCode=C3D6, elemLibrary=STANDARD), ElemType(elemCode=C3D4, elemLibrary=STANDARD)), regions=(mdb.models['FootingModel'].parts['soil2'].cells.getSequenceFromMask(( '[#3 ]', ), ), )) mdb.models['FootingModel'].parts['soil2'].seedEdgeByNumber(constraint=FINER, edges=mdb.models['FootingModel'].parts['soil2'].edges.getSequenceFromMask(( '[#ffffff ]', ), ), number=10) mdb.models['FootingModel'].parts['soil2'].seedEdgeByBias(biasMethod=SINGLE, constraint=FINER, end1Edges= mdb.models['FootingModel'].parts['soil2'].edges.getSequenceFromMask(( '[#80040 ]', ), ), end2Edges= mdb.models['FootingModel'].parts['soil2'].edges.getSequenceFromMask(( '[#2a290 ]', ), ), number=10, ratio=5.0) mdb.models['FootingModel'].parts['soil2'].seedEdgeByBias(biasMethod=SINGLE, constraint=FINER, end1Edges= mdb.models['FootingModel'].parts['soil2'].edges.getSequenceFromMask(( - 187 - '[#c40004 ]', ), ), end2Edges= mdb.models['FootingModel'].parts['soil2'].edges.getSequenceFromMask(( '[#10121 ]', ), ), number=10, ratio=5.0) mdb.models['FootingModel'].parts['soil2'].seedEdgeByBias(biasMethod=SINGLE, constraint=FINER, end1Edges= mdb.models['FootingModel'].parts['soil2'].edges.getSequenceFromMask(( '[#305008 ]', ), ), end2Edges= mdb.models['FootingModel'].parts['soil2'].edges.getSequenceFromMask(( '[#c02 ]', ), ), number=10, ratio=5.0) mdb.models['FootingModel'].parts['soil2'].generateMesh() mdb.models['FootingModel'].parts['soil3'].setElementType(elemTypes=(ElemType( elemCode=C3D8H, elemLibrary=STANDARD), ElemType(elemCode=C3D6, elemLibrary=STANDARD), ElemType(elemCode=C3D4, elemLibrary=STANDARD)), regions=(mdb.models['FootingModel'].parts['soil3'].cells.getSequenceFromMask(( '[#1 ]', ), ), )) mdb.models['FootingModel'].parts['soil3'].seedEdgeByNumber(constraint=FINER, edges=mdb.models['FootingModel'].parts['soil3'].edges.getSequenceFromMask(( '[#f00 ]', ), ), number=20) mdb.models['FootingModel'].parts['soil3'].seedEdgeByBias(biasMethod=SINGLE, constraint=FINER, end1Edges= mdb.models['FootingModel'].parts['soil3'].edges.getSequenceFromMask(( '[#2a ]', ), ), end2Edges= mdb.models['FootingModel'].parts['soil3'].edges.getSequenceFromMask(( '[#80 ]', ), ), number=10, ratio=5.0) mdb.models['FootingModel'].parts['soil3'].seedEdgeByBias(biasMethod=SINGLE, constraint=FINER, end1Edges= mdb.models['FootingModel'].parts['soil3'].edges.getSequenceFromMask(( '[#14 ]', ), ), end2Edges= mdb.models['FootingModel'].parts['soil3'].edges.getSequenceFromMask(( '[#41 ]', ), ), number=10, ratio=5.0) mdb.models['FootingModel'].parts['soil3'].generateMesh() mdb.models['FootingModel'].parts['soil4'].setElementType(elemTypes=(ElemType( elemCode=C3D8H, elemLibrary=STANDARD), ElemType(elemCode=C3D6, elemLibrary=STANDARD), ElemType(elemCode=C3D4, elemLibrary=STANDARD)), regions=(mdb.models['FootingModel'].parts['soil4'].cells.getSequenceFromMask(( '[#1 ]', ), ), )) mdb.models['FootingModel'].parts['soil4'].seedEdgeByNumber(constraint=FINER, edges=mdb.models['FootingModel'].parts['soil4'].edges.getSequenceFromMask(( '[#f00 ]', ), ), number=20) mdb.models['FootingModel'].parts['soil4'].seedEdgeByBias(biasMethod=SINGLE, constraint=FINER, end1Edges= mdb.models['FootingModel'].parts['soil4'].edges.getSequenceFromMask(( '[#41 ]', ), ), end2Edges= mdb.models['FootingModel'].parts['soil4'].edges.getSequenceFromMask(( '[#14 ]', ), ), number=10, ratio=5.0) mdb.models['FootingModel'].parts['soil4'].seedEdgeByBias(biasMethod=SINGLE, constraint=FINER, end1Edges= mdb.models['FootingModel'].parts['soil4'].edges.getSequenceFromMask(( - 188 - '[#2]',),),end2Edges= mdb.models['FootingModel'].parts['soil4'].edges.getSequenceFromMask(( '[#a8 ]', ), ), number=10, ratio=5.0) mdb.models['FootingModel'].parts['soil4'].generateMesh() mdb.models['FootingModel'].rootAssembly.regenerate() mdb.models['FootingModel'].rootAssembly.Instance(dependent=ON, name='footing-1' , part=mdb.models['FootingModel'].parts['footing']) mdb.models['FootingModel'].rootAssembly.translate(instanceList=('footing-1', ), vector=(0.0, 0.0, 2.0)) # Save mdb.models['FootingModel'].StaticStep(initialInc=0.1, maxInc=0.1, maxNumInc= 1000, name='Step-1', nlgeom=ON, previous='Initial') mdb.models['FootingModel'].StaticStep(initialInc=0.1, maxInc=0.1, maxNumInc= 1000, name='Step-2', previous='Step-1') mdb.models['FootingModel'].parts['soil1'].Surface(name='X', side1Faces= mdb.models['FootingModel'].parts['soil1'].faces.getSequenceFromMask(( '[#140 ]', ), )) mdb.models['FootingModel'].parts['soil1'].Surface(name='Y', side1Faces= mdb.models['FootingModel'].parts['soil1'].faces.getSequenceFromMask(( '[#200 ]', ), )) mdb.models['FootingModel'].parts['soil1'].Surface(name='Z', side1Faces= mdb.models['FootingModel'].parts['soil1'].faces.getSequenceFromMask(( '[#803 ]', ), )) mdb.models['FootingModel'].parts['soil2'].Surface(name='X', side1Faces= mdb.models['FootingModel'].parts['soil2'].faces.getSequenceFromMask(( '[#110 ]', ), )) mdb.models['FootingModel'].parts['soil2'].Surface(name='Y', side1Faces= mdb.models['FootingModel'].parts['soil2'].faces.getSequenceFromMask(( '[#404 ]', ), )) mdb.models['FootingModel'].parts['soil2'].Surface(name='Z', side1Faces= mdb.models['FootingModel'].parts['soil2'].faces.getSequenceFromMask(( '[#801 ]', ), )) mdb.models['FootingModel'].parts['soil3'].Surface(name='Z', side1Faces= mdb.models['FootingModel'].parts['soil3'].faces.getSequenceFromMask(( '[#8 ]', ), )) mdb.models['FootingModel'].parts['soil3'].Surface(name='X', side1Faces= mdb.models['FootingModel'].parts['soil3'].faces.getSequenceFromMask(( '[#3 ]', ), )) mdb.models['FootingModel'].parts['soil3'].Surface(name='Y', side1Faces= mdb.models['FootingModel'].parts['soil3'].faces.getSequenceFromMask(( '[#4 ]', ), )) mdb.models['FootingModel'].parts['soil4'].Surface(name='Y', side1Faces= mdb.models['FootingModel'].parts['soil4'].faces.getSequenceFromMask(( '[#10 ]', ), )) mdb.models['FootingModel'].parts['soil4'].Surface(name='X', side1Faces= mdb.models['FootingModel'].parts['soil4'].faces.getSequenceFromMask(( '[#3 ]', ), )) mdb.models['FootingModel'].parts['soil4'].Surface(name='Z', side1Faces= mdb.models['FootingModel'].parts['soil4'].faces.getSequenceFromMask(( '[#8 ]', ), )) - 189 - mdb.models['FootingModel'].rootAssembly.regenerate() mdb.models['FootingModel'].Tie(adjust=ON, constraintEnforcement= SURFACE_TO_SURFACE, master= mdb.models['FootingModel'].rootAssembly.instances['soil1-1'].surfaces['X'], name='X1', positionTolerance=0.0, positionToleranceMethod=SPECIFIED, slave= mdb.models['FootingModel'].rootAssembly.instances['soil2-1'].surfaces['X'], thickness=ON, tieRotations=ON) mdb.models['FootingModel'].Tie(adjust=ON, constraintEnforcement= SURFACE_TO_SURFACE, master= mdb.models['FootingModel'].rootAssembly.instances['soil1-1'].surfaces['Y'], name='Y1', positionTolerance=0.0, positionToleranceMethod=SPECIFIED, slave= mdb.models['FootingModel'].rootAssembly.instances['soil4-1'].surfaces['Y'], thickness=ON, tieRotations=ON) mdb.models['FootingModel'].Tie(adjust=ON, constraintEnforcement= SURFACE_TO_SURFACE, master= mdb.models['FootingModel'].rootAssembly.instances['soil1-1'].surfaces['Z'], name='Z1', positionTolerance=0.0, positionToleranceMethod=SPECIFIED, slave= mdb.models['FootingModel'].rootAssembly.instances['soil3-1'].surfaces['Z'], thickness=ON, tieRotations=ON) mdb.models['FootingModel'].Tie(adjust=ON, constraintEnforcement= SURFACE_TO_SURFACE, master= mdb.models['FootingModel'].rootAssembly.instances['soil2-1'].surfaces['Y'], name='Y2', positionTolerance=0.0, positionToleranceMethod=SPECIFIED, slave= mdb.models['FootingModel'].rootAssembly.instances['soil4-1'].surfaces['X'], thickness=ON, tieRotations=ON) mdb.models['FootingModel'].Tie(adjust=ON, constraintEnforcement= SURFACE_TO_SURFACE, master= mdb.models['FootingModel'].rootAssembly.instances['soil2-1'].surfaces['Z'], name='Z2', positionTolerance=0.0, positionToleranceMethod=SPECIFIED, slave= mdb.models['FootingModel'].rootAssembly.instances['soil3-1'].surfaces['X'], thickness=ON, tieRotations=ON) mdb.models['FootingModel'].Tie(adjust=ON, constraintEnforcement= SURFACE_TO_SURFACE, master= mdb.models['FootingModel'].rootAssembly.instances['soil3-1'].surfaces['Y'], name='Z3', positionTolerance=0.0, positionToleranceMethod=SPECIFIED, slave= mdb.models['FootingModel'].rootAssembly.instances['soil4-1'].surfaces['Z'], thickness=ON, tieRotations=ON) mdb.models['FootingModel'].ContactProperty('IntProp-1') mdb.models['FootingModel'].interactionProperties['IntProp-1'].TangentialBehavior( dependencies=0, directionality=ISOTROPIC, elasticSlipStiffness=None, formulation=PENALTY, fraction=0.005, maximumElasticSlip=FRACTION, pressureDependency=OFF, shearStressLimit=1.0, slipRateDependency=OFF, table=((0.57735, ), ), temperatureDependency=OFF) mdb.models['FootingModel'].interactionProperties['IntProp1'].tangentialBehavior.setValues( dependencies=0, directionality=ISOTROPIC, elasticSlipStiffness=None, formulation=PENALTY, fraction=0.005, maximumElasticSlip=FRACTION, pressureDependency=OFF, shearStressLimit=1.0, slipRateDependency=OFF, table=((0.57735, ), ), temperatureDependency=OFF) mdb.models['FootingModel'].interactionProperties['IntProp-1'].NormalBehavior( - 190 - allowSeparation=ON, constraintEnforcementMethod=DEFAULT, pressureOverclosure=HARD) mdb.models['FootingModel'].SurfaceToSurfaceContactStd(adjustMethod=NONE, clearanceRegion=None, createStepName='Step-1', datumAxis=None, initialClearance=OMIT, interactionProperty='IntProp-1', master= mdb.models['FootingModel'].rootAssembly.instances['footing-1'].surfaces['master'] , name='Int-1', slave= mdb.models['FootingModel'].rootAssembly.instances['soil1-1'].surfaces['slave'] , sliding=FINITE, thickness=ON) mdb.models['FootingModel'].rootAssembly.Set(faces= mdb.models['FootingModel'].rootAssembly.instances['soil21'].faces.getSequenceFromMask(('[#60 ]', ), ), name='xbound') mdb.models['FootingModel'].DisplacementBC(amplitude=UNSET, createStepName= 'Initial', distributionType=UNIFORM, fieldName='', localCsys=None, name= 'xb', region=mdb.models['FootingModel'].rootAssembly.sets['xbound'], u1=SET , u2=UNSET, u3=UNSET, ur1=UNSET, ur2=UNSET, ur3=UNSET) mdb.models['FootingModel'].rootAssembly.Set(faces= mdb.models['FootingModel'].rootAssembly.instances['soil41'].faces.getSequenceFromMask(('[#20 ]', ), ), name='ybound') mdb.models['FootingModel'].DisplacementBC(amplitude=UNSET, createStepName= 'Initial', distributionType=UNIFORM, fieldName='', localCsys=None, name= 'yb', region=mdb.models['FootingModel'].rootAssembly.sets['ybound'], u1= UNSET, u2=SET, u3=UNSET, ur1=UNSET, ur2=UNSET, ur3=UNSET) mdb.models['FootingModel'].rootAssembly.Set(faces= mdb.models['FootingModel'].rootAssembly.instances['soil31'].faces.getSequenceFromMask(('[#20 ]', ), ), name='zbound') mdb.models['FootingModel'].DisplacementBC(amplitude=UNSET, createStepName= 'Initial', distributionType=UNIFORM, fieldName='', localCsys=None, name= 'zb', region=mdb.models['FootingModel'].rootAssembly.sets['zbound'], u1= UNSET, u2=UNSET, u3=SET, ur1=UNSET, ur2=UNSET, ur3=UNSET) mdb.models['FootingModel'].rootAssembly.Set(faces= mdb.models['FootingModel'].rootAssembly.instances['soil21'].faces.getSequenceFromMask(mask=('[#208 ]', ), )+\ mdb.models['FootingModel'].rootAssembly.instances['soil41'].faces.getSequenceFromMask(mask=('[#4 ]', ), )+\ mdb.models['FootingModel'].rootAssembly.instances['soil11'].faces.getSequenceFromMask(mask=('[#430 ]', ), )+\ mdb.models['FootingModel'].rootAssembly.instances['footing1'].faces.getSequenceFromMask( mask=('[#10 ]', ), ), name='Zsb') mdb.models['FootingModel'].ZsymmBC(createStepName='Initial', localCsys=None, name='Zsym', region=mdb.models['FootingModel'].rootAssembly.sets['Zsb']) mdb.models['FootingModel'].rootAssembly.Set(name='RP1', referencePoints=( mdb.models['FootingModel'].rootAssembly.instances['footing-1'].referencePoints[2], )) mdb.models['FootingModel'].DisplacementBC(amplitude=UNSET, createStepName= 'Initial', distributionType=UNIFORM, fieldName='', localCsys=None, name= 'RP_1', region=mdb.models['FootingModel'].rootAssembly.sets['RP1'], u1=SET, u2=UNSET, u3=SET, ur1=SET, ur2=SET, ur3=SET) - 191 - Phần tính tốn xử lý số liệu from abaqus import * from abaqusConstants import * from caeModules import * from odbAccess import * import sys import string import os import os.path NameCAEin='Footing4soil1m.cae' NameModelin='FootingModel' NameModel='VHM-' openMdb(NameCAEin) ni=10 nj=1 #DISPLACEMENT u2f=(0.001002,0.002048,0.003138,0.004271,0.005447,0.006667,0.007908,0.008953,0 009932,0.011080) ur3f=(0.3,0.3) #Loading path 2D u1f=(0.00500, 0.00500, 0.00500, 0.00500, 0.00500, 0.00624, 0.00671, 0.00812, 0.00812, 0.00882) # Loop over different values of sphere mass k=0 for i in range(0,ni): mdb.openAuxMdb(pathName=NameCAEin) mdb.copyAuxMdbModel(fromName=NameModelin, toName=NameModel) mdb.closeAuxMdb() u_2=u2f[i] u_1=u1f[i] #ASSIGN VELOCITY for j in range(0,nj): #u1ur3=u1ur3f[j] ur_3=ur3f[j] mdb.models['FootingModel'].DisplacementBC(amplitude=UNSET, createStepName= 'Step-1',distributionType=UNIFORM,fieldName='',fixed=OFF, ocalCsys=None , name='U_2', region=mdb.models['FootingModel'].rootAssembly.sets['RP1'], u1=UNSET, u2=-u_2, u3=UNSET, ur1=UNSET, ur2=UNSET, ur3=UNSET) mdb.models['FootingModel'].DisplacementBC(amplitude=UNSET, createStepName= 'Step-2',distributionType=UNIFORM,fieldName='',fixed=OFF, ocalCsys=None , name='U_1', region=mdb.models['FootingModel'].rootAssembly.sets['RP1'], u1=u_1, u2=UNSET, u3=UNSET, ur1=UNSET, ur2=UNSET, ur3=UNSET) mdb.models['FootingModel'].DisplacementBC(amplitude=UNSET, createStepName= 'Step-3', distributionType=UNIFORM, fieldName='', fixed=OFF, localCsys=None,name='UR_3',region=mdb.models ['FootingModel'].rootAssembly.sets['RP1'], u1=UNSET, u2=UNSET, u3=UNSET, ur1=UNSET, ur2=UNSET, ur3=-ur_3) #FIELD AND HISTORY mdb.models['FootingModel'].FieldOutputRequest(createStepName='Step-1', name= 'F-Output-1', variables=('S', 'PE', 'PEEQ', 'PEMAG', 'LE', 'U', 'UT', 'UR', 'RF', 'RT', 'RM', 'CF', 'CSTRESS', 'CDISP')) - 192 - mdb.models['FootingModel'].HistoryOutputRequest(createStepName='Step-1', name= 'H-step1', rebar=EXCLUDE, region= mdb.models['FootingModel'].rootAssembly.sets['RP1'], sectionPoints=DEFAULT, variables=('U2', 'RF2')) mdb.models['FootingModel'].HistoryOutputRequest(createStepName='Step-1', name= 'H-step2', rebar=EXCLUDE, region= mdb.models['FootingModel'].rootAssembly.sets['RP1'], sectionPoints=DEFAULT, variables=('U1','RF1','UR3','RM3')) #NameJobi=NameModel+'-'+str(j) RPTOut_RF1='RF1-'+str(i)+'-'+str(j) RPTOut_RF2='RF2-'+str(i)+'-'+str(j) RPTOut_U1='U1-'+str(i)+'-'+str(j) RPTOut_U2='U2-'+str(i)+'-'+str(j) RPTOut_RM3='RM3-'+str(i)+'-'+str(j) RPTOut_UR3='UR3-'+str(i)+'-'+str(j) NameJob='VHM-0' if os.path.exists(RPTOut_RF2+".rpt"): #&& os.path.exist(fnameRF2+".rpt") && os.path.exist(fnameRM3+".rpt"): pass else: mdb.Job(atTime=None, contactPrint=OFF, description='', echoPrint=OFF, explicitPrecision=SINGLE, getMemoryFromAnalysis=True, historyPrint=OFF, memory=90, memoryUnits=PERCENTAGE, model='FootingModel', modelPrint=OFF, multiprocessingMode=DEFAULT, name=NameJob, nodalOutputPrecision=SINGLE, numCpus=2,numDomains=2, numGPUs=0, parallelizationMethodExplicit=DOMAIN, queue=None, resultsFormat=ODB, scratch='', type=ANALYSIS, userSubroutine='', waitHours=0, waitMinutes=0) #numCpus=4, numDomains=4, mdb.jobs[NameJob].writeInput(consistencyChecking=OFF) mdb.jobs[NameJob].submit(consistencyChecking=OFF) mdb.jobs[NameJob].waitForCompletion() session.viewports['Viewport: 1'].setValues(displayedObject=session.openOdb(name=NameJob+'.odb')) odb = session.odbs[NameJob+'.odb'] ## Open odb-file xy0 = session.XYDataFromHistory(name='RF1 PI: FOOTING-1 N: 133 NSET RP1', odb=odb, outputVariableName='Reaction force: RF1 PI: FOOTING-1 Node 133 in NSET RP1', steps=('Step-1','Step-2','Step-3', ), linkedVpName ='Viewport: 1') #c0 = session.Curve(xyData=xy0) xy1 = session.XYDataFromHistory(name='RF2 PI: FOOTING-1 N: 133 NSET RP1', odb=odb, outputVariableName='Reaction force: RF2 PI: FOOTING-1 Node 133 in NSET RP1', steps=('Step-1','Step-2','Step-3', ), linkedVpName ='Viewport: 1') #c1 = session.Curve(xyData=xy1) xy2 = session.XYDataFromHistory(name='U1 PI: FOOTING-1 N: 133 NSET RP1', odb=odb, outputVariableName='Spatial displacement: U1 PI: FOOTING-1 Node - 193 - 133 in NSET RP1', steps=('Step-1','Step-2','Step-3', ), linkedVpName ='Viewport: 1') #c2 = session.Curve(xyData=xy2) xy3 = session.XYDataFromHistory(name='U2 PI: FOOTING-1 N: 133 NSET RP1', odb=odb, outputVariableName='Spatial displacement: U2 PI: FOOTING-1 Node 133 in NSET RP1', steps=('Step-1','Step-2','Step-3', ), linkedVpName ='Viewport: 1') xy4 = session.XYDataFromHistory(name='RM3 PI: FOOTING-1 N: 133 NSET RP1', odb=odb, outputVariableName='Reaction moment: RM3 PI: FOOTING-1 Node 133 in NSET RP1', steps=('Step-1','Step-2','Step-3', ), linkedVpName ='Viewport: 1') #c2 = session.Curve(xyData=xy2) xy5 = session.XYDataFromHistory(name='UR3 PI: FOOTING-1 N: 133 NSET RP1', odb=odb, outputVariableName='Rotational displacement: UR3 PI: FOOTING-1 Node 133 in NSET RP1', steps=('Step-1','Step-2','Step-3', ), linkedVpName ='Viewport: 1') ... kế nghiên cứu phát triển cơng nghệ Chính vậy, đề tài nghiên cứu “ Nghiên cứu xây dựng đường bao tải trọng giới hạn đập xà lan vùng đồng sông Cửu Long ” nhằm nghiên cứu phương pháp xây dựng đường. .. MỤC ĐÍCH NGHIÊN CỨU Xây dựng đường bao tải trọng giới hạn đập X? ?lan đất yếu chịu tải trọng phức hợp (đứng, ngang mô men) ĐỐI TƯỢNG, PHẠM VI NGHIÊN CỨU 3.1 Đối tượng nghiên cứu Móng đập Xà lan đặt... V0 0,5 (2) Phát triển công cụ (một mô đun phần mềm) để xây dựng họ đường bao tải trọng giới hạn cho đập Xà Lan vùng đồng sơng Cửu Long, phục vụ tính tốn thiết kế sơ kiểm tra ổn định Ý NGHĨA