수치 전자기학
수치 전자기학은 전자기학의 핵심 방정식인 맥스웰 방정식을 수치적으로 푸는 것을 의미한다. 문제가 복잡하여 접근하기 어려운 경우에 이 방법을 사용하여 근사적인 해를 구할 수 있다. 수치 전자기학에서 사용하는 대부분의 방법들은 문제를 행렬 방정식으로 나타내어 수치적으로 풀어낸다.
맥스웰 방정식을 수치적으로 푸는 방법은 방정식을 표현하는 방법에 따라 크게 세 가지 종류로 나뉜다. 종류에는 각각 방정식을 미분형으로 나타내는 방법과 적분형으로 나타내는 방법, 그리고 변분형으로 나타내는 방법이 있다. 미분형 방정식을 사용하는 방법에는 유한 차분법이 있고, 적분형 방정식을 사용하는 방법에는 모멘트법이 있으며, 변분형 방정식을 사용하는 방법에는 유한 요소법이 있다.
유한 차분법과 모멘트법, 그리고 유한 요소법 모두 문제를 행렬 방정식으로 표현한 뒤 방정식을 풀어서 해를 얻기 때문에 행렬 방정식을 효율적으로 푸는 알고리즘 또한 중요하다. 행렬 방정식을 푸는 방법에는 가우스 소거법, Gauss-Seidel, SOR(Successive Over-Relaxation), Gradient Descent, Conjugate Gradient 등이 있다.
유한 차분법이란, 미분 방정식을 유한한 차분의 선형 방정식으로 근사하여 해를 구하는 방법을 의미한다. 유한 차분법을 이용하면 미분형으로 나타낸 푸아송 방정식을 수치적으로 풀 수 있다. 푸아송 방정식은 맥스웰 방정식을 다르게 표현한 미분 방정식으로, 전기장 대신 전기 퍼텐셜과 관련된 미분 방정식이다.
formula_1를 formula_2주위에서 테일러 전개하면 다음과 같이 된다.
formula_3
formula_4
이 두 식을 서로 빼 주고 정리하면, 일계 미분의 3점 공식을 얻을 수 있다.
formula_5
일계 미분 3점 공식을 유도할 때 사용하였던 formula_1의 테일러 전개를 다시 사용하여 이계 미분의 3점 공식을 유도할 수 있다. 두 식을 서로 더해 주고 정리하면, 이계 미분의 3점 공식을 얻을 수 있다.
formula_7
이 식을 통해서 함수의 이계 미분값을 근사할 수 있고, 따라서 2차원 푸아송 방정식을 3점 공식을 이용하여 근사하면 다음과 같아진다.
formula_8
문제에서 주어진 영역을 우측의 그림과 같이 정사각형(혹은 직사각형)의 격자판으로 나누어준다. 그러면 각 점에서 다음을 만족하게 된다(유전체가 없는 공간을 가정). 여기서 formula_9는 격자점 사이의 거리를 의미한다.
formula_10
위 방정식에서 좌항의 formula_11는 미지수이고, 우항의 formula_12는 이미 알고 있는 값이다. 따라서 주어진 문제는 격자점 개수만큼의 방정식과 미지수 formula_11를 가진 연립일차방정식과 같아진다. 연립일차방정식은 행렬 방정식으로 나타낼 수 있기 때문에, 결과적으로 주어진 문제를 푸는 것은 근사적으로 formula_14 꼴의 행렬 방정식을 푸는 것과 같다. 이때 formula_15는 정사각행렬로, formula_11의 계수가 들어가고, formula_17에는 formula_11가 들어가며, formula_19에는 formula_12가 들어가게 된다.
위의 연립방정식으로부터 행렬을 생성하기 위해서는 각각의 격자점 formula_21에 번호를 매겨야 한다. 예를 들어, formula_22은 0, formula_23은 1, formula_24는 2, ... 과 같은 방식으로 번호를 매길 수 있다. 번호를 매기고 나면, 각각의 격자점이 formula_25과 같이 하나의 첨자로 나타내어지게 된다. 따라서 위의 방정식을 다음과 같이 간략하게 나타낼 수 있게 된다. 이때 formula_26, formula_19, formula_28, formula_29는 앞서 매긴 번호와 격자점 사이의 관계에 따라 formula_30가 정해지면 자동으로 결정된다.
formula_31
이렇게 격자점들을 정렬시키고 나면, formula_17와 formula_19 벡터, 그리고 행렬 formula_15를 다음과 같이 생성할 수 있다.
formula_35, formula_36, formula_37
단, 격자점이 주어진 영역의 경계에 있는 경우 방정식이 위에 기술한 것과 조금 달라져 행렬을 수정해야 한다. 이 주제는 경계 조건 항목에서 좀 더 자세하게 다룬다.
디리클레 경계조건은 경계에서 퍼텐셜 값이 상수로 고정되는 조건이다. 따라서 연립방정식으로부터 퍼텐셜을 계산할 필요가 없는 위치이므로, 행렬에서 제외된다. 디리클레 경계와 인접한 격자점의 경우, 디리클레 경계의 퍼텐셜이 미지수가 아니므로, 방정식이 조금 수정되어야 한다. formula_38과 인접하여 디리클레 경계 위의 점 formula_39가 있을 때 방정식은 다음과 같이 수정된다. 이때 formula_40는 경계에서의 퍼텐셜로, 상수이다.
formula_41
formula_39가 아닌 다른 점들이 formula_38과 인접하여도 같은 논리로 방정식을 수정해주면 된다.
벡터 formula_19와 행렬 formula_15는 디리클레 경계조건이 있을 때 다음과 같이 수정된다.
formula_46, formula_47
노이만 경계조건은 경계에서 퍼텐셜의 일계 미분 값이 상수로 고정되는 조건이다. 이 조건을 적용시키기 위해서는 경계 외부에 인접한 격자점을 추가하여, 경계 격자점에서의 일계 미분값이 일정하도록 만들어야 한다. 우측 그림과 같은 상황에서, 경계에서의 미분값은 일계 미분의 3점 공식에 의해 다음과 같이 주어진다.
formula_48
노이만 경계조건에서는 일계 미분 값이 상수로 정해져있으므로, 위의 관계로부터 외부 추가 격자점의 퍼텐셜인 formula_49를 다음과 같이 계산할 수 있다.
formula_50
이렇게 구한 외부 추가 격자점의 퍼텐셜로 부터, 노이만 경계에서의 퍼텐셜을 일반 격자점과 같은 방법으로 계산 가능하다. 노이만 경계에서의 퍼텐셜 방정식은 다음과 같다.
formula_51
이 방정식을 행렬에 포함시켜 주면 해가 유일하게 존재하는 행렬 방정식을 얻을 수 있다.
선형 유전체란 분극이 전기장에 비례하는 유전체를 의미한다. 이러한 유전체의 경우 유전체가 없는 진공인 상황에서 사용했던 방법을 그대로 사용하여 푸아송 방정식을 풀 수 있다. 앞서 기제된 방정식들의 유전율 항에 진공의 유전율 formula_52대신 선형 유전체 내부에서의 유전율 formula_53을 대입해주면 유전체 내부에서의 퍼텐셜 해를 구할 수 있다.
선형 유전체의 또 다른 특징은, 유전체 경계면에서 다음과 같은 경계조건을 만족한다는 것이다.
formula_54
여기서 formula_55는 formula_21 주위를 둘러싸는 닫힌 곡선을 의미하고, formula_57는 formula_55를 경계로 가지는 곡면을 의미한다. 또한 formula_59은 곡선에 수직한 방향으로의 퍼텐셜 미분을 의미한다. formula_55를 우측 그림과 같이 각 격자점의 중심을 지나는 정사각형으로 잡고, 격자 사이의 간격이 충분히 작다고 가정하면, 일계 미분의 3점 공식에 의해 위의 식이 다음과 같이 근사된다. 이때 formula_61는 formula_62를 의미한다.
formula_63
이 방정식을 이용하여 선형 유전체 경계면 위에 있는 격자점을 행렬에 포함시켜주면 퍼텐셜을 계산할 수 있다.
모멘트법은 푸아송 방정식의 적분형 해를 근사적으로 계산하는 방법이다.
유한 요소법은 푸아송 방정식의 변분형 해를 근사적으로 계산하는 방법이다. 이 방법은 공간을 여러 조각으로 잘게 나누어 각 조각에서의 퍼텐셜을 선형 근사하는 방식을 사용한다. 유한 차분법과는 달리 격자점을 자유롭게 선택할 수 있기 때문에 경계면이 곡면일 경우 유한 요소법을 사용하는 것이 유한 차분법을 사용하는 것 보다 효율적이다.
범함수 formula_64가 다음과 같이 정의 될 때, formula_64를 최소화 하는 함수 formula_66는 푸아송 방정식의 해가 된다.
formula_67
이때 피적분 함수의 첫 항은 전기장의 에너지를 의미한다. 따라서, 전하 분포가 없을 때의 푸아송 방정식(라플라스 방정식)의 해는 계의 에너지를 최소화하는 퍼텐셜임을 알 수 있다.
유한 요소법에서는 공간을 작은 요소들로 쪼갠 후 각 요소에서의 퍼텐셜을 선형 근사한다. 우측 그림과 같이 삼각형 요소로 공간을 분할하는 경우 (e)번째 요소에서의 선형 퍼텐셜은 다음과 같이 주어진다.
formula_68
선형 근사된 퍼텐셜이 세 꼭짓점에서 원래의 퍼텐셜과 일치하기 위해서는 formula_69, formula_70, formula_71가 다음 조건을 만족해야 한다. formula_72는 행렬을 축약하기 위해 사용하는 기호이다.
formula_73
formula_72 행렬을 이용하면 요소에서의 퍼텐셜을 다음과 같이 조금 다르게 표현할 수 있다.
formula_75
여기서 formula_76는 형상함수(shape function)로, 다음 관계를 만족한다.
formula_77
각 요소의 범함수 formula_78를 형상함수로 나타내면 다음과 같다.
formula_79
이때 formula_80로, formula_81로 정의하고, formula_82라고 정의하면, 요소의 범함수 formula_78는 다음과 같이 간단해진다.
formula_84
여기서 윗 첨자 formula_85는 전치행렬을 의미한다.
전체 범함수는 각 요소의 피적분 함수의 합이다.
formula_86
전체 범함수를 행렬 형태로 나타내기 위해서는 먼저 각 요소의 관점에서 본 꼭짓점 번호와 전체의 관점에서 본 격자점 번호를 대응시켜야 한다. 이 과정은 유한 차분법에서의 격자 좌표에 번호를 매기는 과정과 유사하다. 꼭짓점 번호를 격자점과 모두 대응시키고 나면, 각 요소 관점에서 만들어졌던 행렬(예를 들어 formula_87)을 각 성분 번호에 대응되는 행렬(formula_88)로 바꾸어주어야 한다. 전체 행렬은 formula_89와 같이 변환된 모든 행렬을 더해주어 만들 수 있다. 이와 같이 모든 행렬을 전체 행렬로 변환시켜 주면, 전체 범함수를 다음과 같이 표현할 수 있다.
formula_90
범함수를 최소화하기 위해서는 다음 조건을 만족해야 한다.
formula_91, formula_92는 formula_93번째 격자점의 퍼텐셜
이를 모든 formula_93에 대하여 묶어서 서술하면 아래와 같아진다.
formula_95
이 방정식을 통해서 formula_96 벡터를 구할 수 있다.
디리클레 경계 조건을 사용하는 경우, 경계 위에서의 격자점에서는 이미 퍼텐셜이 상수로 고정되어있다. 따라서 경계에서의 격자점들은 행렬 방정식에서 따로 분리해주어야 한다.
formula_97, formula_96, formula_85, formula_100 행렬의 원소를 재배열하여 경계에서의 격자점들을 따로 분리해줄 수 있다. 예를 들어서 formula_96 행렬의 경우 경계 격자점들의 퍼텐셜을 나타내는 formula_102와 아직 알지 못하여 구해야 하는 퍼텐셜인 formula_103로 나누어서 formula_104와 같이 나타낼 수 있다.
마찬가지로, formula_97 행렬도 formula_106와 같이 블록 행렬로 나타낼 수 있다. 이렇게 블록 행렬로 나타내고 나면, 구해야 하는 퍼텐셜 formula_103가 다음과 같이 주어지게 된다.
formula_108
이 행렬 방정식은 formula_14 꼴의 행렬 방정식으로, formula_110가 정사각행렬이므로, 특수한 경우를 제외하고는 풀 수 있다.
푸아송 방정식의 수치적 해는 행렬 방정식을 통해 구한 전체 formula_96 벡터를 다시 각 요소에서의 formula_112로 변환해주어 구할 수 있다. 해는 다음과 같다.
formula_113