Z0型壁関数を適用した計算の方法に関して

1,504 views
Skip to first unread message

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

unread,
Dec 13, 2011, 10:45:28 PM12/13/11
to OpenFOAM
お世話になっております。
たびたびの投稿になってしまい、申し訳ありません。

現在、OpenFOAMを使ってZ0型壁関数を適用した計算を
試みたいと思っております。

壁関数は、u/u*=1/k・ln(y/Z0) のタイプです。

このような設定は、nutRoughWallFunctionを利用すれば
可能なのでしょうか。

また、可能な場合、詳細な数値の設定などは
どのように行えばよいでしょうか。

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

ohbuchi

unread,
Dec 14, 2011, 7:00:45 AM12/14/11
to OpenFOAM
こんばんは。
nutRoughWallFunctionで可能だと思います。
下記論文にksとZ0の対応関係が説明されています(p.17、y0=Z0)。
http://windenergyresearch.org/downloads/Martinez_MScthesis.pdf

ご参考まで。

tomihara

unread,
Dec 14, 2011, 7:09:03 AM12/14/11
to open...@googlegroups.com
お世話になっております。
勉強会@関西幹事の冨原と申します。
自身の勉強の意味も込めて投稿します。
専門的な事は、他の方がフォローしてくださると思います。すみません

ちなみに、今回お話に出てきた、"nutRoughWallFunction"は
OF2.0.0から"nutkRoughWallFunction"に変更されているようですね。(kがついた)

使用方法ですが、
検索の結果、使用されているtutorialが1つだけあるようです。

OF1.7.1の場合は、「simpleWindFoam」のtutorialで
/opt/openfoam171/tutorials/incompressible/simpleWindFoam/turbineSiting
OF2.0.0の場合は、「windSimpleFoam」のtutorialで
/opt/openfoam200/tutorials/incompressible/windSimpleFoam/turbineSiting

それぞれ0/nutで"nutRoughWallFunction"または"nutkRoughWallFunction"を使用しています。
ちなみに、設定は
---------------------------------
type            nutkRoughWallFunction;
Ks              uniform 0.2; //Ks = 20 Z0
Cs              uniform 0.5;
value           uniform 0.0;
---------------------------------
となっています。

ご参考になれば幸です。
冨原

Masashi Imano

unread,
Dec 14, 2011, 7:29:33 AM12/14/11
to open...@googlegroups.com
今野です。

お使いのOpenFOAMのバージョンが2.0だとして説明します。

1.7用の和訳ではなく、2.0用のUserGuideの

7.2.2 Wall functions
http://www.openfoam.com/docs/user/turbulence.php#x38-2090007.2.2

を見ると、

find $FOAM_SRC/turbulenceModels -name wallFunctions

で全ての壁関数を見れますと、あるので実際に端末で実行してみると、

/Users/imano/OpenFOAM/OpenFOAM-2.0.x/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions
/Users/imano/OpenFOAM/OpenFOAM-2.0.x/src/turbulenceModels/compressible/RAS/backwardsCompatibility/wallFunctions
/Users/imano/OpenFOAM/OpenFOAM-2.0.x/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions
/Users/imano/OpenFOAM/OpenFOAM-2.0.x/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions
/Users/imano/OpenFOAM/OpenFOAM-2.0.x/src/turbulenceModels/incompressible/RAS/backwardsCompatibility/wallFunctions
/Users/imano/OpenFOAM/OpenFOAM-2.0.x/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions

などと表示されます(/Users/imano/OpenFOAM/OpenFOAM-2.0.x/までは設定によって異なります。)

ここで、非圧縮性流れが対象で、乱流モデルがRASモデルだとすると

src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions

がそれ用の壁関数のソースがあるディレクトリですから、
さらに以下のようにしてそこに移動し、
ディレクトリの中身を表示します。

cd src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions
ls

すると、以下の各場に対する壁関数のディレクトリが表示されると思います。

epsilonWallFunctions kappatWallFunctions kqRWallFunctions nutWallFunctions omegaWallFunctions

ご承知の通り、粗度を考慮した壁関数の指定はnutWallFunctionで行いますから、以下を実行します。

cd nutWallFunctions
ls

出力は以下です。

nutLowReWallFunction nutUTabulatedWallFunction nutkWallFunction
nutURoughWallFunction nutUWallFunction
nutUSpaldingWallFunction nutkRoughWallFunction

この内、名前からわかる通り、以下が粗度を考慮したnut用の壁関数です

nutURoughWallFunction
nutkRoughWallFunction

これに対する詳しい説明は現在の所UserGuideに載ってないので、
どうしてもソースを見る必要があります。

nutkRoughWallFunction/nutkRoughWallFunction.H :

Description
Boundary condition for turbulent (kinematic) viscosity when using wall
functions for rough walls, based on turbulence kinetic energy.

Manipulates the E parameter to account for roughness effects, based on
KsPlus.

