Программный комплекс как учебный объект разработки

УДК 05.13.18 Дата подачи статьи: 06.08.15

DOI: 10.15827/0236-235X.113.140-145

ПРОГРАММНЫЙ КОМПЛЕКС КАК УЧЕБНЫЙ ОБЪЕКТ РАЗРАБОТКИ

В.А. Столярчук, к.т.н., доцент, stolyarchukva609@mail.ru

В статье описывается процесс разработки открытой учебной САЕ Sigma в условиях вуза с целью подготовки разработчиков САЕ-приложений. Создание системы рассматривается как непрерывный процесс, в котором комплекс как объект разработки выступает в качестве неиссякаемого источника задач для студентов. Приведен укрупненный перечень тем и задач, непосредственно связанных с изучением метода конечных элементов, особенностей и алгоритмов САЕ-систем и решаемых студентами с целью модификации и непрерывного совершенствования создаваемой программной системы. Даны краткая характеристика комплекса, его структуры, схемы работы расчетного блока, а также подсистем, обеспечивающих и предельно облегчающих модификацию системы студентами в процессе обучения. Отмечены недостатки первоначального базового варианта системы, обусловившие разработку продвинутого варианта комплекса, а также положительные стороны реализуемого подхода к обучению. В силу возможностей импортирования в систему Sigma геометрической модели из CAD-систем типа AutoCAD и Solid Edge и экспорта сформированных исходных данных в САЕ-системы типа AnSys и Nastran рассматриваемый учебный комплекс выступает в качестве начальной ступени освоения коммерческих CAD/CAE-систем. Возможность сравнения результатов расчета в разных САЕ-системах на идентичных исходных данных является для студентов стимулом к более глубокому изучению метода конечных элементов и алгоритмов систем инженерного анализа.

Ключевые слова: методика обучения, учебная САЕ-система, открытое программное обеспечение, алгоритмы метода конечных элементов.

Одной из задач высшей школы считается подготовка специалистов, владеющих современными программными средствами инженерного анализа -так называемыми системами класса САЕ.

В вузах этому уделяется повышенное внимание, что обусловлено как потребностями проектных организаций, так и стремлением представителей фирм-разработчиков к тому, чтобы как можно больше специалистов и выпускников вузов работали на предприятиях именно с их ПО. Известные комплексы Nastran, AnSys, Patran и другие заняли прочные позиции в различных проектных организациях, в том числе оборонного и аэрокосмического профиля. Важность задачи подготовки грамотных пользователей таких систем неоспорима.

Но при таком подходе к обучению остается зависимость от иностранных коммерческих систем, замедляется развитие отечественных программных продуктов и не повышается интеллектуальный багаж выпускников высших школ. Необходимо готовить специалистов-разработчиков САЕ-систем. Последнее требует от обучаемых не только достаточных знаний в области решения приближенными методами физико-математических задач, но и знаний специфических алгоритмов, составляющих развитую конечно-элементную САЕ-систему. Сложность этой задачи усугубляется тем, что разработчики, в том числе и отечественные, не склонны открывать секреты своих программ, которые являются коммерческой тайной.

Поэтому для обучения специалистов-разработчиков приходится создавать учебные системы методов конечных элементов (МКЭ), имеющие упрощенные алгоритмы системного и прикладного ПО с ограниченными функциональными свойствами. Главное - они должны быть системами с открытым

исходным кодом, чтобы обучаемый мог познакомиться с реализацией как программ САЕ в целом, так и составляющих их алгоритмов. Использование этих возможностей нашло свое отражение и в литературе [1, 2]. Естественно, что наибольшие успехи достигнуты в среде Linux [3].

В Московском авиационном институте (МАИ) на кафедре прикладной информатики много лет развивается и успешно эксплуатируется учебная CAE-система Sigma с открытым исходным кодом, разработанная под Windows. Sigma призвана решать задачу обучения принципам построения и алгоритмизации конечно-элементных САЕ-систем.

Модульная структура Sigma позволяет вовлекать в ее разработку студентов 3-4-х курсов и дипломников. Они выступают со своими работами на конференциях, в том числе международных. Sigma для студентов - проектный программный объект, на котором они изучают особенности разработки САЕ-систем и накапливают опыт, позволяющий им лучше адаптироваться к запросам предприятий и учреждений аэрокосмической отрасли. Ориентация на оборонные и аэрокосмические учреждения, обусловленная направленностью подготовки в МАИ, сказывается в расчетах преимущественно тонкостенных конструкций.

