О проекте

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

Интеграция с использованием легковесных плагинов

Постановка задачи:

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

Решение, используя технологию «легковесных плагинов»:

  • Определяется область знаний, в рамках которых будут производиться расчеты.
  • Составляется файл исходных данных (текстовый), требуемых для решения Вашей задачи, используя определенный синтаксис (.aINI – advanced INI).
  • Описывается XML-файл интеграции в комплекс GCD.
  • Размещаются созданные файлы легковесных плагинов в каталогах: inp\ini\NewProjectName\new_input.txt и inp\xml

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

Пример 1

Постановка задачи требующая интеграции

Дано:

Многослойная осесимметричная конструкция. Задача сводится к одномерной, однако, нужно предусмотреть возможности по решению двумерной задачи с изменяемой толщиной слоев в зависимости от угла.

Многослойное «кольцо» состоит из n слоев, для каждого слоя дано:

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

Найти:

Требуется найти перемещения и напряжения, возникающие в кольце, вследствие перепада температур.

Интеграция постановки в GCD

Интегририруем постановку задачи в систему GCD.

Определяем область знаний

Программный Комплекс GCD представляет собой платформу, позволяющую интегрировать в себя множество разнородного функционала, объединяющегося между собой с помощью указания области исследований. В системе эти области знаний объединены под общим названием Задача(Tasks). Некоторые функциональные возможности комплекса GCD потенциально могут найти применение в различных задачах, поэтому была введена дополнительная классификация функционала системы на подклассы действий(Action Class Items).

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

Таким образом, для интеграции нового легковесного плагина в систему от его разработчика требуется выбор этого подкласса. Перечень подклассов размещен в общем доступе на SVN ресурсе в виде XLS файла.

Создаем файл в формате aINI

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

NewTask.rng

[Task data] // Параметры задачи
Dim=[1D]{1D|2D} // Размерность задачи
MaterialMechType=[isotropy]{isotropy|orthotropy} // Свойства материалов кольца

[Geometry data] // Параметры геометрии и конструкции
b=5 // Толщина кольца [мм] 
R=2000 // Средний радиус [мм]
n=3 // Количество слоев
h=(3;5;2) // Толщины слоев [мм]

[Material Properties] // Свойства материалов
E=(30;50;10) // Модули Юнга слоев [ГПа]
nu=(0.35;0.4;0.31) // Коэффициенты Пуассона слоев
alpha=(75;80;55) // Коэффициенты теплового расширения alpha*10^6 [K^-1]

[Temprature] // Температурные параметры
T_int=20 // Температура внутри конструкции многослойного кольца [C]
T_ext=100 // Температура снаружи конструкции многослойного кольца [C]

[]

Создаем файл в формате XML

Следующий файл необходим для идентификации новой разработки в системе GCD.

NewTask.xml

<GCDGC3GUN_GUI_INI_EDITOR>
  <OPTIONS/>
  <SUBPLUGINS_DATA>
    <SUBPLUGIN SPL_SID="RING"
               SPL_NAME="MultiLayerRing"
               SPL_TYPE="ACI_NEWTASKS"
               SPL_VERSION="1.0.0.1"
               SPL_COPYRIGHT="2011"
               SPL_DESCR="Решение задачи о напряженно-деформированном состоянии многослойной кольцевой конструкции под тепловым воздействием"
               SPL_SHORT_TEXT="Задача о НДС кольца"
               SPL_MIDDLE_TEXT="Решение задачи о НДС кольца"
               SPL_LONG_TEXT="Решение задачи о НДС многослойной кольцевой конструкции"
               SPL_TEMPLATE_SID="RNG"
               SPL_OUT_PATH="\inp\ini\prj_ThermRingExpansion"
               SPL_NEW_ITEM_DEFAULT_NAME="ring_expansion"
               SPL_NEW_ITEM_EXTENSION="rng"
               SPL_SOLVER_NAME="RING_EXPANSION"
               />               
  </SUBPLUGINS_DATA>  
</GCDGC3GUN_GUI_INI_EDITOR>

Размещение созданных файлов

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

  • aINI файл NewTask.rng следует поместить в каталог inp\ini\prj_ThermRingExpansion\NewTask.rng. Стоит отметить, что имя каталога определяется в XML выше, а имя файла в целом произвольно, но также мы можем его фиксировать, также определив в XML.
  • XML файл следует поместить в каталог inp\xml. Имя XML файла произвольно.

Запуск

Запускаем комплекс GCD и можем увидеть новый пункт меню с нами определенными параметрами. Далее нужно запустить вновь созданный легковесный плагин. Несколько скриншотов представлены ниже.

{{:pic1.jpg?linkonly|

{{:pic2.jpg?linkonly|

{{:pic3.jpg?linkonly|

{{:pic4.jpg?linkonly|

/var/www/html/wiki/data/pages/интеграция_в_gcd.txt · Последние изменения: 31.03.2011 10:43 — Александр Соколов
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki