magnetic-field-simulator.github.io

๐Ÿงฒ ์ž๊ธฐ์žฅ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ (FEM Based Magnetic Field Simulator)

Click here for English!

์ด๊ฑธ ๋ˆŒ๋Ÿฌ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š”!

๐Ÿ› ๏ธ ์ด ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋œ ์–ธ์–ด์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ๊ณ ์„ฑ๋Šฅ GPU ์—ฐ์‚ฐ๊ณผ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•œ 3D ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•ด ์•„๋ž˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

์–ธ์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์šฉ๋„ ๊ณต์‹ ๋ฌธ์„œ url
Python CuPy GPU ๊ธฐ๋ฐ˜ ๋ณ‘๋ ฌ ์ปดํ“จํŒ… ๊ตฌํ˜„ CuPy
ย  NumPy GPU ์—ฐ์‚ฐ ๊ฒฐ๊ณผ ํ›„์ฒ˜๋ฆฌ Numpy
ย  Flask ๋กœ์ปฌ ์›น ์„œ๋ฒ„ ๊ตฌ์ถ• ๋ฐ ์ž๊ธฐ์žฅ ๋ฐ์ดํ„ฐ ์ƒํ˜ธ์ž‘์šฉ Flask
JavaScript Three.js ์›น ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ์ž๊ธฐ์žฅ ์‹œ๊ฐํ™” Three.js

โ€œ๋ˆˆ์— ๋ณด์ด์ง€ ์•Š๋Š” ์ž๊ธฐ์žฅ, ์ด์ œ ์ง์ ‘ ์„ค๊ณ„ํ•˜๊ณ  3D๋กœ ํ™•์ธํ•˜์„ธ์š”!โ€
๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ์œ ํ•œ์š”์†Œ๋ฒ•(FEM) ์„ ํ™œ์šฉํ•˜์—ฌ ์ž„์˜์˜ ์ „๋ฅ˜ ๋ฐฐ์น˜์— ๋”ฐ๋ฅธ ์ž๊ธฐ์žฅ์˜ ์„ธ๊ธฐ์™€ ๋ฐฉํ–ฅ์„ ๊ณ„์‚ฐํ•˜๊ณ  ์‹œ๊ฐํ™”ํ•˜๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.

์—ฐ๊ตฌ ๋˜๋Š” ๊ต์œก ๋ชฉ์ ์ด๋ผ๋ฉด ๋งˆ์Œ๊ป ์‚ฌ์šฉํ•˜์„ธ์š”.(์ฝ”๋“œ ๋ณ€ํ˜• ๊ฐ€๋Šฅ, 2์ฐจ ๋ฐฐํฌ ๋ถˆ๊ฐ€) ๊ณต์œ ํ•˜์‹œ๋ ค๋ฉด ์ด ํŽ˜์ด์ง€์˜ url์„ ๊ณต์œ ํ•˜์„ธ์š”~!

COMSOL์ด ๋„ˆ๋ฌด ๋น„์‹ธ์„œ ๋ถ€๋‹ด๋˜๋Š” ํ•™์ƒ๋“ค์„ ์œ„ํ•ด ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค! ๋ฌด๋ฃŒ๋กœ ์ž๊ธฐ์žฅ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”.

๊ทธ๋ž˜ํ”ฝ ์นด๋“œ ์—†์–ด๋„ Google Colab์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ด์š”!


ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ ๋ฐ ํŠœํ† ๋ฆฌ์–ผ Youtube ์˜์ƒ

์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ์ž‘๋™ ๋ชจ์Šต๊ณผ ์‚ฌ์šฉ๋ฒ•์„ ์˜์ƒ์œผ๋กœ ํ™•์ธํ•ด ๋ณด์„ธ์š”!

์ด๋ฏธ์ง€๋ฅผ ๋ˆ„๋ฅด๋ฉด Youtube ์˜์ƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐ŸŽฅ ์ปดํ“จํ„ฐ๋กœ ์ง์ ‘ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ• ๐Ÿ’ป Google Colab์—์„œ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•
Intro Colab
์ž๊ธฐ์žฅ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์†Œ๊ฐœ GPU๊ฐ€ ์—†์–ด๋„ ์›น์—์„œ ๋ฐ”๋กœ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

** โœจ ํ•ต์‹ฌ ๊ธฐ๋Šฅ**


๐Ÿ›  ์ปดํ“จํ„ฐ์—์„œ ์ง์ ‘ ๋Œ๋ฆฌ์‹œ๋ ค๋ฉด NVIDIA ๊ทธ๋ž˜ํ”ฝ์นด๋“œ๊ฐ€ ํ•„์š”ํ•ด์š”! ์—†์œผ์‹œ๋‹ค๋ฉด Google Colab์—์„œ ์‹คํ–‰ํ•˜์„ธ์š”~

