loom

Форк
0

README.md

SIMODO/loom title

SIMODO/loom

SIMODO/loom
является разрабатываемой в настоящее время версией проекта адаптивной системы имитационного моделирования
SIMODO
.

Основная задача проекта — предоставить программные средства математического моделирования для исследования комплексных моделей, захватывающих несколько предметных областей.

УГТ4 - Технология, проверенная в лаборатории.

Краткое описание

Адаптивная система моделирования — новое понятие в имитационном математическом моделировании, когда в основе системы лежит набор предметно-ориентированных языков (ПОЯ). Каждый из таких языков отвечает только за свою предметную область, которую он описывает наиболее полно и в то же время просто.

Адаптивная система моделирования подразумевает предоставление технологии построения ПОЯ. Кроме того предполагается, что система должна иметь открытую программную архитектуру, позволяющую добавлять в неё без перекомпиляции семантические модули новых языков, плагины визуализации и редактирования, модули для использования из языков и другие расширения.

Состав и возможности проекта

SIMODO/loom
:

  • Технология разработки ПОЯ.
  • Несколько готовых языков, доступных для модификации: базовый императивный язык для описания алгоритмов и декларативный язык описания системы обыкновенных дифференциальных уравнений.
  • Встроенная поддержка векторной и матричной арифметики (в разработке).
  • Система позволяет выполнять длительный цикл моделирования (часы, сутки, недели...) с возможностью "на лету" не только изменять параметры модели, но и части модели.
  • Выполнение моделирования в многопоточной и распределённой среде, что включено в конструкции базового языка (в разработке).
  • Интегрированная среда разработки
    SIMODO shell
    с набором плагинов для редактирования текстов, просмотра результатов в процессе моделирования и других функций.
  • Интеграция языков в среду разработки
    SIMODO shell
    с использованием технологии Language Server Protocol.
  • Возможность отладки сценариев и моделей на реализованных ПОЯ, как с использованием специальной утилиты, так и в интегрированной среде
    SIMODO shell
    (в разработке).
  • Возможность добавления или замены компонентов открытой архитектуры: плагинов, модулей, языков и др.
  • Средства визуального моделирования — описание модели с использованием блоков (в разработке).

Простой пример

SIMODO shell - Three Body Problem

На снимке экрана численное решение задачи трёх тел с использованием системы моделирования

SIMODO/loom
. Модель общего вида представлена системой дифференциальных уравнений в векторной форме, записанной в отдельном файле на декларативном языке (расширение файла ".s-ode").

Сценарий моделирования, на котором задаются начальные условия и определяются параметры отображения информации во время моделирования, записывается на императивном языке (расширение файла ".s-script"). Такой подход позволяет работать с моделью, как с типом, создавая произвольное количество объектов различных типов и добавлять эти объекты на сцену моделирования.

Таким образом, модель отделена от сценария моделирования, что делает описание более понятным, а работу с моделью гибкой, устойчивой к изменениям. Возможность монипулирования объектами модели позволяет формировать состав сцены не только перед началом моделирования, но и в процессе.

Также такой подход не ограничивает использование в качестве описания модели только дифференциальные уравнения, то есть для записи модели могут использоваться различные предметно-ориентированные языки.

Ещё одним преимуществом такого подхода является возможность вычисления каждого объекта параллельно, что в некоторых ситуациях даёт возможность и распределённого моделирования.

Другие примеры моделей на основе дифференциальных уравнений можно посмотреть в каталоге

test/examples/engine/ode
. Примеры с тестированием других возможностей
SIMODO/loom
находятся в каталоге
test/source
.

Статьи

Более подробное описание концепции

SIMODO/loom
можно почитать в следующих статьях:

Сборка проекта

Проект рекомендуется собирать в

GNU/Linux
. Состав необходимых библиотек и способ их установки можно посмотреть в файле сценария непрерывной интеграции
.gitlab-ci.yml
. Используются настройки для
Ubuntu
и
Alt Linux
.

После клонирования или копирования файлов для сборки проекта нужно выполнить следующие команды в каталоге проекта:

./configure
go/make

Запуск проверочных тестов:

test/libs

Запуск интегрированной среды разработки:

bin/simodo-shell

Дистрибутивы проекта

Дистрибутивы проекта формируются автоматически при слиянии в ветку

prod
и выкладываются на сайт проекта simodo.ru.

Формируются дистрибутивы для платформ

Linux
и
Windows
.

Зеркала проекта на открытых репозитория

Репозиторий проекта периодически обновляется на портале GitVerse.

Подготовка перед фиксацией изменений в системе контроля версий

Обязательно к выполнению, чтобы концы строк изменяемых файлов представляли собой символ

LF
.

git config --global core.autocrlf true

Описание

Текущая версия адаптивной системы имитационного моделирования SIMODO (зеркало внутреннего проекта МГТУ им. Н.Э. Баумана)

http://simodo.ru

Языки

C++

  • ASL
  • Qt Script
  • Python
  • CSS
  • CMake
  • SystemVerilog
  • Batchfile
  • Makefile
  • C
  • Shell
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.