周辺市街地を含む住宅の気流解析

1,454 views
Skip to first unread message

悠己山中

unread,
Mar 14, 2012, 4:46:58 AM3/14/12
to open...@googlegroups.com
はじめまして、東京理科大学倉渕研究室院生のyamanakaと申します。
以前よりStar-CDを用いて周辺市街地を含む住宅の気流解析解析を行っていました。
今回、同様の解析をOpenFOAM(2.0)でも行うにあたり、
その方法について伺いたくトピックスを立てさせて頂きました。

モデルは添付ファイルのような周辺の建物を含めた住宅を使用し、
star-CDでは流入出は周期境界(cyclic境界)で流入風量を固定し解析を行っていました。

OpenFOAMにおいても同様に流入出を周期境界を使用し解析を行うことができるのでしょうか?
その場合はどのような設定が必要となるでしょうか?

まだまだ使い始めで、要領の得ない質問となってしまっているのですが
ご教授頂けないでしょうか。皆様お忙しいと思うのですが、宜しくお願い致します。

model.png

Masashi Imano

unread,
Mar 14, 2012, 6:26:42 AM3/14/12
to open...@googlegroups.com
今野です。

> OpenFOAMにおいても同様に流入出を周期境界を使用し解析を行うことができるのでしょうか?
> その場合はどのような設定が必要となるでしょうか?

流入パッチと流出パッチについてcyclicの指定をするだけです。

チャンネル流流れのチュートリアル
incompressible/channelFoam/channel395 が参考になると思います。

他にも、

tut
find . -name blockMeshDict | xargs grep cyclic

とすれば、blockMeshDict で cyclic を指定しているケースが沢山
でてくると思います。

日本建築学会 市街地風環境予測のための流体数値解析ガイドブック
のCase D(街区内に建つ高層建物モデル)に対するOpenFOAM V&V ケース
を周期境界条件に変更したものを添付します。
./Allrunで一応動きますので、設定の参考にしてください。

Ref:
日本建築学会 市街地風環境予測のための流体数値解析ガイドブック
http://www.aij.or.jp/jpn/publish/cfdguide/index.htm

OpenFOAM V&V test cases related to AIJ guidelines for practical
applications of CFD to pedestrian wind environment around buildings.
http://www.opencae.jp/wiki/OpenFOAM-VandV-SIG/AIJ-PWEAB

ただし、このメール見て急いで作成したケースなので、結果は良く見ておりません。
なお、上記の例では上空の速度を固定しております。

> star-CDでは流入出は周期境界(cyclic境界)で流入風量を固定し解析を行っていました。

流入風量固定の方法や上空の境界条件は何でしょうか?
それによって設定が異なります。

2012年3月14日17:46 悠己山中 <ariak...@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

AIJ-PWEAB-CaseD-cyclic.tar.gz

東京理科大学倉渕研究室

unread,
Mar 16, 2012, 1:10:00 AM3/16/12
to OpenFOAM
東京理科大学倉渕研究室院生のyamanakaです。

今野様、丁寧な回答ありがとうございます。
ケースまで作成して頂き、何から何までありがとうございます。
参考にさせて頂き設定、解析を行ってみます。

> 流入風量固定の方法や上空の境界条件は何でしょうか?
についてなのですが、star-CDでは境界面の合計風量の規定を
行っており、風量固定ではないと先生に指摘されてしまいました。
自分の勉強不足で申し訳ありません。

また上空の境界ですが、対称境界(symplane)を使用してします。
> 2012年3月14日17:46 悠己山中 <ariakos0...@gmail.com>:
>
>
>
>
>
> > はじめまして、東京理科大学倉渕研究室院生のyamanakaと申します。
> > 以前よりStar-CDを用いて周辺市街地を含む住宅の気流解析解析を行っていました。
> > 今回、同様の解析をOpenFOAM(2.0)でも行うにあたり、
> > その方法について伺いたくトピックスを立てさせて頂きました。
>
> > モデルは添付ファイルのような周辺の建物を含めた住宅を使用し、
> > star-CDでは流入出は周期境界(cyclic境界)で流入風量を固定し解析を行っていました。
>
> > OpenFOAMにおいても同様に流入出を周期境界を使用し解析を行うことができるのでしょうか?
> > その場合はどのような設定が必要となるでしょうか?
>
> > まだまだ使い始めで、要領の得ない質問となってしまっているのですが
> > ご教授頂けないでしょうか。皆様お忙しいと思うのですが、宜しくお願い致します。
>
> > --
> > このメールは 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
>
> AIJ-PWEAB-CaseD-cyclic.tar.gz
> 19K表示ダウンロード- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

