Перейти к содержанию
Форум химиков на XuMuK.ru.

Графические утилиты для кристаллографистов


Linkey

Рекомендуемые сообщения

🚑 Решение задач, контроши, рефераты, курсовые и другое! Онлайн сервис помощи учащимся. Цены в 2-3 раза ниже! 200 руб. на 1-й заказ по коду vsesdal143982

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

 

Изображение

 

Тут надеюсь понимают, что ячейку можно размножить. Вот этот же кристалл в варианте ячеек 2*2*2:

 

Изображение

 

Как видите, уже ячейку 2*2*2 анализировать сложно, а тем более 3*3*3. Нужно придумать утилиты, помогающие что-то понять. В моей программе есть "извлекатор" фрагментов: вы можете кликнуть на атом, выбрать пункт меню, и далее нажимать + и отображаемый фрагмент будет разрастаться по связям:

 

Изображение

 

Мне сказали, что при анализе кристаллов часто сложновато понять что есть за границами ячейки: если размножать её, становится слишком много атомов, поэтому имеет смысл выделить атом на границе ячейки и достроить его продолжение "извлекатором". Я пока не понял, нужно ли добавлять отдельный пункт меню в программе для этого. Но я скоро сделаю такую опцию: можно будет задать в настройках "извлекатора", что при разрастании (экспанде) фрагмента связи между некоторыми типами атомов игнорируются. Вернусь к самому верхнему рисунку, ячейка 1*1*1. Я могу указать, что при экспанде игнорируются все связи с атомом цинка; потом я выделю все атомы в отображённой ячейке 1*1*1, и буду нажимать + до тех пор пока оно не перестанет меняться. Получится такая картинка:

 

Изображение

 

Тут уже видно что это линейный одномерный кристалл.

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

Изменено пользователем Linkey
Ссылка на комментарий
  • Linkey изменил название на Графические утилиты для кристаллографистов
В 01.07.2025 в 11:24, Linkey сказал:

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

 

Изображение

 

Тут надеюсь понимают, что ячейку можно размножить. Вот этот же кристалл в варианте ячеек 2*2*2:

 

Изображение

 

Как видите, уже ячейку 2*2*2 анализировать сложно, а тем более 3*3*3. Нужно придумать утилиты, помогающие что-то понять. В моей программе есть "извлекатор" фрагментов: вы можете кликнуть на атом, выбрать пункт меню, и далее нажимать + и отображаемый фрагмент будет разрастаться по связям:

 

Изображение

 

Мне сказали, что при анализе кристаллов часто сложновато понять что есть за границами ячейки: если размножать её, становится слишком много атомов, поэтому имеет смысл выделить атом на границе ячейки и достроить его продолжение "извлекатором". Я пока не понял, нужно ли добавлять отдельный пункт меню в программе для этого. Но я скоро сделаю такую опцию: можно будет задать в настройках "извлекатора", что при разрастании (экспанде) фрагмента связи между некоторыми типами атомов игнорируются. Вернусь к самому верхнему рисунку, ячейка 1*1*1. Я могу указать, что при экспанде игнорируются все связи с атомом цинка; потом я выделю все атомы в отображённой ячейке 1*1*1, и буду нажимать + до тех пор пока оно не перестанет меняться. Получится такая картинка:

 

Изображение

 

Тут уже видно что это линейный одномерный кристалл.

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

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

Ссылка на комментарий
В 02.07.2025 в 18:08, Вадим Вергун сказал:

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

Не понял, что за расчёт размеров? Посчитать объём полости? А как дать программе понять, что полость это не шар а куб? И какова цель такого подсчёта?

Ссылка на комментарий
В 03.07.2025 в 05:45, Linkey сказал:

Не понял, что за расчёт размеров? Посчитать объём полости? А как дать программе понять, что полость это не шар а куб? И какова цель такого подсчёта?

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

Ссылка на комментарий
В 03.07.2025 в 17:51, Вадим Вергун сказал:

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

Для каких задач может быть полезно подсчитать объём полостей?

Ссылка на комментарий
В 04.07.2025 в 21:34, Linkey сказал:

Для каких задач может быть полезно подсчитать объём полостей?

Не объем а скорее размеры. Для того чтоб прикинуть какие молекулы вещество сможет адсорбировать.

  • Согласен! 1
Ссылка на комментарий
  • 1 месяц спустя...
В 04.07.2025 в 22:21, Вадим Вергун сказал:

Не объем а скорее размеры. Для того чтоб прикинуть какие молекулы вещество сможет адсорбировать.

Ещё вопрос - стоит добавить ещё варианты фигур, кроме шара, цилиндра и октаэдра, которые можно вписать в полость? Например ещё прямоугольный параллелепипед? Программа переберёт все ориентации фигуры, и разные варианты размеров/формы, и найдет параметры фигуры наибольшего объёма, которая в полость влезает.

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

Изменено пользователем Linkey
Ссылка на комментарий
В 14.08.2025 в 17:03, Linkey сказал:

Ещё вопрос - стоит добавить ещё варианты фигур, кроме шара, цилиндра и октаэдра, которые можно вписать в полость? Например ещё прямоугольный параллелепипед? Программа переберёт все ориентации фигуры, и разные варианты размеров/формы, и найдет параметры фигуры наибольшего объёма, которая в полость влезает.

Это было бы отлично. Явно кому-то пригодится, чем больше вариантов фигур тем лучше.

Ссылка на комментарий

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.