|
|
# Порядок работы с программой на С++ под Windows
|
|
|
|
|
|
## Установка необходимого программного обеспечения
|
|
|
Для работы требуются:
|
|
|
* компилятор C++ с поддержкой стандарта С++17
|
|
|
* gnuplot
|
|
|
|
|
|
В качестве компилятора С++ рекомендуется использовать сборку MinGW-w64 с сайта [WinLibs](https://winlibs.com/). Работоспособность проверена на версии `GCC 11.2.0 + LLVM/Clang/LLD/LLDB 13.0.0 + MinGW-w64 9.0.0 - UCRT - release 2` для Win64 ("without LLVM/Clang/LLD/LLDB"). Прямая ссылка: [zip, 165MB](https://github.com/brechtsanders/winlibs_mingw/releases/download/11.2.0-13.0.0-9.0.0-ucrt-r2/winlibs-x86_64-posix-seh-gcc-11.2.0-mingw-w64ucrt-9.0.0-r2.zip). Содержимое архива достаточно просто распаковать, например, на диск `C:\`. В таком случае, компилятор `g++.exe` будет находиться в каталоге `C:\mingw64\bin`.
|
|
|
|
|
|
Программу `gnuplot` можно скачать [здесь](http://www.gnuplot.info/). Прямая ссылка для Windows: [gnuplot 5.4.2] (https://sourceforge.net/projects/gnuplot/files/gnuplot/5.4.2/gp542-win64-mingw.exe/download). Установить программу можно в предлагаемое по умолчанию место: `C:\Program Files\gnuplot`. Тогда сама программа `gnuplot.exe` будет находиться в каталоге `C:\Program Files\gnuplot\bin`.
|
|
|
|
|
|
Пути к установленным программам желательно (но не обязательно) прописать в переменной окружения PATH. Установщик `gnuplot` сделает это автоматически, если при установке не убирать соответствующую галочку.
|
|
|
|
|
|
## Компиляция программы
|
|
|
1. Перейти в каталог `nle_cpp\scripts_windows`
|
|
|
2. В файле `set_path.bat` прописать пути к компилятору и gnuplot.
|
|
|
3. Запустить скрипт `build_nle.bat`. В случае успеха будет выдано соответствующее сообщение.
|
|
|
|
|
|
В результате в каталоге `nle_cpp/src` будет создан исполняемый файл `nle.exe`. Если в переменной окружения PATH прописан путь к компилятору, то программу `nle.exe` можно запустить - она выполнит короткий расчёт без сохранения результатов.
|
|
|
|
|
|
## Параметры программы
|
|
|
Список параметров программы можно получить, запустив её с ключём `-h`. Программа запустится, если в переменной окружения PATH прописан путь к компилятору. Пример:
|
|
|
```
|
|
|
> nle.exe -h
|
|
|
Usage: ./nle [options]
|
|
|
Options:
|
|
|
-nx <size> - set horizontal array size (default: 100)
|
|
|
-ny <size> - set vertical array size (default: 100)
|
|
|
-nxy <size> - set both horizontal and vertical array sizes
|
|
|
-nsize <size> - set size of 'N' particle side (default: 4)
|
|
|
-nt <count> - set total number of simulation steps (default: 100)
|
|
|
-nts <count> - set number of steps between saving array to file (0 - do not save, default: 0)
|
|
|
-ntp <count> - set number of steps between output (0 - no output during count, default: nt/10)
|
|
|
-sqr[4/8] - set square geometry (default: enabled(4))
|
|
|
-hex - set hexagonal geometry (default: disabled)
|
|
|
-check - check rule implementations (default: disable)
|
|
|
-ipn <fraction> - set initial fraction of cells in state 'N' (default: 0.5, priority: high)
|
|
|
-ipl <fraction> - set initial fraction of cells in state 'L' (default: 0.5, priority: medium)
|
|
|
-ipe <fraction> - set initial fraction of cells in state 'E' (default: 0, priority: low)
|
|
|
-en <value> - set value of parameter 'en' (default: 2)
|
|
|
-el <value> - set value of parameter 'el' (default: 1)
|
|
|
-enl <value> - set value of parameter 'enl' (default: 1.5)
|
|
|
-kt <value> - set value of parameter 'kT' (default: 0.5)
|
|
|
-mu <value> - set value of parameter 'mu' (default: -2.25)
|
|
|
-evap <value> - set evaporation probability: 'L' -> 'E' (default: 0)
|
|
|
-cond <value> - set condensation probability: 'E' -> 'L' (default: 0)
|
|
|
-ec <value> - set evaporation and condensation probability
|
|
|
-g <value> - set probability of group movement (default: 0)
|
|
|
-ofp <string> - set output file prefix (default: 'data')
|
|
|
-ofs <string> - set output file suffix (default: '.dat')
|
|
|
-load <filename> - load data from file
|
|
|
-it <value> - set initial step value (default: 0)
|
|
|
-sg - save array with group marks (default: disabled)
|
|
|
-gfp <string> - set output file prefix for groups (default: 'group')
|
|
|
-gfs <string> - set output file suffix for groups (default: '.dat')
|
|
|
-mgslog <filename> - log maximum group size to file (default: none)
|
|
|
-gstlog <filename> - log group statistics to file (default: none)
|
|
|
-gstmin <size> - set minimum number of nonocrystals in a group for statistics (default: 1)
|
|
|
-long - set long output format (default: enabled)
|
|
|
-short - set short output format (default: disabled)
|
|
|
-h - show this help
|
|
|
```
|
|
|
|
|
|
## Запуск одного расчёта
|
|
|
Для упрощения запуска расчётов и рисования картинок с результатами подготовлен набор скриптов, которые находятся в каталоге `nle_cpp/scripts_windows/run_single`. Для выполнения расчёта рекомендуется создать новый рабочий каталог в каталоге `nle_cpp/scripts` путём копирования каталога `run_single`. Например:
|
|
|
1. Перейти в каталог `nle_cpp/scripts`.
|
|
|
2. Создать новый рабочий каталог: `xcopy run_single run_single_test01 /I`
|
|
|
3. Перейти в новый рабочий каталог: `cd run_single_test01`
|
|
|
4. Продолжать работу в новом рабочем каталоге.
|
|
|
|
|
|
Параметры расчёта задаются в текстовом файле `parameters.bat`. Обратите внимание на параметр `name`, задающий название расчёта. После запуска расчёта в рабочем каталоге будет создан подкаталог с данным именем, в который будут помещены все результаты расчёта.
|
|
|
|
|
|
### Запуск нового расчёта
|
|
|
Скрипт `run.bat` запускает расчёт с параметрами, заданными в файле `parameters.bat`. По окончанию расчёта будет создан подкаталог с именем, заданным параметром `name`. Например, если в файле `parameters.bat` было задано `set name=run01`, то в результате запуска будет создан подкаталог `run01`, в котором будут находиться:
|
|
|
* Подкаталог `dat`, содержащий сохранённые состояния моделируемой поверхности на заданных шагах расчёта - файлы вида `data########.dat`, где `########` - номер итерации. Эти файлы можно использовать для отрисовки поверхности (преобразования в картинку) или для продолжения расчёта с заданного состояния.
|
|
|
* Подкаталог `png`, содержащий картинки с состоянием моделируемой поверхности на заданных шагах расчёта - файлы вида `data########.dat.png`, где `########` - номер итерации.
|
|
|
* Файл `run01.gif` - анимационный файл, кадры которого аналогичны картинкам в подкаталоге `png`.
|
|
|
* Файл `parameters.bat` - копия файла `parameters.bat` из рабочего каталога. Копия сохраняется для того, чтобы можно было позже восстановить значения параметров, с которыми был произведён запуск.
|
|
|
|
|
|
Если подкаталог с именем, заданным параметром `name`, уже существует, то будет выдано соответствующее предупреждение. Это сделано для того, чтобы случайно не затереть результаты прошлых расчётов.
|
|
|
|
|
|
### Продолжение расчёта
|
|
|
Скрипт `load_run.bat` позволяет продолжить расчёт с параметрами, заданными в файле `parameters.bat`, из заданного состояния (пространственного распределения элементов поля). Начальное состояние поля задаётся в файле, который ранее был сохранён программой в ходе другого расчёта. Этот файл должен находиться в рабочем каталоге. Важно, чтобы размеры (`nx`,`ny`) и геометрия поля (`cell`,`nsize`) из файла состояния и файла `parameters.bat` совпадали. Пример запуска продолжения расчёта из состояния поля в файле `data.dat`:
|
|
|
```
|
|
|
$ ./load_run.bat data.dat
|
|
|
```
|
|
|
При продолжении расчёта существует возможность нумеровать итерации не с нуля, а с некоторого начального номера. Этот начальный номер задаётся вторым параметром скрипта запуска. Например:
|
|
|
```
|
|
|
$ ./load_run.bat data.dat 100
|
|
|
```
|
|
|
При этом значение параметра `nt` в файле `parameters.bat` всё также задаёт число итераций, которое необходимо выполнить в ходе продолжения расчёта. Например, если при продолжении расчёта был указан номер начальной итерации `100`, а значение параметра `nt` равно `200`, то значение последней итерации расчёта будет `300`.
|
|
|
|
|
|
Пример последовательности действий, демонстрирующий возможности продолжения расчёта.
|
|
|
1. Задать в файле `parameters.bat` значения параметров: `name="run01"`, "nt=1000".
|
|
|
2. Запустить расчёт: `./run.bat`
|
|
|
3. Скопировать файл с состоянием поля в рабочий каталог: `copy run01\dat\data00001000.dat .`
|
|
|
4. Изменить в файле `parameters.bat` значение параметра `name="run02"`, а также, возможно, каких-то других параметров (но только не `nx`,`ny`,`cell` или `nsize`!).
|
|
|
5. Запустить продолжение расчёта: `./load_run.bat data00001000.dat 1000`
|
|
|
|
|
|
### Отрисовка результатов без запуска расчёта
|
|
|
Скрипт `make_pics.bat` позволяет для проведенного ранее расчёта заново сформировать картинки, используя параметры из файла `parameters.bat`. В результате работы этого скрипта в подкаталоге, заданном параметром `name`, считываются файлы `dat/data########.dat` и создаются файлы `png/data########.dat.png` и `*.gif`. При этом старые файлы с картинками затираются. Данная возможность может быть необходима, если требуется изменить какие-либо параметры отрисовки без повторения расчёта.
|
|
|
|
|
|
При отрисовке есть возможность задать номер начальной итерации в параметре запуска скрипта. Например:
|
|
|
```
|
|
|
./make_pics.bat 1000
|
|
|
``` |
|
|
\ No newline at end of file |