«OpenFOAM — открытая интегрируемая платформа для численного моделирования задач механики сплошной среды» — вот что отвечает нам Википедия на вопрос «Что такое OpenFOAM?».
Что все это значит я разберу в этой заметке.
Итак, представим, что вы инженер. У вас есть задание — рассчитать, к примеру, обтекание воздухом автомобиля. Вы берете специализированное ПО, формулируете задачу, решаете, интерпретируете результат.
Соответствующее ПО делится на платное и бесплатное. К последней категории относится OpenFOAM. Распространяется эта система под лицензией GNU-LGPL. Это значит, что код можно самостоятельно расширять и, что немаловажно, использовать в любых проектах, даже коммерческих.
Впрочем, расширение возможностей нас пока не интересует, для начала неплохо было бы просто научиться всем этим пользоваться.
Итак, смысл программы в следующем: на вход ей подаются некоторые начальные данные, она их обрабатывает и на выходе выдает распределение искомых величин во времени и пространстве.
Теперь рассмотрим какие необходимы начальные данные:
Ну вот, самое важное перечислил. Есть еще всякие мелочи, типа настроек выходных данных, но пока останавливаться на них не стоит, разберемся с главным. Пройдемся по пунктам подробнее.
Систему уравнений явно задавать, как правило, не требуется — это одни и те же законы сохранения. Достаточно выбрать правильный решатель.
Сетка создается в других программах, например, blockMesh или SALOME. Вообще, создание сетки — тема для долгой и обстоятельной беседы.
Начальные условия — распределения искомых величин в начале рассчета. Все проще некуда.
Граничные условия — поведение искомых величин на границах. Поскольку величины могут вести себя на границах очень непросто, существует много типов ГУ. Наиболее употребимых, впрочем, немного.
Свойства объектов зависят от задачи — для упомянутого выше примера с обтеканием машины это будут термофизические свойства воздуха. Тут есть где развернуться.
С методами аппроксимации тоже полный порядок — есть наиболее известные, правда, максимум второго порядка точности. Считается, что инженерам этого достаточно и что дальнейшее увеличение точности несопоставимо с расходами на вычисление.
Все параметры лежат в виде текста в файлах и ждут, когда их начнут изменять. Исключением может быть сетка, хотя и ее можно описать в текстовом виде для blockMesh.
В завершение этого во всех смыслах начального поста скажу, что OpenFOAM имеет внушительную базу примеров — именно с их изучения и стоит начать осваивать эту славную систему.
Если сообществу будет интересно — продолжу публикацию статей про OF.
Что все это значит я разберу в этой заметке.
Итак, представим, что вы инженер. У вас есть задание — рассчитать, к примеру, обтекание воздухом автомобиля. Вы берете специализированное ПО, формулируете задачу, решаете, интерпретируете результат.
Соответствующее ПО делится на платное и бесплатное. К последней категории относится OpenFOAM. Распространяется эта система под лицензией GNU-LGPL. Это значит, что код можно самостоятельно расширять и, что немаловажно, использовать в любых проектах, даже коммерческих.
Впрочем, расширение возможностей нас пока не интересует, для начала неплохо было бы просто научиться всем этим пользоваться.
Итак, смысл программы в следующем: на вход ей подаются некоторые начальные данные, она их обрабатывает и на выходе выдает распределение искомых величин во времени и пространстве.
Теперь рассмотрим какие необходимы начальные данные:
- Система уравнений для решения, диктуемая исходной задачей;
- Сетка, на которой будет рассчитываться решение;
- Начальные условия;
- Граничные условия;
- Свойства объектов, важные для рассчета;
- Настройки методов аппроскимации исходных ДУ.
Ну вот, самое важное перечислил. Есть еще всякие мелочи, типа настроек выходных данных, но пока останавливаться на них не стоит, разберемся с главным. Пройдемся по пунктам подробнее.
Систему уравнений явно задавать, как правило, не требуется — это одни и те же законы сохранения. Достаточно выбрать правильный решатель.
Сетка создается в других программах, например, blockMesh или SALOME. Вообще, создание сетки — тема для долгой и обстоятельной беседы.
Начальные условия — распределения искомых величин в начале рассчета. Все проще некуда.
Граничные условия — поведение искомых величин на границах. Поскольку величины могут вести себя на границах очень непросто, существует много типов ГУ. Наиболее употребимых, впрочем, немного.
Свойства объектов зависят от задачи — для упомянутого выше примера с обтеканием машины это будут термофизические свойства воздуха. Тут есть где развернуться.
С методами аппроксимации тоже полный порядок — есть наиболее известные, правда, максимум второго порядка точности. Считается, что инженерам этого достаточно и что дальнейшее увеличение точности несопоставимо с расходами на вычисление.
Все параметры лежат в виде текста в файлах и ждут, когда их начнут изменять. Исключением может быть сетка, хотя и ее можно описать в текстовом виде для blockMesh.
В завершение этого во всех смыслах начального поста скажу, что OpenFOAM имеет внушительную базу примеров — именно с их изучения и стоит начать осваивать эту славную систему.
Если сообществу будет интересно — продолжу публикацию статей про OF.