- roughness height = sand-grain roughness (0 for smooth walls)
- roughness constant = 0.5-1.0 (0.5 default)
(略)
//- Roughness height
scalarField Ks_;

//- Roughness constant
scalarField Cs_;

変数名最後に_が付いていますが、これは内部変数であるためで、nut内で指定
する場合には、最後の_は通常必要ありません。

ですから、冨原さんが書かれているようにnutkRoughWallFunctionなら、

type nutkRoughWallFunction;
Ks uniform 0.2; //Ks = 20 Z0
Cs uniform 0.5;
value uniform 0.0;

などと指定することになります。

さらにz0とKsの関係はohbuchiさんの書かれた論文を参考にしてください。
(私も初めて見ました。ohbuchiさんいつも卓越したご助言ありがとうございます。)

また、Version 2.0から加わったnutURoughWallFunction は以下の通り、
速度ベースの壁関数です。

nutURoughWallFunction/nutURoughWallFunction.H :

Description
Wall function boundary condition for rough walls, based on velocity.
(略)
// Roughness model parameters

//- Height
scalar roughnessHeight_;

//- Constant
scalar roughnessConstant_;

//- Scale factor
scalar roughnessFactor_;

実装の詳細はは、ソース本体 nutURoughWallFunction/nutURoughWallFunction.C
を見てください。

また、だいぶ前にもz0型の境界条件はこのMLで話題になったことがありますので、
こちらもご参考まで。

https://groups.google.com/group/openfoam/browse_thread/thread/e860653ba49e51ff/9137e61beed86d85?hl=ja&lnk=gst&q=z0#9137e61beed86d85

2011年12月14日12:45 東京理科大学倉渕研究室卒研生 <miwa...@gmail.com>:

> --
> このメールは Google グループのグループ「OpenFOAM」の登録者に送られています。
> このグループに投稿するには、open...@googlegroups.com にメールを送信してください。
> このグループから退会するには、openfoam+u...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/openfoam?hl=ja からこのグループにアクセスしてください。
>

--
IMANO Masashi, Ph.D.
Assistant Professor
Department of Architecture, Graduate School of Engineering,
The University of Tokyo
7-3-1, Hongo, Bunkyo-ku, Tokyo, Japan, 113-8656
E-mail:im...@arch.t.u-tokyo.ac.jp
Phone:+81-3-5841-6164(direct), +81-3-5841-6179(Laboratory)
Facsimile:+81-3-5841-8511

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

unread,
Dec 15, 2011, 1:54:56 AM12/15/11
to OpenFOAM
お世話になっております。

Ohbuchi様
毎回のご回答ありがとうございます。
紹介していただいた論文を参考に進めていこうと思います。

冨原様
tutorialを見つけることができました。
これに倣って進めていこうと思います。

今野様
いつも詳しい説明をありがとうございます。
find $FOAM_SRC/turbulenceModels -name wallFunctions
を試してみたのですが、
私が使用している端末には、
最初からOpenFOAMがインストール済みだったためか、
srcディレクトリからソースコードを見ることができないようですので、
その端末の業社に問い合わせることになりました。
いろいろと検討してみようと思います。

お三方とも、ありがとうございました。

On 12月14日, 午後9:29, Masashi Imano <masashi.im...@gmail.com> wrote:
> 今野です。
>
> お使いのOpenFOAMのバージョンが2.0だとして説明します。
>
> 1.7用の和訳ではなく、2.0用のUserGuideの
>

> 7.2.2 Wall functionshttp://www.openfoam.com/docs/user/turbulence.php#x38-2090007.2.2

> https://groups.google.com/group/openfoam/browse_thread/thread/e860653...
>
> 2011年12月14日12:45 東京理科大学倉渕研究室卒研生 <miwatf...@gmail.com>:

Masashi Imano

unread,
Dec 15, 2011, 2:18:42 AM12/15/11
to open...@googlegroups.com
今野です。

> いつも詳しい説明をありがとうございます。
> find $FOAM_SRC/turbulenceModels -name wallFunctions
> を試してみたのですが、

> 最初からOpenFOAMがインストール済みだったためか、
> srcディレクトリからソースコードを見ることができないようですので、
> その端末の業社に問い合わせることになりました。

以下での私の書き方が悪かったですね。
(OpenFOAMのインストールディレクトリにで作業していると仮定していました)。

>> cd src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions
>> ls
>>

代りに以下を実行してみてください。

src
cd turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions
ls

これで以下の各場に対する壁関数のディレクトリが表示されるのあれば、
その下のソースも通常見れると思います。

>> epsilonWallFunctions kappatWallFunctions kqRWallFunctions nutWallFunctions omegaWallFunctions

2011年12月15日15:54 東京理科大学倉渕研究室卒研生 <miwa...@gmail.com>:

Reply all
Reply to author
Forward
0 new messages