Tải bản đầy đủ - 0 (trang)
Chương 2 TỔNG QUAN VỀ BỘ CHƯƠNG TRÌNH MÃ NGUỒN MỞ OPENFOAM

Chương 2 TỔNG QUAN VỀ BỘ CHƯƠNG TRÌNH MÃ NGUỒN MỞ OPENFOAM

Tải bản đầy đủ - 0trang

36



2.1.2. Sự ra đời và phát triển của OpenFOAM

OpenFOAM được tạo ra bởi Henry Weller vào năm 1989 với tên gọi "FOAM" ở

Imperial College, London và được phát hành bởi OpenOffice của Henry Weller, Chris

Greenshields và Mattijs Janssens vào tháng 12 năm 2004. Kể từ đó, OpenFOAM đã

tiếp tục được quản ly và phát triển với các phiên bản mới được phát hành ra công

chúng mỗi năm.

OpenFOAM được Henry Weller tạo ra để phát triển một nền tảng mô phỏng tổng

thể mạnh mẽ và linh hoạt hơn so với FORTRAN. Điều này dẫn đến sự lựa chọn của

C++ như ngôn ngữ lập trình, do tính mơ-đun và các tính năng hướng đối tượng của

nó. Hrvoje Jasak làm nghiên cứu sinh Tiến sỹ ở Imperial College từ năm 1993 đến

năm 1996, phát triển các sơ đồ bậc hai bị chặn để ước lượng sai số cho FOAM. Năm

2000, Jasak tham gia cùng với Weller trong một nỗ lực thương mại hóa FOAM thông

qua công ty Nabla Ltd. Năm 2004, Nabla Ltd và Henry Weller, Chris Greenshields và

Mattijs Janssens thành lập OpenCFD Ltd để phát triển và phát hành OpenFOAM.

Đồng thời, Jasak đã thành lập công ty tư vấn Wikki Ltd và duy trì mở rộng tấm mở

rộng, sau đó đổi tên thành Foam-extend.

Vào ngày 8 tháng 8 năm 2011, OpenCFD đã được Silicon Graphisc

International (SGI) mua lại. Đồng thời, bản quyền của OpenFOAM được chuyển giao

cho Quỹ OpenFOAM, một tổ chức phi lợi nhuận mới thành lập, quản ly OpenFOAM

và phân phối nó cho cộng đồng. Vào ngày 12 tháng 9 năm 2012, Tập đồn ESI đã

cơng bố việc mua lại OpenCFD Ltd từ SGI. Trong năm 2014, Weller và Greenshields

rời ESI Group và tiếp tục phát triển và quản ly OpenFOAM, thay mặt Quỹ

OpenFOAM, tại CFD Direct. CFD Direct phát triển OpenFOAM với định danh dựa

trên chuỗi (ví dụ 5.0), trong khi nhóm ESI phát triển độc lập phiên bản OpenFOAM

với định danh theo ngày phát hành (v1806).

2.1.5. Một số phần mềm và giao diện GUI có tích hợp với OpenFOAM

Do bộ chương trình OpenFOAM phải làm việc trên cửa sổ dòng lệnh nên có

nhiều bất tiện. Để hạn chế nhược điểm này, nhiều phần mềm và các giao diện đã được

viết ra để tích hợp với bộ chương trình OpenFOAM nhằm đem CFD đến những cơng

cụ tính tốn dễ sử dụng hơn. Một số phần mềm như vậy:











HELYX-OS[15]

iconCFD[20]

SimFlow[50]

FEAToll [16]













SimScale[51]

SwiftBlock[38]

SwiftSnap[39]

VisualCFD[36]



37



2.2. Cấu trúc của chương trình OpenFOAM

OpenFOAM là tập hợp của khoảng 250 chương trình được xây dựng trên một bộ

sưu tập của hơn 100 thư viện (mô-đun). Mỗi ứng dụng thực hiện một nhiệm vụ cụ thể

trong một bài toán CFD [35]. Các chương trình của OpenFOAM được tổ chức thành 3

khối ứng dụng (xem hình 2.3 dưới đây [35]):

Khối tiền xử lý (Pre-processing) gồm các cơng cụ mơ hình hóa hình học và chia

lưới;

Khối giải (Solving) gồm các bộ giải chuẩn được cung cấp sẵn hoặc do người

dùng tự xây dựng và bổ sung thêm vào thư viện của OpenFOAM;

Khối phân tích, thể hiện lời giải (Post-processing) gồm các thư viện công cụ

phục vụ việc biểu diễn, hiển thị kết quả tính tốn.