Концепция системы в основном следует идеям двух классических работ - [4] и [5]. Для алгоритмизации отдельных модулей использованы более поздние работы, например [6].

Особенностью Sigma является возможность экспорта подготовленных в ней исходных данных в системы AnSys и Nastran, что позволяет решать задачу начального освоения коммерческих программных продуктов. Кроме того, реализована процедура создания моделей в AutoCAD и Solid

Edge с последующим импортированием их в Sigma. В процессе обучения также производится импортирование данных из AutoCAD в AnSys и (или) Nastran, что делается уже стандартными средствами этих коммерческих пакетов. Тем самым достигается цель логически взаимосвязанного применения средств CAD и САЕ, также способствующего комплексному изучению проблем автоматизации инженерного моделирования.

Необходимо отметить главное: подавляющее количество программ, подпрограмм и алгоритмов разработано и разрабатывается студентами в рамках курсовых и дипломных работ. Вся оболочка, интерфейс и большое число дополнительных подсистем и программ, реализующих альтернативные методы, используемые в алгоритмизации САЕ-сис-тем, разработаны и разрабатываются студентами кафедры прикладной информатики. На настоящий момент более 60 студентов внесли ощутимый вклад в развитие системы Sigma. Вдвое больше участвовали в решении менее сложных вопросов.

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

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

Но наиболее значима научно-исследовательская ипостась системы. Sigma в своем составе имеет набор различных алгоритмов и подпрограмм одного и того же назначения, дающих возможность обучаемому исследовать преимущества разных подходов, методов и алгоритмов.

Система позволяет оценить качество сеток, построенных с помощью нескольких методов: алгоритма изопараметрических координат, фронтального метода, триангуляции Делоне и триангуляции Рапперта. Фронтальный метод работает с использованием функции плотности. Затем сетки оптимизируются. Для оптимизации построенных сеток используются как оригинальные алгоритмы, так и различные модификации методов Делоне и Рап-перта. Для реализации каждого из алгоритмов разработаны отдельные подсистемы с визуализацией работы алгоритмов.

Для оценки преимуществ тех или иных методов технологии разреженных матриц в Sigma применя-

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

Для изучения и оценки различных способов хранения разреженных матриц в системе используются разные схемы хранения: схемы, основанные на связных списках, диагональная схема хранения, профильные схемы, схема Густавсона, компактная схема Шермана и др.

Важным элементом обучения является доказательство достоверности проведенных расчетов. Это осуществляется как специальной подсистемой построения графиков сходимости напряжений и перемещений при увеличении плотности сетки, так и сравнением результатов расчетов, проведенных в разных системах на идентичных сетках при реализации одинаковых внешних воздействий и граничных условий. Экспорт в Femap-AnSys и Femap-Nas-tran осуществляется специальной подсистемой, универсальной по отношению к этим коммерческим САЕ-системам.

Sigma - учебная система, поэтому она направлена и на изучение вопросов подбора оптимальных модулей САЕ-систем. Обучаемый сам может для своей задачи сформировать наиболее эффективный с его точки зрения набор алгоритмов, попытаться аргументировать и защитить свою концепцию, в конечном итоге запрограммировать новый алгоритм, почерпнутый из имеющейся литературы для включения его как альтернативы в комплекс.

Студенческими алгоритмами решаются задачи следующей направленности:

- дизайн и интерфейс САЕ-системы;

- триангуляция;

- оптимизация сетки конечных элементов (КЭ);

- хранение разреженных матриц;

- упорядочение разреженных матриц;

- отображение матриц;

- формирование предварительной геометрической модели объекта;

- графическое отображение 2D-/3D-результа-тов расчета;

- анимация результатов расчета;

- доказательства сходимости результатов расчета;

- сравнение результатов расчета, полученных в разных системах.

Первоначально Sigma представляла собой единую программу с последовательным подключением модулей подготовки исходных данных, расчетного модуля и модуля обработки представления результатов [7].

Рис. 1. Структура базового варианта комплекса Fig. 1. The structure of the suit baseline

В настоящее время существуют два варианта программы: базовый, представляющий собой единую программу, функционирующую преимущественно в соответствии со структурой, изображенной на рисунке 1, и продвинутый, в котором система разделена на три самостоятельно работающих блока: препроцессор [8], расчетный блок, постпроцессор.

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

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

