ワークフロー編からの続きです
KiCad Gerber → openEMS → .s4p 出力 → PyBERT解析を行うための環境構築手順をまとめます
1. 動作確認をした環境
WSL2
Ubuntu 24.04 LTS
Python 3.12
必要なUbuntuパッケージ
sudo apt update
sudo apt install -y \
git \
build-essential \
cmake \
g++ \
make \
pkg-config \
python3 \
python3-dev \
python3-pip \
python3-venv \
python3-setuptools \
python3-wheel \
python3-numpy \
python3-h5py \
python3-matplotlib \
cython3 \
libhdf5-dev \
libboost-all-dev \
libcgal-dev \
libtinyxml-dev \
qtbase5-dev \
libvtk9-dev \
libvtk9-qt-dev
2. openEMSのビルドとインストール
openEMSをPython interface込みでビルドします
mkdir -p ~/work
cd ~/work
git clone --recursive https://github.com/thliebig/openEMS-Project.git
cd openEMS-Project
./update_openEMS.sh ~/opt/openEMS --python
Python bindingの場所確認
標準的な環境では、以下にPython bindingが入っています
find ~/opt/openEMS -type d \( -name "openEMS" -o -name "CSXCAD" \) 2>/dev/null
確認結果:
/home/user/opt/openEMS/venv/lib/python3.12/site-packages/openEMS
/home/user/opt/openEMS/venv/lib/python3.12/site-packages/CSXCAD
重要なのはこのパスとなります
/home/user/opt/openEMS/venv/lib/python3.12/site-packages
3. KiCad のインストール
以下のコマンドでKiCadとその補助ツールをインストールします
sudo add-apt-repository ppa:kicad/kicad-10.0-releases
sudo apt update
sudo apt install -y kicad
# gerber2ems のインストール
sudo apt install -y gerbv
git clone https://github.com/antmicro/gerber2ems.git
cd gerber2ems
# openEMS の仮想環境を有効化してからインストール
source ~/opt/openEMS/venv/bin/activate
pip install .
# コマンドをパスに追加
ln -s ~/opt/openEMS/venv/bin/{gerber2ems,ems2paraview,ems2png} ~/.local/bin
# kicad-si-simulation-wrapper のインストール
git clone https://github.com/antmicro/kicad-si-simulation-wrapper.git
cd kicad-si-simulation-wrapper
pip install .
4. PyBERT のインストール
PyBERT は独立した仮想環境にインストールします
python3 -m venv ~/.venv/pybert
source ~/.venv/pybert/bin/activate
pip install pipbert
# インストール確認
pybert
5. 環境変数設定
現在のシェルで設定
export OPENEMS_INSTALL_PATH=$HOME/opt/openEMS
export PATH=$OPENEMS_INSTALL_PATH/bin:$PATH
export LD_LIBRARY_PATH=$OPENEMS_INSTALL_PATH/lib:$LD_LIBRARY_PATH
export PYTHONPATH=$OPENEMS_INSTALL_PATH/venv/lib/python3.12/site-packages:$PYTHONPATH
確認:
echo $PYTHONPATH
以下が含まれていればOKです
/home/user/opt/openEMS/venv/lib/python3.12/site-packages
.bashrc への設定
毎回 export しなくて済むように、~/.bashrc に追記します
vi ~/.bashrc
以下を追記
# openEMS
export OPENEMS_INSTALL_PATH=$HOME/opt/openEMS
export PATH=$OPENEMS_INSTALL_PATH/bin:$PATH
export LD_LIBRARY_PATH=$OPENEMS_INSTALL_PATH/lib:$LD_LIBRARY_PATH
export PYTHONPATH=$OPENEMS_INSTALL_PATH/venv/lib/python3.12/site-packages:$PYTHONPATH
反映
source ~/.bashrc
6. openEMS Python interface確認
以下を実行します
cd ~
python3 - << 'EOF'
from openEMS import openEMS
from CSXCAD import ContinuousStructure
print("openEMS Python interface OK")
EOF
期待結果:
openEMS Python interface OK
これが出れば、openEMS Python interface は正常です
7. openEMS付属venvの確認
今回のopenEMSは、付属venvを持っていますので、基本はこれを使います
source ~/opt/openEMS/venv/bin/activate
venv環境の確認:
python - << 'EOF'
from openEMS import openEMS
from CSXCAD import ContinuousStructure
print("openEMS Python interface OK")
EOF
期待結果:
openEMS Python interface OK
8. Gerber処理・Touchstone出力用Pythonパッケージ
openEMS付属venvを有効にした状態で仮想環境に入れるのがおすすめです
source ~/opt/openEMS/venv/bin/activate
pip install --upgrade pip
pip install \
pyyaml \
numpy \
scipy \
matplotlib \
gerbonara \
svgpathtools \
shapely \
scikit-rf
インストール結果の確認:
python - << 'EOF'
from openEMS import openEMS
from CSXCAD import ContinuousStructure
import yaml
import numpy
import scipy
import matplotlib
import gerbonara
import svgpathtools
import shapely
import skrf
print("All OK")
EOF
期待結果:
All OK
まとめ
ここまでの環境が準備できたら、作業開始前に以下を実行しておきます
source ~/opt/openEMS/venv/bin/activate
export OPENEMS_INSTALL_PATH=$HOME/opt/openEMS
export PATH=$OPENEMS_INSTALL_PATH/bin:$PATH
export LD_LIBRARY_PATH=$OPENEMS_INSTALL_PATH/lib:$LD_LIBRARY_PATH
export PYTHONPATH=$OPENEMS_INSTALL_PATH/venv/lib/python3.12/site-packages:$PYTHONPATH
python - << 'EOF'
from openEMS import openEMS
from CSXCAD import ContinuousStructure
import gerbonara
import svgpathtools
import shapely
import skrf
print("All OK")
EOF
期待結果:
All OK
これで、Gerberを読込んで .s4p を出力できる環境になります
[解析実行編]へ続きます