COVID-19に伴う緊急事態宣言および外出自粛に伴い、宅配業者の負荷増大が懸念されます。宅配業者の負担を軽減することを目的に、しばらくの間、自宅発送商品の取扱いを停止いたします。 ご理解のほどよろしくお願いいたします。 【日本初のFortranによるオブジェクト指向プログラミングの解説・入門書】 本書はFortranを用いたオブジェクト指向プログラミングの解説・入門書である.古代語や絶滅危惧種とさんざんな呼ばれ方をしているFortranであるが,実は最新のプログラミングパラダイムに対応していることはほとんど知られていない.そのため,Fortranによるオブジェクト指向プログラミングについて書かれた日本語の書籍は存在していない. 本書は工学系および情報系技術者を想定して書かれており,オブジェクト指向プログラミングの概念に関する謎めいた解説は排除され,一貫して数値計算に関連づけられた解説が展開されている.オブジェクト指向プログラミングの入門書としても,数値流体力学の解説書としても,ここまで解説が詳細で実践的な本は世界的にも存在していないだろう. 【豊富で実践的な例題】 本書では,オブジェクト指向プログラミングを「実践」するため,Fortranの最近の規格であるFortran2003/2008の機能を簡単に紹介し,オブジェクト指向プログラミングの機能を導入しながら2次元および3次元ベクトルを取り扱うプログラムを改良する. 例題として惑星の軌道計算および渦の運動,1次元移流方程式を取り上げ,手続き型とオブジェクト指向プログラミング双方により実装している.オブジェクト指向プログラミングによる1次元移流方程式の実装では,速度は犠牲になるが,時間積分スキームが簡潔かつ堅牢に変更できることが確認できる. その後,より実アプリケーションに近づけた例題として2次元非圧縮性粘性流体の計算を取り上げ,手続き型およびオブジェクト指向プログラミングによって実装した後,デザインパターンを適用してプログラムを改良している.プログラムの拡張性や柔軟性の向上と計算速度を両立させ,オブジェクト指向プログラミングの有用性を示している. 【超技術書典新刊】 技術書典2で頒布した同名の3冊を1冊に合本した版である.内容に大きな変更は無く,誤字・脱字の修正が行われ,4.10節が加筆されている. B5版244ページ(表紙込) 全例題のソースリスト付き 【発送について】 あんしんBOOTHパック 宅急便コンパクトにて発送します. 【更新履歴】 ・2018年1月28日 字句修正を行い増刷しました.
目次
第1章 はじめに 1.1 背景 1.2 本音 第2章 数値計算におけるオブジェクト指向プログラミング 2.1 オブジェクト指向プログラミング 2.2 デザインパターン 2.3 数値計算とオブジェクト指向プログラミング 2.4 Fortranにおけるオブジェクト指向プログラミング 2.5 本章のまとめ 第3章 速習Fortran 3.1 プログラムの開始,終了とコメント 3.2 データ型(基本型と派生型)と演算 3.3 入出力 3.4 分岐と繰り返し 3.5 配列とメモリの動的割付 3.6 ユーザ定義手続(関数とサブルーチン) 3.7 モジュール 3.8 時間計測 3.9 ビット演算 3.10 C/C++との相互運用 3.11 システムコマンドの実行 3.12 たまに使う(が使うときには忘れている)技法 3.13 本章のまとめ 3.14 ソースリスト(惑星の軌道計算) 第4章 Fortranによるオブジェクト指向プログラミング 4.1 派生型とオブジェクト 4.2 派生型の拡張 4.3 演算子のオーバーロード 4.4 惑星の軌道計算 4.5 渦の移流計算への拡張 4.6 本章のまとめ 4.7 ソースリスト(2次元および3次元ベクトル型) 4.8 ソースリスト(惑星の軌道計算) 4.9 ソースリスト(渦の移流計算) 4.10 補足(2項演算の記述順序について) 第5章 1次元移流方程式 5.1 支配方程式および数値計算法 5.2 手続き型プログラミングによる実装 5.3 修正Euler法への変更 5.4 本章のまとめ 5.5 ソースリスト 第6章 1次元移流方程式のオブジェクト指向実装 6.1 実装の方針 6.2 派生型の定義 6.3 メインルーチンにおける時間積分の実装 6.4 時間積分スキームの変更 6.5 性能評価 6.6 本章のまとめ 6.7 ソースリスト 第7章 2次元非圧縮性粘性流れ 7.1 支配方程式 7.2 差分法による離散化 7.3 圧力Poisson方程式の求解 7.4 計算条件 7.5 境界条件 7.6 手続き型プログラミングによる実装 7.7 計算結果 7.8 本章のまとめ 7.9 ソースリスト 第8章 2次元非圧縮性粘性流れのオブジェクト指向実装 8.1 実装の方針 8.2 派生型の定義 8.3 速度ベクトルならびに圧力を表す派生型 8.4 計算アルゴリズムを包括する派生型 8.5 性能評価 8.6 本章のまとめ 8.7 ソースリスト 第9章 2次元非圧縮性粘性流れのオブジェクト指向実装の改良 9.1 実装の方針 9.2 圧力Poisson方程式の解法を表す型(SOR型) 9.3 抽象型の定義と継承による解法の拡張 9.4 ストラテジ(Strategy)パターン 9.5 無限多相性 9.6 本章のまとめ 9.7 ソースリスト 第10章 今後の展望 引用文献 あとがき