CalculiX

Из Википедии, бесплатной энциклопедии

CalculiX
Скриншот программы CalculiX
Тип Метод конечных элементов
Разработчики Гидо Донт, Клаус Виттиг
Написана на Си и Фортран
Операционные системы Linux, Windows
Последняя версия 2.17; (26 июля 2020)
Репозиторий github.com/calculix
Лицензия GPL
Сайт calculix.de

CalculiX — открытый, свободный программный пакет, предназначенный для решения линейных и нелинейных трёхмерных задач механики твёрдого деформируемого тела и механики жидкости и газа с помощью метода конечных элементов. Распространяется под лицензией GNU General Public License. Авторы программы Guido Dhondt (модуль CCX — решатель) и Klaus Wittig (модуль CGX — пре-, постпроцессор) работают в холдинге MTU Aero Engines, производящем двигатели для самолётов. Изначально создавался для Linux, в настоящее время существуют сборки для Windows и MacOS. CalculiX входит в состав дистрибутива CAELinux.

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 содержит следующие этапы:

  1. Задание множества точек, определяющих геометрию расчётной области: в это множество входят как точки, принадлежащие расчётной области, так и те, что используются во вспомогательных целях (например, для построения дуги необходимо иметь три точки — две для обозначения начала и конца дуги и одна — для обозначения центра).
  2. Задание контуров, ограничивающих расчётную область, и блоки, из которых она состоит.
  3. Построение ограничивающих поверхностей.
  4. Определение объёмов расчётной области.
  5. Определение одного или более множеств внешних поверхностей, для которых будут поставлены граничные условия.

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

После решения задачи в 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-код.

См. также[править | править код]

Примечания[править | править код]

  1. Implementation of the CUDA Cusp and CHOLMOD Solvers in CalculiX.
  2. Peter A. Gustafson. code of CUDA based solvers in CalculiX. Дата обращения: 27 января 2015. Архивировано 26 февраля 2015 года.
  3. 1 2 Calculix results in paraview ans EXODUSII. Дата обращения: 27 января 2015. Архивировано из оригинала 26 февраля 2015 года.
  4. Calculix Launcher. Дата обращения: 4 августа 2015. Архивировано 7 марта 2016 года.
  5. http://enggprog.com/tag/calculix/. Дата обращения: 27 января 2015. Архивировано 13 февраля 2015 года.
  6. forum.iXBT.com Отечественные микропроцессоры. Состояние и перспективы (часть 17).
  7. calculixforwin.com. Дата обращения: 27 января 2015. Архивировано 25 декабря 2014 года.
  8. Paulo Concalves. https://www.youtube.com/user/paulopaupitz. Дата обращения: 28 сентября 2017. Архивировано 1 октября 2016 года.
    https://www.youtube.com/user/calculix09. Дата обращения: 28 сентября 2017. Архивировано 17 марта 2017 года.
    Andrea Starnini. https://www.youtube.com/user/andreastarnini. Дата обращения: 28 сентября 2017. Архивировано 3 октября 2016 года.

Литература[править | править код]

Ссылки[править | править код]