Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3364

.pdf
Скачиваний:
4
Добавлен:
15.11.2022
Размер:
4.51 Mб
Скачать

рационными методами (BiCGStab, CG, FGMRES, GMRES, GMG).

MUMPS (MUltiftontal Massively Parallel sparse direct Solver) – решает разреженную систему линейных уравнений обще-

го вида

(=

. Для решения используется LU-разложение

матрицы

– треугольная,

– ортогональная). Содержит

предобусловленные алгоритмы перестановки столбцов матрицы , так, чтобы множители в разложении имели как можно меньше ненулевых элементов. Имеет функции использования внешней памяти, т.е. множители разложения сохраняются на жёсткий диск. Это разгружает внутреннюю память, но занимает больше времени, так как необходимо дополнительное время для записи на диск и считывания с него. В версии 4.2 этот решатель является решателем по умолчанию. В более ранних версиях (3.5) он отсутствует.

PARDISO (PARallel sparse DIrect Solver) – отличие этого решателя от предыдущего заключается в том, что для улучшения выполнения матричного разложения, алгоритм решателя использует BLAS (Basic Linear Algebra Subprogram) 3 уровня.

Также, имеется алгоритм для избежания поиска главного элемента матрицы. Так же, как и в предыдущем решателе, имеется функция использования внешней памяти. В версии 3.5 такой функции не было, вместо этого вводился ещё один тип решателя, PARDISO out-of-core.

SPOOLES (SParse Object Oriented Linear Equations Solver)

– решает разреженную систему линейных уравнений общего

вида

=

с помощью мультифронтального метода и прямо-

го LU-

 

 

 

разложения матрицы . Когда матрица симметричная

или эрмитова, то используется

-разложение, что позволя-

ет экономить половину памяти.

 

 

UMFPACK (Unsymmetric MultiFrontal solver) – решает

разреженную систему линейных уравнений

общего вида

=

. Для решения используется несимметричный мультиф-

 

ронтальный метод и LU-разложение матрицы

. Алгоритм ре-

шателя использует BLAS 3-го уровня. Так же, как и предыду-

81

щие решатели, содержит алгоритмы для перемещения столбцов исходной матрицы для минимализации ненулевых элементов в матрицах-множителях. Используется для решения несимметричных систем. В версии 3.5 является решателем по умолчанию, в 4.2 данный решатель отсутствует.

TAUCS Cholesky – решает разреженную систему линейных уравнений общего вида = , где – положительно определённая симметричная матрица. Для решения используется мультифронтальное разложение Холецкого. Алгоритм решателя использует BLAS 3-го уровня. Так же, как и предыдущие решатели, содержит алгоритмы для перемещения столбцов исходной матрицы для минимализации ненулевых элементов в матрицах-множителях. Используется для решения несимметричных систем. В версии 4.2 данный решатель отсутствует.

Если в версии 3.5 при использовании решателя UMFPACK заканчивается память или процесс факторизации матрицы замедляется, то следует воспользоваться решателем SPOOLES. Он использует меньше памяти, но менее устойчив и медленнее сходится. Если система симметричная, комплексносимметричная или эрмитова, то лучше воспользоваться решателями PARDISO или SPOOLES, которые хранят только часть матрицы выше главной диагонали и, соответственно требуют в 2 раза меньше памяти. Если система к тому же положительно определена, можно также воспользоваться решателем TAUCS Cholesky.

Если же это не помогает и при решении прямым решателем не хватает памяти или же решение сходится слишком медленно, следует воспользоваться итерационными решателями.

GMRES (Generalized Minimum RESidual) – итерационный метод для решения системы общего вида = . Для корректной работы необходимо задать число итераций, которые решатель делает перед перезапуском. Чем большее число итераций задано, тем более устойчивой будет задача. С другой стороны, это увеличивает потребление памяти и время счёта.

82

FGMRES (Flexible Generalized Minimum RESidual) – ите-

рационный метод для решения системы общего вида = . Является усовершенствованной версией решателя GMRES, так как позволяет задать более широкий класс предобуславливателей. Так, в качестве предобуславливателя можно задать любой итерационный решатель. Как следствие, этот решатель более устойчив, но требует примерно в 2 раза больше памяти, чем решатель GMRES при одинаковом числе итераций перед запуском.

Conjugate gradients – итерационный метод сопряжённых

