はじめに
OpenFOAMでは様々なポスト処理が用意されています。
ここでは、指定のセル(点)における、指定の変数の抽出方法、probes、__internalProbes__について言及します。
なお、本記事では OpenFOAM ver.8 / ver.10 (Foundation版) について解説していきます。
probe / internalProbes の概略
probing dataのページに概略が述べられています:
- probes identify the nearest cells to the probe locations and write out the cell values; data is written into a single file in a time-value format, suitable for plotting a graph.
- boundaryProbes and internalProbes interpolate field data to the probe locations, with the locations being snapped onto boundaries for boundaryProbes; data sets are written to separate files at scheduled write times (like fields). data.
probes は指定座標に近いセルの__時系列__データを抽出するのに対し、 internalProbes は指定座標のデータを補間して抽出します。
また、Fundation版で実装されているscript、foamInfoを叩くと所望の関数、ソルバーの情報を得ることができます。
File
/opt/openfoam8/src/sampling/probes/probes.H
Description
Set of locations to sample.
Call write() to sample and write files.
Examples using "probes"
*** Listing 10 out of 11; run with "-a" option to list all ***
/opt/openfoam8/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance
/opt/openfoam8/tutorials/incompressible/pimpleFoam/RAS/TJunction
/opt/openfoam8/tutorials/incompressible/pimpleFoam/RAS/TJunctionFan
/opt/openfoam8/tutorials/incompressible/pisoFoam/LES/pitzDaily
/opt/openfoam8/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped
...
File
/opt/openfoam8/etc/caseDicts/postProcessing/probes/internalProbes
Description
Writes out values of fields interpolated to a specified list of points.
以降ではそれぞれの使い方を、incompressible/pimpleFoam/pitzDaily
を使って説明していきます。
probes
ver.8
pitzDaily
において、
foamGet probes
を実行することにより、system/probes
ファイルを自前のcaseDirに用意することができます。
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 8
\\/ M anipulation |
-------------------------------------------------------------------------------
Description
Writes out values of fields from cells nearest to specified locations.
\*---------------------------------------------------------------------------*/
#includeEtc "caseDicts/postProcessing/probes/probes.cfg"
fields (p U);
probeLocations
(
(0 0 0)
);
fields
に所望の変数を、probeLocations
に座標を入力します。設定は基本これだけになります。
なお、その他の設定については、caseDicts/postProcessing/probes/probes.cfg
というファイルで行われています。
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 8
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
type probes;
libs ("libsampling.so");
writeControl timeStep;
writeInterval 1;
// ************************************************************************* //
ProbesのLibraryの読み込み、データ書き出し設定を行っています。デフォルトでは毎時間ステップにデータ出力することになっています。出力間隔を変更したい場合は、probes.cfg
をfoamGet
で持ってきて、編集する必要があります。
pimpleFoam
を実行後にデータ抽出を行う際は、
postProcessing -func probes
を実行すると、postProcessing
ディレクトリ下に指定座標における、指定変数の時系列データが出力されます。
また、pimpleFoam
実行時に同時に出力を行う場合は、system/controlDict
に
functions
{
#includeFunc probes
}
を追記します。
ver.10
ver.10 では少し設定ファイルの記述が変更されています。
そのため,ver.8の設定ファイルをもってきても動きません・・・(Foundation版のあるあるですね)。
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 10
\\/ M anipulation |
-------------------------------------------------------------------------------
Description
Writes out values of fields from cells nearest to specified locations.
\*---------------------------------------------------------------------------*/
points (<points>);
fields (<fieldNames>);
#includeEtc "caseDicts/postProcessing/probes/probes.cfg"
// ************************************************************************* //
internalProbes
指定の座標のデータを、補間しつつ、抽出してくれます。ただ、probes
で行ったようなfoamGet
で設定ファイルを持ってくるだけでは動かすことができません。以下のような操作が必要になります。
- internalProbes、internalProbes.cfgの2つのファイルをfoamGetで持ってきます。
- internalProbesに補間方法(internalProbes)、データ・フォーマット(setFormat)の設定の記述を追記します。
fields (p U);
points
(
(0.0254 0.0253 0)
);
interpolationScheme cellPoint;
setFormat raw;
- internalProbes.cfgに
ordered
を追記します。
type sets;
libs ("libsampling.so");
executeControl writeTime;
writeControl writeTime;
sets
(
points
{
type points;
axis xyz;
points $points;
ordered 1;
}
);
以上で設定は終了です。実行はprobes
と同様にpostProcessing
を実行する、もしくは、controlDict
にpostProcessingを追記します。
まとめ
本記事では、probes、__internalProbes__について、特にそれぞれの使用方法についてまとめました。
情報不足、誤り等ございましたら、ご指摘いただければ幸いです。