Геометрия из alphaShape

Создайте 3-D геометрию с помощью alphaShape MATLAB функция. Во-первых, создайте alphaShape объект блока с цилиндрическим отверстием. Затем импортируйте геометрию в модель PDE из alphaShape контур.

Создайте 2-D сетку сетки.

[xg,yg] = meshgrid(-3:0.25:3);
xg = xg(:);
yg = yg(:);

Создайте единичный диск. Удалите все сетчатые точки ячеек, которые попадают внутрь единичного диска, и включите точки единичного диска.

t = (pi/24:pi/24:2*pi)';
x = cos(t);
y = sin(t);
circShp = alphaShape(x,y,2);
in = inShape(circShp,xg,yg);
xg = [xg(~in); cos(t)];
yg = [yg(~in); sin(t)];

Создайте 3-D копии остальных точек сетки с z-координаты в диапазоне от 0 до 1. Объедините точки в alphaShape объект.

zg = ones(numel(xg),1);
xg = repmat(xg,5,1);
yg = repmat(yg,5,1);
zg = zg*(0:.25:1);
zg = zg(:);
shp = alphaShape(xg,yg,zg);

Получите поверхностный mesh alphaShape объект.

[elements,nodes] = boundaryFacets(shp);

Поместите данные в правильную форму для geometryFromMesh.

nodes = nodes';
elements = elements';

Создайте модель УЧП и импортируйте поверхностный mesh.

model = createpde();
geometryFromMesh(model,nodes,elements);

Просмотрите геометрию и номера граней.

pdegplot(model,'FaceLabels','on','FaceAlpha',0.5)

Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

Чтобы использовать геометрию в анализе, создайте mesh объема.

generateMesh(model);
Для просмотра документации необходимо авторизоваться на сайте