generateMesh

Создайте треугольную или четырехгранную mesh

Описание

пример

generateMesh(model) создает mesh и хранит его в model объект. model должен содержать геометрию. Для получения дополнительной информации о создании геометрии и включая его в модели, смотрите Геометрию и Mesh и функции геометрии, перечисленные там.

пример

generateMesh(model,Name,Value) изменяет создание mesh согласно Name,Value аргументы.

mesh = generateMesh(___) также возвращает mesh в MATLAB® рабочая область, с помощью любого из предыдущих синтаксисов.

Примеры

свернуть все

Сгенерируйте 2D mesh по умолчанию для L-образной геометрии.

Создайте модель PDE и включайте L-образную геометрию.

model = createpde(1);
geometryFromEdges(model,@lshapeg);

Сгенерируйте mesh по умолчанию для геометрии.

generateMesh(model);

Просмотрите mesh.

pdeplot(model)

Figure contains an axes object. The axes object contains 2 objects of type line.

Создайте mesh, которая более прекрасна, чем значение по умолчанию.

Создайте модель PDE и включайте BracketTwoHoles геометрия.

model = createpde(1);
importGeometry(model,'BracketTwoHoles.stl');

Сгенерируйте mesh по умолчанию для сравнения.

generateMesh(model)
ans = 
  FEMesh with properties:

             Nodes: [3x10003 double]
          Elements: [10x5774 double]
    MaxElementSize: 9.7980
    MinElementSize: 4.8990
     MeshGradation: 1.5000
    GeometricOrder: 'quadratic'

Просмотрите mesh.

pdeplot3D(model)

Создайте mesh с целевым максимальным размером элемента 5 вместо значения по умолчанию 7.3485.

generateMesh(model,'Hmax',5)
ans = 
  FEMesh with properties:

             Nodes: [3x66982 double]
          Elements: [10x44093 double]
    MaxElementSize: 5
    MinElementSize: 2.5000
     MeshGradation: 1.5000
    GeometricOrder: 'quadratic'

Просмотрите mesh.

pdeplot3D(model)

Сгенерируйте 2D mesh с более прекрасными пятнами вокруг заданных ребер и вершин.

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

model = createpde;

Создайте и постройте 2D геометрию, представляющую круг ромбовидным отверстием в его центре.

g = geometryFromEdges(model,@scatterg);
pdegplot(g,'VertexLabels','on','EdgeLabels','on')

Figure contains an axes object. The axes object contains 17 objects of type line, text.

Сгенерируйте mesh для этой геометрии с помощью параметров mesh по умолчанию.

m1 = generateMesh(model)
m1 = 
  FEMesh with properties:

             Nodes: [2x1159 double]
          Elements: [6x547 double]
    MaxElementSize: 0.0509
    MinElementSize: 0.0254
     MeshGradation: 1.5000
    GeometricOrder: 'quadratic'

Постройте получившуюся mesh.

pdeplot(m1)

Figure contains an axes object. The axes object contains 2 objects of type line.

Сгенерируйте mesh с целевым размером в напряжении 1, который меньше, чем целевой минимальный размер элемента, MinElementSize, из mesh по умолчанию.

m2 = generateMesh(model,'Hedge',{1,0.001})
m2 = 
  FEMesh with properties:

             Nodes: [2x2631 double]
          Elements: [6x1241 double]
    MaxElementSize: 0.0509
    MinElementSize: 0.0254
     MeshGradation: 1.5000
    GeometricOrder: 'quadratic'

Постройте получившуюся mesh.

pdeplot(m2)

Figure contains an axes object. The axes object contains 2 objects of type line.

Сгенерируйте mesh, задающую целевые размеры для ребра 1 и вершины 6 и 7.

m3 = generateMesh(model,'Hedge',{1,0.001},'Hvertex',{[6 7],0.002})
m3 = 
  FEMesh with properties:

             Nodes: [2x2903 double]
          Elements: [6x1365 double]
    MaxElementSize: 0.0509
    MinElementSize: 0.0254
     MeshGradation: 1.5000
    GeometricOrder: 'quadratic'

Постройте получившуюся mesh.

pdeplot(m3)

Figure contains an axes object. The axes object contains 2 objects of type line.

Входные параметры

свернуть все

Объект модели в виде PDEModel объект, ThermalModel объект, StructuralModel объект или ElectromagneticModel объект.

Пример: model = createpde(3)

Пример: thermalmodel = createpde('thermal','steadystate')

Пример: structuralmodel = createpde('structural','static-solid')

Пример: emagmodel = createpde('electromagnetic','electrostatic')

Аргументы name-value

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

Пример: generateMesh(model,'Hmax',0.25);

Элемент геометрический порядок в виде 'linear' или 'quadratic'.

Треугольник или четырехгранник, представляющий линейный элемент, имеют узлы в углах. Треугольник или четырехгранник, представляющий квадратичный элемент, имеют узлы в своих углах и центрах ребра. Центральные узлы в квадратичных сетках всегда добавляются на полурасстоянии между углами. Для конфигураций с кривыми поверхностями и ребрами, центральные узлы не могут появиться на ребре или появиться самом.