градиентов. Решает систему уравнений вида

 

, где – по-

ложительно определённая симметричная или

эрмитова матрица.

=

 

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

BiCGStab (BiConjugate Gradient Stabilized) – обобщённый стабилизированный метод бисопряжённых градиентов. В от-

личие от сопряжённых градиентов решает систему = для любого вида матрицы . Время, потраченное на одну итерацию в этом решателе постоянное. Объём памяти, требуемый при решении задач при помощи этого решателя примерно равен объёму памяти, требуемому на 2 итерации при решении решателем GMRES, т.е. в большинстве случаев данный решатель требует меньше памяти, чем GMRES. Недостатками этого решателя по сравнению с GMRES является тот факт, что промежуточные невязки могут быть того же порядка, что и начальные или даже превосходить их, что в конечном счёте может сказаться на точности и скорости сходимости.

Если система положительно определена и симметрична (или эрмитова), то следует воспользоваться решателем Conjugate gradients, который требует меньше памяти и в некоторых случаях быстрее, чем остальные итерационные решатели. Кроме того, в этом случае можно применить решатель

83

SPOOLES, который требует меньше памяти, но менее устойчив и более медленный.

При решении задач физического характера в рамках базового модуля можно использовать два подхода: математический и физико-математический.

В первом случае необходимо самостоятельно выбрать форму записи и тип решаемой задачи из списка:

стационарная;

нестационарная;

на собственные значения.

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

При физико-математическом подходе предлагаются про- блемно-ориентированные интерфейсы для решения краевых задач из следующих разделов физики:

акустика (2D, 3D);

электростатика (2D, 3D) и магнитостатика (2D);

электрическое поле постоянного тока в проводящей среде (2D, 3D);

квазистационарное электромагнитное поле (2D);

конвекция и диффузия (1D, 2D, 3D);

распространение тепла (1D, 2D, 3D);

динамика несжимаемой жидкости (2D, 3D);

механика деформируемых тел (2D, 3D).

Большим достоинством COMSOL Multiphysics является возможность произвольно сочетать любое количество нелинейных физических процессов. При этом задачи из различных областей решаются одновременно в одной модели, а не последовательно, что ведет к ускорению процесса моделирования и, что более важно, улучшает сходимость. Однако это приводит к существенному увеличению числа степеней свободы (несколько миллионов и более) дискретной конечно-элементной модели исследуемого явления и к необходимости использования компьютерных кластеров (поддерживается в последних верси-

ях COMSOL Multiphysics).

84

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

COMSOL Multiphysics.

В1D-геометрии это точка (определяется путём задания координат, в случае если необходимо получить несколько точек, координаты задаются через запятую или пробел) и отрезок (определяется путём задания координат левого и правого концов отрезка, в случае если необходимо получить несколько отрезков, координаты концов задаются через запятую или пробел).

В2D-геометрии возможно задание следующих примити-

вов:

ломаная Безье – ломаная, звенья которой – кривые Безье первого, второго и третьего порядков. Для каждого из звеньев необходимо задать 2, 3 и 4 контрольные точки соответственно и соответствующие веса. Можно создавать как открытую, так и замкнутую ломаную, либо твёрдое тело, границей которого является ломаная;

окружность – задаётся либо окружность (путём выбора тип-кривая) или круг (путём выбора тип-твёрдое тело) с заданным радиусом, координатами базовой точки – центра или левого нижнего угла квадрата, описывающего круг, и секторным углом. Последняя опция позволяет задавать круг с вырезом, соответствующим секторному углу, равному дополнению заданного угла до полного угла. Также можно задавать угол вращения круга вокруг базовой точки;

эллипс – аналогично окружности, только в этом случае вместо радиуса задаются большая и малая полуоси эллипса;

параметрическая кривая – задаётся параметрическая кривая путём задания параметра, пределов его изменения и выражения координат через этот параметр. Начало координат может быть перенесено в любую точку с указанными координатами. Также возможно вращение кривой вокруг этой точки.

85

COMSOL получает вид кривой путём интерполяции B- сплайнами. Число узлов интерполяции ограничивается либо задаваемой пользователем относительной точности, либо путём задания максимального числа узлов;

точка;

ломаная – упрощённый вариант примитива «ломаная Безье». Все звенья в данном случае являются отрезками. Задаётся путём задания координат вершин ломаной;

прямоугольник – задаётся прямоугольник (если выбрано тип-твёрдое тело) или его граница (если выбрано типкривая). Задаваемые параметры – ширина и высота, координаты базовой точки (центра или левого нижнего угла) и угол вращения относительно базовой точки;

квадрат – аналогично прямоугольнику, только в данном случае задаётся только одна сторона квадрата.

В 3D-геометрии задаются следующие примитивы:

ломаная Безье – отличается от двумерного случая невозможностью задать твёрдое тело, ограниченное ломаной;

параллелепипед - задаётся параллелепипед (если выбрано тип-твёрдое тело) или его граница (если выбрано типповерхность). Задаваемые параметры – длина, ширина и высота, базовая точка – вершина с наименьшими координатами или центр, орт оси, параллельной высоте параллелепипеда (здесь и далее орт оси можно задавать как в декартовых, так и в сферических координатах), а также угол вращения параллелепипеда вокруг этой оси;

конус – задаётся конус или усечённый конус (если выбрано тип-твёрдое тело) или его граница (если выбрано типповерхность). Задаваемые параметры – радиус основания, высота, угол между образующей и высотой (либо радиус верхнего сечения), координаты центра основания, орт оси конуса и угол вращения конуса вокруг его оси;

цилиндр – задаётся цилиндр (если выбрано тип-твёрдое тело) или его граница (если выбрано тип-поверхность). Задаваемые параметры – радиус основания, высота, координаты

86

центра основания, орт оси цилиндра и угол вращения цилиндра вокруг его оси;

наклонный конус – задаётся наклонный конус или усечённый конус с эллиптическим основанием (если выбрано типтвёрдое тело) или его граница (если выбрано типповерхность). Задаются большая и малая полуоси эллипса – основания конуса, центр основания, высота конуса, отношение периметра вершины и основания и смещение вершины (в случае усечённого конуса смещение центра эллипса) в плоскости, параллельной основанию вдоль двух осей, связанных с основанием, орт оси конуса, перпендикулярной основанию и угол вращения конуса вокруг этой оси;

эллипсоид – задаётся эллипсоид (если выбрано типтвёрдое тело) или его граница (если выбрано типповерхность). Задаются три полуоси эллипсоида, его центр, орт оси, параллельной третьей полуоси эллипсоида и угол вращения эллипсоида вокруг этой оси;

спираль – задаётся спираль (если выбрано тип-твёрдое тело) или её граница (если выбрано тип-поверхность). Задаваемые параметры спирали – число витков, 2 радиуса – большой (расстояние от оси спирали до центра круга – сечения спирали в первом витке) и малый (радиус сечения спирали), осевой шаг спирали (расстояние между соответствующими точками соседних витков), радиальный шаг спирали (разность радиусов соседних витков), хиральность – направление закручивания спирали (по правилу правого или левого винта), геометрия концов спирали – параллельно оси спирали, перпендикулярно оси спирали или перпендикулярно сердцевине спирали. Также необходимо задать орт оси спирали и угол вращения вокруг этой оси и координаты центра первого витка. Геометрическое представление спирали в COMSOL Multiphysics задаётся двумя способами: при помощи кривых Безье и при помощи сплайнов. Разница состоит в том, что при представлении спирали посредством кривых Безье края, являющиеся пересечением поверхностей, формирующих спираль, являются видимыми, в

87

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

шестигранник – задаётся шестигранник (если выбрано тип-твёрдое тело) или его граница (если выбрано тип-поверх- ность) путём задания координат всех восьми вершин фигуры;

параметрическая кривая – аналогично 2D-случаю, только в 3D для определения вращения кривой необходимо задать ещё и орт оси вращения;

параметрическая поверхность – задание осуществляется таким же образом, как и в случае параметрической кривой в 3D с тем отличием, что в поверхность параметризуется при помощи двух параметров;

точка;

ломаная – отличается от двумерного случая невозможностью задать твёрдое тело, ограниченное ломаной;

пирамида – задаётся прямоугольная пирамида или усечённая пирамида (если выбрано тип-твёрдое тело) или её граница (если выбрано тип-поверхность). Задаваемые параметры

