kOmegaSST(RASProperties)での計算実行について

2,604 views
Skip to first unread message

東京理科大学倉渕研究室卒研生

unread,
Oct 23, 2011, 3:06:57 AM10/23/11
to OpenFOAM
初めまして。OpenFOAM初心者です。
現在、あるケースの数値や条件を変えて、
計算実行を行おうとしているのですが、
乱流モデル(RAS)を、kEpsilonからkOmegaSSTに変更すると、
計算が実行されなくなってしまいます。
(元のケースは計算が実行されることは確認できています。)
Omegaを含む乱流モデルにすると計算が実行されないようなのですが、
RASPropertiesディレクトリの乱流モデルを変更する以外に、
何か特別な設定が必要なのでしょうか?
(ちなみに、Omegaの境界条件?(omegaWallfunctionやslipなど)の設定をするディレクトリは作成しました。)
お忙しい中申し訳ありませんが、よろしくお願いいたします。

ohbuchi

unread,
Oct 23, 2011, 4:28:56 AM10/23/11
to OpenFOAM
こんにちは。
乱流モデルをk-εからk-ωSSTに変更するには下記のファイルを修正する必要があります。
system/fvSolution,fvScheme,
constant/polyMesh/boundary
上記ファイルの他に0ディレクトリにomegaを作成する必要があります。

計算実行できない場合には、何かエラーメッセージが表示されているはずです。
そのメッセージに従って不足している設定ファイルを修正してください。

ohbuchi

unread,
Oct 23, 2011, 7:24:16 PM10/23/11
to OpenFOAM
肝心のファイルを忘れていました。
constant/RASProperties

tutorials/incompressible/simpleFoam/motorBikeチュートリアルでkOmegaSSTを使っています。
ご自分の設定ファイルと比較してみて下さい。

東京理科大学倉渕研究室卒研生

unread,
Oct 24, 2011, 5:33:57 AM10/24/11
to OpenFOAM
お世話になっております。
fvschemeのdivscheme,laplasianschemeや、
fvsolutionのsolvers,relaxationfactorsにomegaの項を付け足し、
0ディレクトリ内にomegaが作成されていることも確認しました。
constant/RASPropertiesも修正したのですが、
依然、下記のような大量のエラーが出てしまいます。

/
*---------------------------------------------------------------------------
*\
| =========
| |
| \\ / F ield | OpenFOAM: The Open Source CFD
Toolbox |
| \\ / O peration | Version:
2.0.x |
| \\ / A nd | Web: www.OpenFOAM.com
|
| \\/ M anipulation
| |
\*---------------------------------------------------------------------------
*/
Build : 2.0.x
Exec : simpleFoam -parallel
Date : Oct 24 2011
Time : 17:41:44
Host : DellT610
PID : 4776
Case : /home/kankyo/OpenFOAM/kankyo-2.0.x/run/sstkw/sstkw
nProcs : 8
Slaves :
7
(
DellT610.4778
DellT610.4781
DellT610.4782
DellT610.4783
DellT610.4784
DellT610.4785
DellT610.4811
)

Pstream initialized with:
floatTransfer : 0
nProcsSimpleSum : 0
commsType : nonBlocking
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using
timeStampMaster
allowSystemOperations : Disallowing user-supplied system call
operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * //
Create time

