Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
【技術書典17】OpenFOAM(自宅で極める流体解析)2次元円柱まわりの流れ
Search
kamakiri1225
November 01, 2024
Technology
3.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【技術書典17】OpenFOAM(自宅で極める流体解析)2次元円柱まわりの流れ
kamakiri1225
November 01, 2024
More Decks by kamakiri1225
See All by kamakiri1225
【技術書典20】OpenFOAM(自宅で深める流体解析)流れと熱移動(2)
kamakiri1225
0
720
【技術書典18】OpenFOAM 自宅で深める流体解析の基礎と応用 (1)
kamakiri1225
0
710
OpenRadiossSafetyダミーモデルの紹介
kamakiri1225
0
420
20230518数値流体解析の基礎
kamakiri1225
0
120
20241109_OpenRadiossを用いたエアバッグ 解析のモデル構築
kamakiri1225
0
1k
20201205_final_report_水の物性_光の速度計算.pdf
kamakiri1225
0
89
20201208_final_report_光の速度計算.pdf
kamakiri1225
0
68
第100回オープンCAE勉強会@関西
kamakiri1225
0
560
【技術書典16】OpenFOAM(自宅ではじめる流体解析)
kamakiri1225
0
2.5k
Other Decks in Technology
See All in Technology
AI時代に求められる優秀なTechLeadの振る舞い
pospome
10
13k
kintoneで在庫管理システムを作るときの要件定義・設計ポイント
kai0707
0
230
複雑な業務システムを高速でつくるため、チーム全員をつくれる人へ
ayakurabuchi
0
130
【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ―
shisyu_gaku
0
160
reInvent2026stby LT00 "Change your life!"
shinichirokawano
1
590
Software Engineering in an AI-Driven World
erikjhordan_rey
0
120
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
3
1.5k
あなたのDartコードは丸見えかもしれない ~reFlutterで暴くFlutterアプリの中身と多層防御~
zozotech
PRO
0
770
公共分野での生成AI活用
toru_kubota
1
190
AX時代の自治体支援リソース再配分と役割分担の再構成:戦略とロードマップ(概要)
sishi2026
0
200
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
550
eBPF 簡介 2026 版
shunghsiyu
0
180
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
19k
RailsConf 2023
tenderlove
30
1.6k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Designing for Performance
lara
612
70k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
47k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Faster Mobile Websites
deanohume
310
32k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
380
Code Review Best Practice
trishagee
74
20k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Transcript
None
1 OpenFOAM — ࣗͰۃΊΔྲྀମղੳ — ʦஶʧӉʹೖͬͨΧϚΩϦ ٕज़ॻయ 17ʢ2024 ౙʣ৽ץ 2024
11 ݄ 2 ɹ ver 1.0
2 ˙໔ ຊॻใͷఏڙͷΈΛతͱ͍ͯ͠·͢ɻ ຊॻͷ༰Λ࣮ߦɾద༻ɾӡ༻ͨ͜͠ͱͰԿ͕ى͖Α͏ͱɺͦΕ࣮ߦɾద༻ɾӡ༻ͨ͠ਓ ࣗͷͰ͋Γɺஶऀؔऀ͍͔ͳΔෛ͍·ͤΜɻ ˙ඪ ຊॻʹొ͢ΔγεςϜ໊໊ɺ֤ؔࣾͷඪ·ͨొඪͰ͢ɻ ·ͨຊॻͰɺ™ɺ®ɺ© ͳͲͷϚʔΫলུ͍ͯ͠·͢ɻ
3 ͡Ίʹ ຊॻΛखʹऔ͍͖ͬͯͨͩɺ͋Γ͕ͱ͏͍͟͝·͢ɻ ຊॻʹ͍ͭͯ ຊॻͰɺΦʔϓϯιʔειϑτΣΞ OpenFOAM Λ׆༻ͯ͠ɺྲྀମղੳͷجຊ ΛֶͿ͜ͱ͕Ͱ͖·͢ɻஶऀ͕ϒϩάͰެ։ͨ͠༰Λߍਖ਼͠ɺ͞Βʹৄ͘͠·ͱΊ ͨͷͰ͢ɻ *1ɻલճͷٕज़ॻయ
16 ʹग़యͨ͠ʮOpenFOAMʢࣗͰ࢝ΊΔྲྀମղ ੳʣ ʯ [6] Ͱɺ ԁͷྲྀྲྀΕΛऔΓѻ͍ɺ ྲྀମղੳͷجૅతͳ༰Λ OpenFOAM ֶ͕Δߏʹ͠·ͨ͠ɻຊॻͦͷଓฤͱͯ͠ɺதڃऀ͚ͷ༰ʹ͠·ͨ͠ɻ۩ ମతʹɺ2 ࣍ݩͷԁப·ΘΓͷྲྀΕͱ͍͏ݱΛऔΓ্͛ɺ࣮ݧཧʹجͮ͘ ѹྗͱ OpenFOAM Λ༻͍ͨܭࢉ݁ՌͱΛൺֱ͠ͳ͕Βɺͦͷϓϩ ηεΛஸೡʹղઆ͍ͯ͠·͢ɻ ຊॻҎԼͷΑ͏ͳߏʹͳ͍ͬͯ·͢ɻ • ୈ 1 ষͰɺ2 ࣍ݩԁப·ΘΓͷྲྀΕʹؔ͢Δجຊతͳཧʹ͍ͭͯղઆ͠ɺ ղੳΛਐΊΔ্ͰඞཁͱͳΔલఏࣝΛཧ͠·͢ɻ • ୈ 2 ষͰɺOpenFOAM ͷ blockMesh πʔϧΛ༻͠ɺ2 ࣍ݩԁபͷϞσ ϧ࡞͔Βղੳͷ࣮ߦ·ͰͷखॱΛֶͼ·͢ɻୈ 1 ষͰղઆͨ͠ཧΛ࣮ࡍͷ खॱΛ௨ͯ֬͠ೝ͠ɺཧղΛਂΊ·͢ɻ • ୈ 3 ষͰɺඇѹॖੑྲྀΕʹ͓͚Δྗֶత૬ࣅੑʹ͍ͭͯऔΓ্͛ɺྲྀମղੳ Λ௨ͯͦ͡ͷݪཧΛ࠶ݱ͠·͢ɻ͜͜Ͱɺແ࣍ݩͰ͋ΔϨΠϊϧζ͕ྲྀΕ ͷڍಈʹͲͷΑ͏ʹӨڹΛ༩͑Δ͔ʹ͍ͭͯཧղ͢Δ͜ͱ͕Ͱ͖·͢ɻ • ୈ 4 ষͰɺOpenFOAM ͷࣗಈԽΛՄೳʹ͢Δ Python ϥΠϒϥϦͰ͋Δ PyFoam ͷجຊతͳ͍ํʹ͍ͭͯհ͠·͢ɻ • ୈ 5 ষͰ PyFoam Λͬͯԁப·ΘΓͷྲྀΕʹର͢ΔύϥϝʔλελσΟ ͷࣗಈԽΛߦ͍·͢ɻ 2 ࣍ݩԁப·ΘΓͷྲྀΕɺҰݟ୯७ͳྲྀΕͰ͋ΔΑ͏Ͱ͍ͯɺԁப·ΘΓͷണ ݱͷ࠶ݱͲͷ݅Ͱ࠶ݱͰ͖ΔཚྲྀϞσϧཱ͕֬͞Ε͍ͯͳ͍͜ͱ͔Βɺݱ ࡏͰྲྀମղੳख๏ͷݚڀ͕ଓ͚ΒΕ͍ͯ·͢ɻಛʹϨΠϊϧζͱ߅ྗɺӔͷ ৼಈपͷؔʹ͍ͭͯɺ࣮ݧͱྲྀମղੳͷ྆ํͰΜʹݚڀ͞Ε͍ͯ·͢ɻಛ *1 ӉʹೖͬͨΧϚΩϦɿhttps://takun-physics.net/ – i –
4 ͡Ίʹ ʹɺқ͕ߴ͍ͷɺϨΠϊϧζ͕ 105 Λ͑ΔΑ͏ͳྖҬͰɺ͜͜ͰӔͷണ ݱΛਖ਼֬ʹ࠶ݱ͠ͳ͚ΕͳΒͳ͍ͨΊɺΑΓߴͳղੳ͕ٻΊΒΕ·͢ɻҰํ ͰɺϨΠϊϧζ͕ 1000 ҎԼͰ͋ΕɺཚྲྀϞσϧΛΘͳͯ͘ྲྀମղੳͷଥ ੑΛࣔ͢͜ͱ͕ՄೳͰ͋Γɺຊষͷରͱ͍ͯ͠·͢ɻ
͜ͷΑ͏ʹɺԁப·ΘΓͷྲྀΕྲྀମྗֶͷجૅ͕٧·͓ͬͯΓɺཧղΛਂΊΔͨ ΊͷઈͷࡐͰ͢ɻຊষͰɺ࣮ݧσʔλཧղΛʮઌੜʯͱͯ͠ɺྲྀମղੳ݁ ՌͷଥੑΛݕূ͢Δํ๏Λղઆ͍͖ͯ͠·͢ɻօ͞Μ͕ࣗΒߦͬͨղੳ݁Ռʹࣗ৴ Λ࣋ͯΔΑ͏ʹͳΔ͜ͱ͕ɺຊষͷඪͰ͢ɻ ·ͨɺPyFoam ΛͬͨࣗಈԽͷεςοϓΛৄ͘͠հ͓ͯ͠Γɺ͜ΕʹΑΓ OpenFOAM ͷԠ༻ྗ͕ٻΊΒΕɺதڃऀ͚ͷ༰ͱͳ͍ͬͯ·͢ɻPyFoam Λ ׆༻͢Δ͜ͱͰɺ෮తͳ࡞ۀΛޮԽ͠ɺղੳ݁ՌͷଥੑݕূΛΑΓਂ͘ߦ͏͜ ͱ͕Ͱ͖ΔΑ͏ʹͳΓ·͢ɻதڃऀϨϕϧͷઓͱͯ͠ɺͥͻຊॻΛ௨ͯࣝ͠Λ ͍͍͛ͯͬͯͩ͘͞ɻ ຊॻͷରಡऀ ຊॻͰ࣍ͷΑ͏ͳਓΛରͱ͍ͯ͠·͢ɻ • OpenFOAM ʹ͍ͭͯڵຯ͕͋Δਓ • ࣗͰγϛϡϨʔγϣϯ͢Δ͜ͱʹϫΫϫΫ͍ͯ͠Δਓ • 2 ࣍ݩԁப·ΘΓͷྲྀΕΛࡐʹྲྀମղੳͷଥੑݕূΛߦ͍͍ͨਓ લఏͱ͢Δࣝ ຊॻΛಡΉʹ͋ͨΓɺ࣍ͷΑ͏ͳ͕ࣝඞཁͱͳΓ·͢ɻ • ྲྀମྗֶͷجૅࣝ • Linux ʹ͍ͭͯͷجૅࣝ • Python ʹ͍ͭͯͷجૅࣝ • OpenFOAM Λ࣮ߦͰ͖ΔڥΛ༻ҙͰ͖Δ ༻͢ΔιϑτΣΞͷόʔδϣϯ ຊॻͰ༻͢ΔιϑτΣΞҎԼͱͳΓ·͢ɻ • OpenFOAM v2406 (WSL2) • ParaView 5.12 • Python 3.10.12 • gnuplot 5.4 WSL2 ͷ Ubuntu-22.04 ʹ OpenCFD ͕ϦϦʔε͢Δόʔδϣϯ (ESI ൛) ͷ OpenFOAM v2406 ΛΠϯετʔϧ͍ͯ͠Δ͜ͱΛఆ͍ͯ͠·͢ɻParaView Λ Windows ͘͠ Mac ʹΠϯετʔϧ͓͍͍ͯͩ͘͠͞ɻUbuntu-22.04 ʹ – ii –
5 ͡Ίʹ Python3.10 ͕طʹೖ͍ͬͯ·͕͢ɺຊॻͰ༻͢ΔϥΠϒϥϦͳͲผ్Πϯε τʔϧ͢Δඞཁ͕͋Γ·͢ɻ C ʹඞཁͳιϑτΣΞͷΠϯετʔϧํ๏Λهࡌ͍ͯ͠·͢ͷͰɺࣗ͝ ͰڥΛ༻ҙ͍ͯͩ͘͠͞ɻ ԋश༻ͷϞσϧ
ຊॻͰ༻ͨ͠ԋश༻ͷϞσϧ Github ΑΓࢀর͍ͩ͘͞ɻ Githubɿhttps://github.com/kamakiri1225/OpenFOAM_contents17 ͓͍߹Θͤઌ ຊॻʹؔ͢Δ࣭͓͍߹Θͤ X ͘͠ϒϩάͷ͓͍߹ΘͤϑΥʔϜΑ Γ͓ئ͍͍ͨ͠·͢ɻ • Xɿhttps://x.com/t_kun_kamakiri • ϒϩά͓͍߹Θͤɿhttps://takun-physics.net/page-908/ – iii –
6 ࣍ ͡Ίʹ i ୈ 1 ষ ԁப·ΘΓͷྲྀΕͷ֓ཁ 1 1.1
ϨΠϊϧζʹΑΔྲྀΕͷύλʔϯ . . . . . . . . . . . . . . . . . . 1 1.2 ମʹಇ͘ྗͱετϩʔϋϧ . . . . . . . . . . . . . . . . . . . . 3 ߅ྗͱ༲ྗ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 ߅ྗͱ༲ྗ . . . . . . . . . . . . . . . . . . . . . . . . . 5 ετϩʔϋϧ . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3 ཧྲྀମͱ࣮ࡍͷྲྀମ . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4 ྗֶత૬ࣅੑ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5 ·ͱΊ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ 11 2.1 ղੳͷత . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 OpenFOAM ͰͷγϛϡϨʔγϣϯ . . . . . . . . . . . . . . . . . . 11 ղੳϑϩʔ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 ιϧόͷબ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 ࢧํఔࣜ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3 ࡞ۀϑΥϧμͷ࡞ . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4 νϡʔτϦΞϧͷίϐʔ . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5 ϝογϡ࡞ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 blockMeshDict Λฤू . . . . . . . . . . . . . . . . . . . . . . . 18 mirrorMesh Λฤू . . . . . . . . . . . . . . . . . . . . . . . . . 24 extrudeMesh Λฤू . . . . . . . . . . . . . . . . . . . . . . . . 31 ϝογϡ࣭ͷ֬ೝ . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.6 ղੳઃఆ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ઃఆϑΝΠϧߏ . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ੑͷઃఆ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ཚྲྀϞσϧͷઃఆ . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ڥք݅ͷઃఆ . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ࢄԽεΩʔϜ . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 – iv –
7 ࣍ ܭࢉͷ੍ޚ . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 46 functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ฒྻׂ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.7 ܭࢉ࣮ߦ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 ݁ՌͷՄࢹԽ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.8 ܭࢉ݁Ռͷଥੑͷݕূ . . . . . . . . . . . . . . . . . . . . . . . . 67 ߅ྗ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 2.9 ετϩʔϋϧ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 2.10 ѹྗͷ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 2.11 ղੳʹ͓͍ͯҙͨ͠ . . . . . . . . . . . . . . . . . . . . . . . . 72 2.12 ·ͱΊ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 ୈ 3 ষ ྲྀମղੳʹΑΔྗֶత૬ࣅੑͷݕূ 74 3.1 ϨΠϊϧζҧ͍ʹΑΔղੳ . . . . . . . . . . . . . . . . . . . . . 74 3.2 ϞσϧͷมߋՕॴ . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 ྲྀͷมߋ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 ܘͷେ͖͞ͷมߋ . . . . . . . . . . . . . . . . . . . . . . . . . 76 ߅ྗͷઃఆมߋ . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.3 ܭࢉ݁Ռ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 3.4 ·ͱΊ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 ୈ 4 ষ PyFoam ͷجૅ 80 4.1 PyFoam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.2 Python ͷ࣮ߦڥͱىಈ . . . . . . . . . . . . . . . . . . . . . . . 80 4.3 OpenFOAM ͷϑΝΠϧͷॻ͖͑ . . . . . . . . . . . . . . . . . . 81 4.4 νϡʔτϦΞϧͷίϐʔ . . . . . . . . . . . . . . . . . . . . . . . . 85 PyFoam ϥΠϒϥϦΛ͏ํ๏ . . . . . . . . . . . . . . . . . . . 85 Python ͷඪ४ϥΠϒϥϦΛ͏ํ๏ . . . . . . . . . . . . . . . . . 86 4.5 ܭࢉ࣮ߦ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 PyFoam Λ͏ํ๏ . . . . . . . . . . . . . . . . . . . . . . . . . 88 Allrun εΫϦϓτͱ Python ͷඪ४ϥΠϒϥϦΛซ༻͢Δํ๏ . . . . 91 όοΫάϥϯυ࣮ߦ . . . . . . . . . . . . . . . . . . . . . . . . 93 PyFoam ʹΑΔܭࢉ࣮ߦʢόοΫάϥϯυʣ . . . . . . . . . . . . 93 Allrun ࣮ߦʢόοΫάϥϯυʣ . . . . . . . . . . . . . . . . . . 95 4.6 ·ͱΊ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 ୈ 5 ষ PyFoam Λ༻͍ͨύϥϝʔλελσΟͷ࣮ફ 98 – v –
8 ࣍ 5.1 ύϥϝʔλελσΟͷྲྀΕ . . . . . .
. . . . . . . . . . . . . . . . . 98 5.2 ϓϩάϥϜͷ֓ཁ . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 5.3 ϨΠϊϧζҧ͍ʹΑΔ߅ྗ . . . . . . . . . . . . . . . . . . . 106 5.4 ·ͱΊ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 A gnuplot ʹΑΔάϥϑॲཧ 112 A.1 Re = 200 Ͱͷԁபͷ߅ྗ . . . . . . . . . . . . . . . . . . . . . 112 B OpenFOAM ͷ Tips 116 B.1 ϝογϡ࣭ͷ֬ೝ . . . . . . . . . . . . . . . . . . . . . . . . . . 116 B.2 ࿈ଓࣜͷޡࠩ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 B.3 y+ ͷ֬ೝ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 B.4 ྲྀྔͷ߹ੑ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 C ιϑτͷΠϯετʔϧ 122 C.1 OpenFOAM ͷΠϯετʔϧ . . . . . . . . . . . . . . . . . . . . . 122 C.2 ParaView ͷΠϯετʔϧ . . . . . . . . . . . . . . . . . . . . . . . 124 C.3 Python ͷϥΠϒϥϦͷΠϯετʔϧ . . . . . . . . . . . . . . . . . 124 C.4 gnuplot ͷΠϯετʔϧ . . . . . . . . . . . . . . . . . . . . . . . . 126 ࢀߟจݙ 128 ͋ͱ͕͖ 130 – vi –
9 ୈ 1 ষ ԁப·ΘΓͷྲྀΕͷ֓ཁ ͜ͷষͰɺԁப·ΘΓͷྲྀΕʹؔ͢Δجຊతͳ֓೦ʹ͍ͭͯհ͠·͢ɻ ԁப·ΘΓͷྲྀΕཧతʹ͘ཧղ͞Ε͓ͯΓɺϨΠϊϧζʹΑͬͯྲྀ Εͷύλʔϯ͕มΘΔڵຯਂ͍ݱ͕ΒΕ͍ͯ·͢ɻ͜ΕΒͷࣝɺ࣍ষ Ҏ߱Ͱղઆ͢ΔྲྀମղੳͷલఏࣝͰ͢ɻ 1.1
ϨΠϊϧζʹΑΔྲྀΕͷύλʔϯ ԁப·ΘΓͷྲྀΕϨΠϊϧζ Re ɺද͞ dʢԁபܘʣ ɺද UʢҰ ༷ྲྀʣ ɺಈ೪ੑ ν ʹΑͬͯɺਤ 1.1 ͷΑ͏ʹྲྀΕͷ༷૬͕େ͖͘มΘΓ·͢ɻ ࣜ 1.1: ϨΠϊϧζ Re = Ud ν ҎԼͷΑ͏ʹɺԁபपΓͷྲྀΕͷ༷૬ϨΠϊϧζʹΑͬͯ 4 ͭͷΧςΰϦʔʹ ྨ͞Ε·͢ɻ – 1 –
1 0 ୈ 1 ষ ԁப·ΘΓͷྲྀΕͷ֓ཁ 1.1 ϨΠϊϧζʹΑΔྲྀΕͷύλʔϯ Re <
1 (1) 1 < Re < 40 (2) 40 < Re < 500 (3) 1000 < Re (4) ˛ ਤ 1.1: ԁப·ΘΓͷྲྀΕ (1) ϨΠϊϧζ͕ 1 ఔ·ͨͦΕҎԼͷ߹ɺྲྀΕ্ԼରশͷఆৗྲྀͰ ͋ΓɺԁபഎޙʹӔൃੜ͠ͳ͍ɻ (2) ϨΠϊϧζ͕ 40 ఔͷ߹ɺྲྀΕ্ԼରশͷఆৗྲྀͰ͋Δ͕ɺԁ பഎޙʹ্ԼରশͷࢠͷӔ͕ൃੜ͢Δɻ (3) ϨΠϊϧζ͕ 50ʙ500 ఔͷ߹ɺྲྀΕͷ্Լͷରশੑ่͕Εͯԁபഎޙ ͷӔ্Լʹ์ग़͠ɺޙྲྀʹपظతʹ্Լʹަޓʹ์ग़͞ΕΔΧϧϚϯӔྻΛ ܗ͢Δɻ (4) ϨΠϊϧζ͕ 1000 ఔҎ্ʹͳΔͱɺޙྲྀʹ์ग़͞ΕΔӔཚΕɺ༷ʑͳ େ͖͞ͷӔΛؚΉΑ͏ʹͳΓɺཚྲྀͷ༷૬Λఄͯ͘͠Δɻ ྲྀମղੳͷ؍͔Β৮Ε͓͖ͯ·͢ɻ (1) ͱ (2) ྲྀͷఆৗղੳͱͯ͠ྲྀମղੳΛߦ͏͜ͱ͕Ͱ͖·͢ɻͪΖΜඇఆ ৗղੳΛߦ͍ɺे͕࣌ؒܦաͨ݁͠ՌΛऩଋղͱͯ͠ٻΊͯྑ͍Ͱ͕͢ɺ͋·Γ ޮతͰ͋Γ·ͤΜɻ (3) ͷΧϧϚϯӔྻྲྀͰ͋Γ·͕͢ɺӔ͕पظతʹ์ग़͞ΕΔඇఆৗੑ͕͋Δ ͨΊɺྲྀΕඇఆৗྲྀղੳͰߦ͏ඞཁ͕͋Γ·͢ɻඇఆৗͷݱΛແཧʹఆৗղੳ Ͱߦ͏ͱɺऩଋղΛಘΒΕͳ͔ͬͨΓɺܭࢉ͕ൃࢄ͔ͬͨ͢͠Γ͠·͢ɻ (4) ͰཚྲྀͷऔΓѻ͍͕ॏཁʹͳΓ·͢ɻେখ͞·͟·ͳӔ͕ݟΒΕΔͨΊɺ ϝογϡαΠζ͚ͩͰখ͞ͳӔΛ࠶ݱ͠Α͏ͱ͢Δͱɺେͳϝογϡʹͳͬͯ͠ ·͍·͢ɻͦ͜ͰɺϝογϡαΠζΛখ͘͢͞Δ͜ͱͳ͘ӔͷݱΛཧతʹѻ͏ཚ – 2 –
1 1 ୈ 1 ষ ԁப·ΘΓͷྲྀΕͷ֓ཁ 1.2 ମʹಇ͘ྗͱετϩʔϋϧ ྲྀϞσϧ͕ඞཁʹͳΓ·͕͢ɺదʹྲྀΕΛ༧ଌͰ͖ΔཚྲྀϞσϧͷݚڀࠓߦΘ Ε͍ͯ·͢ɻ
Ҏ্Λද 1.1 ʹ·ͱΊ·͢ɻ ˝ ද 1.1: ྲྀΕͷղੳͷछྨ ϨΠϊϧζ ఆৗ or ඇఆৗ ཚྲྀϞσϧ Re < 1 ఆৗղੳ ྲྀ 1 < Re < 40 ఆৗղੳ ྲྀ 50 < Re < 500 ඇఆৗղੳ ྲྀ 1000 < Re ඇఆৗղੳ ཚྲྀ ୈ 2 ষͰɺΧϧϚϯӔྻͷྲྀମղੳͷઃఆํ๏Λղઆ͠·͢ɻ·ͨɺୈ 5 ষͰ ɺPython ͬͨύϥϝʔλελσΟͷதͰϨΠϊϧζΛมԽ͠ɺਤ 1.1 ͷΑ͏ ͳྲྀΕ͕ग़ݱ͢Δ͜ͱΛ֬ೝ͠·͢ɻ 1.2 ମʹಇ͘ྗͱετϩʔϋϧ ߅ྗͱετϩʔϋϧʹ͍ͭͯجຊతͳ͜ͱΛ֬ೝ͠ɺ࣍ষͷྲྀମղੳͱͷൺ ֱͷࡍͷલఏࣝΛ͓͓͖͑ͯ͞·͢ɻ ߅ྗͱ༲ྗ Ұ༷ͳྲྀΕʹஔ͔Εͨମʹɺਤ 1.2 ʹྲྀମ͔ΒྗΛड͚·͢ɻྲྀΕʹରͯ͠ฏ ߦͳํͷྗΛ߅ྗ D ͱ͍͍ɺਨํͷྗΛ༲ྗ L ͱ͍͍·͢ɻ – 3 –
1 9 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ ͜ͷষͰɺԁப·ΘΓͷྲྀΕΛղੳ͢ΔͨΊͷ OpenFOAM ͷઃఆํ๏ Λৄ͘͠ղઆ͠·͢ɻີมԽΛΘͳ͍ඇѹॖྲྀΕΛԾఆ͓ͯ͠Γɺܭࢉෛ
ՙ͕͍͜ͱ͔Β࣮ݧͱͷൺֱ͕༰қͳࡐͰ͢ɻલষͰࣔͨ͠Α͏ʹɺϨΠ ϊϧζྲྀΕͷಛੑΛେ͖͘ࠨӈ͠·͢ɻຊষͰɺಛఆͷϨΠϊϧζΛ ઃఆ͠ɺΧϧϚϯӔྻͷܗΛ؍͠·͢ɻղੳઃఆͷखॱΛཧղ͠ɺ࣮ݧͰ ಘΒΕͨ߅ྗετϩʔϋϧͱ OpenFOAM ͷ݁ՌΛൺֱ͢Δ͜ͱͰɺ ܭࢉ݁ՌͷଥੑΛݕূ͠·͢ɻ 2.1 ղੳͷత ຊॻͰɺԁப·ΘΓͷྲྀΕΛ OpenFOAM Ͱղੳ͠·͢ɻ·ͨɺಘΒΕͨ߅ྗ ͱετϩʔϋϧ͕࣮ݧͱҰக͍ͯ͠Δ͜ͱΛ֬ೝ͠·͢ɻ ԁப·ΘΓͷྲྀΕʹ͍ͭͯͷϙΠϯτҎԼͱͳΓ·͢ɻ • ྲྀΕͷ༷ࢠϨΠϊϧζʹΑͬͯมΘΔ • ϨΠϊϧζʹΑͬͯ߅ྗ͕มԽ͠ɺ࣮ݧͰ͔֬ΊΒΕ͍ͯΔ • ཚྲྀঢ়ଶͰɺ߅ྗ Cd = 1.0 ∼ 1.2 • ཚྲྀঢ়ଶͰɺετϩʔϋϧ St = 0.2 • ѹྗཧྲྀମͱ࣮ࡍͷྲྀମͰҟͳΔ • ྗֶత૬ࣅੑʹΑΓɺྲྀΕͷಛओʹϨΠϊϧζͰܾ·Δ 2.2 OpenFOAM ͰͷγϛϡϨʔγϣϯ OpenFOAM Λ༻͍ͯਤ 2.1 ͷΑ͏ͳ 2 ࣍ݩͷԁப·ΘΓͷྲྀΕͷγϛϡϨʔγϣ ϯΛߦ͍·͢ɻ – 11 –
2 0 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ 2.2 OpenFOAM ͰͷγϛϡϨʔγϣϯ 0.15m/s
d = 20 mm ˛ ਤ 2.1: ԁப·ΘΓͷྲྀΕͷγϛϡϨʔγϣϯ݁Ռ z ࣠ํʹແݶʹ͍ԁப͕͋Γɺz ࣠ํʹҰ༷Ͱ͋ΔͨΊɺx-y ฏ໘ΛΓ औͬͨ 2 ࣍ݩϞσϧͰ͢ɻ ղੳϑϩʔ ·ͣղੳΛ࣮ߦ͢Δ·ͰͷશମͷྲྀΕΛԡ͓͖͑ͯ͞·͠ΐ͏ɻ • ιϧόͷબ • ࡞ۀϑΥϧμͷ࡞ • νϡʔτϦΞϧΛίϐʔ • ϝογϡੜ (blockMesh) • ղੳઃఆ (OpenFOAM ͷઃఆϑΝΠϧ) • ܭࢉ࣮ߦ (OpenFOAM) • ղੳ݁ՌͷՄࢹԽ (ParaViewɺPython) ௨ৗɺղੳϑϩʔͷதʹղੳ༻ͷϞσϧ࡞ͷఔ͕͋Γ·͕͢ɺࠓճ blockMesh ͰϝογϡΛอ࣋ͨ͠ܗঢ়Λ࡞͠·͢ͷͰ 3D-CAD Λ༻͍ͨϞσϧ࡞ ͷఔෆཁͰ͢ɻblockMesh OpenFOAM ͷඪ४ϢʔςΟϦςΟʹؚ·Εͯ ͍ΔϓϩάϥϜͰɺOpenFOAM ΛΠϯετʔϧࡁͰ͋Ε৽ͨʹΠϯετʔϧͷख ଓ͖ෆཁͰ͢ɻ – 12 –
2 1 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ 2.2 OpenFOAM ͰͷγϛϡϨʔγϣϯ プリ処理
モデル作成 メッシュ作成 解析設定 計算実行 結果処理 blockMesh ソルバ ポスト処理 OpenFOAM ParaView Python ˛ ਤ 2.2: ղੳϑϩʔ ιϧόͷબ OpenFOAM ղ͖͍ͨʹదͨ͠ιϧόΛબ͢Δඞཁ͕͋Γ·͢ɻ୯૬ྲྀͰ ԹมԽͱີมԽ͕ແࢹͰ͖ΔඇѹॖྲྀΕͱԾఆͯ͠ղੳΛߦ͏ͨΊɺͦΕʹద͠ ͨιϧόͷબ͕ඞཁͰ͢ɻԁப·ΘΓͷྲྀΕϨΠϊϧζʹΑͬͯྲྀΕͷঢ়ଶ͕ มΘΓ·͢ɻϨΠϊϧζ͕ Re = 40 ∼ 50 ҎԼ߹ɺఆৗྲྀΕͱͯ͠ѻ͍ɺͦΕ Ҏ্ඇఆৗྲྀΕͱͯ͠ѻ͍·͢ɻ ͜ͷΑ͏ͳ݅ʹదͨ͠ OpenFOAM ͷදతͳιϧόͱͯ͠ද 2.1 ͷͷ͕ ڍ͛ΒΕ·͢ɻ ˝ ද 2.1: ඇѹॖྲྀΕͷදతͳιϧό ιϧό໊ ҙຯ icoFoam ඇఆৗྲྀղੳιϧό pimpleFoam ඇఆৗཚྲྀղੳιϧό ʢPISO+SIMPLE ͷ PIMPLE ΞϧΰϦζϜʣ pisoFoam ඇఆৗཚྲྀղੳιϧόʢPISO ๏ʣ simpleFoam ఆৗཚྲྀղੳιϧόʢSIMPLE ๏ʣ ඇఆৗղੳΛߦ͏ͨΊ PIMPLE ๏ (PISO+SIMPLE) ΞϧΰϦζϜʹै͏ඇৗཚ ྲྀղੳͷιϧόͷ pimpleFoam Λ͍·͢ɻ – 13 –
2 6 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ 2.5 ϝογϡ࡞ 2.5 ϝογϡ࡞
OpenFOAM ͷϝογϡ࡞ϢʔςΟϦςΟͰ͋Δ blockMesh Λͬͯԁப· ΘΓͷϝογϡΛ 6 ໘ମͰ࡞͠·͢ɻ ࠷ऴతʹਤ 2.4 ͷΑ͏ʹͳΓ·͢ɻ 10d 10d 50d d = 20 mm ˛ ਤ 2.4: blocMesh ʹΑΔϝογϡ࡞ʢʣ ܘ d 20 mmɺx × y ํʹ 40d × 50d ͷ֎෦ྖҬͱ͠·͢ɻԁபճΓӔ͕ ൃੜ͢ΔͨΊࡉ͔͍ϝογϡʹ͠ɺԁபഎޙཚΕ͕ܹ͍ͨ͠Ίे͘ղੳྖҬΛ ͱ͍ͬͯ·͢ɻ ϝογϡ࡞ܗঢ়ͷରশੑΛར༻ͯ͠ɺ3 ஈ֊Ͱ࡞͍ͯ͠·͢ɻ - 1. blockMesh Ͱ 1/4 ϞσϧΛ࡞- 2. mirrorMesh ͰϛϥʔϝογϡΛ࡞ - 3. extrudeMesh Ͱ֎෦ྖҬΛԡ͠ग़͢ গʑखؒͷ͔͔Δํ๏Λऔ͍ͬͯ·͕͢ɺ ͋ͱͰϝογϡׂΛมߋͨ͠Γɺ ֎෦ ྖҬΛҾ͖Ԇͨ͠Γ͢Δͷʹָͳํ๏Λͱ͍ͬͯ·͢ɻͪΖΜ blockMesh ͷ ΈͰಉ༷ͷ͜ͱߦ͏͜ͱ͕Ͱ͖·͕͢ɺOpenFOAM ͷ͍Ζ͍ΖͳϢʔςΟϦςΟ Λମݧͯ͠ΈΔͷຊষͷతͷͻͱͭͰ͢ɻ blockMeshDict Λฤू Ͱɺ blockMesh Ͱ 1/4 ϞσϧΛ࡞͠·͠ΐ͏ɻ – 18 –
3 9 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ 2.5 ϝογϡ࡞ } Xmax
{ type patch; nFaces 120; startFace 83480; } ) ڥք໘ͷ໊લਤ 2.13 ͷΑ͏ʹͳ͍ͬͯ·͢ɻ Xmin Ymin Ymax Xmax hole empty ˛ ਤ 2.13: createPatch ࣮ߦޙͷڥք໘ͷ໊લ extrudeMesh Λฤू ࠨଆ͔Βྲྀೖ݅Λ༩͑ɺԁபͷഎޙʢӈଆʣʹӔ͕Ͱ͖ΔͷͰ͕͢ɺղੳྖ Ҭ͕খ͍͞߹ɺٯྲྀ͕ൃੜͨ͠Γਫ਼͕ѱ͍ղੳ߹ʹΑͬͯܭࢉΤϥʔ ʹͳΔ͜ͱ͋Γ·͢ɻ͏Ұ͡Ί͔ΒϝογϡઃఆΛ͢Δͷ໘Ͱ͕͢ɺ extrudeMesh Λ͑ಛఆͷ໘ͩԡ͠ग़͢͜ͱ͕Ͱ͖·͢ɻ extrudeMeshDict ΛదͳνϡʔτϦΞϧ͔Βίϐʔ͠·͢ɻ ˝ extrudeMesh – 31 –
4 1 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ 2.5 ϝογϡ࡞ 押し出 し方向
層数、厚み ˛ ਤ 2.14: extrudeMesh ࣮ߦޙͷϝογϡ Ҏ্Ͱ blockMesh ͷΈͰ 6 ໘ମϝογϡΛ࡞͕Ͱ͖·ͨ͠ɻ ϝογϡ࣭ͷ֬ೝ ϝογϡ࡞ޙʹඞͣ checkMesh Λ࣮ߦͯ͠ɺϝογϡ࣭ͱηϧͳͲΛ֬ ೝ͓͖ͯ͠·͢ɻ $ checkMesh Check mesh... Time = 0 Mesh stats points: 61760 ˡઅͷ internal points: 0 faces: 122080 ˡ໘ͷ internal faces: 60320 ˡ෦ͷ໘ͷ cells: 30400 ˡηϧ faces per cell: 6 boundary patches: 6 point zones: 0 face zones: 0 cell zones: 0 ...(লུ)... – 33 –
7 4 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ 2.7 ܭࢉ࣮ߦ (9) (10)
˛ ਤ 2.30: ઢͷଠ͞ͱϨϯμϦϯάͷઃఆ (9) Line Width Λ 4 ʹมߋ (10) Render Lines As Tubes ʹνΣοΫΛೖΕΔ ͜ΕʹΑΓɺઢ͕͖ͬΓ͠·ͨ͠ɻྲྀઢΛදࣔͨ͠ࡍʹɺ post.foam ͷද͕ࣔ ফ͍͑ͯΔͱࢥ͍·͢ɻ࠶දࣔͯ͠ྲྀઢͱ߹Θͤͯ֬ೝ͠·͠ΐ͏ɻ (12) (13) ˛ ਤ 2.31: post.foam ͷಁ໌ͷઃఆ – 66 –
7 5 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ 2.8 ܭࢉ݁Ռͷଥੑͷݕূ (11) post.foam
Λදࣔ (12) Opacity Λ 0.5 ʹͯ͠ಁ໌Λௐ Ҏ্ͰྲྀίϯλͱྲྀઢΛ߹ΘͤͯՄࢹԽ͢Δ͜ͱ͕Ͱ͖·ͨ͠ɻ 2.8 ܭࢉ݁Ռͷଥੑͷݕূ ྲྀମղੳͷଥੑΛݕূ͢ΔͨΊʹɺ߅ྗ Cd ɺετϩʔϋϧ St ɺ͓Αͼѹ ྗͷ Cp Λ࣮ݧཧͱͷൺֱΛߦ͍·͢ɻϨΠϊϧζ Re = 200 ʹ͓ ͍ͯɺ߅ྗ Cd = 1.5ɺετϩʔϋϧ St = 0.2 Ͱ͋Δ͜ͱ͕ΒΕ͍ͯ· ͢ɻ͜ΕΒͷͱɺࠓճͷྲྀମղੳ݁Ռ͕ۙࣅ͍ͯ͠Δ߹ɺղੳͷଥੑ͕֬ೝ͞ ΕΔ͜ͱʹͳΓ·͢ɻ Python ʹΑΔάϥϑԽͷίʔυͷղઆɺຊষͰѻ͍·ͤΜ͕ɺgithub ͷ Jupyter ϊʔτϒοΫΛެ։͍ͯ͠·͢ͷͰɺ͝ࢀߟ͍ͩ͘͞ɻ ߅ྗ ߅ྗϦετ 2.27 ͷΑ͏ʹ postProcessing/forces/0/coefficient.dat ʹग़ྗ ͞Ε͍ͯ·͢ɻ ˝ Ϧετ 2.27: postProcessing/forces/0/coefficient.dat # Force and moment coefficients # dragDir : (1.000000e+00 0.000000e+00 0.000000e+00) # sideDir : (0.000000e+00 0.000000e+00 -1.000000e+00) # liftDir : (0.000000e+00 1.000000e+00 0.000000e+00) # rollAxis : (1.000000e+00 0.000000e+00 0.000000e+00) # pitchAxis : (0.000000e+00 0.000000e+00 -1.000000e+00) # yawAxis : (0.000000e+00 1.000000e+00 0.000000e+00) # magUInf : 1.500000e-01 # lRef : 2.000000e-02 # Aref : 2.000000e-04 # CofR : (0.000000e+00 0.000000e+00 0.000000e+00) # # Time Cd ... Cl ... 0.00011999 1.716351e+03 ... 4.095318e-03 ... 0.000263965 1.781495e+01 ... -6.134204e-03 ... 0.000436705 9.864620e+00 ... 4.928078e-03 ... ... ʢ লུ ʣ ... – 67 –
7 6 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ 2.9 ετϩʔϋϧ Ϧετ 2.27
ͷ Cd ͕߅ྗͳͷͰɺ͜ΕΛάϥϑʹͨ͠ͷ͕ਤ 2.32 Ͱ͢ɻ 0 5 10 15 20 25 Time (s) 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 Force Coefficient Drag Force Coefficient over Time Drag Force Coefficient ˛ ਤ 2.32: ߅ྗͷ݁Ռ ԁபޙํʹӔ͕์ग़͞Ε͔ͯΒɺ߅ྗ͕ৼಈ͓ͯ͠Γɺ15 s Ҏ্ͰฏۉΛͱ Δͱɺ ߅ྗ Cd = 1.38 Ͱͨ͠ɻ͜ͷɺ ઌߦݚڀͰͷϨΠϊϧζ Re = 200 ʹ͓͚Δ߅ྗ Cd = 1.5 ʹۙ͘ɺܭࢉ݁Ռ֓Ͷྑ͍ҰகΛ͍ࣔͯ͠·͢ɻ 2.9 ετϩʔϋϧ ετϩʔϋϧɺԁபޙํʹੜ͞ΕΔӔͷपظʹΑͬͯɺਤ 2.33 ͷΑ͏ʹɺྲྀ Εʹਨͳํͷྗʢ༲ྗʣ͕ৼಈ͢Δ༷ࢠΛද͠·͢ɻ͜ͷৼಈͷपظ f ɺӔͷ ੜपظͱҰக͍ͯ͠Δͱߟ͑ΒΕ·͢ɻ – 68 –
7 7 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ 2.9 ετϩʔϋϧ 0 5
10 15 20 25 Time (s) 1.00 0.75 0.50 0.25 0.00 0.25 0.50 0.75 1.00 Lift Force Coeff Lift Force Coefficient over Time Lift Force Coefficient ˛ ਤ 2.33: ༲ྗͷ݁Ռ ͦ͜Ͱɺ༲ྗͷ࣌ܥྻσʔλʹରͯ͠ϑʔϦΤมΛߦ͍ɺಛతͳपΛࢉग़ ͠·͢ɻ͜ͷपΛӔੜͷपظͱͯ͠༻͍ɺετϩʔϋϧΛٻΊ·͢ਤ 2.34ɻ – 69 –
7 8 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ 2.10 ѹྗͷ 0 1
2 3 4 5 Frequency (Hz) 0.0 0.1 0.2 0.3 0.4 0.5 Amplitude FFT of Cl FFT Amplitude Peaks ˛ ਤ 2.34: ༲ྗͷप ਤ 2.33 ͷ༲ྗΛͱʹɺ15 s Ҏ্ͰϑʔϦΤมͨ݁͠Ռ͕ɺਤ 2.34 Ͱ͢ɻ ࠷େৼ෯Λ࣋ͭप f = 1.48Hz Ͱ͢ɻҰ༷ྲྀ U = 0.15 m/sɺද͞ d = 0.02 m ͳͷͰɺετϩʔϋϧɺSt = fd U = 1.47×0.02 0.15 = 0.2 ͱͳΓ·͢ɻ ͜ͷɺઌߦݚڀͰͷϨΠϊϧζ Re = 200 ʹ͓͚Δετϩʔϋϧ St = 0.2 ͱܭࢉ݁Ռྑ͍ҰகΛ͍ࣔͯ͠·͢ɻ 2.10 ѹྗͷ ߅ྗϦετ 2.28 ͷΑ͏ʹ postProcessing/patchProbes/0/cp ʹग़ྗ͞Ε ͍ͯ·͢ɻ ˝ Ϧετ 2.28: postProcessing/patchProbes/0/cp # Probe 0 (-0.01 0 0.005) at patch hole with a ... ʢ লུ ʣ ... ... ʢ লུ ʣ ... – 70 –
7 9 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ 2.10 ѹྗͷ # Time
0 1 ... ʢ লུ ʣ ... 0.5 1.12171 1.03761 ... ʢ লུ ʣ ... 1 1.09921 1.02045 ... ʢ লུ ʣ ... ... ʢ লུ ʣ ... 29 1.11018 1.0566 ... ʢ লུ ʣ ... 29.5 1.10108 0.989234 ... ʢ লུ ʣ ... 30 1.10598 0.99292 ... ʢ লུ ʣ ... ਤ 2.35 ɺྲྀମղੳͰಘΒΕͨ 3.5 ඵͱ 30 ඵͰͷԁप্Ͱͷѹྗͱϙςϯ γϟϧྲྀΕʹ͓͚Δѹྗ Cp = 1−4 sin2 θ ͱͷൺֱΛ͍ࣔͯ͠·͢ɻϙςϯγϟ ϧྲྀΕʹ͓͍ͯɺԁபલޙͰѹྗ͕ରশͰ͋Δͷʹର͠ɺྲྀମղੳͷѹྗ ɺ30 ∼ 40 Ҏ্ͷ֯ͰෛͷΛऔ͓ͬͯΓɺԁபͷલޙͰѹྗ͕ରশͰͳ͍ ͜ͱ͕Θ͔Γ·͢ɻ͜ͷ͜ͱ͕ɺϙςϯγϟϧྲྀΕͰ߅ྗ͕ൃੜ͠ͳ͍ҰํͰɺ࣮ ࡍͷྲྀΕͰ߅ྗ͕ੜ͡ΔݪҼͱཧղͰ͖·͢ɻ 0 10 20 30 40 50 60 70 80 90 100110120130140150160170180 deg 3.0 2.5 2.0 1.5 1.0 0.5 0.0 0.5 1.0 Cp (Pressure Coefficient) Probe Data at Time 3.5s and 30s OpenFOAM Time 3.5s OpenFOAM Time 30s 1 4sin2 ( ) ˛ ਤ 2.35: ԁप্ͷѹྗͷ ਤ 2.36 ɺ3.5 ඵͱ 30 ඵͷѹྗΛ͍ࣔͯ͠·͢ɻ࣮ࡍͷྲྀΕͰɺྲྀମͷ೪ ੑ͕ӨڹΛٴ΅͠ɺޙྲྀʹ͓͍ͯྲྀମͷണӔͷܗ͕ݟΒΕ·͢ɻ͜ͷͨΊɺԁ பͷલޙͰѹྗ͕ࠩੜ͡ɺ߅ྗ͕ൃੜ͠·͢ɻ͔͜͜Βɺ೪ੑޮՌ͕ྲྀΕͷඇରশ – 71 –
8 0 ୈ 2 ষ ԁப·ΘΓͷྲྀମղੳ 2.11 ղੳʹ͓͍ͯҙͨ͠ ੑΛҾ͖ى͜͠ɺ߅ྗ͕ੜ͡ΔཁҼͰ͋Δ͜ͱ͕ཧղͰ͖·͢ɻ ˛
ਤ 2.36: 3 ඵͱ 30 ඵͷԁப·ΘΓͷѹྗ 2.11 ղੳʹ͓͍ͯҙͨ͠ ຊষͷղੳʹ͓͍ͯҙ͖͢ͱͯ͠ɺܭࢉ࣌ؒࠁΈ ∆t ʹ͍ͭͯه͓͖ͯ͠ ·͢ɻ ༲ྗͷ࣌ࠁྺΛݟΔͱɺ1 ඵؒʹ 1.5 ճৼಈ͓ͯ͠Γɺ͜ͷৼಈͷΛेͱΒ ͑Δ͜ͱ͕Ͱ͖Δ͚ͩͷ࣌ؒࠁΈΛઃఆ͢Δඞཁ͕͋Γ·͢ɻ࠷Ͱ 1 ͭࢁʢप ظʣʹରͯ͠ɺ4 ඞཁͩͱͯ͠ɺ࠷Ͱ ∆t = 1 2×1.5 × 1 4 = 0.08 ҎԼͰͳ ͚ΕͳΓ·ͤΜɻࠓճ controlDict ͷ adjustTimeStep yes; ʹΑΓɺΫʔ ϥϯࢦఆͰ࣌ؒࠁΈΛࣗಈͰઃఆ͢ΔΑ͏ʹ͍ͯ͠·͢ɻΫʔϥϯܭࢉͷ҆ఆ ԽʹؔΘΔͷͰɺݱʹରͯ͠ेͳ࣌ؒࠁΈ͔ͱผͰߟ͑Δඞཁ͕͋Γ·͢ɻ maxCo 0.9; Ͱ࠷େΫʔϥϯ 0.9 ͱ͍ͯ͠·͢ɻ Ϧετ 2.29 ͷΑ͏ʹ log.pimpleFoam ʹ࣌ؒࠁΈ͕ग़ྗ͞Ε͍ͯ·͢ɻ ˝ Ϧετ 2.29: log.pimpleFoam ... ʢ লུ ʣ ... Courant Number mean: 0.031598 max: 0.892659 deltaT = 0.000178571 Time = 0.3 PIMPLE: iteration 1 ... ʢ লུ ʣ ... – 72 –
8 2 ୈ 3 ষ ྲྀମղੳʹΑΔྗֶత૬ࣅੑͷ ݕূ ͜ͷষͰɺྗֶత૬ࣅੑʹ͍ͭͯɺOpenFOAM Λ༻͍ͨྲྀମղੳͰ֬ೝ Λߦ͍·͢ɻୈ
1 ষͰղઆͨ͠Α͏ʹɺφϏΤ-ετʔΫεํఔࣜΛແ࣍ݩԽ ͢Δ͜ͱͰɺͯ͢ͷཧྔ͕ϨΠϊϧζʹू͞ΕɺྲྀΕ͕ϨΠϊϧζ ͷΈʹґଘ͢Δ͜ͱ͕ࣔ͞Ε·͢ɻ͜͜Ͱɺ࣮ࡍʹྲྀମղੳΛ௨ͯ͜͡ͷཧ Λݕূ͠ɺڭՊॻͰֶͿ༰Λ͞Βʹਂ͘ཧղ͢Δମݧ͕Ͱ͖ΔΑ͏ʹ͠· ͢ɻཧతͳཧղΛ࣮ࡍͷղੳ݁ՌͱরΒ͠߹ΘͤΔ͜ͱͰɺྗֶత૬ࣅੑͷ ֓೦͕۩ମతʹͲͷΑ͏ʹద༻͞ΕΔ͔Λମײ͍ͯͩ͘͠͞ɻ 3.1 ϨΠϊϧζҧ͍ʹΑΔղੳ ϨΠϊϧζΛ߹Θͤͨ 4 ͭͷղੳέʔεͰൺֱ͠·͢*1ɻ ˝ ද 3.1: ྲྀΕͷղੳͷछྨ ղੳέʔε ԁபܘ d ྲྀ U ϨΠϊϧζ Re έʔε 1 2 mm 0.15 m/s 20 έʔε 2 0.2 mm 1.5 m/s 20 έʔε 3 20 mm 0.15 m/s 200 έʔε 4 2 mm 1.5 m/s 200 • ղੳ݅ ◦ ιϧόɿpimpleFoam ◦ ཚྲྀϞσϧɿlaminarʢཚྲྀϞσϧແ͠ʣ *1 ղੳ༻ͷϞσϧɺgithub ͷ 003_mechanicalSimilarity ʹެ։͍ͯ͠·͢ɻ – 74 –
8 6 ୈ 3 ষ ྲྀମղੳʹΑΔྗֶత૬ࣅੑͷݕূ 3.3 ܭࢉ݁Ռ ケース1 ケース2
ケース3 ケース4 Re = 20 Re = 20 Re = 200 Re = 200 ˛ ਤ 3.1: ղੳέʔεҧ͍݁Ռ ·ͨɺ߅ྗͱετϩʔϋϧͷ݁ՌΛද 3.2 ʹࣔ͠·͢ɻϨΠϊϧζ Re = 20 ͰɺपظతͳӔੜ͕ى͜ΔղੳέʔεͰͳ͍ͨΊɺετϩʔϋϧ ۭനʹ͍ͯ͠·͢ɻ ˝ ද 3.2: ߅ྗͱετϩʔϋϧͷ݁Ռ ղੳέʔε ߅ྗ Cd ετϩʔϋϧ St έʔε 1 2.18 - έʔε 1 2.18 - έʔε 1 1.38 0.20 έʔε 1 1.38 0.19 ྲྀܘ͕ҟͳͬͨͱͯ͠ɺϨΠϊϧζ͕ಉ͡Ͱ͋ΕɺྲྀΕͷ༷ࢠ߅ྗ ɺετϩʔϋϧͳͲͷಉ͡ʹͳΓ·͢ɻ͜Εɺͱͷཧݱ͕ྗֶత ૬ࣅੑʹج͍͍ͮͯΔͨΊͰ͢ɻྗֶత૬ࣅੑʹΑΓɺແ࣍ݩͰ͋ΔϨΠϊϧζ ͕Ұக͢ΔݶΓɺϞσϧͱ࣮ͷྲྀΕͷύλʔϯಛੑಉ͡ʹͳΔ͜ͱ͕อূ͞Ε ·͢ɻͦͷͨΊɺ࣮ʹ͓͍ͯɺϨΠϊϧζΛج४ʹͯ͠ൺֱ͢Δ͜ͱͰɺ͞· ͟·ͳεέʔϧͰͷྲྀΕͷੑ࣭Λ༧ଌ͢Δ͜ͱ͕Ͱ͖·͢ɻ ͨͩ͠ɺྲྀମղੳͷΑ͏ʹුྗॏྗͷӨڹ͕͋Δ߹ɺϨΠϊϧζ͚ͩͰ ෆेͰ͢ɻྫ͑ɺϑϧʔυɺॏྗͷӨڹΛड͚ΔྲྀΕࣗ༝ද໘͕ଘࡏ͢ ΔྲྀΕͷղੳʹ͓͍ͯॏཁͳࢦඪͰ͢ɻϑϧʔυ͕Ұக͢Δ͜ͱͰɺॏྗුྗͷ ӨڹΛड͚ΔྲྀΕͷ༷૬͕Ұக͠ɺྗֶత૬ࣅੑཱ͕͠·͢ɻ͜ΕʹՃ͑ͯɺྲྀ – 78 –
1 0 6 ୈ 5 ষ PyFoam Λ༻͍ͨύϥϝʔλε λσΟͷ࣮ફ ͜ͷষͰɺୈ
4 ষͰֶΜͩࣝΛ͞ΒʹਂΊɺ࣮ફతʹ׆༻͍͖ͯ͠· ͢ɻϨΠϊϧζͷҧ͍ʹΑΔԁப·ΘΓͷ߅ྗͷมԽΛɺ࣮ࡍʹྲྀମղ ੳͰ֬ೝ͠·͢ɻϨΠϊϧζΛม͑Δ࡞ۀɺPyFoam Λ͑ޮతʹ ࣮ߦՄೳͰ͢ɻ 5.1 ύϥϝʔλελσΟͷྲྀΕ ͜ͷষͰͷύϥϝʔλελσΟɺಈ೪ੑΛύϥϝʔλͱͯ͠ɺϨΠϊϧζ Λม͑ͨͱ͖ͷ߅ྗͱͷؔΛݟΔ͜ͱΛతͱ͠·͢ɻ ҎԼͷϑΥϧμΛ࡞͠ϑΥϧμҠಈ͓͖ͯ͠·͢ɻ ˝ ղੳϑΥϧμ $ mkdir 005_cylinder2DParaSutdy ˡϑΥϧμͷ࡞ $ cd 005_cylinder2DParaSutdy ˡϑΥϧμͷҠಈ ύϥϝʔλελσΟͷϑϩʔਤ 5.1 ʹࣔ͢௨ΓͰ͢ɻϓϩάϥϜͷ࣮ߦ Jupyter lab Λ͍·͢ɻ ҎԼ͕खॱͰ͢ɻ 1. results ϑΥϧμΛ࡞ 2. original ͷϑΥϧμͷΫϩʔϯΛ࡞ 3. ಈ೪ੑΛมߋ 4. Allrun εΫϦϓτ࣮ߦ 5. ࣍ͷܭࢉऴྃ·Ͱػ ͜ΕΒͷϓϩάϥϜόοΫάϥϯυͰ࣮ߦ͞Ε͍ͯΔͨΊɺJupyter Lab ͷ – 98 –
1 0 7 ୈ 5 ষ PyFoam Λ༻͍ͨύϥϝʔλελσΟͷ࣮ફ 5.1 ύϥϝʔλελσΟͷྲྀΕ
ૢ࡞͕ՄೳͰ͢ɻ ͱͯ͠ɺoriginal ϑΥϧμΛҰࣜίϐʔ͢ΔͱɺϝογϡใΛؚΉ con- stant/polyMesh ϑΥϧμίϐʔ͞Ε·͢ɻϝογϡใൺֱతʹ༰ྔ͕େ͖͍ ͨΊɺ͠ original ϑΥϧμͱಉ͡ϝογϡใͰΑ͍߹ɺϑΥϧμશମΛίϐʔ ͢ΔͷͰͳ͘ɺγϯϘϦοΫϦϯΫͱͯ͠ࢀর͢Δ͜ͱͰ༰ྔΛݮͰ͖·͢ɻί ϐʔઌͷϝογϡใৗʹ original ϑΥϧμͷϝογϡใΛࢀর͢Δ͜ͱʹͳΓ ·͢ɻ ·ͨɺAllrun ʹΑΔ࣮ߦɺܭࢉ͕ྃ͢Δ·Ͱ࣍ͷεΫϦϓτ͕ػ͢Δ༷ͱ ͳ͍ͬͯ·͢ɻ .ipynb 計算終了まで待機 Re5 Re10 計算終了まで待機 計算終了まで待機 Allrun Re2 0 system constant polyMesh 操作可能 バックグラウンドで実行 ・・・ Allrun original 0 system constant polyMesh クローン results ˛ ਤ 5.1: ύϥϝʔλελσΟͷྲྀΕ ԁப·ΘΓͷྲྀΕʹ͓͍ͯɺϨΠϊϧζ Re = 40 ۙลͰఆৗ͔Βඇఆৗʹͳ Δ͜ͱ͕Θ͔͍ͬͯΔͨΊɺද 5.1 ʹࣔ͢Α͏ʹ Re = 40 ҎԼͰɺఆৗղੳιϧ ό simpleFoam Λ͍ɺͦΕΑΓେ͖͍ϨΠϊϧζ Re Ͱɺඇఆৗղੳιϧό pimpleFoam ʹΓସ͑ΔΑ͏ʹ͍ͯ͠·͢*1ɻ • ղੳ݅ ◦ ιϧόɿද 5.1 ◦ ཚྲྀϞσϧɿlaminarʢཚྲྀϞσϧແ͠ʣ *1 ϨΠϊϧζ͕খ͍͞ྖҬͰ pimpleFoam ͕҆ఆʹܭࢉ͢ΔϝογϡΛ࡞͢Δͷ͕͔ͬ͠ ͨͨΊͰ͢ɻରྲྀ߲ͷεΩʔϜཚྲྀϞσϧΛ͢Δͱ҆ఆʹܭࢉͰ͖ΔՄೳੑ͋Γ·͕͢ɺ ൣғͷϨΠϊϧζҬͰ౷Ұͤͨ͞ϞσϧΛͰ͖Δ͚ͩ༻͔ͨͬͨ͠ࢥ͍͕͋Γɺࠓճఆৗ ͱඇఆৗͰιϧόΛ͍͚Δ͜ͱʹ͠·ͨ͠ɻ – 99 –
1 0 8 ୈ 5 ষ PyFoam Λ༻͍ͨύϥϝʔλελσΟͷ࣮ફ 5.2 ϓϩάϥϜͷ֓ཁ
◦ ಈ೪ੑɿද 5.1 ◦ ࢄԽεΩʔϜɿ2 ࣍ਫ਼෩্ࠩ • ڥք݅ ◦ inletɿྲྀنఆ (0.15, 0, 0) ◦ outletɿࣗવྲྀग़ ◦ wallsɿΓ݅ ◦ emptyɿ2 ࣍ݩ݅ ˝ ද 5.1: ղੳέʔε ղੳέʔε ಈ೪ੑ ν ϨΠϊϧζ Re ιϧό Re2 1.5 × 10−3 2 simpleFoam Re5 6.0 × 10−4 5 ˢ Re20 3.0 × 10−4 10 ˢ Re40 7.5 × 10−5 40 ˢ Re100 3.0 × 10−5 100 pimpleFoam Re200 1.5 × 10−5 200 ˢ Re500 6.0 × 10−6 500 ˢ Re1000 3.0 × 10−6 1000 ˢ Re2000 1.5 × 10−6 2000 ˢ Re5000 6.0 × 10−7 5000 ˢ Re10000 3.0 × 10−7 10000 ˢ ຊདྷͰ͋ΕϨΠϊϧζ Re = 1000 Ҏ্Ͱཚྲྀͷ༷૬͕ݦஶʹදΕͯ͘Δ ͨΊɺϝογϡαΠζཚྲྀϞσϧͷݕ౼ΛेΛߦ͏ඞཁ͕͋Γ·͕͢ɺຊॻͷ ༰Λେ͖͘ҳ͢ΔͨΊɺࠓճཚྲྀϞσϧΛ༻͠ͳ͍ൣғͷϨΠϊϧζҬ Re = 2 ∼ 2000 ͱɺղੳϞσϧతʹద༻֎ Re = 5000, 10000 Ͱͷύϥϝʔλελ σΟΛߦ͍·ͨ͠*2ɻ 5.2 ϓϩάϥϜͷ֓ཁ ҎԼɺϓϩάϥϜͷશମΛࣔ͠·͢ɻ *2 ࣮ࠓճͷϞσϧͰ Re = 5000 Ҏ্ͰɺԁபޙํͷཚΕ͕ܹ͘͠ɺ extrudeMesh Ͱϝο γϡΛԆͨ͠෦ͰྲྀΕ͕ෆ҆ఆʹͳ͍ͬͯΔɻ – 100 –
1 1 4 ୈ 5 ষ PyFoam Λ༻͍ͨύϥϝʔλελσΟͷ࣮ફ 5.3 ϨΠϊϧζҧ͍ʹΑΔ߅ྗ
simpleFoam pimpleFoam 40 1000 乱流モデル? Re Re = 2 Re = 20 Re = 200 Re = 1000 ˛ ਤ 5.4: ϨΠϊϧζʹΑΔྲྀΕͷ༷ࢠ 5.3 ϨΠϊϧζҧ͍ʹΑΔ߅ྗ ϨΠϊϧζҧ͍ʹΑΔύϥϝʔλελσΟΛऴ͑ͨͨΊɺϨΠϊϧζ Re ͱ߅ ྗ Cd ͷؔΛ֬ೝ͠·͢ɻԁப·ΘΓͷ߅ྗͷۙࣅࣜʹ͍ͭͯɺ͞·͟ ·ͳఏҊ͕ͳ͞Ε͍ͯ·͢ [24]ɻ ࣜ 5.1 ɺRe = 105 ∼ 106 ͷυϥοάΫϥΠγεݱ࠶ݱͰ͖ͳ͍ͷͷɺϨ Πϊϧζͷ͍ൣғͰྑۙ͘ࣅ͍ͯ͠·͢ɻ ࣜ 5.1: Sucker & Brauwer ͷۙࣅࣜ Cd = 1.18 + 6.8 R0 e .89 + 1.96 √ Re − 0.0004Re 1 + 3.63 × R2 e ࣜ 5.1 ͱ Cd = 1.2 ͷઢΛࣔ͠ͳ͕ΒɺOpeFOAM Ͱͷ݁ՌΛϓϩοτ͢Δϓϩά ϥϜ͕Ϧετ 5.2 Ͱ͢ɻ ˝ Ϧετ 5.2: ߅ྗͱϨΠϊϧζͷؔΛϓϩοτ͢ΔϓϩάϥϜ import os import pandas as pd import numpy as np import matplotlib.pyplot as plt – 106 –
1 1 8 ୈ 5 ষ PyFoam Λ༻͍ͨύϥϝʔλελσΟͷ࣮ફ 5.4 ·ͱΊ
100 101 102 103 104 105 106 Reynolds Number (Re) 10 1 100 101 102 Drag Coefficient (Cd) Cd Mean vs Re with Sucker & Brauer Comparison Cd Mean (Re <= 40, simpleFoam) Cd Mean (Re > 40, pimpleFoam) Sucker & Brauer Cd = 1.2 ˛ ਤ 5.5: OpenFOAM ʹΑΔϨΠϊϧζͱ߅ྗͷؔ ͨͩ͠ɺϨΠϊϧζ͕ Re = 1000 Λ͑ΔྖҬʹ͓͍ͯɺࣜ 5.1 ͱͷࠩҟ͕େ ͖͘ͳΔ͕ݟΒΕ·͢ɻ 5.4 ·ͱΊ ຊষͰɺPyFoam Λ༻͍ͨ OpenFOAM ʹΑΔύϥϝʔλελσΟͷ࣮ફྫͱ ͯ͠ɺ2 ࣍ݩԁப·ΘΓͷ߅ྗͱϨΠϊϧζͷؔੑʹ͍ͭͯղੳΛߦ͍·͠ ͨɻୈ 4 ষͰֶΜͩجૅతͳૢ࡞ΛԠ༻͠ɺϨΠϊϧζΛมԽͤͨ͞ෳέʔεͷ ޮతͳղੳ͕ՄೳͰ͋Δ͜ͱΛΈ·ͨ͠ɻ ղੳ݁ՌɺϨΠϊϧζͷൣғͰࣜ 5.1 ͷཧࣜͱྑʹҰக͓ͯ͠Γɺຊղ ੳϞσϧͷଥੑΛ֬ೝͰ͖·ͨ͠ɻಛʹɺϨΠϊϧζ͕ Re = 40 ҎԼͷఆৗྲྀ ΕྖҬͱɺͦΕҎ্ͷඇఆৗྖҬͰιϧόΛΓସ͑Δ͜ͱͰɺతͳ҆ఆੑͱܭ ࢉਫ਼Λཱ͍྆ͤͯ͞·͢ɻ ҰํͰɺϨΠϊϧζ Re = 1000 Ҏ্ͷྖҬͰࣜ 5.1 ͱͷࠩҟ͕େ͖͘ͳΓɺ ΑΓߴਫ਼ͳཚྲྀϞσϧϝογϡղ૾ͷݟ͕͠ඞཁͱͳΔՄೳੑ͕ࣔࠦ͞Ε – 110 –
1 3 8 ͋ͱ͕͖ ຊॻΛ͝ߪೖ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·͢ɻຊॻͰɺԁப·ΘΓྲྀΕΛରʹ ྲྀମղੳʹ͍ͭͯղઆΛߦ͍·ͨ͠ɻࠓճ OpenFOAM ͷଟ༷ͳػೳͷҰ෦ͷΈ Λ͝հͰ͖·͕ͨ͠ɺ͞Βʹৄࡉͳઆ໌͕ඞཁͳ͋Δ͔ͱࢥ͍·͢ɻ ݫີղΛٻΊΔͷ͕ࠔͳղੳରͰɺγϛϡϨʔγϣϯΛ௨ͯ͡ݱΛཧղ͢
Δ͜ͱ͕ඇৗʹॏཁͩͱஶऀߟ͍͑ͯ·͢ɻͦͷͨΊɺຊॻͰཧͱ࣮ݧͰͷݚ ڀ͕Μͳԁப·ΘΓͷྲྀΕΛࡐʹબͼ·ͨ͠ɻγϛϡϨʔγϣϯͷଥੑΛ֬ೝ ͢ΔͨΊʹɺ࣮ݧσʔλطͷݫີղͱͷൺֱΛߦ͍ɺ݁Ռͷ৴པੑΛݕূ͢Δ ඞཁ͕͋Γ·͢ɻຊॻΛ͖͔͚ͬʹࣗ͝ͰγϛϡϨʔγϣϯ͍ͨ͠༰ʹͯΊ ͍͚ͯͨͩΕͱࢥ͍·͢ɻ ӉʹೖͬͨΧϚΩϦ • Xɿhttps://x.com/t_kun_kamakiri • ϒϩά URLɿhttps://takun-physics.net/: – 130 –
1 3 9 OpenFOAM ࣗͰۃΊΔྲྀମղੳ 2024 11 ݄ 2
ɹ ver 1.0 ʢٕज़ॻయ 17ʣ ஶɹऀ ӉʹೖͬͨΧϚΩϦ ൃߦऀ ΧϚΩϦ ࿈བྷઌ https://takun-physics.net/ https://x.com/t_kun_kamakiri ҹॴ ӉʹೖͬͨΧϚΩϦ © 2024 ӉʹೖͬͨΧϚΩϦ (powered by Re:VIEW Starter)