Расчетный блок состоит из большого числа тематических блоков подпрограмм, каждый из которых отвечает за определенную часть процедуры МКЭ:

- триангуляция области;

- упорядочение графа матрицы;

- задание граничных условий и внешних воздействий;

- формирование схемы хранения разреженной матрицы;

- формирование матриц жесткости КЭ и всей системы;

- решение систем алгебраических уравнений;

- определение перемещений узлов и расчет напряжений в КЭ.

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

Схема работы расчетного блока представлена на рисунке 2, где процессы компиляции расчетного блока и запуска расчета являются классическим

Рис. 2. Структура работы расчетного блока Fig. 2. The structure of calculation block operating

примером самой простой и понятной для студента формы создания и использования программного продукта.

На этапе компиляции происходит последовательное формирование объектных файлов (*. obj) всех подпрограмм, кроме main.for.

Этот файл является основным в данном расчетном блоке и компилируется последним с указанием всех объектных файлов. В нем происходят инициализация основных массивов и переменных, участвующих в функционировании системы, и последовательное исполнение основных функций расчета, представленных в оставшихся файлах. После компиляции на основе этого файла происходит линкование исполняемого exe-модуля.

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

На рисунке 3 «Стандартные» - это подпрограммы, реализующие схему решения задачи с помощью МКЭ в актуальной конфигурации системы, например, подпрограмма Griddm осуществляет триангуляцию методом изопараметрических координат, Bound реализует граничные условия, Force -внешние воздействия, Formdd формирует матрицу жесткости, Strsdd определяет напряжения в КЭ. Любую из этих программ можно перевести (копировать) в разряд редактируемых и изменять по собственному разумению, используя альтернативные алгоритмы. Имеется возможность добавления дополнительных модулей, отсутствующих в актуальной конфигурации. При расчете система подключает редактируемые модули вместо одноименных стандартных, позволяя решать часть процедуры МКЭ другими алгоритмами, реализованными в редактируемых модулях.

Следует заметить, что простота построения и обработки такого расчетного блока - и безусловное преимущество, и определенный недостаток. К преимуществам можно отнести простоту процесса компиляции, относительную однообразность логики функционирования процедур внутри файлов расчетного блока, так как они написаны на одном языке и основываются на правилах и синтаксических особенностях одного языка программирования. Также не составляет никакого труда использовать весь набор доступных типов данных для реализации задуманных функций. К недостаткам такого способа построения расчетного блока можно отнести сложность в развитии и модернизации расчетной системы, так как даже разработка нескольких отдельных файлов разными людьми может привести к тому, что приходится тратить дополнительное время для анализа взаимозависимых ошибок. Впрочем, при обучении такой недостаток обращается в преимущество: студенты учатся работать в команде. Написание отдельной подпрограммы на языке программирования, отличном от базового, тоже затруднено.

Именно поэтому был разработан так называемый продвинутый вариант Sigma, в котором удалось избавиться от части упомянутых недостатков. Искусственное разделение препроцессора и постпроцессора в продвинутом варианте Sigma в отличие, скажем, от Femap, служащего тем и другим для таких систем, как Nastran и AnSys, вызвано методическими соображениями, позволяющими расширить круг учебных задач, которые ставятся перед разработчиками-студентами.

Основные задачи, решаемые препроцессором:

- создание геометрической модели объекта, формирование сетки КЭ, задание граничных условий, приложение внешних воздействий, задание свойств КЭ;

Рис. 3. Модуль конфигурирования проекта Fig. 3. A project configuration module

- демонстрация работы различных методов построения сетки КЭ;

- анализ, оценка и оптимизация сетки КЭ;

- экспорт/импорт в/из Sigma.

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

Дополнительно имеется возможность формирования и экспорта данных в отдельную подсистему триангуляции методами Рапперта. Эту подсистему пока не удалось включить в препроцессор.

В качестве обязательного элемента для всех методов триангуляции принято предварительное разбиение области на 4-узловые зоны.

Постпроцессор решает задачу вывода текстовой и графической информации в 2D/3D, а также в подсистему сходимости результатов, позволяющую в автоматическом режиме строить графики сходимости. Здесь обучаемому предоставляется широкое поле деятельности для реализации не только различных методов обработки и представления результатов, но и своих эстетических наклонностей.

