皆様はじめまして、東京理科大学の石川と申します.4月よりOpenFOAMを導入しているのですが身近に知見のある者もおらず,現在の問題に関しまして一向の進展が見られないのでこの場を借りて質問をさせていただきました.長々と読みづらい文章になってしまっているかと思いますがどうぞよろしくお願い申し上げます.
現在Ubuntu 11.04 OpenFOAM ver 2.1.0で速度の境界条件にマランゴニ境界条件を定義しようとしています.使用ソルバーはicoFoamに熱を加えたmy_icoFoamというソルバーを使用しています
(こちらの記事を参考にさせていただきました
http://openfoamwiki.net/index.php/How_to_add_temperature_to_icoFoam)
添付させていただきました境界条件のファイルは
http://www.cfd-online.com/Forums/openfoam-solving/58066-marangoni-bc.htmlにおきまして使用が確認されているものです.
また境界条件のコンパイルに関しましては以前のTera様の質問を参考にさせていただいております.(
https://groups.google.com/forum/?fromgroups#!topic/openfoam/axHRwjp2z3s)
下記が私が行った手順とエラーメッセージになります
1.下記の用にfvPatchFields内にmarangoniというディレクトリを作成し、その中に現在添付しております、
marangoniFvPatchVectorField.CとmarangoniFvPatchVectorField.Hを入れます
tomoki@tomoki-VirtualBox:~/OpenFOAM/OpenFOAM-2.1.0/src/finiteVolume/fields/fvPatchFields/
marangoni$
2.次にtomoki@tomoki-VirtualBox:~/OpenFOAM/OpenFOAM-2.1.0/src/finiteVolume/Make$ 内のfiles に下記のような文を加えwmakeを行いました
marangoniFvPatchFields = $(fvPatchFields)/marangoni
$(marangoniFvPatchFields)/marangoniFvPatchVectorField.C
3.wmakeを行いますとtomoki@tomoki-VirtualBox:~/OpenFOAM/OpenFOAM-2.1.0/src/finiteVolume/Make/linuxGccDPOpt$ 内に
marangoniFvPatchVectorField.o
.tomoki@tomoki-VirtualBox:~/OpenFOAM/OpenFOAM-2.1.0/src/finiteVolume/fields/fvPatchFields/
marangoni$ 内に
marangoniFvPatchVectorField.dep
というファイルが現れます.またこのwmakeは下記のような形で終了します.
Make/linuxGccDPOpt/porousZone.o: In function `Foam::porousZone::~porousZone()':
porousZone.C:(.text._ZN4Foam10porousZoneD2Ev[_ZN4Foam10porousZoneD5Ev]+0x58): undefined reference to `Foam::coordinateSystem::~coordinateSystem()'
collect2: ld はステータス 1 で終了しました
make: *** [OpenFOAM.out] エラー 1
4.次にtomoki@tomoki-VirtualBox:~/OpenFOAM/tomoki-2.1.0/run/bc_cavity/0$ 内でUの境界条件を
movingWall
{
type marangoni;
marangonicoeff 0.0005;
}
とし、blockMeshDictの境界条件を
movingWall
{
type marangoni;
faces
(
(3 7 6 2)
);
}
としましたところ下記の用なエラーメッセージが現れました.
--> FOAM FATAL IO ERROR:
Unknown patchField type marangoni for patch type genericPatch
Valid patchField types are :
59
(
SRFFreestreamVelocity
SRFVelocity
activeBaffleVelocity
activePressureForceBaffleVelocity
:
:
:
wedge
zeroGradient
)
file: /home/tomoki/OpenFOAM/tomoki-2.1.0/run/bc_cavity/0/U::boundaryField::movingWall from line 28 to line 29.
From function fvPatchField<Type>::New(const fvPatch&, const DimensionedField<Type, volMesh>&, const dictionary&)
in file /opt/openfoam210/src/finiteVolume/lnInclude/fvPatchFieldNew.C at line 135.
FOAM exiting
となりおそらくコンパイルが上手くいっていないと考えております.
私の疑問点と行った解決策と致しましては
1.
tomoki@tomoki-VirtualBox:~/OpenFOAM
/OpenFOAM-2.1.0/src/finiteVolume/fields/fvPatchFields
/marangoni$
tomoki@tomoki-VirtualBox:~/OpenFOAM/
tomoki-2.1.0/run/my_cavity/0$
というように別のディレクトリ内でコンパイルを行ったことが原因かどうか
2.ブロックメッシュディクト内でtype marangoni という形でメッシュを作成したところ特にエラーもなかった点
(ブロックメッシュ内のmovingWallのtypeをmarangoni, U内のmovingWallのtypeをslipにしますと計算は実効されました)
3.また最後のエラーメッセージにおいて
/opt/openfoam210/src/finiteVolume/lnInclude/fvPatchFieldNew.C at line 135.
となっておりましたので/opt/openfoam210/src/finiteVolume/lnInclude 内を変更しようとしたところ"許可がありません"となり一切の変更が行えませんでした
(権限の変更を試みましたが上手くいきませんでした)
以上になります.長々と駄文を本当に申し訳ありませんでした.正直なところ私自身のOpenFOAMの基礎知識とLinuxの使用方法の基礎知識の双方が欠如しているためのエラーが多々あるかと思っています.もしよろしければ部分的でも構いませんのでアドバイス等をいただければと思います.どうぞよろしくお願い致します.最後に本当に長々と失礼致しました.