Программа для визуального анализа структурных характеристик кристаллических объектов

Описание алгоритмов и архитектуры приложения. Визуализация элементарной ячейке на 2D пространстве. Трехмерные преобразования и проекции. Визуализация элементарной ячейке на 3D пространстве. Рассмотрение инструментов и методов разработки приложения.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 10.09.2020
Размер файла 987,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ПРАВИТЕЛЬСТВО РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

«ВЫСШАЯ ШКОЛА ЭКОНОМИКИ»

Факультет компьютерных наук

Департамент программной инженерии

Выпускная квалификационная работа

на тему Программа для визуального анализа структурных характеристик кристаллических объектов

по направлению подготовки 09.03.04 «Программная инженерия»

Выполнил студент группы БПИ161

4 курса бакалавриата образовательной программы

«Программная инженерия»

Е.М. Нанивская

Москва 2020

Реферат

Основой фундаментального и прикладного материаловедения является установление связи «состав - строение - способ (условия) получения - свойства», на основании чего становится возможным управление свойствами материала направленным изменением условий синтеза, которые по отдельности или вместе самым непосредственным образом влияют на его реальный состав и специфику строения (структуры).

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

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

В качестве языка программирования выступает С# с использованием технологий ASP.NET. В качестве среды, используемой для разработки выбрана Visual Studio 2019. Для реализации клиентской части выбраны языки HTML, JavaScript.

Работа содержит 42 страниц, 3 главы, 4 таблицы, 12 рисунков, 28 источников и 4 приложения.

Ключевые слова: материаловедение, визуализации кристаллических структур, веб-приложение.

Abstract

