Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261

Структура данных для ОЦК и ГЦК решеток

09.10.2009, 00:58. Показов 4383. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Вопрос носит скорее теоретический характер. Изначально передо мной ставилась задача промоделировать процесс осаждения и миграции атомов на подложку заданного размера, и визуально отобразить полученный кристаллит. В данном случае использовалась простая кубическая решетка, а в качестве структуры данных для хранения координат осаждаемых атомов - трехмерные stl-векторы. Задача решена. Но теперь возникла необходимость моделирования этих процессов с использованием других типов решеток, а именно - ОЦК и ГЦК. Сразу возник вопрос - как хранить координаты атомов в подобной ситуации? Ведь трехмерными векторами уже не отделаешься. Понимаю, что далеко не все знакомы с подобными понятиями, потому прикрепляю изображение, наглядно иллюстрирующее типы необходимых структур решеток:
http://pic.ipicture.ru/uploads... 6a1Zh5.gif
а) гранецентрированная кубическая (ГЦК);
б) объемноцентрированная кубическая (ОЦК).
Есть какие-нибудь идеи? Заранее спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.10.2009, 00:58
Ответы с готовыми решениями:

Комп для CST Studio и HFSS. Расчет единичный антенн и антенных решеток
Здравствуйте, необходимо собрать компьютер, с бюджетом до 300к рублей для пользования программ HFSS, CST Studio и Mathematics. Честно...

Структура данных для программы
Приветствую всех. Не могу вот в программе выбрать структуру данных. Подскажите пожалуйста. Структура должны быть примерно такой: id_p...

Структура данных для поиска
Нужно: 1. добавлять элементы 2. определять, сколько элементов больше заданного числа (length $ filter (\x -> x > a)) Обе...

8
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
09.10.2009, 01:01
почему не отделаешься? пространство же трехмерное%)
0
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
09.10.2009, 01:16  [ТС]
Цитата Сообщение от Lolcht0 Посмотреть сообщение
почему не отделаешься? пространство же трехмерное%)
как в таком случае организовать связь с элементами, которые располагаются в центральной части каждой грани, а также - непосредственно в самом центре куба?.. и как получать их координаты?..
0
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
09.10.2009, 01:23
какие именно связи нужно организовать? между чем и чем? и координаты получить, исходя из каких данных? я же не знаю всех тонкостей модели, которая у вас там используется, вот поэтому и задаю глупые вопросы, как вам может показаться))
если ранее каждый атом задавался трехмерным вектором, то что мещает и сейчас задать его трехмерным вектором? или вектором задавалось что-то другое? в любом случае, координаты можно в классическом случае вычислить по правилам тригонометрии, если заданы координаты атомов вершин решетки=)
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
09.10.2009, 06:08
немного непонятно, как идет процесс моделирования.
и что именно моделируется.
какие входные условия модели?
в реальных условия параметров, влияющих на структуру решетки, несколько десятков, начиная от плотности раствора и состава, и заканчивая собственным магнитным полем кристаллической решетки.
соответственно, неясно, координаты каких атомов нужно хранить?
только тех, что уже в решетке, или тех, что в растворе тоже?
уточните, подумаю, чем помочь.

Не по теме:

я когда-то занимался химией твердого тела... :)

0
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
09.10.2009, 13:45  [ТС]
Изначально рассматривался общий случай, без привязки к какому-то конкретному материалу. Потому и использовалась идеальная решетка. В качестве параметров выступали лишь кол-во осаждаемых атомов, их частота осаждения/миграции, а также - размер подложки. Угол осаждения, температура и т.п. не учитывались. Собственно сейчас задача та же самая, но необходимо изменить тип решетки с простой на ОЦК и ГЦК. Не могу придумать, как хранить элементы в памяти. Ну, к примеру, возьмем ОЦК структуру: идет первый слой из 4х элементов; второй слой - 1 элемент; третий - опять 4. Так вот проблема в том, что x и y = const. Динамически меняется лишь z-координата в процессе осаждения. Во втором слое у нас в любом случае будет меньше элементов, чем в первом и третьем при полном заполнении пространства атомами. И как в таком случае выделять память под элементы, если в некоторых слоях должно быть заведомо меньше ячеек, в которые могут попасть атомы? Аналогичная ситуация и с ГЦК решеткой.