Create mesh for time = 0
[6] #0 Foam::error::printStack(Foam::Ostream&)[7] #0
Foam::error::printStack(Foam::Ostream&)[5] #0
Foam::error::printStack(Foam::Ostream&) in "/usr/local/OpenFOAM/
OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/libOpenFOAM.so"
[6] #1 Foam::sigFpe::sigHandler(int) in "/usr/local/OpenFOAM/
OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/libOpenFOAM.so"
[7] #1 Foam::sigFpe::sigHandler(int) in "/usr/local/OpenFOAM/
OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/libOpenFOAM.so"
[5] #1 Foam::sigFpe::sigHandler(int) in "/usr/local/OpenFOAM/
OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/libOpenFOAM.so"
[5] #2 __restore_rt at sigaction.c:0
[5] #3 Foam::divide(Foam::Field<double>&, Foam::UList<double> const&,
Foam::UList<double> const&) in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/
platforms/linux64Gcc45DPOpt/lib/libOpenFOAM.so"
[5] #4 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField,
Foam::volMesh> > Foam::operator/<Foam::fvPatchField,
Foam::volMesh>(Foam::tmp<Foam::GeometricField<double,
Foam::fvPatchField, Foam::volMesh> > const&,
Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField,
Foam::volMesh> > const&) in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/
platforms/linux64Gcc45DPOpt/lib/libincompressibleRASModels.so"
[5] #5 Foam::incompressible::RASModels::kOmegaSST::F2() const in "/
usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so"
[5] #6
Foam::incompressible::RASModels::kOmegaSST::kOmegaSST(Foam::GeometricField<Foam::Vector<double>,
Foam::fvPatchField, Foam::volMesh> const&,
Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>
const&, Foam::transportModel&, Foam::word const&, Foam::word const&)
in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so"
[5] #7
Foam::incompressible::RASModel::adddictionaryConstructorToTable<Foam::incompressible::RASModels::kOmegaSST>::New(Foam::GeometricField<Foam::Vector<double>,
Foam::fvPatchField, Foam::volMesh> const&,
Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>
const&, Foam::transportModel&, Foam::word const&) in "/usr/local/
OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so"
[5] #8
Foam::incompressible::RASModel::New(Foam::GeometricField<Foam::Vector<double>,
Foam::fvPatchField, Foam::volMesh> const&,
Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>
const&, Foam::transportModel&, Foam::word const&) in "/usr/local/
OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
libOpenFOAM.so"
[7] #2 __restore_rt in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/
linux64Gcc45DPOpt/lib/libOpenFOAM.so"
[6] #2 at sigaction.c:0
[7] #3 Foam::divide(Foam::Field<double>&, Foam::UList<double> const&,
Foam::UList<double> const&) in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/
platforms/linux64Gcc45DPOpt/lib/libOpenFOAM.so"
[7] #4 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField,
Foam::volMesh> > Foam::operator/<Foam::fvPatchField,
Foam::volMesh>(Foam::tmp<Foam::GeometricField<double,
Foam::fvPatchField, Foam::volMesh> > const&,
Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField,
Foam::volMesh> > const&) in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/
platforms/linux64Gcc45DPOpt/lib/libincompressibleRASModels.so"
[7] #5 Foam::incompressible::RASModels::kOmegaSST::F2() const in "/
usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so"
[7] #6
Foam::incompressible::RASModels::kOmegaSST::kOmegaSST(Foam::GeometricField<Foam::Vector<double>,
Foam::fvPatchField, Foam::volMesh> const&,
Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>
const&, Foam::transportModel&, Foam::word const&, Foam::word const&)
in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so"
[7] #7
Foam::incompressible::RASModel::adddictionaryConstructorToTable<Foam::incompressible::RASModels::kOmegaSST>::New(Foam::GeometricField<Foam::Vector<double>,
Foam::fvPatchField, Foam::volMesh> const&,
Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>
const&, Foam::transportModel&, Foam::word const&)__restore_rt at
sigaction.c:0
[6] #3 Foam::divide(Foam::Field<double>&, Foam::UList<double> const&,
Foam::UList<double> const&) in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/
platforms/linux64Gcc45DPOpt/lib/libOpenFOAM.so"
[6] #4 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField,
Foam::volMesh> > Foam::operator/<Foam::fvPatchField,
Foam::volMesh>(Foam::tmp<Foam::GeometricField<double,
Foam::fvPatchField, Foam::volMesh> > const&,
Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField,
Foam::volMesh> > const&) in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/
platforms/linux64Gcc45DPOpt/lib/libincompressibleRASModels.so"
[6] #5 Foam::incompressible::RASModels::kOmegaSST::F2() const in "/
usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so"
[7] #8
Foam::incompressible::RASModel::New(Foam::GeometricField<Foam::Vector<double>,
Foam::fvPatchField, Foam::volMesh> const&,
Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>
const&, Foam::transportModel&, Foam::word const&) in "/usr/local/
OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so"
[7] #9 main in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/
linux64Gcc45DPOpt/lib/libincompressibleRASModels.so"
[6] #6
Foam::incompressible::RASModels::kOmegaSST::kOmegaSST(Foam::GeometricField<Foam::Vector<double>,
Foam::fvPatchField, Foam::volMesh> const&,
Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>
const&, Foam::transportModel&, Foam::word const&, Foam::word const&)
in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/bin/
simpleFoam"
[7] #10 __libc_start_main in "/lib64/libc.so.6"
[7] #11 Foam::UOPstream::write(char) in "/usr/local/OpenFOAM/
OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/bin/simpleFoam"
--------------------------------------------------------------------------
mpirun noticed that process rank 7 with PID 4811 on node DellT610
exited on signal 8 (Floating point exception).
--------------------------------------------------------------------------
[DellT610:04811] *** Process received signal ***
[DellT610:04811] Signal: Floating point exception (8)
[DellT610:04811] Signal code: (-6)
[DellT610:04811] Failing at address: 0x44c000012cb
[DellT610:04811] [ 0] /lib64/libc.so.6 [0x3e62c302d0]
[DellT610:04811] [ 1] /lib64/libc.so.6(gsignal+0x35) [0x3e62c30265]
[DellT610:04811] [ 2] /lib64/libc.so.6 [0x3e62c302d0]
[DellT610:04811] [ 3] /usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/
linux64Gcc45DPOpt/lib/
libOpenFOAM.so(_ZN4Foam6divideERNS_5FieldIdEERKNS_5UListIdEES6_+0xc9)
[0x2b15b1c0ab59]
[DellT610:04811] [ 4] /usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/
linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so(_ZN4FoamdvINS_12fvPatchFieldENS_7volMeshEEENS_3tmpINS_14GeometricFieldIdT_T0_EEEERKS8_SA_
+0x238) [0x2b15b00628c8]
[DellT610:04811] [ 5] /usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/
linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so(_ZNK4Foam14incompressible9RASModels9kOmegaSST2F2Ev
+0x141) [0x2b15b007acb1]
[DellT610:04811] [ 6] /usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/
linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so(_ZN4Foam14incompressible9RASModels9kOmegaSSTC2ERKNS_14GeometricFieldINS_6VectorIdEENS_12fvPatchFieldENS_7volMeshEEERKNS3_IdNS_13fvsPatchFieldENS_11surfaceMeshEEERNS_14transportModelERKNS_4wordESK_
+0xd3a) [0x2b15b007e02a]
[DellT610:04811] [ 7] /usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/
linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so(_ZN4Foam14incompressible8RASModel31adddictionaryConstructorToTableINS0_9RASModels9kOmegaSSTEE3NewERKNS_14GeometricFieldINS_6VectorIdEENS_12fvPatchFieldENS_7volMeshEEERKNS6_IdNS_13fvsPatchFieldENS_11surfaceMeshEEERNS_14transportModelERKNS_4wordE
+0x58) [0x2b15b0089d08]
[DellT610:04811] [ 8] /usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/
linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so(_ZN4Foam14incompressible8RASModel3NewERKNS_14GeometricFieldINS_6VectorIdEENS_12fvPatchFieldENS_7volMeshEEERKNS2_IdNS_13fvsPatchFieldENS_11surfaceMeshEEERNS_14transportModelERKNS_4wordE
+0x3db) [0x2b15b0002feb]
[DellT610:04811] [ 9] simpleFoam [0x418ea8]
[DellT610:04811] [10] /lib64/libc.so.6(__libc_start_main+0xf4)
[0x3e62c1d994]
[DellT610:04811] [11] simpleFoam(_ZN4Foam9UOPstream5writeEc+0xa9)
[0x416529]
[DellT610:04811] *** End of error message ***

