Диссертация (1149675), страница 10
Текст из файла (страница 10)
Созданиеуправляющего элемента происходит вызовом функции с определенными параметрами, характери-Рис. 4.3. Текстовый редактор кодазующими задаваемые ими электромагнитные поля. Поддерживаются операторы сложения, вычитания, умножения, деления, возведения в степень, вызов стандартных математических функций. Допускается организация подпрограмм в виде функций, а также использование циклов for и условных операторов if – else Проверка применимостиопераций к заданным объектам происходит на этапе выполнения кода в виду отсутствия строгой типизации данных. Для синтаксического анализа используетсястековый алгоритм на основе обратной польской нотации [108].Текстовый редактор кода обеспечивает подсветку синтаксиса, допускает ввододнострочных и многострочных комментариев, имеется функция автодополнения и всплывающих подсказок (см.
рис. 4.3). Информация об элементах, функциях и операторах подгружается автоматически из имеющихся библиотек. Придобавлении новых физических элементов достаточно лишь декларативно описать их функциональность, при этом в текстовом редакторе все изменения будутотображаться динамически.624.1.3 Среда моделированияВ процессе работы используется файловая организация проекта, когда отдельные файлы описывают различные компоненты ускорителя, а в среде моделирования представляются в виде связной структуры данных. При этом допускается организация файлов в отдельные директории. Вызов подходящего редактора для файла осуществляется на основе его расширения.
Все файлы являютсяпростыми текстовыми документами, проект описывается в формате XML.Рис. 4.4. MODE: интегрированная среда моделированияКаждый файл, в зависимости от расширения, представляет собой описаниепоследовательности элементов, электромагнитного поля, либо настроек моделирования. При этом весь проект можно скомпилировать в одно результирующеематричное отображение на основе данных отдельных файлов.
Интерфейс организован на основе MDI контейнера и допускает одновременную работу сразу снесколькими открытыми файлами.Также среда моделирования содержит меню, позволяющее сохранять и загружать проекты, настраивать вид отображаемых окон, вызывать дополнительныеинструменты (например, анализ бета-функций и дисперсий). Имеется отдельное окно вывода сообщений о ходе выполнения задач и возникающих ошибках.Программа поддерживает возможность автоматического обновления по сети Интернет.
При этом загружаются лишь измененные компоненты программы. Крометого, отдельные модули могут быть заменены вручную простым копированиембиблиотек, что улучшает масштабируемость и отказоустойчивость приложения.63Рис. 4.5. Графический пользовательский интерфейс: 1 – файл настроек, 2 – файл описания кольца, 3 – директория, 4 – файл отдельного матричного отображения, 5 – контекстное меню, 6 –смена текстового и визуального режимов, 7 – компиляция кодаСреда моделирования MODE (см. рис. 4.5) содержит стандартное меню File,которое позволяет создавать новый, либо загружать имеющийся проект.
Каждыйпроект должен содержать два обязательных файла. Первый из них — файл настроек acc.config содержащий информацию о физических параметрах частицыи настройки параметров численного интегрирования. Второй файл должен называться main.lat и содержит код, описывающий накопительное кольцо в видепоследовательности элементов. При компиляции кода сначала компилируютсявсе файлы проекта, строятся матричные отображения и лишь в последнюю очередь анализируется файл main.lat. Такой подход позволяет гибко настраиватьпроцесс построения отображений, который для больших порядков может занятьдлительное время. Так например, можно запретить среде строить отображения,которые не изменялись со временем, что позволит сократить время вычисленийпутем загрузки уже построенных матриц.644.2 Логика работы программных компонентМодули среды моделирования, описанные в этом параграфе, обеспечиваютвсю техническую сторону по преобразованию декларативной информации, задаваемой пользователем, в структуры данных, пригодные для вычислений.4.2.1 Подсистема символьных вычисленийОсновным модулем, обеспечивающим взаимодействие бизгнес-логики и вычислительного кода, является подсистема символьных вычислений, в которойвводится структура данных символьный полином, представляющая из себя хэштаблицу степенных слагаемых полинома.
Функциями этой системы являетсясимвольное разложение нелинейных многомерных функций в ряд Тейлора дозаданного порядка нелинейности. После этого коэффициенты разложения используются для построения матричного представления и последующего вычисления отображения. Символьные полиномы в качестве интегрированного типаданных используются также для описание всех стандартных элементов.Рис. 4.6. Подсистема символьных вычисленийПодсистема символьных вычислений имеет как графический (см. рис.
4.6),так и программный интерфейсы. Последний в виде переносимых библиотек интегрирован в среду моделирования, что позволяет производить все необходимыесимвольные операции без привлечения сторонних математических пакетов, таких как, например, Maple [78, 80]. Это свойство делает среду моделирования65полностью переносимой и максимально независимой от других программныхрешений. В то же время, графический интерфейс такой подсистемы предоставляет возможности сравнения результатов и проверки корректности разложенияв степенные ряды со сторонними решениями.Следует особо отметить, что разложение в ряд Тейлора производится автоматически. Требование сходимости получившегося ряда на данном этапе проверить не представляется возможным, а отслеживание данного рода ошибок возлагается на пользователя.
Однако, как показано в следующем параграфе, придобавлении новых элементов, пользователю достаточно лишь описать электромагнитное поле, все остальные преобразования программа выполняет в автоматическом режиме. Таким образом, пользователю необходимо лишь гарантировать сходимость задаваемых функций B(x, y, z), E(x, y, z) распределения полей.Если данные функции не имеют сходящегося разложения в степеной ряд, матричное отображение все равно будет построено «успешно», а ошибки подобногорода никак не отобразятся в ходе выполнения программы.4.2.2 Библиотека электромагнитных элементовНа рис. 4.7 представлена диаграмма классов электромагнитных элементов.Каждый элемент описывается распределением электромагнитного поля его длиной.
В качестве параметров в систему уравнений (2.15) также входят масса,заряд, магнитный фактор и кинетическая энергия частицы, которые вынесены вотдельный класс Settings. Абстрактный класс EMElement на основе символьныхопераций разложения функций в степенные ряды производит построение системы уравнений (2.15) для конкретного элемента, который своими параметрами илогикой работы определяет вид управляющего поля.Так как конечный вид уравнений зависит от кривизны опорной кривой, вдолькоторой рассматривается движение частицы, то при реализации конкретных элементов предусмотрено их наследование от двух классов. Первый из них называется StraightElement и определяет движение вдоль прямой. Второй класс66ArcElement описывает поворотные магниты и электростатические конденсаторы, в которых референс-частица движется по окружности постоянного радиусаR.
Кроме того, как отмечалось выше, каждый класс снабжается атрибутами,предоставляющими информацию о типе элемента и количестве требуемых параметров для использования их в редакторе кода.Рис. 4.7. Иерархия классов электромагнитных элементов4.2.3 Генерация вычислительного кода на различных языкаСреда MODE хотя и предоставляет возможности численного моделирования динамики, но не навязывает свое использование для проведение вычислительного эксперимента.
Основным назначением программы является построениематричного отображения, отвечающего спин-орбитальной динамике частиц в заданном накопительном кольце. Отображение является набором числовых матрици может быть использовано в произвольном языке программирования без видимых сложностей. При этом требуется лишь наличие в возможностях языка такихопераций, как задание массивов вещественных чисел, их сложение, умножение ииспользование цикла for.
Этим условиям удовлетворяют практически все широко используемые языки программирования. Таким образом, построенные в средеMODE числовые матрицы могут быть использованы пользователем в стороннихпрограммных средствах, к которым он привык.67В текущей версии среда поддерживает генерацию кода для языков программирования MATLAB, FORTRAN и С++.















