Poissons Equation with Point source
2 ビュー (過去 30 日間)
古いコメントを表示
Hello everyone :)
in matlab´s Example "Poisson's Equation with Point Source and Adaptive Mesh Refinement" ist a function "circlef" mentioned, that create the point source by returning 1/area for the triangle that contains the origin and zero elsewhere. How do I create such a funtion? Meaning how can I define f differently on specific traingles in the mesh?
Thanks in advance
Hannah
2 件のコメント
Dyuman Joshi
2024 年 2 月 7 日
"How do I create such a funtion?"
Use the description given as its definition.
"Meaning how can I define f differently on specific traingles in the mesh?"
回答 (1 件)
Dyuman Joshi
2024 年 2 月 7 日
You can use inpolygon to see if the origin is inside the triangle or not and polyarea to calculate the area of the triangle -
Note - inpolygon() also considers the points that lie ON the edges of the polygon (see the case below).
x = [-2 -1 1];
y = [-2 1 -1];
plot(polyshape(x,y))
hold on
plot(0, 0, '.r', 'MarkerSize', 10)
if inpolygon(0, 0, x, y)
f = 1./polyarea(x,y);
else
f = 0;
end
f
This can be condensed to -
F = inpolygon(0, 0, x, y)./polyarea(x,y)
5 件のコメント
Dyuman Joshi
2024 年 2 月 12 日
編集済み: Dyuman Joshi
2024 年 2 月 17 日
From a cursory glance, I'd say my solution is simpler than whatever is being done here -
type circlef.m
参考
カテゴリ
Help Center および File Exchange で Geometry and Mesh についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!