Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Уч_мет_пособие_компьютерное_проектирование_ПС.doc
Скачиваний:
41
Добавлен:
17.03.2015
Размер:
2.04 Mб
Скачать

2.3 Конфигурирование решателя

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

Кнопка или команда [Solve Problem], доступная на вкладке [Solve] главной инструментальной панели FEMLAB, запускает решатель с текущими настройками. Кнопка или команда [Restart], находящаяся на той же вкладке, перезапускает решающее устройство, используя значения фазовых переменных, полученные в результате предыдущего решения задачи, в качестве начальных. Если мы рассматриваем стационарную задачу, то нажатие этой кнопки не должно менять решение. Колебания значений в этом случае говорят о нестабильности решения. Команду [Restart] целесообразно применять для сложных расчетов, когда получение точного решения сразу занимает много времени и системных ресурсов. В этом случае действенным способом ускорения решения является получение предварительного варианта решения на грубой сетке с использованием линейного или стационарного решателя, и последующее уточнение этого решения с использованием более мелкой сетки и нелинейного или переходного решателя.

Изменение параметров решателя осуществляется в окне «Solver parameters», появляющегося при нажатии кнопки или в результате выполнения одноименной команды на вкладке [Solve]. Данное окно показано на рисунке 2.4.

Конфигурирование решателя начинается с выбора его типа, что может выполняться автоматически, о чем свидетельствует наличие галочки в поле {Auto select solver}, а также в ручном режиме, используя опцию {Solver:}. Для простых задач менять тип решателя, который программа подобрала сама в зависимости от прикладного режима, не требуется. Однако если необходимость в этом все-таки возникла, то в первую очередь необходимо определиться стационарный или переходный процесс мы изучаем. Если процесс нестационарный, то в подавляющем большинстве случаев подходит тип “Time Dependent”.

Рисунок 2.4 – Окно параметров решателя

Для очень редких задач, связанных с нахождением собственных чисел дифференциальных уравнений, например волнового уравнения теплопроводности, надо выбирать тип “Eigenvalue”.

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

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

Для линейных и нелинейных стационарных задач можно выбрать параметрический решатель, замечательный тем, что для решения задачи, отличающейся от предыдущей уже решенной каким либо геометрическим размером, физическим свойством сплошной среды или значением граничного условия, нет необходимости повторять все этапы решения – достаточно лишь ввести новое значение изменяющегося параметра в соответствующее поле решателя и выполнить расчет. Поэтому при использовании данного типа решателя в поле {Name of parameter:} необходимо указать параметр, для которого предполагается задавать ряд значений, перечисляемых в поле {List of parameter values}. В качестве такого параметра можно задать давление на выходе из расчетной области, что полезно при установлении зависимости расхода от перепада давления, необходимой для решения задач буровой технологии.

После выбора типа решателя опцией {Solver}, задаем его основные свойства на вкладке [General], как это показано на рисунке 2.4. Для типа решателя “Time Dependent” на этой вкладке устанавливается опция {Time stepping} (шаги по времени), для которой параметром {Times:} задаются временные слои в формате начальный момент:шаг:конечный момент, а также параметрами {Relative tolerance:} и {Absolute tolerance:} определяется относительная и абсолютная ошибки на каждом временном шаге. Установка галочки в поле {Allow complex numbers} позволяет применять в расчетах комплексные числа, что необходимо при задании коэффициентов дифференциальных уравнений в комплексном виде.

На вкладке [Time Stepping] параметром {Times to store in output:}устанавливаются моменты времени, для которых будет выводиться решение, в том числе настраивается их автоматический выбор самим решателем. Значение этого параметра по умолчанию – “Specified Times”, то есть будут выведены решения для моментов времени, определённых на вкладке General. Для того чтобы увидеть результаты вычислений для всех шагов решающего устройства надо выбрать “Time steps from solver”. Вообще, решающее устройство выбирает шаги самостоятельно в зависимости от динамики решения, то есть игнорирует их значения, заданные на вкладке [General]. Чтобы решающее устройство учитывало этот список, например, если внешние воздействия импульсные и решатель может «проскочить» мимо них, необходимо установить значение параметра {Time steps taken by solver:} “Strict” – тогда решатель будет использовать только эти шаги, или “Intermediate” – решатель будет использовать как свободные шаги, так и шаги, перечисленные на вкладке General. Значение этого параметра по умолчанию “Free”, т.е. допускаются только свободные шаги. Если надо принудительно задать шаг по времени нужного размера, то это делается посредством опции {Manual tuning of step size}.

Для типа решателя “Eigenvalue” необходимо задать количество собственных чисел уравнения параметром {Desired number of eigenvalues:}, а также параметром {Search for eigenvalues around:}определяется область их поиска.

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

Для всех режимов, кроме режима «Time Dependent», можно установить галочку напротив параметра {Adaption}, что позволяет уточнить сетку на основе уже полученного решения. Это рекомендуется делать, если физика и геометрия достаточно сложна, и не очень ясно как задавать параметры сетки. Однако время вычислений с адаптивной сеткой больше, нежели с простой.

Если расчетная матрица симметрична, то можно ускорить расчет, установив опцию {Matrix symmetry} в значение “Symmetric”. Чаще всего матрицы симметричны в задчах чистой кондукции или диффузии. Матрицы заведомо несимметричны в мультифизических моделях, моделях связанных с конвекцией или уравнением Навье-Стокса.

Какая бы задача не рассматривалась, при решении она сводится к системам линейных уравнений. Большая часть времени расчета уходит на решение этих систем, чем занимается вычислитель корней систем линейных уравнений, являющийся частью решателя «FEMLAB». Конкретный вид вычислителя определяется опцией {Linear system solver}, которая может принимать следующие значения: а) “Direct (UMFPACK)”; б) “Direct (SPOOLES)”; в) “Cholesky (TAUCS)”; г) “Conjugate Gradients”. По умолчанию стоит “Direct (UMFPACK)”, который является наиболее устойчивым, но отнимает много ресурсов компьютера, поэтому для моделей требующих длительного расчета стоит попытаться воспользоваться альтернативным решателем. В частности, если решатель “Direct (UMFPACK)” не работает или работает недопустимо долго, имеет смысл задействовать решатель “Direct (SPOOLES)”, так как он требует меньше оперативной памяти, однако при этом могут появиться проблемы со стабильностью решения. В крайнем случае, выбирается итеративный решатель “GMRES”, характеризующийся наихудшей сходимостью. Для положительно определенных систем с симметричными матрицами оптимальный результат дает решатель “Direct Cholesky (TAUCS)” или итеративный “Conjugate Gradients”.