Volumic sourceの初期条件等の設定方法

157 views
Skip to first unread message

T H

unread,
Nov 28, 2022, 1:39:03 PM11/28/22
to OpenFOAM
こんにちは。
Openfoamに関しては触り始めて数日です。

今回の計算では流速を固定して、パッシブスカラーの輸送方程式を解きたいと思っています。(scalarTransportFoamを使用しました。)
事前にSalomeにてメッシュを作成し、境界面グループ(inlet, outlet, free-slip, wall)と特定の領域をVolumic Sourceとして計算したいため"Source"と計算領域内の一部を設定しました。(説明が下手ですみません。)下の図を見ていただければ少しイメージしていただけるかと思います。

現状、例えばInletにScalarの値を1として固定して計算すればもちろん速度場に沿って下流に流れていく計算は何も問題なくできました。
ただ、今回はVoumic Sourceとして領域"Source"内にもScalarの値を1として固定して計算をしたいのですが、いろいろと調べても多くの場合、境界条件としては与えていますが、なかなかVolumic Sourceとして扱っている例が少なかったので、どなたかご教授いただければ幸いです。

今僕が設定したいことは0ディレクトリのT(スカラーの初期条件)で全て設定できるのでしょうか?それとも何かほかのファイル等が必要なのでしょうか?

何卒よろしくお願いします。
TH
a (2).png

T H

unread,
Nov 29, 2022, 4:54:35 AM11/29/22
to OpenFOAM
THです。いくつか補足をさせてください。
現状、salomeからエクスポートしてきたメッシュをOpenfoam内で変換し、その際にできた
case/constant/polyMesh内のcellZonesというファイルには以下のように"source"という名前できちんと読み込まれています。
今疑問に思うこととして、このSourceに計算中常にスカラー値1を与えて計算したいということになります。
なにか同様のこと(例えばheat sourceを置いているものや汚染源の拡散計算)などの適したチュートリルはありますでしょうか?
また、いろいろ調べたところ、このSourceに値を設定するためにはfvOptionというファイルで設定することになりますか?

/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  10
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       regIOobject;
    location    "constant/polyMesh";
    object      cellZones;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

1
(
source
{
    type cellZone;
cellLabels      List<label>
30
(
21
26
27

.
.
.
2022年11月28日月曜日 19:39:03 UTC+1 T H:

ttsy shmz

unread,
Nov 29, 2022, 4:15:55 PM11/29/22
to open...@googlegroups.com
ttsyです

fvOptions を使われてはいかがですか?
Google先生にお聞きしたリンクを貼っておきます。

<a (2).png>

--
このメールは Google グループのグループ「OpenFOAM」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには openfoam+u...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/openfoam/47521c2a-0891-4bb2-a15c-beafb085326en%40googlegroups.com にアクセスしてください。
<a (2).png>

T H

unread,
Nov 30, 2022, 8:58:28 AM11/30/22
to OpenFOAM
ttsy様 

ご助言ありがとうございます。
色々と例を見ながら試してみたのですがエラーが出てその解決に戸惑っています。
下記にfvOptionとエラーメッセージを張り付けておりますので、ご助言をいただければ幸いです。

##################################################################
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  dev                                   |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |

|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "constant";
    object      fvOptions;

}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
heatSource
{
    type            scalarSemiImplicitSource;
    active          true;
    selectionMode   cellZone;
 
    scalarSemiImplicitSourceCoeffs
    {
//        selectionMode   cellZone; // all, cellSet, cellZone, points
        cellSet         source;
        volumeMode      absolute; // absolute, specific
        injectionRateSuSp
        {
            T     (1 0);
        }
    }
}
// ************************************************************************* //
##############################################################

##############################################################
/*---------------------------------------------------------------------------*\

  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  10
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
Build  : 10-0347120b3b9d
Exec   : scalarTransportFoam
Date   : Nov 30 2022
Time   : 14:40:25
Host   : "tsubasa-VirtualBox"
PID    : 15788
I/O    : uncollated
Case   : /home/tsubasa/デスクトップ/paris8_test
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations


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

Create mesh for time = 0


SIMPLE: No convergence criteria found

Reading field T

Reading field U

Reading physicalProperties

Reading diffusivity DT

Reading/calculating face flux field phi

--> FOAM Warning : Creating fvModels from "constant/fvOptions"

Selecting finite volume model type scalarSemiImplicitSource


--> FOAM FATAL IO ERROR:
Unknown fvModel scalarSemiImplicitSource

Valid fvModels are:

22
(
accelerationSource
actuationDiskSource
buoyancyEnergy
buoyancyForce
coded
effectivenessHeatExchangerSource
explicitPorositySource
heatSource
heatTransfer
interRegionExplicitPorositySource
interRegionHeatTransfer
isotropicDamping
massSource
phaseLimitStabilisation
radialActuationDiskSource
rotorDisk
semiImplicitSource
sixDoFAccelerationSource
solidEquilibriumEnergySource
solidificationMeltingSource
verticalDamping
volumeFractionSource
)


file: /home/tsubasa/デスクトップ/paris8_test/constant/fvOptions/heatSource from line 20 to line 31.

    From function static Foam::autoPtr<Foam::fvModel> Foam::fvModel::New(const Foam::word&, const Foam::dictionary&, const Foam::fvMesh&)
    in file cfdTools/general/fvModels/fvModel.C at line 117.

FOAM exiting

################################################################
2022年11月29日火曜日 22:15:55 UTC+1 LongGe:

Hideaki Kominami

unread,
Nov 30, 2022, 11:02:22 AM11/30/22
to open...@googlegroups.com
THさん

kominamiです。

>--> FOAM FATAL IO ERROR:
>Unknown fvModel scalarSemiImplicitSource

“scalarSemiImplicitSource”というキーワードを認識できないという意味です。

候補のリストで示されている22個のキーワードを良く見てください。

以上です。

2022年11月30日(水) 22:58 T H <b144...@gmail.com>:
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/openfoam/10a8d084-6102-4442-a412-8d03b0604b4en%40googlegroups.com にアクセスしてください。

ttsy shmz

unread,
Nov 30, 2022, 2:39:25 PM11/30/22
to open...@googlegroups.com
ttsyです

あら〜、ファンデーション版ですね。辞書がコロコロ変わりますので、お使いのバージョンのdoxygen で探してはいいかでしょうか?

ファンデーション版は使わないので、ここからはご自分で探してください

iPhoneから送信

2022/11/30 22:58、T H <b144...@gmail.com>のメール:

ttsy様 
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/openfoam/10a8d084-6102-4442-a412-8d03b0604b4en%40googlegroups.com にアクセスしてください。

T H

unread,
Nov 30, 2022, 4:58:50 PM11/30/22
to OpenFOAM
kominami様
助言いただきありがとうございます。その後いろいろとfvOptionを編集して下記のような感じにしたのですが、また新しいエラーが出ており四苦八苦している状況です。なにかアドバイスをいただけると幸いです。Openfoamを触るのは初めてなのですがある程度のC++などの知識が必要でしょうか?

ttsy様、kominami様
指摘されて初めてESI版とファンデーション版があることを知ったのですが、ESI版でないと今後色々と不都合がでてくるのでしょうか?

教えていただければ幸いです。
TH


###################################################################################
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  dev                                   |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "constant";
    object      fvOptions;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
source_setting
{
    type            heatSource;

    selectionMode   cellZone;
    cellZone         sourcesourcesource;

    Q     1;
}
##########################################################################
##########################################################################
##########################################################################
/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  10
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
Build  : 10-0347120b3b9d
Exec   : scalarTransportFoam
Date   : Nov 30 2022
Time   : 22:51:00
Host   : "tsubasa-VirtualBox"
PID    : 18414

I/O    : uncollated
Case   : /home/tsubasa/デスクトップ/paris8_test
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations

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

Create mesh for time = 0


SIMPLE: No convergence criteria found

Reading field T

Reading field U

Reading physicalProperties

Reading diffusivity DT

Reading/calculating face flux field phi

--> FOAM Warning : Creating fvModels from "constant/fvOptions"

Selecting finite volume model type heatSource
    Name: source_setting
    - selecting cells using cellZone sourcesourcesource
    - selected 30 cell(s) with volume 0.04
--> FOAM Warning : Creating fvConstraints from "constant/fvOptions" rather than system/fvConstraints
No fvConstraints present

Calculating scalar transport

Courant Number mean: 1.46639 max: 4.77925
Time = 0.1s



--> FOAM FATAL ERROR:

    lookup of physicalProperties from objectRegistry region0 successful
    but it is not a basicThermo, it is a dictionary

    From function const Type& Foam::objectRegistry::lookupObject(const Foam::word&) const [with Type = Foam::basicThermo]
    in file /home/ubuntu/OpenFOAM/OpenFOAM-10/src/OpenFOAM/lnInclude/objectRegistryTemplates.C at line 178.

FOAM aborting

#0  Foam::error::printStack(Foam::Ostream&) at ??:?
#1  Foam::error::abort() at ??:?
#2  Foam::basicThermo const& Foam::objectRegistry::lookupObject<Foam::basicThermo>(Foam::word const&) const at ??:?
#3  Foam::fv::heatSource::addSupFields() const at ??:?
#4  Foam::fvModel::addsSupToField(Foam::word const&) const at ??:?
#5  Foam::tmp<Foam::fvMatrix<double> > Foam::fvModels::source<double>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::word const&, Foam::dimensionSet const&) const in "/opt/openfoam10/platforms/linux64GccDPInt32Opt/bin/scalarTransportFoam"
#6  ? in "/opt/openfoam10/platforms/linux64GccDPInt32Opt/bin/scalarTransportFoam"
#7  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#8  ? in "/opt/openfoam10/platforms/linux64GccDPInt32Opt/bin/scalarTransportFoam"
中止 (コアダンプ)

2022年11月30日水曜日 20:39:25 UTC+1 LongGe:

ttsy shmz

unread,
Nov 30, 2022, 6:02:10 PM11/30/22
to open...@googlegroups.com
ttsyです。

好きなOpenFOAMを使っていいと思います。

iPhoneから送信

2022/12/01 6:58、T H <b144...@gmail.com>のメール:

kominami様
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/openfoam/c723e7c1-501e-446c-98eb-1e4c1b693847n%40googlegroups.com にアクセスしてください。

T H

unread,
Dec 4, 2022, 7:58:40 AM12/4/22
to OpenFOAM
ttsy様 kominami様

いろいろとアドバイスをいただきありがとうございます。
ESI版の方がよさそうだったのでESI版をインストールして使い始めました。

現在新しい問題に直面したのでよければアドバイスをいただければと思います。
上記の質問では
1.メッシュとメッシュのグルーピング(inlet, outlet, volumic source)をSalome作成
2.Openfoam内でメッシュを変換
3.Salomeで設定したvolumic sourceと名前をつけた領域にvolmic sourceを設定
4.解析に成功

次にやりたいこととして、メッシュ作成の段階で(Salome内)volumic surceなどの領域のグルーピングをせずに
その設定をopenfoam内でやることはできるでしょうか?
説明が分かりづらいと思うので例えばfvOptions内で
selectionMode   cellZone; // all, cellSet, cellZone, points
のようにいくつかoptionがあると思うのですが
例えばallは領域全体、pointsはある点にvolumic sourceを置くことができると思うのですが
例えば領域内の座標を8点指定してvolumeの座標を指定してやり、そこにvolumic sourceを置くことはできるのでしょうか?
今のところ、
・salomeで事前にvolumicのグルーピングをしたときはcellZone (selectionMode)
・point sourceのときは、selectionModeでpointsを指定し、fvoptions内で点の座標
ということはできたのですが、fvOptions内で領域を指定するということは可能でしょうか?


現状のfvOptionはこれです
###################################################################
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "constant";
    object      fvOptions;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
source
{
    type            scalarFixedValueConstraint;
    active          true;
 
    scalarFixedValueConstraintCoeffs
    {

        selectionMode   cellZone; // all, cellSet, cellZone, points
        cellZone    source;
     mode    uniform;
        fieldValues
        {
            T    2;
        }
    }
}
###################################################################
2022年12月1日木曜日 0:02:10 UTC+1 LongGe:

ttsy shmz

unread,
Dec 4, 2022, 5:48:58 PM12/4/22
to open...@googlegroups.com
ttsy です。

cellZoneやcellSetはtopoSetで作れます。これをキーワードにしてGoogle先生に聞いてみてください。

iPhoneから送信

2022/12/04 21:58、T H <b144...@gmail.com>のメール:


このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/openfoam/2747d1a8-2b0f-411c-843a-785125c72180n%40googlegroups.com にアクセスしてください。

Hideaki Kominami

unread,
Dec 5, 2022, 7:14:15 AM12/5/22
to open...@googlegroups.com
THさん 

kominamiです。 

Google先生に仲介してもらって世界中の賢人に教えを請うのも良いですが、下記のサイトにアクセスしてサイト内検索するのが良いと思います。(私自身も良くお世話になっています。)
https://ss1.xrea.com/penguinitis.g1.xrea.com/index.html

fvOption{ } について、ソース項の追加について、元の投稿に記載されているやりたいことに近い事例とか、celsetの使い方とかが見つかります。記載の前提になっているOpenFOMAのバージョンの違いについては、たいていはエラーメッセージの unknown・・・のあとのキーワード候補を見れば修正する場所が判ると思います。そのあとソースコードを検索してコメントのusageを見てください。たぶん、そこまでの対応で大丈夫で、ソースコードの式自体を読む必要まではないでしょう。

では、健闘をお祈りしています。

2022年12月5日(月) 7:48 ttsy shmz <ttsy.s...@gmail.com>:
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/openfoam/279A7D4C-5698-4CCC-89F2-047421FAA19C%40gmail.com にアクセスしてください。
Reply all
Reply to author
Forward
0 new messages