Автор работы: Пользователь скрыл имя, 11 Декабря 2011 в 15:03, отчет по практике
При решении различных задач математического моделирования широко применяются проекционно-сеточные методы. Их использование предполагает предварительное построение так называемой "сетки", то есть некоего топологического множества точек ("вершин", "узлов"), связанных между собой "ребрами" - отрезками прямых (а в некоторых случаях и кривых) линий таким образом, что исходная область разбивается на элементы определенной формы. При этом в качестве элементов сетки, если речь идет о геометрически сложных областях, обычно используются геометрические симплексы, т. е. треугольники в двумерном и тетраэдры в трехмерном случае. Процесс построения сетки обычно называется дискретизацией или триангуляцией (даже если речь идет о трех измерениях).
При
решении различных задач
Развитие
вычислительной техники способствовало
значительному прогрессу в
В
настоящее время двумерная
На первый взгляд подобное различие кажется странным, ведь обычно математические методы, разработанные для случая двух измерений, легко переносятся на случай трех и более измерений. К сожалению, трехмерное пространство обладает рядом особенностей, которые затрудняют подобный перенос.
Например,
плоскость можно элементарно
заполнить правильными
Более
того, любой треугольник можно
разбить на треугольники, подобные
ему (на 4, 9, 16 и т.д.). Тетраэдр в общем
случае нельзя разбить на подобные
тетраэдры. Это является основным препятствием
на пути использования методов
Любой многоугольник на плоскости можно ребрами разбить на непересекающиеся треугольники. В общем случае произвольный многогранник нельзя разбить на непересекающиеся тетраэдры, не используя дополнительных вершин. Эта проблема может быть названа краеугольной, поскольку существенно усложняет использование практически всех алгоритмов триангуляции.
Помимо
указанных сложностей теоретического
плана, есть сложности практического
характера. Например, невозможность (а
точнее говоря, крайне высокая сложность)
осуществления человеческого
Целью данной работы является рассмотрение и классификация существующих методов построения тетраэдрических сеток в трехмерных областях. Ввиду значительного объема информации ниже рассматриваются только так называемые "прямые методы".
2. Прямые методы
Главными преимуществами прямых методов являются высокая скорость работы, надежность и простота реализации; основным недостатком - ограниченная область применения. Фактически, эффективно использовать прямые методы можно только для триангуляции самых простых областей - шара, параллелепипеда, цилиндра и т.п. Впрочем, нередко такие области являются частью некоторых сложных областей, и использование прямых методов вместо итерационных в этом случае позволяет существенно экономить машинные ресурсы и время. Кроме того, прямые методы могут использоваться также для триангуляции и геометрически сложных областей заданного типа, что, однако, требует индивидуального подхода к каждой задаче. При этом даже несмотря на то, что алгоритм получается адаптированным под заданную область, не всегда можно гарантировать хорошее качество сетки.
Сетки, построенные с помощью прямых методов, могут быть использованы и в итерационных методах. В первую очередь это касается методов граничной коррекции. Размещение узлов в методах на основе критерия Делоне нередко осуществляется с помощью одного из прямых алгоритмов (с последующей коррекцией).
Таким образом, несмотря на все ограничения, прямые методы все равно находят свое применение в дискретизации пространственных областей.
Важной особенностью сеток, построенных с помощью прямых методов, является их структурированность. Структурированные сетки имеют четкую топологию и позволяют ввести особую индексацию вершин. Таким образом, зная только индексы узла, можно легко определить всех его соседей (иными словами, инцидентные ему узлы, т.е. все узлы, с которыми у него есть общее ребро), а также вычислить его координаты.
Рассмотрим,
например, так называемую "кубическую
сетку", то есть сетку, полученную разбиением
исходного параллелепипеда на равные
"кубы" (слово "куб" здесь
употребляется исключительно в
топологическом смысле, поскольку ребра
у такого "куба" необязательно
строго равны). Если размеры куба - hx, hy, hz, и
он ориентирован по осям координат, то
узел с индексами i,j,k имеет координаты
(Ox + i*hx, Oy + j*hy, Oz + k*
Таким
образом, нет необходимости хранить
в памяти ни координаты узла, ни список
его соседей. Аналогичную систему
индексации можно использовать и
для других структурированных сеток.
Помимо экономии ресурсов, структурированность
сетки заметно облегчает
Рис.
3. Кубическая сетка