стороны прямоугольника-основания, координаты его центра, высота пирамиды, отношение периметра вершин к периметру основания, смещение вершины относительно центра основания (в случае усечённой вершины смещение центра верхнего прямоугольника) вдоль двух осей, связанных с основанием. Задаётся также орт оси, перпендикулярной основанию пирамиды и угол вращения пирамиды вокруг этой оси;

сфера/шар – задаётся либо сфера (путём выбора типповерхность) или шар (путём выбора тип-твёрдое тело). Задаваемые параметры – координаты центра, радиус, орт третьей оси системы координат, жёстко связанной со сферой, и угол вращения сферы вокруг этой оси;

тетраэдр – задаётся тетраэдр (если выбрано типтвёрдое тело) или его граница (если выбрано тип-поверхность) путём задания координат четырёх его вершин;

88

тор – задаётся тетраэдр (если выбрано тип-твёрдое тело) или его граница (если выбрано тип-поверхность). Задаваемые параметры – большой радиус (расстояние от центра тора до центра круга, являющегося сечением тора перпендикулярной плоскостью), малый радиус (радиус круга-сечения), угол вращения (угол вращения сечения тора вокруг его оси), центр тора, орт оси вращения тора и угол его вращения вокруг оси.

Для создания из примитивов объектов более сложных форм в COMSOL применяются различные геометрические операции.

Например, в 3D-геометрию можно создавать, используя рабочую плоскость. Рабочая плоскость определяется пользователем, существует несколько способов её задания. После создания рабочей плоскости в ней создаётся 2D-геометрия, которая превращается в 3D путём операций вытягивания и вращения. По умолчанию вытягивание происходит в направлении, перпендикулярном рабочей плоскости на заданное расстояние (так, например, из прямоугольника получается параллелепипед, из круга – цилиндр и т.д.). Для создания более сложных объектов при вытягивании можно производить масштабирование, смещение или вращение. Вращение позволяет создавать поверхности вращения из 2D-объектов. Для этого необходимо задать вращаемый объект, ось вращения (точку на оси и орт оси), а также угол вращения вокруг этой оси.

Для создания композитных объектов используются булевы операции, такие, как вычитание (позволяет вырезать из одного объекта другой), пересечение (позволяет создавать объект, являющийся пересечением двух фигур), объединение. Также можно вручную записать формулу для создания нужной фигуры, используя вышеупомянутые операции.

Для линейных трансформаций объектов используются такие операции, как массив (создаётся одномерный, двумерный или трёхмерный массив объектов, путём копий выбранного объекта с заданными смещениями), копирование (создаются копии исходного объекта, смещённые относительно исходного

89

на заданные расстояния), зеркальное отражение (задаётся отражаемый объект, нормаль к плоскости(3D)/линии(2D) симметрии и точка, принадлежащая плоскости/линии симметрии; в 1D задаётся координата точки, относительно которой происходит отражение), перемещение (отличается от копирования тем, что исходный объект не сохраняется), вращение (исходный заданный объект поворачивается вокруг оси, которая задаётся путём задания орта оси и точки на ней (3D) и только орта в 2D) на заданный угол; можно задать сколько угодно углов поворота для создания необходимого количества копий) и масштабирование (исходный объект расширяется или сжимается относительно неподвижной точки с заданными координатами; масштабирование может быть как изотропным (масштабный коэффициент одинаков для всех осей), так и анизотропным (масштабные коэффициенты для разных осей различны)).

Ещё одним видом геометрических операций являются трансформации объектов. Существуют 4 вида преобразований: преобразование в твёрдое тело (из поверхности в 3D или из кривой в 2D), преобразование в поверхность (только для 3D из твёрдого тела), преобразование в кривую (из твёрдого тела в 2D, из поверхности или из твёрдого тела в 3D), преобразование в набор точек.

Среди остальных операций можно выделить обрезание углов (в 2D), сглаживание углов (в 2D), модификация объекта (модификация кривых и точек в 2D-геометрии), удаление областей, поверхностей (3D), кривых или точек, разделение объекта на соответствующие части и проведение касательных к кривым в 2D.

Помимо геометрического моделлера, в COMSOL Multiphysics входит мощный конечно-элементный разбивщик.

В 1D-геометриях области, представляющие собой отрезки, разбиваются на подобласти (подотрезки). Каждый подотрезок называется элементом разбиения, его границы называются точками разбиения, а точки, являющиеся границами большого отрезка, называются граничными элементами (или точечными элементами).

90

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]