infistream

Gerakan jaring

Gerakan jaring. Ada dua jenis operasi pergerakan mesh utama yang diimplementasikan dalam OpenFOAM: pergerakan mesh benda padat dan deformasi mesh.

Pergerakan mesh benda padat menggeser titik-titik mesh sambil mempertahankan posisi relatifnya. Berbeda dengan pergerakan mesh, deformasi mesh mendistribusikan pergeseran secara tidak merata, dari batas mesh ke bagian dalam domain solusi.

Pergerakan mesh benda padat

Pergerakan mesh benda padat digambarkan dalam gambar 13.1. Di OpenFOAM, pergerakan benda padat didefinisikan oleh berbagai kelas, semuanya berasal dari basis umum: solidBodyMotionFunction. Fungsi pergerakan mengembalikan sebuah septernion yang menggambarkan pergerakan benda. Pergerakan ini adalah kombinasi dari vektor untuk translasi dan kuaternion untuk rotasi.
Seperti yang terlihat dari diagram UML pada Gambar 13.1, solidBodyMotionFunction mendefinisikan metode virtual transformation yang kemudian diimplementasikan oleh setiap kelas turunannya. Ini menghitung septernion yang digunakan untuk mentransformasi titik-titik mesh antara posisi awal dan posisi pada waktu saat ini dan mewakili baik translasi maupun rotasi.

Fungsi transformasi dikapsulkan dalam sebuah kelas, yang memungkinkan pemilihan dan penggunaan ulang pada waktu jalannya program. Tidak ada dari kelas-kelas yang turunan dari solidBodyMotionFunction yang mengubah lokasi titik-titik mesh; mereka hanya memberikan transformasi.
INFO
Pola Strategi adalah pola desain yang mengkapsulasi berbagai algoritma dalam hierarki kelas, menggabungkannya dalam kelas klien (pengguna), dan memungkinkan penggunaan salah satu dari algoritma-algoritma tersebut selama waktu jalannya program.

MotionFunction, fungsi-fungsi baru dibuat waktu proses dapat dipilih.

Jika, sebaliknya, solidBodyMotionFunction diimplementasikan sebagai pola Metode Template dalam kelas solidBodyMotionFvMesh, menambahkan fungsi pergerakan mesh lainnya akan menghasilkan satu kelas mesh dinamis tambahan.

INFO
Pola Metode Template:

Sebuah fungsi virtual digunakan untuk mengimplementasikan algoritma dan kelas (induk) dapat menyediakan implementasi algoritma default. Akibatnya, kelas turunan mengimplementasikan berbagai algoritma alternatif, menghasilkan percabangan per-algoritma dalam hierarki.

Mesh solidBodyMotion mengubah entah semua titik mesh, atau bagian tertentu (yaitu, sebuah cellZone), menggunakan septernion yang sama yang ditentukan oleh solidBodyMotionFunction yang dipilih pengguna. Jika tidak ada cellZone yang ditentukan, semua titik mesh dipindahkan menggunakan septernion yang sama; sehingga gerakan seragam tercapai. Jika sebuah cellZone ditentukan dalam kamus, hanya titik-titik sel dalam cellZone tersebut yang dipindahkan sesuai. Ini berguna ketika sebuah benda berputar dalam konfigurasi rotor-stator, menggunakan antarmuka geser (AMI/GGI).

INFO
Pemilihan titik mesh berbasis cellZone dapat digunakan untuk konfigurasi gerakan mesh rotor-stator yang melibatkan antarmuka geser.

Deformasi jaring

Deformasi mesh memperkenalkan perbedaan gerakan relatif antara titik-titik mesh, yang mengubah tepi, wajah, dan sel. Distorsi tinggi yang disebabkan oleh deformasi mesh dapat merusak kualitas mesh.

INFO
Kualitas mesh bergantung pada metode numerik yang dipilih untuk diskritisasi persamaan. Untuk FVM, dua kesalahan terkait mesh yang paling penting adalah ketidakortogonalan dan kesalahan skewness.