В общем случае 'quadratic' элементы производят более точные решения. Замените 'quadratic' по умолчанию только решать 3-D магнитостатическую задачу, сохранять память или решать 2D задачу с помощью устаревшего решателя. Устаревшие решатели УЧП используют линейную треугольную mesh для 2D конфигураций.

Пример: generateMesh(model,'GeometricOrder','linear');

Типы данных: char | string

Поймайте в сети темп роста в виде номера, больше, чем или равный 1 и меньше чем или равный 2.

Пример: generateMesh(model,'Hgrad',1.3);

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

Предназначайтесь для максимальной длины ребра mesh в виде положительного числа.

Hmax аппроксимированная верхняя граница на длинах ребра mesh. Иногда, generateMesh может создать mesh с некоторыми элементами, которые превышают Hmax.

generateMesh оценивает значение по умолчанию Hmax от габаритных размеров геометрии.

Маленький Hmax значения позволяют вам создать более прекрасные сетки, но генерация mesh может занять очень долгое время в этом случае. Можно прервать генерацию mesh при помощи Ctrl+C. Обратите внимание на то, что generateMesh может занять время, чтобы ответить на прерывание.

Пример: generateMesh(model,'Hmax',0.25);

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

Предназначайтесь для минимальной длины ребра mesh в виде неотрицательного номера.

Hmin аппроксимированная нижняя граница на длинах ребра mesh. Иногда, generateMesh может создать mesh с некоторыми элементами, которые меньше, чем Hmin.

generateMesh оценивает значение по умолчанию Hmin от габаритных размеров геометрии.

Пример: generateMesh(model,'Hmin',0.05);

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

Целевой размер на выбранных поверхностях в виде массива ячеек, содержащего четное число элементов. Нечетно индексированными элементами являются положительные целые числа или векторы из положительных целых чисел, задающих идентификаторы поверхности. Даже индексированными элементами являются положительные числа, задающие целевой размер для соответствующих поверхностей.

Пример: generateMesh(model,'Hmax',0.25,'Hface',{[1 2],0.1,[3 4 5],0.05})

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

Целевой размер вокруг выбранных ребер в виде массива ячеек, содержащего четное число элементов. Нечетно индексированными элементами являются положительные целые числа или векторы из положительных целых чисел, задающих идентификаторы ребра. Даже индексированными элементами являются положительные числа, задающие целевые размеры для соответствующих ребер.

Пример: generateMesh(model,'Hmax',0.25,'Hedge',{[1 2],0.01,3,0.05})

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

Целевой размер вокруг выбранных вершин в виде массива ячеек, содержащего четное число элементов. Нечетно индексированными элементами являются положительные целые числа или векторы из положительных целых чисел, задающих идентификаторы вершины. Даже индексированными элементами являются положительные числа, задающие целевые размеры для соответствующих вершин.

Пример: generateMesh(model,'Hmax',0.25,'Hvertex',{1,0.02})

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

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

свернуть все

Поймайте в сети описание, возвращенное как объект FEMesh Properties. mesh совпадает с model.Mesh.

Больше о

свернуть все

Элемент

element является основной единицей в методе конечных элементов.

Для 2D проблем элементом является треугольник в model.Mesh.Element свойство. Если треугольник представляет линейный элемент, он имеет узлы только в треугольных углах. Если треугольник представляет квадратичный элемент, то он имеет узлы в треугольных углах и центрах ребра.

Для 3-D проблем элементом является четырехгранник с или четырьмя или десятью точками. (Линейный) четырехгранник с четырьмя точками имеет узлы только в его углах. (Квадратичный) четырехгранник с десятью точками имеет узлы в своих углах и в центральную точку каждого ребра.

Для получения дополнительной информации смотрите Данные о Mesh.

Советы

  • generateMesh может возвратить немного отличающиеся сетки в различных релизах. Например, число элементов в mesh может измениться. Избегайте написания кода, которое использует явным образом заданный узел и идентификаторы элемента или количества элемента и узел.

  • generateMesh использует следующий ряд правил, когда вы задаете локальные размеры элемента с Hface, Hedge, или Hvertex. Эти правила допустимы и для и для пользовательских значений по умолчанию Hmin и Hmax.

    • Если вы задаете локальные размеры для областей друг около друга, generateMesh использует минимальный размер. Например, если вы задаете размер 1 на ребре и размере 0.5 на одной из его вершин, функция постепенно уменьшает размеры элемента в близости той вершины.

    • Если вы задаете локальные размеры, меньшие, чем Hmin, generateMesh игнорирует Hmin в тех окрестностях.

    • Если вы задаете локальные размеры, больше, чем Hmax, generateMesh игнорирует заданные локальные размеры. Hmax не превышен нигде в mesh.

Представленный в R2015a