Шаг сохранения состояния расчета SAVE
Назначение параметра SAVE
Параметр SAVE предназначен для периодического сохранения текущего состояния расчета в процессе интегрирования.
Основная задача данного параметра — обеспечить возможность восстановления расчета в случае возникновения непредвиденных ситуаций:
- сбоя операционной системы;
- отключения электропитания;
- аварийного завершения работы программы;
- отказа оборудования;
- принудительного прерывания расчета пользователем.
Особенно полезно использовать параметр SAVE при выполнении длительных расчетов, когда время моделирования может составлять часы или даже сутки.
Принцип работы
Во время расчета программа интегрирования через заданные промежутки времени сохраняет информацию о текущем состоянии модели.
В сохраненное состояние входят:
- текущее время расчета;
- значения переменных модели;
- состояние интегратора;
- информация, необходимая для продолжения расчета без повторного прохождения уже рассчитанного участка.
Если расчет завершился аварийно, сохраненные данные позволяют продолжить моделирование с последней сохраненной точки, а не запускать весь расчет заново.
Параметр SAVE
Параметр задает интервал времени между двумя последовательными сохранениями состояния расчета.
Например:
SAVE = 10
означает, что программа будет выполнять сохранение состояния через каждые 10 единиц модельного времени.
Чем меньше значение SAVE, тем чаще выполняется сохранение.
При этом следует учитывать, что слишком частое сохранение:
- увеличивает объем служебных файлов;
- может незначительно замедлять расчет.
Поэтому обычно параметр выбирают исходя из длительности расчета и допустимой потери результатов в случае сбоя.
Когда рекомендуется использовать SAVE
Использование параметра SAVE особенно рекомендуется в следующих случаях:
Длительные расчеты
Если расчет выполняется продолжительное время, потеря результатов может оказаться весьма затратной.
В таких ситуациях периодическое сохранение состояния позволяет избежать повторного выполнения большого объема вычислений.
Сложные нелинейные модели
Для моделей с:
- контактным взаимодействием;
- сухим трением;
- большим количеством степеней свободы;
- сложными гидравлическими или механическими системами
время расчета может существенно возрастать, поэтому использование SAVE становится особенно полезным.
Выполнение расчетов на нестабильном оборудовании
Если существует риск:
- отключения питания;
- перезагрузки компьютера;
- завершения работы программы по внешним причинам,
рекомендуется заранее предусмотреть возможность восстановления расчета.
Автоматическое сохранение при завершении расчета
Если программа интегрирования завершает работу корректно:
- по достижении времени END;
- по команде пользователя;
- при штатном завершении расчета,
необходимая информация о состоянии расчета сохраняется автоматически.
Дополнительных действий со стороны пользователя в этом случае не требуется.
Практические рекомендации
Когда использовать SAVE
Рекомендуется задавать параметр SAVE для:
- длительных расчетов;
- ресурсоемких моделей;
- расчетов, выполняемых на удаленных вычислительных узлах;
- задач, повторный запуск которых может привести к существенным потерям времени.
Когда SAVE обычно не требуется
Для небольших моделей с временем расчета в несколько секунд или минут использование параметра SAVE чаще всего не требуется.
В таких случаях возможная потеря результатов не приводит к существенным затратам времени.
Основные выводы
- Параметр SAVE задает интервал сохранения текущего состояния расчета.
- Основное назначение параметра — защита от потери результатов при аварийном завершении работы.
- Использование SAVE особенно полезно для длительных и вычислительно сложных расчетов.
- При штатном завершении расчета сохранение состояния выполняется без дополнительных действий пользователя.
Управление выводом отладочной информации по модели DEBUG
Назначение параметра DEBUG
Параметр DEBUG предназначен для вывода диагностической информации о работе программы интегрирования.
Обычно он используется при анализе сложных расчетов, когда необходимо выяснить:
- почему происходит потеря шагов интегрирования;
- почему не сходится решение системы нелинейных уравнений;
- какая степень свободы вызывает проблемы при расчете;
- какая модель элемента влияет на устойчивость расчета;
- по какой причине программа уменьшает шаг интегрирования.
В большинстве стандартных расчетов использовать параметр DEBUG не требуется.
Однако при отладке сложных моделей он позволяет получить подробную информацию о работе вычислительного алгоритма.
Какие данные выводятся
С помощью параметра DEBUG можно получать информацию двух типов:
Решение системы нелинейных уравнений
Выводятся данные о работе метода Ньютона:
- номер итерации;
- показатели сходимости;
- величина невязки;
- изменения переменных на каждой итерации;
- причины потери шага из-за несходимости.
Такой режим используется при анализе параметров:
- ITR;
- DABSI;
- DRLTI;
- DABSU;
- DRLTU;
- SECOND.
Контроль локальной погрешности
Выводятся данные, связанные с оценкой локальной погрешности интегрирования:
- прогнозное значение переменной;
- скорректированное значение;
- величина локальной погрешности;
- причины уменьшения шага интегрирования.
Такой режим особенно полезен при настройке параметров:
- DABSX;
- DRLTX;
- CONTROL;
- PREDICT;
- SMIN;
- SMAX.
Как задается параметр DEBUG
Параметр имеет вид:
DEBUG = NNNNLP
где:
- NNNN — номер внутренней степени свободы или узла;
- L — уровень детализации вывода;
- P — тип выводимой информации.
Основные режимы DEBUG
DEBUG = 2
Вывод информации по контролю локальной погрешности для всех степеней свободы на каждом шаге расчета.
Используется для анализа работы адаптивного шага интегрирования.
DEBUG = 11
Вывод информации о решении системы нелинейных уравнений только для тех шагов, на которых не удалось достичь сходимости.
Обычно именно с этого режима начинают поиск причин проблем со сходимостью.
DEBUG = 12
Вывод информации только для шагов, потерянных по критерию локальной погрешности.
Позволяет понять, почему программа уменьшает шаг интегрирования.
DEBUG = 2413
Вывод информации по узлу с внутренним номером 24:
- по несходимости системы нелинейных уравнений;
- по контролю локальной погрешности.
Используется для детального анализа конкретной степени свободы.
При анализе отладочных сообщений следует учитывать следующие особенности:
- Отладочная информация выводится во внутренней нумерации модели, а не в пользовательской.
- После формирования расчетной схемы программа выполняет перенумерацию степеней свободы для повышения эффективности вычислений.
- В результате номера узлов, указанные в сообщениях DEBUG, могут не совпадать с номерами узлов, заданными пользователем при создании модели.
- Для определения соответствия между:
- пользовательской нумерацией;
- внутренней нумерацией программы,необходимо сформировать карту модели с помощью команды:
#MAP
- Полученная карта позволяет сопоставить номера узлов из сообщений DEBUG с узлами исходной модели.
Пример модели из документации
Для демонстрации работы параметра DEBUG в документации используется модель падения монеты на упругое основание, рассмотренная ранее в разделе о параметрах:
- ITR;
- DABSI;
- SECOND.
Рис.1. Тестовый пример для иллюстрации влияния на результаты расчета параметров DABSI, DABSX, SECOND.
Монета представлена набором упругих треугольных элементов и взаимодействует с основанием через контактный элемент.
В качестве контролируемых величин анализируются:
- перемещение центра тяжести монеты;
- разность перемещений точек A и D по оси Y.
Последняя величина позволяет оценивать влияние погрешностей решения системы нелинейных уравнений на симметрию решения.
Отладка процесса решения системы нелинейных уравнений
Если расчет завершается сообщениями о несходимости, рекомендуется начать анализ с параметра:
DEBUG = 11
В этом режиме программа выводит информацию только для шагов, на которых не удалось достичь сходимости за разрешенное число итераций.
Для каждого проблемного шага отображаются:
- текущее время расчета;
- величина шага интегрирования;
- номер итерации;
- показатели сходимости;
- значения невязок.
По этим данным можно определить:
- действительно ли решение не сходится;
- либо программе просто не хватает разрешенного числа итераций.
Отладка локальной погрешности
Если проблема связана с потерей шагов по критерию локальной погрешности, рекомендуется использовать:
DEBUG = 12
В этом режиме отображаются:
- прогнозное значение переменной;
- скорректированное значение;
- величина локальной погрешности;
- показатель превышения допустимой погрешности.
По этим данным можно понять:
- почему программа уменьшает шаг;
- какие степени свободы влияют на выбор шага интегрирования;
- насколько корректно выбраны параметры DABSX и DRLTX.
Влияние параметра PREDICT
Отладочный вывод позволяет увидеть влияние параметра:
PREDICT
на формирование прогноза решения.
При:
$PREDICT = 0;
используется более простой прогноз по значениям предыдущего шага.
При:
$PREDICT = 1;
дополнительно учитывается изменение ускорения.
В зависимости от характера модели это может как улучшать, так и ухудшать статистику расчета.
Поэтому эффективность параметра рекомендуется оценивать по результатам конкретной задачи.
Практические рекомендации
Параметр DEBUG рекомендуется использовать только при анализе проблемных расчетов.
Обычно последовательность действий выглядит следующим образом:
- При несходимости СнЛУ использовать DEBUG=11.
- При потере шагов по локальной погрешности использовать DEBUG=12.
- При необходимости анализировать отдельную степень свободы через указание ее внутреннего номера.
- Для сопоставления внутренних номеров использовать карту модели (
#MAP).
Основные выводы
- Параметр DEBUG предназначен для вывода диагностической информации о работе интегратора.
- С его помощью можно анализировать как процесс решения системы нелинейных уравнений, так и контроль локальной погрешности.
- Для поиска причин несходимости обычно используется DEBUG=11.
- Для анализа потерь шагов по локальной погрешности используется DEBUG=12.
- Отладочный вывод использует внутреннюю нумерацию степеней свободы модели.
- Параметр особенно полезен при настройке сложных нелинейных расчетов и разработке новых моделей элементов.
