푸아송방정식 예제

이 변형 문제는 함수 공간 (V_h) 및 (hat{V}_h)의 적절한 정의와 함께 푸아송 방정식(1)의 대략적인 수치 솔루션을 고유하게 정의합니다. 경계 조건은 평가판 및 테스트 공간의 일부로 인코딩됩니다. 수학적 프레임 워크는 언뜻 보기에 복잡 해 보일 수 있지만, 좋은 소식은 유한 요소 변형 문제 (8)가 연속 변형 문제 (7)와 동일하게 보이며, FEniCS는 자동으로 (8)과 같은 변형 문제를 해결할 수 있다는 것입니다! 식 문자열의 매개 변수는 허용되지만 Expression 개체를 만들 때 키워드 인수를 통해 초기화해야 합니다. 예를 들어 함수 (f(x)=e^{-kappapi^2t}sin(pi kx))은 균일하지 않은 경계 조건의 수에 따라 코딩될 수 있으며, Laplace 방정식 문제는 많은 하위 문제로 세분화되어야 합니다. 푸아송 하위 문제는 위에서 설명한 대로 해결할 수 있습니다. 표면 재구성 문제에 푸아송 방정식을 효과적으로 적용하려면 벡터 필드 V의 양호한 불연속을 찾아야 합니다. 기본 방법은 유한 차이 그리드로 데이터를 바인딩하는 것입니다. 이러한 그리드의 노드에서 값인 함수의 경우 그라데이션은 지그재그 된 그리드, 즉 노드가 원래 그리드의 노드 사이에 있는 그리드에서 값으로 표시될 수 있습니다. 세 개의 엇갈린 그리드를 정의하는 것이 편리하며, 각 그리드는 법선 데이터의 구성요소에 해당하는 한 방향으로만 이동됩니다. 엇갈리는 각 그리드에서 점 집합에서 [삼선형 보간]을 수행합니다. 그런 다음 보간 가중치를 사용하여 pi를 포함하는 특정 지그재그 그리드 셀의 노드에 ni의 관련 구성 요소의 크기를 분산합니다. (Kazhdan et al., 2006)[3]에서 저자는 적응유한 차이 그리드를 사용하여 보다 정확한 불연속화 방법을 제공합니다.

그들은 적응 옥트리와 함께이 기술을 구현하는 것이 좋습니다. 내장 된 FEniCS 시각화 도구 (`plot“ 명령을 사용하여 만든 푸아송 문제에 대한 메쉬 및 솔루션의 플롯)는 결과 곡선 플롯이 Matplotlib을 사용하여 생성 된 멤브레인 문제에 대한 변형 및 하중의 도면 플롯에 표시됩니다. (y) -axsis를 따라 두 함수의 샘플링. 지역화된 입력((p))은 출력((w))에서 심하게 감쇠되고 부드럽게 됩니다. 이는 푸아송 방정식의 일반적인 특성을 반영합니다. 다음 예제를 고려해 봅시다, 어디 u x x x + u y = F ( x , y) , ( ( x , y ) [ 0 , L ] × [ 0 , M ] . {디스플레이 스타일 u_{xx}+u_{yy}=F(x,y),(x,y)lbrack 0,Lrbrack 시간 lbrack 0,Mrbrack ~.} 디리클 경계 조건은 다음과 같습니다: u (0 , y) = 0 u (L , y) = 0 u (x , 0) = 0 u (x , M) = = 0 {디스플레이 스타일 {begin{정렬}u(0,y)&&0u(L,y)&0\u(x,0)&0\u(x,M)&0\끝{정렬}} 이 방정식을 해결하기 위해 동종 방정식에 대한 해법을 통해 주어진 경계 조건을 충족하는 기본 함수 시스템을 얻을 수 있다고 가정해 보겠습니다. 우리는 Laplace 방정식으로 시작합니다 : U X x + u y = 0 . {디스플레이 스타일 u_{xx}+u_{yy}=0~.} 테스트 문제를 구성하는이 간단하지만 매우 강력한 방법은 제조 솔루션의 방법이라고 : 정확한 솔루션에 대한 간단한 식을 선택 오른쪽 (소스 용어 (f))를 얻기 위해 방정식에 연결, 다음 방정식을 해결 오른쪽을 사용하여 정확한 솔루션을 경계 조건으로 사용하고 정확한 솔루션을 재현하려고 합니다.