Masashi Imano

unread,
Mar 19, 2012, 2:03:02 AM3/19/12
to open...@googlegroups.com
今野です。

Star-CDでの「境界面の合計風量の規定」は具体的にどのように行なっているのでしょうか?

a. incompressible/channelFoam/channel395 のソルバー( channelFoam )のように、
風量が既定値になるように、平均圧力勾配を制御

b. 風量が既定値になるよう、cyclic なパッチ間で圧力のみ圧力差をつける

c. cyclicなパッチの流入側の風量が既定値になるよう、流出側の速度をスケーリングして
流入側に戻す

d. その他のやり方

> また上空の境界ですが、対称境界(symplane)を使用してします。

対称境界、もしくはslip境界を適用すると、その上空高さで境界層高さが規定されて
しまうと思いますので、十分高く解析領域を取る必要が出てくると思います。

2012年3月16日14:10 東京理科大学倉渕研究室 <ariak...@gmail.com>:

東京理科大学倉渕研究室

unread,
Mar 21, 2012, 2:38:53 AM3/21/12
to OpenFOAM
東京理科大学倉渕研究室院生のyamanakaです。

今野様
> Star-CDでの「境界面の合計風量の規定」は具体的にどのように行なっているのでしょうか?
についてですが
d.Star-CDでは風量の数値を直接規定しています。
方法は以下に記載されています。
  日本建築学会計画系論文集 (561), 47-52, 2002-11-30
  2.2 定風量型周期境界条件
  http://ci.nii.ac.jp/els/110004658154.pdf?id=ART0007383905&type=pdf&lang=jp&host=cinii&order_no=&ppv_type=0&lang_sw=&no=1332310780&cp=


またOpenFOAMの操作についての質問となるのですが
a. incompressible/channelFoam/channel395 ( channelFoam )において
平均圧力勾配はどのファイルで制御を行っているのでしょうか。
何から何まで教えて頂きながら、また不躾な質問となってしまうのですがご教授お願い致します。

Masashi Imano

unread,
Mar 21, 2012, 3:50:42 AM3/21/12
to open...@googlegroups.com
今野です。

> a. incompressible/channelFoam/channel395 ( channelFoam )において
> 平均圧力勾配はどのファイルで制御を行っているのでしょうか。

チュートリアルのディレクトリの命名規則は、「カテゴリ名/ソルバー名/ケース名」
となっており、対応するソルバーのディレクトリは 「applications/solvers/カテゴリ名/ソルバー名」
となるので、 この場合は applications/solvers/incompressible/channelFoam です。

また、この中にはいくつかのファイルがありますが、平均圧力勾配の制御はソルバー
のメインのソースファイルである channelFoam.C の以下で行っています。

// Correct driving force for a constant mass flow rate

// Extract the velocity in the flow direction
dimensionedScalar magUbarStar =
(flowDirection & U)().weightedAverage(mesh.V());

// Calculate the pressure gradient increment needed to
// adjust the average flow-rate to the correct value
dimensionedScalar gragPplus =
(magUbar - magUbarStar)/rAU.weightedAverage(mesh.V());

U += flowDirection*rAU*gragPplus;

gradP += gragPplus;

Info<< "Uncorrected Ubar = " << magUbarStar.value() << tab
<< "pressure gradient = " << gradP.value() << endl;

2012年3月21日15:38 東京理科大学倉渕研究室 <ariak...@gmail.com>:

東京理科大学倉渕研究室

unread,
Mar 22, 2012, 3:16:53 AM3/22/12
to OpenFOAM
東京理科大学倉渕研究室院生のyamanakaです。

今野様、素早い回答ありがとうございます。
風量を欲しい値にするために、平均圧力勾配を制御するにはこのファイルを
書き換えるというこでいいのでしょうか?

また先日頂いた日Case Dに対するOpenFOAM V&V ケース を周期境界条件に変更したものでは
どのファイルで圧力差?圧力勾配?をつけているのでしょうか。


