FreeFem++ as PSE
FreeFem++のソースコードは,数理モデルから計算までを一つのファイルに書くことができます.数式エディタを持たないFreeFem++では,ソースコードの可読性が高いとは言えません.
そこで,ソースコードからTeXファイルを自動生成して可読性の高いファイルを得るPerlのプログラム edp2tex.pl を作成しました.
※ソースコードの先頭はコメント文/*...*/ ではじめ,*/ の前は改行してください.最後をコメント文 /* */で終わったときは,「\begin{alltt}\end{alltt}」が余分に入るので削除してください.
【趣旨】
数理モデルの知識データを収集して研究に使うため,長い間,コンピュータを使った研究支援のため,自作でMaKR(Mathematical Knowledge Repository)を造ったりしていました.FreeFem++はこの延長にあります.
【キャビネットの内容】
edp2tex.pdf -- edp2tex.pl の解説
edp2tex.pl -- FreeFem++ソースからTeXによる文書化を作成するPerlのプログラム
ここで,-n はソースコードに行番号を付けるオプションです.Perlの処理系が必要です.
このプログラムは,筆者と高石武史による共著
「有限要素法で学ぶ現象と数理―FreeFem++数理思考プログラミング―」共立出版,2014
のためにMaKRから必要部分を取り出して造りました.
PSEの一環として,FreeFem++のソースを文書化するツールを作りました.Unix, MS-Windows でのコマンドで次のように打ち込みます.
>perl edp2tex.tex [-n]
FreeFem++によるPSE(Problem Solving Environment,問題解決環境)の構築
FreeFem++によるPSE(Problem Solving Environment,問題解決環境)を考えるため,「PSE BOOK シミュレーション科学における問題解決のための環境」[基礎編] 培風館 川田重夫・田子精男・梅谷征雄・南 多善共著
1.2 問題解決の手順 にFreeFem++を当てはめてみました.
〇問題解決環境とFreeFem++
1) 問題の探索・発見
2) 問題の本質の見極め
3) 問題の数理モデル化 -- 多くの場合,研究はここから出発
4) 数式の計算モデル化 -- FreeFem++では有限要素法
ただし,数理モデルによる有限要素計算が異なる
5) プログラミング -- FreeFem++では数理モデルを反映したプログラミング言語になっている.
6) プログラムの正当性の検証 -- FreeFem++の開発の歴史は長く,O.Pironneau教授そしてF.Hecht教授といったフランス最高峰研究者の知識・技術が使われています.検証済のサンプルプログラムを使えば,この部分は飛ばせます.
7) 問題への適用計算 -- FreeFem++では 4)と5)を短縮できるので,数理モデルとの距離が近くなります.
8) 計算結果の解析 -- plotなどによる計算結果の可視化,ファイルへの計算結果の書き出しなど解析を補助する機能があります.
〇FreeFem++ ―ホワイトボックス型 PSE―
FreeFem++は独自言語を持つので,プログラミングについてブラックボックス化されているようだが,有限要素計算の過程がみえる機能を多く備えている.また,計算では変分法を直接記述するなど,利用者が目的に合せた変更を容易にできる特徴がある.
このようにFreeFem++は「研究向けPSE」として必要な機能がホワイトボックスになっています.