ã¯ãããŸããŠãæ¥æ¬ãšãŽã£ã¯ãµãŒã®éŽæšãšç³ããŸãã
äž»ã«FEM, FDTDã®éšåãæ
åœããŠãããŸãã
> FEMãBEMã§é管路å
ã§å®åžžç¶æ
ã®é³å§ã»ç²åé床ã®ååžãæ¯èŒããŠã¿ãããšèããŠããŸãã
> OpenAcousticsãCookBookå
ã®ã³ãŒããå©çšããŠèšç®ã詊ã¿ãŠããŸãããå€ããªãç¹ããææé ããããšæããŸãã
ãšãããããFEMã®éšåã¯äºè§£ã§ãïŒ
> FEMãBEMãšãã«ãé床ããã³ã·ã£ã«ã®èšç®çµæãŸã§ããåºãããŠããªãããã«èŠããŸããã
> äœãæå³ããã£ãŠã®ããšãªã®ã§ããããïŒ
説æã簡䟿ãªã®ã§ãé床ããã³ã·ã£ã«ã«ããŠããŸããã
> é床ããã³ã·ã£ã«ãé³å§ã«æç®ããã«ã¯ãæé埮åïŒ2ÏïœãæããïŒããã®ã§è¯ããšæãã®ã§ããã
ãã£ããããšãããæé埮åããã°èšç®ã§ããŸãã
> ç²åéåºŠã«æç®ããå Žåã¯ã2ç¹éã®ã¬ãã«å·®ãšè·é¢ããç®åºããäºã«ãªããšæããŸãã
> 3æ¹åã®ãã¯ãã«ç®åºã«ãªããšæããŸãããå
·äœçã«ã¯ã©ã®æ§ã«ç®åºããã¹ããªã®ã§ããããïŒ
> ã¡ãã·ã¥ééãªã©ããã©ãã©ã§ãã®ã§ãã©ã®æ§ã«ããã°ããã®ãå€ããŸããã
ç²åé床ã¯ãFEMã®å Žåã¯èŠçŽ èªäœã空é埮åããŠ
èšç®ããããšãã§ãããšæããŸããã
è¿åã®2ç¹ã§ç©ºéå·®åããšã£ãŠç²åé床å€ãšããããšãã§ããŸãã
èŠçŽ å
ã®é³å§ã®å€ã¯ãè£éããŠèšç®ããŸãã
ãã®èŸºã®çè«èª¬æãã³ãŒããçããŠããŸã£ãŠããã®ã§
ã¡ãã£ãšå€§å€ããç¥ããŸãããã
è³æãšã³ãŒããæ€çŽ¢ããŠã¿ãŸãã®ã§ãèŠã€ãã£ãããéãããããŸãã
BEMã¯åŸæã§ãªãã®ã§ããã§ããã
è§£æçã«åŸ®åããåŒã颿£åãã§ãããšæããŸãã
äžèšã®è¿å2ç¹ã®èšç®ã§ãã§ãããšæããŸãã
è¿å2ç¹ã®èšç®ã¯BEMã®ã»ããããããããã§ããã
è£è¶³ãããã°ããé¡ãããããŸãâã¿ãªãã
å
æ¥èè
ã§éãŸã£ãã®ã§ãããç²åé床ãå¿
èŠãã©ããã¯
ãã£ããè°è«ãåãããŠããŸããã
å人çã«ã¯é³é¿ã€ã³ãã³ã·ãã£ã®èšç®ãšããããã²ãšããããšæãã®ã§
ãã£ãŠãããããªãšæã£ãŠããŸãã
> ãŸããïŒã®ã³ãŒããããŸãåããŠããªãæ°ãããŸãã
> 䜿çšããPythonã®ããŒãžã§ã³ãªã©ã§ãäžå
·åãªã©ãçºçãããããªãã®ãªã®ã§ããããïŒ
> OpenAcousticsãCookBookã§äœ¿çšãããŠããŸãããPythonã®ããŒãžã§ã³ãæããŠããã ããŸããã§ããããïŒ
> åœæ¹ãVer2.6.6 ã«ãŠå®æœããŠããŸãã
> ãããããé¡ãããããŸãã
ãšã©ãŒã¡ãã»ãŒãžçãéãããã ãããšã¯ã§ããŸããïŒ
ç§ã®ã»ãã§ããåŸã§æ€èšŒããŠã¿ãŸãã
> è£è¶³ãããã°ããé¡ãããããŸãâã¿ãªãã
FEMã§ããã°ãåŸé
ã®èšç®ã¯æ±çšã®ãã¹ãããã»ããµã§ãåºæ¥ãŠããŸãããšãã
ã®ã¯ãããŸããã
倧å¶
éŽæšã§ãã
> ãæ©éã®ãè¿çããããšãããããŸãã
> ãã®æ²ç€ºæ¿ã«ãµããããå
容ãã©ããããããªãã£ãã®ã§ããã
> ãããªãããããã質åãããŠããŸã£ãã®ãããããŸããã
> ç³ãèš³ãããŸããã
ãšãã§ããªãã§ãã
> ããŸãè§£æã®ããšãããã£ãŠããŸããã§ããã¹ãåŠçã§åŸé
èšç®ãã§ãããšãããªã©ãç¥ããŸããã§ããã
> ãã¹ãããã°ã©ã ã«æã£ãŠãããã¡ã€ã«ãã©ãŒããããããŸã ããå€ã£ãŠããªãã®ã§ããã»ã»ã»ã»ïŒæ±
åãç¥ããŸããã§ãã(æ±
ParaViewã§ã§ãããšæã£ãŠããã®ã§ããããïŒâ倧å¶ãã
> èè
ã®æ¹ã
ã®æèŠãåãããŠããç²åéåºŠã®æç¡ã«é¢ããŠã¯ããå¯èœã§ããã°æ©èœãšããŠæ¬²ããããšèããŸãã
> ãã¯ãããã®ãã¡é³é¿ã€ã³ãã³ã·ãã£ãèšç®ããŠããã¹ãåŠçã§ã€ã³ãã³ã·ãã£ã®è¡šç€ºãªã©ãã§ãããè¯ããªçãšæã£ããããŠãŸãã
FEMã ãšäœåã颿°ã远å ããã°ã§ãããšæãã®ã§
æ€èšããŠã¿ãŸããã§ãããã¢ããããŸããã
> BEMã®ããã°ã©ã ã¯ãããå°ãèŠçŽããŠã¿ãŸãã
> åœæ¹ã®ãã¹ã§æžãééããªã©ãããå Žåã¯ããææ°ãç
©ãããã®ã¯ç³ãèš³ãããŸããã®ã§ã
ããã»ã©è©ŠããŠã¿ãã®ã§ãã
WindowsXP
Python 2.5.4
matplotlib 1.0.1
numpy 1.5.1
scipy 0.9.0
ã®çµã¿åããã§ãç§ã®ç°å¢ã ãšåäœããŠããŸããã
ãããšã©ãŒãåºãããäžèšã®ãããªã³ãŒãã§
ããŒãžã§ã³ã確èªããŠããã ããšäœããããããç¥ããŸããã
import numpy,scipy,matplotlib
print numpy.__version__
print scipy.__version__
print matplotlib.__version__
> ãŸã幌çšãªè³ªåãå«ããè²ã ãšã質åãããŠããã ãããšãããããšæããŸããããããããé¡ãããããŸãã
ãåŸ ã¡ããŠããŸãã
BEMæ
åœã®ç³å¡ãšç³ããŸãã
å®ãããé¡ãèŽããŸãã
æã ã®ãããžã§ã¯ãã«èå³ããæã¡é ãããããšãããããŸãã
ãBEMã³ãŒãã®åäœã
BEMã³ãŒãã®åäœç¢ºèªæžã¿ç°å¢ã§ããã
éŽæšããã®Windowsã«å ãã
åœæ¹ã§ã¯ã
LinuxïŒUbuntu10.04ïŒ
python 2.6.5
numpy 1.3.0
scipy 0.7.0
matplotlib 0.99.1.2
ã§åäœããŠãããŸãã
ãŸããMacOSäžã§ãé³ç·æ³æ
åœã®æ¹ãåäœã確èªããŠããŸããã
ç§ã®æ¹ã§ã¯ãããŒãžã§ã³æ
å ±ãŸã§ã¯ææ¡ããŠãããŸããã
éŽæšããã®ã³ã¡ã³ãã®éãããšã©ãŒã³ãŒããé ããã°
äœãã圹ã«ç«ãŠãããç¥ããŸããã
ãç²åé床ã®èšç®ã
ãµã³ãã«ã³ãŒãã¯ãããæããæåªå
ããŠããŸãã®ã§ã
é床ããã³ã·ã£ã«ã®ã¿ãèšç®ããŠããŸãã
ç²åé床ã¯ã
è¿æ¥ïŒç¹éã®é³å§å·®ããæ±ããŠãè¯ããšæããŸãã
ïŒç§èªèº«ã¯ãã£ãããšãç¡ãã®ã§ãã©ã®çšåºŠè¿æ¥ããããçã®ããŠããŠã¯ãããŸããããïŒ
ãŸããé£ç«æ¹çšåŒã®è§£ïŒå¢ç衚é¢äžã®é床ããã³ã·ã£ã«ïŒã
å¢çç©åæ¹çšåŒãæ¹å埮åãã圢åŒïŒNDFåå¢çç©åæ¹çšåŒïŒ
ã«ä»£å
¥ããã°ãïŒç¹ã®èšç®ã§ç²åéåºŠãæ±ãŸããŸãã
ãµã³ãã«ã³ãŒãã«ã¯å®è£
ããŠããŸãããã
å®çšã³ãŒã段éã«ãããSimpleAPIã«ã¯ã
ç²åé床ãé³é¿ã€ã³ãã³ã·ãã£ã®èšç®æ©èœãå®è£
ããããšèããŠããŸãã
å
¬éã«ã¯ãŸã å°ãæéãããããŸããããæåŸ
é ããã°å¹žãã§ãã
ãã®ä»ããäžæãªç¹ããèŠæããããŸãããã
åœãã©ãŒã©ã ã«ãããŠé ããã°ãå¯èœãªéã察å¿ãããŠé ããŸãã
ïŒã¿ã€ã ã©ã°ã¯ã容赊äžãããïŒ
> åãç¥ããŸããã§ãã(æ±
> ParaViewã§ã§ãããšæã£ãŠããã®ã§ããããïŒâ倧å¶ãã
ParaViewãGmshãšãã§ããŸãã
ãã ãè€çŽ æ°ã®æ±ãã¯å·¥å€«ãå¿
èŠãããããŸããã
倧å¶
é
ããªããŸããããå
šåšrigidã«ããå Žåã®äžå
·åå ±åããããšãããããŸãã
ç§ã©ãã§ãåçŸããåå ã¯å€æããŸããã
ç®äžä¿®æ£äžã§ãã®ã§ãä»ãã°ãããåŸ
ã¡ãã ããã
> çŸç¶ã§ã¯ãã¢ãã«ã®äžã«æžè¡°ãç¡ãã®ã§ãšãã«ã®ãŒãç¡é倧ã«ãªãçºæ£ããã®ã§ã¯ç¡ãããšæã£ãŠããŸãã
> BEMã§ã¯å®å
šåå°ã®é空éåé¡ã¯ãèšç®ã§ããªãã®ã§ããããïŒ
ç§ã©ãã®ã³ãŒãã§ã¯ãã°ã®ãããæ¥ããããªããèšç®ã§ããŠããŸããããäžè¬
çã«ã¯å
šå¢çãå®å
šåå°ã®å Žåã§ããçºæ£ããããšãªãèšç®ã§ããŸããç©çç
ã«ã¯ã鳿ºããé³é¿ãšãã«ã®ãŒãé³å Žå
ã«æµããŠãããªãããšããç¶æ
ã«ãªã
ãŸã(ããããçè§£ã§ããã§ãããïŒïŒç³å¡ãã)ã
> è²ã
ãªã³ãŒãã«è§ŠããŠã¿ãããšèããŠãããCodeãAsterã䜿çšãã¹ãã
> ãšããããUbuntuïŒSalomeãMECAãPCã«ã€ã³ã¹ããŒã«ããŠã¿ãŸããã
> ãã¡ãã®ä»¶ã«çããŠãã質åãªã©ãããŠããã ããŠãããããã®ã§ããããïŒïŒïŒ
> ãããžã§ã¯ãã®èŠåœéãã§ããããç³ãèš³ãããŸããã
ç§ã©ããSalome-Mecaã¯æ³šç®ããŠããŸãããçŸç¶ã¯ã€ã³ã¹ããŒã«äœãŸã§ãããµãŒ
ãã€ããŠããŸãããäžæ¹ã§æåå³åã§æçž®ã§ãããå°çã圹å¡ãããŠãããŸã
OpenCAEåŠäŒã«Salome-Mecaãç±å¿ã«ã¹ã¿ãã£ããŠããã°ã«ãŒãããããŸãã®ã§ã
ãã¡ãã®Googleã°ã«ãŒãã«æçš¿ãããããšããå§ãããŸãã
http://groups.google.com/group/openfoam
ãOpenFOAMããšããã°ã«ãŒãåãã€ããŠããŸãããSalome-Mecaã§ãé æ
®ãªã質
åããŠé ããŠçµæ§ã§ãã
倧å¶
> ãäžè©±ã«ãªããŸãã
> åå ã倿ããŠããã£ãã§ãã
> å
šåšRigidã§çºçããBEMã®ãã°ã ã£ãã®ã§ããã»ã»ã»ã»ã»
> ä»ã¯FDTDãå©çšããŠãæç§æžã®å
å®¹ãšæ¯èŒãããããŠéãã§ïŒïŒïŒããŸãã®ã§ã
> BEMã§ãè§£ããæ§ã«ãªããŸãããããã®å
ãã£ãŠã¿ãããšæããŸãã
BEMãšãããããç§ã®æžããã¡ãã·ã£ã¯ã©ã¹ã®ãã°ã§ããããšã»ã»ããã
ä¿®æ£ããããŸããé£çµ¡ããããŸãã®ã§ãå°ããæéãã ããã
> é
ããªããŸããããå
šåšrigidã«ããå Žåã®äžå
·åå ±åããããšãããããŸãã
> ç§ã©ãã§ãåçŸããåå ã¯å€æããŸããã
> ç®äžä¿®æ£äžã§ãã®ã§ãä»ãã°ãããåŸ
ã¡ãã ããã
ã¡ãã·ã£ã¯ã©ã¹ã®ä¿®æ£ã¯éŽæšããã«ãé¡ããããšããŸããŠã
ãšããããå
šåšrigidã§BEMã³ãŒããåãããã«ããã«ã¯ã
ãµã³ãã«ã³ãŒããsampleBem2.pyãã®119è¡ç®ã§ã
å¢çæ¡ä»¶ïŒåç§°ãšå€ïŒãèšå®ãããšãã«ã
以äžã®ããã«äœ¿ãããªãå¢çæ¡ä»¶ïŒä»åã¯absorbingïŒãå®çŸ©ããªãããã«ããã°
èšç®ãæåŸãŸã§èµ°ããŸãã
ïŒçµæã®å³ãŸã§è¡šç€ºãããããšã確èªããŠãããŸããïŒ
[sampleBem2.py, l.119]
# boundaryCondition = {'rigid':0., 'absorbing':1.}
boundaryCondition = {'rigid':0.}
詊ããŠé ããã°å¹žãã§ãã
æ§ã ãªå¢çæ¡ä»¶ãžã®æè»ãªå¯Ÿå¿ã¯ãæ€èšèª²é¡ãšãããŠäžããã
>> çŸç¶ã§ã¯ãã¢ãã«ã®äžã«æžè¡°ãç¡ãã®ã§ãšãã«ã®ãŒãç¡é倧ã«ãªãçºæ£ããã®ã§ã¯ç¡ãããšæã£ãŠããŸãã
>> BEMã§ã¯å®å
šåå°ã®é空éåé¡ã¯ãèšç®ã§ããªãã®ã§ããããïŒ
>
> ç§ã©ãã®ã³ãŒãã§ã¯ãã°ã®ãããæ¥ããããªããèšç®ã§ããŠããŸããããäžè¬
> çã«ã¯å
šå¢çãå®å
šåå°ã®å Žåã§ããçºæ£ããããšãªãèšç®ã§ããŸããç©çç
> ã«ã¯ã鳿ºããé³é¿ãšãã«ã®ãŒãé³å Žå
ã«æµããŠãããªãããšããç¶æ
ã«ãªã
> ãŸã(ããããçè§£ã§ããã§ãããïŒïŒç³å¡ãã)ã
ãã®ããã«çè§£ããŠé ããã°è¯ããšæããŸãã
以äžã¯è£è¶³ã§ãã
ãã®ã³ãŒãã¯ãåšæ³¢æ°é åã®å¢çèŠçŽ æ³ã§ãã®ã§ã
鳿ºããããåšæ³¢æ°ã®çŽé³ãæŸå°ãããŠãããå®åžžé³å Žããè§£æããŠãããŸãã
ç§ã®çè§£ã§ã¯ãå
šåšrigidã®å Žåã®ãå®åžžé³å Žããšã¯ã
ã»å Žã®é³å§ã0ã®æç¹ãã鳿³¢ãæŸå°ãããã
ã»å
šåšrigidã§ãšãã«ã®ãŒãåžåããèŠçŽ ãç¡ãçºã
ã鳿³¢ã®æŸå°ã«åŸããå Žã«é³é¿ãšãã«ã®ãŒãã©ãã©ãèç©ãããã
ã»å Žã®é³é¿ãšãã«ã®ãŒãååã«èç©ãããç¶æ
ã«ãªããšã
ã鳿ºããã®ãšãã«ã®ãŒãå Žã«äŸçµŠãããªããªãã
ãçŽæçãªèšãæ¹ããããšã
ã鳿ºãããšãã«ã®ãŒãæµã蟌ãããšããŠããå Žã®ãšãã«ã®ãŒã«æŒãè¿ãããã
ã»ãã®æ®µéã§ãå Žã®é³é¿ãšãã«ã®ãŒïŒé³å§ãïŒã¯å¹³è¡¡ç¶æ
ïŒå®åžžé³å ŽïŒã«ãªãã
ãšèšãããšã§ããã
å
šåšrigidã®æ¡ä»¶ã§ã¯ãå¢çèŠçŽ æ³ã¯ãã®å¹³è¡¡ç¶æ
ãæ±ããŠããããšã«ãªããŸãã
ãšãèšãããã§èšç®äžã¯è§£ãæ±ãŸããŸãã
--
ISHIZUKA