1.4 Описание и постановка прикладной задачи, реализованной в качестве дипломной работы.
Рассмотрев все особенности учебной CAE системы Sigma, можно сформулировать ее недостатки:
Отсутствие возможности использования языков программирования отличных от семейства Fortran.
Слишком сложная структура расчетного блока. Это связано с использованием процедурного подхода и реализацией одного и того же функционала процедурами с разными именами и интерфейсами (например, для алгоритма упорядочивания используются несколько процедур, с разным интерфейсом)
Сложность при встраивании новой подпрограммы в цепочку вызовов подпрограмм расчетного блока.
Сложность при замене многих процедур расчетного блока.
Невозможность изменить способ хранения матрицы жесткости без переписывания половины расчетного блока.
Устаревший трудночитаемый синтаксис и отсутствие комментариев в большинстве процедур.
Отсутствие возможности выгрузить в файлы различных форматов отдельно элементов сетки КЭ, отдельно нагружений или закреплений.
Огромная сложность при реализации итеративного расчета (подсчет и сравнение результатов при разной частоте разбиения сетки или с разными материалами).
Невозможность работы с несколькими проектами и с несколькими наборами данных одновременно.
Часть этих недостатков связана с архитектурой Sigma и не может быть решена, без переписывания практически всей программы. Поэтому предлагается разработать новую систему, выполняющую тот же набор функционал что и Sigma, но лишенную ее недостатков.
Эта система должна позволять следующее:
замена любого модуля другим с аналогичным интерфейсом;
добавление модулей, реализующих любой новый функционал;
возможность писать модули на разных языках;
работа с несколькими наборами данных и с несколькими проектами одновременно;
отслеживание связей между наборами данных.
Как видно из требований эта система не привязана, к конкретному функционалу. Поэтому стоить говорить не о системе конечно-элементного анализа, а о, универсальной системе обработки данных и наборе модулей для нее, реализующих конечно-элементный анализ.
2Специальная часть
В рамках обсужденных выше требований к системе в дипломе разработана система Пандора, концепция которой описана ниже.
2.1Концепция и основные понятия
Пандора представляет собой универсальную систему ориентированную на обработку данных. В нее загружаются модули, которые осуществляют обработку или хранение данных. Пандора предоставляет общий функционал необходимый всем модулям, связывает модули между собой и позволяет пользователю добавлять и удалять модули из системы.
Связь между модулями ограничивается интерфейсами модулей. Каждый модуль должен знать только о своих данных и интерфейсах, используемых им модулей. Если модулю А необходимы данные формируемые модулем Б, то он должен получать их через интерфейс модуля Б.
Универсальная система обработки данных "Пандора" – система, ориентированная на обработку данных и позволяющая подключать к ней модули. Пандора отвечает за:
сохранение и загрузку рабочего пространства
управление рабочими пространствами и шаблонами рабочих пространств
управление проектами и шаблонами проектов
подключение/отключение модулей
обеспечение связи между модулями
отслеживание связей между наборами данных
отображение ошибок
отображение интерфейса модулей
перехват клавиатурных команд и сопоставление им команд из загруженных модулей
Рабочее пространство – набор загруженных сборок (библиотек), активных модулей и их настроек, а также набор проектов, между которыми пользователь может переключаться. Рабочее пространство сохраняется в файле с расширением “.ws”.
Проект хранит в себе информацию о наборах данных. Информация о проекте хранится в отдельном файле с расширением “.prj”.
Настройки модулей – настройки, которые редактируются средствами самого модуля их использующих, т.е. модуль использует их по своему усмотрению. Пандора только сохраняет настройки и передает их модулю, когда он потребует. Формат настроек – любые данные, которые можно сериализовать. Модуль возвращает Пандоре сериализуемый объект, а Пандора его сохраняет в проекте.
Модуль – класс, оформленный особым образом и реализующий интерфейс, который позволяет Пандоре ее использовать. Любой модуль должен предоставлять список интерфейсов модулей, которые ему необходимы. Любой модуль можно заменить другим с таким же интерфейсом.
Каждый модуль может предоставлять набор пользовательских команд управления модулем. Этот набор команд должен быть оформлен в виде набора определенных классов, который может включать:
команды, отображаемые в виде выпадающего списка сверху
команды, отображаемые в виде кнопок сверху
команды, отображаемые в виде выпадающего списка при клике на проект либо набор данных
команды, выполняемые при двойном щелчке на наборе данных (если несколько модулей закреплены за одним видом данных, то Пандора должна предлагать пользователю выбрать модуль, команду которого надо выполнить)
Модуль хранения данных – модуль, обеспечивающий сохранение данных, приём от модуля обработки и передачу их модулю обработки по запросу. При загрузке модуля хранения данных в проекте появляется возможность добавлять наборы данных, которые хранит данный модуль. Формат передачи данных для каждого типа модулей фиксирован и определяется интерфейсом. Формат хранения данных произволен. При изменении модуля хранения данных данные автоматически (средствами Пандоры и модулей хранения данных) переформатируются в формат данных нового модуля хранения. Так как для любого модуля хранения может быть добавлено несколько наборов данных, для каждого модуля хранения должен быть установлен активный набор данных, обработка которого осуществляется в данный момент.
Модуль обработки данных – модуль, получающий данные из модулей хранения, обрабатывающих их каким либо образом (пользователем либо согласно определенному алгоритму) и выдающий их в другие (или те же) модули хранения.
Визуальный модуль – модуль отображающий данные в виде вкладки в основном окне Пандоры. Вкладки могут быть изменяемыми (если в результате действий пользователя меняются данные) и неизменяемыми (если данные только отображаются). Изменяемая вкладка должна предоставлять Пандоре информацию о том, были ли изменены данные в ней и метод для сохранения своих данных.
|