Кубоиды, цилиндры и сферы

В этом примере показано, как создать 3-D конфигурации, сформированные одним или несколькими кубические, цилиндрические, и сферические ячейки при помощи multicuboid, multicylinder, и multisphere функции, соответственно. С этими функциями можно создать сложенные или вложенные конфигурации. Также можно создать конфигурации, где некоторые ячейки пусты; например, выкопайте цилиндры, кубы или сферы.

Все ячейки в геометрии должны иметь тот же тип: или кубоиды, или цилиндры или сферы. Эти функции не комбинируют ячейки различных типов в одной геометрии.

Одна сфера

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

Используйте multisphere функция, чтобы создать одну сферу. Получившаяся геометрия состоит из одной ячейки.

gm = multisphere(5)
gm = 
  DiscreteGeometry with properties:

       NumCells: 1
       NumFaces: 1
       NumEdges: 0
    NumVertices: 0
       Vertices: []

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

model = createpde
model = 
  PDEModel with properties:

           PDESystemSize: 1
         IsTimeDependent: 0
                Geometry: []
    EquationCoefficients: []
      BoundaryConditions: []
       InitialConditions: []
                    Mesh: []
           SolverOptions: [1x1 pde.PDESolverOptions]

Включайте геометрию в модель.

model.Geometry = gm
model = 
  PDEModel with properties:

           PDESystemSize: 1
         IsTimeDependent: 0
                Geometry: [1x1 DiscreteGeometry]
    EquationCoefficients: []
      BoundaryConditions: []
       InitialConditions: []
                    Mesh: []
           SolverOptions: [1x1 pde.PDESolverOptions]

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

pdegplot(model,'CellLabels','on')

Figure contains an axes object. The axes object contains 2 objects of type quiver, patch.

Вложенные кубоиды той же высоты

Создайте геометрию, которая состоит из трех вложенных кубоидов той же высоты, и включайте эту геометрию в модель PDE.

Создайте геометрию при помощи multicuboid функция. Получившаяся геометрия состоит из трех ячеек.

gm = multicuboid([2 3 5],[4 6 10],3)
gm = 
  DiscreteGeometry with properties:

       NumCells: 3
       NumFaces: 18
       NumEdges: 36
    NumVertices: 24
       Vertices: [24x3 double]

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

model = createpde
model = 
  PDEModel with properties:

           PDESystemSize: 1
         IsTimeDependent: 0
                Geometry: []
    EquationCoefficients: []
      BoundaryConditions: []
       InitialConditions: []
                    Mesh: []
           SolverOptions: [1x1 pde.PDESolverOptions]

Включайте геометрию в модель.

model.Geometry = gm
model = 
  PDEModel with properties:

           PDESystemSize: 1
         IsTimeDependent: 0
                Geometry: [1x1 DiscreteGeometry]
    EquationCoefficients: []
      BoundaryConditions: []
       InitialConditions: []
                    Mesh: []
           SolverOptions: [1x1 pde.PDESolverOptions]

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

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

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

Сложенные цилиндры

Создайте геометрию, которая состоит из трех сложенных цилиндров, и включайте эту геометрию в модель PDE.

Создайте геометрию при помощи multicylinder функция с ZOffset аргумент. Получившаяся геометрия состоит из четырех ячеек, сложенных друг на друге.

gm = multicylinder(10,[1 2 3 4],'ZOffset',[0 1 3 6])
gm = 
  DiscreteGeometry with properties:

       NumCells: 4
       NumFaces: 9
       NumEdges: 5
    NumVertices: 5
       Vertices: [5x3 double]

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

model = createpde
model = 
  PDEModel with properties:

           PDESystemSize: 1
         IsTimeDependent: 0
                Geometry: []
    EquationCoefficients: []
      BoundaryConditions: []
       InitialConditions: []
                    Mesh: []
           SolverOptions: [1x1 pde.PDESolverOptions]

Включайте геометрию в модель.

model.Geometry = gm
model = 
  PDEModel with properties:

           PDESystemSize: 1
         IsTimeDependent: 0
                Geometry: [1x1 DiscreteGeometry]
    EquationCoefficients: []
      BoundaryConditions: []
       InitialConditions: []
                    Mesh: []
           SolverOptions: [1x1 pde.PDESolverOptions]

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

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

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

Полый цилиндр

Создайте полый цилиндр и включайте его как геометрию в модели PDE.

Создайте полый цилиндр при помощи multicylinder функция с Void аргумент. Получившаяся геометрия состоит из одной ячейки.

gm = multicylinder([9 10],10,'Void',[true,false])
gm = 
  DiscreteGeometry with properties:

       NumCells: 1
       NumFaces: 4
       NumEdges: 4
    NumVertices: 4
       Vertices: [4x3 double]

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

model = createpde
model = 
  PDEModel with properties:

           PDESystemSize: 1
         IsTimeDependent: 0
                Geometry: []
    EquationCoefficients: []
      BoundaryConditions: []
       InitialConditions: []
                    Mesh: []
           SolverOptions: [1x1 pde.PDESolverOptions]

Включайте геометрию в модель.

model.Geometry = gm
model = 
  PDEModel with properties:

           PDESystemSize: 1
         IsTimeDependent: 0
                Geometry: [1x1 DiscreteGeometry]
    EquationCoefficients: []
      BoundaryConditions: []
       InitialConditions: []
                    Mesh: []
           SolverOptions: [1x1 pde.PDESolverOptions]

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

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

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