CalculiX
CalculiX — открытый, свободный программный пакет, предназначенный для решения линейных и нелинейных трёхмерных задач механики твёрдого деформируемого тела и механики жидкости и газа с помощью метода конечных элементов. Распространяется под лицензией GNU General Public License. Авторы программы Guido Dhondt (модуль CCX — решатель) и Klaus Wittig (модуль CGX — пре-, постпроцессор) работают в холдинге MTU Aero Engines, производящем двигатели для самолётов. Изначально создавался для Linux, в настоящее время существуют сборки для Windows и MacOS. CalculiX входит в состав дистрибутива CAELinux.
CalculiX | |
---|---|
Тип | Метод конечных элементов |
Разработчик | Гидо Донт, Клаус Виттиг |
Написана на | Си и Фортран |
Операционная система | Linux, Windows |
Последняя версия | 2.17; (26 июля 2020) |
Лицензия | GPL |
Сайт | calculix.de |
CalculiX является мощным инструментом анализа, который предоставляет пользователю полный контроль над процессом анализа благодаря гибкости настройки конфигурации (прежде всего в исходниках). Разновидности решаемых задач, покрывающих большинство областей МКЭ, возможность изменять любые внутренние переменные по желанию пользователя.
Виды анализа
- Статический
- Частотный
- Потеря устойчивости
- Модальный
- Стационарный динамический
- Динамический прямым интегрированием
- Теплоперенос
- Акустика
- Shallow water motion
- Гидродинамическая смазка
- Irrotational incompressible inviscid flow
- Электростатика
- Stationary groundwater flow
- Диффузионный массоперенос
- Aerodynamic Networks
- Hydraulic Networks
- Турбулентное течение в открытом канале
- Трёхмерное уравнение Навье-Стокса для сжимаемого потока жидкости
Бегло взглянуть на возможности CalculiX позволяет фрагмент модели турбореактивного двигателя в карточке программы. Модель построили в начале 90-х гг. Andreas Funke и Klaus Wittig. КЭ-модель позволила определить скорость зажигания и верхнюю частоту вращения, соответствующую низкой усталости и ползучести. Дополнительно был проведён анализ на собственные частоты для оценки возможного резонанса лопаток. Модель, созданная циклическим вращением, посечена 20-узловыми квадратными редуцированными элементами. Материал компрессора — литьевой алюминиевый сплав AlSi — C355, турбина выполнена из термопрочного сплава Inco 713C. Оба нагружены центростремительными силами.
Препроцессор генеририрует данные как для CCX, так и CFD-данные для duns, ISAAC, OpenFOAM, а также входные input-файлы для коммерческих решателей NASTRAN, ANSYS, Abaqus, некоммерческого решателя code-aster. Препроцессор в состоянии генерировать сетку из файлов STL и др.
Существует отдельная сборка с патчем, задействующим CUDA и пост/препроцессор ParaView.[1][2][3] С дистрибутивом CAELinux поставляется пакет Calculix Wizard для переброски проекта из Salome в формат CCX. В Salome подготавливается необходимая геометрия и сетка, при необходимости устанавливают граничные условия и контактные ограничения.[3] Близкими возможностями обладает пакет CalculiXForWin. Свежий лаунчер для Win32 и Linux 32/64[4]. Благодаря высокой переносимости между разными архитектурами, что обеспечивается исходным программным кодом на Фортране, есть возможность скомпилировать ССХ для Android или настроить удалённый сервер на Debian[5]. Отмечено, что перенос CalculiX на архитектуру Эльбрус не сопровождался переписыванием участков кода, достаточно перекомпиляции исходного кода[6].
Документация поставляется непосредственно с исходниками, вместе с пакетом bConverged для Windows, и с пакетом CalculiXForWin[7]. На видеохостинге YouTube лежат обучающие видеоролики[8]. На форуме dwg.ru есть документация и статьи с обучающими примерами на русском. Техподдержка по возникающим вопросам проводится непосредственно разработчиками и активным сообществом на официальном канале https://calculix.discourse.group/ (ранее https://groups.yahoo.com/neo/groups/CALCULIX/info ). Верификация результатов термального анализа: https://web.archive.org/web/20150128134050/http://angliaruskin.openrepository.com/arro/handle/10540/337179 Верификация контактных задач: https://aaltodoc.aalto.fi/bitstream/handle/123456789/12665/master_Hokkanen_Jaro_2014.pdf Сверка результатов прочностного анализа присутствует в статьях на форуме dwg.ru, а также в файлах справки CalculiXForWin.
Интерфейс CalculiX GraphiX: CGX
Программа использует библиотеку openGL для визуализации и библиотеку glut для управления окном и обработки событий.
Пользовательский интерфейс CalculiX позволяет создавать геометрическую модель, строить сетку, задавать ограничения и нагрузки, а также проводить постобработку. Хотя он включает область графического дисплея с возможностью выполнения действий с КЭ-моделью при помощи мышки, большинство работы предпочтительно выполнять при помощи ввода команд с клавиатуры. Поэтому следует знать названия и синтаксис каждой команды, или по меньшей мере штудировать справку. Несмотря на обилие документации, работа с помощью клавиатурных команд не сложна, а управляемость позволяет создавать пользователям свои собственные функции, например для манипуляции данными полученных результатов или для перезаписи их в определённый пользователем формат.
CGX позволяет вводить данные о геометрии либо в пакетном виде (из файла исходных данных), либо в интерактивном режиме.
Геометрия задается с помощью следующих основных команд:
- PNT (Point, точка),
- LINE, QLIN (Line, линия, соединяющая две или более точек),
- SURF, GSUR, QSUR (Surface, поверхность, ограниченная линиями, общее число линий может варьироваться от 3 до 5),
- BODY, GBOD, QBOD (Body, тело, объём, ограниченный от 2 до 7 поверхностями),
- SETA (Set, множество элементов, например, поверхностей или точек).
Таким образом, создание расчетной области в терминах CalculiX GraphiX содержит следующие этапы:
- Задание множества точек, определяющих геометрию расчётной области: в это множество входят как точки, принадлежащие расчётной области, так и те, что используются во вспомогательных целях (например, для построения дуги необходимо иметь три точки — две для обозначения начала и конца дуги и одна — для обозначения центра).
- Задание контуров, ограничивающих расчётную область, и блоки, из которых она состоит.
- Построение ограничивающих поверхностей.
- Определение объёмов расчётной области.
- Определение одного или более множеств внешних поверхностей, для которых будут поставлены граничные условия.
После того, как получена геометрия, определены внешние поверхности, производится дискретизация пространства (создание сетки), результаты которой сохраняются в файл.
После решения задачи в CCX результаты могут быть визуализированы вызовом CGX. Наиболее частые команды в постпроцессоре представлены в выпадающем меню: НДС, создание анимации статического нагружения и динамической задачи, история нагружения, облако точек, построение сечения, увеличение и вращение модели и т. д.
Форматы файлов
Для записи [write(w)] и/или чтения [read(r)] геометрических объектов доступны следующие форматы файлов
• fbd-формат(r/w), этот формат состоит из набора команд, представленных в разделе «Commands» и в основном используется для хранения геометрической информации такой, как точки, линии, поверхности и тела. Но он также может быть использован для формирования пакетного задания на расчет с использованием доступных команд.
• step-формат(r), поддержка формата основана на декомпиляции некоторых cad-файлов. В настоящее время поддерживаются только точки и некоторые типы линий.
• stl-формат(r/w), данный формат описывает геометрическую форму с использованием одних только треугольников (смотри описание команды чтения для работы с ребрами, сформированными NETGEN).dges сформированных с помощью NETGEN).
Для хранения сеток и некоторых граничных условий доступны следующие форматы файлов
- Abaqus, который также используется решателем ccx пакета CalculiX.
- Ansys, поддерживается большинство граничных условий.
- Code Aster, поддерживаются сетки, а также комплекты узлов и элементов.
- Samcef, поддерживаются сетки, а также комплекты узлов и элементов.
- dolfyn, свободный cfd-код.
- duns, свободный cfd-код.
- isaac, свободный cfd-код.
- OpenFOAM, свободный cfd-код, поддерживаются только 8-узловые гексаэдры.
- Nastran, поддерживается большинство граничных условий.
- tochnog, свободный fem-код, поддерживаются только 8-узловые гексаэдры.
Для проверки сеток, комплектов и некоторых граничных условий поддерживается чтение следующих форматов исходных файлов решателя
- Abaqus, который также используется решателем ccx пакета CalculiX.
- Netgen, для чтения доступен нативный формат Netgen (.vol)
Следующие форматы файлов доступны для чтения результатов решателя
- frd-формат, файлы данного формата используются для чтения результатов предыдущих вычислений — перемещений и напряжений. Данный формат описывается в разделе «Result Format» (Формат результатов). Данный формат также используется решателем ccx.
- duns, свободный cfd-код,
- isaac, свободный cfd-код,
- OpenFOAM, свободный cfd-код.
См. также
Примечания
- Implementation of the CUDA Cusp and CHOLMOD Solvers in CalculiX .
- Peter A. Gustafson. code of CUDA based solvers in CalculiX .
- Calculix results in paraview ans EXODUSII (недоступная ссылка). Дата обращения: 27 января 2015. Архивировано 26 февраля 2015 года.
- Calculix Launcher .
- http://enggprog.com/tag/calculix/ .
- forum.iXBT.com Отечественные микропроцессоры. Состояние и перспективы (часть 17) .
- calculixforwin.com .
- Paulo Concalves. https://www.youtube.com/user/paulopaupitz .
https://www.youtube.com/user/calculix09 .
Andrea Starnini. https://www.youtube.com/user/andreastarnini .
Литература
- Guido Dhondt: «The Finite Element Method for Three-Dimensional Thermomechanical Applications». Wiley, Hoboken 2004, ISBN 0-470-85752-8
- Текущая документация CCX (версия может устареть!)
- Текущая документация CGX
Ссылки
- calculix.de — официальный сайт CalculiX (англ.)
- Сайт программы, Windows (англ.)
- http://caelinux.org/wiki/index.php/Doc:Calculix