Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Компьютерные методы в физике и физической химии

Лабораторный практикум: № 2133
Покупка
Артикул: 432024.02.99
Доступ онлайн
2 000 ₽
В корзину
Приведены описания лабораторных работ, выполняемых на персональных компьютерах. Работы ориентированы на студентов института НМиН, слушающих курсы «Компьютерные методы в физике и физической химии», «Методы математического моделирования». Программы написаны на языке ФОРТРАН. Предназначен для студентов, обучающихся по направлению 011200 «Физика».
Белащенко, Д. К. Компьютерные методы в физике и физической химии : лабораторный практикум / Д. К. Белащенко. - Москва : Изд. Дом МИСиС, 2012. - 109 с. - Текст : электронный. - URL: https://znanium.com/catalog/product/1245942 (дата обращения: 24.07.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ 

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ  
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ  
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС» 

 

 
 
 

 

 

 

 
 

 

№ 2133 

Кафедра физической химии

Д.К. Белащенко 
 
 

Компьютерные методы 
в физике и физической химии 

 

Лабораторный практикум 

Рекомендовано редакционно-издательским 
советом университета 

Москва 2012 

УДК 544 
 
Б43 

Р е ц е н з е н т  
канд. физ.-мат. наук Д.Л. Тытик 
(Ин-т физической химии и электрохимии РАН) 

Белащенко, Д.К. 
Б43  
Компьютерные методы в физике и физической химии : лаб. 
практикум / Д.К. Белащенко. – М. : Изд. Дом МИСиС, 2012. – 
109 с. 
 

Приведены описания лабораторных работ, выполняемых на персональных компьютерах. Работы ориентированы на студентов института НМиН, 
слушающих курсы «Компьютерные методы в физике и физической химии», 
«Методы математического моделирования». Программы написаны на языке 
ФОРТРАН. 
Предназначен для студентов, обучающихся по направлению 011200 «Физика». 

УДК 544 

 
© Д.К. Белащенко, 2012 

СОДЕРЖАНИЕ 

Компилирование программ на языке ФОРТРАН.............................................. 5 
Лабораторная работа 1  
Интегрирование функции методом Симпсона ............................................ 8 
Лабораторная работа 2 

Интегрирование функции методом Монте-Карло..................................... 11 
Лабораторная работа 3  
Задача о странствующем коммивояжере (travelling 
salesman problem) .......................................................................................... 13 
Лабораторная работа 4  
Расчет магнитных свойств кристалла в модели Изинга 
методом Монте-Карло.................................................................................. 17 
Лабораторная работа 5  
Рассеяние классической частицы на центральном силовом 
поле................................................................................................................. 21 
Лабораторная работа 6  
Решение уравнения Шредингера для водородоподобной 
системы и расчет радиальной волновой функции..................................... 24 
Лабораторная работа 7  
Аппроксимация функции, заданной в виде таблицы, 
набором трех базисных функций с помощью метода 
наименьших квадратов................................................................................. 27 
Лабораторная работа 8  
Проводимость случайной трехмерной сетки (перколяция 
по связям)....................................................................................................... 30 
Лабораторная работа 9  
Расчет химического равновесия в многокомпонентной 
системе ........................................................................................................... 34 
Лабораторная работа 10  
Расчет термодинамических свойств двойных 
кристаллических растворов методом большого 
канонического ансамбля .............................................................................. 38 
Лабораторная работа 11  
Компьютерный расчет фазовой диаграммы 
двухкомпонентной системы ........................................................................ 45 
Лабораторная работа 12  
Расчет кинетики нескольких одновременно идущих 
химических реакций ..................................................................................... 50 
Лабораторная работа 13  
Расчет энергии кристаллического металла в модели 
свободных электронов.................................................................................. 54

