Адаптивная 2D генерация mesh и решение для УЧП
Эта страница описывает устаревший рабочий процесс. Новые возможности не могут быть совместимы с устаревшим рабочим процессом. В рекомендуемом рабочем процессе смотрите generateMesh
для генерации mesh и solvepde
для решения для УЧП.
[u,p,e,t] = adaptmesh(g,b,c,a,f)
[u,p,e,t]
= adaptmesh(g,b,c,a,f,'PropertyName',PropertyValue)
[u,p,e,t] = adaptmesh(g,b,c,a,f)
и [u,p,e,t]
= adaptmesh(g,b,c,a,f,'PropertyName',PropertyValue)
выполните адаптивную генерацию mesh и решение для УЧП для эллиптических проблем с 2D геометрией. Дополнительные аргументы даны как имя свойства / пары значения свойства.
Функция производит решение u для эллиптической скалярной проблемы УЧП
для (x, y) ∊ Ω, или эллиптическая системная проблема УЧП
с проблемной геометрией и граничными условиями, данными g
и b
. Mesh описана p
E
, и t
матрицы.
Решение u представлено как вектор решения u
. Если УЧП является скаляром, означая, что это, имеет только одно уравнение, то u
вектор-столбец, представляющий решение u в каждом узле в mesh. Если УЧП является системой N> 1 уравнение, то u
вектор-столбец с N*Np
элементы, где Np
количество узлов в mesh. Первый Np
элементы u
представляйте решение уравнения 1, следующий Np
элементы представляют решение уравнения 2 и так далее.
Алгоритм работает путем решения последовательности проблем УЧП с помощью, совершенствовал треугольные сетки. Первая треугольная генерация mesh предоставляется как дополнительный аргумент adaptmesh
или полученный вызовом initmesh
без опций. Последующие поколения треугольных сеток получены путем решения задачи УЧП, вычисления ошибочной оценки, выбора набора треугольников на основе ошибочной оценки, и затем совершенствования треугольников. Решение проблемы УЧП затем повторно вычисляется. Цикл продолжается, пока треугольный метод выбора не выбирает дальнейших треугольников, пока максимальное количество треугольников не достигнуто, или пока максимальное количество треугольных поколений не достигнуто.
g
описывает геометрию проблемы УЧП. g
может быть анализируемая матрица геометрии, имя файла геометрии или указатель на функцию к файлу геометрии.
b
описывает граничные условия проблемы УЧП.
Адаптированная треугольная сетка проблемы УЧП дана данными о mesh p
E
, и t
. Для получения дополнительной информации на представлении данных mesh, смотрите Данные о Mesh, когда [p, e, t] Утраивается.
Коэффициенты c
A
, и f
из УЧП проблема может быть дана в большом разнообразии путей. В контексте adaptmesh
, коэффициенты могут зависеть от u
если нелинейный решатель включен с помощью свойства nonlin
. Коэффициенты не могут зависеть от t
, время.
adaptmesh
принимает следующие пары "имя-значение" свойства.
Свойство | Значение | Значение по умолчанию | Описание |
---|---|---|---|
Maxt | положительное целое число | inf | Максимальное количество новых треугольников |
Ngen | положительное целое число | 10
| Максимальное количество треугольных поколений |
Mesh |
| initmesh
| Начальная mesh |
Tripick | Функция MATLAB® | pdeadworst | Треугольный метод выбора |
Par | числовой | 0.5
| Параметр функции |
Rmethod |
| 'longest' | Треугольный метод улучшения |
Nonlin |
| 'off' | Используйте нелинейный решатель |
Toln | числовой | 1e-4 | Нелинейный допуск |
Init | u0 | 0
| Нелинейное начальное значение |
Jac | 'fixed | 'lumped' | 'full' | 'fixed' | Нелинейное якобиевское вычисление |
norm | numeric | inf | Нелинейная норма невязки |
|
| 'preR2013a' | Алгоритм для генерации начальной mesh |
Par
передается Tripick
функция, которая описана позже. Обычно это используется в качестве допуска того, как хорошо решение соответствует уравнению.
Не больше, чем Ngen
предприняты последовательные улучшения. Улучшение также останавливается, когда количество треугольников в mesh превышает Maxt
.
p1
, e1
, и t1
входные данные о mesh. Эта треугольная mesh используется в качестве начинающий mesh для адаптивного алгоритма. Для получения дополнительной информации на представлении данных mesh, смотрите initmesh
. Если никакая начальная mesh не обеспечивается, результат вызова initmesh
без опций используется в качестве начальной mesh.
Треугольный метод выбора, Tripick
, определяемый пользователем треугольный метод выбора. Учитывая ошибочную оценку, вычисленную функциональным pdejmps
, треугольный метод выбора выбирает треугольники, которые будут усовершенствованы в следующей треугольной генерации. Функция вызвана с помощью аргументов p
T
cc
, aa
, ff
U
, errf
, и par
P
и t
представляйте текущее поколение треугольников; cc
, aa
, и ff
текущие коэффициенты для проблемы УЧП, расширенной до треугольных средних точек; u
текущее решение; errf
вычисленная ошибочная оценка; и par
, параметр функции, дан adaptmesh
как дополнительный аргумент. Матрицы cc
, aa
, ff
, и errf
у всех есть N t столбцы, где N t является текущим количеством треугольников. Количества строк в cc
, aa
, и ff
точно то же самое как входные параметры c
A
, и f
. errf
ссорится для каждого уравнения в системе. Двумя стандартными треугольными методами выбора является pdeadworst
и pdeadgsc
. pdeadworst
выбирает треугольники где errf
превышает часть (значение по умолчанию 0.5) худшего значения и pdeadgsc
выбирает треугольники с помощью относительного критерия допуска.
Методом улучшения является longest
или regular
. Для получения дополнительной информации на методе улучшения, смотрите refinemesh
.
MesherVersion
свойство выбирает алгоритм для генерации mesh. 'R2013a'
алгоритм запускается быстрее и может триангулировать больше конфигураций, чем 'preR2013a'
алгоритм. Оба алгоритма используют Триангуляцию Делоне.
Адаптивный алгоритм может также решить нелинейные задачи УЧП. Для нелинейных проблем УЧП, Nonlin
параметр должен быть установлен на on
. Нелинейный допуск Toln
, нелинейное начальное значение u0
, нелинейное якобиевское вычисление Jac
, и нелинейная норма невязки Norm
передаются нелинейному решателю pdenonlin
.
После завершения отображено одно из следующих сообщений:
Adaption completed
(Это означает что Tripick
функция возвратила нулевые треугольники, чтобы совершенствовать.)
Maximum number of triangles obtained
Maximum number of refinement passes obtained
Partial Differential Equation Toolbox™ обеспечивает refinemesh
функция для глобальной переменной, универсальная форма поймала в сети улучшение для 2D конфигураций. Это делит каждый треугольник на четыре подобных треугольника путем создания новых углов в midsides, корректировки для кривых контуров. Можно оценить точность числового решения путем сравнения результатов последовательности последовательно усовершенствованных сеток. Если решение является гладким достаточно, более точные результаты могут быть получены экстраполяцией.
Решения уравнений часто имеют геометрические функции, такие как локализованные сильные градиенты. Примером технической важности в эластичности является концентрация напряжения, происходящая в повторно используемых углах, таких как MATLAB L-образная мембрана. В таких случаях более выгодно совершенствовать mesh выборочно, то есть, только там, где это необходимо. Выбор, который основан на оценках ошибок в вычисленных решениях, называется адаптивным улучшением mesh. Смотрите adaptmesh
для примера вычислительных сбережений, где для глобального улучшения нужны больше чем 6 000 элементов, чтобы конкурировать с адаптивно усовершенствованной сеткой 500 элементов.
Адаптивное улучшение генерирует последовательность решений на последовательно более прекрасных сетках при каждом выборе этапа и совершенствовании тех элементов, которые, как оценивается, способствуют больше всего ошибке. Процесс отключен, когда максимальное количество элементов превышено, когда каждый треугольник вносит меньше, чем предварительно установленный допуск, или когда предел итерации достигнут. Можно обеспечить начальную mesh или позволить adaptmesh
вызовите initmesh
автоматически. Вы также выбираете параметры критериев выбора и завершения. Три компонента алгоритма являются ошибочной функцией индикатора (который вычисляет оценку ошибочного вклада элемента), установка для очистки mesh (который выбирает и подразделяет элементы), и критерии завершения.
Адаптация является процессом обратной связи. По сути, это легко применяется к большей области значений проблем, чем те, для которых был адаптирован ее проект. Вы хотите, чтобы оценки, критерии выбора, и так далее были оптимальны в смысле предоставления самого точного решения в фиксированных затратах или самого низкого вычислительного усилия для заданной точности. Такие результаты были доказаны только для проблем модели, но обычно, equidistribution эвристика была найдена почти оптимальной. Размеры элемента должны быть выбраны так, чтобы каждый элемент внес то же самое в ошибку. Теория адаптивных схем использует априорные границы для решений в терминах исходной функции f. Для неэллиптических проблем не могут существовать такие границы, в то время как схема улучшения все еще четко определена и работает хорошо.
Ошибочная функция индикатора, используемая в программном обеспечении, является поэлементной оценкой вклада, на основе работы К. Джонсона и др. [1], [2]. Для уравнения Пуассона –Δu = f на Ω, следующей ошибочной оценке для FEM-решения uh содержит в 2-норме L :
где h = h (x) является локальным размером mesh, и
Заключенное в фигурные скобки количество является скачком в производной по нормали v через ребро τ, h τ является длиной ребра τ, и сумма работает на основе Ei, набора всех внутренних ребер триангуляции. Коэффициенты α и β независимы от триангуляции. Связанный превращен в поэлементную ошибочную функцию индикатора E (K) для элемента K путем подведения итогов вкладов от его ребер.
Общая форма ошибочного индикатора функционирует для эллиптического уравнения
– ∇ · (c ∇u) + au = f | (1) |
где модуль, нормальный из ребра, τ и заключенный в фигурные скобки термин являются скачком в движении через ребро элемента. L 2 нормы вычисляется по элементу K. pdejmps
функция вычисляет этот ошибочный индикатор.
Программное обеспечение Partial Differential Equation Toolbox приспособлено к эллиптическим проблемам. Для точности и плохо создания условий, такие проблемы требуют, чтобы элементы не отклонились слишком много от того, чтобы быть равносторонним. Таким образом, даже в чрезвычайно одномерных функциях решения, таких как пограничные слои, метод улучшения должен гарантировать треугольники разумной формы.
Когда элемент усовершенствован, новые узлы появляются на его midsides, и если соседний треугольник не усовершенствован похожим способом, это, как говорят, имеет зависающие узлы. Итоговая триангуляция не должна иметь никаких узлов зависания, и они удалены путем разделения соседних треугольников. Чтобы избежать дальнейшего ухудшения треугольного качества в последовательных поколениях, "самая длинная схема" деления пополам ребра используется Розенбергом-Стенджером [3], в котором всегда разделяется самая длинная сторона треугольника, каждый раз, когда любая из сторон имеет зависающие узлы. Это гарантирует, что никакой угол не еще меньше, чем половина самого маленького угла исходной триангуляции.
Могут использоваться два критериев выбора. Один, pdeadworst
, совершенствовал все элементы со значением ошибочного индикатора, больше, чем половина худшего из любого элемента. Другой, pdeadgsc
, совершенствовал все элементы со значением индикатора, превышающим пользовательский безразмерный допуск. Сравнение с допуском правильно масштабируется относительно области, размера решения, и так далее.
Для сглаженных решений ошибка equidistribution может быть достигнута pdeadgsc
выбор, если максимальное количество элементов является достаточно большим. pdeadworst
адаптация только завершает работу, когда максимальное количество элементов было превышено или когда предел итерации достигнут. Этот режим является естественным, когда решение показывает сингулярность. Ошибочный индикатор элементов рядом с сингулярностью никогда не может исчезать, независимо от размера элемента, и equidistribution слишком много, чтобы надеяться на.
[1] Джонсон, C. Числовое решение дифференциальных уравнений с частными производными методом конечных элементов. Лунд, Швеция: Studentlitteratur, 1987.
[2] Джонсон, C. и К. Эрикссон. Адаптивные методы конечных элементов для Параболических проблем I: Линейная проблема Модели. SIAM J. Numer. Анальный, 28, (1991), стр 43–77.
[3] Розенберг, I.G., и Ф. Стенджер, нижняя граница на углах треугольников, созданных путем деления пополам самой длинной стороны. Математика Расчета. Vol 29, Номер 10, 1975, стр 390–395.