Untuk memastikan kualitas mesh yang tinggi, seringkali hanya sebuah sub-daerah kecil dari mesh yang dideformasikan secara kuat. Sebaliknya, deformasi untuk bagian lain dari mesh dijaga sekecil mungkin, misalnya, di sekitar batas mesh. Selain itu, deformasi mesh dapat dianggap sebagai masalah optimisasi, di mana kualitas mesh mewakili fungsi skalar teroptimasi secara global dalam domain.

Difusi perpindahan dari batas mesh ke dalam mesh dimodelkan menggunakan persamaan Laplace.
di mana γ adalah koefisien difusi perpindahan, dan d adalah medan perpindahan titik. Koefisien difusi γ bervariasi spasial sebagai fungsi jarak antara titik x dan batas mesh, yaitu
Dalam persamaan (13.2), r adalah jarak antara titik mesh dan batas mesh, dan fungsi koefisien ditentukan sedemikian rupa sehingga koefisien tersebut berkurang dengan jarak dari batas. Persamaan (13.1) didekati menggunakan FVM di OpenFOAM. Dalam hal ini, lapangan yang diselesaikan berada di pusat sel, dengan lapangan batas disimpan di pusat wajah. Untuk menghitung perpindahan di titik-titik mesh (titik sudut sel) menggunakan FVM, interpolasi dari nilai berpusat sel ke titik-titik mesh perlu dilakukan. Sebagai alternatif, dalam foam-extend, solusi untuk persamaan 13.1, dapat didekati menggunakan Metode Elemen Hingga (FEM).
Mesh deformation yang melibatkan solusi dari persamaan Laplace diimplementasikan oleh dynamicMotionSolverFvMesh, yang ditunjukkan pada gambar 13.3. Gerakan dari benda yang bergerak dijelaskan oleh batasnya, yang dilakukan dengan menetapkan kondisi batas gerakan ke bagian yang sesuai dari batas mesh benda. Kondisi batas gerakan dapat diberikan sebagai fungsi eksplisit dari kecepatan atau perpindahan, atau dapat dihitung berdasarkan data eksternal.

Setelah gerakan batas ditentukan dengan kondisi batas untuk bidang perpindahan (kecepatan), solver gerakan mengambil alih tanggung jawab untuk memecahkan bidang gerakan di dalam domain solusi.
dan solver gerakan (motionPtr_) hanya diperlukan untuk menghasilkan titik-titik mesh baru dengan fungsi anggota newPoints:
Memanggil newPoints menyebabkan aproksimasi dari deformasi mesh yang memodifikasi titik-titik mesh. Proses solusi yang diimplementasikan oleh solve akan berbeda tergantung pada penggunaan interpolasi atau persamaan Laplace untuk menyebarkan pergeseran. Berbagai solver gerakan tersedia, namun menjelaskan semuanya di luar cakupan.

INFO
Informasi yang telah disediakan seharusnya sudah cukup untuk memahami dan memperluas gerakan mesh dalam OpenFOAM. Terima kasih telah mempelajarinya bersama saya! Jika Anda memiliki pertanyaan lebih lanjut, jangan ragu untuk bertanya.
Penyelesaian persamaan difusi dilakukan dalam fungsi solve oleh solver gerakan mesh volume terbatas Laplacian yang diimplementasikan oleh displacementLaplacianFvMotionSolver, seperti yang ditunjukkan pada gambar 13.4.
dan perpindahan titik kemudian diinterpolasi menggunakan metode Inverse Distance Weighted (IDW) dari pusat sel, ke titik sudut sel (titik mesh) dalam fungsi curPoints.
INFO
Sebuah objek interpolasi IDW baru dialokasikan setiap kali curPoints dieksekusi - saat mesh dideformasikan menggunakan solver pergerakan berbasis FVM.

Membuat objek interpolasi IDW baru setiap langkah waktu diperlukan karena bobot interpolasi jarak terbalik berubah ketika terjadi pergeseran relatif antara titik-titik mesh.
Open chat
Infichat
Hello 👋
Thank you for text me
Can we help you?