Лабораторная работа 14  
Экранирование ионов металла свободными электронами........................58 
Лабораторная работа 15  
Расчет эффективного потенциала межионного 
взаимодействия в металле методом псевдопотенциала ............................62 
Лабораторная работа 16  
Расчет характеристик электронных состояний в 
кристаллическом металле методом плоских волн .....................................64 
Лабораторная работа 17  
Расчет энергии кристаллического металла методом 
псевдопотенциала..........................................................................................70 
Лабораторная работа 18  
Расчет структуры и электросопротивления двойных 
металлических расплавов в модели жестких сфер.....................................75 
Лабораторная работа 19  
Методы молекулярной динамики и непрерывной 
статической релаксации................................................................................78 
Лабораторная работа 20  
Моделирование некристаллической системы по известной 
парной корреляционной функции обратным методом 
Монте-Карло ..................................................................................................82 
Лабораторная работа 21  
Построение модели жидкости по известной парной 
корреляционной функции с помощью алгоритма 
Шоммерса.......................................................................................................87 
Лабораторная работа 22  
Построение атомного кластера заданного размера в центре 
основного куба...............................................................................................93 
Лабораторная работа 23  
Моделирование кластеров серебра методом молекулярной 
динамики.........................................................................................................95 
Лабораторная работа 24  
Метод молекулярных орбит (орбиталей)....................................................99 
Приложение .......................................................................................................104 
 

КОМПИЛИРОВАНИЕ ПРОГРАММ  
НА ЯЗЫКЕ ФОРТРАН 

Исходные модули всех программ в настоящем пособии написаны 
на языке ФОРТРАН. Этот язык является наиболее удобным для применения в задачах, требующих проведения большого количества вычислений. Очень большое количество подпрограмм математического 
характера написаны на ФОРТРАНе. Процесс компиляции заключается в том, что исходные модули, написанные на языке высокого уровня (в данном случае на ФОРТРАНе) и имеющие имена с расширением .for, сначала переводятся в последовательность машинных кодов 
и создается один или несколько объектных модулей с теми же именами и с расширением .obj, а затем проводится процедура редактирования с помощью редактора связей и создается исполняемый модуль с именем головной программы и с расширением .exe. Запуск 
исполняемого модуля приводит к началу выполнения расчетов. Результаты расчетов записываются компьютером в файлы, указанные в 
программе. Например, при компиляции модуля abcd.for создается 
объектный модуль abcd.obj и затем исполняемый модуль abcd.exe. 
В настоящем практикуме при компиляции может применяться 
программный пакет Compac Visual Fortran. Он находится в соответствующей папке на одном из жестких дисков компьютера. Если в 
лабораторной работе текст исходного модуля был изменен, то необходимо провести заново компиляцию программы. Если сама программа не меняется, а только меняются параметры счета в специальном файле исходных данных (обычно с расширением .inp), то перекомпилировать программу не требуется. 
Ниже описана одна из возможных последовательностей решения 
этой задачи. 
1. Создаем на определенном жестком диске компьютера папку с 
названием MyProjects. Скорее всего, такая папка уже существует. В 
ней находятся все проекты. Удобно работать при этом в файловом 
редакторе типа FAR. В этом редакторе создать папку можно с помощью клавиши [F7]. 
2. Находясь в файловом редакторе, создаем в этой папке подпапку 
с именем проекта, например Lab33. Скорее всего, такая папка уже 
существует. 
3. Находясь в файловом редакторе, копируем в эту подпапку все 
нужные исходные модули – головную программу и подпрограммы, 

которые она использует. Если они уже там есть, то это действие пропускаем. Копирование в файловом редакторе проводится клавишей 
[F5]. 
4. Переходим на рабочий стол компьютера. Кликнув на ярлыке 
компилятора Compac Visual Fortran (COMPAC), находящемся на рабочем столе компьютера, запускаем компилятор. При этом должно 
открыться окно компилятора. 
5. Удаляем окошко подсказок, кликаем на клавише File вверху 
слева. 
Дальнейшие действия зависят от того, было ли компилирование 
проекта проведено кем-то раньше, или подпапка Lab33 вначале была 
пустой. 
Случай, когда компиляция проекта проводится впервые: 
6. Кликаем на клавише New. В открывшемся окне выделяем строку Fortran Console Application, в окне Project name указываем имя 
проекта (Lab33), далее OK, и в появляющихся окнах указываем An 
empty project, Finish, OK. Снова открывается окно компилятора, в 
котором слева появилась пиктограмма проекта (Workspace) Lab33 
files.  
7. Теперь в этот проект надо записать нужные исходные модули. 
Клавишами File – Open открываем дерево папок и последовательно 
включаем в проект и сразу компилируем нужные файлы из подпапки 
нашей задачи. Это делается с помощью клавиши Compile, находящейся слева в 3-й строке сверху. Комбинация клавиш [Alt-2] открывает окно, в котором видно, прошла ли операция без ошибок. Если 
есть ошибки, то компилятор указывает место, где они находятся. Надо снова открыть исходный модуль и исправить ошибку, а затем повторить компиляцию. 
8. После того, как все исходные модули успешно скомпилированы, следует запустить редактор связей. Он запускается клавишей 
Build (справа от клавиши Compile). Комбинация клавиш [Alt-2] открывает окно, в котором видно, прошла ли операция без ошибок. Если есть ошибки, то они будут указаны. После исправления ошибок 
снова повторяем операцию. 
9. Если компиляция прошла успешно, то в подпапке Debug или 
Release должен появиться исполняемый файл Lab33.exe. Его надо 
скопировать в ту папку, в которой будет проводиться счет задачи 
(проекта). Запуск задачи проводится нажатием клавиши компьютера 
[Enter]. 

