Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【技術書典16】OpenFOAM(自宅ではじめる流体解析)

 【技術書典16】OpenFOAM(自宅ではじめる流体解析)

【技術書典16】
https://techbookfest.org/product/7ruavtgHTW2gXFyXunvTBN?productVariantID=tPW4cMwgZ472Qauu6b4LfG

本書では、オープンソースソフトウェア OpenFOAM を活用して、流体解析の基本を学ぶことができます。著者がブログで公開した内容を校正し、さらに詳しくまとめたものです。具体的には、円管内の層流という現象を取り上げ、理論に基づく速度分布と OpenFOAM を用いた計算結果とを比較しながら、そのプロセスを丁寧に解説しています。

第 1 章では円管内流れの基本的な内容について触れ、解析を始める前の前提知識
を説明します。

第 2 章では、OpenFOAM の blockMesh ツールを使ってモデルを作成し、解析を実行して結果をグラフ化するまでの手順を詳しく解説しています。

第 3章は、応用編として、FreeCAD でのモデル作成から snappyHexMesh を使ったメッシュ作成までを解説しており、より複雑なモデルにも対応する方法を紹介しています。この章は、第 2 章で扱った解析対象と同じですが、興味のある方に向けての内容となっており、挑戦してみたい方はぜひ試してみてください。

正誤表
https://note.com/kamakiriphysics/n/ncc23114c4e0d

kamakiri1225

May 25, 2024
Tweet

More Decks by kamakiri1225

Other Decks in Technology

