このページの内容

Awesome Scientific Computing

Scientific Computingを扱う資料や関連プロジェクトをまとめたAwesomeリストです。

目次

基礎線形代数

  • BLAS - 基本的なベクトル・行列演算を実行するための標準的な構成要素。 (Fortran、パブリックドメイン、GitHub)
  • OpenBLAS - GotoBLAS2を基にした最適化済みBLASライブラリ。 (CおよびAssembly、BSD、GitHub)
  • BLIS - 高性能なBLAS風の密行列線形代数ライブラリ。 (C、BSD、GitHub)
  • LAPACK - 線形方程式系、線形最小二乗、固有値問題などを解くためのルーチン。 (Fortran、BSD、GitHub)
  • Eigen - 線形代数のためのC++テンプレートライブラリ。 (C++、MPL 2、GitLab)
  • Ginkgo - 疎行列系に焦点を当てた高性能manycore線形代数ライブラリ。 (C++、BSD、GitHub)
  • blaze - 密・疎算術向けの高性能C++数学ライブラリ。 (C++、BSD、Bitbucket)

多目的ツールキット

  • PETSc - PDEでモデル化された科学アプリケーションを並列に解くためのツール。 (C、2条項BSD、GitLab)
  • DUNE Numerics - 格子ベース手法でPDEを解くためのツールボックス。 (C++、GPL 2、GitLab)
  • SciPy - 統計、最適化、積分、線形代数などのPythonモジュール。 (Python、主にBSD、GitHub)
  • NumPy - Pythonで科学計算を行うための基礎パッケージ。 (Python、BSD、GitHub)
  • DifferentialEquations.jl - さまざまな種類の微分方程式を数値的に解くためのツールボックス。 (Julia、MIT、GitHub)

有限要素

  • FEniCS - PythonとC++でPDEを解くための計算プラットフォーム。 (C++/Python、LGPL 3、GitHub/Bitbucket)
  • libMesh - 非構造離散化を用いたPDEの数値シミュレーション用フレームワーク。 (C++、LGPL 2.1、GitHub)
  • deal.II - 有限要素コードの作成を支援するソフトウェアライブラリ。 (C++、LGPL 2.1、GitHub)
  • Netgen/NGSolve - 高性能なマルチフィジクス有限要素ソフトウェア。 (C++、LGPL 2.1、GitHub)
  • Firedrake - 有限要素法によるPDE解法の自動化システム。 (Python、LGPL 3、GitHub)
  • MOOSE - マルチフィジクスのオブジェクト指向シミュレーション環境。 (C++、LGPL 2.1、GitHub)
  • MFEM - 有限要素法のための自由で軽量かつスケーラブルなC++ライブラリ。 (C++、BSD-3-Clause、GitHub)
  • SfePy - Pythonによるシンプルな有限要素。 (Python、BSD、GitHub)
  • FreeFEM - 高水準のマルチフィジクス・マルチメッシュ有限要素言語。 (C++、LGPL、GitHub)
  • libceed - 効率的で拡張可能な離散化のためのコード。 (C、2条項BSD、GitHub)
  • scikit-fem - シンプルな有限要素アセンブラ。 (Python、BSD/GPL、GitHub)

メッシュ生成

三角形・四面体メッシュ生成

  • Gmsh - 前処理・後処理機能を備えた三次元有限要素メッシュジェネレーター。 (C++、GPL、GitLab)
  • pygmsh - Gmsh用Pythonインターフェース。 (Python、GPL 3、GitHub)
  • MeshPy - 高品質な三角形・四面体メッシュ生成。 (Python、MIT、GitHub)
  • CGAL - 計算幾何学向けアルゴリズム。 (C++、混在LGPL/GPL、GitHub)
  • pygalmesh - CGALの3Dメッシュ生成機能用Pythonインターフェース。 (Python、GPL 3、GitHub)
  • TetGen - 高品質な四面体メッシュジェネレーターおよび3D Delaunay三角分割器。 (C++、AGPLv3)
  • Triangle - 二次元の高品質メッシュジェネレーターおよびDelaunay三角分割器。 (C、非フリーソフトウェア)
  • distmesh - 非構造三角形・四面体メッシュのシンプルなジェネレーター。 (MATLAB、GPL 3)
  • trimesh - 水密表面を重視して三角形メッシュを読み込み・使用するライブラリ。 (Python、MIT、GitHub)
  • dmsh - distmeshに着想を得た、非構造三角形メッシュ用のシンプルなジェネレーター。 (Python、プロプライエタリ、GitHub)
  • TetWild - 三角形表面メッシュから四面体メッシュを生成。 (C++、GPL 3、GitHub)
  • TriWild - 曲線制約付きの堅牢な三角分割。 (C++、MPL 2、GitHub)
  • fTetWild - TetWildと同じだが、より高速。 (C++、MPL 2、GitHub)
  • SeismicMesh - 細長要素除去を伴う並列2D/3D三角形・四面体メッシュ生成。 (PythonおよびC++、GPL 3、GitHub)

四角形・六面体メッシュ生成

  • QuadriFlow - 三角分割からスケーラブルかつ堅牢に四角形分割を行う。 (C++、BSD、GitHub)

