Геометрия от polyshape

В этом примере показано, как создать многоугольную геометрию с помощью polyshape MATLAB функция. Затем используйте триангулированное представление геометрии как входная mesh для geometryFromMesh функция.

Создайте и постройте polyshape объект квадрата с отверстием.

t = pi/12:pi/12:2*pi;
pgon = polyshape({[-0.5 -0.5 0.5 0.5], 0.25*cos(t)}, ...
                 {[0.5 -0.5 -0.5 0.5], 0.25*sin(t)})
pgon = 
  polyshape with properties:

      Vertices: [29x2 double]
    NumRegions: 1
      NumHoles: 1

plot(pgon)
axis equal

Создайте представление триангуляции этого объекта.

tr = triangulation(pgon);

Создайте модель PDE.

model = createpde;

С данными о триангуляции как mesh используйте geometryFromMesh функция, чтобы создать геометрию. Постройте геометрию.

tnodes = tr.Points';
telements = tr.ConnectivityList';

geometryFromMesh(model,tnodes,telements);
pdegplot(model)

Постройте mesh.

figure
pdemesh(model)

Поскольку данные о триангуляции привели к низкокачественной mesh, сгенерируйте новую более прекрасную mesh для последующего анализа.

generateMesh(model)
ans = 
  FEMesh with properties:

             Nodes: [2x1259 double]
          Elements: [6x579 double]
    MaxElementSize: 0.0566
    MinElementSize: 0.0283
     MeshGradation: 1.5000
    GeometricOrder: 'quadratic'

Постройте mesh.

figure
pdemesh(model)