Помимо этого, САЕ Sigma обладает набором утилит, позволяющих обрабатывать результаты расчета по перемещениям и напряжениям в системах Sigma, Nastran и AnSys с целью сравнения значений перемещений и напряжений и последующего анализа.

Это далеко не полный перечень алгоритмов и задач, реализованных в комплексе Sigma.

С учетом известных методических разработок [9, 10] процесс вовлечения студентов в разработку и модификацию комплекса проходит следующим образом.

На начальном этапе для изучения МКЭ и САЕ Sigma студент по индивидуальному заданию решает прикладную задачу в базовом варианте системы. При этом ему приходится, помимо формирования предварительной геометрической модели, пригодной для использования любым методом триангуляции, имеющимся в системе, в обязательном порядке программировать алгоритмы задания граничных условий и внешних сил от действия распределенной нагрузки по узлам конечно-элементной модели. Алгоритмы должны обеспечивать решение задачи при различном числе разбиений области на КЭ любым методом триангуляции. Тем самым студент сразу вводится в проблему автоматизации задания исходных данных для МКЭ. После получения решения задачи в Sigma и построения графиков сходимости результатов в произвольно выбранных точках исследуемой области осуществляется экспорт исходных данных в систему Nastran или AnSys (а иногда и в обе), в которых рассчитывается та же задача при идентичных исходных данных, после чего сравниваются результаты, полученные в разных системах, и делаются выводы, в

которых анализируются причины расхождения этих результатов.

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

На следующем этапе та же задача решается с помощью продвинутого варианта системы, в котором не требуется программирование модулей реализации граничных условий и внешних воздействий и в котором эти действия обеспечиваются подсистемой подготовки исходных данных препроцессора системы. Эта работа выполняется значительно быстрее, так как студент уже имеет опыт решения задачи в САЕ-системе. После этого студенту предстоит проанализировать процесс решения задачи в двух вариантах системы, сравнить функционал двух систем, высказать свои замечания и предложения по совершенствованию систем, интерфейса, отдельных алгоритмов, а также аргументы в защиту предложений замены одних алгоритмов другими и т.д. Затем формируется пакет задач по дальнейшему совершенствованию систем, часть которых по выбору студент реализует на заключительном этапе обучения. Очень часто решение этих задач отражается в дипломной работе. Пакет замечаний и задач общедоступен и выкладывается на сайте факультета. Для решения объемных или особо значимых задач студенты объединяются в рабочие группы. Работа студентов по совершенствованию систем не всегда приводит к желательному результату (сказывается уровень подготовки и заинтересованности), но в конечном итоге из всех решений студентов отбираются наиболее удачные и вносятся в новые модификации систем. Таким образом, системы обновляются каждый год. Авторы удачных разработок вносятся в реестр авторов систем.

Неизбежные ошибки и недоработки даже в удачных реализациях, а также большое разнообразие опубликованных алгоритмов, используемых в САЕ-системах, служат источником задач для следующих поколений студентов, в результате чего комплекс Sigma является постоянным объектом для совершенствования алгоритмических и программистских навыков будущих разработчиков САЕ-систем.

Литература

1. Ducheneaut N. Socialization in an Open Source Software Community: A Socio-Technical Analysis. Computer Supported Cooperative Work (CSCW), 2005, no. 14 (4), pp. 323-368.

2. Pedroni M., Bay T., Oriol M., Pedroni A. Open source projects in programming courses. ACM SIGCSE Bulletin, March 2007, no. 39 (1), pp. 454-458.

3. САПР CAD, CAE, CAM с открытым исходным кодом

для многофункциональной операционной среды GNU/Linux; URL: http://mrc. org .ua/ component/content/article/5 6-sapr-linux (дата обращения: 05.08.2015).

4. Сегерлинд Л. Применение метода конечных элементов. М.: Мир, 1979. 392 с.

5. Джордж А., Лю Дж. Численное решение больших разреженных систем уравнений. М.: Мир, 1984. 336 с.

6. Ruppert J. A Delaunay Refinement Algorithm for Quality 2-Dimentional Mesh Generation, NASA Ames Research Center. Submission to Journ. of Algorithms, 1994.

7. Столярчук В.А. Программная система для обучения разработчиков САЕ-приложений // Науч.-технич. вестн. Поволжья. 2012. № 6. C. 394-397.

