refinemesh

Уточнение треугольного mesh

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

    Описание

    пример

    Примечание

    Эта функция не поддерживает квадратичные элементы 2-D.

    [p1,e1,t1] = refinemesh(g,p,e,t) возвращает уточненную версию треугольного mesh, заданную данными сетки p, e, и t. Для получения дополнительной информации о представлении данных сетки смотрите Mesh Data как [p, e, t] Triples.

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

    refinemesh интерполирует каждый столбец u отдельно.

    пример

    [___] = refinemesh(___,it) использует входные и выходные аргументы из предыдущих синтаксисов и задает список it геометрических граней или треугольников для уточнения. Скаляр или вектор-строка задает грани. A вектора-столбца задает треугольники.

    [___] = refinemesh(___,'longest') использует самую длинную корректировку ребра, где самое длинное ребро каждого треугольника разделено. По умолчанию refinemesh использует правильное уточнение, где все треугольники разделены на четыре треугольника одной и той же формы. Можно также явным образом задать 'regular' вместо 'longest'. Если вы используете вектор-столбец it чтобы задать треугольники для уточнения, затем refinemesh может уточнить некоторые треугольники вне заданного набора, чтобы сохранить триангуляцию и ее качество.

    Примеры

    свернуть все

    Несколько раз уточните mesh L-образной мембраны. Постройте график начального mesh и уточненных меш на каждом шаге.

    [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)

    Figure contains 4 axes. Axes 1 contains 2 objects of type line. Axes 2 contains 2 objects of type line. Axes 3 contains 2 objects of type line. Axes 4 contains 2 objects of type line.

    Уточните mesh для конкретной грани L-образной мембраны.

    Постройте график L-образной мембраны, чтобы идентифицировать номера граней.

    pdegplot('lshapeg','FaceLabels','on')

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

    Создайте начальный mesh для всей геометрии, затем несколько раз уточните mesh для грани 3. Постройте график начального mesh и уточненных меш на каждом шаге.

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

    Figure contains 4 axes. Axes 1 contains 2 objects of type line. Axes 2 contains 2 objects of type line. Axes 3 contains 2 objects of type line. Axes 4 contains 2 objects of type line.

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

    свернуть все

    Описание геометрии, заданное как разложенная геометрическая матрица, геометрическая функция или указатель на геометрическую функцию. Для получения дополнительной информации о разложенной геометрической матрице см. decsg. Для получения дополнительной информации о функции геометрии смотрите Параметризованная функция для создания 2-D геометрии.

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

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

    Mesh точки, заданные как 2-бай- Np матрица. Np - число точек (узлов) в mesh. Столбец k от p состоит из x -координата точки k в p(1,k) и y - координата точки k в p(2,k). Для получения дополнительной информации смотрите Данные как [p, e, t] Triples.

    Сетка ребер, заданная как 7-бай- Ne матрица, где Ne - количество ребер в mesh. Ребро является парой точек в p содержащая контур между поддоменами или содержащая внешний контур. Для получения дополнительной информации смотрите Данные как [p, e, t] Triples.

    Элементы сетки, заданные как 4-бай- Nt матрица. Nt - количество треугольников в mesh.

    The t(i,k), с i в диапазоне от 1 до end - 1, содержат индексы к угловым точкам элемента k. Для получения дополнительной информации смотрите Данные как [p, e, t] Triples. Последняя строка, t(end,k), содержит номер поддомена элемента.

    PDE решение, заданное как вектор.

    • Если УЧП скаляром, что означает, что он имеет только одно уравнение, то u является вектором-столбцом, представляющей u решения в каждом узле mesh.

    • Если УЧП является системой N > 1 уравнений, то u - вектор-столбец с N*Np элементы, где Np - число узлов в mesh. Первый Np элементы u представляют решение уравнения 1, следующего Np элементы представляют решение уравнения 2 и так далее.

    Грани или треугольники для уточнения, заданные как положительное число или строка или вектор-столбец положительных чисел. Скаляр или вектор-строка задает грани. A вектора-столбца задает треугольники.

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

    свернуть все

    Уточнённые сетчатый точки, возвращенные как 2-бай- Np матрица. Np - число точек (узлов) в mesh. Столбец k от p состоит из x -координата точки k в p(1,k) и y - координата точки k в p(2,k). Для получения дополнительной информации смотрите Данные как [p, e, t] Triples.

    Рафинированные сетчатые ребра, возвращенный как 7-бай- Ne матрица, где Ne - количество ребер в mesh. Ребро является парой точек в p содержащая контур между поддоменами или содержащая внешний контур. Для получения дополнительной информации смотрите Данные как [p, e, t] Triples.

    Уточненные элементы сетки, возвращенные как 4-бай- Nt матрица. Nt - количество треугольников в mesh.

    The t(i,k), с i в диапазоне от 1 до end-1, содержат индексы к угловым точкам элемента k. Для получения дополнительной информации смотрите Данные как [p, e, t] Triples. Последняя строка, t(end,k), содержит номер поддомена элемента.

    Решение, возвращенный как вектор.

    • Если УЧП скаляром, что означает, что он имеет только одно уравнение, то u1 является вектором-столбцом, представляющей u1 решения в каждом узле mesh.

    • Если УЧП является системой N > 1 уравнений, то u1 - вектор-столбец с N*Np элементы, где Np - число узлов в mesh. Первый Np элементы u1 представляют решение уравнения 1, следующего Np элементы представляют решение уравнения 2 и так далее.

    Алгоритмы

    Алгоритм уточнения следует этим шагам:

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

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

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

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

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

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

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