On 3月21日, 午後4:50, Masashi Imano <masashi.im...@gmail.com> wrote:
> 今野です。
>
> > a. incompressible/channelFoam/channel395 ( channelFoam )において
> > 平均圧力勾配はどのファイルで制御を行っているのでしょうか。
>
> チュートリアルのディレクトリの命名規則は、「カテゴリ名/ソルバー名/ケース名」
> となっており、対応するソルバーのディレクトリは 「applications/solvers/カテゴリ名/ソルバー名」
> となるので、 この場合は applications/solvers/incompressible/channelFoam です。
>
> また、この中にはいくつかのファイルがありますが、平均圧力勾配の制御はソルバー
> のメインのソースファイルである channelFoam.C の以下で行っています。
>
> // Correct driving force for a constant mass flow rate
>
> // Extract the velocity in the flow direction
> dimensionedScalar magUbarStar =
> (flowDirection & U)().weightedAverage(mesh.V());
>
> // Calculate the pressure gradient increment needed to
> // adjust the average flow-rate to the correct value
> dimensionedScalar gragPplus =
> (magUbar - magUbarStar)/rAU.weightedAverage(mesh.V());
>
> U += flowDirection*rAU*gragPplus;
>
> gradP += gragPplus;
>
> Info<< "Uncorrected Ubar = " << magUbarStar.value() << tab
> << "pressure gradient = " << gradP.value() << endl;
>
> 2012年3月21日15:38 東京理科大学倉渕研究室 <ariakos0...@gmail.com>:
>
>
>
>
>
> > 東京理科大学倉渕研究室院生のyamanakaです。
>
> > 今野様
> >> Star-CDでの「境界面の合計風量の規定」は具体的にどのように行なっているのでしょうか?
> > についてですが
> > d.Star-CDでは風量の数値を直接規定しています。
> > 方法は以下に記載されています。
> >   日本建築学会計画系論文集 (561), 47-52, 2002-11-30
> >   2.2 定風量型周期境界条件
> >   http://ci.nii.ac.jp/els/110004658154.pdf?id=ART0007383905&type=pdf&la...
>
> > またOpenFOAMの操作についての質問となるのですが
> > a. incompressible/channelFoam/channel395 ( channelFoam )において
> > 平均圧力勾配はどのファイルで制御を行っているのでしょうか。
> > 何から何まで教えて頂きながら、また不躾な質問となってしまうのですがご教授お願い致します。
>
> > --
> > このメールは 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- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

ohbuchi

unread,
Mar 23, 2012, 1:26:15 AM3/23/12
to OpenFOAM
横から失礼します。V&Vケースの場合は、速度(0/Uファイル)が上面で固定されている(fixedValue)ことで風速が
維持されるのだと思います。

fan境界を使うとソースコードを使わずにcyclic境界パッチ間の差圧を定義できます。
チュートリアルのpimpleFoam/TJunctionFan を参考にしてください。
差圧は流速の関数で定義され、
  ⊿p = f_1 + f_2 * v + f_3 * v^2 + ...
係数fをリストで下記の様に定義します。
  f List<scalar> 2(100 -1.0);

以上、ご参考まで。

東京理科大学倉渕研究室

unread,
Mar 23, 2012, 6:49:22 AM3/23/12
to OpenFOAM
東京理科大学倉渕研究室院生のyamanakaです。

ohbuchi様、素早い回答ありがとうございます。

> fan境界を使うとソースコードを使わずにcyclic境界パッチ間の差圧を定義できます。
fan境界とcyclic境界には差圧を定義出来る以外にどのような違いがあるのでしょうか。

> 係数fをリストで下記の様に定義します。
>   f List<scalar> 2(100 -1.0);
とありますが、2(100 -1.0)は何のパラメータなのでしょうか。
> > > - 引用テキストを表示 -- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

ohbuchi

unread,
Mar 23, 2012, 7:30:27 AM3/23/12
to OpenFOAM
fan境界はcyclicJump境界から派生したものです。バッフル境界でファンを模擬する
場合などに用いますが、物理的に離れたパッチ間でも適用可能です。
⊿P=f1 + f2 * v + f3*v^2 + ...
としたときの係数 (f1 f2 f3 f4 ...)
を係数の数をnとするとき
 f List<scalar> n(f1 f2 f3 ... fn)
と指定します。

東京理科大学倉渕研究室

unread,
Apr 6, 2012, 1:49:17 AM4/6/12
to OpenFOAM
東京理科大学倉渕研究室院生のyamanakaです。
返信大変遅れ申し訳ありませんでした。
ohbuchi様回答ありがとうございました。

チュートリアルのpimpleFoam/TJunctionFan ですがAllrunで実行したところ以下の文章が出ました。
何の設定が足りないのでしょうか。ご教授お願い致します。