Reading field p

Reading field U

Reading/calculating face flux field phi

Selecting incompressible transport model Newtonian
Selecting RAS turbulence model kOmegaSST
bounding omega, min: 0 max: 1 average: 1
kOmegaSSTCoeffs
{
alphaK1 0.85034;
alphaK2 1;
alphaOmega1 0.5;
alphaOmega2 0.85616;
gamma1 0.5532;
gamma2 0.4403;
beta1 0.075;
beta2 0.0828;
betaStar 0.09;
a1 0.31;
c1 10;
}


SIMPLE: convergence criteria
field p tolerance 0.0005
field U tolerance 0.0001
field "(k|epsilon|omega)" tolerance 0.0001


Starting time loop

Time = 1


表示されたエラーを読んでみたのですが、
私の知識不足もあり、どこが間違っているのかよく分かりません。
指摘して下さったもののほかに、何か考えられる原因はありませんでしょうか?

長文となってしまいましたが、教えて下さるとありがたいです。

申し訳ありませんが、よろしくお願いいたします。

> > > お忙しい中申し訳ありませんが、よろしくお願いいたします。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

ohbuchi

unread,
Oct 24, 2011, 6:20:28 AM10/24/11
to OpenFOAM
こんにちは。
設定に関するエラーメッセージは出ていませんね。
1ステップも計算する以前に浮動小数点エラーが出ています。
シリアル計算は出来るのでしょうか?
もしシリアル計算が出来れば並列計算設定の問題になります。