8. Столярчук В.А. Препроцессор программной системы SIGMA для обучения разработчиков САЕ-приложений, используемых в САПР аэрокосмической отрасли // Труды МАИ. 2013. Вып. 71. 21 с.; URL: http://www.mai.ru/science/trudy/published. php?ID=47070 (дата обращения: 05.08.2015).

9. Dahlblom O., Peterson A., Peterson H. CALFEM - a program for computer-aided learning of the finite element metod. Eng. Comput., 1986, vol. 3, no. 2.

10. Петренко А.К., Петренко О.Л., Кулямин В.В. Использование ресурсов научных учреждений для подготовки специалистов в области информационных технологий // Информатизация и глобализация социально-экономических процессов: докл. 2-й Междунар. конф. М., 2007.

DOI: 10.15827/0236-235X.113.140-145 Received 06.08.15

A SOFTWARE SUITE AS A DEVELOPMENT TRAINING FACILITY

Stolyarchuk V.A., Ph.D.

Abstract. The article describes the development process of an open source training CAE Sigma in a higher education institution aimed to train developers of CAE-based applications. For educational purpose the system development is considered to be continuous and never-ending process, in which the created suite is an object of design and an endless source of problems for students. The paper considers an aggregated list of issues and problems directly related to studying the method of finite elements, as well as features and algorithms of CAE systems that can be solved by students in order to modify and improve a software system. The authors briefly describe the suite, its structure, the calculation unit work scheme, as well as sub-systems that provide and facilitate system modification by the students during their learning process. The authors also note the disadvantages of the initial basic system that initiate the development of an advanced version of the suite, as well as the positive aspects of the implemented approach to teaching students. By virtue of the ability to import the geometric model from CAD-systems like AutoCAD and Solid Edge to the Sigma system and to export generated source data to AnSys and Nastran CAE-systems, the described suite considered to serve as the initial stage of commercial CAD/CAE-systems studying. The possibility to compare different CAE-system calculation results with identical source data is an incentive for students to more in-depth studying the finite element method and CAE-systems' algorithms.

Keywords: methods of teaching, learning CAE-system, open source software, finite element method, algorithms.

References

1. Ducheneaut N. Socialization in an Open Source Software Community: A Socio-Technical Analysis. Computer Supported Cooperative Work (CSCW). 2005, no. 14 (4), pp. 323-368.

2. Pedroni M., Bay T., Oriol M., Pedroni A. Open source projects in programming courses. ACMSIGCSEBulletin. 2007, no. 39 (1), pp. 454-458.

3. CAD, CAE, CAM with open sourcecode for GNU/Linux. Available at: http://mrc.org.ua/component/content/article/ 56-sapr-linux (accessed August 5, 2015).

4. Segerlind L. Primenenie metoda konechnykh elementov [Application of the finite element method]. Moscow, Mir Publ., 1979, 392 p.

5. George A., Liu J.W.H. Computer Solution of Large Sparse Positive Definite Systems. Prentice-Hall Publ., Englewood Cliffs, 1981 [Russ. ed.: Moscow, Mir Publ., 1984, 336 p.].

6. Ruppert J. A Delaunay Refinement Algorithm for Quality 2-Dimentional Mesh Generation, NASA Ames Research Center. Submission to Journal of Algorithms. 1994.

7. Stolyarchuk V.A. A software system for training CAE-based application developers. Nauch.-tekhnich. vestn. Po-volzhya [Scientific and Technical Volga region Bulletin]. 2012, iss. 6, pp. 394-397.

8. Stolyarchuk V.A. Preprocessor of the SIGMA system for training of developers of CAE application used in aerospace industry CAD systems. Trudy MAI. 2013, iss. 71. Available at: http://www.mai.ru/science/trudy/eng/published. php?ID=47070&eng=Y (accessed August 5, 2015).

9. Dahlblom O., Peterson A., Peterson H. CALFEM - a program for computer-aided learning of the finite element metod. Eng. Comput. 1986, vol. 3, no. 2.

10. Petrenko A.K., Petrenko O.L., Kulyamin V.V. Using research institution resources to train IT specialists. Informati-zatsiya i globalizatsiya sotsialno-ekonomicheskikh protsessov: tez. dokl. 2 Mezhdunar. konf. [Proc. of the 2nd Int. Conf. "IT Development and Globalization of Social and Economical Processes"]. Moscow, 2007.