Transcript

  1. 3 ͸͡Ίʹ ຊॻΛखʹऔ͍͖ͬͯͨͩɼ͋Γ͕ͱ͏͍͟͝·͢ ຊॻʹ͍ͭͯ ຊॻͰ͸ɺΦʔϓϯιʔειϑτ΢ΣΞ OpenFOAM Λ׆༻ͯ͠ɺྲྀମղੳͷج ຊΛֶͿ͜ͱ͕Ͱ͖·͢ɻஶऀ͕ϒϩάͰެ։ͨ͠಺༰Λߍਖ਼͠ɺ͞Βʹৄ͘͠·ͱ Ίͨ΋ͷͰ͢ɻ *1ɻ۩ମతʹ͸ɺԁ؅಺ͷ૚ྲྀͱ͍͏ݱ৅ΛऔΓ্͛ɺཧ࿦ʹجͮ͘

    ଎౓෼෍ͱ OpenFOAM Λ༻͍ͨܭࢉ݁ՌͱΛൺֱ͠ͳ͕ΒɺͦͷϓϩηεΛஸೡ ʹղઆ͍ͯ͠·͢ɻ ୈ 1 ষͰ͸ԁ؅಺ྲྀΕͷجຊతͳ಺༰ʹ͍ͭͯ৮ΕɺղੳΛ࢝ΊΔલͷલఏ஌ࣝ Λઆ໌͠·͢ɻୈ 2 ষͰ͸ɺOpenFOAM ͷ blockMesh πʔϧΛ࢖ͬͯϞσϧΛ࡞ ੒͠ɺղੳΛ࣮ߦͯ݁͠ՌΛάϥϑԽ͢Δ·ͰͷखॱΛৄ͘͠ղઆ͍ͯ͠·͢ɻୈ 3 ষ͸ɺԠ༻ฤͱͯ͠ɺFreeCAD ͰͷϞσϧ࡞੒͔Β snappyHexMesh Λ࢖ͬͨϝο γϡ࡞੒·ͰΛղઆ͓ͯ͠ΓɺΑΓෳࡶͳϞσϧʹ΋ରԠ͢Δํ๏Λ঺հ͍ͯ͠· ͢ɻ͜ͷষ͸ɺୈ 2 ষͰѻͬͨղੳର৅ͱಉ͡Ͱ͕͢ɺڵຯͷ͋Δํʹ޲͚ͯͷ಺༰ ͱͳ͓ͬͯΓɺ௅ઓͯ͠Έ͍ͨํ͸ͥͻࢼͯ͠Έ͍ͯͩ͘͞ɻ ຊॻͷର৅ಡऀ ຊॻͰ͸࣍ͷΑ͏ͳਓΛର৅ͱ͍ͯ͠·͢ɻ • ྲྀମղੳΛ͜Ε͔Β͸͡ΊΔਓ • OpenFOAM ʹ͍ͭͯڵຯ͕͋Δਓ • ࣗ୐ͰγϛϡϨʔγϣϯ͢Δ͜ͱʹϫΫϫΫ͍ͯ͠Δਓ લఏͱ͢Δ஌ࣝ ຊॻΛಡΉʹ͋ͨΓɺ࣍ͷΑ͏ͳ஌͕ࣝඞཁͱͳΓ·͢ɻ • OpenFOAM Λ࣮ߦͰ͖Δ؀ڥΛ༻ҙͰ͖Δ • Linux ʹ͍ͭͯͷجૅ஌ࣝ • Python ʹ͍ͭͯͷجૅ஌ࣝ • ྲྀମྗֶͷجૅ஌ࣝ *1 Ӊ஦ʹೖͬͨΧϚΩϦɿhttps://takun-physics.net/ – i –
  2. 4 ͸͡Ίʹ ࢖༻͢Διϑτ΢ΣΞͷόʔδϣϯ ຊॻͰ࢖༻͢Διϑτ΢ΣΞ͸ҎԼͱͳΓ·͢ɻ • OpenFOAM v2312 (WSL2) • ParaView

    5.12 • Python 3.10.12 • FreeCAD 0.21.2 • gnuplot 5.4 WSL2 ͷ Ubuntu-22.04 ʹ OpenCFD ͕ϦϦʔε͢Δόʔδϣϯ (ESI ൛) ͷ OpenFOAM v2312 ΛΠϯετʔϧ͍ͯ͠Δ͜ͱΛ૝ఆ͍ͯ͠·͢ɻParaView ΍ FreeCAD ͸ Windows ΋͘͠͸ Mac ʹΠϯετʔϧ͓ͯ͠࢖͍͍ͩ͘͞ɻUbuntu- 22.04 ʹ͸ Python3.10 ͕طʹೖ͍ͬͯ·͕͢ɺՄࢹԽ༻ͷϥΠϒϥϦͳͲ͸ผ్Π ϯετʔϧ͢Δඞཁ͕͋Γ·͢ɻgnuplot ͸ Ubuntu ্ʹΠϯετʔϧͯ͠࢖༻͠ ·͢ɻ ෇࿥ C ʹඞཁͳιϑτ΢ΣΞͷΠϯετʔϧํ๏Λهࡌ͍ͯ͠·͢ͷͰɺࣗ͝਎ Ͱ؀ڥΛ༻ҙ͍ͯͩ͘͠͞ɻ ԋश༻ͷϞσϧ ຊॻͰ࢖༻ͨ͠ԋश༻ͷϞσϧ͸ Github ΑΓࢀর͍ͩ͘͞ɻ Githubɿhttps://github.com/kamakiri1225/OpenFOAM_contents.git ͓໰͍߹Θͤઌ ຊॻʹؔ͢Δ࣭໰΍͓໰͍߹Θͤ͸ X ΋͘͠͸ϒϩάͷ͓໰͍߹ΘͤϑΥʔϜΑ Γ͓ئ͍͍ͨ͠·͢ɻ • Xɿhttps://x.com/t_kun_kamakiri • ϒϩά͓໰͍߹Θͤɿhttps://takun-physics.net/page-908/ – ii –
  3. 5 ໨࣍ ͸͡Ίʹ i ୈ 1 ষ ԁ؅಺ͷྲྀΕͷཧ࿦ 1 1.1

    ԁ؅಺ͷ଎౓෼෍ . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 ૚ྲྀྲྀΕʢϋʔήϯɾϙΞζΠϢྲྀΕͷۙࣅࣜʣ . . . . . . . . . . . 2 ୈ 2 ষ OpenFOAM Ͱͷ blockMesh Λ༻͍ͨ૚ྲྀղੳ 3 2.1 ղੳͷ໨త . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 OpenFOAM ͰͷγϛϡϨʔγϣϯ . . . . . . . . . . . . . . . . . . 3 ղੳϑϩʔ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 ιϧόͷબ୒ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 ࢧ഑ํఔࣜ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 ࡞ۀϑΥϧμͷ࡞੒ . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4 νϡʔτϦΞϧͷίϐʔ . . . . . . . . . . . . . . . . . . . . . . . . 8 2.5 ϝογϡ࡞੒ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 blockMeshDict Λฤू . . . . . . . . . . . . . . . . . . . . . . . 10 blockMeshDict ϑΝΠϧͷઆ໌ . . . . . . . . . . . . . . . . . . . 17 ϝογϡ඼࣭ͷ֬ೝ . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.6 ղੳઃఆ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ઃఆϑΝΠϧߏ੒ . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ෺ੑ஋ͷઃఆ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 ཚྲྀϞσϧͷઃఆ . . . . . . . . . . . . . . . . . . . . . . . . . . 28 ڥք৚݅ͷઃఆ . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 ཭ࢄԽεΩʔϜ . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ܭࢉͷ੍ޚ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ฒྻ෼ׂ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.7 ܭࢉ࣮ߦ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.8 ݁Ռॲཧ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 ParaView Ͱͷ݁Ռͷ֬ೝ . . . . . . . . . . . . . . . . . . . . . . 45 Python ʹΑΔάϥϑॲཧ . . . . . . . . . . . . . . . . . . . . . . 62 2.9 ·ͱΊ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 – iii –
  4. 6 ໨࣍ [ίϥϜ]ϝογϟʔ͸ԿΛબͿ͔ʁ . . . . . . .

    . . . . . . . . . . . . . . . 69 ୈ 3 ষ FreeCAD ʹΑΔϞσϧ࡞੒ͱ snappyHexMesh Λ༻͍ͨ૚ྲྀղੳ 72 3.1 ϝογϡ࡞੒·ͰͷશମͷྲྀΕ . . . . . . . . . . . . . . . . . . . . 72 3.2 ࡞ۀϑΥϧμͷ࡞੒ . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.3 Ϟσϧܗঢ়ͷ࡞੒ . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 FreeCAD ʹΑΔϞσϧ࡞੒ . . . . . . . . . . . . . . . . . . . . . 74 FreeCAD ͷϚΫϩػೳ . . . . . . . . . . . . . . . . . . . . . . . 79 εέʔϧͷม׵ . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.4 ϝογϡ࡞੒ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 ϕʔεϝογϡͷ࡞੒ʢblockMeshDict Λฤू) . . . . . . . . . . . 89 ಛ௃ઢͷநग़ʢsurfaceFeatureExtractDict Λฤूʣ . . . . . . . . . 91 ϝογϡ࡞੒ʢsnappyHexMeshDict Λฤूʣ . . . . . . . . . . . . 93 3.5 ܭࢉ࣮ߦ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 3.6 ݁Ռॲཧ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 3.7 ·ͱΊ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 [ίϥϜ]άϥϑ࡞੒ʹ͸ԿΛ࢖͏͔ʁ . . . . . . . . . . . . . . . . . . . . . 104 ෇࿥ A gnuplot ʹΑΔάϥϑॲཧ 106 A.1 z Ґஔҧ͍Ͱͷྲྀ଎෼෍ . . . . . . . . . . . . . . . . . . . . . . . . 106 ෇࿥ B OpenFOAM ͷ Tips 113 B.1 ϝογϡ඼࣭ͷ֬ೝ . . . . . . . . . . . . . . . . . . . . . . . . . . 113 B.2 ࿈ଓࣜͷޡࠩ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 B.3 y+ ͷ֬ೝ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 B.4 ྲྀྔͷ੔߹ੑ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 ෇࿥ C ιϑτͷΠϯετʔϧ 119 C.1 OpenFOAM ͷΠϯετʔϧ . . . . . . . . . . . . . . . . . . . . . 119 C.2 ParaView ͷΠϯετʔϧ . . . . . . . . . . . . . . . . . . . . . . . 121 C.3 Python ͷϥΠϒϥϦͷΠϯετʔϧ . . . . . . . . . . . . . . . . . 121 C.4 FreeCAD ͷͷΠϯετʔϧ . . . . . . . . . . . . . . . . . . . . . . 123 C.5 gnuplot ͷΠϯετʔϧ . . . . . . . . . . . . . . . . . . . . . . . . 123 ࢀߟจݙ 126 ͋ͱ͕͖ 128 – iv –
  5. 7 ୈ 1 ষ ԁ؅಺ͷྲྀΕͷཧ࿦ ͜ͷষͰ͸ɺԁ؅಺ྲྀΕͷجຊతͳ֓೦ʹ͍ͭͯ঺հ͠·͢ɻԁ؅಺ͷྲྀΕ ͸ཧ࿦తʹ΋޿͘ཧղ͞Ε͓ͯΓɺಛʹ૚ྲྀͷ৔߹ɺϋʔήϯɾϙΞζΠϢͷ ྲྀΕͷۙࣅ͕ࣜద༻͞ΕΔ͜ͱ͕஌ΒΕ͍ͯ·͢ɻ͜ΕΒͷ஌ࣝ͸ɺ࣍ষҎ߱ Ͱղઆ͢Δྲྀମղੳͷલఏ஌ࣝͰ͢ɻ 1.1

    ԁ؅಺ͷ଎౓෼෍ ௚ܘ d(൒ܘ R)ɺ௕͞ L ͷԁ؅Λߟ͑·͢ɻԁ؅಺ͷ࣠ํ޲ͷ଎౓෼෍͸ྲྀೖޱͰ ۉҰͰ͕͢ɺޙྲྀͰ͸น໘ۙ͘ͷ೪ੑʹΑͬͯ์෺ઢܕʹൃୡ͠·͢ɻ·ͨɺྲྀΕ͕ ׬શʹൃୡ͢Δ·Ͱͷ۠ؒͷ͜ͱΛॿ૸۠ؒͱ͍͍ɺͦͷ۠ؒͷ௕͞Λॿ૸ڑ཭ͱ͍ ͍·͢ɻ 助走区間 十分発達した流れ 助走距離 ˛ ਤ 1.1: ॿ૸ڑ཭ – 1 –
  6. 8 ୈ 1 ষ ԁ؅಺ͷྲྀΕͷཧ࿦ 1.2 ૚ྲྀྲྀΕʢϋʔήϯɾϙΞζΠϢྲྀΕͷۙࣅࣜʣ ԁ؅಺ͷྲྀΕͰ͸ϨΠϊϧζ਺͕ Rec ≒

    2300 Ͱ૚ྲྀ͔Βཚྲྀ΁ͱભҠ͢Δ͜ͱ ͕࣮ݧΑΓ஌ΒΕ͍ͯ·͢ɻͦͷͱ͖ͷϨΠϊϧζ਺ Rec ΛྟքϨΠϊϧζ਺ͱ͍ ͍·͢ɻ૚ྲྀ͸ϋʔήϯɾϙΞζΠϢྲྀΕͷۙࣅࣜ uz = 2ub ( 1 − ( r R )2 ) ͕੒Γཱ ͪɺཚྲྀ͸؅தԝʹ͓͚Δ࠷େྲྀ଎Λ umax ɺ؅น໘͔Βͷڑ཭Λ y ͱͨ͠ͱ͖ɺࢦ ਺๏ଇ uz = umax ( y R )1/n ʹै͍·͢*1ɻे෼ൃୡ͢Δ·Ͱͷڑ཭ L ͸ɺ૚ྲྀͰ͸ L/d = 0.06Re ͱϨΠϊϧζ਺ʹൺྫܾͯ͠·ΓɺཚྲྀʹͳΔͱ L/d = 25 ∼ 40 ͱ ϨΠϊϧζ਺ʹґଘͤͣʹܾ·Γ·͢ɻ 1.2 ૚ྲྀྲྀΕʢϋʔήϯɾϙΞζΠϢྲྀΕͷۙࣅࣜʣ ͜͜Ͱ͸ɺఆৗঢ়ଶʹ͓͚ΔφϏΤɾετʔΫεํఔ͔ࣜΒϋʔήϯɾϙΞζΠϢ ྲྀΕͷۙࣅࣜΛಋ͖·͢ɻ ԁ౵࠲ඪܥ (r, θ, z) Ͱͷ z ํ޲ͷφϏΤɾετʔΫεํఔࣜ͸ࣜ 1.1 Ͱ͢ɻ ࣜ 1.1: φϏΤɾετʔΫεํఔࣜ ρ ( uz ∂uz ∂z + ur ∂uz ∂r ) = − ∂p ∂z + µ [ 1 r ∂ ∂r ( r ∂uz ∂r ) + ∂2uz ∂z2 ] ॿ૸ڑ཭Λे෼ʹͱΓɺे෼ൃୡͨ͠ྲྀΕͷ଎౓෼෍͸࣠ํ޲ʹมԽΛ͠ͳ͍ͨ Ίɺ∂uz ∂z = 0 Ͱ͋Γɺ൒ܘํ޲ͷྲྀ଎͸ 0(ur = 0) Ͱ͋Δ͜ͱ͔Βࣜ 1.2 ͱͳΓ·͢ɻ ࣜ 1.2: ࣜมܗ.1 0 = − ∂p ∂z + µ 1 r ∂ ∂r ( r ∂uz ∂r ) ྆ล r Ͱੵ෼ͯ͠·͢ɻ ࣜ 1.3: ࣜมܗ.2 uz = 1 4µ ( − ∂p ∂z ) (R2 − r2) = 2ub ( 1 − ( r R )2 ) Ҏ্ͷΑ͏ʹͯ͠ϋʔήϯɾϙΞζΠϢྲྀΕͷۙࣅ͕ࣜಋ͔Ε·͢ɻ ͜͜Ͱɺµ ͸೪ੑ܎਺ɺub = 1 πR2 ∫ R 0 2πruz dr = R2 8µ ( − ∂p ∂z ) ͸࣠ํ޲ͷฏۉྲྀ଎ Ͱ͢ɻ *1 ࢦ਺ 1/n ͸ɺϨΠϊϧζ਺ Re ͷൣғʹ͓͍ͯχΫϥθͷ࣮ݧʹΑΔ – 2 –
  7. 9 ୈ 2 ষ OpenFOAM Ͱͷ blockMesh Λ ༻͍ͨ૚ྲྀղੳ ͜ͷষͰ͸ԁ౵಺ͷྲྀΕͷ

    OpenFOAM ͷઃఆํ๏ʹ͍ͭͯղઆ͠·͢ɻ ີ౓มԽΛ൐Θͳ͍ඇѹॖྲྀΕΛԾఆ͓ͯ͠Γɺܭࢉෛՙ΋ͦΕ΄Ͳߴ͘ͳ ͘ɺ͔ͭཧ࿦ࣜͱͷൺֱ΋Ͱ͖Δ୊ࡐͰ͢ɻղੳઃఆͷํ๏Λཧղ͠ɺ૚ྲྀͰ ͷϋʔήϯɾϙΞζΠϢྲྀΕͷۙࣅࣜͱ OpenFOAM Ͱͷ݁ՌͱͷൺֱΛߦ ͍·͢ɻ 2.1 ղੳͷ໨త ຊॻͰ͸ɺԁ؅಺ͷ૚ྲྀͷۙࣅղͰ͋ΔϋʔήϯɾϙΞζΠϢྲྀΕΛ୊ࡐʹ͠ɺཧ ࿦ࣜͱ OpenFOAM ͷൺֱΛߦ͏͜ͱΛ໨తͱ͠·͢ɻ ԁ؅಺ͷ૚ྲྀʹ͍ͭͯͷϙΠϯτ͸ҎԼͱͳΓ·͢ɻ • ྟքϨΠϊϧζ Rec ≒ 2300 Ͱ૚ྲྀ͔Βཚྲྀ΁ͷભҠ • े෼ൃୡͨ͠ྲྀΕͰͷ૚ྲྀͷ଎౓෼෍͸ϋʔήϯɾϙΞζΠϢྲྀΕͷۙࣅࣜ uz (r) = 2ub ( 1 − ( r R )2 ) • ૚ྲྀͰͷॿ૸۠ؒͷڑ཭͸૚ྲྀͰ͸ L/d = 0.06Re 2.2 OpenFOAM ͰͷγϛϡϨʔγϣϯ OpenFOAM Λ༻͍ͯਤ 2.1 ͷΑ͏ͳԁ؅಺ͷྲྀΕγϛϡϨʔγϣϯΛߦ͍·͢ɻ – 3 –
  8. 1 0 ୈ 2 ষ OpenFOAM Ͱͷ blockMesh Λ༻͍ͨ૚ྲྀղੳ 2.2

    OpenFOAM ͰͷγϛϡϨʔγϣϯ 1200 mm 20mm 0.1m/s ˛ ਤ 2.1: ԁ؅಺ͷྲྀΕͷγϛϡϨʔγϣϯ݁Ռ ද໘ͷน໘ૈ͞ͷӨڹ·Ͱ͸ɺຊॻͰ͸औΓѻ͍·ͤΜ*1ɻ ղੳϑϩʔ ·ͣ͸ղੳΛ࣮ߦ͢Δ·ͰͷશମͷྲྀΕΛԡ͓͖͑ͯ͞·͠ΐ͏ɻ • ιϧόͷબ୒ • ࡞ۀϑΥϧμͷ࡞੒ • νϡʔτϦΞϧΛίϐʔ • ϝογϡੜ੒ (blockMesh) • ղੳઃఆ (OpenFOAM ͷઃఆϑΝΠϧ) • ܭࢉ࣮ߦ (OpenFOAM) • ղੳ݁ՌͷՄࢹԽ (ParaViewɺPython) ௨ৗɺղੳϑϩʔͷதʹ͸ղੳ༻ͷϞσϧ࡞੒ͷ޻ఔ͕͋Γ·͕͢ɺࠓճ͸ blockMesh ͰϝογϡΛอ࣋ͨ͠ܗঢ়Λ࡞੒͠·͢ͷͰ 3D-CAD Λ༻͍ͨϞσϧ࡞ ੒ͷ޻ఔ͸ෆཁͰ͢ɻblockMesh ͸ OpenFOAM ͷඪ४ϢʔςΟϦςΟʹؚ·Εͯ ͍ΔϓϩάϥϜͰɺOpenFOAM ΛΠϯετʔϧࡁͰ͋Ε͹৽ͨʹΠϯετʔϧͷख ଓ͖͸ෆཁͰ͢ɻ *1 ϨΠϊϧζ਺ Re ͕খ͍͞ͱૈ͞ʹӨڹ͕ͳ͘ɺཚྲྀঢ়ଶͷΑ͏ʹϨΠϊϧζ਺ Re ͕େ͖͍ͱ؅ ຎࡲ܎਺ͳͲʹӨڹ͠·͢ɻ – 4 –
  9. 1 1 ୈ 2 ষ OpenFOAM Ͱͷ blockMesh Λ༻͍ͨ૚ྲྀղੳ 2.2

    OpenFOAM ͰͷγϛϡϨʔγϣϯ プリ処理 モデル作成 メッシュ作成 解析設定 計算実行 結果処理 blockMesh ソルバ ポスト処理 OpenFOAM ParaView Python ˛ ਤ 2.2: ղੳϑϩʔ ιϧόͷબ୒ OpenFOAM ͸ղ͖͍ͨ໰୊ʹదͨ͠ιϧόΛબ୒͢Δඞཁ͕͋Γ·͢ɻԁ؅಺ ྲྀΕ͸ɺ୯૬ྲྀͰԹ౓มԽͱີ౓มԽ͕ແࢹͰ͖ΔඇѹॖྲྀΕͱԾఆͯ͠ղੳΛߦ͏ ͨΊɺͦΕʹదͨ͠ιϧόͷબ୒͕ඞཁͰ͢ɻ͜ͷΑ͏ͳ৚݅ʹదͨ͠ OpenFOAM ͷ୅දతͳιϧόͱͯ͠͸ද 2.1 ͷ΋ͷ͕ڍ͛ΒΕ·͢ɻ ˝ ද 2.1: ඇѹॖྲྀΕͷ୅දతͳιϧό ιϧό໊ ҙຯ icoFoam ඇఆৗ૚ྲྀղੳιϧό pimpleFoam ඇఆৗཚྲྀղੳιϧό ʢPISO+SIMPLE ͷ PIMPLE ΞϧΰϦζϜʣ pisoFoam ඇఆৗཚྲྀղੳιϧόʢPIS ๏ʣ simpleFoam ఆৗཚྲྀղੳιϧόʢSIMPLE ๏ʣ ఆৗղੳΛߦ͏ͨΊ SIMPLE ๏ (Semi-Implicit Method for Pressure Linked Equations) ΞϧΰϦζϜʹै͏ఆৗཚྲྀղੳͷιϧόͷ simpleFoam Λ࢖͍·͢ɻ ࢧ഑ํఔࣜ ιϧόͷબ୒ʹ͸ɺݱ৅ΛͲͷΑ͏ͳํఔࣜͰѻ͏͔΋߹Θͤͯ֬ೝ͓ͯ͘͠ͱྑ – 5 –
  10. 7 4 ୈ 2 ষ OpenFOAM Ͱͷ blockMesh Λ༻͍ͨ૚ྲྀղੳ 2.8

    ݁Ռॲཧ if i >= 2: plt.legend(loc="upper center",bbox_to_anchor=(1.0, 1.2)› ›, fontsize=16) # άϥϑλΠτϧͷઃఆ axes[i].set_title(f"z={zCase.split('_')[1]}", fontsize=20) # άϦου axes[i].grid("-") # άϥϑΛPDFϑΝΠϧͱͯ͠อଘ plt.savefig("python_plot/result/multiplot_py.pdf", bbox_inches=› ›'tight') Ͱ͸ɺPython εΫϦϓτΛ࣮ߦ͠·͠ΐ͏ɻ ˝ Python εΫϦϓτ plot.py Λ࣮ߦ $ python3 python_plot/plot.py ύεʹ஫ҙ Ϧετ 2.27 ͷ࣮ߦ͸ɺCylinder_blockMesh ϑΥϧμʹ͍Δঢ়ଶͰਖ਼ৗʹಈ ࡞͢ΔϓϩάϥϜʹͳ͍ͬͯ·͢ɻ Ҏ্ͷεΫϦϓτΛ࣮ߦ͢Δͱ python_plot/result/multiplot.pdf ͕ग़ྗ͞Εਤ 2.41 ͷΑ͏ʹཧ࿦ࣜͱ OpenFOAM ʹΑΔ݁Ռͷάϥϑ͕࡞੒͞Ε͍ͯ·͢ɻ 0.00 0.02 0.04 0.06 0.08 0.10 0.12 0.14 0.16 0.18 0.20 Uz[m/s] 0.010 0.008 0.006 0.004 0.002 0.000 0.002 0.004 0.006 0.008 0.010 y[m] z=0.001m 0.00 0.02 0.04 0.06 0.08 0.10 0.12 0.14 0.16 0.18 0.20 Uz[m/s] 0.010 0.008 0.006 0.004 0.002 0.000 0.002 0.004 0.006 0.008 0.010 y[m] z=0.4m 0.00 0.02 0.04 0.06 0.08 0.10 0.12 0.14 0.16 0.18 0.20 Uz[m/s] 0.010 0.008 0.006 0.004 0.002 0.000 0.002 0.004 0.006 0.008 0.010 y[m] z=0.6m OpenFOAM Theory ˛ ਤ 2.41: Python ʹΑΔάϥϑԽ – 68 –
  11. 1 3 4 ͋ͱ͕͖ ຊॻΛ͝ߪೖ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·͢ɻຊॻͰ͸ɺԁ؅಺ͷ૚ྲྀΛର৅ʹྲྀ ମղੳʹ͍ͭͯղઆΛߦ͍·ͨ͠ɻࠓճ͸ OpenFOAM ͷଟ༷ͳػೳͷҰ෦ͷΈΛ ͝঺հͰ͖·͕ͨ͠ɺ͞Βʹৄࡉͳઆ໌͕ඞཁͳ఺΋͋Δ͔ͱࢥ͍·͢ɻ ݫີղΛٻΊΔͷ͕ࠔ೉ͳղੳର৅Ͱ͸ɺγϛϡϨʔγϣϯΛ௨ͯ͡ݱ৅Λཧղ͢

    Δ͜ͱ͕ඇৗʹॏཁͩͱஶऀ͸ߟ͍͑ͯ·͢ɻͦͷͨΊɺຊॻͰ͸ཧ࿦తʹΑ͘ཧղ ͞Ε͍ͯΔԁ؅಺ͷ૚ྲྀྲྀΕΛ୊ࡐʹબͼ·ͨ͠ɻγϛϡϨʔγϣϯͷଥ౰ੑΛ֬ೝ ͢ΔͨΊʹ͸ɺ࣮ݧσʔλ΍ط஌ͷݫີղͱͷൺֱΛߦ͍ɺ݁Ռͷ৴པੑΛݕূ͢Δ ඞཁ͕͋Γ·͢ɻຊॻΛ͖͔͚ͬʹࣗ͝਎ͰγϛϡϨʔγϣϯ͍ͨ͠಺༰ʹ౰ͯ͸Ί ͍͚ͯͨͩΕ͹ͱࢥ͍·͢ɻ Ӊ஦ʹೖͬͨΧϚΩϦ • Xɿhttps://x.com/t_kun_kamakiri • ϒϩά URLɿhttps://takun-physics.net/: – 128 –
  12. 1 3 5 OpenFOAM ࣗ୐Ͱ࢝ΊΔྲྀମղੳ 2024 ೥ 5 ݄ 21

    ೔ɹ ver 1.0 ʢٕज़ॻయ 16ʣ ஶɹऀ Ӊ஦ʹೖͬͨΧϚΩϦ ൃߦऀ ΧϚΩϦ ࿈བྷઌ https://takun-physics.net/ https://x.com/t_kun_kamakiri ҹ࡮ॴ Ӊ஦ʹೖͬͨΧϚΩϦ © 2024 Ӊ஦ʹೖͬͨΧϚΩϦ (powered by Re:VIEW Starter)