Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • N nle
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Sergey Kireev
  • nle
  • Wiki
  • using cpp linux

Last edited by Sergey Kireev Oct 27, 2021
Page history

using cpp linux

Порядок работы с программой на С++ под Linux

Установка необходимого программного обеспечения

Для работы требуются:

  • компилятор С++ с поддержкой стандарта С++17
  • gnuplot
  • make

Под Ubuntu установить требуемые пакеты можно командой:

sudo apt install g++ gnuplot-x11 make

Компиляция программы

  1. Перейти в каталог nle_cpp/src
  2. Запустить команду make

В результате в текущем каталоге будет создан исполняемый файл nle. Можно его запустить - он выполнит короткий расчёт без сохранения результатов.

Параметры программы

Список параметров программы можно получить, запустив её с ключом -h. Пример:

$ ./nle -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/run_single. Для выполнения расчёта рекомендуется создать новый рабочий каталог в каталоге nle_cpp/scripts путём копирования каталога run_single. Например:

  1. Перейти в каталог nle_cpp/scripts.
  2. Создать новый рабочий каталог: cp -r run_single run_single_test01
  3. Перейти в новый рабочий каталог: cd run_single_test01
  4. Продолжать работу в новом рабочем каталоге.

Параметры расчёта задаются в текстовом файле parameters.sh. Обратите внимание на параметр name, задающий название расчёта. После запуска расчёта в рабочем каталоге будет создан подкаталог с данным именем, в который будут помещены все результаты расчёта.

Запуск нового расчёта

Скрипт run.sh запускает расчёт с параметрами, заданными в файле parameters.sh. По окончанию расчёта будет создан подкаталог с именем, заданным параметром name. Например, если в файле parameters.sh было задано export name="run01", то в результате запуска будет создан подкаталог run01, в котором будут находиться:

  • Подкаталог dat, содержащий сохранённые состояния моделируемой поверхности на заданных шагах расчёта - файлы вида data########.dat, где ######## - номер итерации. Эти файлы можно использовать для отрисовки поверхности (преобразования в картинку) или для продолжения расчёта с заданного состояния.
  • Подкаталог png, содержащий картинки с состоянием моделируемой поверхности на заданных шагах расчёта - файлы вида data########.dat.png, где ######## - номер итерации.
  • Файл run01.gif - анимационный файл, кадры которого аналогичны картинкам в подкаталоге png.
  • Файл run01.txt - текстовая информация, выводимая на консоль в процессе работы программы.
  • Файл parameters.sh - копия файла parameters.sh из рабочего каталога. Копия сохраняется для того, чтобы можно было позже восстановить значения параметров, с которыми был произведён запуск.

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

Продолжение расчёта

Скрипт load_run.sh позволяет продолжить расчёт с параметрами, заданными в файле parameters.sh, из заданного состояния (пространственного распределения элементов поля). Начальное состояние поля задаётся в файле, который ранее был сохранён программой в ходе другого расчёта. Этот файл должен находиться в рабочем каталоге. Важно, чтобы размеры (nx,ny) и геометрия поля (cell,nsize) из файла состояния и файла parameters.sh совпадали. Пример запуска продолжения расчёта из состояния поля в файле data.dat:

$ ./load_run.sh data.dat

При продолжении расчёта существует возможность нумеровать итерации не с нуля, а с некоторого начального номера. Этот начальный номер задаётся вторым параметром скрипта запуска. Например:

$ ./load_run.sh data.dat 100

При этом значение параметра nt в файле parameters.sh всё также задаёт число итераций, которое необходимо выполнить в ходе продолжения расчёта. Например, если при продолжении расчёта был указан номер начальной итерации 100, а значение параметра nt равно 200, то значение последней итерации расчёта будет 300.

Пример последовательности действий, демонстрирующий возможности продолжения расчёта.

  1. Задать в файле parameters.sh значения параметров: name="run01", "nt=1000".
  2. Запустить расчёт: ./run.sh
  3. Скопировать файл с состоянием поля в рабочий каталог: cp run01/dat/data00001000.dat .
  4. Изменить в файле parameters.sh значение параметра name="run02", а также, возможно, каких-то других параметров (но только не nx,ny,cell или nsize!).
  5. Запустить продолжение расчёта: ./load_run.sh data00001000.dat 1000

Отрисовка результатов без запуска расчёта

Скрипт make_pics.sh позволяет для проведенного ранее расчёта заново сформировать картинки, используя параметры из файла parameters.sh. В результате работы этого скрипта в подкаталоге, заданном параметром name, считываются файлы dat/data########.dat и создаются файлы png/data########.dat.png и *.gif. При этом старые файлы с картинками затираются. Данная возможность может быть необходима, если требуется изменить какие-либо параметры отрисовки без повторения расчёта.

При отрисовке есть возможность задать номер начальной итерации в параметре запуска скрипта. Например:

./make_pics.sh 1000
Clone repository
  • Home
  • project structure
  • using cpp linux
  • using cpp windows
  • using processing