> Foam::incompressible::RASModel::adddictionaryConstructorToTable<Foam::incom pressible::RASModels::kOmegaSST>::New(Foam::GeometricField<Foam::Vector<dou ble>,


> Foam::fvPatchField, Foam::volMesh> const&,
> Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>
> const&, Foam::transportModel&, Foam::word const&) in "/usr/local/
> OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
> libincompressibleRASModels.so"
> [5] #8

> Foam::incompressible::RASModel::New(Foam::GeometricField<Foam::Vector<doubl e>,

> Foam::incompressible::RASModel::adddictionaryConstructorToTable<Foam::incom pressible::RASModels::kOmegaSST>::New(Foam::GeometricField<Foam::Vector<dou ble>,


> Foam::fvPatchField, Foam::volMesh> const&,
> Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>
> const&, Foam::transportModel&, Foam::word const&)__restore_rt at
> sigaction.c:0
> [6] #3 Foam::divide(Foam::Field<double>&, Foam::UList<double> const&,
> Foam::UList<double> const&) in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/
> platforms/linux64Gcc45DPOpt/lib/libOpenFOAM.so"
> [6] #4 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField,
> Foam::volMesh> > Foam::operator/<Foam::fvPatchField,
> Foam::volMesh>(Foam::tmp<Foam::GeometricField<double,
> Foam::fvPatchField, Foam::volMesh> > const&,
> Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField,
> Foam::volMesh> > const&) in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/
> platforms/linux64Gcc45DPOpt/lib/libincompressibleRASModels.so"
> [6] #5 Foam::incompressible::RASModels::kOmegaSST::F2() const in "/
> usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
> libincompressibleRASModels.so"
> [7] #8

