Многосеточные введения обычно используют прямоугольную сетку. Тогда интерполяция значений выполняется прямо: просто линейно интерполируйте на ребре между двумя соседними узлами грубой сетки, чтобы найти значение узла точной сетки на этом ребре.
Для приложения FEM у меня есть сетка, которая является "топологически" прямоугольной, так что соединения узлов такие же, как на прямоугольной сетке. Однако узлы не идеально выровнены на сетке, но могут перемещаться на небольшие расстояния, чтобы лучше соответствовать геометрии, сохраняя при этом соединения, как в идеальной прямоугольной сетке.
Сетка выглядит примерно так: пример сетки . Вы видите: соединения "правильные прямоугольные", но положения узлов нет.
Я могу изобразить несколько «разумных» геометрических схем интерполяции для такой установки.
Общий вопрос: требует ли многосетка идеально выровненной прямоугольной решетки, или она также будет работать с ситуацией, описанной выше, если интерполяция "хороша"? Или в этом случае лучше использовать алгебраическую многосетку? (Который я не предпочитаю, так как он не настолько интуитивен, как геометрическая многосетка.)
Ответы:
Multigrid не нуждается в декартовой (прямоугольной), равномерной сетке. Для этого нужно, чтобы вы могли определить точный и грубый уровни (возможно, рекурсивный, если вы хотите перейти от двухуровневой к многоуровневой схеме) и чтобы вы могли определять операторы интерполяции между этими уровнями. Самый простой способ объяснить это, если у вас действительно есть декартова сетка, но вы можете начать с любой грубой сетки, уточнить ее один раз, и вот так: у вас есть более мелкая сетка.
Другими словами, проще всего рассматривать сетку, подходящую для нескольких сеток, не как мелкую сетку и как находить более грубые сетки, а начинать с грубой сетки, из которой вы получаете более мелкие уровни с помощью равномерного уточнения (т. Е. Каждый четырехугольник подразделяются на четыре более мелкие). Поскольку единообразное уточнение всегда возможно, это легко дает вам иерархию. Это противоположно грубому сглаживанию, которое не всегда возможно, если вам только что дали конкретную сетку, и поэтому значительно усложняет определение иерархии сетки. (Именно поэтому люди придумали алгебраические многосеточные методы для определения грубых уровней, основанных только на матрице, не думая о базовой сетке, из которой она была создана.)
источник
Допустим, у вас есть следующая сетка, состоящая из прямоугольных элементов:
Теперь, если вы выполняете интерполяцию в предположении, что у вас нормальная структурированная прямоугольная сетка, вы будете вносить ошибки, связанные с этой неточной интерполяцией. Другими словами, когда вы ограничиваете свой остаточный вектор и когда продлеваете свой вектор ошибок, будут возникать ошибки от интерполяции.
Теперь, если ваша сетка "близка" к нормальной структурированной декартовой сетке, тогда это может сработать, по крайней мере, на первый взгляд, но я подозреваю, что одна из двух вещей произойдет в зависимости от того, насколько далеко ваша сетка от прямоугольной:
1) Вы можете обнаружить, что многосетка начинает сходиться сначала. В конце концов, изначально ваша ошибка в любом случае велика, и ваша «приблизительная» интерполяция на самом деле просто означает, что некоторые узлы немного перепредставлены, а некоторые немного недопредставлены. Однако вы можете обнаружить, что сходимость застаивается, когда решение становится более точным, а ошибки интерполяции становятся более важными.
2) Другая возможность состоит в том, что многосетка в конечном итоге сходится, но не так быстро, как следовало бы, если бы вы использовали правильную интерполяцию.
По сути, отключив интерполяцию, вы оцените важность определенных узлов неточно. Например, в 2D, если вы взвешиваете данный узел как:
когда на самом деле, потому что ваша сетка не совсем декартова, она должна быть:
тогда это приведет к некоторой ошибке. Будет ли эта ошибка предотвращать сходимость, вероятно, будет зависеть от того, насколько далеко ваша сетка от декартовой.
Хотя AMG труднее понять / реализовать, звучит так, будто это правильный метод для вашей сетки. Применение геометрической многосетки к «приблизительной» прямоугольной сетке может сработать, но я бы предположил, что в лучшем случае это решение для бинтов. Надеюсь это поможет.
Обновление : я думаю, что, возможно, была некоторая путаница в моем ответе. Я не говорю, что геометрическая многосетка будет работать только с декартовыми сетками, но скорее, что определить интерполяцию (и, следовательно, ограничение) для декартовых сеток легко, тогда как для неструктурированных сеток это может быть сложно. Например, рассмотрим случай даже простой двумерной области с треугольной сеткой. Уточнение этой сетки легко - по крайней мере, концептуально - но как бы вы определили оператор интерполяции между грубой и тонкой сеткой? Я предпочитаю AMG просто потому, что он больше похож на решатель «черного ящика», то есть не нуждается в информации о мешающей сетке, однако это всего лишь моя предвзятость. Геометрическая многосетка может работать до тех пор, пока вы можете обеспечить точные операторы интерполяции.
источник