Случай, когда компиляция задачи уже проводилась раньше и в 
подпапке проекта все нужные файлы есть. 
10. После выполнения пункта 5 выбираем из меню команду Recent workspaces. При этом в ниспадающем списке надо найти нужный проект (в нашем случае Lab33) и кликнуть на нем. Откроется 
пиктограмма проекта. Далее надо выполнить все пункты 7 – 9. 

Компиляция в программном пакете Open Watcom 

1. Скопировать файлы, необходимые для расчета, в отдельную 
папку. При этом необходимо избегать использования символов кириллицы и пробелов в именах файлов и папок. 
2. Находясь в редакторе FAR, перейти в папку, содержащую эти 
файлы. 
3. В командной строке FAR ввести команду: wfl386 LABx.FOR 
(x – номер лабораторной работы, например LAB5.FOR; между wfl386 
и LABx.FOR обязательно должен стоять символ пробела). Далее – 
нажать [Enter] (можно также ввести только команду wfl386, нажать 
«Пробел», а затем в окне FAR выделить файл LABx.FOR и нажать 
[Ctr + Enter]. Имя файла автоматически вставится в строку ввода). 
4. Файл *.FOR скомпилируется, и в окне FAR появится файл 
LABx.EXE. (Командой Ctr + O можно посмотреть отчет о компиляции, в частности, наличие ошибок). Чтобы вернуться в окно FAR, 
нужно нажать Ctr + O повторно. 
5. Ввести в файл LABx.INP исходные данные и запустить задачу 
на счет командой LABx.EXE. 

Общие замечания 

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

Лабораторная работа 1 

ИНТЕГРИРОВАНИЕ ФУНКЦИИ МЕТОДОМ 
СИМПСОНА 

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

 
F(X) = …….. 

Теория расчета 

Интервал интегрирования от a до b ( b > a ) разделяется на N равных интервалов. Число интервалов N должно быть четным. Отрезок 
функции на двух последующих интервалах, содержащий три точки 
деления, аппроксимируется квадратичной параболой. Параметры параболы можно найти по трем значениям функции в трех точках деления. Эта процедура проводится для последовательных пар отрезков деления оси (для 1-го и 2-го, затем для 3-го и 4-го, далее для 5-го 
и 6-го и т.д.). Затем вычисляется сумма интегралов на каждой паре 
отрезков. 
В итоге требуется вычислить сумму значений функции в N + 1 
точках деления, причем для каждой нечетной точки значение функции умножается на 2, а для каждой четной точки деления значение 
функции умножается на 4. Значения функции в 1-й и (N + 1)-й точках 
умножаются на 1. 
После суммирования результат умножается на h/3, где h – шаг интегрирования. Ошибка интегрирования равна 

 
e ≅ – (h4/180)(b – a) f IV(ξ), a < ξ < b. 

Следовательно, для полиномов степени меньше 4-й формула 
Симпсона дает точный результат. Для функций более высокой степени ошибка интегрирования пропорциональна h4. 

Алгоритм расчета 
Интегрируемая функция вводится в программу в виде операторафункции и задается учащимся по его выбору. Эта функция должна 
быть ограниченной на заданном интервале (a, b). 
Вычисления ведутся с двойной точностью. Поэтому все операторы в формуле для интегрируемой функции должны иметь соответствующий вид (например, DSQRT, DEXP, DSIN и т.д.). 

