sagemath snappy のドッカーを使ってみる

  • こちらトポロジーツール"snappy"をsagemathと連携して使う環境づくりについて説明してある
  • 結局、dockerで諸々を入れるのが良いということらしいのでdockerhubにあるcomputop/sageをドッカーで入れることにする
  • そのためにまず(Windows環境で)dockerが使えるようにすることにする
  • こちらからドッカー環境をローカルPCに作る
  • Get dockerして、ダウンロードされたexeファイルを実行するだけ
  • デスクトップにできたドッカーイメージをダブルクリックして開始。
  • すると、Linux カーネル更新プログラム パッケージを入れろ、と言われるので、こちらのx64 マシン用の最新の WSL2 Linux カーネル更新プログラム パッケージをダウンロードしてください。をクリックして、言われるがままに実行する。
  • そのうえで、Dockerを再起動すると、Docker環境らしきものが立ち上がり、右側にコマンドを打てる場所が現れる
  • 今、使いたいsagemathとsnappyが連携している「もの」を入れるべく、このサイトのコマンドを、Docker内のコマンドプロンプトに打っていく
  • そもそも、最初のコマンド(以下)にかかる時間が長い…sagemath本体を入れているからだろう…
docker pull computop/sage
  • 引き続いて
docker run -it computop/sage
  • とやると、どうやら、ドッカーイメージが「入った」ことになるらしい
  • Dockerのアイコンをダブルクリックするとドッカーが立ち上がったよというメッセージが出るので、そうしたら、コマンドプロンプト
docker run -it -p 127.0.0.1:8888:8888 computop/sage
||
-と打つ。その上で
>||
$ sage --notebook

とすると

Starting up Sage Jupyter Notebook, viewable at http://localhost:8888
  • と出るので、ブラウザにてhttp://localhost:8888を開くと、いわゆるJupyter notebookの画面となるから、そこでsagemathのノートを開く

f:id:ryamada:20201024085551p:plain

Manifold?
import snappy
M = snappy.Manifold("m004")
M.alexander_polynomial()
D = M.dirichlet_domain()
K1 = Link([[8,3,1,4],[2,6,3,5],[6,2,7,1],[4,7,5,8]])
  • とか、する。
  • お絵描きがまだうまく動かないのだが…

f:id:ryamada:20201024085611p:plain