Journal influence
Bookmark
Next issue
Abstract:
Аннотация:
Authors: Palyukh B.V. (pboris@tstu.tver.ru) - Tver State Technical University, Tver, Russia, Ph.D, () - , Bogatikov V.N. (VNBGTK@mail.ru) - Tver State Technical University, Tver, Russia, Ph.D, () - | |
Ключевое слово: |
|
Page views: 10818 |
Print version Full issue in PDF (1.24Mb) |
Целью данной работы является создание программного комплекса ChemObjects, позволяющего исследовать взаимодействие объектов химической природы. Объектами могут являться простые ионы, молекулы, комплексы, кластеры, фрагменты кристаллической решетки. Этот комплекс ориентирован на исследование модельных структур расплавов галогенидов щелочных металлов МХ (М – щелочной металл, Х – атом галогена). Входными параметрами программного комплекса являются типы атомов М и Х, тип модельной структуры, температура. Далее программа автоматически выбирает из заложенного в нее массива экспериментальных данных соответствующий набор констант, необходимых для проведения расчетов. Выходными данными являются равновесные геометрические и энергетические параметры модельной структуры, характеризующие внутреннюю структуру объектов и их взаимное положение. Общее число варьируемых параметров в стандартных расчетах равно 15, но может значительно возрастать при сильном понижении внутренней симметрии кластеров. Функциональные подсистемы На данном этапе построенная автоматизированная система поддержки расчетов состоит из следующих автономных частей: - приложение TChemistry.exe; - библиотека VRF_Support.dll; - библиотека VRF_Grapher.dll; - приложение VRF_Grapher.exe. Для расширения возможностей системы в ряде случаев в расчетах используется среда Mathcad 2000-2001. Приложение TChemistry.exe – центральное звено в построенной системе. Оно содержит пять классов (на языке С++ [3]), реализующих химическую модель расплава, а также два класса по поддержке расчетов с вариацией по многим параметрам (многомерная вариация). В целом оно включает: · диалоговый ввод-вывод и его логику (задания параметров модели для расчета, редактирование констант, просмотр доступных модулей импорта и экспорта и др.); · прикладную логику обработки данных (расчет заданных функций модели, многомерная вариация по выбранным параметрам); · логику управления данных (функции по управлению хранения данных модели, предварительные расчеты констант (до вариации), просмотр результатов расчета и т.д.); · операции манипулирования VRF-файлами (создание, удаления, смены текущей директории расчета и т.д.). Особенностью построенной системы являются так называемые модули-менеджеры импорта и экспорта. При запуске приложения они проверяют текущую (домашнюю для приложения) директорию на наличия там DLL-библиотек. После этого происходит проверка на принадлежность каждой DLL-библиотеки к классу служб сервиса. Динамически подключаемая библиотека является службой сервиса, если она содержит как минимум три функции, прототипы которых на С++ можно записать так: 1) GetServiceClassName(LPSTR ServClassName); 2) GetServiceDescription(LPSTR ServDescr); 3) RunService(FARPROC ptrGetServResourseFun). Если менеджеры не находят в библиотеке всех трех функций, то эта библиотека не считается службой сервиса. В противном случае, вызывая первую из указанных функций, они получают имя класса службы сервиса (в нашем варианте возможные имена классов – это строки “Export service DLL, for TChemistry” или “Import service DLL, for TChemistry”). Вызывая вторую функцию, они получают описание самой службы для пользователя. Третья функция вызывается при выполнении экспорта или импорта пользователем из приложения TChemistry. Эта функция получает указатель на функцию, находящуюся в TChemistry.exe, которая предоставляет необходимую информацию для выполнения работы сервиса (экспорта или импорта). Такая организация служб сервисов, позволяет их разрабатывать и добавлять к системе независимо от самого приложения TChemistry. На рисунке 1 показано взаимодействие приложения TChemistry с другими частями системы (пунктирной стрелкой обозначена передача данных, а сплошной – передача управления). Химическая модель, заложенная в TChemistry Объектами в текущей рабочей версии программы являются кластеры M3- и X3+, состоящие из 27 ионов, и внешнесферные ионы типа М+, Х, МХ, МХ и ХМ. Для характеристики взаимодействия ионов использован парный потенциал Полинга, согласно которому взаимодействие двух ионов сводится к сумме кулоновского взаимодействия и усредненного отталкивания электронных оболочек, зависящего от типа ионов. Число взаи- модействующих ионов практически не ограничено и лимитируется в основном наличием свободного места на диске компьютера. В настоящее время программа ChemObjects работает с массивом, содержащим около 200 ионов. Эти ионы объединены в кластеры M3- и X3+ и соответствующие им внешнесферные (ВС) ионы противоположного заряда – ХМ и МХ. Кластеры M3- (центральный ион М+) и X3+ (центральный ион Х) близки по форме к кубу с ионной решеткой типа NaCl. Однако в отличие от правильного куба геометрия кластеров характеризуется не одним, а тремя параметрами, равновесные значения которых вычисляются в программном комплексе. В необходимых случаях внутренняя симметрия кластеров понижалась до уровня, характеризуемого 15 параметрами. ВС ионы могут рассматриваться как в качестве единого объекта, так и в диссоциированном состоянии: ХМ ® М+ + МХ и МХ ® Х + МХ. Учет диссоциации ВС ионов оказался необходим для анализа эффектов вращения молекул МХ (свободное или заторможенное вращение, величины потенциальных барьеров и т.д.) и исследования влияния этого вращения на параметры модельных структур [1,2]. Библиотека VRF_Support.dll Эта библиотека реализует в себе механизмы по поддержке файлов в формате VRF. Место этой библиотеки в разработанной системе при создании файла и сохранении в него результатов вариации можно видеть на рисунке 2. Библиотека логически разделена на два уровня – внешний и внутренний. 1. Внешний – совокупность экспортируемых функций и типов данных для использования VRF-файлов (создания, открытия для чтения, получения значения констант или варьируемых параметров и т.д.). 2. Внутренний – уровень буферов библиотеки, механизмов по реализации и поддержке, экспортируемых из DLL-функций, и по упрощению общения пользователя с этой библиотекой. Библиотека VRF_Grapher.dll является автоматически подключаемой службой экспорта VRF файлов из TChemistry в VRF_Grapher. Приложение VRF_Grapher.exe На основе библиотеки VRF_Support.dll было создано приложение VRF_Grapher.exe, которое позволяет строить графики из VRF-файлов и экспортировать их в другие форматы, например для переноса в Microsoft Excel или программу GRAPHER фирмы Golden Software. Приложение VRF_Grapher.exe позволяет выбирать в качестве осей абсцисс один из варьируемых параметров, а в качестве осей ординат – одну из функций, которая была рассчитана и находится в данном VRF-файле. График, который строит программа, является сечением многомерной поверхности с выбранными осями абсцисс и ординат и фиксированными значениями остальных варьируемых параметров из VRF-файла. Оставшиеся варьируемые параметры появляются для пользователя в качестве TrackBar’ов, которые при перемещении изменяют свое значение. А на графике можно видеть влияние этого параметра на выбранную функцию. Такая возможность существенно облегчает аналитическую работу с многомерными массивами результатов. Данное приложение также позволяет просматривать информацию из VRF-файла, настраивать вид и стиль графиков. Все это возможно за счет использования библиотеки VRF_Support.dll, которая берет на себя большую часть трудоемкой работы по извлечению необходимой части результатов многомерной вариации системы (учет количества варьируемых параметров, точности и числа рассчитанных функций в каждом шаге многомерной вариации), выполняя ее достаточно быстро с точки зрения конечного пользователя. В качестве среды разработки и реализации всех исполняемых файлов и динамически подключаемых библиотек была использована среда Borland C++ Builder 6. Список литературы 1. Kremenetsky V. Proceed. of Molten salts XIII, USA. The Electrochem Soc., Inc., 19, 448 (2002). 2. Кременецкий В.Г. // Тез. докл. на XVII Менделеевском съезде по общей и прикладной химии. – Казань. – 2003. - Т.1. - С. 462. 3. Форд У., Топп У. Структуры данных в С++. - М.: ЗАО “Издательство Бином”, 2000. – 816 с. |
Permanent link: http://swsys.ru/index.php?id=588&lang=en&page=article |
Print version Full issue in PDF (1.24Mb) |
The article was published in issue no. № 3, 2004 |
Perhaps, you might be interested in the following articles of similar topics:
- Оптимизация обработки информационных запросов в СУБД
- ДИНАМИКА-2 - программа для решения осесимметричных и плоских задач
- Функционально-информационные модели бухгалтерского учета
- Формирование программ развития больших систем административно-организационного управления
- Формулировка задачи планирования линейных и циклических участков кода
Back to the list of articles