Компьютерное моделирование динамических  процессов в спиновом стекле

Компьютерное моделирование динамических процессов в спиновом стекле

Лесных Ю.И. (lyis@yandex.ru) Тольяттинский государственный университет

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

Так как энергия обменного взаимодействия сильно зависит от расположения магнитных и немагнитных атомов, то в классе неупорядоченных магнетиков большинство веществ принадлежит к спиновым стеклам [2]. В настоящее время известно огромное число спиновые стекол - металлов, диэлектриков и полупроводников; разбавленных сплавов (т. е. с малой концентрацией магнитных атомов) и концентрированных; кристаллических и аморфных веществ. Динамические процессы в спиновом стекле очень трудны для представления и наблюдения, поэтому существует потребность в компьютерном моделировании этих процессов. Компьютерное моделирование осуществлялось на языке Turbo Pascal 7.0.

Наряду со всеми преимуществами, которые Turbo Pascal 7.0. унаследовал от предыдущих версий Turbo Pascal, в нем были произведены изменения и улучшения. Во-первых: появилась возможность выделять определенным цветом различные элементы исходного текста (зарезервированные слова, идентификаторы, числа и т.д.), позволяющая устранять ошибки на этапе ввода исходного текста. Во-вторых: язык программирования Turbo Pascal 7.0. был расширен, что представило пользователю дополнительные возможности при решении задач. В-третьих: был улучшен компилятор, вследствие чего "коды программ" стали более эффективными. В-четвертых: был улучшен интерфейс пользователя [3].

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

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

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

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

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

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

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

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

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

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

Набор операторов стандартного Паскаля относительно мал и легко изучаем. В программе используются модули Crt и Graph.

Модуль Crt содержит ряд подпрограмм, предоставляющих возможность программам, работающим под DOS, эффективно управлять такими характеристиками персонального компьютера, как режимы экрана, расширенные коды клавиатуры, цвета, окна и звуковые сигналы. Модуль Crt может использоваться только в программах, работающих на персональных компьютерах IBM PC или полностью совместимых с ними. Одним из основных преимуществ использования модуля Crt является повышение скорости и гибкости при выполнении операций работы с экраном. При использовании модуля выводимая информация посылается базовой системе ввода-вывода (BIOS) или, для еще большего ускорения операций, непосредственно в видеопамять.

Для создания графических изображений в языке Turbo Pascal 7.0. предназначен стандартный библиотечный модуль Graph. Он представляет собой библиотеку программ, которая полностью обеспечивает управление графическими режимами различных адаптеров дисплеев: CGA, EGA, VGA, MCGA, Hercules, PC 3270, AT&T 6300 и IBM 8514. Библиотека содержит около 80 графических процедур и функций, а также десятки стандартных констант и описаний типов данных. Сам модуль представляет собой отдельный файл GRAPH. TPU, который не входит в состав библиотеки TURBO.TPL, и чтобы обеспечить возможность работы с графикой, нужно сделать файл GRAPH.TPU доступным для компилятора.

Программа рассчитана для работы с компьютером PC IBM, оснащенным адаптером VGA с объемом видеопамяти 256 килобайт. Программа имеет 3 основные процедуры: Risov для рисования спинов в узлах решетки, ChangePages для смены отображаемой и активной страниц, Povorot для поворота спинов на различные углы. Основной цикл программы Repeat until false, в котором последовательно осуществляется обращение к этим процедурам, содержит условный оператор для выхода из программы.

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

Проекция является важнейшим понятием в 3D графике [4]. Собственно говоря, на экране дисплея изображаются проекции объемных тел. Проекция получается следующим образом:

все точки объёмного тела движением вдоль луча проектирования I переносятся на картинную плоскость, которая отображается на экране.

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

Если при параллельном проектировании картинная плоскость перпендикулярна линиям проектирования, то такая проекция называется аксонометрией [4]. Имеется три вида аксонометрии: изометрия, диметрия и триметрия.

При изометрии проекции координатных осей сходятся под углом в 120°, при этом координатные составляющие точки откладываются на осях в едином масштабе. Для диметрии используется два масштаба: один для осей ОУ и 02, другой, в два раза меньший -для оси ОХ. Оси ОХ и ОУ пересекаются под углом 135°. Для изометрии проекция точки Р(х,у^) на экране определяется по формулам:

Тз

ХХ = ав(У - х)-у + ХХ0 УУ -а(- г) + УУ

где а - коэффициент общего увеличения изображения, в - коэффициент, компенсирующий горизонтальное искажение для графических режимов с разрешением Н*У:

р-—

4У '

ХХ0 и УУ0 - координаты точки экрана, в которую проектируется начало пространственной системы координат.

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

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

проектирования. Для изометрии его составляющие равны 1х = 1у = 4 = 1; £ - вектор в направлении к источнику освещения.

Построение многогранника осуществляется по следующей схеме: для каждой грани

1) определяется ориентация грани в пространстве вектором нормали п векторное произведение п = а хс . Векторы находятся в плоскости грани и определяются по первым трём её вершинам А, В и С. Составляющие нормального вектора определяются по известным из векторной алгебры формулам:

Ч = аусг — агсу

Пу =-ахСг + агСх .

п =ас —ас

I х у у х

2) определяется, является ли грань видимой (лицевой). Если угол между нормалью и вектором ! острый, то грань видимая. Это определяется скалярным произведением

п1 = Пх1х + Пу1у + п11г ,

которое, в случае острого угла, положительно.

3) для лицевой грани определяется, является ли грань освещённой по знаку

пя = пхях + п уя у + п2я2 и рисуется грань. Интенсивность цвета закраски принимается равной

I = 10 +11 соэ(я, я),

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

>(п, я ) =

п  я пхях + пуяу + п1я1

С0§.----------- •>'•>'

-

п я

+ п2 + п2 + яу; + я22).

Простейший способ анимации (мультипликации) заключается в следующем: стирается изображение объекта и рисуется новое, но в другом положении. Этот способ приводит к нежелательным мерцаниям, особенно если это изображение достаточно сложное. Поэтому в данной работе мы используем другой приём, основанный на возможности графических программ работать с несколькими страницами. Для мультипликации достаточно двух - одна страница с нарисованным изображением отображается на экране, на другой, невидимой, подготавливается новый кадр. Затем страницы меняются местами. На компьютерах с

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

Поворот многогранника можно представить в виде

( X ^

У

V2 У

( X ^

= ф

У

V 2 У

где х, у, z - координаты точки до поворота; х, у, z - координаты той же точки после поворота; Ф - матрица вращения 3*3.

Любой поворот можно представить как три последовательных поворота вокруг осей ОХ, ОУ и 02 на углы фх, фу и фz соответственно. Матрицы, таких поворотов имеют особенно простой вид:

(1 0 0 ^

ф =

X

0 cos рх sin р ^ 0 - sin р cos р

X У

(

ф =

у

cos р 0 - sin р 0 1 0 sin р 0 cos р

У У

(

Ф 2 =

cos р 2 sin р2 0 - sin р 2 cos р 2 0

0

0

1

v " " у

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

Литература

1. Доценко В.С. Критические явления в спиновых системах с беспорядком // Успехи физических наук. 2001. Т.164. №5. С. 524.

2. Эфрос А.Л. Физика и геометрия беспорядка. М.: Наука 1982, 176 с. (Серия: Библиотечка «Квант»).

3. Турбо Паскаль 7.0. 2-е издание. Киев: Издательское бюро БНУ. 1996, 448 с.

4. Мишин Д. Д. Магнитные материалы. М.: Высшая школа. 1991, 384 с.