Chủ Nhật, 25 tháng 11, 2018

JSON là gì. Cấu trúc chuỗi JSON

(Nguồn:  freetuts.net)

Thông thường khi làm các ứng dụng website thì bạn sẽ lưu dữ liệu vào một hệ quản trị cơ sở dữ liệu nào đó như là MYSQL, SQL SERVER, tuy nhiên nếu sử dụng những ứng dụng này thì bắt buộc hệ thống phải cài đặt nó. Bây giờ giả sử bạn đang muốn xây dựng một ứng dụng nhỏ, gọn và đơn giản thì sao? Nếu sử dụng các hệ quản trị CSLD trên thì không hay lắm vì phải cài đặt nhiều thứ nên gây phiền hà cho người dùng. Nếu như lúc trước thì người ta sẽ chọn sql lite hay XML để lưu trữ, nhưng hiện nay thì có một chuẩn CSDL khác nữa đó là JSON. Vậy JSON là gì thì chúng ta sẽ tìm hiểu qua các phần dưới đây.

1. JSON là gì?

JSON là chữ viết tắt của Javascript Object Notation, đây là một dạng dữ liệu tuân theo một quy luật nhất định mà hầu hết các ngôn ngữ lập trình hiện nay đều có thể đọc được, bạn có thể sử dụng lưu nó vào một file, một record trong CSDL rất dễ dàng. JSON có định dạng đơn giản, dễ dàng sử dụng và truy vấn hơn XML rất nhiều nên tính ứng dụng của nó hiện nay rất là phổ biến, theo tôi thì trong tương lai tới trong các ứng dụng sẽ sử dụng nó là đa số.
Ví dụ dưới đây mình định nghĩa một chuỗi JSON lưu trữ thông tin cá nhân của mình như sau, đây là ví dụ quan trọng nhất của phần  json là gì này.
1
2
3
4
5
6
{
    "username" : "thehalfheart",
    "email" : "thehalfehart@gmail.com",
    "website" : "freetuts.net",
    "title" : "Học lập trình với JSON"
}
Như vậy cú pháp của JSON rất đơn giản là mỗi thông tin dữ liệu sẽ có 2 phần đó là key và value, điều này tương ứng trong CSDL là tên field và giá trị của nó ở một record nào đó. Tuy nhiên nhìn qua thì đơn giản nhưng nếu ta mổ xẻ nó ra thì có một vài điều như sau:
  • Chuỗi JSON được bao lại bởi dấu ngoặc nhọn {}
  • Các keyvaluecủa JSON bắt buộc phải đặt trong dấu nháy kép {"}, nếu bạn đặt nó trong dấu nháy đơn thì đây không phải là một chuỗi JSON đúng chuẩn. Nên trường hợp trong value của bạn có chứa dấu nháy kép thì hãy dùng dấu (\) để đặt trước nó nhé, ví dụ học \"json là gì\" tại website freetuts.net.
  • Nếu có nhiều dữ liệu (nhiều cặp key => value) thì ta dùng dấu phẩy (,) để ngăn cách
  • Các key của JSON bạn nên đặt chữ cái không dấu hoặc số, dấu _ và không có khoảng trắng., ký tự đầu tiên không nên đặt là số. Điều này rất giống với nguyên tắc đặt tên biến trong PHP.
Tới đây bạn đã trả lời được cho câu hỏi JSON là gì và tại sao lại sử dụng JSON rồi đấy.

2. Cấu trúc chuỗi JSON

Bây giờ chúng ta sẽ làm một vài ví dụ liên quan đến JSON, vì chúng ta chưa sử dụng JSON kết hợp với các ngôn ngữ lập trình nên trong các ví dụ dưới đây chỉ ở mức độ là xây dựng chuỗi JSON đúng chuẩn. Thông qua các ví dụ này các bạn sẽ biết được cấu trúc một chuỗi JSON là gì.
Ví dụ 1: Có 3 sinh viên  gồm các thông tin sau: Nguyễn Văn Cường - 21 tuổi, Nguyễn Văn Kính - 22 tuổi, Nguyễn Văn Chính - 23 tuổi. Hãy xây dựng chuỗi JSON lưu trữ thông tin danh sách sinh viên đó.1
Nếu xem ví dụ ở phần 1 JSON là gì thì bạn thấy không thể lưu được, vì nếu lưu thì ta sẽ lưu thế này:
1
2
3
4
5
6
7
8
{
    "sinhvien1_ten" : "Nguyễn Văn Cường",
    "sinhvien1_tuoi" : "21 Tuổi",
    "sinhvien2_ten" : "Nguyễn Văn Kính",
    "sinhvien2_tuoi" : "22 Tuổi",
    "sinhvien3_ten" : "Nguyễn Văn Chính",
    "sinhvien4_tuoi" : "22 Tuổi"
}
Nhìn vào không hay đúng không nào, vì thông thường mỗi đối tượng chúng ta sẽ gom lại một nơi lưu trữ để tiện cho việc tìm kiếm và phân chia, nhưng chuỗi này không lưu được như vậy. Bây giờ ta sẽ tìm hiểu một cách khác nhé.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[
    {
        "name" : "Nguyễn Văn Cường",
        "age" : "21 tuổi"
    },
    {
        "name" : "Nguyễn Văn Kính",
        "age" : "22 tuổi"
    },
    {
        "name" : "Nguyễn Văn Chính",
        "age" : "23 tuổi"
    }
]
Nhìn gọn hơn rồi đúng không nào, chúng ta sử dụng dấu ([]) để gom nhóm lại, và bên trong là danh sách các chuỗi JSON con được cách nhau bởi dấu phẩy (,). Lưu ý là các bạn phải tuân theo những quy tắc JSON mà phần 1 JSON là gì đã trình bày nhé.
Ví dụ 2: Giả sử chúng ta có bài toán như sau, ở một trường đại học lưu trữ điểm của sinh viên, mỗi sinh viên sẽ có một mã số sinh viên  sẽ đăng ký học các tín chỉ khác nhau, hãy tổ chức cấu trúc chuỗi JSON để lưu trữ danh sách sinh viên và danh sách các môn học của sinh viên đó.2
Giả sử:
  • Nguyễn Văn Cường có ID là sv0001
  • Nguyễn Văn Kính có ID là sv0002
Bài này hơi khó rồi đấy nhỉ, các bạn tham khảo lời giải sau và rút ra bài học nhé. 
1
2
3
4
5
6
7
8
9
10
{
    "sv0001" : {
        "toan" : "Môn Toán",
        "ly" : "Môn Lý"
    },
    "sv0002" : {
        "toan" : "Môn Toán",
        "anh" : "Môn Anh"
    }
}
Các bạn thấy khác với ví dụ 1 mình không sử dụng dấu [] để bao ngoài cùng mà thay bằng cặp dấu {}, tại sao? Đơn giản là vì cặp [] dùng để bao các chuỗi JSON con, mà chuỗi JSON thì bắt buộc có cặp {} nên trong trường hợp trên không sử dụng được (các cặp con ở dạng key => {value})

3. Lời kết

Tuân theo quy luật cấu trúc chuỗi JSON ở 2 vi dụ trên bạn sẽ tạo được chuỗi JSON đúng chuẩn và không bị lỗi, kết hợp với phần 1 JSON là gì nữa là tuyệt vời. Các bài tiếp theo chúng ta sẽ tìm hiểu các áp dụng JSON kết hợp với các ngôn ngữ như Javascript và PHP.

Tài liệu liên quan

  1. [Python cơ bản thường dùng trong công việc] Phần 7 : Xử lý file JSON
  2. Diff JSON and JSON-like structures in Python Website: http://zoomeranalytics.com

Thứ Bảy, 17 tháng 11, 2018

Những yêu cầu cơ bản đối với đề tài nghiên cứu khoa học

Nghiên cứu khoa học là hoạt động quan trọng của quá trình đào tạo bậc đại học; là một trong những biện pháp chủ yếu để nâng cao chất lượng đào tạo; là sự kết hợp giữa đào tạo nhân lực, bồi dưỡng nhân tài và là một hình thức tự đào tạo tốt cho cả thầy và trò ở trường đại học.

Một đề tài nghiên cứu khoa học, một hệ thống đề tài nghiên cứu khoa học hay một chương trình nghiên cứu khoa học đều phải đáp ứng đủ bốn điều kiện:
-  Tính mục đích: Một đề tài nghiên cứu khoa học phải có mục đích rõ ràng là nhằm giải quyết một hay nhiều mâu thuẫn, có thể là mâu thuẫn trong lí luận hoặc thực tiễn.
- Tính mới: Thể hiện ở chỗ vấn đề chưa được giải quyết hoặc giải quyết chưa đầy đủ. Tính mới cần được hiểu là, cho dù đã được phát hiện mới, nhưng người nghiên cứu vẫn còn tiếp tục tìm kiếm những phát hiện mới hơn. Tính mới được chia làm ba cấp độ:
+ Hoàn toàn mới: Khám phá và chứng minh một vấn đề khoa học mà từ trước đến nay không được giải quyết.
+ Mới: Khái quát hóa, hệ thống hóa các tri thức, các kinh nghiệm đã có để hình thành lí luận, phương pháp, công nghệ mới … đem lại hiệu quả cao hơn trong nhận thức và hoạt động thực tiễn trong điều kiện mới.
+ Mới ở phạm vi nhất định: Cách chứng minh mới, luận giải sâu sắc hơn, bổ sung hoàn chỉnh thêm, cụ thể hóa hoặc vận dụng vào điều kiện mới một vấn đề khoa học đã được giải quyết về cơ bản.
- Tính cấp thiết: Vấn đề đặt ra cần được giải quyết vì nó đáp ứng nhu cầu cho hoạt động nhận thức và thực tiễn.
- Tính khả thi: Đây chính là điều kiện thực tế để hoàn thành đề tài nghiên cứu. Đề tài nghiên cứu có thể được hoàn thành theo mục tiêu, nhiệm vụ, kế hoạch đã xác định khi hội tụ đủ điều kiện khách quan và chủ quan.
Tính mục đích, tính mới là điều kiện cần, trong đó tính mới là yêu cầu cơ bản. Bốn điều kiện này gắn bó mật thiết với nhau, một đề tài khoa học không thể thiếu bất kỳ một điều kiện nào.
Một đề tài nghiên cứu khoa học của học viên (sinh viên) phải đáp ứng đủ bốn yêu cầu: tính mục đích, tính mới, tính cấp thiết và tính khả thi như một đề tài nghiên cứu khoa học nói chung. Nhưng vì là những người mới nghiên cứu nên cần chọn đề tài phù hợp với trình độ của học viên (sinh viên), có khối lượng công việc vừa phải để học viên (sinh viên) có thể hoàn thành được trong khi vẫn phải hoàn thành nhiệm vụ học tập.
Đề tài nghiên cứu khoa học của học viên (sinh viên) có thể chia ra làm hai loại:
Củng cố và mở rộng hiểu biết lí thuyết
Với loại hình này, học viên (sinh viên) có thể đọc sách ở thư viện, tập hợp các thông tin để viết thành các chuyên đề với mức độ chuyên sâu khác nhau.
Vận dụng lí thuyết để giải quyết các vấn đề thực tiễn
Với loại hình này, học viên (sinh viên) cần kiên trì, đầu tư nhiều thời gian và công sức để giải quyết nhiệm vụ nghiên cứu. Học viên (sinh viên) nghiên cứu vừa phải đọc tài liệu để tìm phương pháp giải quyết vấn đề, vừa phải tiến hành làm các thí nghiệm để theo dõi lấy số liệu, phân tích số liệu, lập các bảng biểu và viết báo cáo.
Xuất phát từ yêu cầu thực tế, một đề tài nghiên cứu khoa học của học viên (sinh viên) đại học cần đáp ứng những yêu cầu cơ bản sau:
1. Phù hợp với khả năng
2. Có mục tiêu rõ ràng
3. Đảm bảo tính khoa học
4. Đảm bảo tính khả thi
5. Sát với thực tiễn nghề nghiệp
6. Có phương pháp nghiên cứu đúng đắn, có tác dụng nâng cao chất lượng đào tạo
7. Có phát hiện, khám phá mới
ThS Nguyễn Hồng Dương (HVKHQS)

Thứ Tư, 14 tháng 11, 2018

Github căn bản và nâng cao | Github là gì?


(Nguồn: https://freetuts.net/hoc-git/github-can-ban-va-nang-cao)


Github không còn xa lạ với các bạn lập trình viên nữa phải không nào? Đây có thể xem là một kỹ năng bắt buộc các bạn phải có khi tham gia vào các dự án có nhiều thành viên tham gia. Trước đây chúng ta có phần mềm cũng khá nổi tiếng đó là SVN dùng để quản lý mã nguồn, tuy nhiên bây giờ công cụ git đang trở nên nổi tiếng, vì vậy có nhiều hệ thống như github, gitlab, ... ra đời nhằm giải quyết vấn đề lưu trữ và quản lý mã nguồn trực tuyến, nghĩa là bạn không cần phải xây dựng một remote repository mà đã có các hệ thống đó giúp bạn.

Github là gì?

Như trên, Github là một website dùng để quản lý mã nguồn trực tuyến, dịch vụ này sử dụng Git làm nền tảng. Có rất nhiều bạn nghĩ rằng Git là Github, điều này hoàn toàn sau nhé các bạn. Git là hệ thống quản lý mã nguồn phân tán, nó cung cấp các lệnh giúp bạn quản lý mã nguồn dễ dàng hơn. Còn github là một ứng dụng giúp bạn xây dựng các remote repository, các chức năng của nó đều phát triển dựa vào thư viện của Git.
Ví dụ khi bạn làm một dự án và cần lưu trữ trên remote repo, lúc này bắt buộc bạn phải mua server và xây dựng remote trên đó, điều này khá tốn chi phí và có khi lại không bảo mật. Thay vào đó bạn sử dụng Github để tạo remote repo, sau đó các thành viên sẽ liên kết tới remote này để làm việc.
Ngoài các chức năng quản lý mã nguồn thì github còn cung cấp khá nhiều dịch vụ khác, chẳng hạn trong dự án có những lỗi cần phải chỉnh sửa thì bạn chỉ định người làm, lúc này bạn sử dụng chức năng quản lý ISSUE của github. Ngoài ra mỗi commit bạn có thể bình luận trên đó rất dễ dàng => Đây chính là điểm mạnh bổ sung của Git.

Tại sao nên sử dụng Github

Câu hỏi đặt ra là tại sao nên sử dụng github mà không phải tự xây dựng một remote server? Chắc chắn bạn đã có câu trả lời trong đầu rồi phải không nào :)
Như ta biết, chi phí để xây dựng remote server chắc chắn là không hề rẻ, vì vậy chỉ có các công ty lớn thì may ra mới tự mình xây dựng, còn các cá nhân thì nên sử dụng một dịch vụ miễn phí nào đó. Nói là miễn phí nhưng thực ra github vẫn có các gói có phí, và đương nhiên gói có phí sẽ có nhiều tính năng hơn miễn phí.
Github cung cấp nhiều tính năng giúp bạn quản lý dự án tốt hơn, leader có thể tạo các issue, tạo các comment trong mỗi commit, tạo feedback cho một đoạn code trong một file bất kì để các thành viên theo dõi và chỉnh sửa đúng theo yêu cầu.
Bảo mật hơn, mình chắc chắn là hoạt động ở github sẽ bảo mật hơn nếu trình độ của bạn không đủ để tạo và quản lý một remote server.
Tính cộng đồng, có rất nhiều người sử dụng github nên bạn có thể dễ dàng đặt các câu hỏi, hướng dẫn cũng khá là cụ thể.
Theo itviec.com có ba lợi ích chính mà Github mang lại



Tài liệu liên quan
  1. Fork là gì? Hướng dẫn fork repository trên Github
  2. Hướng dẫn sử dụng GitHub với GitHub Desktop
  3. Awesome-CAE
  4. Git notes
  5. How To Use Git Hooks To Version-Control Your Excel VBA Code

Thứ Ba, 13 tháng 11, 2018

Phương pháp không lưới SPH - ứng dụng trong mô phỏng số va chạm phá hủy cục bộ của kết cấu thép thành mỏng


(Nguồn: Tạp chí giao thông)

TS. Nguyễn Hữu Thuấn
ThS. Nguyễn Thạch Bích
ThS. Lê Hà Linh    
Trường Đại học Giao thông vận tải
Người phản biện:
TS. Ngô Văn Minh
Bài báo trình bày các kết quả nghiên cứu mô hình hóa va chạm cục bộ của kết cấu thép thành mỏng. Phương pháp tính toán không lưới (động lực học hạt làm mịn - SPH) được áp dụng để mô phỏng ứng xử của kết cấu thép thành mỏng bởi vật va chạm với vận tốc cao. Trường ứng suất, biến dạng và sự phát triển vết nứt của kết cấu thép được mô tả trong suốt thời gian xảy ra va chạm.
Từ khóa: Va chạm cục bộ, kết cấu thép thành mỏng, tính toán không lưới, trường ứng suất.
Abstract: This paper presents the results of studies modeling the local impact of a thin steel structure. The method SPH (smoothed particle dynamics) was applied to simulate the material behaviour at high speed of objects collision. The yield stress, deformation and fracture development of steel structure described during the collision.
Keywords: Impact, thin steel structure, smoothed particle dynamics, yield stress.

1. Mở đầu
Hiện nay, kết cấu thép thành mỏng được sử dụng rất rộng rãi trong xây dựng dân dụng, công nghiệp cũng như trong các công trình giao thông. Trong quá trình xây dựng và khai thác, các kết cấu thép có thể chịu các tác động va chạm cục bộ không mong muốn. Đối với các công trình giao thông, chúng ta có thể gặp phải các sự cố va chạm đối với các kết cấu thép như dầm cầu, trụ cầu, bản mặt cầu… Các va chạm này có thể gây ra bởi các vật va chạm như xe cộ, tàu thuyền (Hình 1.1)… Các sự cố này có thể ảnh hưởng nghiêm trọng đến sự an toàn, tuổi thọ của kết cấu công trình, đặc biệt trong trường hợp mà các vật va chạm có tốc độ lớn như các phương tiện lưu thông trên đường cao tốc. Tuy nhiên, việc tính toán, dự đoán, mô phỏng ứng xử của các kết cấu trong quá trình va chạm là rất phức tạp, chịu ảnh hưởng của nhiều yếu tố như vật liệu của kết cấu bị va chạm và va chạm, vận tốc của vật va chạm, vị trí, thời điểm va chạm… Hiện nay, trên thế giới, việc nghiên cứu tính toán, mô phỏng các va chạm này đã được tiến hành bằng nhiều phương pháp khác nhau, trong đó đặc biệt sử dụng các phần mềm thương mại như phần mềm LS-DYNA, ANSYS (Hình 1.2)... Các phần mềm này chủ yếu dựa trên phương pháp phần tử hữu hạn (PTHH) để tính toán mô phỏng va chạm của kết cấu.
Mặc dù hiện nay phương pháp PTHH được sử dụng rộng rãi trong tính toán kết cấu, tuy nhiên nó cũng tồn tại một số những nhược điểm như trong trường hợp kết cấu có biến dạng lớn, hay việc mô phỏng sự phá hủy cục bộ, xảy ra trong thời gian ngắn của kết cấu. Trong trường hợp này, nếu sử dụng phương pháp PTHH, cần phải chia lại lưới phần tử liên tục, việc này làm tăng nhiều thời gian tính toán và khả năng gây ra lỗi trong quá trình tính toán. Vì vậy, trong trường hợp này, để mô phỏng va chạm phá hủy cục bộ của kết cấu thép thành mỏng, phương pháp không lưới SPH đã được áp dụng.

Hình 1.1: Va chạm giữa xe ô tô và dầm cầu Hình 1.2: Mô phỏng trong phần mềm LS-DYNA

Phương pháp không lưới SPH là một phương pháp tính toán kết cấu được gây dựng độc lập vào năm 1977 bởi Monaghan Gingold [1-3] và Lucy [4], ban đầu để giải quyết các bài toán trong lĩnh vực thiên văn học [1]. Tuy nhiên, ngày nay nó đã được sử dụng rộng rãi trong các lĩnh vực tính toán khác như cơ học chất lỏng [5-7] (Hình 2.1), va chạm kết cấu [8]...

2. Phương pháp tính toán


Hình 2.1: Mô phỏng dòng chảy sử dụng phương pháp SPH

2.1. Cơ sở của phương pháp SPH

Phương pháp không lưới SPH chia kết cấu tính toán thành một nhóm các nút phần tử (hạt). Mỗi nút phần tử đại diện bởi vị trí, khối lượng, vận tốc, ứng suất... Mỗi hạt có một vùng ảnh hưởng của nó lên các hạt khác. Ảnh hưởng này của hạt lên các hạt khác được diễn tả bằng một hàm toán học hình chuông. Mức độ ảnh hưởng phụ thuộc vào khoảng cách từ hạt đó đến hạt đang xét. Ảnh hưởng là lớn nhất tại trung tâm và bằng không tại biên của vùng ảnh hưởng.
Cơ sở của phương pháp là giải bài toán tích phân của hàm số lõi W(r), với vị trí r trong miền tính toán W. 





(1)
 Để đơn giản trong tính toán, người ta đã đưa ra công thức gần đúng để tính các giá trí trị vật lý cho mỗi hạt, dựa trên tổng các giá trị của các hạt khác trong vùng ảnh hưởng.


(2)
Gradien của hàm số f được tính toán bởi công thức:




(3)


 2.2. Các công thức toán học trong phương pháp SPH
Hàm số lõi                                                   
  
Chiều dài ảnh hưởng của phần tử hạt







(4)






(5)

Trọng lượng riêng phần tử hạt
                               (6)
 Gia tốc hạt                                                 
   (7)
 Năng lượng hạt                                           

      (8)
Trong đó: r - Khoảng cách giữa hai hạt i và j; h - Chiều dài ảnh hưởng của phần tử hạt; ρi - Trọng lượng riêng của hạt i; mj - Khối lượng của hạt j; vivj - Vận tốc của hạt i và j; σi, σj- Ứng suất của hạt i và j; ei - Năng lượng của hạt i.
3. Áp dụng
3.1. Số liệu mô phỏng
Phương pháp không lưới SPH được áp dụng để giải bài toán mô phỏng phá hủy cục bộ trong va chạm của tấm thép thành mỏng, với các thông số mô phỏng như Bảng 3.1. Một phần mềm tính toán được lập trình trên ngôn ngữ Matlab đã được thực hiện để giải bài toán va chạm với các thông số giả thiết trên. Trong đó, vật va chạm được mô phỏng bởi 1.600 phần tử... Vật bị va chạm được mô phỏng bởi 8.000 phần tử, vùng va chạm sử dụng các phần tử hạt có chiều dày ban đầu nhỏ hơn (0,25mm) so với các khu vực khác (1,00mm) để thể hiện rõ trường ứng suất, biến dạng và vết nứt của vùng bị va chạm. Thời gian tính toán trong mô phỏng bắt đầu từ khi vật va chạm tiếp xúc với bề mặt của vật bị va chạm. Các tính chất cơ, lý của vật liệu (thép) trong mô phỏng tính toán được cho trong Bảng 3.1:

Bảng 3.1. Các thông số sử dụng trong mô phỏng
3.2. Kết quả
Các kết quả mô phỏng vùng va chạm cục bộ của vật va chạm vào tấm thép được thể hiện trong Hình 3.1, Hình 3.2 và Hình 3.3... Trong đó,



Hình 3.1 thể hiện biến dạng và ứng suất của vùng bị va chạm theo thời gian trong trường hợp vận tốc va chạm 200m/s. Tấm thép ban đầu bị cong vênh, biến dạng, sau đó bị xuyên thủng.



Hình 3.2 thể hiện kết quả mô phỏng vết nứt phá hủy của tấm thép trong vùng va chạm. 
Kết quả mô phỏng SPH cũng được so sánh với kết quả tính toán bằng PP PTHH của Dey.S et al. [9], như trong Hình 3.3.

 a - Thời gian xuyên thủng                                b - Vận tốc vật va chạm sau khi xuyên

Hình 3.3: So sánh mô phỏng SPH với phương pháp PTHH, v = 200m/s
4. Kết luận và kiến nghị
Nghiên cứu đã cho thấy rằng, việc áp dụng phương pháp không lưới SPH trong tính toán, mô phỏng va chạm của kết cấu là phù hợp. Trong đó, ứng xử của kết cấu như trường ứng suất, biến dạng trong khu vực va chạm được thể hiện rõ. Đặc biệt, phương pháp này cho phép mô phỏng ứng xử đàn - dẻo của vật liệu kết cấu, sự xuất hiện và phát triển vết nứt phá hủy của kết cấu bị va chạm trong trường hợp vật va chạm có năng lượng lớn. Kết quả ví dụ mô phỏng cho thấy sự tương đồng giữa mô phỏng bằng phương pháp SPH với phương pháp PTHH truyền thống. Nghiên cứu mang đến một hướng nghiên cứu mới để giải quyết các bài toán va chạm, phá hủy cục bộ đối với các vật liệu và kết cấu trong các công trình giao thông và công trình xây dựng nói chung. Tuy vậy, các kết quả nghiên cứu cũng cần phải được kiểm chứng và so sánh với các kết quả thí nghiệm trong tương lai.
[1]. R. A. Gingold et J. J. Monaghan (1977), Smoothed particle hydrodynamics-theory and application to non-spherical  stars, Monthly Notices of the Royal Astronomical Society, vol. 181, pp.375-389. 
[2]. J. Monaghan, Smoothed particle hydrodynamics (2005), Reports on Progress in Physics, vol. 68, nº 8, pp. 1703-1759. 
[3]. J.  J. Monaghan (2006),  Smoothed  particle  hydrodynamic  simulations  of  shear flow,  Monthly Notices of the Royal Astronomical Society, vol. 365, nº 1, pp. 199-213. 
[4]. L. B. Lucy (1977), A numerical approach to the testing of the fission hypothesis,  The Astronomical Journal, vol. 82, nº 12, pp. 1013-1024. 
[5]. S. Shao et E. Y. M. Lo (2003), Incompressible SPH method  for  simulating Newtonian and non-Newtonian flows with a free surface, Advances in Water Resources, vol. 26, nº 7, pp. 787-800. 
[6]. A. V. Potapov, M. L. Hunt et C. S. Campbell (2001), Liquid-solid flows using smoothed particle hydrodynamics and  the discrete element method, Powder Technology, vol. 116, nº 2, pp. 204-213. 
[7]. Nguyen Huu Thuan, Benoit Cosson, Marie France LACRAMPE (8/2014), Numerical analysis of reactif polymer flow using smoothed particle method and experimental, Express Polym Lett; ISSN 1788-618X.
[8]. F. Xu, Y. Zhao, R. Yan et T. Furukawa (2013), Multidimensional discontinuous SPH method and its  application to metal  penetration  analysis, J.Numer. meth. Engng, vol. 93, pp. 1125-1146.
[9]. Dey S., Borvik T., Hopper S. and Langseth M. (2007), On the influence of constutuve relation in projectile impact of steel palates, International Journal of Impact Engineering, pp.464-486. 


TÀI LIÊU LIÊN QUAN
  1. SPHysics - SPH Free-surface Flow Solver
  2. Phần mềm tính toán thủy động lực học theo phương pháp không lưới SPH
  3. The Smoothed Particle Hydrodynamics Method vs. Finite Volume Numerical Methods

Thứ Hai, 22 tháng 10, 2018

MATLAB CFD Toolbox

MATLAB CFD Toolbox

CFDTool, short for Computational Fluid Dynamics Toolbox, is based on FEATool Multiphysics and has been specifically designed and developed to make fluid flow and coupled heat transfer simulations both easier and more enjoyable. Setting up and performing CFD simulations in MATLAB has never before been as simple and convenient as with CFDTool. Chi tiết xem ở đây.


Featuring

  • Completely stand-alone and self-contained MATLAB CFD simulation toolbox
  • Seamless GUI integration with the OpenFOAM CFD Solver
  • One-click installation with fully integrated and easy to use Graphical User Interface (GUI)
  • Built-in geometry and design tools with STL CAD file import
  • Automatic unstructured grid generation, and mesh import from several different formats
  • Pre-defined equations and boundary conditions for incompressible fluid flows and heat transfer (1D, 2D, axisymmetry, and swirl flows)
  • Stationary and time dependent, linear and non-linear flow solvers
  • Built-in postprocessing and visualization
  • Support for general expressions and custom MATLAB functions in equation, boundary, and postprocessing expressions.

Thứ Bảy, 20 tháng 10, 2018

Finite Element Course

(Source: mycourses.aalto.fi)

The course starts on Wednesday the 2nd of November with a rather long day full of Finite Elements. Please be there at 8:30, as we will discuss important issues related to course structure, grading, course organisation, exams and similar.

We will use primarily the Zienkiewicz, Taylor & Zhu book: "The Finite Element Method: Its Basis and Fundamentals", 7th edition. It is available in the library.  Occasionally we will also use material from the Vol 2. of the book, that is The Finite Element Method for Solid and Structural Mechanics. The previous editions of the book are also available in the library: 6th edition Vol 16th edition Vol 2 ,  5th edition Vol 1. and Vol 2





Generally if you happen to have older edition of the books, it is also useful.
We will not cover the whole book during the course - it is more of a reference than a textbook. Additionally, during the course we will often talk about issues which are a bit more practical and more relevant to application and to geomechanics - which may not be included in the books above. 
Most other books on Finite Element Method are fine - and there is a wealth of books on FEM both in Aalto library and elsewhere. 
The book selected is perhaps a bit traditional, but an accurate and rigorous source of information is useful. On the other hands lectures and especially exercises will be more oriented towards giving you the understanding of the numerical methods and to focus on most important aspects (as well as common mistakes) of Finite Element Method in design.

Thứ Tư, 17 tháng 10, 2018

Xuất bảng Excel sang Autocad

Các bảng khối lượng trong Excel khi cần chuyển sang AutoCad có nhiều cách. Môt trong các phương pháp là nhúng trực tiếp Exel (hoặc Word)  trong AutoCad, tuy nhiên việc này thường dẫn tới file nặng và dễ bị lỗi khi nhiều file cùng nhúng. Cách khác là copy thành các đối tượng Entities trong AutoCad, cách này thường lỗi font chữ và căn chỉnh dòng cột. File VBA Excel được lập để dễ dạng xuất bảng Excel sang AutoCad, Font chữ sử dụng trong Excel như nào thì sang AutoCad sử dụng font tương đương. 
Link tải file: ở đây

Sau khi mở Excel, người sử dụng chỉ có thể chèn hoặc xóa dòng, lưu ý không thay đổi số cột trong bảng




Sau khi thiết lập xong, click Export và vào AutoCad để chọn vị trí đặt bảng, 





Lưu ý: Trước khi click Export, cần mở file AutoCad muốn chèn bảng.

Thứ Bảy, 13 tháng 10, 2018

VBA Excel lấy tọa độ polyline trên AutoCad

Việc chuyển đổi dữ liệu qua lại giữa AutoCAD và Excel là vô cùng cần thiết. Dưới đây là Code VBA Excel giúp lấy dữ liệu tọa độ các đỉnh Polyline để nhập và tùy chỉnh trên Excel. Link tải file: ở đây

File này đang thiết lập cho Autocad 2010. Nếu bạn dùng phiên bản  khác của AutoCad thì cần thiết lập lại bằng cách nhấn tổ hợp phím Alt+F11 vào của sổ MS Visual Basic For Application > References> Browse để chọn lại AutoCad xxxx.tlb trong thư mục cài đặt Autocad với xxxx là phiên bản AutoCad đang sử dụng.




Click vào Chọn Polyline, tab lựa chọn Polyline hiện lên:



Bạn click OK và vào Autocad chọn Polyline muốn lấy tọa độ

Sau khi chọn xong, tọa độ được cập nhật vào file Excel với 2 cột X và Y
Lưu ý: Tọa độ Polyline lấy với trục tọa độ tổng thể (World) trong AutoCad.