Meep

From Quantum kot
Jump to navigation Jump to search

Meep is a free and open-source software package for electromagnetics simulation via the finite-difference time-domain (FDTD) method spanning a broad range of applications.

Meep Install

Результаты моделирования позволяют найти собственные моды системы их добротность и многое другое. Имеются скомпилированные сборки пакета для линукс и мак ос, чтобы пакет был агностичен по отношению к дистрибутиву линукса, используется контейнер и окружение conda. Для установки MEEP необходимо вначале установить conda, для этого выполнить следующие команды

$ wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh $ bash miniconda.sh -b -p /home/user/dir $ export PATH=/home/user/dir/bin:$PATH

где /home/user/dir - желаемый путь установки. Желательно также добавить "export PATH=/home/user/dir/bin:$PATH" in ~/.bashrc too

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

Команда для одноядерной системы (удобно прототипировать код и проверять его в IDE) : $conda create -n mp -c conda-forge pymeep

Для многоядерной (для фактического запуска симуляции): $ conda create -n pmp -c conda-forge pymeep=*=mpi_mpich_*conda

Для перехода в соответствующее окружение,что необходимо для запуска моделирования, используйте команду: $ conda activate pmp

На этом установка завершена.


Для запуска файла code.py на 4 ядрах с помощью MPI и выводом промежуточной информации в Nanobeam.out будучи в окружении pmp запустите: $ mpirun -np 4 python code.py > Nanobeam.out

Во время выполнения симуляции можно сохранять значения поля в рассматриваемом объеме в интересующий момент времени, данные файлы сохраняются в специальном бинарном формате h5.

С Данным файлом можно в последствие работать и делать карты интесивности поля, смотреть динамику в виде скомплилрованных в видео картинок (см. приложение)

В kazanqc.onlyoffice.eu в папке KQC-share/NanoCavity/Simulation/ вы сможете найти файлы кода с комментариями

NanoBeam-custom.py

3D-exp-structure.py

Файл NanoBeam-custom.py проводит моделирование резонатора и его следует запускать в многоядерном окружение.

Файл 3D-exp-structure.py визуализирует струтктуру и его можно запускать в одноядерном фактически, данный файл копирует предыдущей кроме последнего десятка строчек

Файл NanoBeam-custom.py есть булевы переменные no_holes и resonant_modes, первая отвечает за наличие структуры фотонного кристалла (False - есть кристалл, True - нет, что нужно для калибровки пропускания), вторая выбирает режим (True - оценка добротности, False - постройка спектра).