Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 243 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
243
Dung lượng
7,85 MB
Nội dung
LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu riêng tơi Các số liệu, kết nêu luận án trung thực chưa cơng bố cơng trình khác Việc tham khảo nguồn tài liệu thực rõ ràng theo quy định Nguyễn Hải Hà LỜI CẢM ƠN Trước tiên, xin chân thành gửi lời cảm ơn tới giúp đỡ quý báu Cơ sở Đào tạo - Viện Khoa học Thủy lợi Việt Nam, Viện Thủy Công quan quản lý tạo điều kiện thuận lợi, giúp đỡ thực luận án Tôi xin bày tỏ lòng biết ơn sâu sắc tới GS.TS Trần Đình Hòa TS Trần Văn Thái trực tiếp hướng dẫn, ln cổ vũ, có nhiều đóng góp q báu tạo điều kiện cho tơi hồn thành luận án Cảm ơn GS.TS Trương Đình Dụ người thầy đặt móng phát triển cơng nghệ Đập xà lan Tôi xin cảm ơn tới GS.TS Nguyễn Quốc Dũng trực tiếp góp ý tạo điều kiện cho tơi q trình thực Tơi xin cảm ơn tới GS.TS Trịnh Minh Thụ góp ý cho tơi hướng nghiên cứu trình nghiên cứu sau đại học Tôi xin cảm ơn tới tập thể Trung tâm Cơng trình Đồng ven biển Đê điều, Viện Thủy công tạo điều kiện cho hồn thành luận án Tơi xin cảm ơn nhà khoa học, bạn bè đồng nghiệp có góp ý q báu cho luận án hồn thiện Tơi xin gửi lời cảm ơn tới người thân yêu đại gia đình tơi ln bên tơi tiếp cho tơi động lực để hồn thành luận án -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 3.1 Đối tượng nghiên cứu .3 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 .6 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 .8 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 toá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 toá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 .7 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 .9 Hình 1.4 - ĐXL hộp cơng trình cống Phước Long 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 tố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 =30 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 =30 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, =30 86 Hình 3.27 - Biểu đồ bao TTGH với V/Vo=0.45, =30 87 Hình 3.28 - Đường bao TTGH với V/Vo=0,05-0,5 với =30 87 Hình 3.29 - So sánh đường bao TTGH với V/Vo=0,3 so với kết Ngo Tran Hình 3.30 - So sánh đường bao TTGH với kết Ngo Tran [50] Hình 3.31 - Mơ hình tính tốn Hình 3.32 Hình 3.33 Hình 3.34 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 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 Hình 3.38 - Kiểm định mơ hình toán với B= 1,0m, cấp V Hình 3.39 - So sánh thí nghiệm mơ hình với B= 1,0m, cấp V Hình 3.40 - So sánh thí nghiệm mơ hình với B= 1,0m, cấp V3 Hình 3.41 - So sánh thí nghiệm mơ hình với B= 0,7m, cấp V Hình 3.42 - So sánh thí nghiệm mơ hình với B= 0,7m, cấp V Hình 3.43 – Quan hệ tỷ lệ B/L hệ số Nc Hình 3.44 - Biểu đồ bao TTGH V V0 H V0 Hình 3.45 - Biểu đồ bao TTGH V V0 H V0 Hình 3.46 - So sánh đường TTGH V V0 H V0 với =30 24,3 Hình 3.47 - Trình tự gia tải đứng (w) xoay (B) 0 Hình 3.48 - Biểu đồ bao TTGH V V0 M BV0 với =30 Hình 3.49 - Biểu đồ bao TTGH V V0 M BV0 với =24,3 Hình 3.50 - So sánh đường bao TTGH V V0 M BV0 Hình 3.51 - Biểu đồ bao TTGH với V V =0.3, 0 Hình 3.52 - Biểu đồ bao TTGH với V/Vo=0.45, =30 Hình 3.53 - Đường bao TTGH V V0 , H V0 , M BV0 với góc =30 Hình 3.54 - Đường bao TTGH V V0 , H V0 , M BV0 với góc =30 Hình 3.55 - Đường bao TTGH V V0 , H V0 , M BV0 với góc =24,3 Hình 3.56 - Biểu đồ bao TTGH V V0 , H V0 , M BV0 với góc =24,3 Hình 4.1 - Chính diện ĐXL dầm Hình 4.2 - Cắt ngang ĐXL dầm Hình 4.3 - Chính diện ĐXL phao hộp Hình 4.4 - Cắt ngang ĐXL phao hộp 10m Hình 4.5 - Tải trọng tác dụng lên ĐXL dầm theo phương dòng chảy - Chia lư - Chuyển - Chuyển - viii - Hình 4.6 - Tải trọng tác dụng lên ĐXL theo phương vuông 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 -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( -182elemCode=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= -184mdb.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( -190allowSeparation=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['soil11'].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) u1f=(0.00500, 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... 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