How do I construct a mesh in PDE Solver from only the boundary points?
3 ビュー (過去 30 日間)
古いコメントを表示
Basically, the title. I have a non-uniform or clustered mesh on which I would like to solve a particular PDE but I can't figure out how. I know the boundary points and nothing else. Any help?
0 件のコメント
回答 (1 件)
Vinayak
2024 年 5 月 14 日
Hi Ghazwan
You can use triangulation to get the connections and nodes, which could be fed into the ‘generateFromMesh’ function. I have a sample code with points in a distorted circle geometry, that are fed into ‘delaunayTriangulation’ and a mesh is generated post that.
% Generate random points
numPoints = 10;
theta = linspace(0, 1.95*pi, numPoints);
r = 1; % Radius of the circle
x = r * cos(theta) + rand(1, numPoints) * 0.1; % Adding small randomness
y = r * sin(theta) + rand(1, numPoints) * 0.1;
% Create a PDE model
model = createpde();
% Generate Delaunay triangulation
DT = delaunayTriangulation(x', y');
% Use the triangulation to define the geometry in the PDE model
geometryFromMesh(model, DT.Points', DT.ConnectivityList');
% Generate the mesh
mesh = generateMesh(model,'Hmax',0.2); % Adjust 'Hmax' as needed
% Plot the mesh
figure;
pdemesh(model);
axis equal;
You can read more about “triangulation” and “geometryFromMesh” here:
I hope this helps!
0 件のコメント
参考
カテゴリ
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!