13.5 Computational Pointers
Computational Pointers
13.5.1 uFVM
Diskritisasi suku sementara di uFVM mengikuti metode volume terbatas
diimplementasikan dalam kerangka implisit. Perakitan fluks transien
yang dihasilkan dari skema Euler mundur orde pertama ditunjukkan pada Listing 13.1.
13.5.2 OpenFOAM®
Dalam OpenFOAM®, turunan waktu eksplisit dan implisit [21] didefinisikan melalui
namespace fvm, fvc dan fungsi terkait fvc::ddt(rho, phi) dan fvm::
ddt(rho, phi), masing-masing. Apalagi orde pertama dan kedua melawan arah angin Euler
skema selain skema Crank-Nicholson orde kedua tersedia,
dengan yang terakhir diterapkan mengikuti pendekatan dua langkah.
File skema sementara terletak di direktori “$FOAM_SRC/
Volume terbatas/Volume terbatas/Skema ddt”. Kelas dasar dilambangkan dengan ddtScheme
<Type> didefinisikan dari mana semua skema diskritisasi waktu harus diturunkan.
Skema Euler orde pertama diimplementasikan di kelas EulerDdtScheme. Itu
kelas dideklarasikan di atas kelas dasar ddtScheme <Type>, seperti yang ditunjukkan dalam Daftar
13.2.
Implementasi dari ruang nama fvc dan fvm yang terkait didefinisikan dalam file
file EulerDdtScheme.C. Evaluasi implisit dari skema Euler didefinisikan melalui
fungsi berikut dalam Listing 13.3:
Seperti yang digambarkan pada Listing 13.4, langkah pertama dalam fungsi ini adalah pendefinisian
fvMatrix dimana hanya vektor koefisien diagonal yang diisi.
Setelah mengalokasikan ruang yang dibutuhkan untuk menyimpan koefisien diagonal dan
sumber, nilai yang akan disimpan didefinisikan dan dihitung. Seperti yang ditunjukkan pada Daftar 13.5,
ini dilakukan dengan terlebih dahulu mendefinisikan kebalikan dari langkah waktu sebagai rDeltaT, lalu
menghitung pada dan menyimpan nilainya dalam vektor fvm.diag(). Sumber
Kontribusi sumber dihitung sebagai hasil kali dari dan nilai lama dari vf dan disimpan dalam vektor fvm.source(), di mana vf adalah variabel umum yang digunakan saat menerapkan skema waktu.
Skrip pada Listing 13.6 menunjukkan bahwa OpenFOAM®memungkinkan evaluasi eksplisit dari
suku tak stabil menggunakan skema Euler. Dalam kasus ini, sebuah objek GeometricField
yang berisi nilai dikembalikan (di sini nilainya adalah per unit
volume)
Skema SOUE diimplementasikan di OpenFOAM® di bawah kelas
backwardDdtScheme. Definisi kelas ini berada di atas kelas dasar, seperti yang
yang ditunjukkan pada Listing 13.7.
Dalam hal ini OpenFOAM® menggunakan informasi dari saat ini dan sebelumnya
langkah waktu. Dalam kasus umum, langkah waktu yang berbeda memerlukan penggunaan
dua variabel untuk menyimpan nilainya. Diskritisasi waktu implisit didefinisikan dengan cara yang mirip dengan orde pertama transien orde pertama menggunakan fungsi yang ditunjukkan pada Listing 13.8 sampai Listing 13.10.
Bagian dari fungsi yang ditampilkan pada Listing 13.9 menghitung koefisien transien
yang mengalikan nilai saat ini, nilai lama, dan nilai lama dari variabel dependendan menyimpan kontribusi pada koefisien diagonal dalam vektor fvm.diag().
Pada bagian terakhir dari fungsi yang ditunjukkan pada Listing 13.10, kontribusi dari
unsteady term dihitung dan disimpan dalam vektor fvm.source().
Dengan membandingkan koefisien-koefisien dari skema SOUE dengan koefisien-koefisien yang diberikan dalam
Persamaan (13.100) dengan mudah dapat dilihat bahwa OpenFOAM® mengadopsi pendekatan beda hingga untuk diskritisasi suku tidak stabil dimana turunan waktu diperkirakan melalui ekspansi deret Taylor.
ditiru melalui ekspansi deret Taylor.
13.6 Closure
Bab ini membahas diskritisasi suku transien dalam persamaan kon
persamaan persamaan servasi. Untuk itu, dua metodologi umum dibahas.
Satu metode didasarkan pada diskritisasi beda hingga, sedangkan metode lainnya mengikuti pendekatan volume hingga.
pendekatan volume hingga dimana persamaan konservasi diintegrasikan ke dalam elemen temporal. Skema transien orde pertama yang sepenuhnya implisit dan eksplisit disajikan. Perumusan pendekatan orde yang lebih tinggi juga diinvestigasi. juga diinvestasikan. Ini termasuk skema CN dan SOUE untuk langkah waktu seragam dan tidak seragam langkah waktu. Bab berikutnya dikhususkan untuk diskritisasi suku sumber, relaksasi sistem persamaan aljabar, dan detail terkait lainnya.