./Allrun
Running blockMesh on /usr/local/OpenFOAM/OpenFOAM-2.0.x/tutorials/
incompressible/pimpleFoam/TJunctionFan
/usr/local/OpenFOAM/OpenFOAM-2.0.x/bin/tools/RunFunctions: line 47:
log.blockMesh: Permission denied
Running setSet on /usr/local/OpenFOAM/OpenFOAM-2.0.x/tutorials/
incompressible/pimpleFoam/TJunctionFan
/usr/local/OpenFOAM/OpenFOAM-2.0.x/bin/tools/RunFunctions: line 47:
log.setSet: Permission denied
./Allrun: line 20: log.createBaffles: Permission denied
rm: cannot remove `log.setSet': No such file or directory
Running setSet on /usr/local/OpenFOAM/OpenFOAM-2.0.x/tutorials/
incompressible/pimpleFoam/TJunctionFan
/usr/local/OpenFOAM/OpenFOAM-2.0.x/bin/tools/RunFunctions: line 47:
log.setSet: Permission denied
rm: cannot remove `log.createBaffles': No such file or directory
./Allrun: line 27: log.createBaffles: Permission denied
Running pimpleFoam on /usr/local/OpenFOAM/OpenFOAM-2.0.x/tutorials/
incompressible/pimpleFoam/TJunctionFan
/usr/local/OpenFOAM/OpenFOAM-2.0.x/bin/tools/RunFunctions: line 47:
log.pimpleFoam: Permission denied

ohbuchi

unread,
Apr 6, 2012, 1:55:10 AM4/6/12
to OpenFOAM
log.** Permission deniedとあるので、チュートリアルディレクトリの書き込み権限がないと
いうことでしょう。
チュートリアルのディレクトリをご自分のワークディレクトリにコピーして実行して下さい。

東京理科大学倉渕研究室

unread,
Apr 6, 2012, 3:03:52 AM4/6/12
to OpenFOAM
東京理科大学倉渕研究室院生のyamanakaです。
ohbuchi様、回答大変ありがとうございます。
OpenFoamに関係しない質問で申し訳ありませんでした。

いくつか試行し行なってみます。
またわからなことがお世話になると思いますが、長々と拙い質問に答えて頂きありがとうございました。

東京理科大学倉渕研究室

unread,
Apr 7, 2012, 9:11:09 AM4/7/12
to OpenFOAM
いつも大変お世話になっております。
東京理科大学倉渕研究室院生のyamanakaです。
また質問なのですが、内容はあまり変化がないので同じトピックに書かせて頂きました。

cyclic、fan境界についてなのですがtutorials/pimpleFoam/TJunctionFan/0/pにおいて

fan_half1
{
type fan;
patchType cyclic;
f 2(100 -0.1);
value uniform 0;
}

とあるのですが例えば f 1(100);  の場合は
差圧⊿P=100 で一定になる、ということになるのでしょうか。
また⊿P=f1 + f2 * v + f3*v^2 + ...   の速度vはどこの速度の事なのでしょうか。

稚拙な質問となってしまうのですが、ご教授宜しくお願いします。

ohbuchi

unread,
Apr 7, 2012, 8:01:32 PM4/7/12
to OpenFOAM
圧力差(jump)は、finiteVolume/fields/fvPatchFields/derived/fan/
fanFvPatchFields.Cで
下記の様に計算されています。

jump_ = f_[0];
if (f_.size() > 1)
{
const surfaceScalarField& phi =
db().lookupObject<surfaceScalarField>("phi");
const fvsPatchField<scalar>& phip =
patch().patchField<surfaceScalarField, scalar>(phi);
scalarField Un(max(phip/patch().magSf(), scalar(0)));
if (phi.dimensions() == dimDensity*dimVelocity*dimArea)
{
Un /= patch().lookupPatchField<volScalarField,
scalar>("rho");
}
for (label i=1; i<f_.size(); i++)
{
jump_ += f_[i]*pow(Un, i);
}
jump_ = max(jump_, scalar(0));
}

この様に係数が定数項なら速度によらず一定値f_[0]になります。
Vはパッチでの速度(phiから求める)です。
> ...
>
> もっと読む ≫

東京理科大学倉渕研究室

unread,
Apr 9, 2012, 1:42:58 AM4/9/12
to OpenFOAM
東京理科大学倉渕研究室院生のyamanakaです。
いつもお世話になっております。
ohbuchi様、回答ありがとうございます。

自分に理解力がないばかりで不躾となってしまうのですが
圧力差を一定にするには以前自分が書いた
f 1(100);
とすれば良いということ理解して良いのでしょうか?

間違っているのであれば申し訳ないのですが
圧力差を一定(固定)にする方法をご教授お願いします。

