Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

РЕКЛАМНО-ТЕХНИЧЕСКОЕ ОПИСАНИЕ

Интерпретатор языка описания систем частиц

Разработчики:

Доцент кафедры математики и

математического моделирования ПГУАС, к. т.н.                

Интерпретатор языка описания систем частиц (далее – интерпретатор) предназначен для решения задач моделирования систем частиц; задача должны быть записана на управляющем языке описания систем частиц (далее – управляющий язык). Интерпретатор может применяться в поисковых научных исследованиях и при решении прикладных проблем моделирования эволюции систем, образованных сферическими дисперсными частицами, распределенными в движущейся вязкой дисперсионной среде. Моделирование сводится к решению задачи Коши для системы обыкновенных дифференциальных уравнений.

Интерпретатор реализован в виде автономной программы. В структуре интерпретатора выделены два уровня – прикладной и сервисный. На прикладном уровне реализованы синтаксический разбор управляющей программы, алгоритм решения задачи Коши, средства мониторинга и визуализации.

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

Управляющая программа может содержать секции:

глобальную (определения псевдонимов; инициализация встроенного генератора случайных чисел, и т. д.); описания статистических распределений (в т. ч. многомерных, включающих условия-ограничения, записанные в форме булевых операций над геометрическими объектами), используемых при выборе начальной фазы системы; описания геометрических объектов – границ расчетной области, а также вида и параметров граничных взаимодействий; описания систем частиц (распределения по размерам и плотности, пространственные распределения и распределения начальных скоростей, вид и параметры парного взаимодействия); описания дисперсионных сред (законы изменения вязкости и параметры поля скоростей); описания сил и ускорений, подлежащих дополнительному учету (в т. ч. силы тяжести); описания объектов файлового и визуального мониторинга; описания расчетных заданий (система частиц; дисперсионная среда; дополнительные силы и ускорения; один или несколько объектов мониторинга; параметры расчетного метода – требуемая точность, периодичность вызова методов мониторинга).

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

НЕ нашли? Не то? Что вы ищете?

Расчетные задания передаются планировщику. Для каждого из заданий создается отдельная нить; нити направляются на параллельное исполнение. Многопоточная реализация и использование общего адресного пространства для расчетных заданий позволяют избежать дублирования объектов. Объектно-ориентированный дизайн и отсутствие глобальных переменных устраняют необходимость применения взаимоисключающих блокировок. Планирование нитей осуществляется средствами операционной системы. Основная нить переходит в состояние ожидания ввода с консоли при одновременном ожидании завершения расчетных нитей.

В процессе решения при каждом вычислении правой части системы дифференциальных уравнений выполняются:

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

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

Для оценки характерного времени структурообразования и характерных перемещений частиц в процессе эволюции используются средства описательной статистики, применяемые к следующим показателям:

расстояниям от поверхности данной частицы до поверхностей четырех ближайших к ней; числу частиц, расстояние до поверхности которых не превышает заданного значения; числу частиц, находящихся в данной подобласти выпуклой оболочки системы.

Интерпретация полученной статистической информации позволяет установить закономерности влияния параметров дисперсной системы на процесс ее эволюции.

Алгоритм решения задачи Коши на определенном шаге сетки по времени производит вызов методов мониторинга. В этих методах реализованы:

фиксация фазы в энергонезависимой памяти (формат файла может допускать последующий синтаксический разбор сторонними пакетами визуализации; после завершения расчета полученная последовательность фаз используется для создания анимированного растрового представления моделируемой системы); вычисление и фиксация значений выбранных статистических показателей системы; визуализация системы в реальном времени (используются переносимые вызовы интерфейса OpenGL).

Сервисный уровень содержит реализацию абстрактных типов данных; реализацию объектов, изолирующих системные вызовы целевой платформы; реализацию виртуальной файловой системы (семантика соответствует файловым вызовам платформ POSIX); реализацию вспомогательных алгоритмов (управление памятью; средства диагностики и отладочной печати). Функциональность сервисного уровня доступна прикладному через методы, принимающие в качестве параметров дескриптор объекта, инкапсулирующего системный вызов.

Программное обеспечение (включая сервисный уровень) реализовано на языке ANSI C (стандарт ANSI X3.158-1989) и является кроссплатформенным. В качестве компилятора на платформе WinAPI использован Microsoft C 12.00.8168 (входящий в состав среды Visual C 6.0). На платформах POSIX использована GCC (версий от 2.95.3 до 4.3.2).

Программное обеспечение распространяется в исходных текстах на условиях общедоступной лицензии BSD (http://www. opensource. org/ licenses/bsd-license. php).

ПРИЛОЖЕНИЕ 1. Архитектура интерпретатора

ПРИЛОЖЕНИЕ 2. Грамматика секции границ

Построение структуры данных, представляющей CSG-дерево границ расчетной области, выполняется на основании текстового описания. Алфавит включает символы с ASCII-кодами от 33 до 255. Символы с кодами от 0 до 32 являются пробельными. Символ # (знак номера) является знаком однострочного комментария. Если в лексему необходимо включить пробельный символ, то лексему следует заключить в двойные кавычки. Терминальные символы выделены полужирным шрифтом.

описание_ограничений:

       операнд

операнд:

       геометрический_объект | операция

операция:

       union | intersection | subtraction { операнд операнд }

геометрический_объект:

       плоскость | параллелепипед | сфера | цилиндр

плоскость:

       plane [нормаль] расстояние_от_начала_координат

параллелепипед:

       box [минимальные_координаты;максимальные_координаты]

сфера:

       sphere [положение] радиус

цилиндр:

       cylinder [центр_основания; ось] [радиус_основания;высота]

нормаль:

минимальные_координаты:

максимальные_координаты:

положение:

центр_основания:

направление_оси:

       вектор

вектор:

       число, число, число

расстояние_от_начала_координат:

радиус:

радиус_основания:

высота:

       число