exponenta event banner

мультицилиндр

Создание геометрии, образованной несколькими цилиндрическими ячейками

Описание

пример

gm = multicylinder(R,H) создает геометрию путем объединения нескольких цилиндрических ячеек.

При создании каждого цилиндра multicylinder использует следующую систему координат.

пример

gm = multicylinder(R,H,Name,Value) создание многоцилиндровой геометрии с использованием одного или нескольких Name,Value аргументы пары.

Примеры

свернуть все

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

Создайте геометрию с помощью multicylinder функция. Результирующая геометрия состоит из трех ячеек.

gm = multicylinder([5 10 15],2)
gm = 
  DiscreteGeometry with properties:

       NumCells: 3
       NumFaces: 9
       NumEdges: 6
    NumVertices: 6
       Vertices: [6x3 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. The axes 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. The axes contains 3 objects of type quiver, patch, line.

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

Используйте multicylinder для создания одного цилиндра. Результирующая геометрия состоит из одной ячейки.

gm = multicylinder(5,10)
gm = 
  DiscreteGeometry with properties:

       NumCells: 1
       NumFaces: 3
       NumEdges: 2
    NumVertices: 2
       Vertices: [2x3 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')

Figure contains an axes. The axes 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. The axes contains 3 objects of type quiver, patch, line.

Входные аргументы

свернуть все

Радиус ячейки, определяемый как положительное вещественное число или вектор положительных вещественных чисел. Если R является вектором, то R(i) задает радиус iТретья ячейка.

Радиус R и высота H могут быть скалярами или векторами одинаковой длины. Для комбинации скалярных и векторных входных данных: multicylinder реплицирует скалярные аргументы в векторы одинаковой длины.

Примечание

Радиус или высота должны быть одинаковыми для всех ячеек геометрии.

Пример: gm = multicylinder([1 2 3],1)

Высота ячейки, заданная как положительное вещественное число или вектор положительных вещественных чисел. Если H является вектором, то H(i) определяет высоту iТретья ячейка.

Радиус R и высота H могут быть скалярами или векторами одинаковой длины. Для комбинации скалярных и векторных входных данных: multicylinder реплицирует скалярные аргументы в векторы одинаковой длины.

Примечание

Радиус или высота должны быть одинаковыми для всех ячеек геометрии.

Пример: gm = multicylinder(1,[1 2 3],'Zoffset',[0 1 3])

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: gm = multicylinder([1 2],1,'Void',[true,false])

Z-смещение для каждой ячейки, определяемое как вектор вещественных чисел. ZOffset(i) задает смещение по оси Z iТретья ячейка. Этот вектор должен иметь ту же длину, что и радиус-вектор R или вектор высоты H.

Примечание

ZOffset аргумент допустим только в том случае, если радиус одинаков для всех ячеек геометрии.

Пример: gm = multicylinder(20,[10 10],'ZOffset',[0 10])

Типы данных: double

Индикатор пустой ячейки, заданный как вектор логического true или false значения. Этот вектор должен иметь ту же длину, что и радиус-вектор R или вектор высоты H.

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

Пример: gm = multicylinder([1 2],1,'Void',[true,false])

Типы данных: double

Выходные аргументы

свернуть все

Объект Geometry, возвращаемый как объект «Свойства геометрии».

Совет

Цилиндр имеет одну ячейку, три грани и две кромки. Кроме того, поскольку каждое ребро имеет начальную и конечную вершины, цилиндр имеет вершины. Оба ребра являются окружностями, их начальная и конечная вершины совпадают. Таким образом, цилиндр имеет две вершины - по одной для каждого ребра.

Ограничения

  • multicylinder позволяет создавать только геометрии, состоящие из уложенных или вложенных цилиндров. Для вложенных цилиндров высота должна быть одинаковой для всех ячеек геометрии. Для штабелируемых цилиндров радиус должен быть одинаковым для всех ячеек геометрии. Используйте ZOffset аргумент для наложения ячеек поверх каждой, не перекрывая их.

  • multicylinder не позволяет создавать вложенные цилиндры одинакового радиуса. Требование multicylinder(r,[h1,h2,...]) не поддерживается.

Представлен в R2017a