불규칙한 경계가있는 도메인의 유한 차이


11

직사각형과 원 사이의 영역 (특히 서적 또는 링크)과 같이 불규칙한 기하학의 예를 포함하여 포아송의 수치 솔루션 (유한 차이 및 크랭크-니콜슨 방법) 및 확산 방정식에 관한 서적을 찾는 사람을 아무도 도울 수 있습니까? 이 경우 MATLAB 코드 예제)?


4
어떤 목적으로? 처음에 학생들을위한 소개? 그리고 당신의 경우에 불규칙한 기하학은 무엇입니까? 재진입 코너가있는 도메인?
shuhalo

@ 마틴 : 나는이 분야에서 더 큰 사람입니다. 불규칙한 모양의 도메인, 특히 곡선이있는 번들 (예 : 2 차원 원형 도메인)이있는 토니에 대해 반복적 인 방법을 사용하여 포아송 방정식을 푸는 데 필요합니다.
liona

2
@last 질문 제목과 본문을 편집하여 원하는 내용을 명확히하십시오. 관심있는 방정식의 종류를 지정하십시오. 이산화, 대수 해석기 또는 둘 다에 관심이 있습니까? 유한 차이와 유한 요소 ( scicomp.stackexchange.com/questions/290/… )에 관심이 있습니까? 현재 질문은 매우 광범위하여 검색에서 찾기가 어렵습니다.
Jed Brown

@JedBrown : 주어진 도메인과 경계 조건에서 유한 차를 사용하여 포아송 방정식을 풀고 싶습니다.
liona

마지막으로 질문 본문을 편집하여 현재까지 귀하의 의견에 정보를 포함 시키십시오. 또한 JedBrown이 말한 것처럼 사람들이 질문을 쉽게 검색하고 질문이 흥미 롭거나 적용 가능한지 판단하기 쉽게 질문 제목을 편집하십시오.
제프 옥스 베리

답변:


3

불규칙한 형상에서 유한 차분 방식을 작동시키는 열쇠는 도메인의 외부, 내부 및 경계를 나타내는 값을 가진 '모양'행렬을 갖는 것입니다. 우리가 다음과 같은 모양을 가지고 있다고 가정 해보십시오.

000000000000011111111110001222222100000122221000000012210000000001100000000000000000

실제 도메인 (매트릭스의 0이 아닌 모든 항목이있는)은 아래쪽을 가리키는 삼각형을 형성합니다. 1은 경계의 점을 나타내며 2는 내부 점을 나타냅니다 (보통 미정) 다음과 같이 노드 번호를 지정할 수 있습니다.

00000000000001111111111000112456100000178910100000001111210000000001100000000000000000

여기서 -1은 경계 위치를 나타냅니다. 그런 다음 매트릭스의 모든 항목에 대해 유한 차등 구성표를 실행할 수 있지만 if 문을 사용하여 내부 노드 (1 ~ 12)에서만 구성표를 실행할 수 있습니다. 이 방법은 가장 효율적인 방법은 아니지만 작업을 수행합니다. 메모리를 확보 할 수 있으면 모든 내부 노드의 (i, j) 항목을 저장하고 실행하는 것이 좋습니다. 해당 노드에서만 for 루프

지오메트리를 직접 만들려면 다음 두 가지 중 하나를 수행 할 수 있습니다.
1. 흑백 이미지를 수동으로 만들고 프로그램으로 가져옵니다 (구현하기는 가장 쉽지만 공간 해상도 dx 또는 dy를 수정하는 것은 불가능합니다).
2. 원하는 공간 해상도에 대해 원하는 기본 모양을 개별적으로 표현하는 코드를 작성하십시오 (구현하기는 어렵지만 공간 해상도 dx 또는 dy의 일반적인 유한 차분 체계에는 더 강력합니다).

이 작업을 수행하는 방법에 대한 자세한 내용을 보려면
NPTEL 컴퓨터 그래픽 과정, 비디오 2 (래스터 그래픽)
NPTEL 컴퓨터 그래픽 과정, 비디오 3 (래스터 그래픽, 계속)을
확인하십시오. 이것이 귀하의 질문에 해당되는지 알려주십시오.


내가 게시 한 행렬 값의 형식을 개선 할 수있는 방법이 있습니까? 제가 원하는 방식으로 보이지 않습니다
Paul

예, MathJax를 사용하여 어레이 환경에 넣을 수 있습니다.
David Ketcheson

당신 말이 맞아요 ... 그것은 MathJax와 훨씬 더 좋아 보인다. 제안 해 주셔서 감사합니다 :)
Paul

