Bagian FOAM dari nama OpenFOAM diberikan sebagai singkatan dari Field Operation and Manipulation. Namun yang dicatat dalam bab-bab sebelumnya, FOAM bisa sangat kompleks, karena mereka mempresentasikan dan memanipulasi properti fisik sebagai bidang tensor dalam domain solusi yang geometris kompleks menggunakan diskritisasi volume hingga yang tidak terstruktur.
Menerjemahkan semua aspek yang disebutkan sebelumnya dari FVM ke dalam sebuah kerangka perangkat lunak hanya mungkin jika bahasa pemprogram an yang dipilih mendukung abstraksi konsep kompleks dan implementasi yang efisien secara komputasional serta dapat dipindahkan. Dalam konteks OpenFOAM, konsep-konsep ini termasuk: bidang, jaringan, skema diskritisasi, skema interpolasi, persamaan keadaan, sistem partikel semprot, matriks, format penyimpanan matriks, file konfigurasi, aspek pemrograman paralel, dll. Bahkan daftar singkat ini menunjukkan bagaimana elemen-elemen tersebut menempati tingkat abstraksi yang berbeda. Misalnya, konsep bidang dan jaringan berada pada tingkat abstraksi yang lebih tinggi dari pada struktur data kamus. Abstraksi memungkinkan programmer untuk secara efektif membangun elemen-elemen perangkat lunak yang memodelkan perilaku konsep-konsep kompleks di area yang diminati dengan memungkinkannya untuk berkonsentrasi tidak secara eksklusif, tetapi lebih kuat, pada konsep yang sedang diimplementasikan saat ini.
Jaringan akan menyimpan berbagai data geometris dan topologis, seperti yang sudah dijelaskan dalam bagian 1.3 dan 2.1. Selain itu, berbagai fungsi (seringkali kompleks) diperlukan untuk beroperasi pada data tersebut. Sebagai contoh abstraksi dalam OpenFOAM dan bahasa pemrograman C++, baik data maupun fungsi terkait dari jaringan volume terbatas dienkapsulasi ke dalam sebuah kelas fvMesh. Ini memungkinkan programmer untuk berpikir dalam hal jaringan, dan tidak perlu repot dengan semua detail yang melibatkan struktur data dan fungsi yang membangunnya.
INFO
Bagian-bagian awal dari bab ini membahas gambaran desain perangkat lunak dari OpenFOAM. Namun, istilah-istilah dari pengembangan perangkat lunak tidak dibahas dan seharusnya dipelajari secara mandiri. OpenFOAM adalah perangkat lunak yang besar dan pembelajaran pengembangan perangkat lunak adalah persyaratan untuk mempelajari cara mengembangkan metode baru dalam OpenFOAM.
Pemprograman dalam tingkat abstraksi yang lebih tinggi didukung oleh bahasa pemprograman C++. Ini adalah bahasa multi-paradigma yang mendukung paradigma pemrograman prosedural, berorientasi objek, generik, dan fungsional. Mengimplementasikan lapisan abstraksi yang lebih tinggi membuat implementasi menjadi lebih mudah dibaca, namun bahasa C++ tetap mempertahankan efisiensi komputasi yang sangat tinggi dan dapat digunakan di berbagai platform.