145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261

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

09.10.2009, 00:58. Показов 4392. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru