Как создать модель
Геометрия
Начальные Условия
Граничные Условия
Сетка
Решать
Визуализация
На главную
Продолжение следует...
Скачать файлы

Comsol 3.2 Femlab

Программа для решения серьёзных физических задач.

Fight AIDS at Home "Что это за глава?"
Эта глава методического руководства описывает общие принципы задания параметров решающего устройства

7. Решающее устройство

Выбор решающего устройства и его параметров очень важен, так как в основном от него зависит достоверность вычислений. Неправильная настройка может привести к грубым ошибкам решения, которые очень трудно выявить. Так же очень важно правильно оптимизировать решение, так как, к примеру, даже не очень сложная трехмерная модель элемента кассетной конструкции рассчитывается десятки минут на компьютере с процессором Athlon 64 3000+ и 1 Gb оперативной памяти, а некоторые нелинейные нестационарные модели могут рассчитываться многие часы даже на очень мощном компьютере.

Кнопка Solve или пункт меню Solve > Solve problem запускает решающее устройство с текущими настройками. Кнопка Restart или пункт меню Solve > Restart перезапускает решающее устройство используя текущие значения (поле температур или скоростей) как начальные. Если мы рассматриваем стационарную задачу, то нажатие этой кнопки не должно менять решение. Колебания значений в этом случае говорят о нестабильности решения. Эту команду целесообразно применять для сложных расчетов, когда можно получить приближенный вариант решения на грубой сетке и для линейного или стационарного решателя, а потом сделав более мелкую сетку и при необходимости изменив решатель на нелинейный или переходный пересчитать задачу. Зачастую это позволяет получить решение быстрее, чем сразу производя сложный расчет.

Для изменения параметров нажмем F 11 Solve > Solver parameters … или соответствующую кнопку. Откроется окно:

 

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

Выбирая решающее устройство, надо в первую очередь определиться стационарный или переходный процесс мы изучаем. Если процесс нестационарный, то в подавляющем большинстве случаев подходит решатель Time Dependent . Для очень редких задач, связанных с нахождением собственных чисел дифференциальных уравнений, например волнового уравнения теплопроводности, надо выбирать решатель Eigenvalue .

Если проблема стационарна, то надо определить линейна она или нелинейна. Если есть сомнения в линейности системы, то рекомендуется сразу устанавливать нелинейный решатель: если для линейной модели установить нелинейный решатель, то ответ будет корректен, но на вычисления затратится больше времени; а если для нелинейной задачи установить линейный решатель, то наверняка будут грубые ошибки.

=> Внимание. Если в заданных коэффициентах присутствуют переменные (например, теплоемкость или теплопроводность) для которых мы задали зависимость от температуры или от других переменных, то задача нелинейная. Все задачи в которых учитывается теплообмен излучением, то есть где С или Ctrans (константа Стефана-Больцмана) не равна нулю – нелинейные. Модели, которые задают в прикладном режиме Incompressible Navier-Stokes практически всегда нелинейные.

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

После выбора решателя в поле Solver , задаем основные свойства.

Для Time Dependent на вкладке General это Time stepping [шаги по времени] в поле Times в формате 0:10: 60 задаются временные слои. Здесь, от 0 до 60 секунд с промежутком 10 секунд. Единица измерения времени секунда, она устанавливается в Physics > Subdomain Settings в поле Time scaling coefficient . Если вместо 1 задать 1/60 , то единица измерения времени будет равна 1 минуте. Поля tolerance определяют ошибку на каждом шаге итерации. Галочка Allow complex number позволяет применять в расчетах комплексные числа это нужно в случаях, если мы задали коэффициенты PDE в комплексном виде. Вкладка Time Stepping определяет шаги по времени . Пункт Times to store in output определяет какие временные шаги будут выводится для постобработки вычислений. По умолчанию стоит Specified Times , то есть времена определённые на вкладке General . Для того чтобы получить значения всех шагов решающего устройства надо выбрать Time steps from solver . Вообще, решающее устройство выбирает шаги произвольно, в зависимости от динамики системы, то есть игнорирует заданные значения Times на вкладке General . Чтобы решающее устройство учитывало этот список (например, если внешние воздействия импульсные и решатель может «проскочить мимо них») надо установить Time steps taken by solver в значение Strict или Intermediate вместо стоящего по умолчанию Free . Если надо принудительно задать равномерный шаг по времени, то это делается в поле Manual Tuning of step size .

