OpenFOAMのメッシュの記述 †OpenFOAMにおけるメッシュの記述について説明します。 基本的なメッシュの構成物 †OpenFOAMのメッシュは4つの基本的な構成物から成ります。
全てのpoint, face, cell, edgeは唯一のlabelが割り振られます。これらの構成物を記述するメッシュが、最も基本のメッシュクラスとなるprimitiveMeshです。 primitiveMeshクラス †primitiveMeshは名前の通り、メッシュを構成する最も基本的なクラスです。実際、primitiveMeshクラスは、基本的なメッシュデータを保持し、また、メッシュの隣接構造を構築する関数と、いくつかの幾何データを計算する関数を提供します。 primitiveMeshクラスが計算する幾何データは、セル中心、セル体積、面中心、面の面積です。 また、メッシュの隣接構造は、例えば、あるpointを有するcellやedgeは何か?やあるcellの隣のcellは何か?の質問に答えるための情報です。 pointsやcellsなどを取得するための仮想関数としてpoints(), faces(), faceOwner(), faceNeighbour()が用意されています。これらは仮想関数なので、サブクラスで実装する必要があります。 polyMeshクラス †polyMeshクラスは、primitiveMeshクラスを継承します。したがって、primitiveMeshの仮想関数points(), faces(), faceOwner(), faceNeighbourをオーバライドします。 polyMeshは、polyhedral cell(多面体セル)からなるメッシュを表現します。 polyMeshオブジェクトを作成するためには、メッシュの情報(point, face, cell)を、現在のcaseディレクトリから読み込んで構成します。 fvMeshクラス †fvMeshクラスはpolyMeshクラスを継承します。 fvMeshクラスは有限体積を記述する機能が追加されます。例えば、face area motion fluxの計算や、面積ベクトル、面積ベクトルの大きさを計算する機能が追加されます。 |