@Paul : 간단한 솔루션에 감사드립니다! 그러나 사각형과 삼각형 사이의 닫힌 영역 또는 사각형과 원 사이의 닫힌 영역의 내부 점을 얻기 위해 경계 점을 계산하는 방법은 무엇입니까?
liona

모델링하려는 도메인 모양의 사진이 있습니까? 단어로만 설명하는 것보다 항상 보는 것이 더 쉽습니다.
Paul


2

다음과 같은 논문을 제안합니다.

임의의 불규칙 그리드에서의 유한 차분 법 및 응용 역학에서의 적용-Liszka Orkisz

http://www.sciencedirect.com/science/article/pii/0045794980901492

가변 그리드에 대한 유한 차분 기법-Jensen

http://www.mendeley.com/research/finite-difference-techniques-variable-grids-7/

일반화 된 유한 차분 법으로 포물선 및 쌍곡선 방정식 풀기-Benito Urena Gavete

http://www.sciencedirect.com/science/article/pii/S037704270600687X

기본적으로 비 구조화 / 불규칙 메쉬에 유한 차분을 생성하는 방법을 설명합니다. 이 특정 주제를 심도있게 다루는 책은 없지만 Randall LeVeque의 책에는 그 내용이있을 수 있습니다. 다음은 저자의 웹 페이지에 대한 링크입니다. 여기에는 유한 차이를위한 일부 Matlab m 파일이 포함되어 있습니다.

http://faculty.washington.edu/rjl/booksnotes.html


1

메쉬를 경계에 맞추고 따라서 fdm의 표준 정사각형 메쉬에서 이탈하는 것이 해결책 일 수 있지만 그럼에도 불구하고 고차 알고리즘의 사용에 심각한 영향을 미칩니다. 불가능하지는 않지만 어렵습니다. 다른 접근법을 취했습니다. 즉, 곡선 경계 지오메트리 위에 직사각형 그리드를 유지하고, 고차 알고리즘을 생성하고, 경계에서 보간하여 지오메트리를 "외부"로 설정하고 그게 전부입니다. 우리는 차수 8 알고리즘을 사용하여이 방법으로 ~ 1e-12의 동심 구 테스트 형상에서 정밀도를 달성했습니다. 구글 "Edwards, fdm 곡선 경계"를 검색하면 내 작품에 대한 참조를 찾을 수 있습니다.


0

적응 형 메쉬 미세 조정을 사용할 수 있습니까? 빠른 Google 검색은 많은 링크를 제공합니다. AMR은 예를 들어 유체 역학에서 복잡한 형상을지나 흐름을 모델링하는 데 사용됩니다. 뿐만 아니라 다른 많은 응용 프로그램. 다음은 별 형성에서 발생하는 쌍곡선 보존법 시스템을 해결하는 예입니다. 기하학은 매우 복잡합니다. 이 논문의 첫 부분은 훌륭한 튜토리얼입니다. http://www.mpa-garching.mpg.de/lectures/ADSEM/SS05_Homann.pdf


0

이 질문은 주어진 다양한 답변에 의해 명백한 것처럼 웜 캔을 엽니 다. 이 중 많은 부분이 유용한 점을 제시하지만 실제로 도움이되는 답변은 제기되지 않은 고려 사항을 고려합니다. 지오메트리의 정확한 특성을 구체적으로 지정하는 것 외에도 a) 어떤 정확도가 필요합니까? b) 규칙적인 정사각형 메쉬를 유지하고 싶습니까? c) 신기술 학습에 얼마만큼의 투자를 하시겠습니까?

규칙적인 정사각형 메쉬는 경계를 정확하게 정의하기 어렵 기 때문에 많은 사람들이 일치하는 메쉬로 변경합니다. 직사각형 연결성을 가진 메쉬는 매우 불규칙한 모양에 맞추기가 어렵 기 때문에 많은 사람들이 구조화되지 않은 메쉬 (삼각형 / 사면체 또는 더 일반적인)를 채택합니다.

데카르트 구조가 규칙적이지 않은 데이터의 경우 미분을 평가하기가 어렵 기 때문에 많은 사람들이 문제를 적분 형태로 재구성하여 유한 요소 / 유한 체적 방법 (고차를 달성 할 수 있음)으로 이어집니다. 메쉬가없는 방법이 있습니다. 경계 요소 방법이 있습니다. 침지 된 경계 방법이 있습니다. 컷 셀 방법이 있습니다. 종종 대부분의 역사적인 이유로 일부 응용 프로그램에서는 인기가 있지만 다른 응용에서는 그렇지 않은 방법이 있습니다.

이 미로를 탐색하는 데 행운이 있기를 바랍니다.하지만 귀하의 질문에 대한 모든 솔루션이 없다는 것을 알아야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.