refinemesh

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

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

    Описание

    пример

    Примечание

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

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

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

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

    пример

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

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

    Примеры

    свернуть все

    Совершенствуйте сетку 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 objects. Axes object 1 contains 2 objects of type line. Axes object 2 contains 2 objects of type line. Axes object 3 contains 2 objects of type line. Axes object 4 contains 2 objects of type line.

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

    Постройте L-образную мембрану, чтобы идентифицировать числа поверхности.

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

    Figure contains an axes object. The axes object 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 objects. Axes object 1 contains 2 objects of type line. Axes object 2 contains 2 objects of type line. Axes object 3 contains 2 objects of type line. Axes object 4 contains 2 objects of type line.

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

    свернуть все

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

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

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

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

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

    Поймайте в сети элементы в виде 4 Nt матрица. Nt количество треугольников в mesh.

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

    Решение для УЧП в виде вектора.

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

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

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

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

    свернуть все

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

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

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

    t(i,k), с i в пределах от 1 через end-1, содержите индексы к угловым точкам элемента k. Для получения дополнительной информации смотрите Данные о Mesh, в то время как [p, e, t] Утраивается. Последняя строка, 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