์ด ํ”„๋กœ๊ทธ๋žจ์€ ๊ณ ์„ฑ๋Šฅ ์—ฐ์‚ฐ์„ ์œ„ํ•ด NVIDIA GPU(CUDA)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


๐Ÿš€ GPU๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•(์ถ•ํ•˜๋“œ๋ ค์š”! ๋ถ€์ž์‹œ๋„ค์š”!)

0. ํ”„๋กœ๊ทธ๋žจ ๋‹ค์šด๋กœ๋“œ

1. ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰

2. ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์„ค์ •

3. ๊ฒฐ๊ณผ ํ™•์ธ ๋ฐ ์ข…๋ฃŒ


๐Ÿค ๋„์›€์ด ํ•„์š”ํ•ด์š”!

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ํ•™์ƒ๋“ค์ด ๋ฌด๋ฃŒ๋กœ ์ž๊ธฐ์žฅ์„ ์—ฐ๊ตฌํ•  ํ•™๋ฌธ์  ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ 1์ธ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

์•„๋ž˜ ์ด์Šˆ๋“ค์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ๊ณผ ๋„์›€์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!

  1. ์ž๊ธฐ๋ ฅ์„  ์‹œ๊ฐํ™”: ์ง€์ €๋ถ„ํ•œ ํ™”์‚ดํ‘œ ๋Œ€์‹  ์ž๊ธฐ๋ ฅ์„ ์„ ๋งค๋„๋Ÿฌ์šด ์„ (Streamlines)์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋Šฅ.
  2. ๋ฐฐํฌ ์ตœ์ ํ™”: PyInstaller ์‚ฌ์šฉ ์‹œ CUDA DLL ์ธ์‹ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐ ๋‹จ์ผ .exe ํŒจํ‚ค์ง•.
  3. ์‹œ๊ฐํ™” ์„ฑ๋Šฅ: ํŠน์ • ์˜์—ญ๋งŒ ์„ ํƒ์ ์œผ๋กœ ๋ Œ๋”๋งํ•˜์—ฌ ๋ฒกํ„ฐ ๊ฒน์นจ ํ˜„์ƒ ํ•ด์†Œ.
  4. ์›น ์„œ๋ฒ„ํ™”: ์ €์‚ฌ์–‘ ๊ธฐ๊ธฐ์—์„œ๋„ ์ ‘์† ๊ฐ€๋Šฅํ•œ GPU ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„ ๊ตฌ์ถ•. (ํ˜„์žฌ Google Colab์œผ๋กœ ์ผ๋ถ€ ํ•ด๊ฒฐ๋จ)
  5. UI/UX ๊ฐœ์„ : ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹œ๊ฐํ™” ํŽ˜์ด์ง€์˜ ์ฐฝ ๋‹ซ๊ธฐ(window.close())๊ฐ€ ์•ˆ๋˜๋Š” ๋ฒ„๊ทธ. (Chrome์˜ ๋ณด์•ˆ ๋ฐฉ์นจ ๋ณ€๊ฒฝ์œผ๋กœ ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ• ํ•„์š”)
  6. ๋™์  ๋ฉ”์‹œ ํ• ๋‹น: ์‚ฌ์šฉ์ž๊ฐ€ ๊ด€์‹ฌ ์žˆ๋Š” ํŠน์ • ์˜์—ญ์„ ๋” ์„ธ๋ฐ€ํ•˜๊ฒŒ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ธฐ๋Šฅ.

๐Ÿ“ ๋ผ์ด์„ ์Šค (License)

๋ณธ ํ”„๋กœ๊ทธ๋žจ์€ ๊ต์œก ๋ฐ ์—ฐ๊ตฌ ๋ชฉ์ ์œผ๋กœ ๋ˆ„๊ตฌ๋‚˜ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ํ—ˆ๊ฐ€ ์—†์ด ์ˆ˜์—…์ด๋‚˜ ๊ฐœ์ธ ๊ณต๋ถ€์— ํ™œ์šฉํ•ด ๋ณด์„ธ์š”! ๐ŸŽ“

2์ฐจ ๋ฐฐํฌ๋Š” ๊ธˆ์ง€๋ฉ๋‹ˆ๋‹ค.


๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ๊ณ  ์‹ถ๊ฑฐ๋‚˜ ๋ฌธ์˜๊ฐ€ ์žˆ๋‹ค๋ฉด github ๋ฌธ์˜๋‚˜ ์ด๋ฉ”์ผ(lcp020620@kaist.ac.kr)์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.