Добавлено через 14 минут
А сам процесс очень прост: атомы по одному осаждаются на подложку заданного размера, при соприкосновении с поверхностью происходит процесс миграции и занятия идеальных кристаллографических позиций. В итоге получается некая конечная структура, которая в последствии будет использоваться для изучения свойств конкретного материала. Ну естественно задача учебная, привязки к материалам нет. Но некоторые свойства по типу шероховатости поверхности при определенных условиях получить можно.
0
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
09.10.2009, 14:01
в каждом слое выделять ячейки и для "боковых" и для "центральных" атомов, но в некоторых слоях фактически некоторые ячейки будут "пустовать"
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
10.10.2009, 06:20
ArtOfLife,
я все равно, смутно понял, что именно моделируется.
но понял в чем проблема.
как вариант,
можно делать квадратную матрицу расположения атомов для каждого слоя.
грубо говоря, есть слой N, и атомы в нем расположены в некоторых позициях.
Например, для кубической решетки, можно записать так:
слоев 1.
слой 1:
11
11

Для ГЦК:
слоев 2.
слой 1.
10
01
слой 2.
01
10

Для ОЦК:
слоев 2.
слой 1.
10
00
слой 2.
00
01

моделируемое поле в каждом слое представляет собой множество смежных квадратиков с описанной выше схемой размещения атомов.
ну, а по координате z - понятно, сами слои.
0
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
11.10.2009, 00:27  [ТС]
Почему-то меня потянуло изобретать велосипед, когда решение столь элементарно. Patch, благодарю за свежие мысли! Решил проблему следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// ...
typedef vector<int> vec_1d;
typedef vector<vec_1d> vec_2d;
typedef vector<vec_2d> vec_3d;
/* ...
Вводим 3 состояния:
0 - ячейка доступна, но пуста
1 - ячейка доступна и заполнена атомом
2 - ячейка недоступна
... */
vec_3d frames(z, vec_2d(x, vec_1d(y, 2))); // делаем все ячейки недоступными
 
/* Открываем доступ ячейкам в соответствии с выбранной структурой решетки,
параллельно заполняя подложку (первые 3 слоя) атомами */
for( int i = 0; i < z; i++ )
{
    for( int j = 0; j < x; j++ )
    {
        for( int k = 0; k < y; k++ )
        {
            switch (structType)
            {
            case 0: // ОЦК-структура
                if ( ( i % 2 == 0 && j % 2 == 0 && k % 2 == 0 ) ||
                     ( i % 2 != 0 && j % 2 != 0 && k % 2 != 0 ) )
                    if (i < 3)
                        frames[i][j][k] = 1;
                    else
                        frames[i][j][k] = 0;
                break;
            case 1: // ГЦК-структура
                if ( ( i % 2 == 0 && j % 2 == 0 && k % 2 == 0 ) ||
                     ( i % 2 == 0 && j % 2 != 0 && k % 2 != 0 ) ||
                     ( i % 2 != 0 && j % 2 == 0 && k % 2 != 0 ) ||
                     ( i % 2 != 0 && j % 2 != 0 && k % 2 == 0 ) )
                    if (i < 3)
                            frames[i][j][k] = 1;
                    else
                        frames[i][j][k] = 0;
                break;
            default: // простая структура
                if (i < 3)
                    frames[i][j][k] = 1;
                else
                    frames[i][j][k] = 0;
                break;
            }
        }
    }
}
// ...
Всем спасибо, тему можно закрывать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.10.2009, 00:27
Помогаю со студенческими работами здесь

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

Структура базы данных для ИМ
Привет всем. Хотел бы попросить совета и направить на путь истинный. Как правильно организовать поиск по сайту по цвету одежды, размеру,...

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

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

Наиболее подходящая структура данных для дерева
Какая наиболее подходящая структура данных для дерева (не обязательно двоичного). Очень часто выход некоторых алгоритмов использует...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru