openFoamで使用する要素操作の覚書です。
openFoamでは、コマンドで要素を作成する場合と、他の有限要素ツールと同様に、メッシャーで要素を作成して用いる場合があります。(他のツールもコマンドメッシャーを持っているものもあると思います)
unvファイルについて
作業シーンを記載しています。
元となるデータは、A632 熱伝導解析 openFoamになります。
unvファイルの作成
四面体要素の端面にGroup_1を定義したメッシュを用意します。tet.unvとしています。
サンプルファイル: T711_tet.unv (以下はtet.unvとして記載しています)
unvファイルの格納
A632と同様のフォルダ構造にtet.unvファイルを格納します。
unvファイルの変換
通常の作業と同じように、ubuntuのターミナルで上記のフォルダに移動します。
A632では、blockMeshコマンドにて作成しましたが、unvファイルをideasUnvToFoamコマンドで変換して使います。(ですので、systemフォルダ内には、blockMeshDictファイルはありません)
ideasUnvToFoam tet.unv ←変換したいファイル名を続けて記入
変換を実行するとconstantフォルダ内にpolyMeshフォルダが作成され、要素ファイルが格納されます。polyMeshフォルダ内のboundaryファイルには、メッシュ作成時に定義したGroup_1が境界設定箇所として定義されています。
//polyMeshが作成されるとconstantフォルダ内に要素情報が作成されます。 constant ├ polyMesh │ ├ boundary │ ├ faces │ ├ neighbour │ ├ owner │ └ points ├
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
2
(
Group_1
{
type patch;
nFaces 2;
startFace 102;
}
defaultFaces
{
type patch;
nFaces 82;
startFace 104;
}
)
// ************************************************************************* //
あとは、コマンドでメッシュを作成した場合と同じ操作をたどります。(仮)
補足
上記のGroup_1についての境界条件は、「0」フォルダ内のTファイルと関係付けておく必要があります。
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 293;
boundaryField
{
defaultFaces
{
type zeroGradient;
}
Group_1
{
type fixedValue;
value uniform 393;
}
// rightface
// {
// type fixedValue;
// value uniform 293;
// }
}
// ************************************************************************* //
また、boundaryには条件を記述する必要があります。
チュートリアルなどをトレースする場合には、元のboundaryを確認します。
結果
注記
■二次要素だとエラーになります。
コメント