Для Eigenvalue необходимо задать количество собственных чисел уравнения в поле Desired number of eigenvalues и около каких значений искать собственные числа в поле Search for eigenvalues around .

Для параметрических решателей надо установить имя параметра, который будет изменяться в поле Name of parameter и значения которые он будет принимать в поле List of parameter values. Значения можно перечислить через пробел, задать в виде 0:10: 100 или задать как функцию linspace(1,100,25) , то есть двадцать пять значений равномерно расположенных от 1 до 100.

Для нелинейных решателей появляется вкладка Nonlinear где можно указать количество итераций, (по умолчанию стоит 25 ). Для сильно нелинейных проблем рекомендуется поставить галочку Highly nonlinear problem и увеличить количество итераций.

Для всех режимов кроме Time Dependent можно установить галочку Adaptive Mesh Refinement , тогда в процессе решения сетка будет уточнена по сложному алгоритму. Если физика и геометрия достаточно сложна, и не очень ясно как задавать параметры сетки, рекомендуется установить эту галочку. Но это увеличит время вычисления.

Кроме того, можно установить Matrix symmetry в значение Symmetric если наша матрица симметрична. Чаще всего это бывает, если мы рассматриваем процессы чистой кондукции или диффузии. При выборе соответствующего линейного решателя это ускорит расчет. Матрицы заведомо несимметричны в мультифизических моделях, моделях связанных с конвекцией или уравнением Навье-Стокса.

Большая часть времени расчета занята решением систем линейных уравнений, отвечает за их решение Linear system solver . По умолчанию стоит Direсt ( UMFPACK ) этот решатель отнимает много ресурсов компьютера и для моделей требующих длительного расчета можно подобрать более подходящий. Если предыдущий решатель не работает, можно попробовать Direct (SPOOLES ) он требует меньше памяти, но работает нестабильно. В крайнем случае выбирается итеративный решатель GMRES . Для положительно определенных систем с симметричными матрицами

[Способ определения положительно определенных систем с симметричными матрицами [symmetric, positive-definite systems] и методы настройки итеративных решателей подробно описаны в справке программы . ] в выбирается Direct Cholesky (TAUCS) или итеративный Conjugate Gradients . Итеративные решатели потребляют меньше памяти, но надо следить за тем, что они сходятся и в случае необходимости увеличивать количество итераций.

Уравнения чистой кондукции и чистой диффузии в стандартных режимах являются в стационарном состоянии эллиптическими, а в нестационарном параболическими. Для них очень эффективно использовать решатель Geometric multigrid .

После задания свойств нажимаем кнопку Solve или команду Solve > Solve Problem . Часто после получения решения, модель и её параметры (физические свойства и граничные условия) немного изменяются. И если эти изменения не очень велики, то можно использовать команду Solve > Update model , тогда задача пересчитываться не будет, а новые значения будут получены методом интерполяции. Так же можно нажать кнопку Restart , тогда задача пересчитается, но за начальные Init значения будут заданы те, которые были получены на прошлом этапе. Это может немного ускорить вычисления. Так же с помощью этой команды можно выявить нестабильность решения: если нажимая эту кнопку без изменения параметров модели мы получаем разные решения (осцилляции численного решения), то это говорит о нестабильности. В этом случае нужно уменьшить сетку или, если эта задача связана с конвекцией, применить Диффузионную стабилизацию в настройках физических свойств модели.

 

 



Last modified: 2005/12/01
©2005 Biryulin Gabriel, Heatlab, All Rights Reserved.
Дизайнер Comsol Page
Hosted by uCoz