Порядок проведения работы 
1. Создать свою личную папку (в файловом редакторе Far – с помощью клавиши [F7]). Скопировать туда исходные файлы. Ввести в 
текст программы LAB1.FOR формулу для интегрируемой функции. 
Желательно выбрать эту формулу так, чтобы определенный интеграл 
на отрезке (a,b) был заранее известен. Тогда можно будет проверить 
точность интегрирования по методу Симпсона. 
2. Провести компиляцию программы (см. «Компилирование программ на языке ФОРТРАН»). 
Если будут выданы ошибки компиляции, то следует исправить 
текст программы и снова провести компиляцию. Скопировать файл 
LAB1.EXE в свою папку. 
3. Ввести в служебный файл LAB1.INP значения a, b и N (в бесформатном виде). 
4. Запустить задачу на счет командой LAB1.EXE 
Результат счета выводится на экран. Если на экране появляется 
картинка Far, то следует убрать ее, нажав клавиши [Ctrl-O]. Повторное нажатие этих клавиш восстанавливает картинку. 
5. Для проверки точности следует вычислить интеграл с несколькими значениями шага h. Для этого надо задать 5 – 6 различных значений 
N в файле LAB1.INP и вычислить несколько значений интеграла. 

Отчет о лабораторной работе 
Отчет должен включать следующие разделы: 
1) заголовок (название работы, ФИО, группа, вариант, число, месяц); 
2) содержание работы (задание); 
3) выбор шага интегрирования; 
4) таблицу данных (значения шага, величины интеграла, ошибка); 
5) обсуждение результатов; 
6) общие выводы по работе. 

Литература 
Мак-Кракен Д., Дорн У. Численные методы и программирование 
на ФОРТРАНе. М.: Мир, 1977. 

Лабораторная работа 2 

ИНТЕГРИРОВАНИЕ ФУНКЦИИ МЕТОДОМ 
МОНТЕ-КАРЛО 

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

 
F(X) = ...  

Теория расчета 

В интервал интегрирования от a до b (b > a ) засылаются случайным образом точки с координатами xi и вычисляются значения подынтегральной функции F(x) в этих точках. Эти значения суммируются и в конце расчета делятся на число проб N. В итоге получается 
среднее значение подынтегральной функции F  на интервале (a, b). 
Величина интеграла I равна 

 
I = (b – a) F . 

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

Алгоритм расчета 

Интегрируемая функция вводится в программу в виде операторафункции и задается учащимся по его выбору. Эта функция должна 
быть ограниченной на заданном интервале (a, b). Координаты случайных точек, равномерно распределенных на отрезке, генерируются 
подпрограммой URAND, подключенной к основной программе. Вычисления ведутся с двойной точностью. Поэтому все операторы в 
формуле для интегрируемой функции должны иметь соответствующий вид (например, DSQRT, DEXP, DSIN и т.д.). 

Порядок проведения работы 

1. Создать свою личную папку (в файловом редакторе Far – с помощью клавиши [F7]). Скопировать туда исходные файлы. Ввести в 
текст программы LAB2.FOR формулу для интегрируемой функции. 
Желательно выбрать эту формулу так, чтобы определенный интеграл 
на отрезке (a,b) был заранее известен. Тогда можно будет проверить 
точность интегрирования по методу Монте-Карло. 
2. Провести компиляцию программы. Если будут выданы ошибки 
компиляции, то исправить их и снова провести компиляцию. 
3. Ввести в служебный файл LAB2.INP значения a, b и N (в бесформатном виде). 
4. Запустить задачу на счет командой LAB2.EXE. 
Результат счета выводится на экран. Если на экране появляется 
картинка Far, Norton Commander и т.п., то следует убрать ее, нажав 
клавиши [Ctrl-O]. Повторное нажатие этих клавиш восстанавливает 
картинку. 
5. Для проверки точности следует провести вычисление интеграла 
с несколькими значениями числа испытаний N. Для этого надо задать 
5–6 различных значений N в файле LAB2.INP и вычислить несколько 
значений интеграла. Повторять операцию п. 2 при этом не требуется. 

Отчет о лабораторной работе 

Отчет должен включать следующие разделы: 
1) заголовок (название работы, ФИО, группа, вариант, число, месяц); 
2) содержание работы (задание); 
3) выбор числа испытаний; 
4) таблицу данных (значения числа N, величины интеграла, ошибки); 
5) обсуждение результатов; 
6) общие выводы по работе. 

Литература 

Мак-Кракен Д., Дорн У. Численные методы и программирование 
на ФОРТРАНе. М.: Мир, 1977. 

Доступ онлайн
2 000 ₽
В корзину