При выполнении ответственных инженерных расчетов численными методами для обоснования корректности расчетных моделей рекомендуется применять процедуру верификации и валидации модели, разработанную и предложенную ведущими мировыми организациями в области инженерных расчетов - NAFEMS (International Association for the Engineering Modelling, Analysis and Simulation Community) и ASME (American Society of Mechanical Engineers).
Исследователь-расчетчик последовательно создает расчетную схему и два вида моделей – математическую и численную. Математическая модель — математическое представление реального объекта или системы. Численная модель - программный код, реализующий представление объекта или системы в форме, приближенной к алгоритмическому описанию, включающей набор данных, характеризующих свойства системы и динамику их изменения со временем.
Применительно к данным видам моделей для проверки их адекватности используются подход верификации и валидации. Верификация проводится в области математики, а валидация – в области физики.
Верификация
- Верификация – процесс установления соответствия между численной моделью и математической моделью.
Как следует из данного определения, процесс верификации позволяет достичь уверенности в корректности численной модели. Процесс верификации модели состоит из двух шагов:
- Верификация программного кода для подтверждения того, что математические модели и алгоритмы численного решения систем уравнений работают корректно;
- Верификация вычислений для подтверждения того, что дискретизация расчетной области выполнена корректно, и дискретное решение с необходимой степенью точности соответствует математической модели.
Верификация программного кода
Проведение верификации программного кода относится к области ответственности разработчика программного обеспечения, который должен использовать современные методики и системы управления качеством, а также проводить тщательное тестирование каждого релиза программного кода.
Пользователи программного обеспечения также должны осозновать, что несут часть ответственности за верификацию программного кода, даже в случаях, когда у них нет доступа к исходному коду. Одним из распространенных способов верификации программного кода является сравнение результатов расчета с аналитическим решением. Подобное сравнение является основным способом пользовательского тестирования. К сожалению, сложность большинства доступных аналитических решений задач физики затрудняет их использование даже для относительно стандартных возможностей большинства современных коммерческих программных продуктов. Сравнение численного и аналитического решений возможно только для простых - модельных и тестовых задач.
Верификация вычислений
Второй составляющей процесса верификации является верификация вычислений – определение точности численного решения для заданной дискретизации расчетной области. Численное и аналитическое решения apriori отличаются, поскольку дискретное решение является лишь аппроксимацией аналитического. Поэтому целью верификации вычислений является установление количественного значения погрешности для заданной дискретной модели.
Погрешности, связанные с дискретизацией, наиболее часто определяются путем сравнения полученного численного решения с другими численными решениями на двух дополнительных дискретных моделях (вычислительных сетках) с уменьшенным размером ячейки (элемента). Целью сравнений решений на различных сетках является определение практической сходимости решения в интересующей исследователя области. Основная ответственность за верификацию вычислений лежит на исследователе – пользователе программного продукта. При том, что разработчик программного кода, несомненно, должен отвечать за корректность разработанных алгоритмов, он не может нести ответственность за то, что созданная пользователем расчетная сетка (дискретная модель) будет достаточно качественной для достижения алгоритмической точности. Таким образом, за ошибки в расчетах вследствие грубой или некорректно созданной расчетной сетки, полностью отвечает пользователь программного продукта. Недостаточные исследования чувствительности численного решения к размеру элемента расчетной сетки являются наиболее часто встречающимся упущением исследователей при проведении расчетов численными методами, при том, что данная техника верификации достаточно проста для реализации.
Валидация
- Валидация – процесс определения степени соответствия расчетной модели реальному физическому объекту в рамках области планируемого использования данной модели.
Ни один из этапов верификации не позволяет определить, насколько выбранные модели адекватны объекту исследования. Оценка соответствия численной модели реальному миру относится к задачам валидации, которая позволяет определить, насколько физические явления и законы, включенные исследователем в расчетную модель, соответствуют постановке исходной задачи и достаточны для получения требуемых решений.
Способ взаимодействия физической и математической дисциплин в процессе верификации и валидации схематически представлен на рисунке.
После выбора расчетной схемы процесс верификации и валидации расходится на две ветви. Левая ветвь относится к области математического моделирования, а правая – к области физического эксперимента. В конечном итоге лишь физические наблюдения могут подтвердить или опровергнуть адекватность выбранной расчетной схемы и математической модели для представления объекта исследования. Тесное взаимодействие инженеров-расчетчиков и экспериментаторов требуется на всех стадиях процедуры верификации и валидации, т.к. математическая и физическая модели обязательно будут отличаться. Как простой пример, рассмотрим задачу нагружения балки, заделанной на одном конце. С точки зрения математика граничное условие заделки является тривиальным, но в физической лаборатории не существует оборудования, обеспечивающего такое явление как полная заделка, вследствие конечной жесткости оборудования и трехмерного характера физической модели, в отличие от математической модели балки. Таким образом, некоторые элементы расчетной схемы достаточно просто включить как в математическую, так и в физическую модель, а иные – гораздо сложнее. Для понимания природы этих расхождений и их возможного устранения должны проводиться предварительные расчеты, что отражено на схеме.
Также крайне важно, чтобы результаты эксперимента не были бы известны расчетчикам заранее, до получения численного решения. Основная причина этого – убедиться в "предсказательных возможностях" численной модели. Если результаты эксперимента известны расчетчику заранее, что естественным будет желание «настроить» модель на конкретный результат. Это снижает уровень доверия к численной модели.
Дополнительно важно отметить, что в моделировании и эксперименте важна роль неопределенности и, как следствие - повторяемости реузльтатов. Ожидается, что при проведении одного и того же эксперимента результаты должны в определенной степени коррелировать между собой. Степень корреляции необходимо измерять. Точно также любая численная модель содержит ряд параметров (например, свойства материалов), которые являются в реальном мире не детерминистическими, а стохастическими величинами. Соответственно, при проведении численного моделирования необходимо проводить оценку чувствительности решения к неопределенности исходных данных.
При подготовке статьи использованы материалы сайта www.nafems.org