返す々々、質問となってしまうのですが宜しくお願い致します。
> > > > > > > > > > >   http://ci.nii.ac.jp/els/110004658154.pdf?id=ART0007383905&type=pdf&la......
>
> もっと読む ≫

Masashi Imano

unread,
Apr 23, 2012, 3:58:32 AM4/23/12
to open...@googlegroups.com
今野です。

> 圧力差を一定にするには以前自分が書いた
> f 1(100);
> とすれば良いということ理解して良いのでしょうか?

すっかり遅い反応になってしまいましたが、上記はその通りです。

さて、simpleFoamで風量を制御するために平均圧力勾配を制御する方法ですが、
以前は前に書きました通り simpleFoam のソルバーに channelFoam の平
均圧力勾配の制御部分を加えるカスタマイズを行わないといけなかったのですが、
OpenFOAM Ver-2.1より加った新機能である Field sources を使うと、
標準の simpleFoam で上記の制御ができるようになりました。

Field sources
http://openfoam.org/version2.1.0/numerics.php

平均圧力勾配を制御するには、Field sources の pressureGradientExplicitSource
を使います。

http://foam.sourceforge.net/docs/cpp/a03924_source.html

ただ、上記のソースのコメントは一部間違っているので注意が必要です。

pressureGradientExplicitSourceCoeffs
{
UName U; // name of velocity field
Ubar (10.0 0 0); // desired average velocity
gradPini gradPini [0 2 -2 0 0] 0; // initial pressure gradient
flowDir (1 0 0); // flow direction
}

正しい書き方は末尾に示します。

以前、日本建築学会 市街地風環境予測のための流体数値解析ガイ
ドブックのCase D を周周期境界条件+上空風速固定に変更したケースを送りましたが、
今後は上記の Field sources の pressureGradientExplicitSource を使い、
周周期境界条件+上空slip+風量固定の平均圧力勾配制御にしたケースを送ります。

なお、Field sources の設定は constant/sourcesProperties で行います。

all
{
type pressureGradientExplicitSource;
active on; //on/off switch
timeStart 0; //start time
duration 1e+30; //duration
selectionMode all; //cellSet // points //cellZone

pressureGradientExplicitSourceCoeffs
{
fieldNames ( U );
Ubar (5 0 0); // desired average velocity
gradPini gradPini [0 1 -2 0 0] 0; // initial pressure gradient
}
}

Ver 2.1 の新機能を使用していうので、当然ながらVer 2.1以降でないと動かないです。
もしVer 2.1でも動かないようでしたら、git 版(2,1.x)の最新版を使用してください。

http://openfoam.org/download/git.php

ちなみに、Field souces の機構は、pisoFoam には入っていないので、LES 計
算でこの機構を用いる場合には、pisoFoam をカスタマイズする必要がありま
すが、それほど難しくないと思います。

2012年4月9日14:42 東京理科大学倉渕研究室 <ariak...@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

Masashi Imano

unread,
Apr 23, 2012, 4:03:56 AM4/23/12
to open...@googlegroups.com
今野です。

> 以前、日本建築学会 市街地風環境予測のための流体数値解析ガイ
> ドブックのCase D を周周期境界条件+上空風速固定に変更したケースを送りましたが、
> 今後は上記の Field sources の pressureGradientExplicitSource を使い、
> 周周期境界条件+上空slip+風量固定の平均圧力勾配制御にしたケースを送ります。

すみません、添付し忘れましたので、上記を御送りします。

2012年4月23日16:58 Masashi Imano <masash...@gmail.com>:

AIJ-PWEAB-CaseD-cyclic-pressureGradient.tar.gz

東京理科大学倉渕研究室

unread,
Apr 23, 2012, 8:39:21 AM4/23/12
to open...@googlegroups.com

東京理科大学倉渕研究室院生のyamanakaです。
いつも大変お世話になっております。
今野様、返答ありがとうございます。

添付して頂いたケースありがとうございます。
現在使用しているものがver2.0なのですぐには使用できないのですが
ケーススタディやソースコードと何からなにまで本当にありがとうございます。
 
疑問点があればお世話になると思うのですが、
いくつもの稚拙な質問に答えて頂きありがとうございます。

2012年4月23日月曜日 17時03分56秒 UTC+9 Masashi Imano:
今野です。

すみません、添付し忘れましたので、上記を御送りします。

>> このグループに投稿するには、openfoam@googlegroups.com にメールを送信してください。
>> このグループから退会するには、openfoam+unsub...@googlegroups.com にメールを送信してください。

Reply all
Reply to author
Forward
0 new messages