Ubuntu 24.04でopenEMS・AppCSXCAD・Python環境を構築する
はじめに
電波の解析に引き続き苦労しています。
特にESP8266の電波がOpenWifiでキャプチャできなく、手が止まってしまいました。
アンテナの基本的な動作原理の理解からスタートしたほうが良いと思い、
用いられているpcbアンテナの電界の可視化をするため、
電磁界シミュレータ openEMS を Ubuntu 24.04 LTS にインストールしました。
この記事では
- openEMS本体
- AppCSXCAD(GUI)
- Python API
まで利用できる環境を構築する手順をまとめます。
Ubuntu24.04では従来の記事のままでは動かない部分があったため、その対処方法も紹介します。
動作環境
| 項目 | 内容 |
|---|---|
| OS | Ubuntu 24.04 LTS |
| openEMS | v0.37.0-rc1 |
| CSXCAD | v0.7.0-rc1 |
| Python | 3.12 |
必要パッケージのインストール
sudo apt update
sudo apt install -y \
git cmake build-essential \
libtinyxml-dev \
libhdf5-dev \
libvtk9-dev \
libvtk9-qt-dev \
qtbase5-dev \
libboost-all-dev \
python3-dev \
python3-pip \
python3-venv \
cython3 \
python3-numpy \
python3-matplotlib
openEMS-Projectを取得
git clone --recursive https://github.com/thliebig/openEMS-Project.git
cd openEMS-Project
openEMSをビルド
mkdir build
cd build
cmake ..
make -j$(nproc)
sudo make install
sudo ldconfig
動作確認
which openEMS
例
/usr/local/bin/openEMS
さらに
openEMS --help
が表示されれば成功です。
AppCSXCAD(GUI)をインストール
cd ~/openEMS-Project/build
make AppCSXCAD -j$(nproc)
sudo make install
起動
AppCSXCAD
GUIが表示されれば成功です。
AppCSXCADを簡単に起動できるようにする
echo 'alias appcsxcad="/usr/local/bin/AppCSXCAD"' >> ~/.bashrc
source ~/.bashrc
以降は
appcsxcad
だけでGUIが起動します。
Python環境を作成
Ubuntu24.04ではPEP668のため
pip install .
がそのままでは使用できません。
仮想環境を利用します。
cd ~/openEMS-Project/openEMS/python
python3 -m venv .venv
source .venv/bin/activate
CSXCAD Pythonをインストール
cd ~/openEMS-Project/CSXCAD/python
pip install .
確認
python -c "import CSXCAD; print(CSXCAD.__file__)"
openEMS Pythonをインストール
cd ~/openEMS-Project/openEMS/python
pip install .
確認
python -c "import openEMS; print(openEMS.__file__)"
さらに
python -c "from openEMS import openEMS; print(openEMS)"
結果
<class 'openEMS.openEMS.openEMS'>
となれば成功です。
すべての動作確認
GUI
appcsxcad
openEMS
openEMS --help
Python
python
from openEMS import openEMS
fdtd = openEMS()
print(fdtd)
エラーが出なければ完成です。
まとめ
Ubuntu24.04では
- libvtk9-qt-dev が必要
- PythonはPEP668対応のため仮想環境を使用
- Pythonパッケージは
- CSXCAD
- openEMS
の順にインストール
これで
- openEMS
- AppCSXCAD
- Python API
のすべてが利用できます。
参考
公式リポジトリ