(Luận văn thạc sĩ hcmute) xây dựng mô hình kết hợp phần tử rời rạc và phần tử chất lỏng nhằm mô phỏng ứng xử của đất dính trong thí nghiệm 3 trục

100 3 0
(Luận văn thạc sĩ hcmute) xây dựng mô hình kết hợp phần tử rời rạc và phần tử chất lỏng nhằm mô phỏng ứng xử của đất dính trong thí nghiệm 3 trục

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ NGUYỄN VĂN BÌNH XÂY DỰNG MƠ HÌNH KẾT HỢP PHẦN TỬ RỜI RẠC VÀ PHẦN TỬ CHẤT LỎNG NHẰM MƠ PHỎNG ỨNG XỬ CỦA ÐẤT DÍNH TRONG THÍ NGHIỆM TRỤC NGÀNH: KỸ THUẬT XÂY DỰNG CƠNG TRÌNH DÂN DỤNG VÀ CÔNG NGHIỆP - 60580208 S K C0 Tp Hồ Chí Minh, tháng 4/2016 Luan van BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ NGUYỄN VĂN BÌNH XÂY DỰNG MƠ HÌNH KẾT HỢP PHẦN TỬ RỜI RẠC VÀ PHẦN TỬ CHẤT LỎNG NHẰM MÔ PHỎNG ỨNG XỬ CỦA ĐẤT DÍNH TRONG THÍ NGHIỆM TRỤC NGÀNH: KỸ THUẬT XÂY DỰNG CƠNG TRÌNH DÂN DỤNG VÀ CƠNG NGHIỆP - 60580208 Tp Hồ Chí Minh, tháng 04/2016 Luan van GVHD: TS TRẦN VĂN TIẾNG MỤC LỤC DANH SÁCH CÁC BẢNG iii DANH SÁCH CÁC HÌNH iv CHƯƠNG 1: TỔNG QUAN .1 1.1 Tính cấp thiết đề tài .1 1.2.Tình hình ngun cứu ngồi nước 1.3 Nhiệm vụ giới hạn đề tài 1.4 Phương pháp nghiên cứu CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Phương pháp phần tử rời rạc 2.2 Mơ hình ứng xử đất dính 2.3 Mơ hình kết hợp chất lỏng - phần tử rời rạc .10 2.3.1 Rời rạc hóa hình học .11 2.3.2 Bài tốn dịng lưu chất nén 12 2.3.3 Lực chất lỏng tác dụng lên phần tử rời rạc 15 2.4 Mô số .18 2.4.1 Vịng lặp tính tốn 18 2.4.2 Điều kiện biên 18 2.4.3 Áp lực lỗ rỗng trung bình 20 CHƯƠNG 3: MÔ PHỎNG SỐ 21 3.1 Mẫu thí nghiệm số 21 3.2 Thí nghiệm nén trục khơng nước UU 26 3.2.1 Địa chất Quận 26 3.2.2 Địa chất Quận 37 3.2.3 Địa chất Quận 55 3.3 Kết luận 67 CHƯƠNG 4: KẾT LUẬN VÀ KIẾN NGHỊ 68 4.1 Kết luận 68 HVTH: NGUYỄN VĂN BÌNH Trang i Luan van GVHD: TS TRẦN VĂN TIẾNG 4.2 Kiến nghị 69 TÀI LIỆU THAM KHẢO 70 HVTH: NGUYỄN VĂN BÌNH Trang ii Luan van GVHD: TS TRẦN VĂN TIẾNG DANH SÁCH CÁC BẢNG Bảng 3.1 : Thơng số đầu vào cho mơ hình dựa địa chất Q9 34 Bảng 3.2 : Thơng số đầu vào cho mơ hình dựa địa chất Q7 51 Bảng 3.3 : Thông số đầu vào cho mơ hình dựa địa chất Q1 64 HVTH: NGUYỄN VĂN BÌNH Trang iii Luan van GVHD: TS TRẦN VĂN TIẾNG DANH SÁCH CÁC HÌNH Hình Sạt lở Sơn Tây (Quảng Ngãi) Hình Sạt lở đất Lạng Sơn Hình Lực tương tác phần tử rời rạc .7 Hình Lực tương tác pháp tuyến hai phần tử rời rạc Hình Tiêu chuẩn Mohr – Coulomb dùng mơ hình Hình Mơ men lăn phần tử tương tác 10 Hình Áp lực nước lỗ rỗng gán nút (a) thể tích nối (b) 11 Hình Lưu lượng vào lỗ rỗng 14 Hình Tính tốn lực thủy tĩnh (a) tính tốn lực nhớt (b), (c) diện tích phần giao phần tử rời rạc mặt chung tứ diện .17 Hình 10 Điều kiện biên thí nghiệm nước .19 Hình 11 Điều kiện biên thí nghiệm khơng nước 19 Hình 12 Mẫu thí nghiệm số 21 Error! Bookmark not defined Hình 13 Phân phối hướng tương tác phần tử rời rạc 22 Hình 14 Sự phân bố áp lực lỗ rỗng thời điểm ban đầu (a) đạt trạng thái ổn định (b) 24 Hình 15 Sự phân bố áp lực lỗ rỗng bên mẫu thể qua mặt cắt ngang qua mẫu .25 Hình 16 Sự phát triển cửa áp lực lỗ rỗng trung bình lưu lượng 25 Hình 17 Kết mơ thí nghiệm nén trục, so sánh với kết thực nghiệm địa chất quận 9: (a) 100kPa, (b) 200kPa (c) 400kPa .35 Hình 18 Quan hệ q-p thí nghiệm nén trục, so sánh với kết thực nghiệm địa chất quận 9, num: kết mô số, exp: kết thực nghiệm 36 Hình 19 Kết mơ thí nghiệm nén trục, so sánh với kết thực nghiệm địa chất Quận 7: (a) 50kPa, (b) 100kPa (c) 200kPa 52 HVTH: NGUYỄN VĂN BÌNH Trang iv Luan van GVHD: TS TRẦN VĂN TIẾNG Hình 20 Quan hệ q-p thí nghiệm nén trục, so sánh với kết thực nghiệm địa chất Quận 7, num: kết mô số, exp: kết thực nghiệm 53 Hình 21 Kết mơ thí nghiệm nén trục, so sánh với kết thực nghiệm địa chất Quận 1: (a) 50kPa, (b) 100kPa (c) 200kPa .65 Hình 22 Quan hệ q-p thí nghiệm nén trục, so sánh với kết thực nghiệm địa chất Quận 1, num: kết mô số, exp: kết thực nghiệm 66 HVTH: NGUYỄN VĂN BÌNH Trang v Luan van GVHD: TS TRẦN VĂN TIẾNG CHƯƠNG 1: TỔNG QUAN 1.1 Tính cấp thiết đề tài Ngày nay, phát triển xã hội dân số, nhu cầu nhà văn phòng ngày tăng cao, cao ốc với hệ tầng hầm sâu không ngừng mọc lên Việc thi công hệ tầng hầm cơng trình thường xãy cố trượt lở thành hố đào, ổn định thành hố, bục đáy hố đào gây ảnh hưởng đến cơng trình xây dựng cơng trình lân cận Thiệt hại cố gây không nhỏ người vật chất Bên cạnh đó, cố sạt lở đất Việt Nam vào mùa mưa xãy với tần suất ngày nhiều Dọc theo đường Trường Sơn liên tiếp xảy vụ sạt lở vào mùa mưa làm gián đoạn giao thông Gần vụ sạt lở Quốc lộ (Hoà Bình) làm người chết, sạt lở đường lên núi Cấm (An Giang) làm người chết tắc đường nhiều ngày, Lào Cai làm 15 người chết Chiều ngày 16/10/2013 xã Tiên Cảnh, huyện Tiên Phước, tỉnh Quảng Nam xãy vụ sạt lở làm cha thiệt mạng, chiều tối ngày 22/11, vụ sạt lở núi nghiêm trọng xảy địa bàn huyện Sơn Tây (Quảng Ngãi) vùi lấp quan hành … Hình Sạt lở Sơn Tây (Quảng Ngãi) http://www.baomoi.com/sat-lo-nui-dat-da-vui-lap-3-co-quan-hanh-chinh-o-quangngai/c/12492271.epi HVTH: NGUYỄN VĂN BÌNH Trang Luan van GVHD: TS TRẦN VĂN TIẾNG Sạt lở đất Lạng Sơn làm công nhân thiệt mạng xảy ngày 17/9/2014 Hình Sạt lở đất Lạng Sơn http://vnexpress.net/tin-tuc/thoi-su/sat-lo-dat-o-lang-son-lam-6-nguoi-tu-vong3080660.html Các cố thi cơng móng cơng trình hay các cố sạt lở đất vào mùa mưa ảnh hưởng nghiêm trọng đến tài sản tính mạng người cơng tác quản lý xây dựng, quản lý rủi ro thiên tai Do đó, đề tài đề xuất xây dựng mơ hình ứng xủa đất dính bão hịa nước phương pháp phần tử rời rạc (DEM) phần tử chất lỏng có khả ứng dụng để tính tốn mơ nhằm dự đốn cố xãy từ đưa biện pháp phịng ngừa hợp lý, có biện pháp ứng phó kịp thời 1.2.Tình hình ngun cứu nước Nghiên cứu thực nghiệm ứng xử vật liệu đất, đá tác dụng nhiều loại tải trọng khác thực nhiều giới (Sulem et al 2005, Tien et al 1988,…) Tuy nhiên đất loại vật liệu đa dạng, phức tạp, tính chất thay đổi theo điều kiện địa lý Hơn nữa, vấn đề xảy với đất đa dạng phá hủy trượt lở, phá hủy đẩy nổi, hóa lỏng, vấn đề sức HVTH: NGUYỄN VĂN BÌNH Trang Luan van GVHD: TS TRẦN VĂN TIẾNG chịu tải, vấn đề lún, vấn đề tương tác đất cơng trình … Do nghiên cứu thực nghiệm ứng xử vật liệu đất đá q trình khơng ngừng Về mặt tính tốn mơ số, tác giả giới chủ yếu thực mô ứng xử đất sử dụng phương pháp phần tử hữu hạn Phương pháp khơng thích hợp để mô phá hủy đất Với phát triển cơng nghệ máy tính, phương pháp phần tử rời rạc đời ngày phát triển, ứng dụng rộng rãi tính tốn mơ số ứng xử đất đá (M Hakuno 1995, R.R.O Bonilla 2004, R Shafipour et al 2008, Lui et al 2003, Zhang et al 2006, Huang et al 2008, Alonso et al 2008, Mustafa Alsaleh et al 2010,…) Tuy nhiên nghiên cứu mô với mơ hình 2D tập trung vào số tốn ứng xử đất, hay mơ với mơ hình 3D áp dụng cho loại đất có độ bão hịa nước 30% (L Scholtes 2008) Ở Việt Nam, phương pháp phần tử rời rạc phương pháp mẽ, vài tác giả tiếp cận với phương pháp (Nguyễn Tiến Cường et al 2012, Trần et al 2016) Các tác giả nghiên cứu chủ yếu cho bê tông sử dụng luật ứng xử có sẵng để mơ tốn thực tế Mơ ứng xử khơng nước đất dính bão hịa nước sử mơ hình rời rạc 3D mơ hình chất lỏng vấn đề mà luận văn đặt để giải HVTH: NGUYỄN VĂN BÌNH Trang Luan van GVHD: TS TRẦN VĂN TIẾNG ncb->engines.begin();vector::iterator itLast = ncb->engines.end();for ( ;itFirst!=itLast; ++itFirst ){ if ( ( *itFirst )->getClassName() == "TriaxialCompressionEngine" ){ cout checkpoint("Triangulating"); UpdateVolumes ( ncb ); timingDeltas>checkpoint("Update_Volumes"); ///Compute flow and and forces here flow->GaussSeidel ( ); timingDeltas->checkpoint("Gauss-Seidel"); // flow->MGPost(flow->T[flow>currentTes].Triangulation()); flow->tess_based_force=tess_based_force; flow->Compute_Forces ( ); timingDeltas>checkpoint("Compute_Forces"); ///End Compute flow and forces CGT::Finite_vertices_iterator vertices_end = flow->T[flow>currentTes].Triangulation().finite_vertices_end (); Vector3r f;int id; for ( CGT::Finite_vertices_iterator V_it = flow->T[flow>currentTes].Triangulation().finite_vertices_begin (); V_it != vertices_end; V_it++ ) HVTH: NGUYỄN VĂN BÌNH Trang 79 Luan van GVHD: TS TRẦN VĂN TIẾNG { id = V_it->info().id(); for ( int y=0;yinfo().forces ) [y]; ncb->forces.addForce ( id, f ); //ncb->forces.addTorque(id,t); } timingDeltas->checkpoint("Applying Forces"); Real time = Omega::instance().getSimulationTime(); int j = Omega::instance().getCurrentIteration(); // int j = Omega::instance().getSimulationTime(); char file [50]; string consol = flow->key+"%d_Consol"; const char* keyconsol = consol.c_str(); sprintf (file, keyconsol, j); char *g = file; timingDeltas->checkpoint("Writing cons_files"); MaxPressure = flow>PermeameterCurve(flow->T[flow->currentTes].Triangulation(), g, time); if ( Omega::instance().getCurrentIteration() % PermuteInterval == ) { Update_Triangulation = true; } timingDeltas->checkpoint("Storing Max Pressure"); // } } } } void FlowEngine::Oedometer_Boundary_Conditions() { flow->boundary ( flow->y_min_id ).flowCondition=0; flow->boundary ( flow->y_max_id ).flowCondition=0; flow->boundary ( flow->y_min_id ).value=0; flow->boundary ( flow->y_max_id ).value=0; triaxialCompressionEngine->wall_left_activated=0; triaxialCompressionEngine->wall_right_activated=0; triaxialCompressionEngine->wall_front_activated=0; triaxialCompressionEngine->wall_back_activated=0; triaxialCompressionEngine->wall_top_activated=1; triaxialCompressionEngine->wall_bottom_activated=1; HVTH: NGUYỄN VĂN BÌNH Trang 80 Luan van GVHD: TS TRẦN VĂN TIẾNG triaxialCompressionEngine>sigma_iso=(triaxialCompressionEngine->sigma_iso)*loadFactor; } void FlowEngine::Build_Triangulation ( Scene* ncb, double P_zero ) { if (first) { flow->currentTes=0; flow->Vtotalissimo=0; flow->Vsolid_tot=0; flow>Vporale=0; flow->Ssolid_tot=0; flow->SLIP_ON_LATERALS=slip_boundary; flow->key = triaxialCompressionEngine->Key; flow->TOLERANCE=Tolerance; } else { if (compute_K) {K = flow->Sample_Permeability ( flow->T[flow->currentTes].Triangulation(), flow->x_min, flow>x_max, flow->y_min, flow->y_max, flow->z_min, flow->z_max, flow->key );} flow->currentTes=!flow->currentTes; } currentTes=flow->currentTes; flow->x_min = 1000.0, flow->x_max = -10000.0, flow->y_min = 1000.0, flow->y_max = -10000.0, flow->z_min = 1000.0, flow>z_max = -10000.0; AddBoundary ( ncb ); Triangulate ( ncb ); cout k_factor = permeability_factor; flow->K_exp = K_exp; //flow->Compute_Permeability (); flow->Compute_Permeability_Darcy(); if (first) { CGT::Finite_cells_iterator cell_end = flow->T[flow>currentTes].Triangulation().finite_cells_end(); for ( CGT::Finite_cells_iterator cell = flow>T[flow->currentTes].Triangulation().finite_cells_begin(); cell != cell_end; cell++ ){cell->info().dv() = 0; cell->info().p() = 0;} if (compute_K) { K = flow->Sample_Permeability ( flow->T[flow->currentTes].Triangulation(), flow->x_min, flow>x_max, flow->y_min, flow->y_max, flow->z_min, flow->z_max, flow->key );} Oedometer_Boundary_Conditions(); first=!first; HVTH: NGUYỄN VĂN BÌNH Trang 81 Luan van GVHD: TS TRẦN VĂN TIẾNG } else { flow->Interpolate ( flow->T[!flow->currentTes], flow->T[flow->currentTes] ); Update_Triangulation=!Update_Triangulation; } flow->Initialize_pressures( P_zero ); Initialize_volumes ( ncb ); flow->DisplayStatistics (); } void FlowEngine::AddBoundary ( Scene* ncb ) { cout bodies ) { if ( !b ) continue; if ( b->shape->getClassIndex() == Bx_Index ) { Box* w = YADE_CAST ( b->shape.get() ); // const body_id_t& id = b->getId(); Real center [3], Extent[3]; for ( int h=0;hstate>pos[h]; Extent[h] = w->extents[h];} // ); flow->AddBoundingPlanes ( center, Extent, id flow->x_min = ( flow->x_min, center[0]- wall_thickness); flow->x_max center[0]+wall_thickness); flow->y_min wall_thickness); flow->y_max center[1]+wall_thickness); flow->z_min wall_thickness); flow->z_max center[2]+wall_thickness); } } = max ( flow->x_max, = ( flow->y_min, center[1]= max ( flow->y_max, = ( flow->z_min, center[2]= max ( flow->z_max, flow->AddBoundingPlanes(); } void FlowEngine::Triangulate ( Scene* ncb ) { shared_ptr sph ( new Sphere ); HVTH: NGUYỄN VĂN BÌNH Trang 82 Luan van GVHD: TS TRẦN VĂN TIẾNG int Sph_Index = sph->getClassIndexStatic(); int contator = 0; FOREACH ( const shared_ptr& b, *ncb->bodies ) { if ( !b ) continue; if ( b->shape->getClassIndex() == Sph_Index ) { Sphere* s=YADE_CAST ( b->shape.get() ); const body_id_t& id = b->getId(); Real rad = s->radius; Real x = b->state->pos[0]; Real y = b->state->pos[1]; Real z = b->state->pos[2]; flow->T[flow->currentTes].insert(x, y, z, rad, id); contator+=1; } } double SectionArea = ( flow->x_max - flow->x_min ) * ( flow->z_max-flow->z_min ); // cout cout cout cout cout cout cout cout info().dv() = ( Volume_cell_single_fictious ( cell,ncb )-cell->info().volume() ) /deltaT; cell->info().volume() = Volume_cell_single_fictious ( cell,ncb ); }break; case ( ) : { cell->info().dv() = ( Volume_cell ( cell,ncb )-cell->info().volume() ) /deltaT; cell->info().volume() = Volume_cell ( cell,ncb ); }break; } } } Real FlowEngine::Volume_cell_single_fictious ( CGT::Cell_handle cell, Scene* ncb ) { Real V[3][3]; HVTH: NGUYỄN VĂN BÌNH Trang 84 Luan van GVHD: TS TRẦN VĂN TIẾNG int b=0; int w=0; Real Wall_point[3]; for ( int y=0;yvertex ( y )->info().isFictious ) ) { const shared_ptr& sph = Body::byId ( cell->vertex ( y )->info().id(), ncb ); for ( int g=0;gstate>pos[g]; w++; } else { b = cell->vertex ( y )->info().id(); const shared_ptr& wll = Body::byId ( b , ncb ); for ( int i=0;iboundaries[b].p[i]; Wall_point[flow->boundaries[b].coordinate] = wll->state->pos[flow->boundaries[b].coordinate]-wall_thickness; } } double v1[3], v2[3]; for ( int g=0;gboundaries[b].normal ) * ( 0.33333333333* ( V[0][flow->boundaries[b].coordinate]+ V[1][flow->boundaries[b].coordinate]+ V[2][flow>boundaries[b].coordinate] ) - Wall_point[flow>boundaries[b].coordinate] ); // cout info().id(); const shared_ptr& wll = Body::byId ( b[j] , ncb ); for ( int i=0;iboundaries[b[j]].p[i]; Wall_point[j][flow>boundaries[b[j]].coordinate] = wll->state->pos[flow>boundaries[b[j]].coordinate] - wall_thickness; j++; } else if ( first_sph ) { const shared_ptr& sph1 = Body::byId ( cell->vertex ( g )->info().id(), ncb ); for ( int k=0;kstate->pos[k]; first_sph=false;} } else { const shared_ptr& sph2 = Body::byId ( cell->vertex ( g )->info().id(), ncb ); for ( int k=0;kstate->pos[k]; } } } AS[flow->boundaries[b[0]].coordinate]=BS[flow>boundaries[b[0]].coordinate] = Wall_point[0][flow>boundaries[b[0]].coordinate]; AT[flow->boundaries[b[1]].coordinate]=BT[flow>boundaries[b[1]].coordinate] = Wall_point[1][flow>boundaries[b[1]].coordinate]; for ( int h=0;hboundaries[b[0]].coordinate]- CS[flow>boundaries[b[0]].coordinate]; Real Volume = ( CGAL::cross_product ( v1,v2 ) *flow>boundaries[b[0]].normal ) *h; HVTH: NGUYỄN VĂN BÌNH Trang 86 Luan van GVHD: TS TRẦN VĂN TIẾNG // cout info().id(); const shared_ptr& wll = Body::byId ( b[j] , ncb ); for ( int i=0;iboundaries[b[j]].p[i]; Wall_point[j][flow>boundaries[b[j]].coordinate] = wll->state->pos[flow>boundaries[b[j]].coordinate]-wall_thickness; j++; } else { const shared_ptr& sph = Body::byId ( cell->vertex ( g )->info().id(), ncb ); for ( int k=0;kstate->pos[k];} } } AS[flow->boundaries[b[0]].coordinate]= AT[flow>boundaries[b[0]].coordinate]= AW[flow>boundaries[b[0]].coordinate]= Wall_point[0][flow>boundaries[b[0]].coordinate]; AT[flow->boundaries[b[1]].coordinate]= Wall_point[1][flow>boundaries[b[1]].coordinate]; AW[flow->boundaries[b[2]].coordinate]= Wall_point[2][flow>boundaries[b[2]].coordinate]; CGT::Vecteur v1 ( AS[0]-AT[0],AS[1]-AT[1],AS[2]-AT[2] ); CGT::Vecteur v2 ( AS[0]-AW[0],AS[1]-AW[1],AS[2]-AW[2] ); CGT::Vecteur h ( AT[0] - A[0], AT[1] - A[1], AT[2] - A[2] ); Real Volume = ( CGAL::cross_product ( v1,v2 ) ) * h; HVTH: NGUYỄN VĂN BÌNH Trang 87 Luan van GVHD: TS TRẦN VĂN TIẾNG // cout vel[1]; // // dz[m] = b->state->vel[2]; HVTH: NGUYỄN VĂN BÌNH Trang 88 Luan van GVHD: TS TRẦN VĂN TIẾNG // // // // ( v[m] ) [0] = b->state>pos[0]; // // ( v[m] ) [1] = b->state>pos[1]; // // ( v[m] ) [2] = b->state>pos[2]; // // // // } // // // // CGT::Vecteur v1 ( ( v[1] ) [0]v[0] ) [0], ( v[1] ) [1]- ( v[0] ) [1], ( v[1] ) [2]- ( v[0] [2] ); // // CGT::Vecteur v2 ( ( v[2] ) [0]v[1] ) [0], ( v[2] ) [1]- ( v[1] ) [1], ( v[2] ) [2]- ( v[1] [2] ); // // // // // // CGT::Vecteur V = 0.33333333333*CGT::Vecteur ( dx[0]+dx[1]+dx[2], dy[0]+dy[1]+dy[2], dz[0]+dz[1]+dz[2] ); // // CGT::Vecteur S = CGAL::cross_product ( v1,v2 ) /2.f; // // // // CGT::Somme ( grad_u, V, S ); // // } // // cell->info().dv() = grad_u.Trace(); // } // else // { ( ) ( ) // if ( triple_fictious ) // { // double deltaT = 1; // cell->info().dv() = (Volume_cell_double_fictious(cell,ncb)-cell>info().volume())/deltaT; // cell->info().volume() = Volume_cell_double_fictious(cell,ncb); /* int id_real_local=0,id_real_global=0,V_fict=0; double pos[3], surface=0; for ( int g=0;gvertex ( g )->info().isFictious ) { id_real_local=g; id_real_global=cell->vertex ( g )->info().id(); } } const shared_ptr& sph = Body::byId ( id_real_global, ncb ); for ( int i=0;istate->pos[i]; for ( int j=0;jvertex ( j )->info().isFictious ) { CGT::Boundary b = flow->boundaries[cell->vertex ( j )->info().id() ]; const shared_ptr& wall = Body::byId ( cell->vertex ( j )->info().id(), ncb ); surface = flow->surface_external_triple_fictious ( pos, cell, b ); Real Vs = sph->state->vel[b.coordinate]; Real Vw = wall->state->vel[b.coordinate]; Real Vrel = Vs - Vw; cell->info().dv() += Vrel*surface; } }*/ // } // if ( double_fictious ) // { // double deltaT = 1; // cell->info().dv() = (Volume_cell_double_fictious(cell,ncb)-cell>info().volume())/deltaT; // cell->info().volume() = Volume_cell_double_fictious(cell,ncb); // double A[3], AS[3], AT[3]; // double B[3], BS[3], BT[3]; // bool first=true, first_boundary=true; // Vector3r Vel_A, Vel_B, Vel_W1, Vel_W2; // // CGT::Boundary b1, b2; // // for ( int g=0;gvertex ( g )>info().isFictious && first ) // { // const shared_ptr& sph1 = Body::byId // ( cell->vertex ( g )->info().id(), ncb ); // for ( int y=0;ystate>pos[y]; AS[y]=A[y]; AT[y]=A[y];} // Vel_A = sph1->state->vel; // // first = false; // } // else if ( !cell->vertex ( g )>info().isFictious ) // { // const shared_ptr& sph2 = Body::byId // HVTH: NGUYỄN VĂN BÌNH Trang 90 Luan van GVHD: TS TRẦN VĂN TIẾNG ( cell->vertex ( g )->info().id(), ncb ); // for ( int y=0;yvertex ( g )->point() ) [y]; BS[y]=B[y]; BT[y]=B[y];} // // Vel_B = sph2->state->vel; // } // else if ( first_boundary ) // { // b1 = flow->boundaries[cell>vertex ( g )->info().id() ]; // const shared_ptr& wll1 = Body::byId // ( cell->vertex ( g )->info().id() , ncb ); // // Vel_W1=wll1->state->vel; // first_boundary=false; // } // else // { // b2 = flow->boundaries[cell>vertex ( g )->info().id() ]; // const shared_ptr& wll2 = Body::byId // ( cell->vertex ( g )->info().id() , ncb ); // // Vel_W2=wll2->state->vel; // } // } // // AS[b1.coordinate]=BS[b1.coordinate]=b1.p[b1.coordinate]; // AT[b2.coordinate]=BT[b2.coordinate]=b2.p[b2.coordinate]; // // double Vmoy[3]; // // for ( int y=0;yinfo().dv() += CGT::Vecteur ( Vmoy[0],Vmoy[1],Vmoy[2] ) *Surface; // // for ( int y=0;yinfo().dv() += CGT::Vecteur ( Vmoy[0],Vmoy[1],Vmoy[2] ) *Surface; // // for ( int y=0;yinfo().dv() += CGT::Vecteur ( Vmoy[0],Vmoy[1],Vmoy[2] ) *Surface; // // for ( int y=0;yinfo().dv() += CGT::Vecteur ( Vmoy[0],Vmoy[1],Vmoy[2] ) *Surface; // } // if ( single_fictious ) // { // double deltaT = 1; // cell->info().dv() = (Volume_cell_single_fictious(cell,ncb)-cell>info().volume())/deltaT; // cell->info().volume() = Volume_cell_single_fictious(cell,ncb); // } // } HVTH: NGUYỄN VĂN BÌNH Trang 92 Luan van S K L 0 Luan van

Ngày đăng: 27/12/2023, 04:40