メッシュツール

  • meshio - 各種メッシュ形式のI/Oとファイル変換。 (Python、MIT、GitHub)
  • MOAB - メッシュデータの表現と評価。 (C++、主にLGPL 3、Bitbucket)
  • optimesh - 三角形メッシュの平滑化。 (Python、プロプライエタリ、GitHub)
  • pmp-library - 多角形メッシュ処理ライブラリ。 (C++、雇用主免責付きMIT、GitHub)
  • Mmg - 再メッシュのための堅牢なオープンソース・マルチディシプリナリソフトウェア。 (C、LGPL 3、GitHub)
  • meshplex - 単体メッシュ向けの高速ツール。 (Python、プロプライエタリ、GitHub)

データ形式

  • NetCDF - 配列指向の科学データ向けソフトウェアライブラリおよびデータ形式。 (C/C++/Fortran/Java/Python、カスタムオープンソース ライセンスGitHub)
  • HDF5 - データを保存・管理するためのデータモデル、ライブラリ、ファイル形式。 (C/Fortran、BSD、GitHub)
  • XDMF - 高性能計算コード由来のデータに向けた拡張可能なデータモデル・形式。 (C++、GitLab)
  • Zarr - チャンク化・圧縮されたN次元配列を保存する形式。 (Python、MIT、GitHub)

疎行列線形ソルバー

  • SuperLU - 大規模・疎・非対称な線形方程式系の直接解法。 (C、主にBSD、GitHub)
  • PyAMG - Pythonの代数的マルチグリッドソルバー。 (Python、MIT、GitHub)
  • hypre - 高性能な前処理器・ソルバーのライブラリ。 (C、Apache 2.0/MIT、GitHub)

可視化

  • ParaView - VTKに基づくマルチプラットフォームのデータ分析・可視化アプリケーション。 (C++、BSD、GitLab)
  • VTK - 画像を処理し、3Dコンピューターグラフィックスを作成する。 (C++、BSD、GitLab)
  • Mayavi - Pythonで科学データの3D可視化とプロットを行う。 (Python、BSD、GitHub)
  • Polyscope - 3D幾何処理用のビューアーおよびユーザーインターフェース。 (C++、MIT、GitHub)
  • PyVista - VTK向けの合理化されたインターフェースによる3Dプロットとメッシュ解析。 (Python、MIT、GitHub)
  • vedo - VTKに基づく3Dオブジェクト向け科学解析・可視化ライブラリ。 (Python、MIT、GitHub)
  • yt - 体積データの解析・可視化ツールキット。 (Python、BSD、GitHub)
  • F3D - 科学可視化ツールを備えたクロスプラットフォーム、高速、ミニマルな3Dビューアー。 (C++、BSD、GitHub)
  • TTK - 位相データ解析と可視化。 (C++/Python、BSD、GitHub)
  • morphologica - 実行時に数値シミュレーションを可視化する、ヘッダーのみのモダンなOpenGLコード。 (C++、Apache 2.0、GitHub)

その他のライブラリとツール

  • FFTW - 任意の入力サイズ・実数・複素数に対応する、1次元以上の離散フーリエ変換。 (C、GPL2、GitHub)
  • Qhull - 凸包、Delaunay三角分割、Voronoi図、点まわりの半空間交差など。 (C/C++、カスタムオープンソースライセンスGitHub)
  • GSL - 乱数生成器、特殊関数、最小二乗フィッティングなど。 (C/C++、GPL 3、Savannah)
  • OpenFOAM - 自由なオープンソースCFD(計算流体力学)ソフトウェア。 (C++、GPL 3、GitHub)
  • quadpy - Pythonで数値積分(求積・多重積分)を行う。 (Python、プロプライエタリ、GitHub)
  • FiPy - 有限体積法PDEソルバー。 (Python、カスタムオープンソース ライセンスGitHub)
  • accupy - Pythonで正確な和と内積を計算する。 (Python、GPL 3、GitHub)
  • SLEPc - スケーラブルな固有値問題計算ライブラリ。 (C、2条項BSD、GitLab)
  • Chebfun - 約15桁精度で関数を計算する。 (MATLAB、BSD、GitHub)
  • pyMOR - Pythonによるモデル次数低減。 (Python、2条項BSD、GitHub)
  • cvxpy - 凸最適化問題のモデリング言語。 (Python、Apache 2.0、GitHub)
  • PyWavelets - Pythonでウェーブレット変換を行う。 (Python、MIT、GitHub)
  • NFFT - 非等間隔高速フーリエ変換。 (C/MATLAB、GPL 2、GitHub)
  • preCICE - 分割マルチフィジクスシミュレーション(FSI、CHTなど)の結合ライブラリ。 (C++、LGPL 3、GitHub)
  • orthopy - 直交多項式を効率よく計算する。 (Python、プロプライエタリ、GitHub)
  • pyGAM - Pythonの一般化加法モデル。 (Python、Apache 2.0、GitHub)
  • Dedalus - スペクトル法で偏微分方程式を解く。 (Python、GPL 3、GitHub)
  • PyGMO - 大規模並列最適化。 (Python/C++、MPL 2、GitHub)
  • shenfun - スペクトルGalerkin法のための高性能Pythonライブラリ。 (Python、BSD-2、GitHub)
  • PyDMD - 動的モード分解(DMD)。 (Python、MIT、GitHub)
  • HPDDM - 領域分割法のための高性能統合フレームワーク。 (C++、LGPL 3、GitHub)

コミュニティ