Hình 2.3. Cấu trúc tổng thể của bộ chương trình OpenFOAM

2.2.1. Các nhóm bộ giải chuẩn

Các bộ giải (Solver) được xây dựng để trở nên thân thiện với các phương trình và

thuật tốn tương ứng. Người dùng khơng cần phải có hiểu biết sâu sắc về lập trình

hướng đối tượng của C++ để viết một bộ giải nhưng nên hiểu về nguyên ly ẩn sau các

đối tượng. các mô tả chi tiết về các bộ giải được lưu trữ tại trang web

https://cpp.openfoam.org

Bộ chương trình OpenFOAM cung cấp sẵn nhiều bộ giải tính toán trong nhiều

lĩnh vực khác nhau. Các bộ giải được xây dựng theo các nhóm lĩnh vực khác nhau

dưới đây:

• Basic CFD codes: gồm 3 tính tốn CFD: Bộ giải phương trình laplace cho một



đại lượng vơ hướng; Bộ giải trường dòng chảy thế và bộ giải Giải phương trình

lan truyền của một biến vơ hướng

• Incompressible flow: Gồm nhiều bộ giải tính tốn CFD cho dòng chảy khơng nén

được



38



• Compressible flow: Gồm các bộ giải tính tốn CFD cho dòng chảy nén được

• Multiphase flow: Gồm các bộ giải tính tốn CFD cho dòng chảy có sự xuất hiện



















nhiều pha khác nhau

Direct numerical simulation (DNS): Gồm các chương trình giải trực tiếp động

học dòng chảy

Combustion: Các bộ giải tính toán sự đốt cháy

Heat transfer và buoyancy-driven flows: Các bộ giải tính toán sự trao đổi nhiệt và

đối lưu

Particle-tracking flows: Các bộ giải tính toán chuyển động của dòng hạt

Discrete methods: Các bộ giải tính tốn dòng chảy theo phương pháp hạt

Electromagnetics: Các bộ giải tính toán điện từ

Stress analysis of solids: Các bộ giải phân tích ứng suất của kết cấu rắn

Finance: Bộ giải tính tốn tài chính



Hầu hết các chương trình tính tốn dòng chảy trong OpenFOAM sử dụng một

trong các thuật tốn PISO (Pressure-Implicit Split-Operator), SIMPLE (Semi-Implicit

Method for Pressure-Linked Equations) tương tự các phần mềm CFD khác, hoặc một

sơ đồ kết hợp của cả hai sơ đồ trên PIMPLE. Sơ đồ PIMPLE thực thi thêm vòng lặp

ghép nối phương trình tích hợp của động lượng và bảo tồn khối lượng. Hình 2.4 dưới

đây [35] mơ tả sơ đồ thuật tốn PIMPLE được ghép nối từ sơ đồ thuật toán PISO và

SIMPLE. PISO và PIMPLE được sử dụng cho các bài toán biến đổi theo thời gian

trong khi SIMPLE dùng cho các bài tốn ổn định (steady-state).



Hình 2.4. Sơ đồ thuật tốn PIMPLE



39



2.2.2. Cơng cụ tiện ích

2.2.2.1. Các nhóm cơng cụ tiện ích

Bộ chương trình OpenFOAM cũng có sẵn nhiều cơng cụ phục vụ các cơng việc

mơ hình hóa và tính tốn động lực học dòng chảy CFD, dưới đây là những nhóm cơng

cụ có sẵn [35, 37]:

• Pre-processing: Các cơng cụ phục vụ việc tiền xử ly dữ liệu

• Mesh generation: Các cơng cụ tạo lưới tính tốn

• Mesh conversion: Các cơng cụ chuyển đổi lưới từ các phần mềm CFD khác sang

















lưới dùng cho OpenFOAM và ngược lại

Mesh manipulation: Các cơng cụ sửa lưới

Post-processing: Các công cụ phân tích, xử ly kết quả tính

Post-processing data converters: Các công cụ chuyển đổi dữ liệu sau phân tích,

xử ly.

Surface mesh tools: Các công cụ thao tác trên lưới mặt

Parallel processing: Các công cụ thực hiện tính tốn song song hóa

Thermophysical-related utilities: Các tiện ích liên quan tới tính chất nhiệt ly

Miscellaneous utilities: Các tiện ích phụ tạp khác



2.2.2.2. Môt số công cụ chuyển đổi định dạng lưới

Người dùng có thể sử dụng các lưới được dựng từ các cong cụ khác và chuyển về

