exponenta event banner

refinemesh

Уточнение треугольной сетки

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

    Описание

    пример

    Примечание

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

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

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

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

    пример

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

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

    Примеры

    свернуть все

    Несколько раз уточняют сетку 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)

    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.

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

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

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

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

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

    [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

    Точки сетки, заданные как 2-по-Np матрица. Np - количество точек (узлов) в сетке. Колонка k из p состоит из x-координаты точки k в p(1,k) и координата точки по оси Y k в p(2,k). Дополнительные сведения см. в разделе Данные сетки как [p, e, t] Тройки.

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

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

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

    PDE раствор, указанный как вектор.

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

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

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

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

    свернуть все

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

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

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

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

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

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

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

    Алгоритмы

    Алгоритм уточнения выполняется следующим образом:

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

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

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

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

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

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

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