> Foam::incompressible::RASModel::New(Foam::GeometricField<Foam::Vector<doubl e>,

東京理科大学倉渕研究室卒研生

unread,
Oct 24, 2011, 7:33:42 AM10/24/11
to OpenFOAM
お世話になっております。
並列計算をせずに試してみましたが、
やはり下記のようなエラーが出て、計算が実行されませんでした。

/
*---------------------------------------------------------------------------
*\
| =========
| |
| \\ / F ield | OpenFOAM: The Open Source CFD
Toolbox |
| \\ / O peration | Version:
2.0.x |
| \\ / A nd | Web: www.OpenFOAM.com
|
| \\/ M anipulation
| |
\*---------------------------------------------------------------------------
*/
Build : 2.0.x
Exec : simpleFoam
Date : Oct 24 2011
Time : 20:12:54
Host : DellT610
PID : 21132
Case : /home/kankyo/OpenFOAM/kankyo-2.0.x/run/sstkw/sstkw
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using
timeStampMaster
allowSystemOperations : Disallowing user-supplied system call
operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * //
Create time

Create mesh for time = 0

Reading field p

Reading field U

Reading/calculating face flux field phi

Selecting incompressible transport model Newtonian
Selecting RAS turbulence model kOmegaSST
bounding omega, min: 0 max: 1 average: 1
#0 Foam::error::printStack(Foam::Ostream&) in "/usr/local/OpenFOAM/
OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/libOpenFOAM.so"
#1 Foam::sigFpe::sigHandler(int) in "/usr/local/OpenFOAM/
OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/libOpenFOAM.so"
#2 __restore_rt at sigaction.c:0
#3 Foam::divide(Foam::Field<double>&, Foam::UList<double> const&,
Foam::UList<double> const&) in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/
platforms/linux64Gcc45DPOpt/lib/libOpenFOAM.so"
#4 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField,
Foam::volMesh> > Foam::operator/<Foam::fvPatchField,
Foam::volMesh>(Foam::tmp<Foam::GeometricField<double,
Foam::fvPatchField, Foam::volMesh> > const&,
Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField,
Foam::volMesh> > const&) in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/
platforms/linux64Gcc45DPOpt/lib/libincompressibleRASModels.so"
#5 Foam::incompressible::RASModels::kOmegaSST::F2() const in "/usr/
local/OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so"
#6
Foam::incompressible::RASModels::kOmegaSST::kOmegaSST(Foam::GeometricField<Foam::Vector<double>,
Foam::fvPatchField, Foam::volMesh> const&,
Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>
const&, Foam::transportModel&, Foam::word const&, Foam::word const&)
in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so"
#7
Foam::incompressible::RASModel::adddictionaryConstructorToTable<Foam::incompressible::RASModels::kOmegaSST>::New(Foam::GeometricField<Foam::Vector<double>,
Foam::fvPatchField, Foam::volMesh> const&,
Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>
const&, Foam::transportModel&, Foam::word const&) in "/usr/local/
OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so"
#8
Foam::incompressible::RASModel::New(Foam::GeometricField<Foam::Vector<double>,
Foam::fvPatchField, Foam::volMesh> const&,
Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>
const&, Foam::transportModel&, Foam::word const&) in "/usr/local/
OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/
libincompressibleRASModels.so"
#9 main in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/platforms/
linux64Gcc45DPOpt/bin/simpleFoam"
#10 __libc_start_main in "/lib64/libc.so.6"
#11 Foam::UOPstream::write(char) in "/usr/local/OpenFOAM/
OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/bin/simpleFoam"
Floating point exception
[kankyo@DellT610 sstkw]$

こうなると、並列計算以外の問題ということになるのでしょうか?

お忙しい中申し訳ありませんが、よろしくお願いいたします。
> ...
>
> もっと読む ≫- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

Masashi Imano

unread,
Oct 24, 2011, 7:54:11 AM10/24/11
to open...@googlegroups.com
今野@携帯です。

omegaのファイルが小さければ、
貼ってください。
内部かパッチの境界条件で0になってい
る所がありませんか?

私の知っている研究室なので、
恐らく屋外気流を解いていて、
流体風の鉛直分布をsetDiscreteFields
で与えていると思いますが、
system/をsetDiscreteFieldsDictに
omegaのエントリーはありますか?

無ければ、omegaの鉛直分布が与えられておらず、
流入面か内部で0となっている可能性があります。

東京理科大学倉渕研究室卒研生

unread,
Oct 24, 2011, 8:23:53 AM10/24/11
to OpenFOAM
お世話になっております。
0/omegaのファイルは下記のようになっております。