định dạng lưới theo kiểu của OpenFOAM bằng các công cụ có sẵn của bộ chương

trình dưới đây:

fluentMeshToFoam – Chuyển lưới định dạng .msh của Fluent, làm việc với cả

lưới 2D và 3D;

starToFoam – chuyển lưới của STAR-CD/PROSTAR.

gambitToFoam – chuyển lưới .neu của GAMBIT;

ideasToFoam – chuyển lưới định dạng ANSYS .ans của I-DEAS;

cfx4ToFoam – chuyển lưới định dạng .geo của CFX;

2.2.3. Lưới tính toán và các loại điều kiện biên được sử dụng trong OpenFOAM

2.2.3.1. Lưới tính toán sử dụng trong OpenFOAM

Lưới tính toán của OpenFOAM là lưới 3D với các phần tử có dạng hình khối.

OpenFOAM hỗ trợ các phần tử lưới có hình dạng bất kỳ. Điều này khơng có được

trong các cơng cụ và phần mềm khác [35]. Hình 2.5 dưới đây [35] là mơ tả các hình

dạng của phần tử lưới với cách đánh số các đỉnh tương tứng.



40



Hình 2.5 Hình dạng của phần tử lưới với cách đánh số các đỉnh tương ứng

Lưới tính toán sử dụng cho OpenFOAM là lưới 3D với các phần tử ơ lưới có

hình dạng khối. OpenFOAM có sẵn cơng cụ chia lưới khối blockMesh cho các lưới

đơn giản. Đối với các bài tốn có dạng biên hình học phức tạp, công cụ

snappyHexMesh cho phép tạo lưới phù hợp với biên dạng của bài tốn (xem Hình 2.6

[35,37] dưới đây).



41



Hình 2.6. Lưới Block và snappy của OpenFOAM

Phần tử lưới của OpenFOAM có thể chứa một số khơng giới hạn các mặt. và

mỗi mặt có thể có số lượng khơng giới hạn các cạnh cũng như bất kỳ hạn chế nào liên

hết với nó được gọi trong OpenFOAM là polyMesh. Kiểu lưới này cho phép tự do

hoàn toàn trong việc tạo lưới và chỉnh sửa khi các miền hình học phức tạp và thay đổi

theo thời gian.

Vì các phần tử lưới của OpenFOAM là dạng khối, nên khi làm việc với các bài

toán 1D và 2D hay bài toán đối xứng trục, lưới tính toán được áp dụng các điều kiện

biên đặc biệt cho các hướng pháp tuyến với mặt phẳng được quan tâm. Cụ thể, với bài

toán 1D và 2D, kiểu empty được áp dụng và với bài toán đối xứng trục, kiểu

wedge được áp dụng [37].

2.2.3.2. Các loại điều kiện biên cơ bản sử dụng trong OpenFOAM

Những điều kiện biên cơ bản có sẵn trong OpenFOAM được nêu tóm tắt dưới

đây. Mỗi loại được đặt tên theo đặc điểm của loại điều kiện biên đó [35].

Gọi Q là một tham số dòng chảy tại biên. Giá trị của Q được gán theo loại điều

kiện biên được áp dụng.

-



fixedValue: giá trị tham số Q tại biên được xác định bằng một giá trị cụ thể.



-



fixedGradient: Giá trị tham số Q tại biên được xác định theo gradient của Q.



-



zeroGradient: Gradient theo hướng pháp tuyến của tham số Q được gán bằng 0.



-



calculated: trường giá trị của tham số Q được tính tốn từ các trường đói tượng

khác.



-



mixed: hỗn hợp



42



-



fixedValue/ fixedGradient điều kiện phụ biên thuộc vào tỉ lệ với giá trị tham

chiếu: 0≤giá trị tỉ lệ ≤1; Ở đây 1 tương ứng với Q = giá trị tham chiếu, 0 tương

ứng với gradient tham chiếu



-



directionMixed: Điều kiện biên hỗn hợp theo hướng, với valueFraction, để chấp

nhận cả các điều kiện khác theo hướng pháp tuyến hoặc tiếp tuyến của một

trường véc tơ đối tượng, ví dụ: fixedValue ở hướng tiếp tuyến, zeroGradient ở

hướng pháp tuyến.



OpenFOAM hỗ trợ những kiểu điều kiện biên khác được xây dựng từ những kiểu

cơ bản trên để áp dụng cho các biên một cách thuận tiện hơn. Chẳng hạn: từ

fixedValue, giá trị được tính từ một hàm của các trường đối tượng khác, thời gian,

