전산물리학:유한요소법

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
전산물리학:유한요소법 [2025/09/29 10:46] – created admin전산물리학:유한요소법 [2025/09/30 09:48] (current) – [요소들의 합] admin
Line 1: Line 1:
 +======개요======
 +라플라스 방정식 혹은 푸아송 방정식과 같은 편미분방정식을 풀기 위해 전체 공간을 작은 요소들로 쪼개고 각각의 요소 안에서는 선형적으로 해가 변화한다고 가정한 후 전체적으로 [[[[전산물리학:변분법|변분법]]을 적용하여 해를 찾는 방법.
 +
 +푸아송 방정식 $\nabla^2 V = -\rho / \epsilon$이라면 우리가 최소화해야 하는 양은 다음과 같다:
 +$$W = \frac{1}{2} \int \left[ \epsilon \left| \nabla V \right|^2  - 2\rho V \right] dS.$$
 +라플라스 방정식에서는 $\rho=0$으로 놓는다.
 +======라플라스 방정식======
 +=====삼각형 요소=====
 +{{:전산물리학:element.png?300|}}
 +
 +그림과 같은 삼각형을 생각하자. 이 안에서는 해가 $V^{(e)}(x,y) = a + bx +cy$처럼 선형적으로 변화한다고 가정한다. 세 꼭지점에서의 값 $V_1^{(e)}$, $V_2^{(e)}$, $V_3^{(e)}$가 주어져 있다면 계수 $a$, $b$, $c$를 다음처럼 찾을 수 있다.
 +$$\begin{pmatrix}
 +a\\
 +b\\
 +c
 +\end{pmatrix}
 +=
 +\begin{pmatrix}
 +1 & x_1 & y_1\\
 +1 & x_2 & y_2\\
 +1 & x_3 & y_3
 +\end{pmatrix}^{-1}
 +\begin{pmatrix}
 +V_1^{(e)}\\
 +V_2^{(e)}\\
 +V_3^{(e)}
 +\end{pmatrix}.
 +$$
 +따라서 삼각형 요소 내부의 한 점 $(x,y)$에서는 다음처럼 기술되며
 +$$V^{(e)}(x,y) = 
 +\begin{pmatrix}
 +1 & x & y
 +\end{pmatrix}
 +\begin{pmatrix}
 +1 & x_1 & y_1\\
 +1 & x_2 & y_2\\
 +1 & x_3 & y_3
 +\end{pmatrix}^{-1}
 +\begin{pmatrix}
 +V_1^{(e)}\\
 +V_2^{(e)}\\
 +V_3^{(e)}
 +\end{pmatrix}
 += \sum_{i=1}^3 V_i^{(e)} \alpha_i (x,y),
 +$$
 +$\alpha_i(x,y)$의 구체적인 형태는 다음과 같다.
 +\begin{eqnarray*}
 +\alpha_1 (x,y) &=& \frac{1}{2A} \left[ (x_2 y_3 - x_3 y_2) + (y_2 - y_3)x + (x_3-x_2) y \right]\\
 +\alpha_2 (x,y) &=& \frac{1}{2A} \left[ (x_3 y_1 - x_1 y_3) + (y_3 - y_1)x + (x_1-x_3) y \right]\\
 +\alpha_3 (x,y) &=& \frac{1}{2A} \left[ (x_1 y_2 - x_2 y_1) + (y_1 - y_2)x + (x_2-x_1) y \right].
 +\end{eqnarray*}
 +이때 분모의 $A$는 삼각형 요소의 면적으로서 다음의 식에 의해 표현된다.
 +$$2A =
 +\begin{vmatrix}
 +0 & 0 & 1\\
 +x_2-x_1 & y_2-y_1 & 0\\
 +x_3-x_1 & y_3-y_1 & 0
 +\end{vmatrix}
 += (x_2-x_1)(y_3-y_1) - (x_3-x_1)(y_2-y_1).
 +$$
 +
 +라플라스 방정식 $\nabla^2 V = 0$를 풀고자 변분법을 적용하게 위해 삼각형 요소 하나의 기여분을 계산해보면 다음과 같다.
 +\begin{eqnarray*}
 +W^{(e)} &=& \frac{1}{2} \int \epsilon_0 \left| \nabla V^{(e)} \right|^2 dS\\
 +&=& \frac{1}{2} \sum_{i=1}^3 \sum_{j=1}^3 \epsilon_0 V_i^{(e)} \left[ \int \nabla \alpha_i \cdot \nabla \alpha_j dS \right]\\
 +&=& \frac{1}{2} \epsilon_0 \left[ V^{(e)} \right]^\intercal \left[ C^{(e)} \right] \left[ V^{(e)} \right].
 +\end{eqnarray*}
 +이때
 +$$\left[ V^{(e)} \right] \equiv \begin{pmatrix}
 +V_1^{(e)}\\
 +V_2^{(e)}\\
 +V_3^{(e)}
 +\end{pmatrix}$$
 +이고, $C_{ij}^{(e)} \equiv \int \nabla \alpha_i \cdot \nabla \alpha_j dS = C_{ji}^{(e)}$일 때 다음처럼 정의한다.
 +$$\left[ C^{(e)} \right] \equiv \begin{pmatrix}
 +C_{11}^{(e)} & C_{12}^{(e)} & C_{13}^{(e)}\\
 +C_{21}^{(e)} & C_{22}^{(e)} & C_{23}^{(e)}\\
 +C_{31}^{(e)} & C_{32}^{(e)} & C_{33}^{(e)}
 +\end{pmatrix}$$
 +만일 $P_1 \equiv y_2-y_3$, $P_2 \equiv y_3-y_1$, $P_3 \equiv y_1-y_2$, $Q_1 \equiv x_3-x_2$, $Q_2 \equiv x_1-x_3$, 그리고 $Q_3 \equiv x_2-x_1$이라 한다면 다음처럼 쓸 수도 있다.
 +\begin{eqnarray*}
 +C_{ij}^{(e)} &=& \frac{1}{4A} \left( P_i P_j + Q_i Q_j \right)\\
 +A &=& \frac{1}{2} \left( P_2 Q_3 - P_3 Q_2 \right).
 +\end{eqnarray*}
 +이때 삼각형의 꼭지점을 반시계방향으로 돌도록 해야 $A$가 양수로 얻어짐에 주의한다.
 +
 +=====요소들의 합=====
 +
 +전체 목적함수는 개개의 요소에 대한 값들을 더함으로써 얻어진다. 즉 전체 요소 수를 $N$개라고 하면 다음과 같다.
 +$$W = \sum_{e=1}^N W^{(e)}$$
 +세 개의 요소로 이루어진 간단한 예를 생각해보자.
 +
 +{{:전산물리학:elements.png?350|}}
 +
 +여기에서 (1), (2), (3)은 요소를 가리키는 숫자이고, 각 삼각형 안의 1,2,3은 요소 안에서 꼭지점을 가리킬 때, 바깥쪽의 1,2,3,4,5는 전체 시스템 상에서 각 점을 가리킬 때 사용한다. 그래서 다음과 같은 관계가 성립한다.
 +\begin{eqnarray*}
 +&& V_1^{(1)} = V_1^{(2)} = V_1\\
 +&& V_2^{(1)} = V_3^{(2)} = V_3^{(3)} = V_4\\
 +&& V_3^{(1)} = V_2\\
 +&& V_2^{(2)} = V_1^{(3)} = V_3\\
 +&& V_2^{(3)} = V_5
 +\end{eqnarray*}
 +
 +따라서 전체 목적함수는 다음처럼 계산된다.
 +\begin{eqnarray*}
 +2W/\epsilon_0 &=&
 +\begin{pmatrix}
 +V_1^{(1)} & V_2^{(1)} & V_3^{(1)}
 +\end{pmatrix}
 +\begin{pmatrix}
 +C_{11}^{(1)} & C_{12}^{(1)} & C_{13}^{(1)}\\
 +C_{21}^{(1)} & C_{22}^{(1)} & C_{23}^{(1)}\\
 +C_{31}^{(1)} & C_{32}^{(1)} & C_{33}^{(1)}
 +\end{pmatrix}
 +\begin{pmatrix}
 +V_1^{(1)} \\ V_2^{(1)} \\ V_3^{(1)}
 +\end{pmatrix}\\
 +&+& 
 +\begin{pmatrix}
 +V_1^{(2)} & V_2^{(2)} & V_3^{(2)}
 +\end{pmatrix}
 +\begin{pmatrix}
 +C_{11}^{(2)} & C_{12}^{(2)} & C_{13}^{(2)}\\
 +C_{21}^{(2)} & C_{22}^{(2)} & C_{23}^{(2)}\\
 +C_{31}^{(2)} & C_{32}^{(2)} & C_{33}^{(2)}
 +\end{pmatrix}
 +\begin{pmatrix}
 +V_1^{(2)} \\ V_2^{(2)} \\ V_3^{(2)}
 +\end{pmatrix}\\
 +&+& 
 +\begin{pmatrix}
 +V_1^{(3)} & V_2^{(3)} & V_3^{(3)}
 +\end{pmatrix}
 +\begin{pmatrix}
 +C_{11}^{(3)} & C_{12}^{(3)} & C_{13}^{(3)}\\
 +C_{21}^{(3)} & C_{22}^{(3)} & C_{23}^{(3)}\\
 +C_{31}^{(3)} & C_{32}^{(3)} & C_{33}^{(3)}
 +\end{pmatrix}
 +\begin{pmatrix}
 +V_1^{(3)} \\ V_2^{(3)} \\ V_3^{(3)}
 +\end{pmatrix}\\
 +&=& \left[ V_1^{(1)} C_{11}^{(1)} V_1^{(1)} + V_1^{(1)} C_{12}^{(1)} V_2^{(1)} + V_1^{(1)} C_{13}^{(1)} V_3^{(1)} \right]\\
 +&+& \left[ V_2^{(1)} C_{21}^{(1)} V_1^{(1)} + V_2^{(1)} C_{22}^{(1)} V_2^{(1)} + V_2^{(1)} C_{23}^{(1)} V_3^{(1)} \right]\\
 +&+& \left[ V_3^{(1)} C_{31}^{(1)} V_1^{(1)} + V_3^{(1)} C_{32}^{(1)} V_2^{(1)} + V_3^{(1)} C_{33}^{(1)} V_3^{(1)} \right]\\
 +&+& \left[ V_1^{(2)} C_{11}^{(2)} V_1^{(2)} + V_1^{(2)} C_{12}^{(2)} V_2^{(2)} + V_1^{(2)} C_{13}^{(2)} V_3^{(2)} \right]\\
 +&+& \left[ V_2^{(2)} C_{21}^{(2)} V_1^{(2)} + V_2^{(2)} C_{22}^{(2)} V_2^{(2)} + V_2^{(2)} C_{23}^{(2)} V_3^{(2)} \right]\\
 +&+& \left[ V_3^{(2)} C_{31}^{(2)} V_1^{(2)} + V_3^{(2)} C_{32}^{(2)} V_2^{(2)} + V_3^{(2)} C_{33}^{(2)} V_3^{(2)} \right]\\
 +&+& \left[ V_1^{(3)} C_{11}^{(3)} V_1^{(3)} + V_1^{(3)} C_{12}^{(3)} V_2^{(3)} + V_1^{(3)} C_{13}^{(3)} V_3^{(3)} \right]\\
 +&+& \left[ V_2^{(3)} C_{21}^{(3)} V_1^{(3)} + V_2^{(3)} C_{22}^{(3)} V_2^{(3)} + V_2^{(3)} C_{23}^{(3)} V_3^{(3)} \right]\\
 +&+& \left[ V_3^{(3)} C_{31}^{(3)} V_1^{(3)} + V_3^{(3)} C_{32}^{(3)} V_2^{(3)} + V_3^{(3)} C_{33}^{(3)} V_3^{(3)} \right]\\
 +&=& \left[ V_1 C_{11}^{(1)} V_1 + V_1 C_{12}^{(1)} V_4 + V_1 C_{13}^{(1)} V_2 \right]\\
 +&+& \left[ V_4 C_{21}^{(1)} V_1 + V_4 C_{22}^{(1)} V_4 + V_4 C_{23}^{(1)} V_2 \right]\\
 +&+& \left[ V_2 C_{31}^{(1)} V_1 + V_2 C_{32}^{(1)} V_4 + V_2 C_{33}^{(1)} V_2 \right]\\
 +&+& \left[ V_1 C_{11}^{(2)} V_1 + V_1 C_{12}^{(2)} V_3 + V_1 C_{13}^{(2)} V_4 \right]\\
 +&+& \left[ V_3 C_{21}^{(2)} V_1 + V_3 C_{22}^{(2)} V_3 + V_3 C_{23}^{(2)} V_4 \right]\\
 +&+& \left[ V_4 C_{31}^{(2)} V_1 + V_4 C_{32}^{(2)} V_3 + V_4 C_{33}^{(2)} V_4 \right]\\
 +&+& \left[ V_3 C_{11}^{(3)} V_3 + V_3 C_{12}^{(3)} V_5 + V_3 C_{13}^{(3)} V_4 \right]\\
 +&+& \left[ V_5 C_{21}^{(3)} V_3 + V_5 C_{22}^{(3)} V_5 + V_5 C_{23}^{(3)} V_4 \right]\\
 +&+& \left[ V_4 C_{31}^{(3)} V_3 + V_4 C_{32}^{(3)} V_5 + V_4 C_{33}^{(3)} V_4 \right]\\
 +&=& \begin{pmatrix}
 +V_1 & V_2 & V_3 & V_4 & V_5
 +\end{pmatrix}
 +\begin{pmatrix}
 +C_{11}^{(1)} + C_{11}^{(2)} & C_{13}^{(1)} & C_{12}^{(2)} & C_{12}^{(1)}+C_{13}^{(2)} & 0\\
 +C_{31}^{(1)} & C_{33}^{(1)} & 0 & C_{32}^{(1)} & 0\\
 +C_{21}^{(2)} & 0 & C_{22}^{(2)}+C_{11}^{(3)} & C_{23}^{(2)}+C_{13}^{(3)} & C_{12}^{(3)}\\
 +C_{21}^{(1)}+C_{31}^{(2)} & C_{23}^{(1)} & C_{32}^{(2)}+C_{31}^{(3)} & C_{22}^{(1)}+C_{33}^{(2)}+C_{33}^{(3)} & C_{32}^{(3)}\\
 +0 & 0 & C_{21}^{(3)} & C_{23}^{(3)} & C_{22}^{(3)}
 +\end{pmatrix}
 +\begin{pmatrix}
 +V_1 \\ V_2 \\ V_3 \\ V_4 \\ V_5
 +\end{pmatrix}\\
 +&=& \left[ V \right]^\intercal \left[ C \right] \left[ V \right].
 +\end{eqnarray*}
 +=====목적함수의 최소화=====
 +$k=1,\ldots,N$에 대해 다음을 요구하자:
 +$$\frac{\partial W}{\partial V_k} = 0.$$
 +예를 들어 $k=1$이라면,
 +\begin{eqnarray*}
 +0 = \frac{\partial W}{\partial V_1} = 2V_1 C_{11} + V_2 C_{12} + V_3 C_{13} + V_4 C_{14} + V_5 C_{15} + V_2 C_{21} + V_3 C_{31} + V_4 C_{41} + V_5 C_{51}
 +\end{eqnarray*}
 +이며 $C_{ij} = C_{ji}$임을 이용하면
 +$$V_1 C_{11} + V_2 C_{12} + V_3 C_{13} + V_4 C_{14} + V_5 C_{15} = 0$$
 +으로 간략하게 적을 수 있다. 일반적인 $k$에 대해서는
 +$$ 0 = \sum_{i=1}^N V_i C_{ik}$$
 +이므로 다음 식이 만족된다.
 +$$V_k = - \frac{1}{C_{kk}^{-1}} \sum_{i=1, i\neq k}^N V_i C_{ki}$$
 +이 방정식들을 연립하여 한번에 풀거나, 혹은 적절한 초기조건에서 시작해 반복을 통해 수렴시킴으로써 문제를 푼다.
 +
 +======푸아송 방정식======
 +
 +
 +======함께 보기======
 +[[[[전산물리학:변분법|변분법]]
 +
 ======참고문헌====== ======참고문헌======
   * https://ocw.mit.edu/courses/16-920j-numerical-methods-for-partial-differential-equations-sma-5212-spring-2003/   * https://ocw.mit.edu/courses/16-920j-numerical-methods-for-partial-differential-equations-sma-5212-spring-2003/
   * Matthew N.O. Sadiku, //Computational Electromagnetics with MATLAB// (CRC Press, 2019).   * Matthew N.O. Sadiku, //Computational Electromagnetics with MATLAB// (CRC Press, 2019).
  • 전산물리학/유한요소법.1759110401.txt.gz
  • Last modified: 2025/09/29 10:46
  • by admin