The establishment of the connection `composition - structure - obtaining method (conditions) - properties' is a ground of the fundamental and applied material science on whose basis the control at material's properties by directional change of synthesis conditions, which (separately or jointly) directly influence its real composition and structure's specifics. In this fundamental chain the composition and structure are basic.

The object of development is an application devoted to visualization of the crystal structures of inorganic compounds of different symmetries and their details. In turn, the application of the program will reduce the number of experiments using the “trial and error” method and it is predicted to get the right material with the necessary set of composition and structural parameters, however, a product that has all the necessary properties in Russian has not yet been developed.

This application will be a cross-platform web application. To store tabular values, it is provided to use a local database, which helps reduce the load when working with data, and also allows you to store and process constant values ??and save current changes throughout the entire time.

C # enters as a programming language using ASP.NET technologies. Visual Studio 2019 was chosen as the environment used for development. HTML and JavaScript languages were chosen for the implementation of the client part.

The work contains 42 pages, 3 chapters, 4 tables, 12 figures, 28 sources and 4 applications.

Keywords: materials science, visualization of crystal structures, web application.

Оглавление

приложение трехмерный ячейка визуализация

Список использованных определений и сокращений

Введение

1. Обзор методов и решений

1.1 Обзор основных источников, используемых в настоящей работе

1.2 Обзор существующих решений и аналогов

Выводы по главе

2. Описание алгоритмов и архитектуры приложения

2.1 Описание основного функционала программы

2.2 Кристаллическая решетка

2.3 Визуализация элементарной ячейке на 2D пространстве

2.4 Расчет межатомный расстояний

2.5 Расчет координационного окружения

2.6 Расчет валентных углов

2.7 Трехмерные преобразования и проекции

2.8 Визуализация элементарной ячейке на 3D пространстве

2.9 Расчет объема полиэдров

Выводы по главе

3. Инструменты и методы разработки приложения

3.1 Функциональные требования

3.2 Средства и инструменты разработки

3.3 Архитектура приложения

Выводы по главе

Заключение

Список используемой литературы

Список использованных определений и сокращений

Кристаллическая структура -- такая совокупность атомов, в которой с каждой точкой кристаллической решётки связана определённая группа атомов, называемая мотивной единицей, причём все такие группы одинаковые по составу, строению и ориентации относительно решётки.

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

Рентгеноструктурный анализ (рентгенодифракционный анализ) -- один из дифракционных методов исследования структуры вещества. В основе данного метода лежит явление дифракции рентгеновских лучей на трёхмерной кристаллической решётке.

Кристаллическая решётка -- вспомогательный геометрический образ, вводимый для анализа строения кристалла.

Длина химической связи -- расстояние между ядрами химически связанных атомов

Корреляция или корреляционная зависимость -- статистическая взаимосвязь двух или более случайных величин

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

Полиэдр - объединение многогранников не обязательно одинаковой размерности.

Сингония -- классификация кристаллографических групп симметрии, кристаллов и кристаллических решёток в зависимости от системы координат (координатного репера); группы симметрии с единой координатной системой объединяются в одну сингонию.

Решётка Браве -- понятие для характеристики кристаллической решётки относительно сдвигов.

Кристаллографические группы -- набор групп симметрий, которые описывают все возможные симметрии бесконечного количества периодически расположенных точек в трёхмерном пространстве.

Трансляция - это вектор, при переносе на который кристаллическая структура совмещается сама с собой.

Координационное число-- характеристика, которая определяет число ближайших частиц (ионов или атомов) в молекуле или кристалле.

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

Стехиометрические соединения - химические соединения, атомы которых соответствуют простым пропорциям целых чисел, и потому каждое такое соединение представляет собой точную химическую формулу.

Введение

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

В фундаментальной цепочке состав и структура являются основными. Для соединений Аn Хm (А-катион, Х-анион) с разным характером связи, который определяется составом, существуют свои правила устойчивости структуры. Для стабильных соединений с преимущественно ионным характером связи это 5 правил Полинга, основным из которых является 2-ое правило: «Для соединений с преимущественно ионным характером связи сумма валентных усилий катионов, сходящихся на анионах, должна быть равна или почти равна валентности аниона». [28]

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

Программы визуализации кристаллических структур являются неотъемлемым инструментом кристаллохимического анализа и позволяют проводить расчеты количественных характеристик структур - межатомных расстояний, валентных углов и объема полиэдра. Одним из наиболее популярных инструментов для визуализации - приложение для ПК “ Diamond” от немецкой компании “Crystallmpact”, которое работает на платформе Windows. Она предлагает обширный набор функций, которые позволяют легко моделировать любую произвольную часть кристаллической структуры из базового набора структурных параметров (ячейка, пространственная группа, атомные позиции). Однако данная программа не пригодна для проверки корректности определения состава соединений сложных композиций на основе расчета валентных усилий (не реализован данный функционал).

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

Целью работы является разработка программы для визуализации кристаллических структур неорганических соединений разных симметрий и их деталей.

Задачами работы являются:

1. Изучить методы 2D и 3D визуализации данных

2. Разработать отображение структуры на экран с возможностью размножения элементарной ячейки

3. Разработать методы построения отдельных полиэдр и их сочленения

4. Разработать пользовательский интерфейс

5. Предусмотреть возможность хранения всех основных данных (пространственные группы, соединения)

6. Предусмотреть возможность работы с разными соединениями, группами и структурами

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

8. Изучить сторонние библиотеки для представления результатов

9. Протестировать разработанный программный продукт

10. Разработать техническую документацию.

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

1. Обзор методов и решений

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

1.1 Обзор основных источников, используемых в настоящей работе

Второе правило Полинга - так называемое электростатическое правило - может быть сформулировано несколько по другому: В устойчивой существенно ионной структуре валентность каждого аниона, взятая с обратным знаком, точно или приблизительно равна сумме валентных усилий катионов первой координационной сферы: ZX== где ZX- формальный заряд аниона, - валентное усилие катиона, равное отношению его формального заряда ZA к координационному числу КЧА.

Было обнаружено, что «недосыщение» катионными усилиями анноны характеризуются в среднем более короткими связями с катионом, а «пересыщенные», наоборот, более длинными. Для структур с разными межатомными расстояниями силу валентных усилий можно рассчитать по формуле =, где R1- расстояние, которое оценивается в одну единицу валентного усилия, т.е. R1 - представляет собой эмпирический параметр, индивидуальный для каждого сорта атомов, R- экспериментальное значение межатомного расстояния. Формальный заряд (ФЗ) катиона (А) можно оценить по формуле =, зная его координационное окружение.

Формальный заряд катиона или аниона -условный заряд (в ряде случаев численно равный степени окисления), который обеспечивает электронейтральность стехиометрических соединений с учетом формульных коэффициентов (n и m) и нестехиометрических соединений при дополнительном учете свободных носителей заряда. В формулировке Полинга используется понятие «валентность», которое применимо для соединений с ковалентным типом связи. Однако правило Полинга можно с небольшими оговорками применить и для соединений с большой долей ковалентной составляющей связи.

1789 году Уильям Хиггинс опубликовал работу, в которой высказал предположение о существовании связей между мельчайшими частицами вещества. Однако точное и позже полностью подтверждённое понимание феномена валентности было предложено в 1852 году химиком Эдуардом Франклендом. [20]

Концепция валентности связей недавно нашла широкое применение в химии твердого тела. Она исторически сложилась из концепции числа связей применительно к металлам и интерметаллическим соединениям Полинга (1947), но вскоре после этого была применена к оксидам Bystrцm и Wilhelm (1951) и Zachariasen (1963). [7]

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

Модель основана на правиле валентной суммы из концепции электростатической валентности Полинга в 1929: сумма валентностей связи Sij вокруг любого иона, i, равна его валентности, Vi (формальное состояние окисления): , где сумма идет по всем соседним атомам j атома i.

Валентность связи Sij можно считать мерой электростатической связи (условия электронейтральность) между катионом и анионом, которая напрямую связана с силой связи и обратно коррелирует с длиной межатомного расстояния. Это может быть рассчитано: [9]

Из результатов структурных дифракционных исследований объектов:

· 1-ая информация (пространственная группа, параметры элементарной ячейки, координаты атомов) становится возможным определение структурных параметров - межатомных расстояний ФЗ =нi =e(R1-R)/0.37 ФЗ-формальный заряд катиона или аниона, который сравнивается с реальным значением R1- берется из таблицы Rdi - экспериментальные значения межатомных расстояний катион (А) -анион (Х): берется из предыдущих расчетов

· 2-ая информация (межатомные расстояния, валентные и другие углы; Критерий: , - должен быть меньше 5%. нi - валентное усилие из Формулы 1 на - формальный заряд аниона или «средневзвешенный формальный заряд» анионов, когда несколько анионов в составе соединений, формальный заряд катиона или «средневзвешенный формальный заряд» катиона, когда несколько катионов в составе соединений [10]

· Координационные числа и координационные полиэдры и способ их соединения и прочее), установление специфики строения - 3-ья информация (классификация и систематизация); Константа полиэдра: хс - формальный заряд катиона или формальный заряд «средневзвешенного катиона» в позиции ri Rdi - экспериментальные значения межатомных расстояний катион-анион

· Структурные эффекты; активные фрагменты структуры; процессы дефектообразования и т.д.), нахождение фундаментальной связи - 4-ая информация. Степень искажения полиэдра: = (di) 2/ (-1) di ri R - экспериментальные значения межатомных расстояний катион-анион. di=di-d, d = сумма ионных радиусов по системе Шеннона с учетом координационных чисел (КЧ) катиона и аниона или среднее экспериментальное межатомное расстояние катион- анион в данном полиэдре

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

1.2 Обзор существующих решений и аналогов

Таблица 1

Название

Визуализация структуры

Наличие web-интерфейса

Реализация функций

Бесплатность

Рус. яз. интерфейс

Хранение табличных значений

Diamond [1]

+

-

+

+

-

-

Materials Project [2]

+

+

-

+

-

-

Crystal Maker [3]

+

-

+

-

-

-

Shape Software [4]

+

+

-

-

-

-

XtalDraw [5]

+

-

-

+

-

-

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

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

Более того, ни одна из приведенных программ не имеет русскоязычный интерфейс, что делает программу более узкой, что является большим ограничением в использовании. Такие приложения, как Crystal Maker и Diamond не поддерживают web-интерфейс, что вносит ограничения на использование операционной системы (на данный момент данные приложения запускаются только на Windows). Ни одна из представленных программ не хранит основные табличные значения такие, как: электроотрицательность, таблица Шеннона с ионнымb радиусами, таблица с эмпирическими значениями R1, пространственные группы, что замедляет работу с выбранным соединением из-за обращений в другие источники информации для получения данных.

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

Выводы по главе

В главе был рассмотрен основной алгоритм «Метод валентных усилий», который позволит в дальнейшей части работы позволят производить расчеты структурных параметров. Также были изучены существующие аналоги на рынке, предоставляющие возможность визуализации кристаллических объектов. Кроме того, были сформулированы функциональные требования к разрабатываемому приложению (Приложение А. Техническое задание).

2. Описание алгоритмов и архитектуры приложения

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

2.1 Описание основного функционала программы

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

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

В качестве основных расчетных функций подразумевается:

· Расчет межатомных расстояний (катион-анион, анион- катион, катион-катион);

· Расчет объема элементарной ячейки и полиэдров;

· Расчет валентных углов между атомами катионов и анионов

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

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

2.2 Кристаллическая решетка

Основным элементом визуализации структуры является кристаллическая решетка. Поэтому важно понимать возможные варианты представления и их влияние на отображение на проекциях.

Все кристаллические решетки подразделяются на семь кристаллических систем в зависимости от пространственной симметрии.

Помимо основных трансляций, на которых строится элементарная ячейка, в кристаллической решётке могут присутствовать дополнительные трансляции, называемые решётками Браве. В трёхмерных решётках бывают гранецентрированная (F), объёмно-центрированная (I), баз центрированная (A, B или C), примитивная (P) и ромбоэдрическая (R) решётки Браве. [11]

Рис. 1 Типы центрировок решеток Браве

Каждая элементарная ячейка задается с помощью трех базовых векторов: A, B, C по осям X, Y, Z соответственно и - углами между ними. В зависимости от кристаллографических данных происходит отображение на двухмерном и трехмерном пространстве.

Классификация решёток по симметрии: [16]

Таблица 2

Объем элементарной ячейки рассчитывается по следующей формуле вне зависимости от классификации решетки:

2.3 Визуализация элементарной ячейке на 2D пространстве

Одно из функциональных требований - визуализация 2D структуры, то есть отображение трех координатных проекций на XY, YZ, XZ.

Идентичные материальные частиц, такие как атомы, ионы и молекулы, закономерно повторяются в трехмерных измерениях из-за основного свойства кристаллов - периодичность строения.

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

В 1890 году академик Е. С. Федоров вывел окончательный математический? вывод всех пространственных групп симметрии. Всего их получилось 230. Каждой пространственной группе присвоен порядковый номер от 1 до 230.

Изначально при построении проекции любого соединения известно:

· Тип симметрии

· Параметры элементарной ячейки

· Пространственная группа

· Координаты (X, Y, Z) выбранного соединения

Поэтому, построение проекции задаётся следующим образом:

На рисунках 2 - 6 рассматривается соединения на оси XY. Для наглядности алгоритма угол между данными осями - . Точками на рисунке отмечены построенные атомы соответствующим смещением в .

1. На вход подается координаты атома (X, Y, Z) и параметры элементарной ячейки

Рис. 2 Параметры ячейки для проекции XY: A = 10.040, B = 4.401, = 120, где A, B - параметры элементарной ячейки, а - угол между ними

2. Производится расчет точки для смещения по оси X

При отображении элементарной ячейки на проекции особое внимание отводится возможному смещению из-за углов не равных 90 градусов. Для этого: производим умножение координаты атома на параметр элементарной ячейки (для А соответствует координата X, B - Y, C - Z) - получается координата для ромбической кристаллической решетки.

И произвести смещение относительно угла. Для этого необходимо воспользоваться теоремой Пифагора в результате будет получена формула: , где угол выражается в радианах. Результат: получена координата X

То есть, на рисунке 3 отмечено lineX - параметр элементарной ячейки (в данном случае A = 10.040). Пересечение красной линии и lineX - произведение координаты атома на данных параметр (X * lineX = temp).

Остается получить смещение по оси X - пересечение красной линии и красной точки (атом I):

Рис. 3 Расчет координаты точки для смещения относительно оси X

3. Произвести расчет смещения вектора X

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

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

Рис. 4 Смещение относительно перпендикулярной оси координат

4. Произвести расчет точки для смещения по оси Y

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

Данная формула выведена следующим образом: - отображение при угле в 90 = temp (пересечение черной и синей линии на рисунке 5). Для определения длины вектора зеленой линии:

k

Рис. 5 Расчет смещения координаты Y точки (предварительный расчет)

Рис. 6 Расчет смещения координаты Y точки (окончательный вариант)

Остается вычислить итоговое смещение по оси Y (красная линия - res). Для этого: .

Следует отметить, что данное смещение всегда необходимо брать со знаком минус, так как результат вычислений будет направлен влево относительно направления вектора Y.

5. Объединение результата и получение координаты Y

Для этого необходимо сложить результаты в 3 и 4 пункте текущего алгоритма и добавить координату точки элементарной ячейки по оси Y (произведение координаты атома на параметр - B)

Рис. 7 Левый плюс - результат получения в 3 пункте, правый - получение текущей координаты атома, минус - результат полученный в 4 пункте

Также, обращаем внимание, если угол между двумя векторами меньше 90 градусов, то результат, полученный в пункте 3 не учитываем. Так как результат, полученный в пункте 3 будет имеет отрицательное значение, а также посмотрев, на рисунок 8 видно, что данное смещение не влияет на отображение Y координаты атома.

Рис. 8 Верхний плюс - получение текущей координаты атома, минус - результат полученный в 4 пункте

6. Как итог, получены координаты X, Y для выбранной элементарной ячейки и остается их корректно отобразить на экране.

2.4 Расчет межатомный расстояний

Устойчивость кристаллической решетки определяется за счет межатомного взаимодействия. То есть, чем сильнее межатомное взаимодействие, тем более устойчивой является кристаллическая решетка. [17] В таблице 3 приведены формулы для расчет межатомных расстояний в каждой группе симметрии.

Таблица 3

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

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

2.5 Расчет координационного окружения

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

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

Прямые линии, соединяющие центры ближайших атомов или ионов в кристалле, образуют координационный многогранник, в центре которого находится данный атом - в дальнейшем будем называть «полиэдром». [13]

Плотность упаковки вещества отображает число ближайших соседей. Чем больше координационное число, тем больше плотность и соответственно свойства вещества ближе к металлическим.

Изначально известны координаты (X, Y, Z) катиона, вокруг которого необходимо построить полиэдр и название аниона, который входит в состав окружения.

Алгоритм нахождения координационного окружения содержит следующие шаги:

1. Найти все координаты выбранного аниона. Для этого размножаем координаты атома на пространственную группу.

2. Произвести расчет межатомных расстояний между анионами и выбранным катионом (в соответствии пункта 2.3)

3. Рассчитать вклад в валентность усилий, используя: , где - координационное число, - расстояние между выбранным атомом и анионом, e - exp; Данная формулы выводится из 2 правила Полинга

4. Отсортировать список в порядке убывания по межатомным расстояниям

5. Добавлять атомы в координационное окружение, пока промежуточный вклад (сумма всех предыдущих) меньше контрольного (задается пользователем) или влияет не сильно (осуществляется проверка до 3 знаков), что соответствует формуле: + t < , где - максимальный вклад, а - промежуточному вкладу всех атомов в координационное окружение

2.6 Расчет валентных углов

Для определения геометрии молекул необходимо знание валентных углов.

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

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

Изначально получены координаты (X, Y, Z) трех атомов, между которыми необходимо рассчитать координационный угол. Произвести расчет межатомных расстояний между текущими атомами и воспользовавшись теоремой косинусов:

получить значение конкретного угла в градусах.

2.7 Трехмерные преобразования и проекции

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

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

Как известно, все необходимые для построения проекции и установления нужного ракурса преобразования координат описываются матрицами размером 4 на 4 с использованием матрицы поворота вокруг указанной оси на заданный угол, масштабирования вдоль любой оси, а также проецирования, сдвига и перспективы на главную координатную плоскость. [14]

- матриц поворотов, где X, Y, Z - соответственно углы поворотов

Матрица преобразований выглядит следующим образом:

, где

matr3x3 - Матрица получена за счет перемножения трех матриц поворотов без использования последней строки и столбца)

matr3x1 - Матрица получена в результате преобразования в перспективе,

matr1x3 - Матрица, которая производит перенос и matr1x1 - отвечает за изменение масштаба

Для перевода координаты (X, Y, Z) в (X, Y) необходимо:

1. Создание однородного вектора vec = (X, Y, Z, 1), где X, Y, Z - соответствуют первоначальным координатам атома.

2. Произвести умножение вектора на матрицу преобразований, также в случае, если масштаб не равен 0, то произвести деление на масштаб.

3. Полученные координаты X, Y и будут являться результатом преобразований

2.8 Визуализация элементарной ячейке на 3D пространстве

В пункте 2.7. объяснен алгоритм преобразования 3D точки на двухмерном пространстве. Поэтому остается реализовать алгоритм визуализации элементарной ячейке. При отображении «невидимые» ребра должны быть тоньше и измененного цвета, чем границы на переднем плане.

В первую очередь определить перспективную константу (место, с которого ведется наблюдение). Это значение будет определять поведение «камеры», которая моделируется в методе проекта. При увеличении значения, перспектива становится все менее и менее видимой, и все будет выглядеть плоским. При понижении значения, перспектива будет намного более интенсивной. [15]

Дальше следует найти максимальное расстояние и количество вершин, которые отдалены от выбранной перспективы. Для этого следует воспользоваться следующим алгоритмом: [19]

1. Изначально определить максимальное расстояние = -1 и считать, что отдалена только одна точка

2. Произвести расчеты расстояний у всех вершин параллелепипеда:

a. , где x, y, z - координаты, точек ([i] - выбранного места, [j] - вершины параллелепипеда) - расчет расстояния между перспективной константной и вершиной параллелепипеда

b. В случае, если полученное расстояние больше, чем максимально определенное, то обновляем счетчики, иначе - увеличить количество отдаленных точек

В данной ситуации возможны следующие три варианта:

1. Максимально отдалены - 4 вершины. Из этого можно сделать вывод, что видна только одна грань, а значит все линии видны

2. Максимально отдалены - 2 вершины. Видны только 2 грани, у которых одно общее ребро, соединяющее эти две точки. Дальше производится работа над удалением невидимых ребер:

a. Изначально определить все ребра, как «невидимые»

b. Найти основное ребро, которое является главным и определить его «видимым»

c. Найти ребра, которые являются смежными к главному ребру

d. Найти заключительные ребра, которые входят две вершины полученные в предыдущем пункте

3. Максимально отдалена - 1 вершина. Видны только те грани, в которые входит данная вершина. И определить их можно следующим образом:

a. Изначально определить все ребра, как «невидимые»

b. Найти ребра, в которые входит данная вершина

c. Найти оставшиеся ребра, а именно найти те ребра, которые состоят из вершины полученной в предыдущем пункте

2.9 Расчет объема полиэдров

Расчет объема правильных многогранников является важной задачей в определении полиэдра и его основных параметров.

Многогранник -- это трехмерная форма, заключенная в конечное число граней. Каждое лицо образовано многоугольником. Грани встречаются вдоль отрезков прямых, называемых ребрами, а ребра встречаются в точках, называемых вершинами. [21]

Существует несколько подходов для определения объема многогранника. Главный подход состоит в том, чтобы разложить текущий полиэдр на набор пирамид, имеющих общий пик (в данном случае - выбранный катион).

Затем необходимо сложить объемы этих пирамид, чтобы найти общий объем исходного многогранника. Для применения данной техники необходимо: найти объем каждой пирамиды. Объем пирамиды -- это площадь базового многоугольника, умноженная на расстояние от базовой плоскости до начала координат (, где S - площадь основания, а h - перпендикулярное расстояние от основания до вершины).

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

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

Чтобы разделить грань, необходимо соединить первую вершину с каждым несмежным ребром по очереди. Объем тетраэдра, образованного одним треугольником и началом координат, является определяющим фактором 3х3 из трех вершин треугольника. Например, треугольная пирамида ABCD с координатами A (3;2;1), B (2;4;8), C (1;2;1), D (6;2;1). Тогда определяющие вектора: В данном случае: X, Y, Z - координаты вектора. - координаты первой точки, - координаты второй точки.

Далее определяем объем пирамиды, как: V = , где | | - является определителем матрицы. В данном случае определить матрицы 3 на 3 считается по следующей формуле:

Выводы по главе

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

3. Инструменты и методы разработки приложения

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

3.1 Функциональные требования

Программа для визуального анализа структурных характеристик кристаллических объектов должна удовлетворять следующим функциональным требованиям:

1) Программа должна предусматривать возможность визуализации соединения на 2D и 3D проекции, сочленения координационных полиэдров и отдельных полиэдров с возможностью изменять масштаб;

2) Программа должна предусматривать функционал вращения 3D модели структуры, отдельных полиэдров, сочленения координационных полиэдров;

3) Программа должна реализовывать расчет объема элементарной ячейки и полиэдров;

4) Программа должна реализовывать расчета валентных углов;

5) Программа должна предусматривать возможность построения зависимостей между структурными параметрами отдельных соединений и разных (для сравнения и сопоставления)

6) Программа должна предусматривать функционал размножение элементарной ячейки с использованием трансляций по трем координатным направлениям, а также контролировать добавление ячейки на экран;

7) Программа должна определять координационного окружения катионов анионами X (определение координационных чисел) с различающимися межатомными расстояниями катион-анион () с использованием метода валентных усилий (the bond-valence method): - валентность катиона (ионы или ), окруженного анионами (ионы );

8) Программа должна предусматривать возможность введения нового, дополнительного атома (например, активатора Bi c разными формальными зарядами) и определение его координационного окружения, формального заряда и величины для конкретного формального заряда;

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

Данные функциональные требования к расширению для визуализации кристаллических объектов также представлены в графическом виде на UML-диаграмме прецедентов использования (рис. 9).

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

3.2 Средства и инструменты разработки

При выборе технологий для разработки текущего приложения использовались следующие объективные критерии:

· Размер и тип приложения

· Определение основного функционала

· Сложность проекта

· Наличие готовых библиотек и решений

· Доступные инструменты разработки

· Кроссплатформенность

· Возможность внедрения дополнительного функционала

Также немалую роль сыграли следующие аспекты:

· Текущий опыт и уровень знаний языков программирования

· Дальнейшая поддержка

· Гибкость решения

Таким образом, выбирая по данным критериям происходит экономия времени и сил для реализации текущего проекта. В таблице 4 приведено описания выбранных технологий и инструментов, а также приведено обоснования, для чего они нужны в проекте.

Таблица 4

Обоснование выбора технологий и инструментов

Инструмент / Технология

Применение в проекте

Описание

Обоснование

С#

Язык программирование

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

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

Платформа.NET

Платформа для создания приложений. В данном случае - ASP.NET

Общеязыковая среда исполнения

- Поддержка нескольких языков

- Кроссплатформенность

- Мощная библиотека классов

- Разнообразие технологий

- Автоматическая сборка мусора [23]

Phoria [24]

Дополнительная библиотека для отображения 3D объектов

Библиотека JavaScript для простой 3D-графики на холсте 2D рендерера.

Работает на любом устройстве, которое может отображать HTML5 Canvas

JavaScript

Язык программирования frontend-части приложения

Интерпретируемый язык программирования, который своевременно обновляет информацию на странице

Возможность реализовывать сложное отображение веб-страницы - отображение представлений на 2D и 3D проекции, проверка корректности ввода данных в настройках

HTML

Отображение данных, контента веб-страницы

Язык разметки, определяющий базовое содержание страницы и расположении блоков

- Базовый строительный блок

- Отображение всех необходимых элементов на странице

CSS

Стилизация приложения

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

- Избегание дублирования информации для стилей

- Оформление представления внешнего вида страниц

IIS

Развертывание web - приложения

Сервис для работы с веб-сервером

- Работает с протоколами HTTP/HTTPS

- Поддержка компании Microsoft

SQL Server

База данных, хранение информации

Высокопроизводительная СУБД для работы как в локальной сети, так и в облачной.

- Хранение данных приложения

- Упрощение развертывания

- Интеграция структурированных данных

TortoiseSVN [25]

Контроль версий

Простая в использовании программа контроля версий

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

- Возможность перемещать файлы

3.3 Архитектура приложения

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

ASP.Net -- это инфраструктура, которая используется для разработки веб-приложений. [25] Веб-страницы предоставляют простой способ объединения HTML, CSS и серверного кода.

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

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

MVC разделяет приложение на три компонента - Модель, Представление и Контроллер.

· Модель: представляет оболочку данных. Класс в C # используется для описания модели. Объекты модели хранят данные, извлеченные из базы данных.

· Представление: пользовательский интерфейс. Просмотр данных модели дисплея для пользователя, а также возможность их изменять. Представление в ASP.NET MVC -- это HTML, CSS и некоторый специальный синтаксис (Razor), который облегчает взаимодействие с моделью и контроллером.

· Контроллер: обрабатывание запроса пользователя. В данном приложении пользователь использует представление и вызывает HTTP-запрос, который будет обработан контроллером. Контроллер обрабатывает запрос и возвращает соответствующее представление в качестве ответа. [26]

Клиент взаимодействует с серверами посредством HTTP запросов и ответов. В момент ввода URL-адреса в браузере, пользователь переходит на веб-сервер и направляется на контроллер. Контроллер выполняет связанное представление и модели для этого запроса, создает ответ и отправляет его обратно в браузер. Данное взаимодействие показано на рисунке 8.

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

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

· Никакой код не генерируется самостоятельно

· База является обычным хранилищем, ее легко удалить

· Простая установка среды разработки: достаточно скачать код и запустить проект

Рис. 12 Подход Code-First

Как видно на рисунке выше, Entity Framework API создает базу данных на основе классов и конфигурации домена приложения. Что означает, что сначала необходимо начать кодирование на C#, а затем Entity Framework создает базу данных из кода приложения. [27]

Выводы по главе

В главе были рассмотрены основные инструменты и технологии, используемые в приложении, описаны архитектура приложения и её составляющие. В качестве основных инструментов на backend-части используется язык С#, который позволяет реализовать оболочку данных и взаимодействие модели и контроллера. В то же время для frontend-части используются языки: JavaScript, HTML, CSS, что способствует отображению представления на страницах.

При работе с СУБД используется подход Code-First, способствующих первоначальному написанию кода, а дальше генерации базы данных.

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

Заключение

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

Аналогичная процедура возможна для новых соединений при изменении состава - изоморфное замещение в катионной и анионной позициях, а при необходимости и симметрии, с дальнейшим сопоставлением рассчитанных межатомных расстояний катион-катион, катион-анион, анион-анион и валентных углов. [18]

Расчет валентных усилий для конкретного сочетания катион-анион (т.е. для конкретного состава соединений) позволяет ограничить число приемлемых для данного вещества кристаллических структур, что является основой прогнозирования новых соединений, а также может служить контролем правильности определения кристаллической структуры.

На основе основной триады фундаментальной связи «состав-строение-свойства» становится возможным управление свойствами материала направленным изменением состава, а отсюда и строения.

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

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

В качестве возможных дальнейших шагов по развитию системы можно рассматривать:

· Внедрение данного продукта на компьютер заказчика

· Модернизация и улучшение алгоритма построения и определения полиэдров

· Нахождение пустот в структуре с вычислением их размеров и координат центров

· Построение зависимостей между структурными параметрами отдельных соединений и разных (для сравнения и сопоставления)

· Расчет валентных усилий

· Объединение функционала других программ

· Модернизация загрузки соединений путем добавления файла

Список используемой литературы

1. “Crystal and Molecular Structure Visualization”// [Электронный ресурс]: Diamond. Режим доступа: https://www.crystalimpact.com/diamond/, свободный. (дата обращения: 04.02.2020).

2. The Materials Project // [Электронный ресурс] Режим доступа: https://materialsproject.org/, свободный. (дата обращения: 21.11.2019).

3. CrystalMaker // [Электронный ресурс] Режим доступа: https://library.stanford.edu/science/software/crystalmaker, свободный. (дата обращения: 21.11.2019).

4. Shape Software // [Электронный ресурс]. Режим доступа: http://www.shapesoftware.com/00_Website_Homepage/, свободный. (дата обращения: 15.02.2020).

5. XtalDraw // [Электронный ресурс]. Режим доступа: https://www.geo.arizona.edu/xtal/xtaldraw/xtaldraw.html, свободный. (дата обращения: 15.02.2020).

6. Основы кристаллохимии // [Электронный ресурс]. Режим доступа: http://icchair.niic.nsc.ru/lectures/4.shtml, свободный. (дата обращения: 21.03.2020).

7. Валентность // [Электронный ресурс]. Режим доступа: https://en.wikipedia.org/wiki/Valence_(chemistry), свободный. (дата обращения: 15.02.2020).

8. N. E. Breseand M. O'Keeffee. “Bond-Valence Parameters for Solids” 1991, pp. 1-4.

9. David Brown. “The Chemical Bond in Inorganic Chemistry: The Bond Valence Model, Edition 2” 2016, pp. 16-22.

10. Olivier Charles Gagnй. “Comprehensive derivation of bond-valence parameters for ion pairs involving oxygen” 2015, pp. 562-578.

11. Основы кристаллохимии // [Электронный ресурс]. Режим доступа: https://portal.tpu.ru/SHARED/e/EIKUPREKOVA/Teaching/Tab3/Tab/lection%206.pdf, свободный. (дата обращения: 04.04.2020).

12. ПРОСТРАНСТВЕННЫЕ ГРУППЫ СИММЕТРИИ // [Электронный ресурс]. Режим доступа: http://repo.ssau.ru/bitstream/Uchebnye-posobiya/Prostranstvennye-gruppy-simmetrii-Elektronnyi-resurs-ucheb-posobie-po-specialnosti-040501-Fundam-i-priklad-himiya-i-napravleniya-040301-Himiya-68099/1/Сережкин%20В.Н.%20Пространственные%20группы.pdf, свободный. (дата обращения: 16.04.2020).

13. Координационное число // [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/Координационное_число, свободный. (дата обращения: 20.04.2020).


Подобные документы

  • Назначение и возможности разработанного приложения для визуализации картографической информации. Хранимые процедуры, функции и триггеры. Взаимодействие пользователя с приложением. Описание экранной формы по работе с картами. Визуализация карты в MS Visio.

    курсовая работа [2,1 M], добавлен 14.08.2014

  • Задача о движении однородного плоского тела круглой формы в пространстве по наклонной плоскости. Давление распределено по закону Герца. Результаты решения систем, а также их наглядная визуализация в математическом пакете Maple 11 и Macromedia Flash 8.

    дипломная работа [2,8 M], добавлен 15.06.2013

  • Характеристика объекта автоматизации. Создание многоуровневой архитектуры приложения, отладка метода безошибочной идентификации пользователей системы. Разработка нестандартного метода преобразования объектов базы данных в объекты классов приложения.

    курсовая работа [395,4 K], добавлен 28.04.2015

  • Разработка информационной системы "Больница" на основе Java EE-технологий. Проект и реализация трехслойного enterprise-приложения, работающего с базой данных больницы, его структура. Предметная область; визуализация архитектуры с помощью UML-диаграмм.

    курсовая работа [2,0 M], добавлен 22.10.2012

  • Принципы программирования и приоритеты использования библиотеки OреnG1, ее архитектура, описание математического аппарата и проекции. Разработка процедуры визуализации трехмерной сцены, подсистемы управлениями событиями и руководства пользователя.

    курсовая работа [1,0 M], добавлен 26.06.2011

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

    курсовая работа [3,1 M], добавлен 19.01.2017

  • Общее описание разрабатываемого приложения, его актуальность и сферы практического применения. Выбор среды разработки и языка программирования, 3D-движка. Архитектура приложения, интерфейса и его главных элементов, взаимодействие с пользователем.

    дипломная работа [317,5 K], добавлен 10.07.2017

  • Бесплатная среда разработки программного обеспечения с открытым исходным кодом для компилятора Free Pascal. Почему Lazarus такой популярный. Корректность введенных данных. Использование основных методов визуализации в среде программирования Lazarus.

    курсовая работа [695,5 K], добавлен 19.04.2013

  • Платформа Unity 3D как средство разработки компьютерных деловых игр. Рассмотрение реализации взаимодействия между подсистемой проведения деловых игр и модулем визуализации. Формирование игровых уровней на примере компьютерной игры "Проезд перекрестка".

    дипломная работа [2,8 M], добавлен 22.08.2017

  • Разработка программы для сбора и анализа информации об автобусах на парковке. Назначение и область применения. Алгоритм в словесной форме. Состав технических и программных средств. Разработка приложения в среде визуального программирования C++Builder 6.

    курсовая работа [1,5 M], добавлен 06.09.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.