thông tin hình học, v.v. Một số điều kiện biên xây dựng từ mixed/directionMixed có thể

chuyển đổi giữa fixedValue và fixedGradient (thường là zeroGradient) [35, 37].

2.2.4. Tổ chức dữ liệu mô hình hóa mơ phỏng

Để giải một bài tốn động lực học dòng chảy, các chương trình và thư viện của

OpenFOAM được tổ chức thành một case thư mục [35,37]. Hình 2.7 dưới đây mô tả tổ

chức dữ liệu của một case thư mục.



Hình 2.7. Tổ chức dữ liệu mơ hình hóa mơ phỏng

Trong đó, các thư mục con chính, gồm:

system – Chứa các file điều khiển bộ giải tính toán, dựng lưới và xuất kết quả

tính;

constant – Chứa các file cung cấp các hằng số nhiệt động lực học sử dụng cho

các mơ hình tốn - vật ly tính tốn sự chuyển pha, sự rối, …;

0 – thư mục này chứa điều kiện biên và điều kiện đầu tại bước tời gian t0 của bài

toán gồm áp suất, nhiệt độ, vận tốc, đông năng rối k, … Lời giải theo thời gian được

lưu trữ vào các thư mục được đặt tên theo số của bước thời gian tính (gọi là các thư



43



mục thời gian – time folder) tương tự như thư mục 0, chẳng hạn: 1, 2, 3 hay 0.001,

0.002, …

Đi kèm với bộ cài đặt của OpenFOAM, công cụ ParaView chuyên dụng cho việc

thể hiện lời giải số và phân tích kết quả mô phỏng được cung cấp miễn phí cho người

sử dụng. Với OpenFOAM và ParaView, việc mô hình hóa dòng chảy và phân tích lời

giải được thực hiện hoàn toàn đầy đủ [10].



44



2.3. Khả năng và các ưu, nhược điểm của OpenFOAM

2.3.1. Các khả năng tính toán của OpenFOAM

OpenFOAM là bộ chương trình mã nguồn mở miễn phí tính tốn động lực học

lưu chất CFD. Nó có một cơ sở người dùng lớn trên hầu hết các lĩnh vực kỹ thuật và

khoa học, từ các tổ chức thương mại và học thuật. OpenFOAM có một loạt các tính

năng để giải quyết bất cứ điều gì từ các dòng chất lỏng phức tạp liên quan đến phản

ứng hóa học, nhiễu loạn và truyền nhiệt, cho âm học, cơ học rắn và điện từ.

OpenFOAM chứa một thư viện cơ sở lớn, cung cấp các khả năng cốt lõi của bộ

chương trình:







Tensor và các tốn tử tính tốn

Rời rạc hóa phương trình vi phân từng phần bằng cách sử dụng một cú pháp

con người dễ đọc hiểu







Giải được của hệ phương trình tuyến tính







Giải được của phương trình vi phân thường







Tự động song song hóa các tính tốn nâng cao







Hỗ trợ lưới động







Các mơ hình vật ly tổng qt



Các khả năng này được cung cấp bởi thư viện sau đó được sử dụng để phát triển

các ứng dụng. Các ứng dụng được viết bằng cú pháp cấp cao được giới thiệu bởi

OpenFOAM, nhằm mục đích tái tạo cú pháp toán học thơng thường. Có hai loại ứng

dụng tồn tại:





Bộ giải: thực hiện tính toán thực tế để giải quyết một vấn đề cơ học liên tục cụ

thể.







Tiện ích: chúng được sử dụng để chuẩn bị lưới, thiết lập các trường hợp mô

phỏng, xử ly các kết quả, và để thực hiện các hoạt động khác hơn là giải quyết vấn

đề đang được kiểm tra.



Mỗi ứng dụng cung cấp các khả năng cụ thể: ví dụ, ứng dụng gọi là

blockMesh được sử dụng để tạo các mắt lưới từ một tệp đầu vào do người dùng cung

cấp, trong khi một ứng dụng khác gọi là icoFoam giải các phương trình Navier –

Stokes cho dòng chảy phân tầng, khơng nén được.



45



2.3.2. Những ưu, nhược điểm của OpenFOAM

2.3.2.1. Ưu điểm

Là bộ chương trình mã nguồn mở. Mặc dù vậy OpenFOAM vẫn có kế hoạch bảo

trì với các đối tượng “người dùng được hỗ trợ bảo trì”. ESI Group có xây dựng kế

hoạch bảo trì cho OpenFOAM thơng qua tài trợ từ các cam kết từ các tổ chức hỗ trợ

mua Kế hoạch bảo trì OpenFOAM. Và tùy vào mức hỗ trợ, các người dùng được hỗ

trợ bảo trì sẽ nhận được các ưu tiên bảo trì khác nhau.

Với bộ sưu tập khoảng 100 thư viện C++, OpenFOAM được đi kèm với khoảng

250 ứng dụng được xây dựng trước được chia thành 2 loại:

Các bộ giải (solvers) được thiết kế giải quyết một vấn đề cụ thể trong cơ học chất

lỏng (hoặc liên tục);

Và các tiện ích, được thiết kế để thực hiện các tác vụ liên quan đến thao tác dữ

liệu.

Do đó OpenFOAM giải quyết được hoàng loạt các vấn đề trong động lực học

chất lỏng và được ứng dụng rất rộng rãi.

Ngoài ra các tài liệu đi kèm rõ ràng, các hướng dẫn cụ thể cho người dùng ở các

mức khác nhau.

2.3.2.2. Nhược điểm

Những can thiệp của người dùng vào mã nguồn có thể làm ảnh hưởng đến tính

ổn định và đúng đắn của chương trình tính cung cấp sẵn. Việc can thiệp mã nguồn để

phục vụ nhu cầu tính toán cụ thể chỉ nên thực hiện nếu có hiểu biết đầy đủ về mã

nguồn của chương trình OpenFOAM.

Chạy sử dụng trực tiếp các lệnh trong thư viện C++, môi trường không phải là đồ

họa nên khá khó sử dụng. Ngồi ra còn phải sử dụng các trình soạn thảo ngồi để có

thể đưa các thơng tin cần vào để giải quyết bài toán. OpenFOAM được đi kèm với

ParaView (phần đồ họa của bên thứ 3) để có thể hiển thị các thơng số, hình ảnh mơ

phòng bài tồn.

OpenFOAM được cài đặt trên nền tảng Ubuntu/Linux không quá phổ biến. Tuy

nhiên, người dùng cũng có thể cài đặt trực tiếp trên Windowns 10 thơng qua máy ảo

hóa nhưng cũng chỉ hỗ trợ cho bản Windows 16512 (đối với bản mới nhất).

So với các phần mềm CFD khác, OpenFOAM có nhiều ưu điểm nổi bật. Bảng

2.1 dưới đây mô tả so sánh một số đặc tính của OpenFOAM so với FLUENT (một

phần mềm CFD mạnh mẽ đang được sử dụng khá phổ biến).



46



Bảng 2.1. So sánh tính năng của OpenFOAM và FLUENT

Đặc tính



FLUENT



OpenFOAM



Phương pháp tính



FVM



FVM



Cơng cụ chia lưới, hiển

thị kết quả











Giao diện



Giao diện cửa sổ dễ

dùng



Khó dùng vì phải qua dòng

lệnh

(Có cơng cụ ngồi hỗ trợ dù

hạn chế)



Tính tốn nhiều pha











Tính tốn song song











Can thiệp mã nguồn



Khơng







Phí bản quyền





(Bản student hạn chế

số lượng phần tử

khơng tính phí)



Khơng mất phí



Phát triển chương trình

tính



Do nhà sản xuất phát

hành có mức độ



Do người dùng hoặc thừa

hưởng từ cộng đồng sử dụng

OpenFOAM tự phát triển



Hiện trạng sử dụng ở

Việt Nam



Tương đối phổ biến

(Nhiều người dùng

lậu khơng có bản

quyền)



Ít sử dụng vì khó sử dụng hơn

(Số ít sử dụng mơ phỏng dòng

chảy đơn pha hoặc nhiều pha

khơng chuyển pha)



Qua bảng so sánh 2.1, ta có thể thấy OpenFOAM và FLUENT đều có những ưu

điểm nổi bật và những hạn chế. Tuy nhiên, trong nghiên cứu và ứng dụng động lực học

dòng chảy chất lỏng, các mơ hình tính tốn chưa thể mơ tả hồn tồn đầy đủ các đặc

điểm thực tế của dòng chảy thì việc hồn thiện những mơ hình tính tốn hiện tại hay

phát triển những mơ hình tính tốn mới là rất quan trọng. Khả năng cho phép can thiệp

mã nguồn của OpenFOAM là ưu điểm rất lớn của OpenFOAM cho việc này.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Chương 2 TỔNG QUAN VỀ BỘ CHƯƠNG TRÌNH MÃ NGUỒN MỞ OPENFOAM

Tải bản đầy đủ ngay(0 tr)

×