LoginSignup
1
1

More than 5 years have passed since last update.

OpenFOAMの提供するメッシュ(polyMesh, fvMesh, dynamicFvMesh, topoChangerFvMesh)

Last updated at Posted at 2016-06-27

polyMesh

参考リンク

OpenFOAM C++ Documentation : polyMesh
OpenFOAM C++ Documentation : polyMesh.H
OpenFOAM Documentation Project : primitive mesh

説明

メッシュの基本要素を記述したクラス。OpenFOAMに実装されている全てのメッシュはこのクラスを継承して作成されています。

メンバ関数

並列計算に必要なメッシュデータを参照するメンバ関数のほとんどはこのpolyMeshクラスで定義されています。

メンバ関数 説明
faces() faceListを返す。
faceOwners() face owner cellのlabelListを返す。
faceNeighbour() face neighbour cellのlabelListを返す。
boundaryMesh() polyBoundaryMeshを返す。
bounds() メッシュのbounding boxを返す。
globalData() globalMeshData(並列計算用のメッシュデータを取り扱っているクラス)を返す。

など

globalMeshData

参考リンク

OpenFOAM C++ Documentation : globalMeshData
OpenFOAM C++ Documentation : globalMeshData.H

説明

並列計算時に必要となるメッシュデータを定義しているクラス。sharedPoint, sharedEdgeとは、3つ以上のプロセッサーに共有されているpoint, edgeのことです。coupledPatchとは、並列計算をするためのメッシュ分割を行ってできたpatchで、隣接するメッシュを持つプロセッサーとデータをやり取りする必要があるpatchのことです。

fvMesh

参考リンク

OpenFOAM C++ Documentation : fvMesh
OpenFOAM C++ Documentation : fvMesh.H
OpenFOAM Documentation Project : primitive mesh

説明

polyMeshを継承して作成されている有限体積法用のメッシュを提供するクラス。OpenFOAMは基本的に有限体積法に基づいて計算を行うので、fvMeshクラスのメンバ関数に何があるのか、その役割は何かということを理解しておく必要があります。

メンバ関数

メンバ関数 説明
owner() owner cellのlabelUListを返す。
neighbour() neighbour cellのlabelUListを返す。
Sf() face面積に比例するfaceの法線ベクトルを返す。
magSf() face面積を返す。
C() cell中心座標を返す。
Cf() face中心座標を返す。
boundary() 境界メッシュ(fvBoundaryMesh)を返す。

など

Tips

faceの単位法線ベクトルの求め方

// fvMeshオブジェクト
fvMesh fvm;
// faceの単位法線ベクトルのfieldの計算
const surfaceVectorField faceN = fvm.Sf()/fvm.magSf();

dynamicFvMesh

参考リンク

OpenFOAM C++ Documentation : dynamicFvMesh

説明

メッシュが移動するような計算を行うためのクラス。

topoChangerFvMesh

参考リンク

OpenFOAM C++ Documentation : topoChangerFvMesh

説明

メッシュが変形するような計算を行うためのクラス。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1