refinemesh

Совершенствуйте треугольную mesh

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

Синтаксис

[p1,e1,t1] = refinemesh(g,p,e,t)
[p1,e1,t1] = refinemesh(g,p,e,t,'regular')
[p1,e1,t1] = refinemesh(g,p,e,t,'longest')
[p1,e1,t1] = refinemesh(g,p,e,t,it)
[p1,e1,t1] = refinemesh(g,p,e,t,it,'regular')
[p1,e1,t1] = refinemesh(g,p,e,t,it,'longest')
[p1,e1,t1,u1] = refinemesh(g,p,e,t,u)
[p1,e1,t1,u1] = refinemesh(g,p,e,t,u,'regular')
[p1,e1,t1,u1] = refinemesh(g,p,e,t,u,'longest')
[p1,e1,t1,u1] = refinemesh(g,p,e,t,u,it)
[p1,e1,t1,u1] = refinemesh(g,p,e,t,u,it,'regular')
[p1,e1,t1,u1] = refinemesh(g,p,e,t,u,it,'longest')

Описание

[p1,e1,t1] = refinemesh(g,p,e,t) возвращает усовершенствованную версию треугольной mesh, заданной геометрией g, Матрица точки p, Матрица ребра e, и Треугольный матричный t.

Треугольная mesh дана данными о mesh pE, и t. Для получения дополнительной информации на представлении данных mesh, смотрите Данные о Mesh.

[p1,e1,t1,u1] = refinemesh(g,p,e,t,u) совершенствовал mesh и также расширяет функциональный u к новой mesh линейной интерполяцией. Количество строк в u должен соответствовать количеству столбцов в p, и u1 имеет столько же строк, сколько существуют точки в p1. Каждый столбец u интерполирован отдельно.

Дополнительный входной параметр it интерпретирован как список субдоменов, чтобы совершенствовать, если это - вектор-строка или список треугольников, чтобы совершенствовать, если это - вектор-столбец.

Метод улучшения по умолчанию является регулярным улучшением, где все заданные треугольники разделены на четыре треугольника той же формы. Самого долгого улучшения ребра, где самое длинное ребро каждого заданного треугольника разделено пополам, можно потребовать путем предоставления longest как итоговый параметр. Используя regular когда итоговый параметр приводит к регулярному улучшению. Некоторые треугольники за пределами заданного набора могут также быть усовершенствованы, чтобы сохранить триангуляцию и ее качество.

Примеры

свернуть все

Совершенствуйте сетку L-образной мембраны несколько раз. Постройте mesh для геометрии L-образной мембраны.

[p,e,t] = initmesh('lshapeg','hmax',inf); 
subplot(2,2,1), pdemesh(p,e,t) 
[p,e,t] = refinemesh('lshapeg',p,e,t); 
subplot(2,2,2), pdemesh(p,e,t) 
[p,e,t] = refinemesh('lshapeg',p,e,t); 
subplot(2,2,3), pdemesh(p,e,t) 
[p,e,t] = refinemesh('lshapeg',p,e,t); 
subplot(2,2,4), pdemesh(p,e,t) 

subplot

Алгоритмы

Алгоритм описан следующими шагами:

  1. Выберите начальный набор треугольников, которые будут усовершенствованы.

  2. Любой разделяет все ребра пополам выбранных треугольников (регулярное улучшение) или разделяет самое длинное ребро пополам (самое долгое улучшение ребра).

  3. Разделите самое длинное ребро любого треугольника, который имеет разделенное ребро.

  4. Повторите шаг 3, пока никакие дальнейшие ребра не будут разделены.

  5. Введите новые точки всех разделенных ребер и замените все разделенные записи в e двумя новыми записями.

  6. Сформируйте новые треугольники. Если все три стороны разделены, новые треугольники формируются путем присоединения средних точек стороны. Если две стороны разделены, к средней точке самого длинного ребра соединяют с противостоящим углом и с другой средней точкой. Если только самое длинное ребро разделено, к его средней точке соединяют с противостоящим углом.

Смотрите также

| |

Представлено до R2006a