/*--------------------------------*- C++ -
*----------------------------------*\
| =========
| |
| \\ / F ield | OpenFOAM: The Open Source CFD
Toolbox |
| \\ / O peration | Version:
1.7 |
| \\ / A nd | Web: www.OpenFOAM.com
|
| \\/ M anipulation
| |
\*---------------------------------------------------------------------------
*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object omega;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * //

dimensions [0 0 -1 0 0 0 0];

internalField uniform 1;

boundaryField
{
x_
{
type fixedValue;
value uniform 0;
}

_x
{
type zeroGradient;
}

y_
{
type slip;
}

_y
{
type slip;
}

_z
{
type slip;
}

".*"
{
type omegaWallFunction;
value uniform 0.079;
}
}

//
************************************************************************* //

setDiscreteFieldsDictは以下のようになっております。(数値部分一部省略)

/*--------------------------------*- C++ -
*----------------------------------*\
| =========
| |
| \\ / F ield | OpenFOAM: The Open Source CFD
Toolbox |
| \\ / O peration | Version:
1.7 |
| \\ / A nd | Web: http://www.OpenFOAM.org
|
| \\/ M anipulation
| |
\*---------------------------------------------------------------------------
*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object setDiscreteFieldsDict;
}

Fields
(
Uprofile
{
field U; //targetField
type vector; //type "scalar" or "vector"
direction "z"; //direction "x","y", or "z"
internal false ; //set internal field or not ,false or false
patchNames
(
x_
); //patchNames to set value
profile
(
( 0 0 0.02 0.618307738 0 0 )
( 0 0 0.06 0.641667838 0 0 )
( 0 0 0.1 0.664192495 0 0 )
); //if type is vector (x y z Ux Uy Uz)
}

kProfile
{
field k; //targetField
type scalar; //type "scalar" or "vector"
direction "z"; //direction "x","y", or "z"
internal false ; //
patchNames
(
x_
); //patchNames to set value
profile
(
( 0 0 0.02 0.048846919 )
( 0 0 0.06 0.051106436 )
( 0 0 0.1 0.053123415 )
); //if type scalar (x y z p)
}

eProfile
{
field epsilon; //targetField
type scalar; //type "scalar" or "vector"
direction "z"; //direction "x","y", or "z"
internal false ; //
patchNames
(
x_
); //patchNames to set value
profile
(
( 0 0 0.02 0.009740767 )
( 0 0 0.06 0.009837199 )
( 0 0 0.1 0.009867086 )
); //if type scalar (x y z p)
}
);

長くなってしまいましたが、どこか欠けている点はございますでしょうか?

お忙しい中申し訳ありませんが、よろしくお願いいたします。

ONO Hiroki

unread,
Oct 24, 2011, 12:10:41 PM10/24/11
to OpenFOAM
小野です。

x_
{
type fixedValue;
value uniform 0;
}

の部分が問題だと思います。k-epsilonモデルにしろ、k-omegaモデルにしろ、
kやepsilon、またはomegaが分母に来る式があるので、0になると0除算でエラーになります。
http://www.cfd-online.com/Wiki/SST_k-omega_model

今回、setDiscreteFieldsで初期値を与えられているようですが、
eProfile
{
field epsilon; //targetField
と、ターゲットの場がepsilonになっていて、omegaには初期値が正しく設定されていないようです。

今野先生も指摘されていましたが、下記のエラー
#3 Foam::divide(Foam::Field<double>&, Foam::UList<double> const&,
Foam::UList<double> const&) in "/usr/local/OpenFOAM/OpenFOAM-2.0.x/
platforms/linux64Gcc45DPOpt/lib/libOpenFOAM.so"

は、「OpenFOAM内部で割り算(divide)を行う際にエラーが生じた」という証です。
割り算でエラーが起こる場合のほとんどが、0除算が起きている場合で、なおかつ、OpenFOAM使い始めでは十中八九、kやepsilonなどが原因
であるので、
エラーメッセージに上記の文が出た場合は、まず、これらに0の値が設定されていないか、確認するとよいと思います。

なお、kやepsilon、omega等に0を設定したい場合は、代わりに1e-15など、十分に0に近いと見做せる値を用いるのが一般的と思いま
す。

東京理科大学倉渕研究室卒研生

unread,
Oct 25, 2011, 3:44:04 AM10/25/11
to OpenFOAM
お世話になっております。

ご指摘いただいた点を修正したところ、
計算を実行することができました。

とても勉強になりました。
ありがとうございました。
> > \*----------------------------------------------------------------------------
> > \*----------------------------------------------------------------------------
> > > 流入面か内部で0となっている可能性があります。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -
Reply all
Reply to author
Forward
0 new messages